Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
@ 2022-03-20 20:17 classabbyamp
  2022-03-20 20:30 ` [PR PATCH] [Updated] " classabbyamp
                   ` (26 more replies)
  0 siblings, 27 replies; 28+ messages in thread
From: classabbyamp @ 2022-03-20 20:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1274 bytes --]

There is a new pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 7137 bytes --]

From f372e0f2e31c9f550a4d66d3fb444cd8859cbbf3 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 1/4] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 37 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index af5f698debae..8231c7edb2e1 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1991,6 +1992,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..4c8d632f3e73
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<-EOF
+_java_bin_dir=\$(dirname \$(readlink -f /usr/bin/java))
+[ -x /usr/bin/java ] && export JAVA_HOME=\${JAVA_HOME:=\${_java_bin_dir%/bin}}
+unset _java_bin_dir
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 980dd64690ea9e8088db425e58754e3c7eb76a2a Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 2/4] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..6c87a10fecd8 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,7 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +252,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From f04f2acfae8c75d60a84fb87425241e7f9434e13 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 3/4] openjdk11: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk11/template | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..a5c2e7816eb0 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From f7b79e5cfffcacb44d90ce6ac959c74fc8df328d Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 4/4] openjdk17: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk17/template | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..ecbedd5b5e9b 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -8,7 +8,7 @@ _base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
 
 pkgname=openjdk17
 version="${_base_version}+${_jdk_update}"
-revision=1
+revision=2
 wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
@@ -182,6 +182,7 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +198,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
@ 2022-03-20 20:30 ` classabbyamp
  2022-03-21 15:31 ` [PR REVIEW] " ahesford
                   ` (25 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-03-20 20:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 7137 bytes --]

From f372e0f2e31c9f550a4d66d3fb444cd8859cbbf3 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 1/4] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 37 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index af5f698debae..8231c7edb2e1 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1991,6 +1992,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..4c8d632f3e73
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<-EOF
+_java_bin_dir=\$(dirname \$(readlink -f /usr/bin/java))
+[ -x /usr/bin/java ] && export JAVA_HOME=\${JAVA_HOME:=\${_java_bin_dir%/bin}}
+unset _java_bin_dir
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 980dd64690ea9e8088db425e58754e3c7eb76a2a Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 2/4] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..6c87a10fecd8 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,7 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +252,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From f04f2acfae8c75d60a84fb87425241e7f9434e13 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 3/4] openjdk11: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk11/template | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..a5c2e7816eb0 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From e408078749f2782423d9ec244b54f522005d9316 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 4/4] openjdk17: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk17/template | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..ecbedd5b5e9b 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -8,7 +8,7 @@ _base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
 
 pkgname=openjdk17
 version="${_base_version}+${_jdk_update}"
-revision=1
+revision=2
 wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
@@ -182,6 +182,7 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +198,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR REVIEW] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
  2022-03-20 20:30 ` [PR PATCH] [Updated] " classabbyamp
@ 2022-03-21 15:31 ` ahesford
  2022-03-21 15:31 ` ahesford
                   ` (24 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: ahesford @ 2022-03-21 15:31 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 609 bytes --]

New review comment by ahesford on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#discussion_r831239633

Comment:
```suggestion
if _java_bin=$(readlink -e /usr/bin/java); then
	_java_bin="${_java_bin%/bin/java}"
	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
fi
unset _java_bin
```
Using `readlink -e` will not work with busybox `readlink`, but people who wish to replace coreutils can be tasked with modifying the Java profile snippet. It saves us from shenanigans and allows us to short-circuit everything when `/usr/bin/java` doesn't exist.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR REVIEW] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
  2022-03-20 20:30 ` [PR PATCH] [Updated] " classabbyamp
  2022-03-21 15:31 ` [PR REVIEW] " ahesford
@ 2022-03-21 15:31 ` ahesford
  2022-03-21 15:52 ` [PR PATCH] [Updated] " classabbyamp
                   ` (23 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: ahesford @ 2022-03-21 15:31 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 299 bytes --]

New review comment by ahesford on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#discussion_r831226635

Comment:
```suggestion
	cat > "$jdkprofile" <<-'EOF'
```
Quoting the `EOF` marker will eliminate the need to escape all of the shell specials in the heredoc.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (2 preceding siblings ...)
  2022-03-21 15:31 ` ahesford
@ 2022-03-21 15:52 ` classabbyamp
  2022-03-21 15:56 ` [PR REVIEW] " classabbyamp
                   ` (22 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-03-21 15:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 7161 bytes --]

From 5f7251b94e5849cd82b28ec62ee4b8f31f1a1bff Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 1/4] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index af5f698debae..8231c7edb2e1 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1991,6 +1992,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..2d172da70c79
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<-'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 39eff2f4fcfbc42583da7ffe3e21b809f29da881 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 2/4] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..6c87a10fecd8 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,7 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +252,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From bb6f1870bb1a1795b9ac38759791fcbf0e84c849 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 3/4] openjdk11: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk11/template | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..a5c2e7816eb0 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 7e314755091a19282a59bba1509237482ed5edc7 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 4/4] openjdk17: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk17/template | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..ecbedd5b5e9b 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -8,7 +8,7 @@ _base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
 
 pkgname=openjdk17
 version="${_base_version}+${_jdk_update}"
-revision=1
+revision=2
 wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
@@ -182,6 +182,7 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +198,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR REVIEW] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (3 preceding siblings ...)
  2022-03-21 15:52 ` [PR PATCH] [Updated] " classabbyamp
@ 2022-03-21 15:56 ` classabbyamp
  2022-03-21 16:16 ` q66
                   ` (21 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-03-21 15:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 156 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#discussion_r831269838

Comment:
done

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (4 preceding siblings ...)
  2022-03-21 15:56 ` [PR REVIEW] " classabbyamp
@ 2022-03-21 16:16 ` q66
  2022-03-21 16:49 ` [PR PATCH] [Updated] " classabbyamp
                   ` (20 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: q66 @ 2022-03-21 16:16 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 455 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#issuecomment-1074104424

Comment:
unless you force every openjdk package to depend on at least some version of xbps-triggers this will break horribly

also still not sure if i'm a fan of this approach, we should be killing xbps-triggers, not extending it with more junk, the whole package is a poorly thought out hack that is 90% useless boilerplate

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (5 preceding siblings ...)
  2022-03-21 16:16 ` q66
@ 2022-03-21 16:49 ` classabbyamp
  2022-03-21 17:45 ` [PR REVIEW] " ahesford
                   ` (19 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-03-21 16:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 7713 bytes --]

From 5f7251b94e5849cd82b28ec62ee4b8f31f1a1bff Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 1/4] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index af5f698debae..8231c7edb2e1 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1991,6 +1992,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..2d172da70c79
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<-'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From b37475910492e943cf7fdc0bacc5ab0669dc8951 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 2/4] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d363260ffa80 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From 9a481a8c1679fa1c63a4b98d46190d31b9cb05cf Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 3/4] openjdk11: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..6c2463f3ff5c 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 3fd46b3f95501a95163b3f6bbf3b27214d8ceb82 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 4/4] openjdk17: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk17/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..bef9a864d3de 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -8,7 +8,7 @@ _base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
 
 pkgname=openjdk17
 version="${_base_version}+${_jdk_update}"
-revision=1
+revision=2
 wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
@@ -182,6 +182,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +199,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR REVIEW] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (6 preceding siblings ...)
  2022-03-21 16:49 ` [PR PATCH] [Updated] " classabbyamp
@ 2022-03-21 17:45 ` ahesford
  2022-03-21 17:52 ` [PR PATCH] [Updated] " classabbyamp
                   ` (18 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: ahesford @ 2022-03-21 17:45 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 488 bytes --]

New review comment by ahesford on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#discussion_r831381720

Comment:
The `-` in `<<-'EOF'` throws away leading tabs so the profile snippet it writes is a bit ugly. I recommend a single tab-indent for the *entire* block, including closing `EOF`, and then adding an extra 2 or 4 spaces on the lines that should be indented in the output.

Alternatively, just drop the `-` and the formatting will be preserved.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (7 preceding siblings ...)
  2022-03-21 17:45 ` [PR REVIEW] " ahesford
@ 2022-03-21 17:52 ` classabbyamp
  2022-03-21 17:52 ` [PR REVIEW] " classabbyamp
                   ` (17 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-03-21 17:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 7712 bytes --]

From ee06d4b84ca0678991c2bf437d1f30037ca95bc3 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 1/4] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index af5f698debae..8231c7edb2e1 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1991,6 +1992,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 2141e6cd1da89fd401c1f32fb669d59d51dd54b2 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 2/4] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d363260ffa80 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From e6d1e3a70553a9bcc3d1cd71e6bfcb8d15c71786 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 3/4] openjdk11: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..6c2463f3ff5c 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 1e0f027286ef35d3c778ea0e86de1a8f64f99c1a Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 4/4] openjdk17: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk17/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..bef9a864d3de 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -8,7 +8,7 @@ _base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
 
 pkgname=openjdk17
 version="${_base_version}+${_jdk_update}"
-revision=1
+revision=2
 wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
@@ -182,6 +182,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +199,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR REVIEW] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (8 preceding siblings ...)
  2022-03-21 17:52 ` [PR PATCH] [Updated] " classabbyamp
@ 2022-03-21 17:52 ` classabbyamp
  2022-03-21 19:04 ` q66
                   ` (16 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-03-21 17:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 156 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#discussion_r831390739

Comment:
done

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (9 preceding siblings ...)
  2022-03-21 17:52 ` [PR REVIEW] " classabbyamp
@ 2022-03-21 19:04 ` q66
  2022-03-21 19:35 ` [PR PATCH] [Updated] " classabbyamp
                   ` (15 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: q66 @ 2022-03-21 19:04 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 273 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#issuecomment-1074303258

Comment:
the xbps-triggers added dependency does not solve anything

it must be specifically `xbps-triggers>=THE_NEW_VERSION_THAT_ADDED_STUFF`

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (10 preceding siblings ...)
  2022-03-21 19:04 ` q66
@ 2022-03-21 19:35 ` classabbyamp
  2022-04-02 21:39 ` classabbyamp
                   ` (14 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-03-21 19:35 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 7739 bytes --]

From ee06d4b84ca0678991c2bf437d1f30037ca95bc3 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 1/4] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index af5f698debae..8231c7edb2e1 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1991,6 +1992,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From b7b6238d7c8d7a8b63194959c666a057c5248561 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 2/4] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d37e6e11cbfd 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From b7529ac83485442881e516ab8e7d399ace099530 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 3/4] openjdk11: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 1510a128f095e1f8c00cd6ef3714f6efb1449d11 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 4/4] openjdk17: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk17/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..f72ccf829b67 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -8,7 +8,7 @@ _base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
 
 pkgname=openjdk17
 version="${_base_version}+${_jdk_update}"
-revision=1
+revision=2
 wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
@@ -182,6 +182,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +199,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (11 preceding siblings ...)
  2022-03-21 19:35 ` [PR PATCH] [Updated] " classabbyamp
@ 2022-04-02 21:39 ` classabbyamp
  2022-04-02 22:03 ` classabbyamp
                   ` (13 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-02 21:39 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 7739 bytes --]

From 7a1f32a40ad08186ddf2feb6c719207d9aeb22e0 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 1/4] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From aa005c48c655df6390a713a06f46117b57af6a08 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 2/4] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d37e6e11cbfd 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From 6d74bc82334d250bcfa4e462761e6808acf778a8 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 3/4] openjdk11: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From fd87d5bbe405f52a7899ffeced587226c821560e Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 4/4] openjdk17: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk17/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..f72ccf829b67 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -8,7 +8,7 @@ _base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
 
 pkgname=openjdk17
 version="${_base_version}+${_jdk_update}"
-revision=1
+revision=2
 wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
@@ -182,6 +182,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +199,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (12 preceding siblings ...)
  2022-04-02 21:39 ` classabbyamp
@ 2022-04-02 22:03 ` classabbyamp
  2022-04-02 22:05 ` classabbyamp
                   ` (12 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-02 22:03 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 9055 bytes --]

From 7a1f32a40ad08186ddf2feb6c719207d9aeb22e0 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 1/4] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From aa005c48c655df6390a713a06f46117b57af6a08 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 2/4] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d37e6e11cbfd 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From 6d74bc82334d250bcfa4e462761e6808acf778a8 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 3/4] openjdk11: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 2b22aa88b2a86a5cc8ab63511bce8a5783a81831 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 4/4] openjdk17: move /etc/profile.d/10-openjdk*.sh to trigger

also fix version for xlint
---
 srcpkgs/openjdk17/template | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..024f33f6ee8b 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,15 +1,12 @@
 # Template file for 'openjdk17'
-_java_ver=17
-_java_min_ver=0
-_java_sec_ver=3
-_jdk_update=1
-_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
-_base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
-
 pkgname=openjdk17
-version="${_base_version}+${_jdk_update}"
-revision=1
-wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
+version=17.0.3+1
+revision=2
+_java_ver="${version%%.*}"
+_jdk_update="${version#*+}"
+_base_version="${version%+*}"
+_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
+wrksrc="jdk${_java_ver}u-jdk-${version/+/-}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
  --enable-unlimited-crypto
@@ -38,7 +35,6 @@ makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
 depends="${pkgname}-jre-${version}_${revision}"
-provides="java-environment-${version}_1"
 short_desc="OpenJDK Java Development Kit (version ${_java_ver})"
 maintainer="classabbyamp <dev@kb6.ee>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -47,6 +43,7 @@ distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.ta
  https://github.com/google/googletest/archive/refs/tags/release-1.8.1.tar.gz"
 checksum="0fac6d90091fc16678a14349e578f6c1cf29738d55508f9f723fbb69469f6867
  9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+provides="java-environment-${version}_1"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -182,6 +179,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +196,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (13 preceding siblings ...)
  2022-04-02 22:03 ` classabbyamp
@ 2022-04-02 22:05 ` classabbyamp
  2022-04-03  2:33 ` [PR PATCH] [Updated] " classabbyamp
                   ` (11 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-02 22:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 265 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#issuecomment-1086732124

Comment:
xlint there should be ignored, the new version lint meant I needed to update the version line, but there was no update

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (14 preceding siblings ...)
  2022-04-02 22:05 ` classabbyamp
@ 2022-04-03  2:33 ` classabbyamp
  2022-04-03  2:34 ` classabbyamp
                   ` (10 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-03  2:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 21120 bytes --]

From 7a1f32a40ad08186ddf2feb6c719207d9aeb22e0 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 01/16] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From aa005c48c655df6390a713a06f46117b57af6a08 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 02/16] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d37e6e11cbfd 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From 6d74bc82334d250bcfa4e462761e6808acf778a8 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 03/16] openjdk11: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 2b22aa88b2a86a5cc8ab63511bce8a5783a81831 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 04/16] openjdk17: move /etc/profile.d/10-openjdk*.sh to
 trigger

