Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added jdk21 config files for msft linux deb+rpm installers #742

Merged
merged 4 commits into from
Sep 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
msopenjdk-21 (21.0.0-1) STABLE; urgency=medium

* Microsoft 21.0.0-1 release.

-- Microsoft Package Maintainers <[email protected]> Tue, 19 Sep 2023 09:00:00 +0000
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
11
103 changes: 103 additions & 0 deletions linux/jdk/debian/src/main/packaging/microsoft/21/debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
Source: msopenjdk-21
Section: java
Priority: optional
Maintainer: Microsoft Package Maintainers <[email protected]>
Build-Depends: debhelper (>= 11), lsb-release

Package: msopenjdk-21
Architecture: amd64 arm64
Depends: ca-certificates,
java-common,
libc6,
zlib1g
Recommends: libasound2,
libx11-6,
libfontconfig1,
libfreetype6,
libxext6,
libxi6,
libxrender1,
libxtst6,
fonts-dejavu-core,
fonts-dejavu-extra
Provides: java-compiler,
java-sdk,
java-sdk-headless,
java10-sdk,
java11-sdk,
java12-sdk,
java13-sdk,
java14-sdk,
java15-sdk,
java16-sdk,
java17-sdk,
java18-sdk,
java19-sdk,
java20-sdk,
java21-sdk,
java2-sdk,
java5-sdk,
java6-sdk,
java7-sdk,
java8-sdk,
java9-sdk,
java10-sdk-headless,
java11-sdk-headless,
java12-sdk-headless,
java13-sdk-headless,
java14-sdk-headless,
java15-sdk-headless,
java16-sdk-headless,
java17-sdk-headless,
java18-sdk-headless,
java19-sdk-headless,
java2-sdk-headless,
java20-sdk-headless,
java21-sdk-headless,
java5-sdk-headless,
java6-sdk-headless,
java7-sdk-headless,
java8-sdk-headless,
java9-sdk-headless,
java-runtime,
java-runtime-headless,
java10-runtime,
java11-runtime,
java12-runtime,
java13-runtime,
java14-runtime,
java15-runtime,
java16-runtime,
java17-runtime,
java18-runtime,
java19-runtime,
java20-runtime,
java21-runtime,
java2-runtime,
java5-runtime,
java6-runtime,
java7-runtime,
java8-runtime,
java9-runtime,
java10-runtime-headless,
java11-runtime-headless,
java12-runtime-headless,
java13-runtime-headless,
java14-runtime-headless,
java15-runtime-headless,
java16-runtime-headless,
java17-runtime-headless,
java18-runtime-headless,
java19-runtime-headless,
java2-runtime-headless,
java20-runtime-headless,
java21-runtime-headless,
java5-runtime-headless,
java6-runtime-headless,
java7-runtime-headless,
java8-runtime-headless,
java9-runtime-headless
Description: Microsoft Build of OpenJDK 21
Microsoft Build of OpenJDK is an OpenJDK-based development environment to create
applications and components using the Java programming language.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/

Files: *
Copyright: Oracle and/or its affiliates
License: GPL-2.0+CE
36 changes: 36 additions & 0 deletions linux/jdk/debian/src/main/packaging/microsoft/21/debian/jinfo.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name=@pkg_alias@
alias=@pkg_alias@
priority=@priority@
section=contrib

jdkhl jar /usr/lib/jvm/@jvm_dir@/bin/jar
jdkhl jarsigner /usr/lib/jvm/@jvm_dir@/bin/jarsigner
hl java /usr/lib/jvm/@jvm_dir@/bin/java
jdkhl javac /usr/lib/jvm/@jvm_dir@/bin/javac
jdkhl javadoc /usr/lib/jvm/@jvm_dir@/bin/javadoc
jdkhl javap /usr/lib/jvm/@jvm_dir@/bin/javap
jdkhl jcmd /usr/lib/jvm/@jvm_dir@/bin/jcmd
jdk jconsole /usr/lib/jvm/@jvm_dir@/bin/jconsole
jdkhl jdb /usr/lib/jvm/@jvm_dir@/bin/jdb
jdkhl jdeprscan /usr/lib/jvm/@jvm_dir@/bin/jdeprscan
jdkhl jdeps /usr/lib/jvm/@jvm_dir@/bin/jdeps
hl jfr /usr/lib/jvm/@jvm_dir@/bin/jfr
jdkhl jhsdb /usr/lib/jvm/@jvm_dir@/bin/jhsdb
jdkhl jimage /usr/lib/jvm/@jvm_dir@/bin/jimage
jdkhl jinfo /usr/lib/jvm/@jvm_dir@/bin/jinfo
jdkhl jlink /usr/lib/jvm/@jvm_dir@/bin/jlink
jdkhl jmap /usr/lib/jvm/@jvm_dir@/bin/jmap
jdkhl jmod /usr/lib/jvm/@jvm_dir@/bin/jmod
jdkhl jpackage /usr/lib/jvm/@jvm_dir@/bin/jpackage
jdkhl jps /usr/lib/jvm/@jvm_dir@/bin/jps
hl jrunscript /usr/lib/jvm/@jvm_dir@/bin/jrunscript
jdkhl jshell /usr/lib/jvm/@jvm_dir@/bin/jshell
jdkhl jstack /usr/lib/jvm/@jvm_dir@/bin/jstack
jdkhl jstat /usr/lib/jvm/@jvm_dir@/bin/jstat
jdkhl jstatd /usr/lib/jvm/@jvm_dir@/bin/jstatd
jdkhl jwebserver /usr/lib/jvm/@jvm_dir@/bin/jwebserver
hl keytool /usr/lib/jvm/@jvm_dir@/bin/keytool
hl rmiregistry /usr/lib/jvm/@jvm_dir@/bin/rmiregistry
jdkhl serialver /usr/lib/jvm/@jvm_dir@/bin/serialver
hl jexec /usr/lib/jvm/@jvm_dir@/lib/jexec
hl jspawnhelper /usr/lib/jvm/@jvm_dir@/lib/jspawnhelper
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/sh
set -eu

