* [PR PATCH] [RFC] fix the openjdk alternatives mess
@ 2023-12-21 23:38 classabbyamp
2023-12-22 1:23 ` ahesford
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-21 23:38 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1501 bytes --]
There is a new pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages jdk-alts
https://github.com/void-linux/void-packages/pull/47866
[RFC] fix the openjdk alternatives mess
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
*(testing in progress)*
#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**
[ci skip]
closes #47416
A patch file from https://github.com/void-linux/void-packages/pull/47866.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jdk-alts-47866.patch --]
[-- Type: text/x-diff, Size: 31031 bytes --]
From 4d93a5fcc87e7f8962acacbe0345adf8927504ff Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:36:47 -0500
Subject: [PATCH 1/7] xbps-triggers: update to 0.127.
get rid of the openjdk profile hook. it should not have been done like this.
---
srcpkgs/xbps-triggers/files/openjdk-profile | 39 ---------------------
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 1 insertion(+), 40 deletions(-)
delete mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
deleted file mode 100755
index 007d9cd9eedf4..0000000000000
--- a/srcpkgs/xbps-triggers/files/openjdk-profile
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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 76c3a6b27fad4..66936411a4258 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.126
+version=0.127
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
From 04a65372dbcf0c125633a76ac8233448cf35cf7f Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:32:52 -0500
Subject: [PATCH 2/7] New package: openjdk-common-1
Replaces the xbps trigger that added the profile script for openjdk,
which was really a mistake.
Instead of using alternative groups for specific JRE/JDK binaries, use
two symlinks: /usr/lib/jvm/default-jdk and /usr/lib/jvm/default-jre,
which point to /usr/lib/jvm/${version}. Prefer default-jdk to default-jre,
and just add them to PATH and MANPATH instead of putting things in /usr/bin.
---
srcpkgs/openjdk-common/INSTALL | 9 +++++++++
srcpkgs/openjdk-common/INSTALL.msg | 3 +++
srcpkgs/openjdk-common/files/profile.sh | 12 ++++++++++++
srcpkgs/openjdk-common/template | 12 ++++++++++++
4 files changed, 36 insertions(+)
create mode 100644 srcpkgs/openjdk-common/INSTALL
create mode 100644 srcpkgs/openjdk-common/INSTALL.msg
create mode 100644 srcpkgs/openjdk-common/files/profile.sh
create mode 100644 srcpkgs/openjdk-common/template
diff --git a/srcpkgs/openjdk-common/INSTALL b/srcpkgs/openjdk-common/INSTALL
new file mode 100644
index 0000000000000..e0e155cc208ab
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL
@@ -0,0 +1,9 @@
+#!/bin/sh
+case "$ACTION" in
+pre)
+ # remove the openjdk.sh from xbps-triggers
+ if [ -e "./etc/profile.d/openjdk.sh" ]; then
+ rm "./etc/profile.d/openjdk.sh"
+ fi
+ ;;
+esac
diff --git a/srcpkgs/openjdk-common/INSTALL.msg b/srcpkgs/openjdk-common/INSTALL.msg
new file mode 100644
index 0000000000000..eefb7db8d0f34
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL.msg
@@ -0,0 +1,3 @@
+The way the default OpenJDK version is selected has changed. You may need to
+re-login for this change to take effect. You may experience issues if the
+xbps-alternatives groups "java" and "jdk" are not set to the same OpenJDK.
diff --git a/srcpkgs/openjdk-common/files/profile.sh b/srcpkgs/openjdk-common/files/profile.sh
new file mode 100644
index 0000000000000..e9c9a6042eea7
--- /dev/null
+++ b/srcpkgs/openjdk-common/files/profile.sh
@@ -0,0 +1,12 @@
+# only modify the environment if an openjdk*-jre package is installed
+if [ -e "/usr/lib/jvm/default-jre" ]; then
+ # if an openjdk* package is installed, prefer it to the selected jre
+ if [ -e "/usr/lib/jvm/default-jdk" ]; then
+ export JAVA_HOME="/usr/lib/jvm/default-jdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/default-jre"
+ fi
+ # append the select jdk and jre bin and man dirs to the relevant PATHs
+ export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
+ export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
+fi
diff --git a/srcpkgs/openjdk-common/template b/srcpkgs/openjdk-common/template
new file mode 100644
index 0000000000000..a6f774d417361
--- /dev/null
+++ b/srcpkgs/openjdk-common/template
@@ -0,0 +1,12 @@
+# Template file for 'openjdk-common'
+pkgname=openjdk-common
+version=1
+revision=1
+short_desc="Common files for OpenJDK packages"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="Public Domain"
+homepage="https://www.voidlinux.org"
+
+do_install() {
+ vinstall "${FILESDIR}"/profile.sh 644 /etc/profile.d/openjdk.sh
+}
From ec0a6d230ddc1a58ab203a2580a2717ecad5390e Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:37:34 -0500
Subject: [PATCH 3/7] openjdk8: update to 8u332b05.
- various template cleanups
- rename /usr/lib/jvm/java-1.8-openjdk to /usr/lib/jvm/openjdk8
for consistency
- fix manpages
- fix alternatives
---
srcpkgs/openjdk8/template | 167 ++++++++++++--------------------------
1 file changed, 50 insertions(+), 117 deletions(-)
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 8266daff8d8a2..966f5c3703f01 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -1,19 +1,13 @@
# Template file for 'openjdk8'
-# TODO: better places for bin and man?
-# TODO: make -headless versions
-# TODO: config files?
pkgname=openjdk8
-version=8u322b04
-revision=5
+version=8u332b05
+revision=1
_jdk_update="${version#*u}"
_jdk_update="${_jdk_update%b*}"
_jdk_build="${version#*b}"
-_jdk_home="usr/lib/jvm/java-1.8-openjdk"
-# we're using aarch64 port repo to get aarch64 JIT; the repo is
-# otherwise the same as the normal one, just with aarch64 port added
-_repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
+_jdk_home="usr/lib/jvm/openjdk8"
+_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e"
archs="x86_64* i686* aarch64* arm* ppc64*"
-create_wrksrc=yes
build_style=gnu-configure
configure_args="
--prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib
@@ -28,13 +22,14 @@ configure_args="
--with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib
--with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2
--with-jtreg=no
- --with-jobs=${XBPS_MAKEJOBS}
- --with-vendor-name="Void"
- --with-vendor-url="https://voidlinux.org/"
- --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
- --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues"
+ --with-jobs=${XBPS_ORIG_MAKEJOBS}
+ --with-vendor-name=Void
+ --with-vendor-url=https://voidlinux.org/
+ --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues
+ --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues
--disable-option-checking"
-make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false"
+make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true"
+make_install_args="GIT=true"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel make-ca which"
makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
@@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)"
maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
-distfiles="
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"
+# we're using aarch64 port repo to get aarch64 JIT; the repo is
+# otherwise the same as the normal one, just with aarch64 port added
+distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz"
+checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4
-checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc
- 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a
- 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef
- 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257
- fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6
- 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b
- 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea
- 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23"
+disable_parallel_build=yes
build_options="docs"
desc_option_docs="Build documentation"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
+provides="java-environment-${version}_1"
+
# no hotspot JIT for arm32 and ppc32
case "$XBPS_TARGET_MACHINE" in
ppc64*) ;;
@@ -81,8 +67,6 @@ else
build_options_default+=" docs"
fi
-provides="java-environment-${version}_1"
-
if [ ! "$CROSS_BUILD" ]; then
hostmakedepends+=" openjdk7-bootstrap"
configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk"
@@ -94,57 +78,11 @@ fi
# enabling ccache segfaults gcc
export CCACHE_DISABLE=1
-alternatives="
- jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer
- jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck
- jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javah:/${_jdk_home}/bin/javah
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii
- jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool
- jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen
- jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport
- jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc
-"
-
post_extract() {
- mv jdk8u*/* .
chmod +x configure
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
- mv ${subrepo}-${_repo_ver} ${subrepo}
- done
+}
+post_patch() {
# gcc complains about the signed shift left
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \
-e's;(-1)<<13;~0u<<13;g'
@@ -152,20 +90,22 @@ post_extract() {
# wrong "return false;" instead of "return null;"
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \
-e"295s;false;null;"
-}
-post_patch() {
- [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0
+ # pretend we're a git checkout
+ echo "${_commit}" > .gittip
+ mkdir .git
- for f in ${FILESDIR}/musl_*.patch; do
- echo "Applying $f"
- patch -sNp1 -i "$f"
- done
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ for f in "${FILESDIR}"/musl_*.patch; do
+ echo "Applying $f"
+ patch -sNp1 -i "$f"
+ done
- # add cross prefix for thread_db.h check, fix cross from glibc to musl
- sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
- hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
- hotspot/make/linux/makefiles/saproc.make
+ # add cross prefix for thread_db.h check, fix cross from glibc to musl
+ sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
+ hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
+ hotspot/make/linux/makefiles/saproc.make
+ fi
}
do_configure() {
@@ -200,11 +140,6 @@ pre_build() {
unset CFLAGS CXXFLAGS LDFLAGS
}
-do_build() {
- # do not set disable_parallel_build in order to be able to read makejobs
- make -j1 ${make_build_args} ${make_build_target}
-}
-
post_install() {
# we manage this ourselves
rm -rf ${DESTDIR}/usr/lib/bin
@@ -213,6 +148,11 @@ post_install() {
mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \
${DESTDIR}/${_jdk_home}
+ # don't duplicate binaries already in jre/bin
+ for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do
+ ln -srf "${bin}" "${bin/jre/}"
+ done
+
vmkdir ${_jdk_home}/lib/security
make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool"
mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/
@@ -228,23 +168,15 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool
- java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd
- java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200
- java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool
- java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry
- java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool
- java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv
- java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre"
pkg_install() {
- vmove ${_jdk_home}/jre
+ vmove "${_jdk_home}"/jre
+ for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do
+ bin="$(basename "$bin")"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
+ done
}
}
@@ -263,12 +195,13 @@ openjdk8-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
- cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk8
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8
fi
- vmove ${_jdk_home}/man/man1
}
}
From 2a1d3d0fb7f379f4755588597d29c271aecfeaef Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:41:58 -0500
Subject: [PATCH 4/7] openjdk9-bootstrap: fix jdk8 path
---
srcpkgs/openjdk9-bootstrap/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index c50cc4adc7e18..2027d02781155 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -21,7 +21,7 @@ configure_args="
--with-debug-level=release
--with-version-pre=
--with-version-build=${version#*p}
- --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
+ --with-boot-jdk=/usr/lib/jvm/openjdk8"
make_build_args="images"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel which openjdk8 make"
From 8984eb8168275077d739ca5b2e83af1a89c66d3e Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:40:49 -0500
Subject: [PATCH 5/7] openjdk11-bin: remove package
this package has been useless since 106a275ecd81e132cb80cc21c0ec96a336d16614
make it a transitional package on openjdk11
---
srcpkgs/openjdk11-bin | 1 +
srcpkgs/openjdk11-bin/template | 70 ----------------------------------
srcpkgs/openjdk11/template | 8 +++-
3 files changed, 8 insertions(+), 71 deletions(-)
create mode 120000 srcpkgs/openjdk11-bin
delete mode 100644 srcpkgs/openjdk11-bin/template
diff --git a/srcpkgs/openjdk11-bin b/srcpkgs/openjdk11-bin
new file mode 120000
index 0000000000000..8213494c49ed5
--- /dev/null
+++ b/srcpkgs/openjdk11-bin
@@ -0,0 +1 @@
+openjdk11
\ No newline at end of file
diff --git a/srcpkgs/openjdk11-bin/template b/srcpkgs/openjdk11-bin/template
deleted file mode 100644
index 6dfbbb49fd45a..0000000000000
--- a/srcpkgs/openjdk11-bin/template
+++ /dev/null
@@ -1,70 +0,0 @@
-# Template file for 'openjdk11-bin'
-pkgname=openjdk11-bin
-version=11+28
-revision=2
-archs="x86_64"
-short_desc="Official Reference Implementation for Java SE 11"
-maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
-license="GPL-2.0-only WITH Classpath-exception-2.0"
-homepage="https://jdk.java.net/java-se-ri/11"
-distfiles="https://download.java.net/openjdk/jdk11/ri/openjdk-${version}_linux-x64_bin.tar.gz"
-checksum=3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e
-nopie=true
-
-alternatives="
- java:/usr/bin/java:/usr/lib/jvm/openjdk11-bin/bin/java
- java:/usr/bin/javaws:/usr/lib/jvm/openjdk11-bin/bin/javaws
- java:/usr/bin/jcontrol:/usr/lib/jvm/openjdk11-bin/bin/jcontrol
- java:/usr/bin/jjs:/usr/lib/jvm/openjdk11-bin/bin/jjs
- java:/usr/bin/keytool:/usr/lib/jvm/openjdk11-bin/bin/keytool
- java:/usr/bin/orbd:/usr/lib/jvm/openjdk11-bin/bin/orbd
- java:/usr/bin/pack200:/usr/lib/jvm/openjdk11-bin/bin/pack200
- java:/usr/bin/policytool:/usr/lib/jvm/openjdk11-bin/bin/policytool
- java:/usr/bin/rmid:/usr/lib/jvm/openjdk11-bin/bin/rmid
- java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk11-bin/bin/rmiregistry
- java:/usr/bin/servertool:/usr/lib/jvm/openjdk11-bin/bin/servertool
- java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk11-bin/bin/tnameserv
- java:/usr/bin/unpack200:/usr/lib/jvm/openjdk11-bin/bin/unpack200
-
- jdk:/usr/bin/ControlPanel:/usr/lib/jvm/openjdk11-bin/bin/ControlPanel
- jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk11-bin/bin/appletviewer
- jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk11-bin/bin/extcheck
- jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk11-bin/bin/idlj
- jdk:/usr/bin/jar:/usr/lib/jvm/openjdk11-bin/bin/jar
- jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk11-bin/bin/jarsigner
- jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk11-bin/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/usr/lib/jvm/openjdk11-bin/bin/javac
- jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk11-bin/bin/javadoc
- jdk:/usr/bin/javafxpackager:/usr/lib/jvm/openjdk11-bin/bin/javafxpackager
- jdk:/usr/bin/javah:/usr/lib/jvm/openjdk11-bin/bin/javah
- jdk:/usr/bin/javap:/usr/lib/jvm/openjdk11-bin/bin/javap
- jdk:/usr/bin/javapackager:/usr/lib/jvm/openjdk11-bin/bin/javapackager
- jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk11-bin/bin/jcmd
- jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk11-bin/bin/jconsole
- jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk11-bin/bin/jdb
- jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk11-bin/bin/jdeps
- jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk11-bin/bin/jhat
- jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk11-bin/bin/jinfo
- jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk11-bin/bin/jmap
- jdk:/usr/bin/jmc:/usr/lib/jvm/openjdk11-bin/bin/jmc
- jdk:/usr/bin/jmc.ini:/usr/lib/jvm/openjdk11-bin/bin/jmc.ini
- jdk:/usr/bin/jps:/usr/lib/jvm/openjdk11-bin/bin/jps
- jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk11-bin/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk11-bin/bin/jsadebugd
- jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk11-bin/bin/jstack
- jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk11-bin/bin/jstat
- jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk11-bin/bin/jstatd
- jdk:/usr/bin/jvisualvm:/usr/lib/jvm/openjdk11-bin/bin/jvisualvm
- jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk11-bin/bin/native2ascii
- jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk11-bin/bin/rmic
- jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk11-bin/bin/schemagen
- jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk11-bin/bin/serialver
- jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk11-bin/bin/wsgen
- jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk11-bin/bin/wsimport
- jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk11-bin/bin/xjc
-"
-
-do_install() {
- vmkdir /usr/lib/jvm/openjdk11-bin
- cp -R ./* ${DESTDIR}/usr/lib/jvm/openjdk11-bin
-}
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5dd94241a0c8..2d79c0ddd30dc 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -156,7 +156,7 @@ do_install() {
vlicense LICENSE
}
-subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs"
+subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs openjdk11-bin"
openjdk11-jre_package() {
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
@@ -227,3 +227,9 @@ openjdk11-jmods_package() {
vmove $_jdk_home/jmods
}
}
+
+openjdk11-bin_package() {
+ short_desc+=" (transitional dummy package)"
+ depends="${sourcepkg}>=${version}_${revision}"
+ build_style=meta
+}
From 326d0267bd5d487b150f2ebe9a079f12d33ef7d6 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:42:46 -0500
Subject: [PATCH 6/7] openjdk11: update to 11.0.22+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk11/template | 59 +++++++-------------------------------
1 file changed, 10 insertions(+), 49 deletions(-)
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 2d79c0ddd30dc..f3b10f4a75045 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk11'
pkgname=openjdk11
-version=11.0.20+8
+version=11.0.22+6
revision=1
_java_ver="${version%%.*}"
_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
@@ -38,7 +38,8 @@ maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz"
-checksum=b2a37ef209ae7eaf8f34182b7c9aa3252af20a214d02970f96ce62242c805479
+checksum=8bae7c5e608de84aa32010365514bb59cd0d8ba709f6730cc473e159c6bfb918
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
# Build is still parallel, but don't use -jN.
@@ -73,41 +74,6 @@ else
configure_args+=" --with-boot-jdk=/${_jdk_home}"
fi
-alternatives="
- jdk:/usr/bin/jaotc:/${_jdk_home}/bin/jaotc
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
-"
-
post_extract() {
chmod +x configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -162,20 +128,13 @@ 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 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- java:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- java:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- "
+ depends="fontconfig openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
for bf in java jjs keytool pack200 rmid rmiregistry unpack200; do
vmove $_jdk_home/bin/$bf
+ vmove "$_jdk_home/man/man1/$bf"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -192,13 +151,15 @@ openjdk11-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk11
cp -a build/linux-*/images/docs/* $PKGDESTDIR/usr/share/doc/openjdk11
fi
- vmove $_jdk_home/man/man1
}
}
From 01c1bcb91a901e33329193516a8efe57f5d9f485 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:44:04 -0500
Subject: [PATCH 7/7] openjdk17: update to 17.0.10+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk17/template | 53 +++++++-------------------------------
1 file changed, 10 insertions(+), 43 deletions(-)
diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index bb72701f360e6..b70ee1f7768f4 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk17'
pkgname=openjdk17
-version=17.0.10+2
+version=17.0.10+6
revision=1
_gtest_ver=1.8.1
_java_ver="${version%%.*}"
@@ -45,8 +45,9 @@ license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz
https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz"
-checksum="dbe68a64c43c3e376abd9d03758a487ecfb9c7bf1fe71cf6c2ca113f909be1cb
+checksum="3d5ef3a18c4edfa6e2a16c74d9e771b09eed433006b1380df450aa88725c7238
9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
patch_args="-Np1 --directory=$build_wrksrc"
@@ -83,37 +84,6 @@ else
configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17"
fi
-alternatives="
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jfr:/${_jdk_home}/bin/jfr
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jpackage:/${_jdk_home}/bin/jpackage
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
-"
-
post_extract() {
chmod +x $build_wrksrc/configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -173,17 +143,12 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
for bf in java jfr keytool rmiregistry; do
- vmove $_jdk_home/bin/$bf
+ vmove "$_jdk_home/bin/$bf"
+ vmove "$_jdk_home/man/man1/$bf"
done
for f in lib legal conf release; do
@@ -200,13 +165,15 @@ openjdk17-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
if [ "$build_option_docs" ]; then
local _docdir=usr/share/doc/openjdk$_java_ver
vmkdir $_docdir
cp -a $wrksrc/$build_wrksrc/build/linux-*/images/docs/* ${PKGDESTDIR}/$_docdir
fi
- vmove $_jdk_home/man/man1
}
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
@ 2023-12-22 1:23 ` ahesford
2023-12-22 1:55 ` [PR PATCH] [Updated] " classabbyamp
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: ahesford @ 2023-12-22 1:23 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 172 bytes --]
New comment by ahesford on void-packages repository
https://github.com/void-linux/void-packages/pull/47866#issuecomment-1867114696
Comment:
I think this is a great idea.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Updated] [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
2023-12-22 1:23 ` ahesford
@ 2023-12-22 1:55 ` classabbyamp
2023-12-22 1:57 ` classabbyamp
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-22 1:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1506 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages jdk-alts
https://github.com/void-linux/void-packages/pull/47866
[RFC] fix the openjdk alternatives mess
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
*(testing in progress)*
#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**
[ci skip]
closes #47416
A patch file from https://github.com/void-linux/void-packages/pull/47866.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jdk-alts-47866.patch --]
[-- Type: text/x-diff, Size: 31093 bytes --]
From 4d93a5fcc87e7f8962acacbe0345adf8927504ff Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:36:47 -0500
Subject: [PATCH 1/7] xbps-triggers: update to 0.127.
get rid of the openjdk profile hook. it should not have been done like this.
---
srcpkgs/xbps-triggers/files/openjdk-profile | 39 ---------------------
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 1 insertion(+), 40 deletions(-)
delete mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
deleted file mode 100755
index 007d9cd9eedf4..0000000000000
--- a/srcpkgs/xbps-triggers/files/openjdk-profile
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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 76c3a6b27fad4..66936411a4258 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.126
+version=0.127
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
From a87f03855a93fed1e442942ad724fddd9ac29a7a Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:32:52 -0500
Subject: [PATCH 2/7] New package: openjdk-common-1
Replaces the xbps trigger that added the profile script for openjdk,
which was really a mistake.
Instead of using alternative groups for specific JRE/JDK binaries, use
two symlinks: /usr/lib/jvm/default-jdk and /usr/lib/jvm/default-jre,
which point to /usr/lib/jvm/${version}. Prefer default-jdk to default-jre,
and just add them to PATH and MANPATH instead of putting things in /usr/bin.
---
srcpkgs/openjdk-common/INSTALL | 9 +++++++++
srcpkgs/openjdk-common/INSTALL.msg | 2 ++
srcpkgs/openjdk-common/files/profile.sh | 12 ++++++++++++
srcpkgs/openjdk-common/template | 12 ++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 srcpkgs/openjdk-common/INSTALL
create mode 100644 srcpkgs/openjdk-common/INSTALL.msg
create mode 100644 srcpkgs/openjdk-common/files/profile.sh
create mode 100644 srcpkgs/openjdk-common/template
diff --git a/srcpkgs/openjdk-common/INSTALL b/srcpkgs/openjdk-common/INSTALL
new file mode 100644
index 0000000000000..e0e155cc208ab
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL
@@ -0,0 +1,9 @@
+#!/bin/sh
+case "$ACTION" in
+pre)
+ # remove the openjdk.sh from xbps-triggers
+ if [ -e "./etc/profile.d/openjdk.sh" ]; then
+ rm "./etc/profile.d/openjdk.sh"
+ fi
+ ;;
+esac
diff --git a/srcpkgs/openjdk-common/INSTALL.msg b/srcpkgs/openjdk-common/INSTALL.msg
new file mode 100644
index 0000000000000..c0cd42b503ea1
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL.msg
@@ -0,0 +1,2 @@
+The way the default OpenJDK version is selected has changed. You may need to
+re-login for this change to take effect.
diff --git a/srcpkgs/openjdk-common/files/profile.sh b/srcpkgs/openjdk-common/files/profile.sh
new file mode 100644
index 0000000000000..e9c9a6042eea7
--- /dev/null
+++ b/srcpkgs/openjdk-common/files/profile.sh
@@ -0,0 +1,12 @@
+# only modify the environment if an openjdk*-jre package is installed
+if [ -e "/usr/lib/jvm/default-jre" ]; then
+ # if an openjdk* package is installed, prefer it to the selected jre
+ if [ -e "/usr/lib/jvm/default-jdk" ]; then
+ export JAVA_HOME="/usr/lib/jvm/default-jdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/default-jre"
+ fi
+ # append the select jdk and jre bin and man dirs to the relevant PATHs
+ export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
+ export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
+fi
diff --git a/srcpkgs/openjdk-common/template b/srcpkgs/openjdk-common/template
new file mode 100644
index 0000000000000..a6f774d417361
--- /dev/null
+++ b/srcpkgs/openjdk-common/template
@@ -0,0 +1,12 @@
+# Template file for 'openjdk-common'
+pkgname=openjdk-common
+version=1
+revision=1
+short_desc="Common files for OpenJDK packages"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="Public Domain"
+homepage="https://www.voidlinux.org"
+
+do_install() {
+ vinstall "${FILESDIR}"/profile.sh 644 /etc/profile.d/openjdk.sh
+}
From 168842d17205b4e4091766c417d2a39384d9056a Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:37:34 -0500
Subject: [PATCH 3/7] openjdk8: update to 8u332b05.
- various template cleanups
- rename /usr/lib/jvm/java-1.8-openjdk to /usr/lib/jvm/openjdk8
for consistency
- fix manpages
- fix alternatives
---
srcpkgs/openjdk8/template | 167 ++++++++++++--------------------------
1 file changed, 50 insertions(+), 117 deletions(-)
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 8266daff8d8a2..966f5c3703f01 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -1,19 +1,13 @@
# Template file for 'openjdk8'
-# TODO: better places for bin and man?
-# TODO: make -headless versions
-# TODO: config files?
pkgname=openjdk8
-version=8u322b04
-revision=5
+version=8u332b05
+revision=1
_jdk_update="${version#*u}"
_jdk_update="${_jdk_update%b*}"
_jdk_build="${version#*b}"
-_jdk_home="usr/lib/jvm/java-1.8-openjdk"
-# we're using aarch64 port repo to get aarch64 JIT; the repo is
-# otherwise the same as the normal one, just with aarch64 port added
-_repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
+_jdk_home="usr/lib/jvm/openjdk8"
+_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e"
archs="x86_64* i686* aarch64* arm* ppc64*"
-create_wrksrc=yes
build_style=gnu-configure
configure_args="
--prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib
@@ -28,13 +22,14 @@ configure_args="
--with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib
--with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2
--with-jtreg=no
- --with-jobs=${XBPS_MAKEJOBS}
- --with-vendor-name="Void"
- --with-vendor-url="https://voidlinux.org/"
- --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
- --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues"
+ --with-jobs=${XBPS_ORIG_MAKEJOBS}
+ --with-vendor-name=Void
+ --with-vendor-url=https://voidlinux.org/
+ --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues
+ --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues
--disable-option-checking"
-make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false"
+make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true"
+make_install_args="GIT=true"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel make-ca which"
makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
@@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)"
maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
-distfiles="
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"
+# we're using aarch64 port repo to get aarch64 JIT; the repo is
+# otherwise the same as the normal one, just with aarch64 port added
+distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz"
+checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4
-checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc
- 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a
- 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef
- 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257
- fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6
- 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b
- 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea
- 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23"
+disable_parallel_build=yes
build_options="docs"
desc_option_docs="Build documentation"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
+provides="java-environment-${version}_1"
+
# no hotspot JIT for arm32 and ppc32
case "$XBPS_TARGET_MACHINE" in
ppc64*) ;;
@@ -81,8 +67,6 @@ else
build_options_default+=" docs"
fi
-provides="java-environment-${version}_1"
-
if [ ! "$CROSS_BUILD" ]; then
hostmakedepends+=" openjdk7-bootstrap"
configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk"
@@ -94,57 +78,11 @@ fi
# enabling ccache segfaults gcc
export CCACHE_DISABLE=1
-alternatives="
- jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer
- jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck
- jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javah:/${_jdk_home}/bin/javah
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii
- jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool
- jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen
- jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport
- jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc
-"
-
post_extract() {
- mv jdk8u*/* .
chmod +x configure
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
- mv ${subrepo}-${_repo_ver} ${subrepo}
- done
+}
+post_patch() {
# gcc complains about the signed shift left
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \
-e's;(-1)<<13;~0u<<13;g'
@@ -152,20 +90,22 @@ post_extract() {
# wrong "return false;" instead of "return null;"
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \
-e"295s;false;null;"
-}
-post_patch() {
- [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0
+ # pretend we're a git checkout
+ echo "${_commit}" > .gittip
+ mkdir .git
- for f in ${FILESDIR}/musl_*.patch; do
- echo "Applying $f"
- patch -sNp1 -i "$f"
- done
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ for f in "${FILESDIR}"/musl_*.patch; do
+ echo "Applying $f"
+ patch -sNp1 -i "$f"
+ done
- # add cross prefix for thread_db.h check, fix cross from glibc to musl
- sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
- hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
- hotspot/make/linux/makefiles/saproc.make
+ # add cross prefix for thread_db.h check, fix cross from glibc to musl
+ sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
+ hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
+ hotspot/make/linux/makefiles/saproc.make
+ fi
}
do_configure() {
@@ -200,11 +140,6 @@ pre_build() {
unset CFLAGS CXXFLAGS LDFLAGS
}
-do_build() {
- # do not set disable_parallel_build in order to be able to read makejobs
- make -j1 ${make_build_args} ${make_build_target}
-}
-
post_install() {
# we manage this ourselves
rm -rf ${DESTDIR}/usr/lib/bin
@@ -213,6 +148,11 @@ post_install() {
mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \
${DESTDIR}/${_jdk_home}
+ # don't duplicate binaries already in jre/bin
+ for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do
+ ln -srf "${bin}" "${bin/jre/}"
+ done
+
vmkdir ${_jdk_home}/lib/security
make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool"
mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/
@@ -228,23 +168,15 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool
- java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd
- java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200
- java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool
- java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry
- java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool
- java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv
- java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre"
pkg_install() {
- vmove ${_jdk_home}/jre
+ vmove "${_jdk_home}"/jre
+ for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do
+ bin="$(basename "$bin")"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
+ done
}
}
@@ -263,12 +195,13 @@ openjdk8-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
- cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk8
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8
fi
- vmove ${_jdk_home}/man/man1
}
}
From 4680a4b17de1e714da3c5b0820e20c12fb164954 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:41:58 -0500
Subject: [PATCH 4/7] openjdk9-bootstrap: fix jdk8 path
---
srcpkgs/openjdk9-bootstrap/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index c50cc4adc7e18..2027d02781155 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -21,7 +21,7 @@ configure_args="
--with-debug-level=release
--with-version-pre=
--with-version-build=${version#*p}
- --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
+ --with-boot-jdk=/usr/lib/jvm/openjdk8"
make_build_args="images"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel which openjdk8 make"
From d3c726606d7dee4d3a70a70de5f57bbbf80a2fca Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:40:49 -0500
Subject: [PATCH 5/7] openjdk11-bin: remove package
this package has been useless since 106a275ecd81e132cb80cc21c0ec96a336d16614
make it a transitional package on openjdk11
---
srcpkgs/openjdk11-bin | 1 +
srcpkgs/openjdk11-bin/template | 70 ----------------------------------
srcpkgs/openjdk11/template | 8 +++-
3 files changed, 8 insertions(+), 71 deletions(-)
create mode 120000 srcpkgs/openjdk11-bin
delete mode 100644 srcpkgs/openjdk11-bin/template
diff --git a/srcpkgs/openjdk11-bin b/srcpkgs/openjdk11-bin
new file mode 120000
index 0000000000000..8213494c49ed5
--- /dev/null
+++ b/srcpkgs/openjdk11-bin
@@ -0,0 +1 @@
+openjdk11
\ No newline at end of file
diff --git a/srcpkgs/openjdk11-bin/template b/srcpkgs/openjdk11-bin/template
deleted file mode 100644
index 6dfbbb49fd45a..0000000000000
--- a/srcpkgs/openjdk11-bin/template
+++ /dev/null
@@ -1,70 +0,0 @@
-# Template file for 'openjdk11-bin'
-pkgname=openjdk11-bin
-version=11+28
-revision=2
-archs="x86_64"
-short_desc="Official Reference Implementation for Java SE 11"
-maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
-license="GPL-2.0-only WITH Classpath-exception-2.0"
-homepage="https://jdk.java.net/java-se-ri/11"
-distfiles="https://download.java.net/openjdk/jdk11/ri/openjdk-${version}_linux-x64_bin.tar.gz"
-checksum=3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e
-nopie=true
-
-alternatives="
- java:/usr/bin/java:/usr/lib/jvm/openjdk11-bin/bin/java
- java:/usr/bin/javaws:/usr/lib/jvm/openjdk11-bin/bin/javaws
- java:/usr/bin/jcontrol:/usr/lib/jvm/openjdk11-bin/bin/jcontrol
- java:/usr/bin/jjs:/usr/lib/jvm/openjdk11-bin/bin/jjs
- java:/usr/bin/keytool:/usr/lib/jvm/openjdk11-bin/bin/keytool
- java:/usr/bin/orbd:/usr/lib/jvm/openjdk11-bin/bin/orbd
- java:/usr/bin/pack200:/usr/lib/jvm/openjdk11-bin/bin/pack200
- java:/usr/bin/policytool:/usr/lib/jvm/openjdk11-bin/bin/policytool
- java:/usr/bin/rmid:/usr/lib/jvm/openjdk11-bin/bin/rmid
- java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk11-bin/bin/rmiregistry
- java:/usr/bin/servertool:/usr/lib/jvm/openjdk11-bin/bin/servertool
- java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk11-bin/bin/tnameserv
- java:/usr/bin/unpack200:/usr/lib/jvm/openjdk11-bin/bin/unpack200
-
- jdk:/usr/bin/ControlPanel:/usr/lib/jvm/openjdk11-bin/bin/ControlPanel
- jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk11-bin/bin/appletviewer
- jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk11-bin/bin/extcheck
- jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk11-bin/bin/idlj
- jdk:/usr/bin/jar:/usr/lib/jvm/openjdk11-bin/bin/jar
- jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk11-bin/bin/jarsigner
- jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk11-bin/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/usr/lib/jvm/openjdk11-bin/bin/javac
- jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk11-bin/bin/javadoc
- jdk:/usr/bin/javafxpackager:/usr/lib/jvm/openjdk11-bin/bin/javafxpackager
- jdk:/usr/bin/javah:/usr/lib/jvm/openjdk11-bin/bin/javah
- jdk:/usr/bin/javap:/usr/lib/jvm/openjdk11-bin/bin/javap
- jdk:/usr/bin/javapackager:/usr/lib/jvm/openjdk11-bin/bin/javapackager
- jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk11-bin/bin/jcmd
- jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk11-bin/bin/jconsole
- jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk11-bin/bin/jdb
- jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk11-bin/bin/jdeps
- jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk11-bin/bin/jhat
- jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk11-bin/bin/jinfo
- jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk11-bin/bin/jmap
- jdk:/usr/bin/jmc:/usr/lib/jvm/openjdk11-bin/bin/jmc
- jdk:/usr/bin/jmc.ini:/usr/lib/jvm/openjdk11-bin/bin/jmc.ini
- jdk:/usr/bin/jps:/usr/lib/jvm/openjdk11-bin/bin/jps
- jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk11-bin/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk11-bin/bin/jsadebugd
- jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk11-bin/bin/jstack
- jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk11-bin/bin/jstat
- jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk11-bin/bin/jstatd
- jdk:/usr/bin/jvisualvm:/usr/lib/jvm/openjdk11-bin/bin/jvisualvm
- jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk11-bin/bin/native2ascii
- jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk11-bin/bin/rmic
- jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk11-bin/bin/schemagen
- jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk11-bin/bin/serialver
- jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk11-bin/bin/wsgen
- jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk11-bin/bin/wsimport
- jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk11-bin/bin/xjc
-"
-
-do_install() {
- vmkdir /usr/lib/jvm/openjdk11-bin
- cp -R ./* ${DESTDIR}/usr/lib/jvm/openjdk11-bin
-}
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5dd94241a0c8..2d79c0ddd30dc 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -156,7 +156,7 @@ do_install() {
vlicense LICENSE
}
-subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs"
+subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs openjdk11-bin"
openjdk11-jre_package() {
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
@@ -227,3 +227,9 @@ openjdk11-jmods_package() {
vmove $_jdk_home/jmods
}
}
+
+openjdk11-bin_package() {
+ short_desc+=" (transitional dummy package)"
+ depends="${sourcepkg}>=${version}_${revision}"
+ build_style=meta
+}
From 4b2f854006c75fcd289e9a5c234ee2ad6d7afa5b Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:42:46 -0500
Subject: [PATCH 6/7] openjdk11: update to 11.0.22+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk11/template | 63 ++++++++------------------------------
1 file changed, 12 insertions(+), 51 deletions(-)
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 2d79c0ddd30dc..2754a8d136081 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk11'
pkgname=openjdk11
-version=11.0.20+8
+version=11.0.22+6
revision=1
_java_ver="${version%%.*}"
_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
@@ -38,7 +38,8 @@ maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz"
-checksum=b2a37ef209ae7eaf8f34182b7c9aa3252af20a214d02970f96ce62242c805479
+checksum=8bae7c5e608de84aa32010365514bb59cd0d8ba709f6730cc473e159c6bfb918
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
# Build is still parallel, but don't use -jN.
@@ -73,41 +74,6 @@ else
configure_args+=" --with-boot-jdk=/${_jdk_home}"
fi
-alternatives="
- jdk:/usr/bin/jaotc:/${_jdk_home}/bin/jaotc
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
-"
-
post_extract() {
chmod +x configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -162,20 +128,13 @@ 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 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- java:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- java:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- "
+ depends="fontconfig openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jjs keytool pack200 rmid rmiregistry unpack200; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jjs keytool pack200 rmid rmiregistry unpack200; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -192,13 +151,15 @@ openjdk11-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk11
cp -a build/linux-*/images/docs/* $PKGDESTDIR/usr/share/doc/openjdk11
fi
- vmove $_jdk_home/man/man1
}
}
From d6b5229f696714e244e0ba2896dec47703929175 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:44:04 -0500
Subject: [PATCH 7/7] openjdk17: update to 17.0.10+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk17/template | 55 ++++++++------------------------------
1 file changed, 11 insertions(+), 44 deletions(-)
diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index bb72701f360e6..22fb16fbf9ec1 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk17'
pkgname=openjdk17
-version=17.0.10+2
+version=17.0.10+6
revision=1
_gtest_ver=1.8.1
_java_ver="${version%%.*}"
@@ -45,8 +45,9 @@ license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz
https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz"
-checksum="dbe68a64c43c3e376abd9d03758a487ecfb9c7bf1fe71cf6c2ca113f909be1cb
+checksum="3d5ef3a18c4edfa6e2a16c74d9e771b09eed433006b1380df450aa88725c7238
9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
patch_args="-Np1 --directory=$build_wrksrc"
@@ -83,37 +84,6 @@ else
configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17"
fi
-alternatives="
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jfr:/${_jdk_home}/bin/jfr
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jpackage:/${_jdk_home}/bin/jpackage
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
-"
-
post_extract() {
chmod +x $build_wrksrc/configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -173,17 +143,12 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jfr keytool rmiregistry; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jfr keytool rmiregistry; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -200,13 +165,15 @@ openjdk17-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
if [ "$build_option_docs" ]; then
local _docdir=usr/share/doc/openjdk$_java_ver
vmkdir $_docdir
cp -a $wrksrc/$build_wrksrc/build/linux-*/images/docs/* ${PKGDESTDIR}/$_docdir
fi
- vmove $_jdk_home/man/man1
}
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Updated] [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
2023-12-22 1:23 ` ahesford
2023-12-22 1:55 ` [PR PATCH] [Updated] " classabbyamp
@ 2023-12-22 1:57 ` classabbyamp
2023-12-22 2:34 ` classabbyamp
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-22 1:57 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1506 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages jdk-alts
https://github.com/void-linux/void-packages/pull/47866
[RFC] fix the openjdk alternatives mess
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
*(testing in progress)*
#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**
[ci skip]
closes #47416
A patch file from https://github.com/void-linux/void-packages/pull/47866.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jdk-alts-47866.patch --]
[-- Type: text/x-diff, Size: 31093 bytes --]
From 4d93a5fcc87e7f8962acacbe0345adf8927504ff Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:36:47 -0500
Subject: [PATCH 1/7] xbps-triggers: update to 0.127.
get rid of the openjdk profile hook. it should not have been done like this.
---
srcpkgs/xbps-triggers/files/openjdk-profile | 39 ---------------------
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 1 insertion(+), 40 deletions(-)
delete mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
deleted file mode 100755
index 007d9cd9eedf4..0000000000000
--- a/srcpkgs/xbps-triggers/files/openjdk-profile
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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 76c3a6b27fad4..66936411a4258 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.126
+version=0.127
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
From 151c21665a664e0bb167141858cb3cc47be5d61c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:32:52 -0500
Subject: [PATCH 2/7] New package: openjdk-common-1
Replaces the xbps trigger that added the profile script for openjdk,
which was really a mistake.
Instead of using alternative groups for specific JRE/JDK binaries, use
two symlinks: /usr/lib/jvm/default-jdk and /usr/lib/jvm/default-jre,
which point to /usr/lib/jvm/${version}. Prefer default-jdk to default-jre,
and just add them to PATH and MANPATH instead of putting things in /usr/bin.
---
srcpkgs/openjdk-common/INSTALL | 9 +++++++++
srcpkgs/openjdk-common/INSTALL.msg | 2 ++
srcpkgs/openjdk-common/files/profile.sh | 12 ++++++++++++
srcpkgs/openjdk-common/template | 12 ++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 srcpkgs/openjdk-common/INSTALL
create mode 100644 srcpkgs/openjdk-common/INSTALL.msg
create mode 100644 srcpkgs/openjdk-common/files/profile.sh
create mode 100644 srcpkgs/openjdk-common/template
diff --git a/srcpkgs/openjdk-common/INSTALL b/srcpkgs/openjdk-common/INSTALL
new file mode 100644
index 0000000000000..e0e155cc208ab
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL
@@ -0,0 +1,9 @@
+#!/bin/sh
+case "$ACTION" in
+pre)
+ # remove the openjdk.sh from xbps-triggers
+ if [ -e "./etc/profile.d/openjdk.sh" ]; then
+ rm "./etc/profile.d/openjdk.sh"
+ fi
+ ;;
+esac
diff --git a/srcpkgs/openjdk-common/INSTALL.msg b/srcpkgs/openjdk-common/INSTALL.msg
new file mode 100644
index 0000000000000..7e75b5abe457b
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL.msg
@@ -0,0 +1,2 @@
+The way the default OpenJDK version is selected has changed.
+You may need to re-login for this change to take effect.
diff --git a/srcpkgs/openjdk-common/files/profile.sh b/srcpkgs/openjdk-common/files/profile.sh
new file mode 100644
index 0000000000000..e9c9a6042eea7
--- /dev/null
+++ b/srcpkgs/openjdk-common/files/profile.sh
@@ -0,0 +1,12 @@
+# only modify the environment if an openjdk*-jre package is installed
+if [ -e "/usr/lib/jvm/default-jre" ]; then
+ # if an openjdk* package is installed, prefer it to the selected jre
+ if [ -e "/usr/lib/jvm/default-jdk" ]; then
+ export JAVA_HOME="/usr/lib/jvm/default-jdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/default-jre"
+ fi
+ # append the select jdk and jre bin and man dirs to the relevant PATHs
+ export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
+ export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
+fi
diff --git a/srcpkgs/openjdk-common/template b/srcpkgs/openjdk-common/template
new file mode 100644
index 0000000000000..a6f774d417361
--- /dev/null
+++ b/srcpkgs/openjdk-common/template
@@ -0,0 +1,12 @@
+# Template file for 'openjdk-common'
+pkgname=openjdk-common
+version=1
+revision=1
+short_desc="Common files for OpenJDK packages"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="Public Domain"
+homepage="https://www.voidlinux.org"
+
+do_install() {
+ vinstall "${FILESDIR}"/profile.sh 644 /etc/profile.d/openjdk.sh
+}
From c1a18eb3442c9e91899d6b8811160f59f2870e40 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:37:34 -0500
Subject: [PATCH 3/7] openjdk8: update to 8u332b05.
- various template cleanups
- rename /usr/lib/jvm/java-1.8-openjdk to /usr/lib/jvm/openjdk8
for consistency
- fix manpages
- fix alternatives
---
srcpkgs/openjdk8/template | 167 ++++++++++++--------------------------
1 file changed, 50 insertions(+), 117 deletions(-)
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 8266daff8d8a2..966f5c3703f01 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -1,19 +1,13 @@
# Template file for 'openjdk8'
-# TODO: better places for bin and man?
-# TODO: make -headless versions
-# TODO: config files?
pkgname=openjdk8
-version=8u322b04
-revision=5
+version=8u332b05
+revision=1
_jdk_update="${version#*u}"
_jdk_update="${_jdk_update%b*}"
_jdk_build="${version#*b}"
-_jdk_home="usr/lib/jvm/java-1.8-openjdk"
-# we're using aarch64 port repo to get aarch64 JIT; the repo is
-# otherwise the same as the normal one, just with aarch64 port added
-_repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
+_jdk_home="usr/lib/jvm/openjdk8"
+_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e"
archs="x86_64* i686* aarch64* arm* ppc64*"
-create_wrksrc=yes
build_style=gnu-configure
configure_args="
--prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib
@@ -28,13 +22,14 @@ configure_args="
--with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib
--with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2
--with-jtreg=no
- --with-jobs=${XBPS_MAKEJOBS}
- --with-vendor-name="Void"
- --with-vendor-url="https://voidlinux.org/"
- --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
- --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues"
+ --with-jobs=${XBPS_ORIG_MAKEJOBS}
+ --with-vendor-name=Void
+ --with-vendor-url=https://voidlinux.org/
+ --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues
+ --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues
--disable-option-checking"
-make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false"
+make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true"
+make_install_args="GIT=true"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel make-ca which"
makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
@@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)"
maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
-distfiles="
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"
+# we're using aarch64 port repo to get aarch64 JIT; the repo is
+# otherwise the same as the normal one, just with aarch64 port added
+distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz"
+checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4
-checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc
- 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a
- 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef
- 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257
- fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6
- 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b
- 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea
- 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23"
+disable_parallel_build=yes
build_options="docs"
desc_option_docs="Build documentation"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
+provides="java-environment-${version}_1"
+
# no hotspot JIT for arm32 and ppc32
case "$XBPS_TARGET_MACHINE" in
ppc64*) ;;
@@ -81,8 +67,6 @@ else
build_options_default+=" docs"
fi
-provides="java-environment-${version}_1"
-
if [ ! "$CROSS_BUILD" ]; then
hostmakedepends+=" openjdk7-bootstrap"
configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk"
@@ -94,57 +78,11 @@ fi
# enabling ccache segfaults gcc
export CCACHE_DISABLE=1
-alternatives="
- jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer
- jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck
- jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javah:/${_jdk_home}/bin/javah
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii
- jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool
- jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen
- jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport
- jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc
-"
-
post_extract() {
- mv jdk8u*/* .
chmod +x configure
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
- mv ${subrepo}-${_repo_ver} ${subrepo}
- done
+}
+post_patch() {
# gcc complains about the signed shift left
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \
-e's;(-1)<<13;~0u<<13;g'
@@ -152,20 +90,22 @@ post_extract() {
# wrong "return false;" instead of "return null;"
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \
-e"295s;false;null;"
-}
-post_patch() {
- [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0
+ # pretend we're a git checkout
+ echo "${_commit}" > .gittip
+ mkdir .git
- for f in ${FILESDIR}/musl_*.patch; do
- echo "Applying $f"
- patch -sNp1 -i "$f"
- done
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ for f in "${FILESDIR}"/musl_*.patch; do
+ echo "Applying $f"
+ patch -sNp1 -i "$f"
+ done
- # add cross prefix for thread_db.h check, fix cross from glibc to musl
- sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
- hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
- hotspot/make/linux/makefiles/saproc.make
+ # add cross prefix for thread_db.h check, fix cross from glibc to musl
+ sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
+ hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
+ hotspot/make/linux/makefiles/saproc.make
+ fi
}
do_configure() {
@@ -200,11 +140,6 @@ pre_build() {
unset CFLAGS CXXFLAGS LDFLAGS
}
-do_build() {
- # do not set disable_parallel_build in order to be able to read makejobs
- make -j1 ${make_build_args} ${make_build_target}
-}
-
post_install() {
# we manage this ourselves
rm -rf ${DESTDIR}/usr/lib/bin
@@ -213,6 +148,11 @@ post_install() {
mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \
${DESTDIR}/${_jdk_home}
+ # don't duplicate binaries already in jre/bin
+ for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do
+ ln -srf "${bin}" "${bin/jre/}"
+ done
+
vmkdir ${_jdk_home}/lib/security
make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool"
mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/
@@ -228,23 +168,15 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool
- java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd
- java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200
- java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool
- java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry
- java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool
- java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv
- java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre"
pkg_install() {
- vmove ${_jdk_home}/jre
+ vmove "${_jdk_home}"/jre
+ for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do
+ bin="$(basename "$bin")"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
+ done
}
}
@@ -263,12 +195,13 @@ openjdk8-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
- cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk8
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8
fi
- vmove ${_jdk_home}/man/man1
}
}
From a97bbb3cbcaf28a0d0252a8d9626dfb3ce8208b5 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:41:58 -0500
Subject: [PATCH 4/7] openjdk9-bootstrap: fix jdk8 path
---
srcpkgs/openjdk9-bootstrap/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index c50cc4adc7e18..2027d02781155 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -21,7 +21,7 @@ configure_args="
--with-debug-level=release
--with-version-pre=
--with-version-build=${version#*p}
- --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
+ --with-boot-jdk=/usr/lib/jvm/openjdk8"
make_build_args="images"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel which openjdk8 make"
From a52c1d7dcbedbfdc958e5f060fb9b333cf279721 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:40:49 -0500
Subject: [PATCH 5/7] openjdk11-bin: remove package
this package has been useless since 106a275ecd81e132cb80cc21c0ec96a336d16614
make it a transitional package on openjdk11
---
srcpkgs/openjdk11-bin | 1 +
srcpkgs/openjdk11-bin/template | 70 ----------------------------------
srcpkgs/openjdk11/template | 8 +++-
3 files changed, 8 insertions(+), 71 deletions(-)
create mode 120000 srcpkgs/openjdk11-bin
delete mode 100644 srcpkgs/openjdk11-bin/template
diff --git a/srcpkgs/openjdk11-bin b/srcpkgs/openjdk11-bin
new file mode 120000
index 0000000000000..8213494c49ed5
--- /dev/null
+++ b/srcpkgs/openjdk11-bin
@@ -0,0 +1 @@
+openjdk11
\ No newline at end of file
diff --git a/srcpkgs/openjdk11-bin/template b/srcpkgs/openjdk11-bin/template
deleted file mode 100644
index 6dfbbb49fd45a..0000000000000
--- a/srcpkgs/openjdk11-bin/template
+++ /dev/null
@@ -1,70 +0,0 @@
-# Template file for 'openjdk11-bin'
-pkgname=openjdk11-bin
-version=11+28
-revision=2
-archs="x86_64"
-short_desc="Official Reference Implementation for Java SE 11"
-maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
-license="GPL-2.0-only WITH Classpath-exception-2.0"
-homepage="https://jdk.java.net/java-se-ri/11"
-distfiles="https://download.java.net/openjdk/jdk11/ri/openjdk-${version}_linux-x64_bin.tar.gz"
-checksum=3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e
-nopie=true
-
-alternatives="
- java:/usr/bin/java:/usr/lib/jvm/openjdk11-bin/bin/java
- java:/usr/bin/javaws:/usr/lib/jvm/openjdk11-bin/bin/javaws
- java:/usr/bin/jcontrol:/usr/lib/jvm/openjdk11-bin/bin/jcontrol
- java:/usr/bin/jjs:/usr/lib/jvm/openjdk11-bin/bin/jjs
- java:/usr/bin/keytool:/usr/lib/jvm/openjdk11-bin/bin/keytool
- java:/usr/bin/orbd:/usr/lib/jvm/openjdk11-bin/bin/orbd
- java:/usr/bin/pack200:/usr/lib/jvm/openjdk11-bin/bin/pack200
- java:/usr/bin/policytool:/usr/lib/jvm/openjdk11-bin/bin/policytool
- java:/usr/bin/rmid:/usr/lib/jvm/openjdk11-bin/bin/rmid
- java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk11-bin/bin/rmiregistry
- java:/usr/bin/servertool:/usr/lib/jvm/openjdk11-bin/bin/servertool
- java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk11-bin/bin/tnameserv
- java:/usr/bin/unpack200:/usr/lib/jvm/openjdk11-bin/bin/unpack200
-
- jdk:/usr/bin/ControlPanel:/usr/lib/jvm/openjdk11-bin/bin/ControlPanel
- jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk11-bin/bin/appletviewer
- jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk11-bin/bin/extcheck
- jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk11-bin/bin/idlj
- jdk:/usr/bin/jar:/usr/lib/jvm/openjdk11-bin/bin/jar
- jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk11-bin/bin/jarsigner
- jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk11-bin/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/usr/lib/jvm/openjdk11-bin/bin/javac
- jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk11-bin/bin/javadoc
- jdk:/usr/bin/javafxpackager:/usr/lib/jvm/openjdk11-bin/bin/javafxpackager
- jdk:/usr/bin/javah:/usr/lib/jvm/openjdk11-bin/bin/javah
- jdk:/usr/bin/javap:/usr/lib/jvm/openjdk11-bin/bin/javap
- jdk:/usr/bin/javapackager:/usr/lib/jvm/openjdk11-bin/bin/javapackager
- jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk11-bin/bin/jcmd
- jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk11-bin/bin/jconsole
- jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk11-bin/bin/jdb
- jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk11-bin/bin/jdeps
- jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk11-bin/bin/jhat
- jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk11-bin/bin/jinfo
- jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk11-bin/bin/jmap
- jdk:/usr/bin/jmc:/usr/lib/jvm/openjdk11-bin/bin/jmc
- jdk:/usr/bin/jmc.ini:/usr/lib/jvm/openjdk11-bin/bin/jmc.ini
- jdk:/usr/bin/jps:/usr/lib/jvm/openjdk11-bin/bin/jps
- jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk11-bin/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk11-bin/bin/jsadebugd
- jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk11-bin/bin/jstack
- jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk11-bin/bin/jstat
- jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk11-bin/bin/jstatd
- jdk:/usr/bin/jvisualvm:/usr/lib/jvm/openjdk11-bin/bin/jvisualvm
- jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk11-bin/bin/native2ascii
- jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk11-bin/bin/rmic
- jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk11-bin/bin/schemagen
- jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk11-bin/bin/serialver
- jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk11-bin/bin/wsgen
- jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk11-bin/bin/wsimport
- jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk11-bin/bin/xjc
-"
-
-do_install() {
- vmkdir /usr/lib/jvm/openjdk11-bin
- cp -R ./* ${DESTDIR}/usr/lib/jvm/openjdk11-bin
-}
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5dd94241a0c8..2d79c0ddd30dc 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -156,7 +156,7 @@ do_install() {
vlicense LICENSE
}
-subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs"
+subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs openjdk11-bin"
openjdk11-jre_package() {
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
@@ -227,3 +227,9 @@ openjdk11-jmods_package() {
vmove $_jdk_home/jmods
}
}
+
+openjdk11-bin_package() {
+ short_desc+=" (transitional dummy package)"
+ depends="${sourcepkg}>=${version}_${revision}"
+ build_style=meta
+}
From 94ebd4f04ffbc9b9f00311b2706eadcac242a04f Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:42:46 -0500
Subject: [PATCH 6/7] openjdk11: update to 11.0.22+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk11/template | 63 ++++++++------------------------------
1 file changed, 12 insertions(+), 51 deletions(-)
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 2d79c0ddd30dc..2754a8d136081 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk11'
pkgname=openjdk11
-version=11.0.20+8
+version=11.0.22+6
revision=1
_java_ver="${version%%.*}"
_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
@@ -38,7 +38,8 @@ maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz"
-checksum=b2a37ef209ae7eaf8f34182b7c9aa3252af20a214d02970f96ce62242c805479
+checksum=8bae7c5e608de84aa32010365514bb59cd0d8ba709f6730cc473e159c6bfb918
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
# Build is still parallel, but don't use -jN.
@@ -73,41 +74,6 @@ else
configure_args+=" --with-boot-jdk=/${_jdk_home}"
fi
-alternatives="
- jdk:/usr/bin/jaotc:/${_jdk_home}/bin/jaotc
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
-"
-
post_extract() {
chmod +x configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -162,20 +128,13 @@ 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 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- java:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- java:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- "
+ depends="fontconfig openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jjs keytool pack200 rmid rmiregistry unpack200; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jjs keytool pack200 rmid rmiregistry unpack200; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -192,13 +151,15 @@ openjdk11-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk11
cp -a build/linux-*/images/docs/* $PKGDESTDIR/usr/share/doc/openjdk11
fi
- vmove $_jdk_home/man/man1
}
}
From 182ef2f559bb1051609c53d7c49d9a0a3453c002 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:44:04 -0500
Subject: [PATCH 7/7] openjdk17: update to 17.0.10+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk17/template | 55 ++++++++------------------------------
1 file changed, 11 insertions(+), 44 deletions(-)
diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index bb72701f360e6..22fb16fbf9ec1 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk17'
pkgname=openjdk17
-version=17.0.10+2
+version=17.0.10+6
revision=1
_gtest_ver=1.8.1
_java_ver="${version%%.*}"
@@ -45,8 +45,9 @@ license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz
https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz"
-checksum="dbe68a64c43c3e376abd9d03758a487ecfb9c7bf1fe71cf6c2ca113f909be1cb
+checksum="3d5ef3a18c4edfa6e2a16c74d9e771b09eed433006b1380df450aa88725c7238
9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
patch_args="-Np1 --directory=$build_wrksrc"
@@ -83,37 +84,6 @@ else
configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17"
fi
-alternatives="
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jfr:/${_jdk_home}/bin/jfr
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jpackage:/${_jdk_home}/bin/jpackage
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
-"
-
post_extract() {
chmod +x $build_wrksrc/configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -173,17 +143,12 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jfr keytool rmiregistry; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jfr keytool rmiregistry; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -200,13 +165,15 @@ openjdk17-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
if [ "$build_option_docs" ]; then
local _docdir=usr/share/doc/openjdk$_java_ver
vmkdir $_docdir
cp -a $wrksrc/$build_wrksrc/build/linux-*/images/docs/* ${PKGDESTDIR}/$_docdir
fi
- vmove $_jdk_home/man/man1
}
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Updated] [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
` (2 preceding siblings ...)
2023-12-22 1:57 ` classabbyamp
@ 2023-12-22 2:34 ` classabbyamp
2023-12-22 3:04 ` classabbyamp
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-22 2:34 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1506 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages jdk-alts
https://github.com/void-linux/void-packages/pull/47866
[RFC] fix the openjdk alternatives mess
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
*(testing in progress)*
#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**
[ci skip]
closes #47416
A patch file from https://github.com/void-linux/void-packages/pull/47866.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jdk-alts-47866.patch --]
[-- Type: text/x-diff, Size: 31093 bytes --]
From 4d93a5fcc87e7f8962acacbe0345adf8927504ff Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:36:47 -0500
Subject: [PATCH 1/7] xbps-triggers: update to 0.127.
get rid of the openjdk profile hook. it should not have been done like this.
---
srcpkgs/xbps-triggers/files/openjdk-profile | 39 ---------------------
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 1 insertion(+), 40 deletions(-)
delete mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
deleted file mode 100755
index 007d9cd9eedf4..0000000000000
--- a/srcpkgs/xbps-triggers/files/openjdk-profile
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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 76c3a6b27fad4..66936411a4258 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.126
+version=0.127
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
From 7d3275e479cad91f0453cf021813b1eb1216d1fa Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:32:52 -0500
Subject: [PATCH 2/7] New package: openjdk-common-1
Replaces the xbps trigger that added the profile script for openjdk,
which was really a mistake.
Instead of using alternative groups for specific JRE/JDK binaries, use
two symlinks: /usr/lib/jvm/default-jdk and /usr/lib/jvm/default-jre,
which point to /usr/lib/jvm/${version}. Prefer default-jdk to default-jre,
and just add them to PATH and MANPATH instead of putting things in /usr/bin.
---
srcpkgs/openjdk-common/INSTALL | 9 +++++++++
srcpkgs/openjdk-common/INSTALL.msg | 2 ++
srcpkgs/openjdk-common/files/profile.sh | 12 ++++++++++++
srcpkgs/openjdk-common/template | 12 ++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 srcpkgs/openjdk-common/INSTALL
create mode 100644 srcpkgs/openjdk-common/INSTALL.msg
create mode 100644 srcpkgs/openjdk-common/files/profile.sh
create mode 100644 srcpkgs/openjdk-common/template
diff --git a/srcpkgs/openjdk-common/INSTALL b/srcpkgs/openjdk-common/INSTALL
new file mode 100644
index 0000000000000..e0e155cc208ab
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL
@@ -0,0 +1,9 @@
+#!/bin/sh
+case "$ACTION" in
+pre)
+ # remove the openjdk.sh from xbps-triggers
+ if [ -e "./etc/profile.d/openjdk.sh" ]; then
+ rm "./etc/profile.d/openjdk.sh"
+ fi
+ ;;
+esac
diff --git a/srcpkgs/openjdk-common/INSTALL.msg b/srcpkgs/openjdk-common/INSTALL.msg
new file mode 100644
index 0000000000000..7e75b5abe457b
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL.msg
@@ -0,0 +1,2 @@
+The way the default OpenJDK version is selected has changed.
+You may need to re-login for this change to take effect.
diff --git a/srcpkgs/openjdk-common/files/profile.sh b/srcpkgs/openjdk-common/files/profile.sh
new file mode 100644
index 0000000000000..e9c9a6042eea7
--- /dev/null
+++ b/srcpkgs/openjdk-common/files/profile.sh
@@ -0,0 +1,12 @@
+# only modify the environment if an openjdk*-jre package is installed
+if [ -e "/usr/lib/jvm/default-jre" ]; then
+ # if an openjdk* package is installed, prefer it to the selected jre
+ if [ -e "/usr/lib/jvm/default-jdk" ]; then
+ export JAVA_HOME="/usr/lib/jvm/default-jdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/default-jre"
+ fi
+ # append the select jdk and jre bin and man dirs to the relevant PATHs
+ export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
+ export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
+fi
diff --git a/srcpkgs/openjdk-common/template b/srcpkgs/openjdk-common/template
new file mode 100644
index 0000000000000..65faafe295e44
--- /dev/null
+++ b/srcpkgs/openjdk-common/template
@@ -0,0 +1,12 @@
+# Template file for 'openjdk-common'
+pkgname=openjdk-common
+version=1
+revision=1
+short_desc="Common files for OpenJDK packages"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="Public Domain"
+homepage="https://www.voidlinux.org"
+
+do_install() {
+ vinstall "${FILESDIR}"/profile.sh 644 /etc/profile.d openjdk.sh
+}
From 50f24aa6e4e9387d6242a7f81e8f800c651c2636 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:37:34 -0500
Subject: [PATCH 3/7] openjdk8: update to 8u332b05.
- various template cleanups
- rename /usr/lib/jvm/java-1.8-openjdk to /usr/lib/jvm/openjdk8
for consistency
- fix manpages
- fix alternatives
---
srcpkgs/openjdk8/template | 167 ++++++++++++--------------------------
1 file changed, 50 insertions(+), 117 deletions(-)
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 8266daff8d8a2..966f5c3703f01 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -1,19 +1,13 @@
# Template file for 'openjdk8'
-# TODO: better places for bin and man?
-# TODO: make -headless versions
-# TODO: config files?
pkgname=openjdk8
-version=8u322b04
-revision=5
+version=8u332b05
+revision=1
_jdk_update="${version#*u}"
_jdk_update="${_jdk_update%b*}"
_jdk_build="${version#*b}"
-_jdk_home="usr/lib/jvm/java-1.8-openjdk"
-# we're using aarch64 port repo to get aarch64 JIT; the repo is
-# otherwise the same as the normal one, just with aarch64 port added
-_repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
+_jdk_home="usr/lib/jvm/openjdk8"
+_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e"
archs="x86_64* i686* aarch64* arm* ppc64*"
-create_wrksrc=yes
build_style=gnu-configure
configure_args="
--prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib
@@ -28,13 +22,14 @@ configure_args="
--with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib
--with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2
--with-jtreg=no
- --with-jobs=${XBPS_MAKEJOBS}
- --with-vendor-name="Void"
- --with-vendor-url="https://voidlinux.org/"
- --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
- --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues"
+ --with-jobs=${XBPS_ORIG_MAKEJOBS}
+ --with-vendor-name=Void
+ --with-vendor-url=https://voidlinux.org/
+ --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues
+ --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues
--disable-option-checking"
-make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false"
+make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true"
+make_install_args="GIT=true"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel make-ca which"
makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
@@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)"
maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
-distfiles="
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"
+# we're using aarch64 port repo to get aarch64 JIT; the repo is
+# otherwise the same as the normal one, just with aarch64 port added
+distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz"
+checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4
-checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc
- 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a
- 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef
- 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257
- fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6
- 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b
- 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea
- 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23"
+disable_parallel_build=yes
build_options="docs"
desc_option_docs="Build documentation"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
+provides="java-environment-${version}_1"
+
# no hotspot JIT for arm32 and ppc32
case "$XBPS_TARGET_MACHINE" in
ppc64*) ;;
@@ -81,8 +67,6 @@ else
build_options_default+=" docs"
fi
-provides="java-environment-${version}_1"
-
if [ ! "$CROSS_BUILD" ]; then
hostmakedepends+=" openjdk7-bootstrap"
configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk"
@@ -94,57 +78,11 @@ fi
# enabling ccache segfaults gcc
export CCACHE_DISABLE=1
-alternatives="
- jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer
- jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck
- jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javah:/${_jdk_home}/bin/javah
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii
- jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool
- jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen
- jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport
- jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc
-"
-
post_extract() {
- mv jdk8u*/* .
chmod +x configure
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
- mv ${subrepo}-${_repo_ver} ${subrepo}
- done
+}
+post_patch() {
# gcc complains about the signed shift left
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \
-e's;(-1)<<13;~0u<<13;g'
@@ -152,20 +90,22 @@ post_extract() {
# wrong "return false;" instead of "return null;"
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \
-e"295s;false;null;"
-}
-post_patch() {
- [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0
+ # pretend we're a git checkout
+ echo "${_commit}" > .gittip
+ mkdir .git
- for f in ${FILESDIR}/musl_*.patch; do
- echo "Applying $f"
- patch -sNp1 -i "$f"
- done
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ for f in "${FILESDIR}"/musl_*.patch; do
+ echo "Applying $f"
+ patch -sNp1 -i "$f"
+ done
- # add cross prefix for thread_db.h check, fix cross from glibc to musl
- sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
- hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
- hotspot/make/linux/makefiles/saproc.make
+ # add cross prefix for thread_db.h check, fix cross from glibc to musl
+ sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
+ hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
+ hotspot/make/linux/makefiles/saproc.make
+ fi
}
do_configure() {
@@ -200,11 +140,6 @@ pre_build() {
unset CFLAGS CXXFLAGS LDFLAGS
}
-do_build() {
- # do not set disable_parallel_build in order to be able to read makejobs
- make -j1 ${make_build_args} ${make_build_target}
-}
-
post_install() {
# we manage this ourselves
rm -rf ${DESTDIR}/usr/lib/bin
@@ -213,6 +148,11 @@ post_install() {
mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \
${DESTDIR}/${_jdk_home}
+ # don't duplicate binaries already in jre/bin
+ for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do
+ ln -srf "${bin}" "${bin/jre/}"
+ done
+
vmkdir ${_jdk_home}/lib/security
make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool"
mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/
@@ -228,23 +168,15 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool
- java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd
- java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200
- java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool
- java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry
- java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool
- java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv
- java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre"
pkg_install() {
- vmove ${_jdk_home}/jre
+ vmove "${_jdk_home}"/jre
+ for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do
+ bin="$(basename "$bin")"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
+ done
}
}
@@ -263,12 +195,13 @@ openjdk8-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
- cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk8
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8
fi
- vmove ${_jdk_home}/man/man1
}
}
From ea3ee6579e0e3a60c5347d0db30b63da409f133d Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:41:58 -0500
Subject: [PATCH 4/7] openjdk9-bootstrap: fix jdk8 path
---
srcpkgs/openjdk9-bootstrap/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index c50cc4adc7e18..2027d02781155 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -21,7 +21,7 @@ configure_args="
--with-debug-level=release
--with-version-pre=
--with-version-build=${version#*p}
- --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
+ --with-boot-jdk=/usr/lib/jvm/openjdk8"
make_build_args="images"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel which openjdk8 make"
From 0f84b124516ecfcc80627f19d43a9a4326dddb56 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:40:49 -0500
Subject: [PATCH 5/7] openjdk11-bin: remove package
this package has been useless since 106a275ecd81e132cb80cc21c0ec96a336d16614
make it a transitional package on openjdk11
---
srcpkgs/openjdk11-bin | 1 +
srcpkgs/openjdk11-bin/template | 70 ----------------------------------
srcpkgs/openjdk11/template | 8 +++-
3 files changed, 8 insertions(+), 71 deletions(-)
create mode 120000 srcpkgs/openjdk11-bin
delete mode 100644 srcpkgs/openjdk11-bin/template
diff --git a/srcpkgs/openjdk11-bin b/srcpkgs/openjdk11-bin
new file mode 120000
index 0000000000000..8213494c49ed5
--- /dev/null
+++ b/srcpkgs/openjdk11-bin
@@ -0,0 +1 @@
+openjdk11
\ No newline at end of file
diff --git a/srcpkgs/openjdk11-bin/template b/srcpkgs/openjdk11-bin/template
deleted file mode 100644
index 6dfbbb49fd45a..0000000000000
--- a/srcpkgs/openjdk11-bin/template
+++ /dev/null
@@ -1,70 +0,0 @@
-# Template file for 'openjdk11-bin'
-pkgname=openjdk11-bin
-version=11+28
-revision=2
-archs="x86_64"
-short_desc="Official Reference Implementation for Java SE 11"
-maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
-license="GPL-2.0-only WITH Classpath-exception-2.0"
-homepage="https://jdk.java.net/java-se-ri/11"
-distfiles="https://download.java.net/openjdk/jdk11/ri/openjdk-${version}_linux-x64_bin.tar.gz"
-checksum=3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e
-nopie=true
-
-alternatives="
- java:/usr/bin/java:/usr/lib/jvm/openjdk11-bin/bin/java
- java:/usr/bin/javaws:/usr/lib/jvm/openjdk11-bin/bin/javaws
- java:/usr/bin/jcontrol:/usr/lib/jvm/openjdk11-bin/bin/jcontrol
- java:/usr/bin/jjs:/usr/lib/jvm/openjdk11-bin/bin/jjs
- java:/usr/bin/keytool:/usr/lib/jvm/openjdk11-bin/bin/keytool
- java:/usr/bin/orbd:/usr/lib/jvm/openjdk11-bin/bin/orbd
- java:/usr/bin/pack200:/usr/lib/jvm/openjdk11-bin/bin/pack200
- java:/usr/bin/policytool:/usr/lib/jvm/openjdk11-bin/bin/policytool
- java:/usr/bin/rmid:/usr/lib/jvm/openjdk11-bin/bin/rmid
- java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk11-bin/bin/rmiregistry
- java:/usr/bin/servertool:/usr/lib/jvm/openjdk11-bin/bin/servertool
- java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk11-bin/bin/tnameserv
- java:/usr/bin/unpack200:/usr/lib/jvm/openjdk11-bin/bin/unpack200
-
- jdk:/usr/bin/ControlPanel:/usr/lib/jvm/openjdk11-bin/bin/ControlPanel
- jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk11-bin/bin/appletviewer
- jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk11-bin/bin/extcheck
- jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk11-bin/bin/idlj
- jdk:/usr/bin/jar:/usr/lib/jvm/openjdk11-bin/bin/jar
- jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk11-bin/bin/jarsigner
- jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk11-bin/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/usr/lib/jvm/openjdk11-bin/bin/javac
- jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk11-bin/bin/javadoc
- jdk:/usr/bin/javafxpackager:/usr/lib/jvm/openjdk11-bin/bin/javafxpackager
- jdk:/usr/bin/javah:/usr/lib/jvm/openjdk11-bin/bin/javah
- jdk:/usr/bin/javap:/usr/lib/jvm/openjdk11-bin/bin/javap
- jdk:/usr/bin/javapackager:/usr/lib/jvm/openjdk11-bin/bin/javapackager
- jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk11-bin/bin/jcmd
- jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk11-bin/bin/jconsole
- jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk11-bin/bin/jdb
- jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk11-bin/bin/jdeps
- jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk11-bin/bin/jhat
- jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk11-bin/bin/jinfo
- jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk11-bin/bin/jmap
- jdk:/usr/bin/jmc:/usr/lib/jvm/openjdk11-bin/bin/jmc
- jdk:/usr/bin/jmc.ini:/usr/lib/jvm/openjdk11-bin/bin/jmc.ini
- jdk:/usr/bin/jps:/usr/lib/jvm/openjdk11-bin/bin/jps
- jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk11-bin/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk11-bin/bin/jsadebugd
- jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk11-bin/bin/jstack
- jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk11-bin/bin/jstat
- jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk11-bin/bin/jstatd
- jdk:/usr/bin/jvisualvm:/usr/lib/jvm/openjdk11-bin/bin/jvisualvm
- jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk11-bin/bin/native2ascii
- jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk11-bin/bin/rmic
- jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk11-bin/bin/schemagen
- jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk11-bin/bin/serialver
- jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk11-bin/bin/wsgen
- jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk11-bin/bin/wsimport
- jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk11-bin/bin/xjc
-"
-
-do_install() {
- vmkdir /usr/lib/jvm/openjdk11-bin
- cp -R ./* ${DESTDIR}/usr/lib/jvm/openjdk11-bin
-}
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5dd94241a0c8..2d79c0ddd30dc 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -156,7 +156,7 @@ do_install() {
vlicense LICENSE
}
-subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs"
+subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs openjdk11-bin"
openjdk11-jre_package() {
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
@@ -227,3 +227,9 @@ openjdk11-jmods_package() {
vmove $_jdk_home/jmods
}
}
+
+openjdk11-bin_package() {
+ short_desc+=" (transitional dummy package)"
+ depends="${sourcepkg}>=${version}_${revision}"
+ build_style=meta
+}
From 7530ac823c1dfb942cfe490b938b5ad8c5948a45 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:42:46 -0500
Subject: [PATCH 6/7] openjdk11: update to 11.0.22+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk11/template | 63 ++++++++------------------------------
1 file changed, 12 insertions(+), 51 deletions(-)
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 2d79c0ddd30dc..2754a8d136081 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk11'
pkgname=openjdk11
-version=11.0.20+8
+version=11.0.22+6
revision=1
_java_ver="${version%%.*}"
_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
@@ -38,7 +38,8 @@ maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz"
-checksum=b2a37ef209ae7eaf8f34182b7c9aa3252af20a214d02970f96ce62242c805479
+checksum=8bae7c5e608de84aa32010365514bb59cd0d8ba709f6730cc473e159c6bfb918
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
# Build is still parallel, but don't use -jN.
@@ -73,41 +74,6 @@ else
configure_args+=" --with-boot-jdk=/${_jdk_home}"
fi
-alternatives="
- jdk:/usr/bin/jaotc:/${_jdk_home}/bin/jaotc
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
-"
-
post_extract() {
chmod +x configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -162,20 +128,13 @@ 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 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- java:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- java:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- "
+ depends="fontconfig openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jjs keytool pack200 rmid rmiregistry unpack200; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jjs keytool pack200 rmid rmiregistry unpack200; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -192,13 +151,15 @@ openjdk11-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk11
cp -a build/linux-*/images/docs/* $PKGDESTDIR/usr/share/doc/openjdk11
fi
- vmove $_jdk_home/man/man1
}
}
From 02b3c0941897aa84e8893e304d1ad5006ab278de Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:44:04 -0500
Subject: [PATCH 7/7] openjdk17: update to 17.0.10+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk17/template | 55 ++++++++------------------------------
1 file changed, 11 insertions(+), 44 deletions(-)
diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index bb72701f360e6..22fb16fbf9ec1 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk17'
pkgname=openjdk17
-version=17.0.10+2
+version=17.0.10+6
revision=1
_gtest_ver=1.8.1
_java_ver="${version%%.*}"
@@ -45,8 +45,9 @@ license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz
https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz"
-checksum="dbe68a64c43c3e376abd9d03758a487ecfb9c7bf1fe71cf6c2ca113f909be1cb
+checksum="3d5ef3a18c4edfa6e2a16c74d9e771b09eed433006b1380df450aa88725c7238
9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
patch_args="-Np1 --directory=$build_wrksrc"
@@ -83,37 +84,6 @@ else
configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17"
fi
-alternatives="
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jfr:/${_jdk_home}/bin/jfr
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jpackage:/${_jdk_home}/bin/jpackage
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
-"
-
post_extract() {
chmod +x $build_wrksrc/configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -173,17 +143,12 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jfr keytool rmiregistry; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jfr keytool rmiregistry; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -200,13 +165,15 @@ openjdk17-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
if [ "$build_option_docs" ]; then
local _docdir=usr/share/doc/openjdk$_java_ver
vmkdir $_docdir
cp -a $wrksrc/$build_wrksrc/build/linux-*/images/docs/* ${PKGDESTDIR}/$_docdir
fi
- vmove $_jdk_home/man/man1
}
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Updated] [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
` (3 preceding siblings ...)
2023-12-22 2:34 ` classabbyamp
@ 2023-12-22 3:04 ` classabbyamp
2023-12-22 20:03 ` classabbyamp
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-22 3:04 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages jdk-alts
https://github.com/void-linux/void-packages/pull/47866
[RFC] fix the openjdk alternatives mess
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
#### Testing the changes
- I tested the changes in this PR: **YES**
[ci skip]
closes #47416
A patch file from https://github.com/void-linux/void-packages/pull/47866.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jdk-alts-47866.patch --]
[-- Type: text/x-diff, Size: 31123 bytes --]
From 4d93a5fcc87e7f8962acacbe0345adf8927504ff Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:36:47 -0500
Subject: [PATCH 1/7] xbps-triggers: update to 0.127.
get rid of the openjdk profile hook. it should not have been done like this.
---
srcpkgs/xbps-triggers/files/openjdk-profile | 39 ---------------------
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 1 insertion(+), 40 deletions(-)
delete mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
deleted file mode 100755
index 007d9cd9eedf4..0000000000000
--- a/srcpkgs/xbps-triggers/files/openjdk-profile
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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 76c3a6b27fad4..66936411a4258 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.126
+version=0.127
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
From 7d3275e479cad91f0453cf021813b1eb1216d1fa Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:32:52 -0500
Subject: [PATCH 2/7] New package: openjdk-common-1
Replaces the xbps trigger that added the profile script for openjdk,
which was really a mistake.
Instead of using alternative groups for specific JRE/JDK binaries, use
two symlinks: /usr/lib/jvm/default-jdk and /usr/lib/jvm/default-jre,
which point to /usr/lib/jvm/${version}. Prefer default-jdk to default-jre,
and just add them to PATH and MANPATH instead of putting things in /usr/bin.
---
srcpkgs/openjdk-common/INSTALL | 9 +++++++++
srcpkgs/openjdk-common/INSTALL.msg | 2 ++
srcpkgs/openjdk-common/files/profile.sh | 12 ++++++++++++
srcpkgs/openjdk-common/template | 12 ++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 srcpkgs/openjdk-common/INSTALL
create mode 100644 srcpkgs/openjdk-common/INSTALL.msg
create mode 100644 srcpkgs/openjdk-common/files/profile.sh
create mode 100644 srcpkgs/openjdk-common/template
diff --git a/srcpkgs/openjdk-common/INSTALL b/srcpkgs/openjdk-common/INSTALL
new file mode 100644
index 0000000000000..e0e155cc208ab
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL
@@ -0,0 +1,9 @@
+#!/bin/sh
+case "$ACTION" in
+pre)
+ # remove the openjdk.sh from xbps-triggers
+ if [ -e "./etc/profile.d/openjdk.sh" ]; then
+ rm "./etc/profile.d/openjdk.sh"
+ fi
+ ;;
+esac
diff --git a/srcpkgs/openjdk-common/INSTALL.msg b/srcpkgs/openjdk-common/INSTALL.msg
new file mode 100644
index 0000000000000..7e75b5abe457b
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL.msg
@@ -0,0 +1,2 @@
+The way the default OpenJDK version is selected has changed.
+You may need to re-login for this change to take effect.
diff --git a/srcpkgs/openjdk-common/files/profile.sh b/srcpkgs/openjdk-common/files/profile.sh
new file mode 100644
index 0000000000000..e9c9a6042eea7
--- /dev/null
+++ b/srcpkgs/openjdk-common/files/profile.sh
@@ -0,0 +1,12 @@
+# only modify the environment if an openjdk*-jre package is installed
+if [ -e "/usr/lib/jvm/default-jre" ]; then
+ # if an openjdk* package is installed, prefer it to the selected jre
+ if [ -e "/usr/lib/jvm/default-jdk" ]; then
+ export JAVA_HOME="/usr/lib/jvm/default-jdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/default-jre"
+ fi
+ # append the select jdk and jre bin and man dirs to the relevant PATHs
+ export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
+ export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
+fi
diff --git a/srcpkgs/openjdk-common/template b/srcpkgs/openjdk-common/template
new file mode 100644
index 0000000000000..65faafe295e44
--- /dev/null
+++ b/srcpkgs/openjdk-common/template
@@ -0,0 +1,12 @@
+# Template file for 'openjdk-common'
+pkgname=openjdk-common
+version=1
+revision=1
+short_desc="Common files for OpenJDK packages"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="Public Domain"
+homepage="https://www.voidlinux.org"
+
+do_install() {
+ vinstall "${FILESDIR}"/profile.sh 644 /etc/profile.d openjdk.sh
+}
From 50f24aa6e4e9387d6242a7f81e8f800c651c2636 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:37:34 -0500
Subject: [PATCH 3/7] openjdk8: update to 8u332b05.
- various template cleanups
- rename /usr/lib/jvm/java-1.8-openjdk to /usr/lib/jvm/openjdk8
for consistency
- fix manpages
- fix alternatives
---
srcpkgs/openjdk8/template | 167 ++++++++++++--------------------------
1 file changed, 50 insertions(+), 117 deletions(-)
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 8266daff8d8a2..966f5c3703f01 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -1,19 +1,13 @@
# Template file for 'openjdk8'
-# TODO: better places for bin and man?
-# TODO: make -headless versions
-# TODO: config files?
pkgname=openjdk8
-version=8u322b04
-revision=5
+version=8u332b05
+revision=1
_jdk_update="${version#*u}"
_jdk_update="${_jdk_update%b*}"
_jdk_build="${version#*b}"
-_jdk_home="usr/lib/jvm/java-1.8-openjdk"
-# we're using aarch64 port repo to get aarch64 JIT; the repo is
-# otherwise the same as the normal one, just with aarch64 port added
-_repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
+_jdk_home="usr/lib/jvm/openjdk8"
+_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e"
archs="x86_64* i686* aarch64* arm* ppc64*"
-create_wrksrc=yes
build_style=gnu-configure
configure_args="
--prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib
@@ -28,13 +22,14 @@ configure_args="
--with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib
--with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2
--with-jtreg=no
- --with-jobs=${XBPS_MAKEJOBS}
- --with-vendor-name="Void"
- --with-vendor-url="https://voidlinux.org/"
- --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
- --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues"
+ --with-jobs=${XBPS_ORIG_MAKEJOBS}
+ --with-vendor-name=Void
+ --with-vendor-url=https://voidlinux.org/
+ --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues
+ --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues
--disable-option-checking"
-make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false"
+make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true"
+make_install_args="GIT=true"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel make-ca which"
makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
@@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)"
maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
-distfiles="
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"
+# we're using aarch64 port repo to get aarch64 JIT; the repo is
+# otherwise the same as the normal one, just with aarch64 port added
+distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz"
+checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4
-checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc
- 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a
- 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef
- 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257
- fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6
- 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b
- 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea
- 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23"
+disable_parallel_build=yes
build_options="docs"
desc_option_docs="Build documentation"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
+provides="java-environment-${version}_1"
+
# no hotspot JIT for arm32 and ppc32
case "$XBPS_TARGET_MACHINE" in
ppc64*) ;;
@@ -81,8 +67,6 @@ else
build_options_default+=" docs"
fi
-provides="java-environment-${version}_1"
-
if [ ! "$CROSS_BUILD" ]; then
hostmakedepends+=" openjdk7-bootstrap"
configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk"
@@ -94,57 +78,11 @@ fi
# enabling ccache segfaults gcc
export CCACHE_DISABLE=1
-alternatives="
- jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer
- jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck
- jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javah:/${_jdk_home}/bin/javah
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii
- jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool
- jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen
- jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport
- jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc
-"
-
post_extract() {
- mv jdk8u*/* .
chmod +x configure
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
- mv ${subrepo}-${_repo_ver} ${subrepo}
- done
+}
+post_patch() {
# gcc complains about the signed shift left
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \
-e's;(-1)<<13;~0u<<13;g'
@@ -152,20 +90,22 @@ post_extract() {
# wrong "return false;" instead of "return null;"
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \
-e"295s;false;null;"
-}
-post_patch() {
- [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0
+ # pretend we're a git checkout
+ echo "${_commit}" > .gittip
+ mkdir .git
- for f in ${FILESDIR}/musl_*.patch; do
- echo "Applying $f"
- patch -sNp1 -i "$f"
- done
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ for f in "${FILESDIR}"/musl_*.patch; do
+ echo "Applying $f"
+ patch -sNp1 -i "$f"
+ done
- # add cross prefix for thread_db.h check, fix cross from glibc to musl
- sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
- hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
- hotspot/make/linux/makefiles/saproc.make
+ # add cross prefix for thread_db.h check, fix cross from glibc to musl
+ sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
+ hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
+ hotspot/make/linux/makefiles/saproc.make
+ fi
}
do_configure() {
@@ -200,11 +140,6 @@ pre_build() {
unset CFLAGS CXXFLAGS LDFLAGS
}
-do_build() {
- # do not set disable_parallel_build in order to be able to read makejobs
- make -j1 ${make_build_args} ${make_build_target}
-}
-
post_install() {
# we manage this ourselves
rm -rf ${DESTDIR}/usr/lib/bin
@@ -213,6 +148,11 @@ post_install() {
mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \
${DESTDIR}/${_jdk_home}
+ # don't duplicate binaries already in jre/bin
+ for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do
+ ln -srf "${bin}" "${bin/jre/}"
+ done
+
vmkdir ${_jdk_home}/lib/security
make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool"
mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/
@@ -228,23 +168,15 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool
- java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd
- java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200
- java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool
- java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry
- java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool
- java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv
- java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre"
pkg_install() {
- vmove ${_jdk_home}/jre
+ vmove "${_jdk_home}"/jre
+ for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do
+ bin="$(basename "$bin")"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
+ done
}
}
@@ -263,12 +195,13 @@ openjdk8-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
- cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk8
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8
fi
- vmove ${_jdk_home}/man/man1
}
}
From ea3ee6579e0e3a60c5347d0db30b63da409f133d Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:41:58 -0500
Subject: [PATCH 4/7] openjdk9-bootstrap: fix jdk8 path
---
srcpkgs/openjdk9-bootstrap/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index c50cc4adc7e18..2027d02781155 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -21,7 +21,7 @@ configure_args="
--with-debug-level=release
--with-version-pre=
--with-version-build=${version#*p}
- --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
+ --with-boot-jdk=/usr/lib/jvm/openjdk8"
make_build_args="images"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel which openjdk8 make"
From 0301c66baebb3c213fcb5963313d4728414dd03b Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:40:49 -0500
Subject: [PATCH 5/7] openjdk11-bin: remove package
this package has been useless since 106a275ecd81e132cb80cc21c0ec96a336d16614
make it a transitional package on openjdk11
---
srcpkgs/openjdk11-bin | 1 +
srcpkgs/openjdk11-bin/template | 70 ----------------------------------
srcpkgs/openjdk11/template | 9 ++++-
3 files changed, 9 insertions(+), 71 deletions(-)
create mode 120000 srcpkgs/openjdk11-bin
delete mode 100644 srcpkgs/openjdk11-bin/template
diff --git a/srcpkgs/openjdk11-bin b/srcpkgs/openjdk11-bin
new file mode 120000
index 0000000000000..8213494c49ed5
--- /dev/null
+++ b/srcpkgs/openjdk11-bin
@@ -0,0 +1 @@
+openjdk11
\ No newline at end of file
diff --git a/srcpkgs/openjdk11-bin/template b/srcpkgs/openjdk11-bin/template
deleted file mode 100644
index 6dfbbb49fd45a..0000000000000
--- a/srcpkgs/openjdk11-bin/template
+++ /dev/null
@@ -1,70 +0,0 @@
-# Template file for 'openjdk11-bin'
-pkgname=openjdk11-bin
-version=11+28
-revision=2
-archs="x86_64"
-short_desc="Official Reference Implementation for Java SE 11"
-maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
-license="GPL-2.0-only WITH Classpath-exception-2.0"
-homepage="https://jdk.java.net/java-se-ri/11"
-distfiles="https://download.java.net/openjdk/jdk11/ri/openjdk-${version}_linux-x64_bin.tar.gz"
-checksum=3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e
-nopie=true
-
-alternatives="
- java:/usr/bin/java:/usr/lib/jvm/openjdk11-bin/bin/java
- java:/usr/bin/javaws:/usr/lib/jvm/openjdk11-bin/bin/javaws
- java:/usr/bin/jcontrol:/usr/lib/jvm/openjdk11-bin/bin/jcontrol
- java:/usr/bin/jjs:/usr/lib/jvm/openjdk11-bin/bin/jjs
- java:/usr/bin/keytool:/usr/lib/jvm/openjdk11-bin/bin/keytool
- java:/usr/bin/orbd:/usr/lib/jvm/openjdk11-bin/bin/orbd
- java:/usr/bin/pack200:/usr/lib/jvm/openjdk11-bin/bin/pack200
- java:/usr/bin/policytool:/usr/lib/jvm/openjdk11-bin/bin/policytool
- java:/usr/bin/rmid:/usr/lib/jvm/openjdk11-bin/bin/rmid
- java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk11-bin/bin/rmiregistry
- java:/usr/bin/servertool:/usr/lib/jvm/openjdk11-bin/bin/servertool
- java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk11-bin/bin/tnameserv
- java:/usr/bin/unpack200:/usr/lib/jvm/openjdk11-bin/bin/unpack200
-
- jdk:/usr/bin/ControlPanel:/usr/lib/jvm/openjdk11-bin/bin/ControlPanel
- jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk11-bin/bin/appletviewer
- jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk11-bin/bin/extcheck
- jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk11-bin/bin/idlj
- jdk:/usr/bin/jar:/usr/lib/jvm/openjdk11-bin/bin/jar
- jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk11-bin/bin/jarsigner
- jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk11-bin/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/usr/lib/jvm/openjdk11-bin/bin/javac
- jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk11-bin/bin/javadoc
- jdk:/usr/bin/javafxpackager:/usr/lib/jvm/openjdk11-bin/bin/javafxpackager
- jdk:/usr/bin/javah:/usr/lib/jvm/openjdk11-bin/bin/javah
- jdk:/usr/bin/javap:/usr/lib/jvm/openjdk11-bin/bin/javap
- jdk:/usr/bin/javapackager:/usr/lib/jvm/openjdk11-bin/bin/javapackager
- jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk11-bin/bin/jcmd
- jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk11-bin/bin/jconsole
- jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk11-bin/bin/jdb
- jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk11-bin/bin/jdeps
- jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk11-bin/bin/jhat
- jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk11-bin/bin/jinfo
- jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk11-bin/bin/jmap
- jdk:/usr/bin/jmc:/usr/lib/jvm/openjdk11-bin/bin/jmc
- jdk:/usr/bin/jmc.ini:/usr/lib/jvm/openjdk11-bin/bin/jmc.ini
- jdk:/usr/bin/jps:/usr/lib/jvm/openjdk11-bin/bin/jps
- jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk11-bin/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk11-bin/bin/jsadebugd
- jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk11-bin/bin/jstack
- jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk11-bin/bin/jstat
- jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk11-bin/bin/jstatd
- jdk:/usr/bin/jvisualvm:/usr/lib/jvm/openjdk11-bin/bin/jvisualvm
- jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk11-bin/bin/native2ascii
- jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk11-bin/bin/rmic
- jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk11-bin/bin/schemagen
- jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk11-bin/bin/serialver
- jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk11-bin/bin/wsgen
- jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk11-bin/bin/wsimport
- jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk11-bin/bin/xjc
-"
-
-do_install() {
- vmkdir /usr/lib/jvm/openjdk11-bin
- cp -R ./* ${DESTDIR}/usr/lib/jvm/openjdk11-bin
-}
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5dd94241a0c8..783e7c28d72b5 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -156,7 +156,7 @@ do_install() {
vlicense LICENSE
}
-subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs"
+subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs openjdk11-bin"
openjdk11-jre_package() {
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
@@ -227,3 +227,10 @@ openjdk11-jmods_package() {
vmove $_jdk_home/jmods
}
}
+
+openjdk11-bin_package() {
+ reverts="11+28_1 11+28_2"
+ short_desc+=" (transitional dummy package)"
+ depends="${sourcepkg}>=${version}_${revision}"
+ build_style=meta
+}
From 2d1b700e5dcd0ea111c73c0c8af060b12dbcc47a Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:42:46 -0500
Subject: [PATCH 6/7] openjdk11: update to 11.0.22+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk11/template | 63 ++++++++------------------------------
1 file changed, 12 insertions(+), 51 deletions(-)
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 783e7c28d72b5..64f43424204cc 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk11'
pkgname=openjdk11
-version=11.0.20+8
+version=11.0.22+6
revision=1
_java_ver="${version%%.*}"
_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
@@ -38,7 +38,8 @@ maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz"
-checksum=b2a37ef209ae7eaf8f34182b7c9aa3252af20a214d02970f96ce62242c805479
+checksum=8bae7c5e608de84aa32010365514bb59cd0d8ba709f6730cc473e159c6bfb918
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
# Build is still parallel, but don't use -jN.
@@ -73,41 +74,6 @@ else
configure_args+=" --with-boot-jdk=/${_jdk_home}"
fi
-alternatives="
- jdk:/usr/bin/jaotc:/${_jdk_home}/bin/jaotc
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
-"
-
post_extract() {
chmod +x configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -162,20 +128,13 @@ 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 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- java:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- java:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- "
+ depends="fontconfig openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jjs keytool pack200 rmid rmiregistry unpack200; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jjs keytool pack200 rmid rmiregistry unpack200; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -192,13 +151,15 @@ openjdk11-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk11
cp -a build/linux-*/images/docs/* $PKGDESTDIR/usr/share/doc/openjdk11
fi
- vmove $_jdk_home/man/man1
}
}
From 3969b770480d4d99865cd5aeee47ccc1e5d9b784 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:44:04 -0500
Subject: [PATCH 7/7] openjdk17: update to 17.0.10+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk17/template | 55 ++++++++------------------------------
1 file changed, 11 insertions(+), 44 deletions(-)
diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index bb72701f360e6..22fb16fbf9ec1 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk17'
pkgname=openjdk17
-version=17.0.10+2
+version=17.0.10+6
revision=1
_gtest_ver=1.8.1
_java_ver="${version%%.*}"
@@ -45,8 +45,9 @@ license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz
https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz"
-checksum="dbe68a64c43c3e376abd9d03758a487ecfb9c7bf1fe71cf6c2ca113f909be1cb
+checksum="3d5ef3a18c4edfa6e2a16c74d9e771b09eed433006b1380df450aa88725c7238
9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
patch_args="-Np1 --directory=$build_wrksrc"
@@ -83,37 +84,6 @@ else
configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17"
fi
-alternatives="
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jfr:/${_jdk_home}/bin/jfr
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jpackage:/${_jdk_home}/bin/jpackage
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
-"
-
post_extract() {
chmod +x $build_wrksrc/configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -173,17 +143,12 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jfr keytool rmiregistry; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jfr keytool rmiregistry; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -200,13 +165,15 @@ openjdk17-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
if [ "$build_option_docs" ]; then
local _docdir=usr/share/doc/openjdk$_java_ver
vmkdir $_docdir
cp -a $wrksrc/$build_wrksrc/build/linux-*/images/docs/* ${PKGDESTDIR}/$_docdir
fi
- vmove $_jdk_home/man/man1
}
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Updated] [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
` (4 preceding siblings ...)
2023-12-22 3:04 ` classabbyamp
@ 2023-12-22 20:03 ` classabbyamp
2023-12-22 22:05 ` classabbyamp
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-22 20:03 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages jdk-alts
https://github.com/void-linux/void-packages/pull/47866
[RFC] fix the openjdk alternatives mess
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
#### Testing the changes
- I tested the changes in this PR: **YES**
[ci skip]
closes #47416
A patch file from https://github.com/void-linux/void-packages/pull/47866.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jdk-alts-47866.patch --]
[-- Type: text/x-diff, Size: 31119 bytes --]
From 56345e93023ab121342266ce59f2a222e7f9575d Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:36:47 -0500
Subject: [PATCH 1/7] xbps-triggers: update to 0.127.
get rid of the openjdk profile hook. it should not have been done like this.
---
srcpkgs/xbps-triggers/files/openjdk-profile | 39 ---------------------
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 1 insertion(+), 40 deletions(-)
delete mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile
diff --git a/srcpkgs/xbps-triggers/files/openjdk-profile b/srcpkgs/xbps-triggers/files/openjdk-profile
deleted file mode 100755
index 007d9cd9eedf4..0000000000000
--- a/srcpkgs/xbps-triggers/files/openjdk-profile
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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 76c3a6b27fad4..66936411a4258 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.126
+version=0.127
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
From ce2eb40fb883040484ad7d5ffc9d3153fe247a4d Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:32:52 -0500
Subject: [PATCH 2/7] New package: openjdk-common-1
Replaces the xbps trigger that added the profile script for openjdk,
which was really a mistake.
Instead of using alternative groups for specific JRE/JDK binaries, use
two symlinks: /usr/lib/jvm/default-jdk and /usr/lib/jvm/default-jre,
which point to /usr/lib/jvm/${version}. Prefer default-jdk to default-jre,
and just add them to PATH and MANPATH instead of putting things in /usr/bin.
---
srcpkgs/openjdk-common/INSTALL | 9 +++++++++
srcpkgs/openjdk-common/INSTALL.msg | 2 ++
srcpkgs/openjdk-common/files/profile.sh | 12 ++++++++++++
srcpkgs/openjdk-common/template | 12 ++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 srcpkgs/openjdk-common/INSTALL
create mode 100644 srcpkgs/openjdk-common/INSTALL.msg
create mode 100644 srcpkgs/openjdk-common/files/profile.sh
create mode 100644 srcpkgs/openjdk-common/template
diff --git a/srcpkgs/openjdk-common/INSTALL b/srcpkgs/openjdk-common/INSTALL
new file mode 100644
index 0000000000000..e0e155cc208ab
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL
@@ -0,0 +1,9 @@
+#!/bin/sh
+case "$ACTION" in
+pre)
+ # remove the openjdk.sh from xbps-triggers
+ if [ -e "./etc/profile.d/openjdk.sh" ]; then
+ rm "./etc/profile.d/openjdk.sh"
+ fi
+ ;;
+esac
diff --git a/srcpkgs/openjdk-common/INSTALL.msg b/srcpkgs/openjdk-common/INSTALL.msg
new file mode 100644
index 0000000000000..7e75b5abe457b
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL.msg
@@ -0,0 +1,2 @@
+The way the default OpenJDK version is selected has changed.
+You may need to re-login for this change to take effect.
diff --git a/srcpkgs/openjdk-common/files/profile.sh b/srcpkgs/openjdk-common/files/profile.sh
new file mode 100644
index 0000000000000..e9c9a6042eea7
--- /dev/null
+++ b/srcpkgs/openjdk-common/files/profile.sh
@@ -0,0 +1,12 @@
+# only modify the environment if an openjdk*-jre package is installed
+if [ -e "/usr/lib/jvm/default-jre" ]; then
+ # if an openjdk* package is installed, prefer it to the selected jre
+ if [ -e "/usr/lib/jvm/default-jdk" ]; then
+ export JAVA_HOME="/usr/lib/jvm/default-jdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/default-jre"
+ fi
+ # append the select jdk and jre bin and man dirs to the relevant PATHs
+ export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
+ export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
+fi
diff --git a/srcpkgs/openjdk-common/template b/srcpkgs/openjdk-common/template
new file mode 100644
index 0000000000000..e0d3d53d55004
--- /dev/null
+++ b/srcpkgs/openjdk-common/template
@@ -0,0 +1,12 @@
+# Template file for 'openjdk-common'
+pkgname=openjdk-common
+version=1
+revision=1
+short_desc="Common files for OpenJDK packages"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="Public Domain"
+homepage="https://www.voidlinux.org"
+
+do_install() {
+ vinstall "${FILESDIR}"/profile.sh 644 /etc/profile.d jdk.sh
+}
From ea5d03a079ffbadbd23599429a4b6764279a9312 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:37:34 -0500
Subject: [PATCH 3/7] openjdk8: update to 8u332b05.
- various template cleanups
- rename /usr/lib/jvm/java-1.8-openjdk to /usr/lib/jvm/openjdk8
for consistency
- fix manpages
- fix alternatives
---
srcpkgs/openjdk8/template | 167 ++++++++++++--------------------------
1 file changed, 50 insertions(+), 117 deletions(-)
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 8266daff8d8a2..966f5c3703f01 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -1,19 +1,13 @@
# Template file for 'openjdk8'
-# TODO: better places for bin and man?
-# TODO: make -headless versions
-# TODO: config files?
pkgname=openjdk8
-version=8u322b04
-revision=5
+version=8u332b05
+revision=1
_jdk_update="${version#*u}"
_jdk_update="${_jdk_update%b*}"
_jdk_build="${version#*b}"
-_jdk_home="usr/lib/jvm/java-1.8-openjdk"
-# we're using aarch64 port repo to get aarch64 JIT; the repo is
-# otherwise the same as the normal one, just with aarch64 port added
-_repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
+_jdk_home="usr/lib/jvm/openjdk8"
+_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e"
archs="x86_64* i686* aarch64* arm* ppc64*"
-create_wrksrc=yes
build_style=gnu-configure
configure_args="
--prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib
@@ -28,13 +22,14 @@ configure_args="
--with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib
--with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2
--with-jtreg=no
- --with-jobs=${XBPS_MAKEJOBS}
- --with-vendor-name="Void"
- --with-vendor-url="https://voidlinux.org/"
- --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
- --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues"
+ --with-jobs=${XBPS_ORIG_MAKEJOBS}
+ --with-vendor-name=Void
+ --with-vendor-url=https://voidlinux.org/
+ --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues
+ --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues
--disable-option-checking"
-make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false"
+make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true"
+make_install_args="GIT=true"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel make-ca which"
makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
@@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)"
maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
-distfiles="
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"
+# we're using aarch64 port repo to get aarch64 JIT; the repo is
+# otherwise the same as the normal one, just with aarch64 port added
+distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz"
+checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4
-checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc
- 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a
- 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef
- 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257
- fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6
- 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b
- 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea
- 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23"
+disable_parallel_build=yes
build_options="docs"
desc_option_docs="Build documentation"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
+provides="java-environment-${version}_1"
+
# no hotspot JIT for arm32 and ppc32
case "$XBPS_TARGET_MACHINE" in
ppc64*) ;;
@@ -81,8 +67,6 @@ else
build_options_default+=" docs"
fi
-provides="java-environment-${version}_1"
-
if [ ! "$CROSS_BUILD" ]; then
hostmakedepends+=" openjdk7-bootstrap"
configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk"
@@ -94,57 +78,11 @@ fi
# enabling ccache segfaults gcc
export CCACHE_DISABLE=1
-alternatives="
- jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer
- jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck
- jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javah:/${_jdk_home}/bin/javah
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii
- jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool
- jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen
- jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport
- jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc
-"
-
post_extract() {
- mv jdk8u*/* .
chmod +x configure
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
- mv ${subrepo}-${_repo_ver} ${subrepo}
- done
+}
+post_patch() {
# gcc complains about the signed shift left
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \
-e's;(-1)<<13;~0u<<13;g'
@@ -152,20 +90,22 @@ post_extract() {
# wrong "return false;" instead of "return null;"
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \
-e"295s;false;null;"
-}
-post_patch() {
- [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0
+ # pretend we're a git checkout
+ echo "${_commit}" > .gittip
+ mkdir .git
- for f in ${FILESDIR}/musl_*.patch; do
- echo "Applying $f"
- patch -sNp1 -i "$f"
- done
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ for f in "${FILESDIR}"/musl_*.patch; do
+ echo "Applying $f"
+ patch -sNp1 -i "$f"
+ done
- # add cross prefix for thread_db.h check, fix cross from glibc to musl
- sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
- hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
- hotspot/make/linux/makefiles/saproc.make
+ # add cross prefix for thread_db.h check, fix cross from glibc to musl
+ sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
+ hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
+ hotspot/make/linux/makefiles/saproc.make
+ fi
}
do_configure() {
@@ -200,11 +140,6 @@ pre_build() {
unset CFLAGS CXXFLAGS LDFLAGS
}
-do_build() {
- # do not set disable_parallel_build in order to be able to read makejobs
- make -j1 ${make_build_args} ${make_build_target}
-}
-
post_install() {
# we manage this ourselves
rm -rf ${DESTDIR}/usr/lib/bin
@@ -213,6 +148,11 @@ post_install() {
mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \
${DESTDIR}/${_jdk_home}
+ # don't duplicate binaries already in jre/bin
+ for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do
+ ln -srf "${bin}" "${bin/jre/}"
+ done
+
vmkdir ${_jdk_home}/lib/security
make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool"
mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/
@@ -228,23 +168,15 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool
- java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd
- java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200
- java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool
- java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry
- java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool
- java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv
- java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre"
pkg_install() {
- vmove ${_jdk_home}/jre
+ vmove "${_jdk_home}"/jre
+ for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do
+ bin="$(basename "$bin")"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
+ done
}
}
@@ -263,12 +195,13 @@ openjdk8-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
- cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk8
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8
fi
- vmove ${_jdk_home}/man/man1
}
}
From 80661c0478dba9eb4f6a277aeed5dc15842561ff Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:41:58 -0500
Subject: [PATCH 4/7] openjdk9-bootstrap: fix jdk8 path
---
srcpkgs/openjdk9-bootstrap/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index c50cc4adc7e18..2027d02781155 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -21,7 +21,7 @@ configure_args="
--with-debug-level=release
--with-version-pre=
--with-version-build=${version#*p}
- --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
+ --with-boot-jdk=/usr/lib/jvm/openjdk8"
make_build_args="images"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel which openjdk8 make"
From b1d0293b9f9e10bd22b65ed1e023b5391bd696e4 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:40:49 -0500
Subject: [PATCH 5/7] openjdk11-bin: remove package
this package has been useless since 106a275ecd81e132cb80cc21c0ec96a336d16614
make it a transitional package on openjdk11
---
srcpkgs/openjdk11-bin | 1 +
srcpkgs/openjdk11-bin/template | 70 ----------------------------------
srcpkgs/openjdk11/template | 9 ++++-
3 files changed, 9 insertions(+), 71 deletions(-)
create mode 120000 srcpkgs/openjdk11-bin
delete mode 100644 srcpkgs/openjdk11-bin/template
diff --git a/srcpkgs/openjdk11-bin b/srcpkgs/openjdk11-bin
new file mode 120000
index 0000000000000..8213494c49ed5
--- /dev/null
+++ b/srcpkgs/openjdk11-bin
@@ -0,0 +1 @@
+openjdk11
\ No newline at end of file
diff --git a/srcpkgs/openjdk11-bin/template b/srcpkgs/openjdk11-bin/template
deleted file mode 100644
index 6dfbbb49fd45a..0000000000000
--- a/srcpkgs/openjdk11-bin/template
+++ /dev/null
@@ -1,70 +0,0 @@
-# Template file for 'openjdk11-bin'
-pkgname=openjdk11-bin
-version=11+28
-revision=2
-archs="x86_64"
-short_desc="Official Reference Implementation for Java SE 11"
-maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
-license="GPL-2.0-only WITH Classpath-exception-2.0"
-homepage="https://jdk.java.net/java-se-ri/11"
-distfiles="https://download.java.net/openjdk/jdk11/ri/openjdk-${version}_linux-x64_bin.tar.gz"
-checksum=3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e
-nopie=true
-
-alternatives="
- java:/usr/bin/java:/usr/lib/jvm/openjdk11-bin/bin/java
- java:/usr/bin/javaws:/usr/lib/jvm/openjdk11-bin/bin/javaws
- java:/usr/bin/jcontrol:/usr/lib/jvm/openjdk11-bin/bin/jcontrol
- java:/usr/bin/jjs:/usr/lib/jvm/openjdk11-bin/bin/jjs
- java:/usr/bin/keytool:/usr/lib/jvm/openjdk11-bin/bin/keytool
- java:/usr/bin/orbd:/usr/lib/jvm/openjdk11-bin/bin/orbd
- java:/usr/bin/pack200:/usr/lib/jvm/openjdk11-bin/bin/pack200
- java:/usr/bin/policytool:/usr/lib/jvm/openjdk11-bin/bin/policytool
- java:/usr/bin/rmid:/usr/lib/jvm/openjdk11-bin/bin/rmid
- java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk11-bin/bin/rmiregistry
- java:/usr/bin/servertool:/usr/lib/jvm/openjdk11-bin/bin/servertool
- java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk11-bin/bin/tnameserv
- java:/usr/bin/unpack200:/usr/lib/jvm/openjdk11-bin/bin/unpack200
-
- jdk:/usr/bin/ControlPanel:/usr/lib/jvm/openjdk11-bin/bin/ControlPanel
- jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk11-bin/bin/appletviewer
- jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk11-bin/bin/extcheck
- jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk11-bin/bin/idlj
- jdk:/usr/bin/jar:/usr/lib/jvm/openjdk11-bin/bin/jar
- jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk11-bin/bin/jarsigner
- jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk11-bin/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/usr/lib/jvm/openjdk11-bin/bin/javac
- jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk11-bin/bin/javadoc
- jdk:/usr/bin/javafxpackager:/usr/lib/jvm/openjdk11-bin/bin/javafxpackager
- jdk:/usr/bin/javah:/usr/lib/jvm/openjdk11-bin/bin/javah
- jdk:/usr/bin/javap:/usr/lib/jvm/openjdk11-bin/bin/javap
- jdk:/usr/bin/javapackager:/usr/lib/jvm/openjdk11-bin/bin/javapackager
- jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk11-bin/bin/jcmd
- jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk11-bin/bin/jconsole
- jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk11-bin/bin/jdb
- jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk11-bin/bin/jdeps
- jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk11-bin/bin/jhat
- jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk11-bin/bin/jinfo
- jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk11-bin/bin/jmap
- jdk:/usr/bin/jmc:/usr/lib/jvm/openjdk11-bin/bin/jmc
- jdk:/usr/bin/jmc.ini:/usr/lib/jvm/openjdk11-bin/bin/jmc.ini
- jdk:/usr/bin/jps:/usr/lib/jvm/openjdk11-bin/bin/jps
- jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk11-bin/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk11-bin/bin/jsadebugd
- jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk11-bin/bin/jstack
- jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk11-bin/bin/jstat
- jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk11-bin/bin/jstatd
- jdk:/usr/bin/jvisualvm:/usr/lib/jvm/openjdk11-bin/bin/jvisualvm
- jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk11-bin/bin/native2ascii
- jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk11-bin/bin/rmic
- jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk11-bin/bin/schemagen
- jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk11-bin/bin/serialver
- jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk11-bin/bin/wsgen
- jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk11-bin/bin/wsimport
- jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk11-bin/bin/xjc
-"
-
-do_install() {
- vmkdir /usr/lib/jvm/openjdk11-bin
- cp -R ./* ${DESTDIR}/usr/lib/jvm/openjdk11-bin
-}
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5dd94241a0c8..783e7c28d72b5 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -156,7 +156,7 @@ do_install() {
vlicense LICENSE
}
-subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs"
+subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs openjdk11-bin"
openjdk11-jre_package() {
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
@@ -227,3 +227,10 @@ openjdk11-jmods_package() {
vmove $_jdk_home/jmods
}
}
+
+openjdk11-bin_package() {
+ reverts="11+28_1 11+28_2"
+ short_desc+=" (transitional dummy package)"
+ depends="${sourcepkg}>=${version}_${revision}"
+ build_style=meta
+}
From bfa3cca499ca706d0961a464909ef84e897bac0d Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:42:46 -0500
Subject: [PATCH 6/7] openjdk11: update to 11.0.22+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk11/template | 63 ++++++++------------------------------
1 file changed, 12 insertions(+), 51 deletions(-)
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 783e7c28d72b5..64f43424204cc 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk11'
pkgname=openjdk11
-version=11.0.20+8
+version=11.0.22+6
revision=1
_java_ver="${version%%.*}"
_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
@@ -38,7 +38,8 @@ maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz"
-checksum=b2a37ef209ae7eaf8f34182b7c9aa3252af20a214d02970f96ce62242c805479
+checksum=8bae7c5e608de84aa32010365514bb59cd0d8ba709f6730cc473e159c6bfb918
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
# Build is still parallel, but don't use -jN.
@@ -73,41 +74,6 @@ else
configure_args+=" --with-boot-jdk=/${_jdk_home}"
fi
-alternatives="
- jdk:/usr/bin/jaotc:/${_jdk_home}/bin/jaotc
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
-"
-
post_extract() {
chmod +x configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -162,20 +128,13 @@ 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 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- java:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- java:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- "
+ depends="fontconfig openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jjs keytool pack200 rmid rmiregistry unpack200; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jjs keytool pack200 rmid rmiregistry unpack200; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -192,13 +151,15 @@ openjdk11-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk11
cp -a build/linux-*/images/docs/* $PKGDESTDIR/usr/share/doc/openjdk11
fi
- vmove $_jdk_home/man/man1
}
}
From 2511df5c125581b2f8147755c2b548b614f1db09 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:44:04 -0500
Subject: [PATCH 7/7] openjdk17: update to 17.0.10+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk17/template | 55 ++++++++------------------------------
1 file changed, 11 insertions(+), 44 deletions(-)
diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index bb72701f360e6..22fb16fbf9ec1 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk17'
pkgname=openjdk17
-version=17.0.10+2
+version=17.0.10+6
revision=1
_gtest_ver=1.8.1
_java_ver="${version%%.*}"
@@ -45,8 +45,9 @@ license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz
https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz"
-checksum="dbe68a64c43c3e376abd9d03758a487ecfb9c7bf1fe71cf6c2ca113f909be1cb
+checksum="3d5ef3a18c4edfa6e2a16c74d9e771b09eed433006b1380df450aa88725c7238
9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
patch_args="-Np1 --directory=$build_wrksrc"
@@ -83,37 +84,6 @@ else
configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17"
fi
-alternatives="
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jfr:/${_jdk_home}/bin/jfr
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jpackage:/${_jdk_home}/bin/jpackage
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
-"
-
post_extract() {
chmod +x $build_wrksrc/configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -173,17 +143,12 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jfr keytool rmiregistry; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jfr keytool rmiregistry; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -200,13 +165,15 @@ openjdk17-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
if [ "$build_option_docs" ]; then
local _docdir=usr/share/doc/openjdk$_java_ver
vmkdir $_docdir
cp -a $wrksrc/$build_wrksrc/build/linux-*/images/docs/* ${PKGDESTDIR}/$_docdir
fi
- vmove $_jdk_home/man/man1
}
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Updated] [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
` (5 preceding siblings ...)
2023-12-22 20:03 ` classabbyamp
@ 2023-12-22 22:05 ` classabbyamp
2023-12-23 0:27 ` classabbyamp
2023-12-24 13:39 ` [PR PATCH] [Merged]: " classabbyamp
8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-22 22:05 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages jdk-alts
https://github.com/void-linux/void-packages/pull/47866
[RFC] fix the openjdk alternatives mess
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
#### Testing the changes
- I tested the changes in this PR: **YES**
[ci skip]
closes #47416
A patch file from https://github.com/void-linux/void-packages/pull/47866.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jdk-alts-47866.patch --]
[-- Type: text/x-diff, Size: 32219 bytes --]
From 1b6d702ca2c9c6b434eb3d4688f0d66811567d39 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:36:47 -0500
Subject: [PATCH 1/7] xbps-triggers: update to 0.127.
get rid of the openjdk profile hook. it should not have been done like this.
---
Manual.md | 8 -----
srcpkgs/xbps-triggers/files/openjdk-profile | 39 ---------------------
srcpkgs/xbps-triggers/template | 2 +-
3 files changed, 1 insertion(+), 48 deletions(-)
delete mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile
diff --git a/Manual.md b/Manual.md
index 667ab634f9713..e6a98551eee30 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,7 +62,6 @@ 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)
@@ -2016,13 +2015,6 @@ 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
deleted file mode 100755
index 007d9cd9eedf4..0000000000000
--- a/srcpkgs/xbps-triggers/files/openjdk-profile
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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 76c3a6b27fad4..66936411a4258 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.126
+version=0.127
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
From dab30131acacf6337adb288395952a8c131dfa4a Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:32:52 -0500
Subject: [PATCH 2/7] New package: openjdk-common-1
Replaces the xbps trigger that added the profile script for openjdk,
which was really a mistake.
Instead of using alternative groups for specific JRE/JDK binaries, use
two symlinks: /usr/lib/jvm/default-jdk and /usr/lib/jvm/default-jre,
which point to /usr/lib/jvm/${version}. Prefer default-jdk to default-jre,
and just add them to PATH and MANPATH instead of putting things in /usr/bin.
---
srcpkgs/openjdk-common/INSTALL | 9 +++++++++
srcpkgs/openjdk-common/INSTALL.msg | 2 ++
srcpkgs/openjdk-common/files/profile.sh | 12 ++++++++++++
srcpkgs/openjdk-common/template | 12 ++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 srcpkgs/openjdk-common/INSTALL
create mode 100644 srcpkgs/openjdk-common/INSTALL.msg
create mode 100644 srcpkgs/openjdk-common/files/profile.sh
create mode 100644 srcpkgs/openjdk-common/template
diff --git a/srcpkgs/openjdk-common/INSTALL b/srcpkgs/openjdk-common/INSTALL
new file mode 100644
index 0000000000000..e0e155cc208ab
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL
@@ -0,0 +1,9 @@
+#!/bin/sh
+case "$ACTION" in
+pre)
+ # remove the openjdk.sh from xbps-triggers
+ if [ -e "./etc/profile.d/openjdk.sh" ]; then
+ rm "./etc/profile.d/openjdk.sh"
+ fi
+ ;;
+esac
diff --git a/srcpkgs/openjdk-common/INSTALL.msg b/srcpkgs/openjdk-common/INSTALL.msg
new file mode 100644
index 0000000000000..7e75b5abe457b
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL.msg
@@ -0,0 +1,2 @@
+The way the default OpenJDK version is selected has changed.
+You may need to re-login for this change to take effect.
diff --git a/srcpkgs/openjdk-common/files/profile.sh b/srcpkgs/openjdk-common/files/profile.sh
new file mode 100644
index 0000000000000..e9c9a6042eea7
--- /dev/null
+++ b/srcpkgs/openjdk-common/files/profile.sh
@@ -0,0 +1,12 @@
+# only modify the environment if an openjdk*-jre package is installed
+if [ -e "/usr/lib/jvm/default-jre" ]; then
+ # if an openjdk* package is installed, prefer it to the selected jre
+ if [ -e "/usr/lib/jvm/default-jdk" ]; then
+ export JAVA_HOME="/usr/lib/jvm/default-jdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/default-jre"
+ fi
+ # append the select jdk and jre bin and man dirs to the relevant PATHs
+ export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
+ export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
+fi
diff --git a/srcpkgs/openjdk-common/template b/srcpkgs/openjdk-common/template
new file mode 100644
index 0000000000000..e0d3d53d55004
--- /dev/null
+++ b/srcpkgs/openjdk-common/template
@@ -0,0 +1,12 @@
+# Template file for 'openjdk-common'
+pkgname=openjdk-common
+version=1
+revision=1
+short_desc="Common files for OpenJDK packages"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="Public Domain"
+homepage="https://www.voidlinux.org"
+
+do_install() {
+ vinstall "${FILESDIR}"/profile.sh 644 /etc/profile.d jdk.sh
+}
From b226850ac3c3e3134bce965b9dd625de3b1d75a8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:37:34 -0500
Subject: [PATCH 3/7] openjdk8: update to 8u332b05.
- various template cleanups
- rename /usr/lib/jvm/java-1.8-openjdk to /usr/lib/jvm/openjdk8
for consistency
- fix manpages
- fix alternatives
---
srcpkgs/openjdk8/template | 167 ++++++++++++--------------------------
1 file changed, 50 insertions(+), 117 deletions(-)
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 8266daff8d8a2..966f5c3703f01 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -1,19 +1,13 @@
# Template file for 'openjdk8'
-# TODO: better places for bin and man?
-# TODO: make -headless versions
-# TODO: config files?
pkgname=openjdk8
-version=8u322b04
-revision=5
+version=8u332b05
+revision=1
_jdk_update="${version#*u}"
_jdk_update="${_jdk_update%b*}"
_jdk_build="${version#*b}"
-_jdk_home="usr/lib/jvm/java-1.8-openjdk"
-# we're using aarch64 port repo to get aarch64 JIT; the repo is
-# otherwise the same as the normal one, just with aarch64 port added
-_repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
+_jdk_home="usr/lib/jvm/openjdk8"
+_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e"
archs="x86_64* i686* aarch64* arm* ppc64*"
-create_wrksrc=yes
build_style=gnu-configure
configure_args="
--prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib
@@ -28,13 +22,14 @@ configure_args="
--with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib
--with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2
--with-jtreg=no
- --with-jobs=${XBPS_MAKEJOBS}
- --with-vendor-name="Void"
- --with-vendor-url="https://voidlinux.org/"
- --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
- --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues"
+ --with-jobs=${XBPS_ORIG_MAKEJOBS}
+ --with-vendor-name=Void
+ --with-vendor-url=https://voidlinux.org/
+ --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues
+ --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues
--disable-option-checking"
-make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false"
+make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true"
+make_install_args="GIT=true"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel make-ca which"
makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
@@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)"
maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
-distfiles="
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"
+# we're using aarch64 port repo to get aarch64 JIT; the repo is
+# otherwise the same as the normal one, just with aarch64 port added
+distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz"
+checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4
-checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc
- 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a
- 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef
- 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257
- fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6
- 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b
- 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea
- 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23"
+disable_parallel_build=yes
build_options="docs"
desc_option_docs="Build documentation"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
+provides="java-environment-${version}_1"
+
# no hotspot JIT for arm32 and ppc32
case "$XBPS_TARGET_MACHINE" in
ppc64*) ;;
@@ -81,8 +67,6 @@ else
build_options_default+=" docs"
fi
-provides="java-environment-${version}_1"
-
if [ ! "$CROSS_BUILD" ]; then
hostmakedepends+=" openjdk7-bootstrap"
configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk"
@@ -94,57 +78,11 @@ fi
# enabling ccache segfaults gcc
export CCACHE_DISABLE=1
-alternatives="
- jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer
- jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck
- jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javah:/${_jdk_home}/bin/javah
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii
- jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool
- jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen
- jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport
- jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc
-"
-
post_extract() {
- mv jdk8u*/* .
chmod +x configure
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
- mv ${subrepo}-${_repo_ver} ${subrepo}
- done
+}
+post_patch() {
# gcc complains about the signed shift left
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \
-e's;(-1)<<13;~0u<<13;g'
@@ -152,20 +90,22 @@ post_extract() {
# wrong "return false;" instead of "return null;"
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \
-e"295s;false;null;"
-}
-post_patch() {
- [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0
+ # pretend we're a git checkout
+ echo "${_commit}" > .gittip
+ mkdir .git
- for f in ${FILESDIR}/musl_*.patch; do
- echo "Applying $f"
- patch -sNp1 -i "$f"
- done
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ for f in "${FILESDIR}"/musl_*.patch; do
+ echo "Applying $f"
+ patch -sNp1 -i "$f"
+ done
- # add cross prefix for thread_db.h check, fix cross from glibc to musl
- sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
- hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
- hotspot/make/linux/makefiles/saproc.make
+ # add cross prefix for thread_db.h check, fix cross from glibc to musl
+ sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
+ hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
+ hotspot/make/linux/makefiles/saproc.make
+ fi
}
do_configure() {
@@ -200,11 +140,6 @@ pre_build() {
unset CFLAGS CXXFLAGS LDFLAGS
}
-do_build() {
- # do not set disable_parallel_build in order to be able to read makejobs
- make -j1 ${make_build_args} ${make_build_target}
-}
-
post_install() {
# we manage this ourselves
rm -rf ${DESTDIR}/usr/lib/bin
@@ -213,6 +148,11 @@ post_install() {
mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \
${DESTDIR}/${_jdk_home}
+ # don't duplicate binaries already in jre/bin
+ for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do
+ ln -srf "${bin}" "${bin/jre/}"
+ done
+
vmkdir ${_jdk_home}/lib/security
make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool"
mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/
@@ -228,23 +168,15 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool
- java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd
- java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200
- java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool
- java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry
- java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool
- java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv
- java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre"
pkg_install() {
- vmove ${_jdk_home}/jre
+ vmove "${_jdk_home}"/jre
+ for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do
+ bin="$(basename "$bin")"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
+ done
}
}
@@ -263,12 +195,13 @@ openjdk8-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
- cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk8
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8
fi
- vmove ${_jdk_home}/man/man1
}
}
From fadf517717d77037fed7a1d8245098a8b219ec2c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:41:58 -0500
Subject: [PATCH 4/7] openjdk9-bootstrap: fix jdk8 path
---
srcpkgs/openjdk9-bootstrap/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index c50cc4adc7e18..2027d02781155 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -21,7 +21,7 @@ configure_args="
--with-debug-level=release
--with-version-pre=
--with-version-build=${version#*p}
- --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
+ --with-boot-jdk=/usr/lib/jvm/openjdk8"
make_build_args="images"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel which openjdk8 make"
From 7caa5faa2ad698c19955c8a1206e574729ed236f Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:40:49 -0500
Subject: [PATCH 5/7] openjdk11-bin: remove package
this package has been useless since 106a275ecd81e132cb80cc21c0ec96a336d16614
make it a transitional package on openjdk11
---
srcpkgs/openjdk11-bin | 1 +
srcpkgs/openjdk11-bin/template | 70 ----------------------------------
srcpkgs/openjdk11/template | 9 ++++-
3 files changed, 9 insertions(+), 71 deletions(-)
create mode 120000 srcpkgs/openjdk11-bin
delete mode 100644 srcpkgs/openjdk11-bin/template
diff --git a/srcpkgs/openjdk11-bin b/srcpkgs/openjdk11-bin
new file mode 120000
index 0000000000000..8213494c49ed5
--- /dev/null
+++ b/srcpkgs/openjdk11-bin
@@ -0,0 +1 @@
+openjdk11
\ No newline at end of file
diff --git a/srcpkgs/openjdk11-bin/template b/srcpkgs/openjdk11-bin/template
deleted file mode 100644
index 6dfbbb49fd45a..0000000000000
--- a/srcpkgs/openjdk11-bin/template
+++ /dev/null
@@ -1,70 +0,0 @@
-# Template file for 'openjdk11-bin'
-pkgname=openjdk11-bin
-version=11+28
-revision=2
-archs="x86_64"
-short_desc="Official Reference Implementation for Java SE 11"
-maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
-license="GPL-2.0-only WITH Classpath-exception-2.0"
-homepage="https://jdk.java.net/java-se-ri/11"
-distfiles="https://download.java.net/openjdk/jdk11/ri/openjdk-${version}_linux-x64_bin.tar.gz"
-checksum=3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e
-nopie=true
-
-alternatives="
- java:/usr/bin/java:/usr/lib/jvm/openjdk11-bin/bin/java
- java:/usr/bin/javaws:/usr/lib/jvm/openjdk11-bin/bin/javaws
- java:/usr/bin/jcontrol:/usr/lib/jvm/openjdk11-bin/bin/jcontrol
- java:/usr/bin/jjs:/usr/lib/jvm/openjdk11-bin/bin/jjs
- java:/usr/bin/keytool:/usr/lib/jvm/openjdk11-bin/bin/keytool
- java:/usr/bin/orbd:/usr/lib/jvm/openjdk11-bin/bin/orbd
- java:/usr/bin/pack200:/usr/lib/jvm/openjdk11-bin/bin/pack200
- java:/usr/bin/policytool:/usr/lib/jvm/openjdk11-bin/bin/policytool
- java:/usr/bin/rmid:/usr/lib/jvm/openjdk11-bin/bin/rmid
- java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk11-bin/bin/rmiregistry
- java:/usr/bin/servertool:/usr/lib/jvm/openjdk11-bin/bin/servertool
- java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk11-bin/bin/tnameserv
- java:/usr/bin/unpack200:/usr/lib/jvm/openjdk11-bin/bin/unpack200
-
- jdk:/usr/bin/ControlPanel:/usr/lib/jvm/openjdk11-bin/bin/ControlPanel
- jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk11-bin/bin/appletviewer
- jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk11-bin/bin/extcheck
- jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk11-bin/bin/idlj
- jdk:/usr/bin/jar:/usr/lib/jvm/openjdk11-bin/bin/jar
- jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk11-bin/bin/jarsigner
- jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk11-bin/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/usr/lib/jvm/openjdk11-bin/bin/javac
- jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk11-bin/bin/javadoc
- jdk:/usr/bin/javafxpackager:/usr/lib/jvm/openjdk11-bin/bin/javafxpackager
- jdk:/usr/bin/javah:/usr/lib/jvm/openjdk11-bin/bin/javah
- jdk:/usr/bin/javap:/usr/lib/jvm/openjdk11-bin/bin/javap
- jdk:/usr/bin/javapackager:/usr/lib/jvm/openjdk11-bin/bin/javapackager
- jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk11-bin/bin/jcmd
- jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk11-bin/bin/jconsole
- jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk11-bin/bin/jdb
- jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk11-bin/bin/jdeps
- jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk11-bin/bin/jhat
- jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk11-bin/bin/jinfo
- jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk11-bin/bin/jmap
- jdk:/usr/bin/jmc:/usr/lib/jvm/openjdk11-bin/bin/jmc
- jdk:/usr/bin/jmc.ini:/usr/lib/jvm/openjdk11-bin/bin/jmc.ini
- jdk:/usr/bin/jps:/usr/lib/jvm/openjdk11-bin/bin/jps
- jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk11-bin/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk11-bin/bin/jsadebugd
- jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk11-bin/bin/jstack
- jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk11-bin/bin/jstat
- jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk11-bin/bin/jstatd
- jdk:/usr/bin/jvisualvm:/usr/lib/jvm/openjdk11-bin/bin/jvisualvm
- jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk11-bin/bin/native2ascii
- jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk11-bin/bin/rmic
- jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk11-bin/bin/schemagen
- jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk11-bin/bin/serialver
- jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk11-bin/bin/wsgen
- jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk11-bin/bin/wsimport
- jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk11-bin/bin/xjc
-"
-
-do_install() {
- vmkdir /usr/lib/jvm/openjdk11-bin
- cp -R ./* ${DESTDIR}/usr/lib/jvm/openjdk11-bin
-}
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5dd94241a0c8..783e7c28d72b5 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -156,7 +156,7 @@ do_install() {
vlicense LICENSE
}
-subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs"
+subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs openjdk11-bin"
openjdk11-jre_package() {
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
@@ -227,3 +227,10 @@ openjdk11-jmods_package() {
vmove $_jdk_home/jmods
}
}
+
+openjdk11-bin_package() {
+ reverts="11+28_1 11+28_2"
+ short_desc+=" (transitional dummy package)"
+ depends="${sourcepkg}>=${version}_${revision}"
+ build_style=meta
+}
From fda552537b92f55702e3ce55effed81453333bc9 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:42:46 -0500
Subject: [PATCH 6/7] openjdk11: update to 11.0.22+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk11/template | 63 ++++++++------------------------------
1 file changed, 12 insertions(+), 51 deletions(-)
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 783e7c28d72b5..64f43424204cc 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk11'
pkgname=openjdk11
-version=11.0.20+8
+version=11.0.22+6
revision=1
_java_ver="${version%%.*}"
_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
@@ -38,7 +38,8 @@ maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz"
-checksum=b2a37ef209ae7eaf8f34182b7c9aa3252af20a214d02970f96ce62242c805479
+checksum=8bae7c5e608de84aa32010365514bb59cd0d8ba709f6730cc473e159c6bfb918
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
# Build is still parallel, but don't use -jN.
@@ -73,41 +74,6 @@ else
configure_args+=" --with-boot-jdk=/${_jdk_home}"
fi
-alternatives="
- jdk:/usr/bin/jaotc:/${_jdk_home}/bin/jaotc
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
-"
-
post_extract() {
chmod +x configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -162,20 +128,13 @@ 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 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- java:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- java:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- "
+ depends="fontconfig openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jjs keytool pack200 rmid rmiregistry unpack200; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jjs keytool pack200 rmid rmiregistry unpack200; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -192,13 +151,15 @@ openjdk11-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk11
cp -a build/linux-*/images/docs/* $PKGDESTDIR/usr/share/doc/openjdk11
fi
- vmove $_jdk_home/man/man1
}
}
From dceac46f4d5686e7be45ddf2b9b3f047654b16a8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:44:04 -0500
Subject: [PATCH 7/7] openjdk17: update to 17.0.10+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk17/template | 55 ++++++++------------------------------
1 file changed, 11 insertions(+), 44 deletions(-)
diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index bb72701f360e6..22fb16fbf9ec1 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk17'
pkgname=openjdk17
-version=17.0.10+2
+version=17.0.10+6
revision=1
_gtest_ver=1.8.1
_java_ver="${version%%.*}"
@@ -45,8 +45,9 @@ license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz
https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz"
-checksum="dbe68a64c43c3e376abd9d03758a487ecfb9c7bf1fe71cf6c2ca113f909be1cb
+checksum="3d5ef3a18c4edfa6e2a16c74d9e771b09eed433006b1380df450aa88725c7238
9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
patch_args="-Np1 --directory=$build_wrksrc"
@@ -83,37 +84,6 @@ else
configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17"
fi
-alternatives="
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jfr:/${_jdk_home}/bin/jfr
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jpackage:/${_jdk_home}/bin/jpackage
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
-"
-
post_extract() {
chmod +x $build_wrksrc/configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -173,17 +143,12 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jfr keytool rmiregistry; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jfr keytool rmiregistry; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -200,13 +165,15 @@ openjdk17-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
if [ "$build_option_docs" ]; then
local _docdir=usr/share/doc/openjdk$_java_ver
vmkdir $_docdir
cp -a $wrksrc/$build_wrksrc/build/linux-*/images/docs/* ${PKGDESTDIR}/$_docdir
fi
- vmove $_jdk_home/man/man1
}
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Updated] [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
` (6 preceding siblings ...)
2023-12-22 22:05 ` classabbyamp
@ 2023-12-23 0:27 ` classabbyamp
2023-12-24 13:39 ` [PR PATCH] [Merged]: " classabbyamp
8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-23 0:27 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages jdk-alts
https://github.com/void-linux/void-packages/pull/47866
[RFC] fix the openjdk alternatives mess
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
#### Testing the changes
- I tested the changes in this PR: **YES**
[ci skip]
closes #47416
A patch file from https://github.com/void-linux/void-packages/pull/47866.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jdk-alts-47866.patch --]
[-- Type: text/x-diff, Size: 38558 bytes --]
From 1b6d702ca2c9c6b434eb3d4688f0d66811567d39 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:36:47 -0500
Subject: [PATCH 1/8] xbps-triggers: update to 0.127.
get rid of the openjdk profile hook. it should not have been done like this.
---
Manual.md | 8 -----
srcpkgs/xbps-triggers/files/openjdk-profile | 39 ---------------------
srcpkgs/xbps-triggers/template | 2 +-
3 files changed, 1 insertion(+), 48 deletions(-)
delete mode 100755 srcpkgs/xbps-triggers/files/openjdk-profile
diff --git a/Manual.md b/Manual.md
index 667ab634f9713..e6a98551eee30 100644
--- a/Manual.md
+++ b/Manual.md
@@ -62,7 +62,6 @@ 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)
@@ -2016,13 +2015,6 @@ 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
deleted file mode 100755
index 007d9cd9eedf4..0000000000000
--- a/srcpkgs/xbps-triggers/files/openjdk-profile
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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 76c3a6b27fad4..66936411a4258 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.126
+version=0.127
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
From dab30131acacf6337adb288395952a8c131dfa4a Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:32:52 -0500
Subject: [PATCH 2/8] New package: openjdk-common-1
Replaces the xbps trigger that added the profile script for openjdk,
which was really a mistake.
Instead of using alternative groups for specific JRE/JDK binaries, use
two symlinks: /usr/lib/jvm/default-jdk and /usr/lib/jvm/default-jre,
which point to /usr/lib/jvm/${version}. Prefer default-jdk to default-jre,
and just add them to PATH and MANPATH instead of putting things in /usr/bin.
---
srcpkgs/openjdk-common/INSTALL | 9 +++++++++
srcpkgs/openjdk-common/INSTALL.msg | 2 ++
srcpkgs/openjdk-common/files/profile.sh | 12 ++++++++++++
srcpkgs/openjdk-common/template | 12 ++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 srcpkgs/openjdk-common/INSTALL
create mode 100644 srcpkgs/openjdk-common/INSTALL.msg
create mode 100644 srcpkgs/openjdk-common/files/profile.sh
create mode 100644 srcpkgs/openjdk-common/template
diff --git a/srcpkgs/openjdk-common/INSTALL b/srcpkgs/openjdk-common/INSTALL
new file mode 100644
index 0000000000000..e0e155cc208ab
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL
@@ -0,0 +1,9 @@
+#!/bin/sh
+case "$ACTION" in
+pre)
+ # remove the openjdk.sh from xbps-triggers
+ if [ -e "./etc/profile.d/openjdk.sh" ]; then
+ rm "./etc/profile.d/openjdk.sh"
+ fi
+ ;;
+esac
diff --git a/srcpkgs/openjdk-common/INSTALL.msg b/srcpkgs/openjdk-common/INSTALL.msg
new file mode 100644
index 0000000000000..7e75b5abe457b
--- /dev/null
+++ b/srcpkgs/openjdk-common/INSTALL.msg
@@ -0,0 +1,2 @@
+The way the default OpenJDK version is selected has changed.
+You may need to re-login for this change to take effect.
diff --git a/srcpkgs/openjdk-common/files/profile.sh b/srcpkgs/openjdk-common/files/profile.sh
new file mode 100644
index 0000000000000..e9c9a6042eea7
--- /dev/null
+++ b/srcpkgs/openjdk-common/files/profile.sh
@@ -0,0 +1,12 @@
+# only modify the environment if an openjdk*-jre package is installed
+if [ -e "/usr/lib/jvm/default-jre" ]; then
+ # if an openjdk* package is installed, prefer it to the selected jre
+ if [ -e "/usr/lib/jvm/default-jdk" ]; then
+ export JAVA_HOME="/usr/lib/jvm/default-jdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/default-jre"
+ fi
+ # append the select jdk and jre bin and man dirs to the relevant PATHs
+ export PATH="$PATH:/usr/lib/jvm/default-jdk/bin:/usr/lib/jvm/default-jre/bin"
+ export MANPATH="$MANPATH:/usr/lib/jvm/default-jdk/man:/usr/lib/jvm/default-jre/man"
+fi
diff --git a/srcpkgs/openjdk-common/template b/srcpkgs/openjdk-common/template
new file mode 100644
index 0000000000000..e0d3d53d55004
--- /dev/null
+++ b/srcpkgs/openjdk-common/template
@@ -0,0 +1,12 @@
+# Template file for 'openjdk-common'
+pkgname=openjdk-common
+version=1
+revision=1
+short_desc="Common files for OpenJDK packages"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="Public Domain"
+homepage="https://www.voidlinux.org"
+
+do_install() {
+ vinstall "${FILESDIR}"/profile.sh 644 /etc/profile.d jdk.sh
+}
From b226850ac3c3e3134bce965b9dd625de3b1d75a8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:37:34 -0500
Subject: [PATCH 3/8] openjdk8: update to 8u332b05.
- various template cleanups
- rename /usr/lib/jvm/java-1.8-openjdk to /usr/lib/jvm/openjdk8
for consistency
- fix manpages
- fix alternatives
---
srcpkgs/openjdk8/template | 167 ++++++++++++--------------------------
1 file changed, 50 insertions(+), 117 deletions(-)
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 8266daff8d8a2..966f5c3703f01 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -1,19 +1,13 @@
# Template file for 'openjdk8'
-# TODO: better places for bin and man?
-# TODO: make -headless versions
-# TODO: config files?
pkgname=openjdk8
-version=8u322b04
-revision=5
+version=8u332b05
+revision=1
_jdk_update="${version#*u}"
_jdk_update="${_jdk_update%b*}"
_jdk_build="${version#*b}"
-_jdk_home="usr/lib/jvm/java-1.8-openjdk"
-# we're using aarch64 port repo to get aarch64 JIT; the repo is
-# otherwise the same as the normal one, just with aarch64 port added
-_repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
+_jdk_home="usr/lib/jvm/openjdk8"
+_commit="bdc2203a44df159d94ecd0e04a230e65cb84297e"
archs="x86_64* i686* aarch64* arm* ppc64*"
-create_wrksrc=yes
build_style=gnu-configure
configure_args="
--prefix=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/${pkgname}-${version}/usr/lib
@@ -28,13 +22,14 @@ configure_args="
--with-freetype-lib=${XBPS_CROSS_BASE}/usr/lib
--with-freetype-include=${XBPS_CROSS_BASE}/usr/include/freetype2
--with-jtreg=no
- --with-jobs=${XBPS_MAKEJOBS}
- --with-vendor-name="Void"
- --with-vendor-url="https://voidlinux.org/"
- --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
- --with-vendor-vm-bug-url="https://github.com/void-linux/void-packages/issues"
+ --with-jobs=${XBPS_ORIG_MAKEJOBS}
+ --with-vendor-name=Void
+ --with-vendor-url=https://voidlinux.org/
+ --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues
+ --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues
--disable-option-checking"
-make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false"
+make_build_args="images $(vopt_if docs docs) COMPILER_WARNINGS_FATAL=false GIT=true"
+make_install_args="GIT=true"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel make-ca which"
makedepends="libXrender-devel libXtst-devel libXt-devel libXrandr-devel
@@ -45,28 +40,19 @@ short_desc="OpenJDK Java Development Kit (version 8)"
maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
-distfiles="
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
- http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"
+# we're using aarch64 port repo to get aarch64 JIT; the repo is
+# otherwise the same as the normal one, just with aarch64 port added
+distfiles="https://github.com/openjdk/shenandoah-jdk8u/archive/${_commit}.tar.gz"
+checksum=4c39be8454a1b8b10a9ff845a4e7e639808799d3d2eddb1484df80835d5e88e4
-checksum="8ef23f1fb449c50c7c71f58f9ec9e5ac6dd152f4c830408f5c02b77652d634cc
- 2680d968821fdd4363c68b1a835a9bbd76d6a94fdc0ab6e1b1aaadc5ccd1ed8a
- 5561c84e1d5111fff0142ba4d397b29d6dc9e3702955567bd5b4986e8cf4f2ef
- 7eb13948061d8ec98323fdac424955753f339c145af04a3f86100437dff60257
- fe21a137b6fb1881db1c5c01f372126f6b165c6d3b98421e6862255f456cbfd6
- 22a1b86820ef585c45bce36d822872354bc0dd183c5516f89da28e0666d3901b
- 34c306eadb436cd9f22f306f4f1d4ea4f167923e8affa2d2797d6c3de6da46ea
- 17730e5cc2a84c4680f692008f3805ce4e4edeb2008e2e6a4fb86b9dde06fe23"
+disable_parallel_build=yes
build_options="docs"
desc_option_docs="Build documentation"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
+provides="java-environment-${version}_1"
+
# no hotspot JIT for arm32 and ppc32
case "$XBPS_TARGET_MACHINE" in
ppc64*) ;;
@@ -81,8 +67,6 @@ else
build_options_default+=" docs"
fi
-provides="java-environment-${version}_1"
-
if [ ! "$CROSS_BUILD" ]; then
hostmakedepends+=" openjdk7-bootstrap"
configure_args+=" --with-boot-jdk=/usr/lib/jvm/java-1.7-openjdk"
@@ -94,57 +78,11 @@ fi
# enabling ccache segfaults gcc
export CCACHE_DISABLE=1
-alternatives="
- jdk:/usr/bin/appletviewer:/${_jdk_home}/bin/appletviewer
- jdk:/usr/bin/extcheck:/${_jdk_home}/bin/extcheck
- jdk:/usr/bin/idlj:/${_jdk_home}/bin/idlj
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/java-rmi.cgi:/${_jdk_home}/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javah:/${_jdk_home}/bin/javah
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhat:/${_jdk_home}/bin/jhat
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/${_jdk_home}/bin/jsadebugd
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/native2ascii:/${_jdk_home}/bin/native2ascii
- jdk:/usr/bin/orbd:/${_jdk_home}/bin/orbd
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/policytool:/${_jdk_home}/bin/policytool
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/schemagen:/${_jdk_home}/bin/schemagen
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/servertool:/${_jdk_home}/bin/servertool
- jdk:/usr/bin/tnameserv:/${_jdk_home}/bin/tnameserv
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- jdk:/usr/bin/wsgen:/${_jdk_home}/bin/wsgen
- jdk:/usr/bin/wsimport:/${_jdk_home}/bin/wsimport
- jdk:/usr/bin/xjc:/${_jdk_home}/bin/xjc
-"
-
post_extract() {
- mv jdk8u*/* .
chmod +x configure
- for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
- mv ${subrepo}-${_repo_ver} ${subrepo}
- done
+}
+post_patch() {
# gcc complains about the signed shift left
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/constants.h \
-e's;(-1)<<13;~0u<<13;g'
@@ -152,20 +90,22 @@ post_extract() {
# wrong "return false;" instead of "return null;"
vsed -i jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp \
-e"295s;false;null;"
-}
-post_patch() {
- [ "$XBPS_TARGET_LIBC" != "musl" ] && return 0
+ # pretend we're a git checkout
+ echo "${_commit}" > .gittip
+ mkdir .git
- for f in ${FILESDIR}/musl_*.patch; do
- echo "Applying $f"
- patch -sNp1 -i "$f"
- done
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ for f in "${FILESDIR}"/musl_*.patch; do
+ echo "Applying $f"
+ patch -sNp1 -i "$f"
+ done
- # add cross prefix for thread_db.h check, fix cross from glibc to musl
- sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
- hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
- hotspot/make/linux/makefiles/saproc.make
+ # add cross prefix for thread_db.h check, fix cross from glibc to musl
+ sed -i "s,/usr/include/thread_db.h,${XBPS_CROSS_BASE}/usr/include/thread_db.h," \
+ hotspot/make/linux/makefiles/defs.make hotspot/make/linux/makefiles/sa.make \
+ hotspot/make/linux/makefiles/saproc.make
+ fi
}
do_configure() {
@@ -200,11 +140,6 @@ pre_build() {
unset CFLAGS CXXFLAGS LDFLAGS
}
-do_build() {
- # do not set disable_parallel_build in order to be able to read makejobs
- make -j1 ${make_build_args} ${make_build_target}
-}
-
post_install() {
# we manage this ourselves
rm -rf ${DESTDIR}/usr/lib/bin
@@ -213,6 +148,11 @@ post_install() {
mv ${DESTDIR}/usr/lib/jvm/openjdk-1.8.0_${_jdk_update} \
${DESTDIR}/${_jdk_home}
+ # don't duplicate binaries already in jre/bin
+ for bin in "${DESTDIR}/${_jdk_home}/jre/bin"/*; do
+ ln -srf "${bin}" "${bin/jre/}"
+ done
+
vmkdir ${_jdk_home}/lib/security
make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/${_jdk_home}/bin/keytool"
mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/${_jdk_home}/lib/security/
@@ -228,23 +168,15 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/jre/bin/keytool
- java:/usr/bin/orbd:/${_jdk_home}/jre/bin/orbd
- java:/usr/bin/pack200:/${_jdk_home}/jre/bin/pack200
- java:/usr/bin/policytool:/${_jdk_home}/jre/bin/policytool
- java:/usr/bin/rmid:/${_jdk_home}/jre/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/jre/bin/rmiregistry
- java:/usr/bin/servertool:/${_jdk_home}/jre/bin/servertool
- java:/usr/bin/tnameserv:/${_jdk_home}/jre/bin/tnameserv
- java:/usr/bin/unpack200:/${_jdk_home}/jre/bin/unpack200
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}/jre"
pkg_install() {
- vmove ${_jdk_home}/jre
+ vmove "${_jdk_home}"/jre
+ for bin in "${PKGDESTDIR}/${_jdk_home}/jre/bin"/*; do
+ bin="$(basename "$bin")"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
+ done
}
}
@@ -263,12 +195,13 @@ openjdk8-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
- cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk8
cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc/openjdk8
fi
- vmove ${_jdk_home}/man/man1
}
}
From fadf517717d77037fed7a1d8245098a8b219ec2c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:41:58 -0500
Subject: [PATCH 4/8] openjdk9-bootstrap: fix jdk8 path
---
srcpkgs/openjdk9-bootstrap/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index c50cc4adc7e18..2027d02781155 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -21,7 +21,7 @@ configure_args="
--with-debug-level=release
--with-version-pre=
--with-version-build=${version#*p}
- --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
+ --with-boot-jdk=/usr/lib/jvm/openjdk8"
make_build_args="images"
hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
zlib-devel which openjdk8 make"
From 7caa5faa2ad698c19955c8a1206e574729ed236f Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:40:49 -0500
Subject: [PATCH 5/8] openjdk11-bin: remove package
this package has been useless since 106a275ecd81e132cb80cc21c0ec96a336d16614
make it a transitional package on openjdk11
---
srcpkgs/openjdk11-bin | 1 +
srcpkgs/openjdk11-bin/template | 70 ----------------------------------
srcpkgs/openjdk11/template | 9 ++++-
3 files changed, 9 insertions(+), 71 deletions(-)
create mode 120000 srcpkgs/openjdk11-bin
delete mode 100644 srcpkgs/openjdk11-bin/template
diff --git a/srcpkgs/openjdk11-bin b/srcpkgs/openjdk11-bin
new file mode 120000
index 0000000000000..8213494c49ed5
--- /dev/null
+++ b/srcpkgs/openjdk11-bin
@@ -0,0 +1 @@
+openjdk11
\ No newline at end of file
diff --git a/srcpkgs/openjdk11-bin/template b/srcpkgs/openjdk11-bin/template
deleted file mode 100644
index 6dfbbb49fd45a..0000000000000
--- a/srcpkgs/openjdk11-bin/template
+++ /dev/null
@@ -1,70 +0,0 @@
-# Template file for 'openjdk11-bin'
-pkgname=openjdk11-bin
-version=11+28
-revision=2
-archs="x86_64"
-short_desc="Official Reference Implementation for Java SE 11"
-maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
-license="GPL-2.0-only WITH Classpath-exception-2.0"
-homepage="https://jdk.java.net/java-se-ri/11"
-distfiles="https://download.java.net/openjdk/jdk11/ri/openjdk-${version}_linux-x64_bin.tar.gz"
-checksum=3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e
-nopie=true
-
-alternatives="
- java:/usr/bin/java:/usr/lib/jvm/openjdk11-bin/bin/java
- java:/usr/bin/javaws:/usr/lib/jvm/openjdk11-bin/bin/javaws
- java:/usr/bin/jcontrol:/usr/lib/jvm/openjdk11-bin/bin/jcontrol
- java:/usr/bin/jjs:/usr/lib/jvm/openjdk11-bin/bin/jjs
- java:/usr/bin/keytool:/usr/lib/jvm/openjdk11-bin/bin/keytool
- java:/usr/bin/orbd:/usr/lib/jvm/openjdk11-bin/bin/orbd
- java:/usr/bin/pack200:/usr/lib/jvm/openjdk11-bin/bin/pack200
- java:/usr/bin/policytool:/usr/lib/jvm/openjdk11-bin/bin/policytool
- java:/usr/bin/rmid:/usr/lib/jvm/openjdk11-bin/bin/rmid
- java:/usr/bin/rmiregistry:/usr/lib/jvm/openjdk11-bin/bin/rmiregistry
- java:/usr/bin/servertool:/usr/lib/jvm/openjdk11-bin/bin/servertool
- java:/usr/bin/tnameserv:/usr/lib/jvm/openjdk11-bin/bin/tnameserv
- java:/usr/bin/unpack200:/usr/lib/jvm/openjdk11-bin/bin/unpack200
-
- jdk:/usr/bin/ControlPanel:/usr/lib/jvm/openjdk11-bin/bin/ControlPanel
- jdk:/usr/bin/appletviewer:/usr/lib/jvm/openjdk11-bin/bin/appletviewer
- jdk:/usr/bin/extcheck:/usr/lib/jvm/openjdk11-bin/bin/extcheck
- jdk:/usr/bin/idlj:/usr/lib/jvm/openjdk11-bin/bin/idlj
- jdk:/usr/bin/jar:/usr/lib/jvm/openjdk11-bin/bin/jar
- jdk:/usr/bin/jarsigner:/usr/lib/jvm/openjdk11-bin/bin/jarsigner
- jdk:/usr/bin/java-rmi.cgi:/usr/lib/jvm/openjdk11-bin/bin/java-rmi.cgi
- jdk:/usr/bin/javac:/usr/lib/jvm/openjdk11-bin/bin/javac
- jdk:/usr/bin/javadoc:/usr/lib/jvm/openjdk11-bin/bin/javadoc
- jdk:/usr/bin/javafxpackager:/usr/lib/jvm/openjdk11-bin/bin/javafxpackager
- jdk:/usr/bin/javah:/usr/lib/jvm/openjdk11-bin/bin/javah
- jdk:/usr/bin/javap:/usr/lib/jvm/openjdk11-bin/bin/javap
- jdk:/usr/bin/javapackager:/usr/lib/jvm/openjdk11-bin/bin/javapackager
- jdk:/usr/bin/jcmd:/usr/lib/jvm/openjdk11-bin/bin/jcmd
- jdk:/usr/bin/jconsole:/usr/lib/jvm/openjdk11-bin/bin/jconsole
- jdk:/usr/bin/jdb:/usr/lib/jvm/openjdk11-bin/bin/jdb
- jdk:/usr/bin/jdeps:/usr/lib/jvm/openjdk11-bin/bin/jdeps
- jdk:/usr/bin/jhat:/usr/lib/jvm/openjdk11-bin/bin/jhat
- jdk:/usr/bin/jinfo:/usr/lib/jvm/openjdk11-bin/bin/jinfo
- jdk:/usr/bin/jmap:/usr/lib/jvm/openjdk11-bin/bin/jmap
- jdk:/usr/bin/jmc:/usr/lib/jvm/openjdk11-bin/bin/jmc
- jdk:/usr/bin/jmc.ini:/usr/lib/jvm/openjdk11-bin/bin/jmc.ini
- jdk:/usr/bin/jps:/usr/lib/jvm/openjdk11-bin/bin/jps
- jdk:/usr/bin/jrunscript:/usr/lib/jvm/openjdk11-bin/bin/jrunscript
- jdk:/usr/bin/jsadebugd:/usr/lib/jvm/openjdk11-bin/bin/jsadebugd
- jdk:/usr/bin/jstack:/usr/lib/jvm/openjdk11-bin/bin/jstack
- jdk:/usr/bin/jstat:/usr/lib/jvm/openjdk11-bin/bin/jstat
- jdk:/usr/bin/jstatd:/usr/lib/jvm/openjdk11-bin/bin/jstatd
- jdk:/usr/bin/jvisualvm:/usr/lib/jvm/openjdk11-bin/bin/jvisualvm
- jdk:/usr/bin/native2ascii:/usr/lib/jvm/openjdk11-bin/bin/native2ascii
- jdk:/usr/bin/rmic:/usr/lib/jvm/openjdk11-bin/bin/rmic
- jdk:/usr/bin/schemagen:/usr/lib/jvm/openjdk11-bin/bin/schemagen
- jdk:/usr/bin/serialver:/usr/lib/jvm/openjdk11-bin/bin/serialver
- jdk:/usr/bin/wsgen:/usr/lib/jvm/openjdk11-bin/bin/wsgen
- jdk:/usr/bin/wsimport:/usr/lib/jvm/openjdk11-bin/bin/wsimport
- jdk:/usr/bin/xjc:/usr/lib/jvm/openjdk11-bin/bin/xjc
-"
-
-do_install() {
- vmkdir /usr/lib/jvm/openjdk11-bin
- cp -R ./* ${DESTDIR}/usr/lib/jvm/openjdk11-bin
-}
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5dd94241a0c8..783e7c28d72b5 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -156,7 +156,7 @@ do_install() {
vlicense LICENSE
}
-subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs"
+subpackages="openjdk11-src openjdk11-jre openjdk11-doc openjdk11-jmods openjdk11-static-libs openjdk11-bin"
openjdk11-jre_package() {
shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so"
@@ -227,3 +227,10 @@ openjdk11-jmods_package() {
vmove $_jdk_home/jmods
}
}
+
+openjdk11-bin_package() {
+ reverts="11+28_1 11+28_2"
+ short_desc+=" (transitional dummy package)"
+ depends="${sourcepkg}>=${version}_${revision}"
+ build_style=meta
+}
From fda552537b92f55702e3ce55effed81453333bc9 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:42:46 -0500
Subject: [PATCH 6/8] openjdk11: update to 11.0.22+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk11/template | 63 ++++++++------------------------------
1 file changed, 12 insertions(+), 51 deletions(-)
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index 783e7c28d72b5..64f43424204cc 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk11'
pkgname=openjdk11
-version=11.0.20+8
+version=11.0.22+6
revision=1
_java_ver="${version%%.*}"
_jdk_home="usr/lib/jvm/openjdk${_java_ver}"
@@ -38,7 +38,8 @@ maintainer="Kyle Nusbaum <knusbaum+void@sdf.org>"
license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz"
-checksum=b2a37ef209ae7eaf8f34182b7c9aa3252af20a214d02970f96ce62242c805479
+checksum=8bae7c5e608de84aa32010365514bb59cd0d8ba709f6730cc473e159c6bfb918
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
# Build is still parallel, but don't use -jN.
@@ -73,41 +74,6 @@ else
configure_args+=" --with-boot-jdk=/${_jdk_home}"
fi
-alternatives="
- jdk:/usr/bin/jaotc:/${_jdk_home}/bin/jaotc
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jjs:/${_jdk_home}/bin/jjs
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- jdk:/usr/bin/rmic:/${_jdk_home}/bin/rmic
- jdk:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
- jdk:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
-"
-
post_extract() {
chmod +x configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -162,20 +128,13 @@ 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 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/pack200:/${_jdk_home}/bin/pack200
- java:/usr/bin/rmid:/${_jdk_home}/bin/rmid
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- java:/usr/bin/unpack200:/${_jdk_home}/bin/unpack200
- "
+ depends="fontconfig openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jjs keytool pack200 rmid rmiregistry unpack200; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jjs keytool pack200 rmid rmiregistry unpack200; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
+ vmove "${_jdk_home}/man/ja_JP.UTF-8/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -192,13 +151,15 @@ openjdk11-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
cd ${wrksrc}
if [ "$build_option_docs" ]; then
vmkdir usr/share/doc/openjdk11
cp -a build/linux-*/images/docs/* $PKGDESTDIR/usr/share/doc/openjdk11
fi
- vmove $_jdk_home/man/man1
}
}
From dceac46f4d5686e7be45ddf2b9b3f047654b16a8 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 21 Dec 2023 17:44:04 -0500
Subject: [PATCH 7/8] openjdk17: update to 17.0.10+6.
- fix manpages
- fix alternatives
---
srcpkgs/openjdk17/template | 55 ++++++++------------------------------
1 file changed, 11 insertions(+), 44 deletions(-)
diff --git a/srcpkgs/openjdk17/template b/srcpkgs/openjdk17/template
index bb72701f360e6..22fb16fbf9ec1 100644
--- a/srcpkgs/openjdk17/template
+++ b/srcpkgs/openjdk17/template
@@ -1,6 +1,6 @@
# Template file for 'openjdk17'
pkgname=openjdk17
-version=17.0.10+2
+version=17.0.10+6
revision=1
_gtest_ver=1.8.1
_java_ver="${version%%.*}"
@@ -45,8 +45,9 @@ license="GPL-2.0-only WITH Classpath-exception-2.0"
homepage="http://openjdk.java.net/"
distfiles="https://github.com/openjdk/jdk${_java_ver}u/archive/jdk-${version}.tar.gz
https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz"
-checksum="dbe68a64c43c3e376abd9d03758a487ecfb9c7bf1fe71cf6c2ca113f909be1cb
+checksum="3d5ef3a18c4edfa6e2a16c74d9e771b09eed433006b1380df450aa88725c7238
9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c"
+alternatives="jdk:/usr/lib/jvm/default-jdk:/${_jdk_home}"
provides="java-environment-${version}_1"
patch_args="-Np1 --directory=$build_wrksrc"
@@ -83,37 +84,6 @@ else
configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17"
fi
-alternatives="
- jdk:/usr/bin/jar:/${_jdk_home}/bin/jar
- jdk:/usr/bin/jarsigner:/${_jdk_home}/bin/jarsigner
- jdk:/usr/bin/java:/${_jdk_home}/bin/java
- jdk:/usr/bin/javac:/${_jdk_home}/bin/javac
- jdk:/usr/bin/javadoc:/${_jdk_home}/bin/javadoc
- jdk:/usr/bin/javap:/${_jdk_home}/bin/javap
- jdk:/usr/bin/jcmd:/${_jdk_home}/bin/jcmd
- jdk:/usr/bin/jconsole:/${_jdk_home}/bin/jconsole
- jdk:/usr/bin/jdb:/${_jdk_home}/bin/jdb
- jdk:/usr/bin/jdeprscan:/${_jdk_home}/bin/jdeprscan
- jdk:/usr/bin/jdeps:/${_jdk_home}/bin/jdeps
- jdk:/usr/bin/jfr:/${_jdk_home}/bin/jfr
- jdk:/usr/bin/jhsdb:/${_jdk_home}/bin/jhsdb
- jdk:/usr/bin/jimage:/${_jdk_home}/bin/jimage
- jdk:/usr/bin/jinfo:/${_jdk_home}/bin/jinfo
- jdk:/usr/bin/jlink:/${_jdk_home}/bin/jlink
- jdk:/usr/bin/jmap:/${_jdk_home}/bin/jmap
- jdk:/usr/bin/jmod:/${_jdk_home}/bin/jmod
- jdk:/usr/bin/jpackage:/${_jdk_home}/bin/jpackage
- jdk:/usr/bin/jps:/${_jdk_home}/bin/jps
- jdk:/usr/bin/jrunscript:/${_jdk_home}/bin/jrunscript
- jdk:/usr/bin/jshell:/${_jdk_home}/bin/jshell
- jdk:/usr/bin/jstack:/${_jdk_home}/bin/jstack
- jdk:/usr/bin/jstat:/${_jdk_home}/bin/jstat
- jdk:/usr/bin/jstatd:/${_jdk_home}/bin/jstatd
- jdk:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- jdk:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- jdk:/usr/bin/serialver:/${_jdk_home}/bin/serialver
-"
-
post_extract() {
chmod +x $build_wrksrc/configure
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
@@ -173,17 +143,12 @@ 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
- java:/usr/bin/keytool:/${_jdk_home}/bin/keytool
- java:/usr/bin/rmiregistry:/${_jdk_home}/bin/rmiregistry
- "
+ depends="openjdk-common"
+ alternatives="java:/usr/lib/jvm/default-jre:/${_jdk_home}"
pkg_install() {
- for bf in java jfr keytool rmiregistry; do
- vmove $_jdk_home/bin/$bf
+ for bin in java jfr keytool rmiregistry; do
+ vmove "${_jdk_home}/bin/${bin}"
+ vmove "${_jdk_home}/man/man1/${bin}.1"
done
for f in lib legal conf release; do
@@ -200,13 +165,15 @@ openjdk17-doc_package() {
noverifyrdeps=yes
noshlibprovides=yes
short_desc+=" - documentation"
+ if [ -z "$build_option_docs" ]; then
+ build_style=meta
+ fi
pkg_install() {
if [ "$build_option_docs" ]; then
local _docdir=usr/share/doc/openjdk$_java_ver
vmkdir $_docdir
cp -a $wrksrc/$build_wrksrc/build/linux-*/images/docs/* ${PKGDESTDIR}/$_docdir
fi
- vmove $_jdk_home/man/man1
}
}
From d6a86c808663f5cadf31416be02198284ddd60cb Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Fri, 22 Dec 2023 19:26:22 -0500
Subject: [PATCH 8/8] *: fix name of jdk profile script in templates
---
srcpkgs/apache-fop/template | 2 +-
srcpkgs/apache-maven/template | 2 +-
srcpkgs/arduino/template | 2 +-
srcpkgs/bibletime/template | 2 +-
srcpkgs/davmail/template | 2 +-
srcpkgs/freeplane/template | 2 +-
srcpkgs/freerouting/template | 2 +-
srcpkgs/java-commons-io/template | 2 +-
srcpkgs/jedit/template | 2 +-
srcpkgs/kodi/template | 2 +-
srcpkgs/lightzone/template | 2 +-
srcpkgs/plantuml/template | 2 +-
srcpkgs/turbovnc/template | 2 +-
13 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/srcpkgs/apache-fop/template b/srcpkgs/apache-fop/template
index 1dd6dd9854281..fe6a130c45c20 100644
--- a/srcpkgs/apache-fop/template
+++ b/srcpkgs/apache-fop/template
@@ -17,7 +17,7 @@ conf_files="/etc/fop.conf"
do_build() {
. /etc/profile.d/apache-ant.sh
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
ant package
}
do_install() {
diff --git a/srcpkgs/apache-maven/template b/srcpkgs/apache-maven/template
index 4b0995e11ba7d..27091a616c2e1 100644
--- a/srcpkgs/apache-maven/template
+++ b/srcpkgs/apache-maven/template
@@ -15,7 +15,7 @@ checksum="5f499a0c9263be556b03dd64002a1f99892eb50ee253aab81f1f338f3bc7abed
replaces="apache-maven-bin>=0"
do_build() {
- source /etc/profile.d/openjdk.sh
+ source /etc/profile.d/jdk.sh
./bin/mvn package -DskipTests -Drat.skip=true -Dmaven.repo.local=repo -DdistributionTargetDir=${DESTDIR}/usr/lib/${pkgname}
}
diff --git a/srcpkgs/arduino/template b/srcpkgs/arduino/template
index ad169d3faf3a7..b1cfcac0b2a20 100644
--- a/srcpkgs/arduino/template
+++ b/srcpkgs/arduino/template
@@ -26,7 +26,7 @@ fi
do_build() {
. /etc/profile.d/apache-ant.sh
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.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"
diff --git a/srcpkgs/bibletime/template b/srcpkgs/bibletime/template
index d8be23d33be61..fcff5e72752ba 100644
--- a/srcpkgs/bibletime/template
+++ b/srcpkgs/bibletime/template
@@ -20,7 +20,7 @@ distfiles="https://github.com/bibletime/bibletime/releases/download/v${version}/
checksum=d6beef62ad44b255e3dc4c5e89214bf01a0e85c9136073b0be12fca3d2b22622
pre_build() {
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
if [ "$XBPS_WORDSIZE" = "32" ]; then
export _JAVA_OPTIONS="-Xmx1024m"
fi
diff --git a/srcpkgs/davmail/template b/srcpkgs/davmail/template
index 1652c266ecfe8..9bcc6dda9d1f2 100644
--- a/srcpkgs/davmail/template
+++ b/srcpkgs/davmail/template
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/davmail/davmail-src-${version}-${_commit}.tgz"
checksum=08e7103d14e9f05ec269caceef7585dcf8be202a35c471fa6fc12729cf99ef2f
do_build() {
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
. /etc/profile.d/apache-ant.sh
ant jar
diff --git a/srcpkgs/freeplane/template b/srcpkgs/freeplane/template
index 50fb28292152a..e98b19dc01e6a 100644
--- a/srcpkgs/freeplane/template
+++ b/srcpkgs/freeplane/template
@@ -22,7 +22,7 @@ esac
do_build() {
. /etc/profile.d/apache-ant.sh
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
gradle format_translation binZip -x test
}
diff --git a/srcpkgs/freerouting/template b/srcpkgs/freerouting/template
index e128119f75cd1..414053ed6c620 100644
--- a/srcpkgs/freerouting/template
+++ b/srcpkgs/freerouting/template
@@ -12,7 +12,7 @@ distfiles="https://github.com/freerouting/${pkgname}/archive/v${version}.tar.gz"
checksum=36742a91e492956e3adc5d75e542a40f3e03d15d69d15717a9d39c0585faac44
do_build() {
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
gradle assemble
}
diff --git a/srcpkgs/java-commons-io/template b/srcpkgs/java-commons-io/template
index c07dcb187f9fe..945622a6004a4 100644
--- a/srcpkgs/java-commons-io/template
+++ b/srcpkgs/java-commons-io/template
@@ -18,7 +18,7 @@ case "$XBPS_MACHINE" in
esac
do_build() {
- source /etc/profile.d/openjdk.sh
+ source /etc/profile.d/jdk.sh
mvn package -Dmaven.test.skip=true
}
diff --git a/srcpkgs/jedit/template b/srcpkgs/jedit/template
index 094feb547d7a8..1f014fb04c8d0 100644
--- a/srcpkgs/jedit/template
+++ b/srcpkgs/jedit/template
@@ -18,7 +18,7 @@ post_patch() {
do_build() {
. /etc/profile.d/apache-ant.sh
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
ant -propertyfile ${FILESDIR}/build.properties build
ant -propertyfile ${FILESDIR}/build.properties docs-html
diff --git a/srcpkgs/kodi/template b/srcpkgs/kodi/template
index aa59324258a0d..d37a5918cd675 100644
--- a/srcpkgs/kodi/template
+++ b/srcpkgs/kodi/template
@@ -102,7 +102,7 @@ pre_configure() {
xargs sed -i -e "s;-isystem;-I;g"
fi
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
# Build tools needed to run on the host
if [ "$CROSS_BUILD" ]; then
diff --git a/srcpkgs/lightzone/template b/srcpkgs/lightzone/template
index b0c28a0c3a88a..7cfa27dd538ae 100644
--- a/srcpkgs/lightzone/template
+++ b/srcpkgs/lightzone/template
@@ -28,7 +28,7 @@ do_build() {
vsed -i lightcrafts/jnisrc/tiff/GNUmakefile \
-e "s;\./configure;& --host=${XBPS_MACHINE%-musl};"
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
cd linux
TARGET=${XBPS_TARGET_MACHINE%-musl} ant jar
}
diff --git a/srcpkgs/plantuml/template b/srcpkgs/plantuml/template
index 03318f4c07227..156db505a0484 100644
--- a/srcpkgs/plantuml/template
+++ b/srcpkgs/plantuml/template
@@ -14,7 +14,7 @@ distfiles="${SOURCEFORGE_SITE}/plantuml/plantuml-gplv2-${version}.tar.gz"
checksum=c21bb155ecfc53f4f0a5924238069f0c979b0f426bfa44fd62ce73f2aa1b4339
do_build() {
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
. /etc/profile.d/apache-ant.sh
ant
mv ${pkgname}.jar ${pkgname}-${version}.jar
diff --git a/srcpkgs/turbovnc/template b/srcpkgs/turbovnc/template
index 287754ef9daa4..9dd794662b862 100644
--- a/srcpkgs/turbovnc/template
+++ b/srcpkgs/turbovnc/template
@@ -27,7 +27,7 @@ if [ "$CROSS_BUILD" ]; then
fi
pre_configure() {
- . /etc/profile.d/openjdk.sh
+ . /etc/profile.d/jdk.sh
}
post_install() {
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PR PATCH] [Merged]: [RFC] fix the openjdk alternatives mess
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
` (7 preceding siblings ...)
2023-12-23 0:27 ` classabbyamp
@ 2023-12-24 13:39 ` classabbyamp
8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2023-12-24 13:39 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1276 bytes --]
There's a merged pull request on the void-packages repository
[RFC] fix the openjdk alternatives mess
https://github.com/void-linux/void-packages/pull/47866
Description:
The current way the alternatives groups work for openjdk packages really sucks. They overlap and cause pkgdb errors, can get out-of-sync, and more. This approach hopes to fix (or at least improve) that.
The new package `openjdk-common` replaces the xbps trigger that added the profile script for openjdk (which was a flawed approach and should have never been done).
Instead of using alternative groups for specific JRE/JDK binaries, this approach uses just two symlinks, `/usr/lib/jvm/default-jdk` and `/usr/lib/jvm/default-jre`, which point to the selected `JAVA_HOME` (`/usr/lib/jvm/openjdkN`). The profile script in `openjdk-common` prefers `default-jdk` to `default-jre`, and just adds them to `PATH` and `MANPATH` instead of putting things in `/usr/bin`.
With this approach, the selected JDK and JRE can probably still get out of sync, but the preference behaviour of the profile script should help mitigate this. I don't think it's currently possible to sanely deconflict/sync the alternatives groups.
#### Testing the changes
- I tested the changes in this PR: **YES**
[ci skip]
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-12-24 13:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-21 23:38 [PR PATCH] [RFC] fix the openjdk alternatives mess classabbyamp
2023-12-22 1:23 ` ahesford
2023-12-22 1:55 ` [PR PATCH] [Updated] " classabbyamp
2023-12-22 1:57 ` classabbyamp
2023-12-22 2:34 ` classabbyamp
2023-12-22 3:04 ` classabbyamp
2023-12-22 20:03 ` classabbyamp
2023-12-22 22:05 ` classabbyamp
2023-12-23 0:27 ` classabbyamp
2023-12-24 13:39 ` [PR PATCH] [Merged]: " classabbyamp
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).