also fix version for xlint
---
 srcpkgs/openjdk17/template | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..024f33f6ee8b 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,15 +1,12 @@
 # Template file for 'openjdk17'
-_java_ver=17
-_java_min_ver=0
-_java_sec_ver=3
-_jdk_update=1
-_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
-_base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
-
 pkgname=openjdk17
-version="${_base_version}+${_jdk_update}"
-revision=1
-wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
+version=17.0.3+1
+revision=2
+_java_ver="${version%%.*}"
+_jdk_update="${version#*+}"
+_base_version="${version%+*}"
+_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
+wrksrc="jdk${_java_ver}u-jdk-${version/+/-}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
  --enable-unlimited-crypto
@@ -38,7 +35,6 @@ makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
 depends="${pkgname}-jre-${version}_${revision}"
-provides="java-environment-${version}_1"
 short_desc="OpenJDK Java Development Kit (version ${_java_ver})"
 maintainer="classabbyamp <dev@kb6.ee>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -47,6 +43,7 @@ distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.ta
  https://github.com/google/googletest/archive/refs/tags/release-1.8.1.tar.gz"
 checksum="0fac6d90091fc16678a14349e578f6c1cf29738d55508f9f723fbb69469f6867
  9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+provides="java-environment-${version}_1"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -182,6 +179,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +196,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

From ff98aecd013a8cb4fb7abfbea6bb7632d50668cc Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:32 -0400
Subject: [PATCH 05/16] apache-fop: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/apache-fop/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-fop/template b/srcpkgs/apache-fop/template
index 96ab59bce8b3..3b7c917a7c09 100644
--- a/srcpkgs/apache-fop/template
+++ b/srcpkgs/apache-fop/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-fop'
 pkgname=apache-fop
 version=2.5
-revision=2
+revision=3
 wrksrc="fop-${version}"
 build_wrksrc="fop"
 hostmakedepends="openjdk8 apache-ant"
@@ -18,7 +18,7 @@ conf_files="/etc/fop.conf"
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	ant package
 }
 do_install() {

From 9ad2ddd772f2150acffcb139efcfcb5e0882c5fc Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:35 -0400
Subject: [PATCH 06/16] apache-maven: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/apache-maven/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-maven/template b/srcpkgs/apache-maven/template
index c9603329c2cd..cc1e3e561634 100644
--- a/srcpkgs/apache-maven/template
+++ b/srcpkgs/apache-maven/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-maven'
 pkgname=apache-maven
 version=3.6.3
-revision=2
+revision=3
 hostmakedepends="openjdk8"
 depends="virtual?java-environment which"
 short_desc="Software project management and comprehension tool"
@@ -15,7 +15,7 @@ checksum="7c1c990ba64dd4f88688120cc2ec93bf33dd500d2a62ae5cd57bd4b7f6335c07
 replaces="apache-maven-bin>=0"
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	./bin/mvn package -DskipTests -Drat.skip=true -Dmaven.repo.local=repo -DdistributionTargetDir=${DESTDIR}/usr/lib/${pkgname}
 }
 

From 2722cfbe2586577ff697f17d2c4e9bdcd0dc82f4 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:36 -0400
Subject: [PATCH 07/16] arduino: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/arduino/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/arduino/template b/srcpkgs/arduino/template
index 5d6531ec93fc..c2c08996fc4b 100644
--- a/srcpkgs/arduino/template
+++ b/srcpkgs/arduino/template
@@ -1,7 +1,7 @@
 # Template file for 'arduino'
 pkgname=arduino
 version=1.8.13
-revision=1
+revision=2
 archs="x86_64* i686* aarch64* arm*"
 wrksrc=$pkgname-$version
 create_wrksrc=yes
@@ -27,7 +27,7 @@ fi
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include/linux"
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include"

From 8bb8d31eb74e6d610a291057eb958a4cf530ac40 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 08/16] bibletime: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/bibletime/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/bibletime/template b/srcpkgs/bibletime/template
index 559755a9dd6f..af3301e02365 100644
--- a/srcpkgs/bibletime/template
+++ b/srcpkgs/bibletime/template
@@ -4,7 +4,7 @@
 # to start.
 pkgname=bibletime
 version=3.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=/usr/share/xsl/docbook/html/chunk.xsl
  -DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=/usr/share/xsl/docbook/fo/docbook.xsl"
@@ -20,7 +20,7 @@ distfiles="https://github.com/bibletime/bibletime/releases/download/v${version}/
 checksum=d6beef62ad44b255e3dc4c5e89214bf01a0e85c9136073b0be12fca3d2b22622
 
 pre_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	if [ "$XBPS_WORDSIZE" = "32" ]; then
 		export _JAVA_OPTIONS="-Xmx1024m"
 	fi

From 0c4e840ea217ed14f2293ab7742b70c2cd414fd6 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 09/16] davmail: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/davmail/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/davmail/template b/srcpkgs/davmail/template
index 0482c0dce531..b739bf6b8bb6 100644
--- a/srcpkgs/davmail/template
+++ b/srcpkgs/davmail/template
@@ -1,7 +1,7 @@
 # Template file for 'davmail'
 pkgname=davmail
 version=5.5.1
-revision=2
+revision=3
 _commit=3299
 wrksrc=davmail-src-${version}-${_commit}
 hostmakedepends="openjdk8 apache-ant"
@@ -13,7 +13,7 @@ distfiles="${SOURCEFORGE_SITE}/davmail/davmail-src-${version}-${_commit}.tgz"
 checksum=63e14eeda3fed2a1a5c55f864a8832f8842d597e797ca1e8874c9b66b811f508
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 
 	ant jar

From 45bae670533ef10bc7b52761f963812aab232a62 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 10/16] freeplane: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/freeplane/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freeplane/template b/srcpkgs/freeplane/template
index 2e7adb76ea4a..fa4eeb5e80ba 100644
--- a/srcpkgs/freeplane/template
+++ b/srcpkgs/freeplane/template
@@ -1,7 +1,7 @@
 # Template file for 'freeplane'
 pkgname=freeplane
 version=1.9.12
-revision=1
+revision=2
 wrksrc="freeplane-release-${version}"
 hostmakedepends="apache-ant openjdk8 unzip gradle"
 depends="virtual?java-runtime"
@@ -23,7 +23,7 @@ esac
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	gradle format_translation binZip -x test
 }

From d31f4bdc40a8c0d382e5fed1de7c912f2720f1e2 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 11/16] freerouting: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/freerouting/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freerouting/template b/srcpkgs/freerouting/template
index f643eabdb6fe..bfde02fc9e29 100644
--- a/srcpkgs/freerouting/template
+++ b/srcpkgs/freerouting/template
@@ -1,7 +1,7 @@
 # Template file for 'freerouting'
 pkgname=freerouting
 version=1.4.5.1
-revision=1
+revision=2
 hostmakedepends="dos2unix gradle openjdk11"
 depends="openjdk11"
 short_desc="Advanced PCB autorouter"
@@ -21,7 +21,7 @@ post_extract() {
 }
 
 do_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	gradle assemble
 }
 

From b6b7a022d09ae3029de6daab65c2ca762e635f65 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 12/16] java-commons-io: fix name of
 etc/profile.d/10_openjdk*.sh in template

---
 srcpkgs/java-commons-io/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/java-commons-io/template b/srcpkgs/java-commons-io/template
index e91dcc87b8b5..5b8413e2a03d 100644
--- a/srcpkgs/java-commons-io/template
+++ b/srcpkgs/java-commons-io/template
@@ -2,7 +2,7 @@
 _origname=commons-io
 pkgname=java-commons-io
 version=2.6
-revision=2
+revision=3
 wrksrc="${_origname}-${version}-src"
 hostmakedepends="openjdk8 apache-maven which"
 depends="virtual?java-runtime"
@@ -19,7 +19,7 @@ case "$XBPS_MACHINE" in
 esac
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	mvn package -Dmaven.test.skip=true
 }
 

From ff09d4bdc540d58b5e321d94c0d6f709fc29881a Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 13/16] jedit: hard-code openjdk11

---
 srcpkgs/jedit/files/jedit | 4 +---
 srcpkgs/jedit/template    | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/jedit/files/jedit b/srcpkgs/jedit/files/jedit
index 622bb9171864..706d2f8dd45c 100644
--- a/srcpkgs/jedit/files/jedit
+++ b/srcpkgs/jedit/files/jedit
@@ -1,10 +1,8 @@
 #!/bin/sh
 
 # openjdk11 is required
-. /etc/profile.d/10_openjdk11.sh
-
 # default to gtk3, use antialiased fonts
-exec "${JAVA_HOME}/bin/java" \
+exec "/usr/lib/jvm/openjdk11/bin/java" \
     -Djdk.gtk.version=3 \
     -Dawt.useSystemAAFontSettings=on \
     -Dswing.aatext=true \
diff --git a/srcpkgs/jedit/template b/srcpkgs/jedit/template
index cf7ac8cdd201..19ca4ac3df1f 100644
--- a/srcpkgs/jedit/template
+++ b/srcpkgs/jedit/template
@@ -1,7 +1,7 @@
 # Template file for 'jedit'
 pkgname=jedit
 version=5.6.0
-revision=1
+revision=2
 wrksrc=jEdit
 hostmakedepends="apache-ant openjdk11 docbook-xsl"
 depends="openjdk11 desktop-file-utils"
@@ -19,7 +19,7 @@ post_patch() {
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	ant -propertyfile ${FILESDIR}/build.properties build
 	ant -propertyfile ${FILESDIR}/build.properties docs-html

From adbfaabf409b6861ffa1d8d6a9b146bf3a2e01b0 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 14/16] kodi: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/kodi/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index a31240ff2766..dd3747cbf7f3 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -1,7 +1,7 @@
 # Template file for 'kodi'
 pkgname=kodi
 version=19.0
-revision=4
+revision=5
 _codename="Matrix"
 wrksrc="xbmc-${version}-${_codename}"
 build_style=cmake
@@ -109,7 +109,7 @@ pre_configure() {
 		xargs sed -i  -e "s;-isystem;-I;g"
 	fi
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	if [ "$CROSS_BUILD" ]; then
 		for i in JsonSchemaBuilder TexturePacker; do

From 3a493d5ea0c2e3b9b903fe14bf67e401a8796a62 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 15/16] lightzone: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/lightzone/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/lightzone/template b/srcpkgs/lightzone/template
index 13242f01cc77..261626fb9dff 100644
--- a/srcpkgs/lightzone/template
+++ b/srcpkgs/lightzone/template
@@ -1,7 +1,7 @@
 # Template file for 'lightzone'
 pkgname=lightzone
 version=4.2.2
-revision=1
+revision=2
 _ivy_version=2.4.0
 wrksrc=LightZone-${version}
 hostmakedepends="automake git openjdk11 apache-ant javahelp2 rsync pkg-config"
@@ -29,7 +29,7 @@ do_build() {
 	vsed -i lightcrafts/jnisrc/tiff/GNUmakefile \
 		-e "s;\./configure;& --host=${XBPS_MACHINE%-musl};"
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	cd linux
 	TARGET=${XBPS_TARGET_MACHINE%-musl} ant jar
 }

From a4d571dc64b5f0f095dfd1624ea10d2e9d6de76e Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:44 -0400
Subject: [PATCH 16/16] plantuml: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/plantuml/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/plantuml/template b/srcpkgs/plantuml/template
index fff4ec18b203..85259ce2ca6b 100644
--- a/srcpkgs/plantuml/template
+++ b/srcpkgs/plantuml/template
@@ -2,7 +2,7 @@
 pkgname=plantuml
 reverts="8047_1 8053_1 8059_1"
 version=1.2021.14
-revision=1
+revision=2
 create_wrksrc=yes
 hostmakedepends="apache-ant openjdk8"
 depends="virtual?java-environment graphviz"
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/plantuml/plantuml-gplv2-${version}.tar.gz"
 checksum=468aeaaea0742d8312d0f2f709df140e599967d8284fc0555f842fd0a6fe6941
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 	ant
 	mv ${pkgname}.jar ${pkgname}-${version}.jar

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (15 preceding siblings ...)
  2022-04-03  2:33 ` [PR PATCH] [Updated] " classabbyamp
@ 2022-04-03  2:34 ` classabbyamp
  2022-04-07 18:23 ` classabbyamp
                   ` (9 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-03  2:34 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 21164 bytes --]

From 7a1f32a40ad08186ddf2feb6c719207d9aeb22e0 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 01/16] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From aa005c48c655df6390a713a06f46117b57af6a08 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 02/16] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d37e6e11cbfd 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From 6d74bc82334d250bcfa4e462761e6808acf778a8 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 03/16] openjdk11: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 2b22aa88b2a86a5cc8ab63511bce8a5783a81831 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 04/16] openjdk17: move /etc/profile.d/10-openjdk*.sh to
 trigger

also fix version for xlint
---
 srcpkgs/openjdk17/template | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 43f72e4d65c0..024f33f6ee8b 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,15 +1,12 @@
 # Template file for 'openjdk17'
-_java_ver=17
-_java_min_ver=0
-_java_sec_ver=3
-_jdk_update=1
-_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
-_base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
-
 pkgname=openjdk17
-version="${_base_version}+${_jdk_update}"
-revision=1
-wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
+version=17.0.3+1
+revision=2
+_java_ver="${version%%.*}"
+_jdk_update="${version#*+}"
+_base_version="${version%+*}"
+_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
+wrksrc="jdk${_java_ver}u-jdk-${version/+/-}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
  --enable-unlimited-crypto
