From f372e0f2e31c9f550a4d66d3fb444cd8859cbbf3 Mon Sep 17 00:00:00 2001 From: classabbyamp 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. + +#### 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. + #### 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 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 < 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 < 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 }