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

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).