@@ -38,7 +35,6 @@ makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
 depends="${pkgname}-jre-${version}_${revision}"
-provides="java-environment-${version}_1"
 short_desc="OpenJDK Java Development Kit (version ${_java_ver})"
 maintainer="classabbyamp <dev@kb6.ee>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -47,6 +43,7 @@ distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.ta
  https://github.com/google/googletest/archive/refs/tags/release-1.8.1.tar.gz"
 checksum="0fac6d90091fc16678a14349e578f6c1cf29738d55508f9f723fbb69469f6867
  9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+provides="java-environment-${version}_1"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -182,6 +179,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +196,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

From ff98aecd013a8cb4fb7abfbea6bb7632d50668cc Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:32 -0400
Subject: [PATCH 05/16] apache-fop: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/apache-fop/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-fop/template b/srcpkgs/apache-fop/template
index 96ab59bce8b3..3b7c917a7c09 100644
--- a/srcpkgs/apache-fop/template
+++ b/srcpkgs/apache-fop/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-fop'
 pkgname=apache-fop
 version=2.5
-revision=2
+revision=3
 wrksrc="fop-${version}"
 build_wrksrc="fop"
 hostmakedepends="openjdk8 apache-ant"
@@ -18,7 +18,7 @@ conf_files="/etc/fop.conf"
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	ant package
 }
 do_install() {

From 9ad2ddd772f2150acffcb139efcfcb5e0882c5fc Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:35 -0400
Subject: [PATCH 06/16] apache-maven: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/apache-maven/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-maven/template b/srcpkgs/apache-maven/template
index c9603329c2cd..cc1e3e561634 100644
--- a/srcpkgs/apache-maven/template
+++ b/srcpkgs/apache-maven/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-maven'
 pkgname=apache-maven
 version=3.6.3
-revision=2
+revision=3
 hostmakedepends="openjdk8"
 depends="virtual?java-environment which"
 short_desc="Software project management and comprehension tool"
@@ -15,7 +15,7 @@ checksum="7c1c990ba64dd4f88688120cc2ec93bf33dd500d2a62ae5cd57bd4b7f6335c07
 replaces="apache-maven-bin>=0"
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	./bin/mvn package -DskipTests -Drat.skip=true -Dmaven.repo.local=repo -DdistributionTargetDir=${DESTDIR}/usr/lib/${pkgname}
 }
 

From 2722cfbe2586577ff697f17d2c4e9bdcd0dc82f4 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:36 -0400
Subject: [PATCH 07/16] arduino: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/arduino/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/arduino/template b/srcpkgs/arduino/template
index 5d6531ec93fc..c2c08996fc4b 100644
--- a/srcpkgs/arduino/template
+++ b/srcpkgs/arduino/template
@@ -1,7 +1,7 @@
 # Template file for 'arduino'
 pkgname=arduino
 version=1.8.13
-revision=1
+revision=2
 archs="x86_64* i686* aarch64* arm*"
 wrksrc=$pkgname-$version
 create_wrksrc=yes
@@ -27,7 +27,7 @@ fi
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include/linux"
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include"

From 8bb8d31eb74e6d610a291057eb958a4cf530ac40 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 08/16] bibletime: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/bibletime/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/bibletime/template b/srcpkgs/bibletime/template
index 559755a9dd6f..af3301e02365 100644
--- a/srcpkgs/bibletime/template
+++ b/srcpkgs/bibletime/template
@@ -4,7 +4,7 @@
 # to start.
 pkgname=bibletime
 version=3.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=/usr/share/xsl/docbook/html/chunk.xsl
  -DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=/usr/share/xsl/docbook/fo/docbook.xsl"
@@ -20,7 +20,7 @@ distfiles="https://github.com/bibletime/bibletime/releases/download/v${version}/
 checksum=d6beef62ad44b255e3dc4c5e89214bf01a0e85c9136073b0be12fca3d2b22622
 
 pre_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	if [ "$XBPS_WORDSIZE" = "32" ]; then
 		export _JAVA_OPTIONS="-Xmx1024m"
 	fi

From 0c4e840ea217ed14f2293ab7742b70c2cd414fd6 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 09/16] davmail: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/davmail/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/davmail/template b/srcpkgs/davmail/template
index 0482c0dce531..b739bf6b8bb6 100644
--- a/srcpkgs/davmail/template
+++ b/srcpkgs/davmail/template
@@ -1,7 +1,7 @@
 # Template file for 'davmail'
 pkgname=davmail
 version=5.5.1
-revision=2
+revision=3
 _commit=3299
 wrksrc=davmail-src-${version}-${_commit}
 hostmakedepends="openjdk8 apache-ant"
@@ -13,7 +13,7 @@ distfiles="${SOURCEFORGE_SITE}/davmail/davmail-src-${version}-${_commit}.tgz"
 checksum=63e14eeda3fed2a1a5c55f864a8832f8842d597e797ca1e8874c9b66b811f508
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 
 	ant jar

From 45bae670533ef10bc7b52761f963812aab232a62 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 10/16] freeplane: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/freeplane/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freeplane/template b/srcpkgs/freeplane/template
index 2e7adb76ea4a..fa4eeb5e80ba 100644
--- a/srcpkgs/freeplane/template
+++ b/srcpkgs/freeplane/template
@@ -1,7 +1,7 @@
 # Template file for 'freeplane'
 pkgname=freeplane
 version=1.9.12
-revision=1
+revision=2
 wrksrc="freeplane-release-${version}"
 hostmakedepends="apache-ant openjdk8 unzip gradle"
 depends="virtual?java-runtime"
@@ -23,7 +23,7 @@ esac
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	gradle format_translation binZip -x test
 }

From d31f4bdc40a8c0d382e5fed1de7c912f2720f1e2 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 11/16] freerouting: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/freerouting/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freerouting/template b/srcpkgs/freerouting/template
index f643eabdb6fe..bfde02fc9e29 100644
--- a/srcpkgs/freerouting/template
+++ b/srcpkgs/freerouting/template
@@ -1,7 +1,7 @@
 # Template file for 'freerouting'
 pkgname=freerouting
 version=1.4.5.1
-revision=1
+revision=2
 hostmakedepends="dos2unix gradle openjdk11"
 depends="openjdk11"
 short_desc="Advanced PCB autorouter"
@@ -21,7 +21,7 @@ post_extract() {
 }
 
 do_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	gradle assemble
 }
 

From b6b7a022d09ae3029de6daab65c2ca762e635f65 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 12/16] java-commons-io: fix name of
 etc/profile.d/10_openjdk*.sh in template

---
 srcpkgs/java-commons-io/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/java-commons-io/template b/srcpkgs/java-commons-io/template
index e91dcc87b8b5..5b8413e2a03d 100644
--- a/srcpkgs/java-commons-io/template
+++ b/srcpkgs/java-commons-io/template
@@ -2,7 +2,7 @@
 _origname=commons-io
 pkgname=java-commons-io
 version=2.6
-revision=2
+revision=3
 wrksrc="${_origname}-${version}-src"
 hostmakedepends="openjdk8 apache-maven which"
 depends="virtual?java-runtime"
@@ -19,7 +19,7 @@ case "$XBPS_MACHINE" in
 esac
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	mvn package -Dmaven.test.skip=true
 }
 

From 08ab2bc011f9416396b6fe7a46d7df2a54fabe29 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 13/16] jedit: fix name of /etc/profile.d/10_openjdk*.sh,
 hard-code openjdk11

---
 srcpkgs/jedit/files/jedit | 4 +---
 srcpkgs/jedit/template    | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/jedit/files/jedit b/srcpkgs/jedit/files/jedit
index 622bb9171864..706d2f8dd45c 100644
--- a/srcpkgs/jedit/files/jedit
+++ b/srcpkgs/jedit/files/jedit
@@ -1,10 +1,8 @@
 #!/bin/sh
 
 # openjdk11 is required
-. /etc/profile.d/10_openjdk11.sh
-
 # default to gtk3, use antialiased fonts
-exec "${JAVA_HOME}/bin/java" \
+exec "/usr/lib/jvm/openjdk11/bin/java" \
     -Djdk.gtk.version=3 \
     -Dawt.useSystemAAFontSettings=on \
     -Dswing.aatext=true \
diff --git a/srcpkgs/jedit/template b/srcpkgs/jedit/template
index cf7ac8cdd201..19ca4ac3df1f 100644
--- a/srcpkgs/jedit/template
+++ b/srcpkgs/jedit/template
@@ -1,7 +1,7 @@
 # Template file for 'jedit'
 pkgname=jedit
 version=5.6.0
-revision=1
+revision=2
 wrksrc=jEdit
 hostmakedepends="apache-ant openjdk11 docbook-xsl"
 depends="openjdk11 desktop-file-utils"
@@ -19,7 +19,7 @@ post_patch() {
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	ant -propertyfile ${FILESDIR}/build.properties build
 	ant -propertyfile ${FILESDIR}/build.properties docs-html

From 17f5e74a1aaf9d18bcb22b95381b8fe5c3b8e093 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 14/16] kodi: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/kodi/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index a31240ff2766..dd3747cbf7f3 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -1,7 +1,7 @@
 # Template file for 'kodi'
 pkgname=kodi
 version=19.0
-revision=4
+revision=5
 _codename="Matrix"
 wrksrc="xbmc-${version}-${_codename}"
 build_style=cmake
@@ -109,7 +109,7 @@ pre_configure() {
 		xargs sed -i  -e "s;-isystem;-I;g"
 	fi
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	if [ "$CROSS_BUILD" ]; then
 		for i in JsonSchemaBuilder TexturePacker; do

From d462dd7837607505b47c9a6d5ea2daa4429d6ad5 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 15/16] lightzone: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/lightzone/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/lightzone/template b/srcpkgs/lightzone/template
index 13242f01cc77..261626fb9dff 100644
--- a/srcpkgs/lightzone/template
+++ b/srcpkgs/lightzone/template
@@ -1,7 +1,7 @@
 # Template file for 'lightzone'
 pkgname=lightzone
 version=4.2.2
-revision=1
+revision=2
 _ivy_version=2.4.0
 wrksrc=LightZone-${version}
 hostmakedepends="automake git openjdk11 apache-ant javahelp2 rsync pkg-config"
@@ -29,7 +29,7 @@ do_build() {
 	vsed -i lightcrafts/jnisrc/tiff/GNUmakefile \
 		-e "s;\./configure;& --host=${XBPS_MACHINE%-musl};"
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	cd linux
 	TARGET=${XBPS_TARGET_MACHINE%-musl} ant jar
 }

From 1f199793f23a148c8488b2b8574c57e7d967aa1d Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:44 -0400
Subject: [PATCH 16/16] plantuml: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/plantuml/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/plantuml/template b/srcpkgs/plantuml/template
index fff4ec18b203..85259ce2ca6b 100644
--- a/srcpkgs/plantuml/template
+++ b/srcpkgs/plantuml/template
@@ -2,7 +2,7 @@
 pkgname=plantuml
 reverts="8047_1 8053_1 8059_1"
 version=1.2021.14
-revision=1
+revision=2
 create_wrksrc=yes
 hostmakedepends="apache-ant openjdk8"
 depends="virtual?java-environment graphviz"
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/plantuml/plantuml-gplv2-${version}.tar.gz"
 checksum=468aeaaea0742d8312d0f2f709df140e599967d8284fc0555f842fd0a6fe6941
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 	ant
 	mv ${pkgname}.jar ${pkgname}-${version}.jar

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (16 preceding siblings ...)
  2022-04-03  2:34 ` classabbyamp
@ 2022-04-07 18:23 ` classabbyamp
  2022-04-10 17:25 ` classabbyamp
                   ` (8 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-07 18:23 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 21170 bytes --]

From 46d8fe6913f72fadbf00c3d0e2e5e402ca07fdcc Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 01/16] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 576757f42420143bcd640e0f5510fae91bbfbb48 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 02/16] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d37e6e11cbfd 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From b8d4d04cb936561040ed661e853a4bcc81e15146 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 03/16] openjdk11: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 21c2ca4047b3f0450437c4d126b708de303a8394 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 04/16] openjdk17: move /etc/profile.d/10-openjdk*.sh to
 trigger

also fix version for xlint
---
 srcpkgs/openjdk17/template | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 19fa38707f00..a00fcce0172d 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,15 +1,12 @@
 # Template file for 'openjdk17'
-_java_ver=17
-_java_min_ver=0
-_java_sec_ver=3
-_jdk_update=1
-_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
-_base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
-
 pkgname=openjdk17
-version="${_base_version}+${_jdk_update}"
-revision=1
-wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
+version=17.0.3+1
+revision=2
+_java_ver="${version%%.*}"
+_jdk_update="${version#*+}"
+_base_version="${version%+*}"
+_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
+wrksrc="jdk${_java_ver}u-jdk-${version/+/-}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
  --enable-unlimited-crypto
@@ -38,7 +35,6 @@ makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
 depends="${pkgname}-jre-${version}_${revision}"
-provides="java-environment-${version}_1"
 short_desc="OpenJDK Java Development Kit (version ${_java_ver})"
 maintainer="classabbyamp <void@placeviolette.net>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -47,6 +43,7 @@ distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.ta
  https://github.com/google/googletest/archive/refs/tags/release-1.8.1.tar.gz"
 checksum="0fac6d90091fc16678a14349e578f6c1cf29738d55508f9f723fbb69469f6867
  9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+provides="java-environment-${version}_1"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -182,6 +179,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +196,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

From 6b28449399bc353675c1f67a5385aa1f21a3f522 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:32 -0400
Subject: [PATCH 05/16] apache-fop: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/apache-fop/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-fop/template b/srcpkgs/apache-fop/template
index 96ab59bce8b3..3b7c917a7c09 100644
--- a/srcpkgs/apache-fop/template
+++ b/srcpkgs/apache-fop/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-fop'
 pkgname=apache-fop
 version=2.5
-revision=2
+revision=3
 wrksrc="fop-${version}"
 build_wrksrc="fop"
 hostmakedepends="openjdk8 apache-ant"
