Skip to content

Commit

Permalink
Added jdk21 config files for msft linux deb+rpm installers (#742)
Browse files Browse the repository at this point in the history
* Added jdk21 config files for msft linux deb installers

* Added jdk21 config files for msft linux rpm installers

* updated comments

* Update msft jdk21 priority

Co-authored-by: Luigi Montoya <[email protected]>

---------

Co-authored-by: Luigi Montoya <[email protected]>
  • Loading branch information
jmjaffe37 and Luigi96 authored Sep 28, 2023
1 parent ec8349d commit f57d30b
Show file tree
Hide file tree
Showing 9 changed files with 521 additions and 0 deletions.
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

0 comments on commit f57d30b

Please sign in to comment.