From 7e70ea35c90ef2de736d57885925854656e451d3 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Sun, 20 Mar 2022 16:09:47 -0400 Subject: [PATCH] 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 1ce07792f54..8afe781f0ec 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) @@ -2000,6 +2001,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 00000000000..007d9cd9eed --- /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 5de97d53c21..b1e4f34a4dd 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"