@@ -18,7 +18,7 @@ conf_files="/etc/fop.conf"
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	ant package
 }
 do_install() {

From 2584373c618dbbfe089f78fd5af239e133635e4b Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:35 -0400
Subject: [PATCH 06/16] apache-maven: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/apache-maven/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-maven/template b/srcpkgs/apache-maven/template
index c9603329c2cd..cc1e3e561634 100644
--- a/srcpkgs/apache-maven/template
+++ b/srcpkgs/apache-maven/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-maven'
 pkgname=apache-maven
 version=3.6.3
-revision=2
+revision=3
 hostmakedepends="openjdk8"
 depends="virtual?java-environment which"
 short_desc="Software project management and comprehension tool"
@@ -15,7 +15,7 @@ checksum="7c1c990ba64dd4f88688120cc2ec93bf33dd500d2a62ae5cd57bd4b7f6335c07
 replaces="apache-maven-bin>=0"
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	./bin/mvn package -DskipTests -Drat.skip=true -Dmaven.repo.local=repo -DdistributionTargetDir=${DESTDIR}/usr/lib/${pkgname}
 }
 

From b9a92060d625192f42cec3a98f090ace80755b2b Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:36 -0400
Subject: [PATCH 07/16] arduino: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/arduino/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/arduino/template b/srcpkgs/arduino/template
index 19daa0c1b1e8..485d24ad5a28 100644
--- a/srcpkgs/arduino/template
+++ b/srcpkgs/arduino/template
@@ -1,7 +1,7 @@
 # Template file for 'arduino'
 pkgname=arduino
 version=1.8.19
-revision=1
+revision=2
 archs="x86_64* i686* aarch64* arm*"
 wrksrc=$pkgname-$version
 create_wrksrc=yes
@@ -27,7 +27,7 @@ fi
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include/linux"
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include"

From f8d9e18c03de4644f0d136d4d9938ac5cad35077 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 08/16] bibletime: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/bibletime/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/bibletime/template b/srcpkgs/bibletime/template
index 559755a9dd6f..af3301e02365 100644
--- a/srcpkgs/bibletime/template
+++ b/srcpkgs/bibletime/template
@@ -4,7 +4,7 @@
 # to start.
 pkgname=bibletime
 version=3.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=/usr/share/xsl/docbook/html/chunk.xsl
  -DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=/usr/share/xsl/docbook/fo/docbook.xsl"
@@ -20,7 +20,7 @@ distfiles="https://github.com/bibletime/bibletime/releases/download/v${version}/
 checksum=d6beef62ad44b255e3dc4c5e89214bf01a0e85c9136073b0be12fca3d2b22622
 
 pre_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	if [ "$XBPS_WORDSIZE" = "32" ]; then
 		export _JAVA_OPTIONS="-Xmx1024m"
 	fi

From ad83c6fb4db79aca2da81c6e80a7dac0b839061c Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 09/16] davmail: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/davmail/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/davmail/template b/srcpkgs/davmail/template
index 0482c0dce531..b739bf6b8bb6 100644
--- a/srcpkgs/davmail/template
+++ b/srcpkgs/davmail/template
@@ -1,7 +1,7 @@
 # Template file for 'davmail'
 pkgname=davmail
 version=5.5.1
-revision=2
+revision=3
 _commit=3299
 wrksrc=davmail-src-${version}-${_commit}
 hostmakedepends="openjdk8 apache-ant"
@@ -13,7 +13,7 @@ distfiles="${SOURCEFORGE_SITE}/davmail/davmail-src-${version}-${_commit}.tgz"
 checksum=63e14eeda3fed2a1a5c55f864a8832f8842d597e797ca1e8874c9b66b811f508
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 
 	ant jar

From 9092d578b6aa2ee974d5fd017dd1cede6f8136ed Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 10/16] freeplane: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/freeplane/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freeplane/template b/srcpkgs/freeplane/template
index 2e7adb76ea4a..fa4eeb5e80ba 100644
--- a/srcpkgs/freeplane/template
+++ b/srcpkgs/freeplane/template
@@ -1,7 +1,7 @@
 # Template file for 'freeplane'
 pkgname=freeplane
 version=1.9.12
-revision=1
+revision=2
 wrksrc="freeplane-release-${version}"
 hostmakedepends="apache-ant openjdk8 unzip gradle"
 depends="virtual?java-runtime"
@@ -23,7 +23,7 @@ esac
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	gradle format_translation binZip -x test
 }

From 57e1898a568c8da3b5049476409206074a2617e2 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 11/16] freerouting: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/freerouting/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freerouting/template b/srcpkgs/freerouting/template
index f643eabdb6fe..bfde02fc9e29 100644
--- a/srcpkgs/freerouting/template
+++ b/srcpkgs/freerouting/template
@@ -1,7 +1,7 @@
 # Template file for 'freerouting'
 pkgname=freerouting
 version=1.4.5.1
-revision=1
+revision=2
 hostmakedepends="dos2unix gradle openjdk11"
 depends="openjdk11"
 short_desc="Advanced PCB autorouter"
@@ -21,7 +21,7 @@ post_extract() {
 }
 
 do_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	gradle assemble
 }
 

From 1c9ddedf1b1b82b3719736becc23f8eda23ab1e3 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 12/16] java-commons-io: fix name of
 etc/profile.d/10_openjdk*.sh in template

---
 srcpkgs/java-commons-io/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/java-commons-io/template b/srcpkgs/java-commons-io/template
index e91dcc87b8b5..5b8413e2a03d 100644
--- a/srcpkgs/java-commons-io/template
+++ b/srcpkgs/java-commons-io/template
@@ -2,7 +2,7 @@
 _origname=commons-io
 pkgname=java-commons-io
 version=2.6
-revision=2
+revision=3
 wrksrc="${_origname}-${version}-src"
 hostmakedepends="openjdk8 apache-maven which"
 depends="virtual?java-runtime"
@@ -19,7 +19,7 @@ case "$XBPS_MACHINE" in
 esac
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	mvn package -Dmaven.test.skip=true
 }
 

From b0f321c3b755f147ceb13a8d0ceed21eda639985 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 13/16] jedit: fix name of /etc/profile.d/10_openjdk*.sh,
 hard-code openjdk11

---
 srcpkgs/jedit/files/jedit | 4 +---
 srcpkgs/jedit/template    | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/jedit/files/jedit b/srcpkgs/jedit/files/jedit
index 622bb9171864..706d2f8dd45c 100644
--- a/srcpkgs/jedit/files/jedit
+++ b/srcpkgs/jedit/files/jedit
@@ -1,10 +1,8 @@
 #!/bin/sh
 
 # openjdk11 is required
-. /etc/profile.d/10_openjdk11.sh
-
 # default to gtk3, use antialiased fonts
-exec "${JAVA_HOME}/bin/java" \
+exec "/usr/lib/jvm/openjdk11/bin/java" \
     -Djdk.gtk.version=3 \
     -Dawt.useSystemAAFontSettings=on \
     -Dswing.aatext=true \
diff --git a/srcpkgs/jedit/template b/srcpkgs/jedit/template
index cf7ac8cdd201..19ca4ac3df1f 100644
--- a/srcpkgs/jedit/template
+++ b/srcpkgs/jedit/template
@@ -1,7 +1,7 @@
 # Template file for 'jedit'
 pkgname=jedit
 version=5.6.0
-revision=1
+revision=2
 wrksrc=jEdit
 hostmakedepends="apache-ant openjdk11 docbook-xsl"
 depends="openjdk11 desktop-file-utils"
@@ -19,7 +19,7 @@ post_patch() {
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	ant -propertyfile ${FILESDIR}/build.properties build
 	ant -propertyfile ${FILESDIR}/build.properties docs-html

From a8c1adc86a90ba1569d39dbb95889f4f0d43aaaa Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 14/16] kodi: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/kodi/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index da81c7e2d0a5..b4eeacdab624 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -1,7 +1,7 @@
 # Template file for 'kodi'
 pkgname=kodi
 version=19.4
-revision=1
+revision=2
 _codename="Matrix"
 wrksrc="xbmc-${version}-${_codename}"
 build_style=cmake
@@ -111,7 +111,7 @@ pre_configure() {
 		xargs sed -i  -e "s;-isystem;-I;g"
 	fi
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	# Build tools needed to run on the host
 	if [ "$CROSS_BUILD" ]; then

From 0c708e7ec340cda9d1e4f17bf8c0ebd378cc7d1e Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 15/16] lightzone: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/lightzone/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/lightzone/template b/srcpkgs/lightzone/template
index 13242f01cc77..261626fb9dff 100644
--- a/srcpkgs/lightzone/template
+++ b/srcpkgs/lightzone/template
@@ -1,7 +1,7 @@
 # Template file for 'lightzone'
 pkgname=lightzone
 version=4.2.2
-revision=1
+revision=2
 _ivy_version=2.4.0
 wrksrc=LightZone-${version}
 hostmakedepends="automake git openjdk11 apache-ant javahelp2 rsync pkg-config"
@@ -29,7 +29,7 @@ do_build() {
 	vsed -i lightcrafts/jnisrc/tiff/GNUmakefile \
 		-e "s;\./configure;& --host=${XBPS_MACHINE%-musl};"
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	cd linux
 	TARGET=${XBPS_TARGET_MACHINE%-musl} ant jar
 }

From 8a072837f4410d62644fadb987820dc90e8d8e22 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:44 -0400
Subject: [PATCH 16/16] plantuml: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/plantuml/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/plantuml/template b/srcpkgs/plantuml/template
index fff4ec18b203..85259ce2ca6b 100644
--- a/srcpkgs/plantuml/template
+++ b/srcpkgs/plantuml/template
@@ -2,7 +2,7 @@
 pkgname=plantuml
 reverts="8047_1 8053_1 8059_1"
 version=1.2021.14
-revision=1
+revision=2
 create_wrksrc=yes
 hostmakedepends="apache-ant openjdk8"
 depends="virtual?java-environment graphviz"
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/plantuml/plantuml-gplv2-${version}.tar.gz"
 checksum=468aeaaea0742d8312d0f2f709df140e599967d8284fc0555f842fd0a6fe6941
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 	ant
 	mv ${pkgname}.jar ${pkgname}-${version}.jar

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (17 preceding siblings ...)
  2022-04-07 18:23 ` classabbyamp
@ 2022-04-10 17:25 ` classabbyamp
  2022-04-19 15:13 ` classabbyamp
                   ` (7 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-10 17:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 21170 bytes --]

From c175be05c01e4db9e3c975e19b9ebc427c89f1a9 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 01/16] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 49f8b591d7df80ceefdd20ad803a5bcb48e2aa7f Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 02/16] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d37e6e11cbfd 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From fead1beec93fc23b2901e7cd13a05680da73633a Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 03/16] openjdk11: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From 19f8b4a6fa6ddd18e0bb84881831367bab9c00b9 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 04/16] openjdk17: move /etc/profile.d/10-openjdk*.sh to
 trigger

also fix version for xlint
---
 srcpkgs/openjdk17/template | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 19fa38707f00..a00fcce0172d 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,15 +1,12 @@
 # Template file for 'openjdk17'
-_java_ver=17
-_java_min_ver=0
-_java_sec_ver=3
-_jdk_update=1
-_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
-_base_version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}"
-
 pkgname=openjdk17
-version="${_base_version}+${_jdk_update}"
-revision=1
-wrksrc="jdk${_java_ver}u-jdk-${_base_version}-${_jdk_update}"
+version=17.0.3+1
+revision=2
+_java_ver="${version%%.*}"
+_jdk_update="${version#*+}"
+_base_version="${version%+*}"
+_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
+wrksrc="jdk${_java_ver}u-jdk-${version/+/-}"
 build_style=gnu-configure
 configure_args="--disable-warnings-as-errors
  --enable-unlimited-crypto
@@ -38,7 +35,6 @@ makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
 depends="${pkgname}-jre-${version}_${revision}"
-provides="java-environment-${version}_1"
 short_desc="OpenJDK Java Development Kit (version ${_java_ver})"
 maintainer="classabbyamp <void@placeviolette.net>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -47,6 +43,7 @@ distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.ta
  https://github.com/google/googletest/archive/refs/tags/release-1.8.1.tar.gz"
 checksum="0fac6d90091fc16678a14349e578f6c1cf29738d55508f9f723fbb69469f6867
  9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+provides="java-environment-${version}_1"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -182,6 +179,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -197,11 +196,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

From fc7684e55caf07911c66908f27de69f8c8461ad2 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:32 -0400
Subject: [PATCH 05/16] apache-fop: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/apache-fop/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-fop/template b/srcpkgs/apache-fop/template
index 96ab59bce8b3..3b7c917a7c09 100644
--- a/srcpkgs/apache-fop/template
+++ b/srcpkgs/apache-fop/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-fop'
 pkgname=apache-fop
 version=2.5
-revision=2
+revision=3
 wrksrc="fop-${version}"
 build_wrksrc="fop"
 hostmakedepends="openjdk8 apache-ant"
@@ -18,7 +18,7 @@ conf_files="/etc/fop.conf"
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	ant package
 }
 do_install() {

From 86c6b51973328160b7149493660dd171454205a1 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:35 -0400
Subject: [PATCH 06/16] apache-maven: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/apache-maven/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-maven/template b/srcpkgs/apache-maven/template
index c9603329c2cd..cc1e3e561634 100644
--- a/srcpkgs/apache-maven/template
+++ b/srcpkgs/apache-maven/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-maven'
 pkgname=apache-maven
 version=3.6.3
-revision=2
+revision=3
 hostmakedepends="openjdk8"
 depends="virtual?java-environment which"
 short_desc="Software project management and comprehension tool"
@@ -15,7 +15,7 @@ checksum="7c1c990ba64dd4f88688120cc2ec93bf33dd500d2a62ae5cd57bd4b7f6335c07
 replaces="apache-maven-bin>=0"
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	./bin/mvn package -DskipTests -Drat.skip=true -Dmaven.repo.local=repo -DdistributionTargetDir=${DESTDIR}/usr/lib/${pkgname}
 }
 

