Github messages for voidlinux
 help / color / mirror / Atom feed
From: classabbyamp <classabbyamp@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] fix $JAVA_HOME conflict in /etc/profile.d, add openjdk-profile trigger
Date: Sat, 02 Apr 2022 23:39:10 +0200	[thread overview]
Message-ID: <20220402213910.jr9muCsnPjgwk2GrOnt2ccFJJqcHnQm_i7xUsX1NOv0@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-36250@inbox.vuxu.org>

[-- 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
 	}

  parent reply	other threads:[~2022-04-02 21:39 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-20 20:17 [PR PATCH] " 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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220402213910.jr9muCsnPjgwk2GrOnt2ccFJJqcHnQm_i7xUsX1NOv0@z \
    --to=classabbyamp@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).