priority="@priority@"
jdk_base_dir="/usr/lib/jvm/@jvm_dir@"
tools="@jvm_tools@"

case "$1" in
configure)
for tool in $tools; do
for tool_path in "$jdk_base_dir/bin/$tool" "$jdk_base_dir/lib/$tool"; do
if [ ! -e "$tool_path" ]; then
continue
fi

slave=""
tool_man_path="$jdk_base_dir/man/man1/$tool.1"
if [ -e "$tool_man_path" ]; then
slave="--slave /usr/share/man/man1/$tool.1 $tool.1 $tool_man_path"
fi

update-alternatives \
--install \
"/usr/bin/$tool" \
"$tool" \
"$tool_path" \
"$priority" \
$slave
done
done
;;

abort-upgrade | abort-remove | abort-deconfigure)
# Nothing to do
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac

exit 0
28 changes: 28 additions & 0 deletions linux/jdk/debian/src/main/packaging/microsoft/21/debian/prerm.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh
set -eu

jdk_base_dir="/usr/lib/jvm/@jvm_dir@"
tools="@jvm_tools@"

case "$1" in
purge)
# Nothing to do
;;
remove | upgrade | failed-upgrade | abort-install | abort-upgrade | disappear | deconfigure)
for tool in $tools; do
for tool_path in "$jdk_base_dir/bin/$tool" "$jdk_base_dir/lib/$tool"; do
if [ ! -e "$tool_path" ]; then
continue
fi

update-alternatives --remove "$tool" "$tool_path"
done
done
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac

exit 0
75 changes: 75 additions & 0 deletions linux/jdk/debian/src/main/packaging/microsoft/21/debian/rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/usr/bin/make -f

pkg_name = msopenjdk-21
priority = 2111
jvm_tools = jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jfr jhsdb jimage jinfo jlink jmap jmod jpackage jps jrunscript jshell jstack jstat jstatd jwebserver keytool rmiregistry serialver jexec jspawnhelper
url_version = 21.0.0
amd64_tarball_url = https://aka.ms/download-jdk/microsoft-jdk-$(url_version)-linux-x64.tar.gz
amd64_checksum_url = https://aka.ms/download-jdk/microsoft-jdk-$(url_version)-linux-x64.tar.gz.sha256sum.txt
arm64_tarball_url = https://aka.ms/download-jdk/microsoft-jdk-$(url_version)-linux-aarch64.tar.gz
arm64_checksum = https://aka.ms/download-jdk/microsoft-jdk-$(url_version)-linux-aarch64.tar.gz.sha256sum.txt

d = debian/$(pkg_name)
jvm_home = usr/lib/jvm
jvm_dir = $(pkg_name)-$(DEB_HOST_ARCH)
pkg_alias = $(pkg_name)-$(DEB_HOST_ARCH)

%:
dh $@

override_dh_auto_clean:
override_dh_auto_test:
override_dh_auto_build:
override_dh_strip:
override_dh_auto_install:
# Download JDK if not building locally
if [ ! -f jdk.tar.gz ]; then \
wget --progress=dot:mega -O jdk.tar.gz $($(DEB_HOST_ARCH)_tarball_url); \
wget --progress=dot:mega -O jdk.tar.gz.sha256.txt $($(DEB_HOST_ARCH)_checksum_url); \
sed -i -nE '/(.*) /{s/ .+/ jdk.tar.gz/;p;}' jdk.tar.gz.sha256.txt; \
fi
# Verify checksum of JDK
sha256sum -c jdk.tar.gz.sha256.txt

# Substitute variables.
sed \
-e 's/@pkg_alias@/$(pkg_alias)/g' \
-e 's/@jvm_dir@/$(jvm_dir)/g' \
-e 's/@priority@/$(priority)/g' \
-e 's/@jvm_tools@/$(jvm_tools)/g' \
debian/jinfo.in > debian/jinfo

sed \
-e 's/@pkg_alias@/$(pkg_alias)/g' \
-e 's/@jvm_dir@/$(jvm_dir)/g' \
-e 's/@priority@/$(priority)/g' \
-e 's/@jvm_tools@/$(jvm_tools)/g' \
debian/postinst.in > debian/postinst

sed \
-e 's/@pkg_alias@/$(pkg_alias)/g' \
-e 's/@jvm_dir@/$(jvm_dir)/g' \
-e 's/@priority@/$(priority)/g' \
-e 's/@jvm_tools@/$(jvm_tools)/g' \
debian/prerm.in > debian/prerm

# Unpack JDK.
dh_installdirs \
$(jvm_home) \
$(jvm_home)/$(jvm_dir)
tar --strip-components=1 -C "$(d)/$(jvm_home)/$(jvm_dir)" -xf jdk.tar.gz

# Add jinfo file (alternatives support).
cp debian/jinfo "$(d)/$(jvm_home)/.$(pkg_alias).jinfo"

# Ensure src.zip is present in the root folder of the JDK.
if [ ! -f "$(d)/$(jvm_home)/$(jvm_dir)/src.zip" ]; then \
if [ ! -f "$(d)/$(jvm_home)/$(jvm_dir)/lib/src.zip" ] ; then \
echo "Missing src.zip in binary distribution"; \
exit 1; \
fi; \
ln -s lib/src.zip "$(d)/$(jvm_home)/$(jvm_dir)/src.zip"; \
fi;

override_dh_gencontrol:
dh_gencontrol --
Loading