From f168c6bbf6eafd5edef2e1e6fc19dae819c30306 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:36 -0400
Subject: [PATCH 07/16] arduino: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/arduino/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/arduino/template b/srcpkgs/arduino/template
index 19daa0c1b1e8..485d24ad5a28 100644
--- a/srcpkgs/arduino/template
+++ b/srcpkgs/arduino/template
@@ -1,7 +1,7 @@
 # Template file for 'arduino'
 pkgname=arduino
 version=1.8.19
-revision=1
+revision=2
 archs="x86_64* i686* aarch64* arm*"
 wrksrc=$pkgname-$version
 create_wrksrc=yes
@@ -27,7 +27,7 @@ fi
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include/linux"
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include"

From f2dac251e59109cd7806addd61435669affc2054 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 08/16] bibletime: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/bibletime/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/bibletime/template b/srcpkgs/bibletime/template
index 559755a9dd6f..af3301e02365 100644
--- a/srcpkgs/bibletime/template
+++ b/srcpkgs/bibletime/template
@@ -4,7 +4,7 @@
 # to start.
 pkgname=bibletime
 version=3.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=/usr/share/xsl/docbook/html/chunk.xsl
  -DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=/usr/share/xsl/docbook/fo/docbook.xsl"
@@ -20,7 +20,7 @@ distfiles="https://github.com/bibletime/bibletime/releases/download/v${version}/
 checksum=d6beef62ad44b255e3dc4c5e89214bf01a0e85c9136073b0be12fca3d2b22622
 
 pre_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	if [ "$XBPS_WORDSIZE" = "32" ]; then
 		export _JAVA_OPTIONS="-Xmx1024m"
 	fi

From bc95781e31d8fc5a215528ffe731c06b9b60717d Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 09/16] davmail: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/davmail/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/davmail/template b/srcpkgs/davmail/template
index 0482c0dce531..b739bf6b8bb6 100644
--- a/srcpkgs/davmail/template
+++ b/srcpkgs/davmail/template
@@ -1,7 +1,7 @@
 # Template file for 'davmail'
 pkgname=davmail
 version=5.5.1
-revision=2
+revision=3
 _commit=3299
 wrksrc=davmail-src-${version}-${_commit}
 hostmakedepends="openjdk8 apache-ant"
@@ -13,7 +13,7 @@ distfiles="${SOURCEFORGE_SITE}/davmail/davmail-src-${version}-${_commit}.tgz"
 checksum=63e14eeda3fed2a1a5c55f864a8832f8842d597e797ca1e8874c9b66b811f508
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 
 	ant jar

From f1ad61253a612a3c431fff782207d1b825320485 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 10/16] freeplane: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/freeplane/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freeplane/template b/srcpkgs/freeplane/template
index 2e7adb76ea4a..fa4eeb5e80ba 100644
--- a/srcpkgs/freeplane/template
+++ b/srcpkgs/freeplane/template
@@ -1,7 +1,7 @@
 # Template file for 'freeplane'
 pkgname=freeplane
 version=1.9.12
-revision=1
+revision=2
 wrksrc="freeplane-release-${version}"
 hostmakedepends="apache-ant openjdk8 unzip gradle"
 depends="virtual?java-runtime"
@@ -23,7 +23,7 @@ esac
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	gradle format_translation binZip -x test
 }

From 6162606bde1f02e060b3e7d0069812e1c213e32b Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 11/16] freerouting: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/freerouting/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freerouting/template b/srcpkgs/freerouting/template
index f643eabdb6fe..bfde02fc9e29 100644
--- a/srcpkgs/freerouting/template
+++ b/srcpkgs/freerouting/template
@@ -1,7 +1,7 @@
 # Template file for 'freerouting'
 pkgname=freerouting
 version=1.4.5.1
-revision=1
+revision=2
 hostmakedepends="dos2unix gradle openjdk11"
 depends="openjdk11"
 short_desc="Advanced PCB autorouter"
@@ -21,7 +21,7 @@ post_extract() {
 }
 
 do_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	gradle assemble
 }
 

From 5f06e5c4fd92adc99ec5ef20961d44cf3639f666 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 12/16] java-commons-io: fix name of
 etc/profile.d/10_openjdk*.sh in template

---
 srcpkgs/java-commons-io/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/java-commons-io/template b/srcpkgs/java-commons-io/template
index e91dcc87b8b5..5b8413e2a03d 100644
--- a/srcpkgs/java-commons-io/template
+++ b/srcpkgs/java-commons-io/template
@@ -2,7 +2,7 @@
 _origname=commons-io
 pkgname=java-commons-io
 version=2.6
-revision=2
+revision=3
 wrksrc="${_origname}-${version}-src"
 hostmakedepends="openjdk8 apache-maven which"
 depends="virtual?java-runtime"
@@ -19,7 +19,7 @@ case "$XBPS_MACHINE" in
 esac
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	mvn package -Dmaven.test.skip=true
 }
 

From c869917671af593c2a4ecf4ed028c6df9d529b7f Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 13/16] jedit: fix name of /etc/profile.d/10_openjdk*.sh,
 hard-code openjdk11

---
 srcpkgs/jedit/files/jedit | 4 +---
 srcpkgs/jedit/template    | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/jedit/files/jedit b/srcpkgs/jedit/files/jedit
index 622bb9171864..706d2f8dd45c 100644
--- a/srcpkgs/jedit/files/jedit
+++ b/srcpkgs/jedit/files/jedit
@@ -1,10 +1,8 @@
 #!/bin/sh
 
 # openjdk11 is required
-. /etc/profile.d/10_openjdk11.sh
-
 # default to gtk3, use antialiased fonts
-exec "${JAVA_HOME}/bin/java" \
+exec "/usr/lib/jvm/openjdk11/bin/java" \
     -Djdk.gtk.version=3 \
     -Dawt.useSystemAAFontSettings=on \
     -Dswing.aatext=true \
diff --git a/srcpkgs/jedit/template b/srcpkgs/jedit/template
index cf7ac8cdd201..19ca4ac3df1f 100644
--- a/srcpkgs/jedit/template
+++ b/srcpkgs/jedit/template
@@ -1,7 +1,7 @@
 # Template file for 'jedit'
 pkgname=jedit
 version=5.6.0
-revision=1
+revision=2
 wrksrc=jEdit
 hostmakedepends="apache-ant openjdk11 docbook-xsl"
 depends="openjdk11 desktop-file-utils"
@@ -19,7 +19,7 @@ post_patch() {
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	ant -propertyfile ${FILESDIR}/build.properties build
 	ant -propertyfile ${FILESDIR}/build.properties docs-html

From db30eb9beb7468c50192df9a303664e344ae35be Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 14/16] kodi: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/kodi/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index da81c7e2d0a5..b4eeacdab624 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -1,7 +1,7 @@
 # Template file for 'kodi'
 pkgname=kodi
 version=19.4
-revision=1
+revision=2
 _codename="Matrix"
 wrksrc="xbmc-${version}-${_codename}"
 build_style=cmake
@@ -111,7 +111,7 @@ pre_configure() {
 		xargs sed -i  -e "s;-isystem;-I;g"
 	fi
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	# Build tools needed to run on the host
 	if [ "$CROSS_BUILD" ]; then

From 854f57283a7c2700e6f8f28038274ab33d82a662 Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 15/16] lightzone: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/lightzone/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/lightzone/template b/srcpkgs/lightzone/template
index 13242f01cc77..261626fb9dff 100644
--- a/srcpkgs/lightzone/template
+++ b/srcpkgs/lightzone/template
@@ -1,7 +1,7 @@
 # Template file for 'lightzone'
 pkgname=lightzone
 version=4.2.2
-revision=1
+revision=2
 _ivy_version=2.4.0
 wrksrc=LightZone-${version}
 hostmakedepends="automake git openjdk11 apache-ant javahelp2 rsync pkg-config"
@@ -29,7 +29,7 @@ do_build() {
 	vsed -i lightcrafts/jnisrc/tiff/GNUmakefile \
 		-e "s;\./configure;& --host=${XBPS_MACHINE%-musl};"
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	cd linux
 	TARGET=${XBPS_TARGET_MACHINE%-musl} ant jar
 }

From 6a79882dcd9d60775e8a45f9d4700dd1d799ab4e Mon Sep 17 00:00:00 2001
From: classabbyamp <dev@kb6.ee>
Date: Sat, 2 Apr 2022 22:28:44 -0400
Subject: [PATCH 16/16] plantuml: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/plantuml/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/plantuml/template b/srcpkgs/plantuml/template
index fff4ec18b203..85259ce2ca6b 100644
--- a/srcpkgs/plantuml/template
+++ b/srcpkgs/plantuml/template
@@ -2,7 +2,7 @@
 pkgname=plantuml
 reverts="8047_1 8053_1 8059_1"
 version=1.2021.14
-revision=1
+revision=2
 create_wrksrc=yes
 hostmakedepends="apache-ant openjdk8"
 depends="virtual?java-environment graphviz"
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/plantuml/plantuml-gplv2-${version}.tar.gz"
 checksum=468aeaaea0742d8312d0f2f709df140e599967d8284fc0555f842fd0a6fe6941
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 	ant
 	mv ${pkgname}.jar ${pkgname}-${version}.jar

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (18 preceding siblings ...)
  2022-04-10 17:25 ` classabbyamp
@ 2022-04-19 15:13 ` classabbyamp
  2022-04-21 17:20 ` classabbyamp
                   ` (6 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-19 15:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 19916 bytes --]

From 0eed20ebe08db6f093865f4765d1f8f1c2a9dcd4 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 01/16] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 1ff97ca5f9be8a91e884262711c5df3eb7b2bf6c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 02/16] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index c10b5216435b..d37e6e11cbfd 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u272b02
-revision=1
+revision=2
 _jdk_update=272
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
@@ -236,6 +236,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_final_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_final_jdk_home}/jre/bin/jjs
@@ -251,10 +253,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_final_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_final_jdk_home}/jre}
-EOF
 	}
 }
 

From 424683dd5767759486fd786a71e8831032186e76 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 03/16] openjdk11: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From e03e1fe75bd0b4a6de542e05d4847d1d06a941d1 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 04/16] openjdk17: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk17/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 7e368f9b687e..00e722109b10 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk17'
 pkgname=openjdk17
 version=17.0.3+5
-revision=1
+revision=2
 _gtest_ver=1.8.1
 _java_ver="${version%%.*}"
 _jdk_update="${version#*+}"
@@ -174,6 +174,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -189,11 +191,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

From 38326d376a10756be21602e6976f370d5f631232 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:32 -0400
Subject: [PATCH 05/16] apache-fop: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/apache-fop/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-fop/template b/srcpkgs/apache-fop/template
index 96ab59bce8b3..3b7c917a7c09 100644
--- a/srcpkgs/apache-fop/template
+++ b/srcpkgs/apache-fop/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-fop'
 pkgname=apache-fop
 version=2.5
-revision=2
+revision=3
 wrksrc="fop-${version}"
 build_wrksrc="fop"
 hostmakedepends="openjdk8 apache-ant"
@@ -18,7 +18,7 @@ conf_files="/etc/fop.conf"
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	ant package
 }
 do_install() {

From 7b0d43496148c51a685ce88d6fdde4ef7ec00867 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:35 -0400
Subject: [PATCH 06/16] apache-maven: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/apache-maven/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-maven/template b/srcpkgs/apache-maven/template
index c9603329c2cd..cc1e3e561634 100644
--- a/srcpkgs/apache-maven/template
+++ b/srcpkgs/apache-maven/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-maven'
 pkgname=apache-maven
 version=3.6.3
-revision=2
+revision=3
 hostmakedepends="openjdk8"
 depends="virtual?java-environment which"
 short_desc="Software project management and comprehension tool"
@@ -15,7 +15,7 @@ checksum="7c1c990ba64dd4f88688120cc2ec93bf33dd500d2a62ae5cd57bd4b7f6335c07
 replaces="apache-maven-bin>=0"
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	./bin/mvn package -DskipTests -Drat.skip=true -Dmaven.repo.local=repo -DdistributionTargetDir=${DESTDIR}/usr/lib/${pkgname}
 }
 

From cef89a1a540cd99925d3a533383ade3d39fa67eb Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:36 -0400
Subject: [PATCH 07/16] arduino: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/arduino/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/arduino/template b/srcpkgs/arduino/template
index 19daa0c1b1e8..485d24ad5a28 100644
--- a/srcpkgs/arduino/template
+++ b/srcpkgs/arduino/template
@@ -1,7 +1,7 @@
 # Template file for 'arduino'
 pkgname=arduino
 version=1.8.19
-revision=1
+revision=2
 archs="x86_64* i686* aarch64* arm*"
 wrksrc=$pkgname-$version
 create_wrksrc=yes
@@ -27,7 +27,7 @@ fi
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include/linux"
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include"

From 700cab50e97b3f92d6991fd736b9fce7a2f59582 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 08/16] bibletime: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/bibletime/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/bibletime/template b/srcpkgs/bibletime/template
index 559755a9dd6f..af3301e02365 100644
--- a/srcpkgs/bibletime/template
+++ b/srcpkgs/bibletime/template
@@ -4,7 +4,7 @@
 # to start.
 pkgname=bibletime
 version=3.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=/usr/share/xsl/docbook/html/chunk.xsl
  -DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=/usr/share/xsl/docbook/fo/docbook.xsl"
@@ -20,7 +20,7 @@ distfiles="https://github.com/bibletime/bibletime/releases/download/v${version}/
 checksum=d6beef62ad44b255e3dc4c5e89214bf01a0e85c9136073b0be12fca3d2b22622
 
 pre_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	if [ "$XBPS_WORDSIZE" = "32" ]; then
 		export _JAVA_OPTIONS="-Xmx1024m"
 	fi

From 802d44bf85c4ef8de05a14d3a44b5e2c9057dd69 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 09/16] davmail: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/davmail/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/davmail/template b/srcpkgs/davmail/template
index 0482c0dce531..b739bf6b8bb6 100644
--- a/srcpkgs/davmail/template
+++ b/srcpkgs/davmail/template
@@ -1,7 +1,7 @@
 # Template file for 'davmail'
 pkgname=davmail
 version=5.5.1
-revision=2
+revision=3
 _commit=3299
 wrksrc=davmail-src-${version}-${_commit}
 hostmakedepends="openjdk8 apache-ant"
@@ -13,7 +13,7 @@ distfiles="${SOURCEFORGE_SITE}/davmail/davmail-src-${version}-${_commit}.tgz"
 checksum=63e14eeda3fed2a1a5c55f864a8832f8842d597e797ca1e8874c9b66b811f508
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 
 	ant jar

From 092df7388138796e928e1d11fb6451435c551e0c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 10/16] freeplane: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/freeplane/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freeplane/template b/srcpkgs/freeplane/template
index 2e7adb76ea4a..fa4eeb5e80ba 100644
--- a/srcpkgs/freeplane/template
+++ b/srcpkgs/freeplane/template
@@ -1,7 +1,7 @@
 # Template file for 'freeplane'
 pkgname=freeplane
 version=1.9.12
-revision=1
+revision=2
 wrksrc="freeplane-release-${version}"
 hostmakedepends="apache-ant openjdk8 unzip gradle"
 depends="virtual?java-runtime"
@@ -23,7 +23,7 @@ esac
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	gradle format_translation binZip -x test
 }

From c2f71d5b647a91d302ff5c8ea14cd949ba84abfd Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 11/16] freerouting: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/freerouting/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freerouting/template b/srcpkgs/freerouting/template
index f643eabdb6fe..bfde02fc9e29 100644
--- a/srcpkgs/freerouting/template
+++ b/srcpkgs/freerouting/template
@@ -1,7 +1,7 @@
 # Template file for 'freerouting'
 pkgname=freerouting
 version=1.4.5.1
-revision=1
+revision=2
 hostmakedepends="dos2unix gradle openjdk11"
 depends="openjdk11"
 short_desc="Advanced PCB autorouter"
@@ -21,7 +21,7 @@ post_extract() {
 }
 
 do_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	gradle assemble
 }
 

From 18a7229369b692ecfaee5a1962d7daacbfe85e10 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 12/16] java-commons-io: fix name of
 etc/profile.d/10_openjdk*.sh in template

---
 srcpkgs/java-commons-io/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/java-commons-io/template b/srcpkgs/java-commons-io/template
index e91dcc87b8b5..5b8413e2a03d 100644
--- a/srcpkgs/java-commons-io/template
+++ b/srcpkgs/java-commons-io/template
@@ -2,7 +2,7 @@
 _origname=commons-io
 pkgname=java-commons-io
 version=2.6
-revision=2
+revision=3
 wrksrc="${_origname}-${version}-src"
 hostmakedepends="openjdk8 apache-maven which"
 depends="virtual?java-runtime"
@@ -19,7 +19,7 @@ case "$XBPS_MACHINE" in
 esac
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	mvn package -Dmaven.test.skip=true
 }
 

From 6a239e64c78a9e4d0124f77fb7db63aaa1dc9613 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 13/16] jedit: fix name of /etc/profile.d/10_openjdk*.sh,
 hard-code openjdk11

---
 srcpkgs/jedit/files/jedit | 4 +---
 srcpkgs/jedit/template    | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/jedit/files/jedit b/srcpkgs/jedit/files/jedit
index 622bb9171864..706d2f8dd45c 100644
--- a/srcpkgs/jedit/files/jedit
+++ b/srcpkgs/jedit/files/jedit
@@ -1,10 +1,8 @@
 #!/bin/sh
 
 # openjdk11 is required
-. /etc/profile.d/10_openjdk11.sh
-
 # default to gtk3, use antialiased fonts
-exec "${JAVA_HOME}/bin/java" \
+exec "/usr/lib/jvm/openjdk11/bin/java" \
     -Djdk.gtk.version=3 \
     -Dawt.useSystemAAFontSettings=on \
     -Dswing.aatext=true \
diff --git a/srcpkgs/jedit/template b/srcpkgs/jedit/template
index cf7ac8cdd201..19ca4ac3df1f 100644
--- a/srcpkgs/jedit/template
+++ b/srcpkgs/jedit/template
@@ -1,7 +1,7 @@
 # Template file for 'jedit'
 pkgname=jedit
 version=5.6.0
-revision=1
+revision=2
 wrksrc=jEdit
 hostmakedepends="apache-ant openjdk11 docbook-xsl"
 depends="openjdk11 desktop-file-utils"
@@ -19,7 +19,7 @@ post_patch() {
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	ant -propertyfile ${FILESDIR}/build.properties build
 	ant -propertyfile ${FILESDIR}/build.properties docs-html

From 408b7f1acd06c460e9eab2b46446f6e907b62334 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 14/16] kodi: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/kodi/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index da81c7e2d0a5..b4eeacdab624 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -1,7 +1,7 @@
 # Template file for 'kodi'
 pkgname=kodi
 version=19.4
-revision=1
+revision=2
 _codename="Matrix"
 wrksrc="xbmc-${version}-${_codename}"
 build_style=cmake
@@ -111,7 +111,7 @@ pre_configure() {
 		xargs sed -i  -e "s;-isystem;-I;g"
 	fi
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	# Build tools needed to run on the host
 	if [ "$CROSS_BUILD" ]; then

From 0e57c4de1a1a4b8b46cd38882c116fb0c6273a29 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 15/16] lightzone: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/lightzone/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/lightzone/template b/srcpkgs/lightzone/template
index 13242f01cc77..261626fb9dff 100644
--- a/srcpkgs/lightzone/template
+++ b/srcpkgs/lightzone/template
@@ -1,7 +1,7 @@
 # Template file for 'lightzone'
 pkgname=lightzone
 version=4.2.2
-revision=1
+revision=2
 _ivy_version=2.4.0
 wrksrc=LightZone-${version}
 hostmakedepends="automake git openjdk11 apache-ant javahelp2 rsync pkg-config"
@@ -29,7 +29,7 @@ do_build() {
 	vsed -i lightcrafts/jnisrc/tiff/GNUmakefile \
 		-e "s;\./configure;& --host=${XBPS_MACHINE%-musl};"
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	cd linux
 	TARGET=${XBPS_TARGET_MACHINE%-musl} ant jar
 }

From 6e609fa99106185246e7988b3cea6955053579d2 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:44 -0400
Subject: [PATCH 16/16] plantuml: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/plantuml/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/plantuml/template b/srcpkgs/plantuml/template
index fff4ec18b203..85259ce2ca6b 100644
--- a/srcpkgs/plantuml/template
+++ b/srcpkgs/plantuml/template
@@ -2,7 +2,7 @@
 pkgname=plantuml
 reverts="8047_1 8053_1 8059_1"
 version=1.2021.14
-revision=1
+revision=2
 create_wrksrc=yes
 hostmakedepends="apache-ant openjdk8"
 depends="virtual?java-environment graphviz"
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/plantuml/plantuml-gplv2-${version}.tar.gz"
 checksum=468aeaaea0742d8312d0f2f709df140e599967d8284fc0555f842fd0a6fe6941
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 	ant
 	mv ${pkgname}.jar ${pkgname}-${version}.jar

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (19 preceding siblings ...)
  2022-04-19 15:13 ` classabbyamp
@ 2022-04-21 17:20 ` classabbyamp
  2022-04-28  1:34 ` classabbyamp
                   ` (5 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-21 17:20 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 19903 bytes --]

From b5561b8bfaf0a8978ab0004801862058ab27a7c1 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 01/16] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From bca3df0373de8818c4971313b3e553a7af1f8383 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 02/16] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 9cced29b4be9..9832b18555a6 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u322b04
-revision=1
+revision=2
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
 _jdk_build="${version#*b}"
@@ -221,6 +221,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_jdk_home}/jre/bin/jjs
@@ -236,10 +238,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_jdk_home}/jre}
-EOF
 	}
 }
 

From dd2401bc09bf4a38b4798c26fb14bfd826041894 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 03/16] openjdk11: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk11/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index bd38c0c5c010..40eac75d8a32 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+5
-revision=2
+revision=3
 _java_ver="${version%%.*}"
 _openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -31,7 +31,7 @@ hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
 makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
  giflib-devel libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel
  fontconfig-devel zlib-devel lcms2-devel"
-depends="fontconfig"
+depends="fontconfig xbps-triggers>=0.122_1"
 short_desc="OpenJDK Java Development Kit"
 maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
 license="GPL-2.0-only WITH Classpath-exception-2.0"
@@ -40,6 +40,7 @@ distfiles="https://hg.openjdk.java.net/jdk-updates/jdk${_java_ver}u/archive/jdk-
 checksum=ff0edaf800c76ae435840365a9205a5f7277a5a2fd3c79ad874522a15c213559
 provides="java-environment-${version}_1 java-runtime-${version}_1"
 shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
+triggers="openjdk-profile"
 
 # Build is still parallel, but don't use -jN.
 disable_parallel_build=yes
@@ -158,10 +159,6 @@ do_install() {
 	mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/usr/lib/jvm/openjdk${_java_ver}/lib/security/
 	chmod -R ugo+rw ./ca
 	rm -Rf ./ca
-	vmkdir etc/profile.d
-	cat >>${DESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
 	vlicense ASSEMBLY_EXCEPTION
 	vlicense LICENSE
 }

From c60c2fff04bee2552c8db7fc6118a6004ef6c972 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 04/16] openjdk17: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk17/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 2554e49c54ea..f60e96f79082 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk17'
 pkgname=openjdk17
 version=17.0.3+7
-revision=1
+revision=2
 _gtest_ver=1.8.1
 _java_ver="${version%%.*}"
 _jdk_update="${version#*+}"
@@ -170,6 +170,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -185,11 +187,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

From cdc8d194dfa37caa03291eca752e02dd3a238fa2 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:32 -0400
Subject: [PATCH 05/16] apache-fop: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/apache-fop/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-fop/template b/srcpkgs/apache-fop/template
index 96ab59bce8b3..3b7c917a7c09 100644
--- a/srcpkgs/apache-fop/template
+++ b/srcpkgs/apache-fop/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-fop'
 pkgname=apache-fop
 version=2.5
-revision=2
+revision=3
 wrksrc="fop-${version}"
 build_wrksrc="fop"
 hostmakedepends="openjdk8 apache-ant"
@@ -18,7 +18,7 @@ conf_files="/etc/fop.conf"
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	ant package
 }
 do_install() {

From 97cd1160b7cdf5fb7e89d56c982a42d52c6e7368 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:35 -0400
Subject: [PATCH 06/16] apache-maven: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/apache-maven/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-maven/template b/srcpkgs/apache-maven/template
index c9603329c2cd..cc1e3e561634 100644
--- a/srcpkgs/apache-maven/template
+++ b/srcpkgs/apache-maven/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-maven'
 pkgname=apache-maven
 version=3.6.3
-revision=2
+revision=3
 hostmakedepends="openjdk8"
 depends="virtual?java-environment which"
 short_desc="Software project management and comprehension tool"
@@ -15,7 +15,7 @@ checksum="7c1c990ba64dd4f88688120cc2ec93bf33dd500d2a62ae5cd57bd4b7f6335c07
 replaces="apache-maven-bin>=0"
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	./bin/mvn package -DskipTests -Drat.skip=true -Dmaven.repo.local=repo -DdistributionTargetDir=${DESTDIR}/usr/lib/${pkgname}
 }
 

From 6058c1352b8c59c823a3540e853b9725d69734b8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:36 -0400
Subject: [PATCH 07/16] arduino: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/arduino/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/arduino/template b/srcpkgs/arduino/template
index 19daa0c1b1e8..485d24ad5a28 100644
--- a/srcpkgs/arduino/template
+++ b/srcpkgs/arduino/template
@@ -1,7 +1,7 @@
 # Template file for 'arduino'
 pkgname=arduino
 version=1.8.19
-revision=1
+revision=2
 archs="x86_64* i686* aarch64* arm*"
 wrksrc=$pkgname-$version
 create_wrksrc=yes
@@ -27,7 +27,7 @@ fi
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include/linux"
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include"

From bb155a48cd6eb37c5b1e57027b716fc12255ef4c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 08/16] bibletime: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/bibletime/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/bibletime/template b/srcpkgs/bibletime/template
index 559755a9dd6f..af3301e02365 100644
--- a/srcpkgs/bibletime/template
+++ b/srcpkgs/bibletime/template
@@ -4,7 +4,7 @@
 # to start.
 pkgname=bibletime
 version=3.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=/usr/share/xsl/docbook/html/chunk.xsl
  -DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=/usr/share/xsl/docbook/fo/docbook.xsl"
@@ -20,7 +20,7 @@ distfiles="https://github.com/bibletime/bibletime/releases/download/v${version}/
 checksum=d6beef62ad44b255e3dc4c5e89214bf01a0e85c9136073b0be12fca3d2b22622
 
 pre_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	if [ "$XBPS_WORDSIZE" = "32" ]; then
 		export _JAVA_OPTIONS="-Xmx1024m"
 	fi

From 9445a56c96cc4f219f565308ed21d371125083f9 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 09/16] davmail: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/davmail/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/davmail/template b/srcpkgs/davmail/template
index 0482c0dce531..b739bf6b8bb6 100644
--- a/srcpkgs/davmail/template
+++ b/srcpkgs/davmail/template
@@ -1,7 +1,7 @@
 # Template file for 'davmail'
 pkgname=davmail
 version=5.5.1
-revision=2
+revision=3
 _commit=3299
 wrksrc=davmail-src-${version}-${_commit}
 hostmakedepends="openjdk8 apache-ant"
@@ -13,7 +13,7 @@ distfiles="${SOURCEFORGE_SITE}/davmail/davmail-src-${version}-${_commit}.tgz"
 checksum=63e14eeda3fed2a1a5c55f864a8832f8842d597e797ca1e8874c9b66b811f508
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 
 	ant jar

From 2965dc234df1e372898d7df6cb25b2a3582b13f8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 10/16] freeplane: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/freeplane/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freeplane/template b/srcpkgs/freeplane/template
index 2e7adb76ea4a..fa4eeb5e80ba 100644
--- a/srcpkgs/freeplane/template
+++ b/srcpkgs/freeplane/template
@@ -1,7 +1,7 @@
 # Template file for 'freeplane'
 pkgname=freeplane
 version=1.9.12
-revision=1
+revision=2
 wrksrc="freeplane-release-${version}"
 hostmakedepends="apache-ant openjdk8 unzip gradle"
 depends="virtual?java-runtime"
@@ -23,7 +23,7 @@ esac
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	gradle format_translation binZip -x test
 }

From 014e3748ad83fa79dde4b8c50b8aa6ac679a6c48 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 11/16] freerouting: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/freerouting/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freerouting/template b/srcpkgs/freerouting/template
index f643eabdb6fe..bfde02fc9e29 100644
--- a/srcpkgs/freerouting/template
+++ b/srcpkgs/freerouting/template
@@ -1,7 +1,7 @@
 # Template file for 'freerouting'
 pkgname=freerouting
 version=1.4.5.1
-revision=1
+revision=2
 hostmakedepends="dos2unix gradle openjdk11"
 depends="openjdk11"
 short_desc="Advanced PCB autorouter"
@@ -21,7 +21,7 @@ post_extract() {
 }
 
 do_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	gradle assemble
 }
 

From 73bc11f55bb72577baba4d31dbade5d7ef952ef7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 12/16] java-commons-io: fix name of
 etc/profile.d/10_openjdk*.sh in template

---
 srcpkgs/java-commons-io/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/java-commons-io/template b/srcpkgs/java-commons-io/template
index e91dcc87b8b5..5b8413e2a03d 100644
--- a/srcpkgs/java-commons-io/template
+++ b/srcpkgs/java-commons-io/template
@@ -2,7 +2,7 @@
 _origname=commons-io
 pkgname=java-commons-io
 version=2.6
-revision=2
+revision=3
 wrksrc="${_origname}-${version}-src"
 hostmakedepends="openjdk8 apache-maven which"
 depends="virtual?java-runtime"
@@ -19,7 +19,7 @@ case "$XBPS_MACHINE" in
 esac
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	mvn package -Dmaven.test.skip=true
 }
 

From 907bf45b077aa99a3789acccfdfe62c2b2221f56 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 13/16] jedit: fix name of /etc/profile.d/10_openjdk*.sh,
 hard-code openjdk11

---
 srcpkgs/jedit/files/jedit | 4 +---
 srcpkgs/jedit/template    | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/jedit/files/jedit b/srcpkgs/jedit/files/jedit
index 622bb9171864..706d2f8dd45c 100644
--- a/srcpkgs/jedit/files/jedit
+++ b/srcpkgs/jedit/files/jedit
@@ -1,10 +1,8 @@
 #!/bin/sh
 
 # openjdk11 is required
-. /etc/profile.d/10_openjdk11.sh
-
 # default to gtk3, use antialiased fonts
-exec "${JAVA_HOME}/bin/java" \
+exec "/usr/lib/jvm/openjdk11/bin/java" \
     -Djdk.gtk.version=3 \
     -Dawt.useSystemAAFontSettings=on \
     -Dswing.aatext=true \
diff --git a/srcpkgs/jedit/template b/srcpkgs/jedit/template
index cf7ac8cdd201..19ca4ac3df1f 100644
--- a/srcpkgs/jedit/template
+++ b/srcpkgs/jedit/template
@@ -1,7 +1,7 @@
 # Template file for 'jedit'
 pkgname=jedit
 version=5.6.0
-revision=1
+revision=2
 wrksrc=jEdit
 hostmakedepends="apache-ant openjdk11 docbook-xsl"
 depends="openjdk11 desktop-file-utils"
@@ -19,7 +19,7 @@ post_patch() {
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	ant -propertyfile ${FILESDIR}/build.properties build
 	ant -propertyfile ${FILESDIR}/build.properties docs-html

From a9613ced1b2b2956bf48eaf164e7103f2d0f8071 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 14/16] kodi: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/kodi/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index da81c7e2d0a5..b4eeacdab624 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -1,7 +1,7 @@
 # Template file for 'kodi'
 pkgname=kodi
 version=19.4
-revision=1
+revision=2
 _codename="Matrix"
 wrksrc="xbmc-${version}-${_codename}"
 build_style=cmake
@@ -111,7 +111,7 @@ pre_configure() {
 		xargs sed -i  -e "s;-isystem;-I;g"
 	fi
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	# Build tools needed to run on the host
 	if [ "$CROSS_BUILD" ]; then

From 5024804c37441a951541b68e5bf4d1cf73419bc4 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 15/16] lightzone: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/lightzone/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/lightzone/template b/srcpkgs/lightzone/template
index 13242f01cc77..261626fb9dff 100644
--- a/srcpkgs/lightzone/template
+++ b/srcpkgs/lightzone/template
@@ -1,7 +1,7 @@
 # Template file for 'lightzone'
 pkgname=lightzone
 version=4.2.2
-revision=1
+revision=2
 _ivy_version=2.4.0
 wrksrc=LightZone-${version}
 hostmakedepends="automake git openjdk11 apache-ant javahelp2 rsync pkg-config"
@@ -29,7 +29,7 @@ do_build() {
 	vsed -i lightcrafts/jnisrc/tiff/GNUmakefile \
 		-e "s;\./configure;& --host=${XBPS_MACHINE%-musl};"
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	cd linux
 	TARGET=${XBPS_TARGET_MACHINE%-musl} ant jar
 }

From aa3aae03bdff64302ac2b0efa7e08c52ad0c0b36 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:44 -0400
Subject: [PATCH 16/16] plantuml: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/plantuml/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/plantuml/template b/srcpkgs/plantuml/template
index fff4ec18b203..85259ce2ca6b 100644
--- a/srcpkgs/plantuml/template
+++ b/srcpkgs/plantuml/template
@@ -2,7 +2,7 @@
 pkgname=plantuml
 reverts="8047_1 8053_1 8059_1"
 version=1.2021.14
-revision=1
+revision=2
 create_wrksrc=yes
 hostmakedepends="apache-ant openjdk8"
 depends="virtual?java-environment graphviz"
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/plantuml/plantuml-gplv2-${version}.tar.gz"
 checksum=468aeaaea0742d8312d0f2f709df140e599967d8284fc0555f842fd0a6fe6941
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 	ant
 	mv ${pkgname}.jar ${pkgname}-${version}.jar

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (20 preceding siblings ...)
  2022-04-21 17:20 ` classabbyamp
@ 2022-04-28  1:34 ` classabbyamp
  2022-04-28  1:42 ` classabbyamp
                   ` (4 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-28  1:34 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages openjdk-javahome
https://github.com/void-linux/void-packages/pull/36250

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

A patch file from https://github.com/void-linux/void-packages/pull/36250.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-openjdk-javahome-36250.patch --]
[-- Type: text/x-diff, Size: 19310 bytes --]

From a62730ef9c16cfdaee20a89c3348471389604d47 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:09:47 -0400
Subject: [PATCH 01/16] xbps-triggers: add openjdk-profile trigger

This removes the need for each openjdk package to provide their own
/etc/profile.d entry, and fixes the conflict caused by each providing
their own.
---
 Manual.md                                   |  8 +++++
 srcpkgs/xbps-triggers/files/openjdk-profile | 39 +++++++++++++++++++++
 srcpkgs/xbps-triggers/template              |  2 +-
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile

diff --git a/Manual.md b/Manual.md
index 8ec755499bbe..e1d71fdee883 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,6 +62,7 @@ packages for XBPS, the `Void Linux` native packaging system.
 		* [kernel-hooks](#triggers_kernel_hooks)
 		* [mimedb](#triggers_mimedb)
 		* [mkdirs](#triggers_mkdirs)
+		* [openjdk-profile](#triggers_openjdk_profile)
 		* [pango-modules](#triggers_pango_module)
 		* [pycompile](#triggers_pycompile)
 		* [register-shell](#triggers_register_shell)
@@ -1997,6 +1998,13 @@ During removal it will delete the directory using `rmdir`.
 To include this trigger use the `make_dirs` variable, as the trigger won't do anything
 unless it is defined.
 
+<a id="triggers_openjdk_profile"></a>
+#### openjdk-profile
+
+The openjdk-profile trigger is responsible for creating an entry in /etc/profile.d that
+sets the `JAVA_HOME` environment variable to the currently-selected alternative for
+`/usr/bin/java` on installation. This trigger must be manually requested.
+
 <a id="triggers_pango_module"></a>
 #### pango-modules
 
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
new file mode 100755
index 000000000000..007d9cd9eedf
--- /dev/null
+++ b/srcpkgs/xbps-triggers/files/openjdk-profile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Adds an entry to /etc/profile.d for setting $JAVA_HOME.
+#
+# Arguments:	$ACTION = [run/targets]
+#		$TARGET = [post-install/pre-remove]
+#		$PKGNAME
+#		$VERSION
+#		$UPDATE = [yes/no]
+#
+ACTION="$1"
+TARGET="$2"
+PKGNAME="$3"
+VERSION="$4"
+UPDATE="$5"
+
+jdkprofile=etc/profile.d/openjdk.sh
+
+case "$ACTION" in
+targets)
+	echo "post-install"
+	;;
+run)
+	[ -f "$jdkprofile" ] && exit 0
+
+	cat > "$jdkprofile" <<'EOF'
+if _java_bin=$(readlink -e /usr/bin/java); then
+	_java_bin="${_java_bin%/bin/java}"
+	[ -d "${_java_bin}" ] && export JAVA_HOME="${JAVA_HOME:=${_java_bin}}"
+fi
+unset _java_bin
+EOF
+	;;
+*)
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 5de97d53c210..b1e4f34a4dde 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,6 +1,6 @@
 # Template file for 'xbps-triggers'
 pkgname=xbps-triggers
-version=0.121
+version=0.122
 revision=1
 bootstrap=yes
 short_desc="XBPS triggers for Void Linux"

From 78b0e4370a1b2daba368c988d2a119b85fd8640c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:02 -0400
Subject: [PATCH 02/16] openjdk8: move /etc/profile.d/10-openjdk*.sh to trigger

---
 srcpkgs/openjdk8/template | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 9cced29b4be9..9832b18555a6 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -4,7 +4,7 @@
 # TODO: config files?
 pkgname=openjdk8
 version=8u322b04
-revision=1
+revision=2
 _jdk_update="${version#*u}"
 _jdk_update="${_jdk_update%b*}"
 _jdk_build="${version#*b}"
@@ -221,6 +221,8 @@ openjdk8-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/jre/bin/java
 	 java:/usr/bin/jjs:/${_jdk_home}/jre/bin/jjs
@@ -236,10 +238,6 @@ openjdk8-jre_package() {
 	"
 	pkg_install() {
 		vmove ${_jdk_home}/jre
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk8.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/${_jdk_home}/jre}
-EOF
 	}
 }
 

From 35d4e0df96c87cfcd17e2bf83f80eb1c9d7bea98 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:04 -0400
Subject: [PATCH 03/16] openjdk11: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk11/template | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 711376c10824..45c775856fa9 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
 version=11.0.12+7
-revision=1
+revision=2
 _java_ver="${version%%.*}"
 _jdk_home="usr/lib/jvm/openjdk${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
@@ -160,7 +160,8 @@ openjdk11-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
-	depends="fontconfig"
+	depends="fontconfig xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jjs:/${_jdk_home}/bin/jjs
@@ -179,11 +180,6 @@ openjdk11-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk11.sh <<EOF
-export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver}}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

From a4b81660184a3cbb8b72e309b55f2d8550f20147 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sun, 20 Mar 2022 16:12:05 -0400
Subject: [PATCH 04/16] openjdk17: move /etc/profile.d/10-openjdk*.sh to
 trigger

---
 srcpkgs/openjdk17/template | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index 2554e49c54ea..f60e96f79082 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,7 +1,7 @@
 # Template file for 'openjdk17'
 pkgname=openjdk17
 version=17.0.3+7
-revision=1
+revision=2
 _gtest_ver=1.8.1
 _java_ver="${version%%.*}"
 _jdk_update="${version#*+}"
@@ -170,6 +170,8 @@ openjdk17-jre_package() {
 	shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
 	short_desc+=" - runtime components"
 	provides="java-runtime-${version}_1"
+	depends="xbps-triggers>=0.122_1"
+	triggers="openjdk-profile"
 	alternatives="
 	 java:/usr/bin/java:/${_jdk_home}/bin/java
 	 java:/usr/bin/jfr:/${_jdk_home}/bin/jfr
@@ -185,11 +187,6 @@ openjdk17-jre_package() {
 			vmove $_jdk_home/$f
 		done
 
-		vmkdir etc/profile.d
-		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk17.sh <<-EOF
-export JAVA_HOME=\${JAVA_HOME=/$_jdk_home}
-EOF
-
 		vlicense ASSEMBLY_EXCEPTION
 		vlicense LICENSE
 	}

From 0573b314788f8490ab04837d045a5774b1504115 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:32 -0400
Subject: [PATCH 05/16] apache-fop: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/apache-fop/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-fop/template b/srcpkgs/apache-fop/template
index 96ab59bce8b3..3b7c917a7c09 100644
--- a/srcpkgs/apache-fop/template
+++ b/srcpkgs/apache-fop/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-fop'
 pkgname=apache-fop
 version=2.5
-revision=2
+revision=3
 wrksrc="fop-${version}"
 build_wrksrc="fop"
 hostmakedepends="openjdk8 apache-ant"
@@ -18,7 +18,7 @@ conf_files="/etc/fop.conf"
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	ant package
 }
 do_install() {

From 061897c356f8da49ae7d09bc0b21a56035097549 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:35 -0400
Subject: [PATCH 06/16] apache-maven: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/apache-maven/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/apache-maven/template b/srcpkgs/apache-maven/template
index c9603329c2cd..cc1e3e561634 100644
--- a/srcpkgs/apache-maven/template
+++ b/srcpkgs/apache-maven/template
@@ -1,7 +1,7 @@
 # Template file for 'apache-maven'
 pkgname=apache-maven
 version=3.6.3
-revision=2
+revision=3
 hostmakedepends="openjdk8"
 depends="virtual?java-environment which"
 short_desc="Software project management and comprehension tool"
@@ -15,7 +15,7 @@ checksum="7c1c990ba64dd4f88688120cc2ec93bf33dd500d2a62ae5cd57bd4b7f6335c07
 replaces="apache-maven-bin>=0"
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	./bin/mvn package -DskipTests -Drat.skip=true -Dmaven.repo.local=repo -DdistributionTargetDir=${DESTDIR}/usr/lib/${pkgname}
 }
 

From 853e6f163995b3e066d21a00b3ebf0fa0e9c32cb Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:36 -0400
Subject: [PATCH 07/16] arduino: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/arduino/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/arduino/template b/srcpkgs/arduino/template
index 19daa0c1b1e8..485d24ad5a28 100644
--- a/srcpkgs/arduino/template
+++ b/srcpkgs/arduino/template
@@ -1,7 +1,7 @@
 # Template file for 'arduino'
 pkgname=arduino
 version=1.8.19
-revision=1
+revision=2
 archs="x86_64* i686* aarch64* arm*"
 wrksrc=$pkgname-$version
 create_wrksrc=yes
@@ -27,7 +27,7 @@ fi
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include/linux"
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/lib/jvm/java-1.8-openjdk/include"

From e5a0659eb563918fc9b465abcdbf1bb066a0ac08 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 08/16] bibletime: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/bibletime/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/bibletime/template b/srcpkgs/bibletime/template
index 559755a9dd6f..af3301e02365 100644
--- a/srcpkgs/bibletime/template
+++ b/srcpkgs/bibletime/template
@@ -4,7 +4,7 @@
 # to start.
 pkgname=bibletime
 version=3.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=/usr/share/xsl/docbook/html/chunk.xsl
  -DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=/usr/share/xsl/docbook/fo/docbook.xsl"
@@ -20,7 +20,7 @@ distfiles="https://github.com/bibletime/bibletime/releases/download/v${version}/
 checksum=d6beef62ad44b255e3dc4c5e89214bf01a0e85c9136073b0be12fca3d2b22622
 
 pre_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	if [ "$XBPS_WORDSIZE" = "32" ]; then
 		export _JAVA_OPTIONS="-Xmx1024m"
 	fi

From 159a260c3429aa41edc282e14679c941f00b5547 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:37 -0400
Subject: [PATCH 09/16] davmail: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/davmail/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/davmail/template b/srcpkgs/davmail/template
index 0482c0dce531..b739bf6b8bb6 100644
--- a/srcpkgs/davmail/template
+++ b/srcpkgs/davmail/template
@@ -1,7 +1,7 @@
 # Template file for 'davmail'
 pkgname=davmail
 version=5.5.1
-revision=2
+revision=3
 _commit=3299
 wrksrc=davmail-src-${version}-${_commit}
 hostmakedepends="openjdk8 apache-ant"
@@ -13,7 +13,7 @@ distfiles="${SOURCEFORGE_SITE}/davmail/davmail-src-${version}-${_commit}.tgz"
 checksum=63e14eeda3fed2a1a5c55f864a8832f8842d597e797ca1e8874c9b66b811f508
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 
 	ant jar

From 48e2945d346238a9a6ab08fe0f88e7344021e5c0 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 10/16] freeplane: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/freeplane/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freeplane/template b/srcpkgs/freeplane/template
index 2e7adb76ea4a..fa4eeb5e80ba 100644
--- a/srcpkgs/freeplane/template
+++ b/srcpkgs/freeplane/template
@@ -1,7 +1,7 @@
 # Template file for 'freeplane'
 pkgname=freeplane
 version=1.9.12
-revision=1
+revision=2
 wrksrc="freeplane-release-${version}"
 hostmakedepends="apache-ant openjdk8 unzip gradle"
 depends="virtual?java-runtime"
@@ -23,7 +23,7 @@ esac
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 
 	gradle format_translation binZip -x test
 }

From ffa0c03c8daf4b73241a2f11e34710796f25f442 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:38 -0400
Subject: [PATCH 11/16] freerouting: fix name of etc/profile.d/10_openjdk*.sh
 in template

---
 srcpkgs/freerouting/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/freerouting/template b/srcpkgs/freerouting/template
index f643eabdb6fe..bfde02fc9e29 100644
--- a/srcpkgs/freerouting/template
+++ b/srcpkgs/freerouting/template
@@ -1,7 +1,7 @@
 # Template file for 'freerouting'
 pkgname=freerouting
 version=1.4.5.1
-revision=1
+revision=2
 hostmakedepends="dos2unix gradle openjdk11"
 depends="openjdk11"
 short_desc="Advanced PCB autorouter"
@@ -21,7 +21,7 @@ post_extract() {
 }
 
 do_build() {
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	gradle assemble
 }
 

From 653b2f7f810e7df153960a78d0862ddab3cfd163 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 12/16] java-commons-io: fix name of
 etc/profile.d/10_openjdk*.sh in template

---
 srcpkgs/java-commons-io/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/java-commons-io/template b/srcpkgs/java-commons-io/template
index e91dcc87b8b5..5b8413e2a03d 100644
--- a/srcpkgs/java-commons-io/template
+++ b/srcpkgs/java-commons-io/template
@@ -2,7 +2,7 @@
 _origname=commons-io
 pkgname=java-commons-io
 version=2.6
-revision=2
+revision=3
 wrksrc="${_origname}-${version}-src"
 hostmakedepends="openjdk8 apache-maven which"
 depends="virtual?java-runtime"
@@ -19,7 +19,7 @@ case "$XBPS_MACHINE" in
 esac
 
 do_build() {
-	source /etc/profile.d/10_openjdk8.sh
+	source /etc/profile.d/openjdk.sh
 	mvn package -Dmaven.test.skip=true
 }
 

From db45bde860b3ce5ff021f99bed717488ee50c826 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:39 -0400
Subject: [PATCH 13/16] jedit: fix name of /etc/profile.d/10_openjdk*.sh,
 hard-code openjdk11

---
 srcpkgs/jedit/files/jedit | 4 +---
 srcpkgs/jedit/template    | 4 ++--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/jedit/files/jedit b/srcpkgs/jedit/files/jedit
index 622bb9171864..706d2f8dd45c 100644
--- a/srcpkgs/jedit/files/jedit
+++ b/srcpkgs/jedit/files/jedit
@@ -1,10 +1,8 @@
 #!/bin/sh
 
 # openjdk11 is required
-. /etc/profile.d/10_openjdk11.sh
-
 # default to gtk3, use antialiased fonts
-exec "${JAVA_HOME}/bin/java" \
+exec "/usr/lib/jvm/openjdk11/bin/java" \
     -Djdk.gtk.version=3 \
     -Dawt.useSystemAAFontSettings=on \
     -Dswing.aatext=true \
diff --git a/srcpkgs/jedit/template b/srcpkgs/jedit/template
index cf7ac8cdd201..19ca4ac3df1f 100644
--- a/srcpkgs/jedit/template
+++ b/srcpkgs/jedit/template
@@ -1,7 +1,7 @@
 # Template file for 'jedit'
 pkgname=jedit
 version=5.6.0
-revision=1
+revision=2
 wrksrc=jEdit
 hostmakedepends="apache-ant openjdk11 docbook-xsl"
 depends="openjdk11 desktop-file-utils"
@@ -19,7 +19,7 @@ post_patch() {
 
 do_build() {
 	. /etc/profile.d/apache-ant.sh
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	ant -propertyfile ${FILESDIR}/build.properties build
 	ant -propertyfile ${FILESDIR}/build.properties docs-html

From b858af483ace90e0ea4e1eb84d167d322f11b33e Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 14/16] kodi: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/kodi/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index da81c7e2d0a5..b4eeacdab624 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -1,7 +1,7 @@
 # Template file for 'kodi'
 pkgname=kodi
 version=19.4
-revision=1
+revision=2
 _codename="Matrix"
 wrksrc="xbmc-${version}-${_codename}"
 build_style=cmake
@@ -111,7 +111,7 @@ pre_configure() {
 		xargs sed -i  -e "s;-isystem;-I;g"
 	fi
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 
 	# Build tools needed to run on the host
 	if [ "$CROSS_BUILD" ]; then

From f7926ce5dd0efb207928420e2723dd7eac06e4b2 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:40 -0400
Subject: [PATCH 15/16] lightzone: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/lightzone/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/lightzone/template b/srcpkgs/lightzone/template
index 13242f01cc77..261626fb9dff 100644
--- a/srcpkgs/lightzone/template
+++ b/srcpkgs/lightzone/template
@@ -1,7 +1,7 @@
 # Template file for 'lightzone'
 pkgname=lightzone
 version=4.2.2
-revision=1
+revision=2
 _ivy_version=2.4.0
 wrksrc=LightZone-${version}
 hostmakedepends="automake git openjdk11 apache-ant javahelp2 rsync pkg-config"
@@ -29,7 +29,7 @@ do_build() {
 	vsed -i lightcrafts/jnisrc/tiff/GNUmakefile \
 		-e "s;\./configure;& --host=${XBPS_MACHINE%-musl};"
 
-	. /etc/profile.d/10_openjdk11.sh
+	. /etc/profile.d/openjdk.sh
 	cd linux
 	TARGET=${XBPS_TARGET_MACHINE%-musl} ant jar
 }

From 84a8866f86ea76529eb7b09d8fcae1bd2916c5d7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 2 Apr 2022 22:28:44 -0400
Subject: [PATCH 16/16] plantuml: fix name of etc/profile.d/10_openjdk*.sh in
 template

---
 srcpkgs/plantuml/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/plantuml/template b/srcpkgs/plantuml/template
index fff4ec18b203..85259ce2ca6b 100644
--- a/srcpkgs/plantuml/template
+++ b/srcpkgs/plantuml/template
@@ -2,7 +2,7 @@
 pkgname=plantuml
 reverts="8047_1 8053_1 8059_1"
 version=1.2021.14
-revision=1
+revision=2
 create_wrksrc=yes
 hostmakedepends="apache-ant openjdk8"
 depends="virtual?java-environment graphviz"
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/plantuml/plantuml-gplv2-${version}.tar.gz"
 checksum=468aeaaea0742d8312d0f2f709df140e599967d8284fc0555f842fd0a6fe6941
 
 do_build() {
-	. /etc/profile.d/10_openjdk8.sh
+	. /etc/profile.d/openjdk.sh
 	. /etc/profile.d/apache-ant.sh
 	ant
 	mv ${pkgname}.jar ${pkgname}-${version}.jar

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (21 preceding siblings ...)
  2022-04-28  1:34 ` classabbyamp
@ 2022-04-28  1:42 ` classabbyamp
  2022-04-29 16:24 ` classabbyamp
                   ` (3 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-28  1:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 265 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#issuecomment-1086732124

Comment:
xlint there should be ignored, the new version lint meant I needed to update the version line, but there was no update

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (22 preceding siblings ...)
  2022-04-28  1:42 ` classabbyamp
@ 2022-04-29 16:24 ` classabbyamp
  2022-04-29 16:30 ` classabbyamp
                   ` (2 subsequent siblings)
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-29 16:24 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 209 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#issuecomment-1113501257

Comment:
would an `openjdk-profile` package be an alternative solution?

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (23 preceding siblings ...)
  2022-04-29 16:24 ` classabbyamp
@ 2022-04-29 16:30 ` classabbyamp
  2022-04-29 16:46 ` classabbyamp
  2022-05-05  3:14 ` [PR PATCH] [Merged]: " ahesford
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-29 16:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 209 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#issuecomment-1113501257

Comment:
would an `openjdk-profile` package be an alternative solution?

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (24 preceding siblings ...)
  2022-04-29 16:30 ` classabbyamp
@ 2022-04-29 16:46 ` classabbyamp
  2022-05-05  3:14 ` [PR PATCH] [Merged]: " ahesford
  26 siblings, 0 replies; 28+ messages in thread
From: classabbyamp @ 2022-04-29 16:46 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 226 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/36250#issuecomment-1113518393

Comment:
So should I switch this to the `openjdk-profile` package solution or something?

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PR PATCH] [Merged]: fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
  2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
                   ` (25 preceding siblings ...)
  2022-04-29 16:46 ` classabbyamp
@ 2022-05-05  3:14 ` ahesford
  26 siblings, 0 replies; 28+ messages in thread
From: ahesford @ 2022-05-05  3:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1115 bytes --]

There's a merged pull request on the void-packages repository

fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
https://github.com/void-linux/void-packages/pull/36250

Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!-- 
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

[ci skip]

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-05-05  3:14 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-20 20:17 [PR PATCH] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger classabbyamp
2022-03-20 20:30 ` [PR PATCH] [Updated] " classabbyamp
2022-03-21 15:31 ` [PR REVIEW] " ahesford
2022-03-21 15:31 ` ahesford
2022-03-21 15:52 ` [PR PATCH] [Updated] " classabbyamp
2022-03-21 15:56 ` [PR REVIEW] " classabbyamp
2022-03-21 16:16 ` q66
2022-03-21 16:49 ` [PR PATCH] [Updated] " classabbyamp
2022-03-21 17:45 ` [PR REVIEW] " ahesford
2022-03-21 17:52 ` [PR PATCH] [Updated] " classabbyamp
2022-03-21 17:52 ` [PR REVIEW] " classabbyamp
2022-03-21 19:04 ` q66
2022-03-21 19:35 ` [PR PATCH] [Updated] " classabbyamp
2022-04-02 21:39 ` classabbyamp
2022-04-02 22:03 ` classabbyamp
2022-04-02 22:05 ` classabbyamp
2022-04-03  2:33 ` [PR PATCH] [Updated] " classabbyamp
2022-04-03  2:34 ` classabbyamp
2022-04-07 18:23 ` classabbyamp
2022-04-10 17:25 ` classabbyamp
2022-04-19 15:13 ` classabbyamp
2022-04-21 17:20 ` classabbyamp
2022-04-28  1:34 ` classabbyamp
2022-04-28  1:42 ` classabbyamp
2022-04-29 16:24 ` classabbyamp
2022-04-29 16:30 ` classabbyamp
2022-04-29 16:46 ` classabbyamp
2022-05-05  3:14 ` [PR PATCH] [Merged]: " ahesford

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).