summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmar Vega Ramos <ovruni@gnu.org.pe>2018-04-19 02:31:45 -0500
committerOmar Vega Ramos <ovruni@gnu.org.pe>2018-04-19 02:31:45 -0500
commitc8d9d3ec90d76dd65141ed2b7b1d8cebe451002a (patch)
tree5aacdb3347f09a8ce54ab71422289aa84313d988
parent17bb5af1132fda7447b9b36d1ef40f96db85fbd4 (diff)
downloadabslibre-c8d9d3ec90d76dd65141ed2b7b1d8cebe451002a.tar.gz
abslibre-c8d9d3ec90d76dd65141ed2b7b1d8cebe451002a.tar.bz2
abslibre-c8d9d3ec90d76dd65141ed2b7b1d8cebe451002a.zip
{j{re,dk}9-openjdk,jre9-openjdk-headless}: add new packages to [libre] for branding reasons
-rw-r--r--libre/java9-openjdk/PKGBUILD286
-rw-r--r--libre/java9-openjdk/freedesktop-java.desktop12
-rw-r--r--libre/java9-openjdk/freedesktop-jconsole.desktop11
-rw-r--r--libre/java9-openjdk/freedesktop-policytool.desktop13
-rw-r--r--libre/java9-openjdk/install_jdk9-openjdk.sh50
-rw-r--r--libre/java9-openjdk/install_jre9-openjdk-headless.sh48
-rw-r--r--libre/java9-openjdk/install_jre9-openjdk.sh35
7 files changed, 455 insertions, 0 deletions
diff --git a/libre/java9-openjdk/PKGBUILD b/libre/java9-openjdk/PKGBUILD
new file mode 100644
index 000000000..23db45518
--- /dev/null
+++ b/libre/java9-openjdk/PKGBUILD
@@ -0,0 +1,286 @@
+# Maintainer (Arch): Guillaume ALAUX <guillaume@archlinux.org>
+# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
+
+# TODO add test, see about packaging jtreg and using it here
+# TODO see about building with OpenJDK9
+# TODO add javazi
+# TODO when IcedTea provides it, package icedtea-web and add it as optdepends
+# TODO package OpenJFX for OpenJDK9 and add it as optdepends
+
+## EXPLORATIONS
+# TODO extract a jmods package from jdk9-openjdk?
+# TODO extract a jdk-headless package?
+# Now that `jconsole` and `policytool` belong to JDK, one could extract
+# these to their own package.
+# FYI, `jdk8-openjdk` already depends on `jre8-openjdk` and not `jre8-openjdk-headless`
+
+pkgname=('jre9-openjdk-headless' 'jre9-openjdk' 'jdk9-openjdk')
+_majorver=9
+_minorver=0
+_securityver=4
+_updatever=11
+pkgbase=java$_majorver-openjdk
+pkgver=$_majorver.$_minorver.$_securityver.u$_updatever
+_hg_tag="jdk-$_majorver.$_minorver.$_securityver+$_updatever"
+_repo_ver=jdk$_java_ver.$_hg_tag
+pkgrel=1.parabola1
+_pkg_full_ver=$pkgver-$pkgrel
+arch=('i686' 'x86_64')
+url='http://openjdk.java.net/'
+license=('custom')
+makedepends=('jdk8-openjdk' 'cpio' 'unzip' 'zip'
+ 'libelf' # required for AOT
+ 'libcups'
+ 'libx11' 'libxrender' 'libxtst' 'libxt' # 'libxext' already pulled by libxtst
+ 'alsa-lib'
+ 'graphviz') # to generate full docs (as said in output of configure)
+ # 'freetype2' already pulled
+ # 'libjpeg-turbo' 'giflib' 'libpng' 'lcms2' already pulled
+ # 'bash' OpenJDK scripts are explicitly Bash
+checkdepends=()
+_url_src=http://hg.openjdk.java.net/jdk-updates/jdk9u
+source=("jdk9u-${_repo_ver}.tar.gz::$_url_src/archive/$_hg_tag.tar.gz"
+ "corba-${_repo_ver}.tar.gz::$_url_src/corba/archive/$_hg_tag.tar.gz"
+ "hotspot-${_repo_ver}.tar.gz::$_url_src/hotspot/archive/$_hg_tag.tar.gz"
+ "jaxp-${_repo_ver}.tar.gz::$_url_src/jaxp/archive/$_hg_tag.tar.gz"
+ "jaxws-${_repo_ver}.tar.gz::$_url_src/jaxws/archive/$_hg_tag.tar.gz"
+ "jdk-${_repo_ver}.tar.gz::$_url_src/jdk/archive/$_hg_tag.tar.gz"
+ "langtools-${_repo_ver}.tar.gz::$_url_src/langtools/archive/$_hg_tag.tar.gz"
+ "nashorn-${_repo_ver}.tar.gz::$_url_src/nashorn/archive/$_hg_tag.tar.gz"
+ freedesktop-java.desktop
+ freedesktop-jconsole.desktop
+ freedesktop-policytool.desktop)
+sha256sums=('bd8f7d0a945cad70f6321300d1c67e1977104e5e55545cfa2bbac8dd1dc01af9'
+ '27092712fa9058f5242e39cee1e7b094b63af14ff373ba432135c0e2ba2fd9cc'
+ '50bbfdb27e2ec32cff994dfe2f5e0fca4af003c653ff64c894966ac1ee9864c4'
+ '3a9445d9a7d771276095394d7fe5dbdb904c1f32892eb15b96033d51ab856e18'
+ 'b708aefda1b4ad5f81740e76fc1467cd4f0faaab0c5e73febb46d96ac8f883af'
+ 'c2c74b04638a98995397bbbd1e0e1f2a709d71ed3fe5188d1fa13bd425604e3d'
+ '9e9f87c56af02682eb9426bf94487376090fcb431390e87cbf3a29036fc5cad8'
+ 'c64c7c51fcca7c8f1dc4705842c1f2d8ad3479b78aa45b37f1dd6cd2ac39dd73'
+ '85d32321fb59a89e4f9ab320060597d4ca9d5e23b995c61549a48b41ac908a67'
+ 'bf197deb003879ed01adc6973a2430a41574f638667a5ecfbb1aad1403897ddc'
+ '9394de47b5c38826ab837145816667d96b697998bafec5dd132d39d4846ac70e')
+
+case "$CARCH" in
+ x86_64) _JARCH='x86_64';;
+ i686) _JARCH='x86';;
+esac
+
+_jvmdir=/usr/lib/jvm/java-$_majorver-openjdk
+_jdkdir=jdk${_majorver}u-$_hg_tag
+_imgdir=$_jdkdir/build/linux-$_JARCH-normal-server-release/images
+
+_nonheadless=(lib/libawt_xawt.{so,diz}
+ lib/libjawt.{so,diz}
+ lib/libjsoundalsa.{so,diz}
+ lib/libsplashscreen.{so,diz})
+
+prepare() {
+ cd $_jdkdir
+ for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn
+ do
+ ln -s ../$subrepo-$_hg_tag $subrepo
+ done
+}
+
+build() {
+ cd $_jdkdir
+
+ NUM_PROC_OPT=''
+ MAKEFLAG_J=$(echo $MAKEFLAGS | sed -En 's/.*-j([0-9]+).*/\1/p')
+ if [ -n $MAKEFLAG_J ]; then
+ # http://hg.openjdk.java.net/jdk9/jdk9/file/85e6cb013b98/make/InitSupport.gmk#l105
+ echo "Removing '-j$MAKEFLAG_J' from MAKEFLAGS to prevent build fail. Passing it directly to ./configure."
+ export MAKEFLAGS=${MAKEFLAGS/-j$MAKEFLAG_J/}
+ NUM_PROC_OPT="--with-num-cores=$MAKEFLAG_J"
+ fi
+
+ _CFLAGS=$CFLAGS
+ _CXXFLAGS=$CXXFLAGS
+ _LDFLAGS=$LDFLAGS
+ if [[ $CARCH = i686 ]]; then
+ echo "Removing '-fno-plt' from CFLAGS and CXXFLAGS to prevent build fail with this architecture"
+ _CFLAGS=${CFLAGS/-fno-plt/}
+ _CXXFLAGS=${CXXFLAGS/-fno-plt/}
+ fi
+
+ # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning
+ # in the output of ./configure unless used like such:
+ # --with-extra-cflags="$CFLAGS"
+ # --with-extra-cxxflags="$CXXFLAGS"
+ # --with-extra-ldflags="$LDFLAGS"
+ # See also paragraph "Configure Control Variables from "jdk$_majorver-$_hg_tag/common/doc/building.md
+ unset CFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+
+ bash configure \
+ --with-version-build="$_updatever" \
+ --with-version-pre="" \
+ --with-version-opt="" \
+ --with-stdc++lib=dynamic \
+ --with-extra-cflags="$_CFLAGS" \
+ --with-extra-cxxflags="$_CXXFLAGS" \
+ --with-extra-ldflags="$_LDFLAGS" \
+ --with-libjpeg=system \
+ --with-giflib=system \
+ --with-libpng=system \
+ --with-lcms=system \
+ --with-zlib=system \
+ --enable-unlimited-crypto \
+ --disable-warnings-as-errors \
+ $NUM_PROC_OPT
+ #--disable-javac-server
+
+ make images
+
+ # https://bugs.openjdk.java.net/browse/JDK-8173610
+ find "../$_imgdir" -iname '*.so' -exec chmod +x {} \;
+}
+
+# check() {
+# cd "$pkgname-$pkgver"
+# make -k check
+# }
+
+package_jre9-openjdk-headless() {
+ pkgdesc="OpenJDK Java $_majorver headless runtime environment (Parabola rebranded)"
+ depends=('java-runtime-common>=3' 'ca-certificates-utils' 'nss')
+ optdepends=('java-rhino: for some JavaScript support')
+ provides=("java-runtime-headless=$_majorver" "java-runtime-headless-openjdk=$_majorver")
+ backup=(etc/$pkgbase/logging.properties
+ etc/$pkgbase/management/jmxremote.access
+ etc/$pkgbase/management/jmxremote.password.template
+ etc/$pkgbase/management/management.properties
+ etc/$pkgbase/net.properties
+ etc/$pkgbase/security/java.policy
+ etc/$pkgbase/security/java.security
+ etc/$pkgbase/security/policy/README.txt
+ etc/$pkgbase/security/policy/limited/default_US_export.policy
+ etc/$pkgbase/security/policy/limited/default_local.policy
+ etc/$pkgbase/security/policy/limited/exempt_local.policy
+ etc/$pkgbase/security/policy/unlimited/default_US_export.policy
+ etc/$pkgbase/security/policy/unlimited/default_local.policy
+ etc/$pkgbase/sound.properties)
+ install=install_jre9-openjdk-headless.sh
+
+ cd $_imgdir/jre
+
+ install -d -m 755 "$pkgdir$_jvmdir"
+
+ cp -a bin lib \
+ "$pkgdir$_jvmdir"
+
+ for f in ${_nonheadless[@]}; do
+ rm "$pkgdir$_jvmdir/$f"
+ done
+
+ cp ../jdk/release "$pkgdir$_jvmdir"
+ cp ../jdk/lib/modules "$pkgdir$_jvmdir/lib"
+
+ # Conf
+ install -d -m 755 "$pkgdir/etc"
+ cp -r conf "$pkgdir/etc/$pkgbase"
+ ln -s /etc/$pkgbase "$pkgdir/$_jvmdir/conf"
+
+ # Legal
+ install -d -m 755 "$pkgdir/usr/share/licenses"
+ cp -r legal "$pkgdir/usr/share/licenses/$pkgbase"
+ ln -s $pkgbase "$pkgdir/usr/share/licenses/$pkgname"
+ ln -s /usr/share/licenses/$pkgbase "$pkgdir/$_jvmdir/legal"
+
+ # Man pages
+ for f in man/man1/* man/ja/man1/*; do
+ install -D -m 644 $f "$pkgdir/usr/share/${f/\.1/-openjdk9.1}"
+ done
+ ln -s /usr/share/man "$pkgdir/$_jvmdir/man"
+
+ # Link JKS keystore from ca-certificates-utils
+ rm -f "$pkgdir$_jvmdir/lib/security/cacerts"
+ ln -sf /etc/ssl/certs/java/cacerts "$pkgdir$_jvmdir/lib/security/cacerts"
+
+ find "$pkgdir$_jvmdir" -iname '*.diz' -exec rm {} \;
+}
+
+package_jre9-openjdk() {
+ pkgdesc="OpenJDK Java $_majorver full runtime environment (Parabola rebranded)"
+ depends=("jre$_majorver-openjdk-headless=$_pkg_full_ver")
+ optdepends=('alsa-lib: for basic sound support'
+ 'gtk2: for the Gtk+ 2 look and feel - desktop usage'
+ 'gtk3: for the Gtk+ 3 look and feel - desktop usage')
+ provides=("java-runtime=$_majorver" "java-runtime-openjdk=$_majorver")
+ install=install_jre9-openjdk.sh
+
+ cd $_imgdir/jre
+
+ install -d -m 755 "$pkgdir$_jvmdir"
+
+ for f in ${_nonheadless[@]}; do
+ install -D -m 644 $f "$pkgdir$_jvmdir/$f"
+ done
+
+ # Licenses
+ install -d -m 755 "$pkgdir/usr/share/licenses"
+ ln -s $pkgbase "$pkgdir/usr/share/licenses/$pkgname"
+
+ find "$pkgdir$_jvmdir" -iname '*.diz' -exec rm {} \;
+}
+
+package_jdk9-openjdk() {
+ pkgdesc="OpenJDK Java $_majorver development kit (Parabola rebranded)"
+ depends=("jre$_majorver-openjdk=$_pkg_full_ver" 'java-environment-common=3' 'hicolor-icon-theme' 'libelf')
+ provides=("java-environment=$_majorver" "java-environment-openjdk=$_majorver")
+ install=install_jdk9-openjdk.sh
+
+ cd $_imgdir/jdk
+
+ install -d -m 755 "$pkgdir$_jvmdir"
+
+ cp -a bin demo include jmods lib \
+ "$pkgdir$_jvmdir"
+
+ rm "$pkgdir$_jvmdir/lib/src.zip"
+
+ # Remove files held by JRE
+ pushd ../jre
+ for d in bin lib; do
+ find $d ! -type d -exec rm "$pkgdir$_jvmdir/{}" \;
+ done
+ popd
+ find "$pkgdir$_jvmdir/lib" -type d -empty -delete
+
+ # Conf files all belong to JRE
+
+ # Legal
+ install -d -m 755 "$pkgdir/usr/share/licenses"
+ cp -r legal "$pkgdir/usr/share/licenses/$pkgbase"
+ pushd ../jre/legal
+ find . ! -type d -exec rm "$pkgdir/usr/share/licenses/$pkgbase/{}" \;
+ popd
+ find "$pkgdir/usr/share/licenses" -type d -empty -delete
+ ln -s $pkgbase "$pkgdir/usr/share/licenses/$pkgname"
+
+ # Man pages
+ for f in man/man1/* man/ja/man1/*; do
+ if [ ! -e ../jre/$f ]; then
+ install -D -m 644 $f "$pkgdir/usr/share/${f/\.1/-openjdk$_majorver.1}"
+ fi
+ done
+
+ # Icons
+ for s in 16 24 32 48; do
+ install -D -m 644 \
+ $srcdir/jdk-$_hg_tag/src/java.desktop/unix/classes/sun/awt/X11/java-icon$s.png \
+ "$pkgdir/usr/share/icons/hicolor/$sx$s/apps/$pkgbase.png"
+ done
+
+ # Desktop files
+ for f in jconsole policytool java; do
+ install -D -m 644 \
+ "$srcdir/freedesktop-$f.desktop" \
+ "$pkgdir/usr/share/applications/$f-$pkgbase.desktop"
+ done
+
+ find "$pkgdir$_jvmdir" -iname '*.diz' -exec rm {} \;
+}
diff --git a/libre/java9-openjdk/freedesktop-java.desktop b/libre/java9-openjdk/freedesktop-java.desktop
new file mode 100644
index 000000000..0479c92b8
--- /dev/null
+++ b/libre/java9-openjdk/freedesktop-java.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=OpenJDK Java 9 Runtime
+Name[fi]=OpenJDK Java 9 - ajonaikainen ympäristö
+Comment=OpenJDK Java 9 Runtime
+Comment[fi]=OpenJDK Java 9 - ajonaikainen ympäristö
+Keywords=java;runtime
+Exec=/usr/lib/jvm/java-9-openjdk/bin/java -jar
+Terminal=false
+Type=Application
+Icon=java9-openjdk
+MimeType=application/x-java-archive;application/java-archive;application/x-jar;
+NoDisplay=true
diff --git a/libre/java9-openjdk/freedesktop-jconsole.desktop b/libre/java9-openjdk/freedesktop-jconsole.desktop
new file mode 100644
index 000000000..0a83b0a97
--- /dev/null
+++ b/libre/java9-openjdk/freedesktop-jconsole.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=OpenJDK Java 9 Console
+Name[fi]=OpenJDK Java 9 - konsoli
+Comment=OpenJDK Java 9 Monitoring & Management Console
+Comment[fi]=OpenJDK Java 9 - valvonta- ja hallintakonsoli
+Keywords=java;console;monitoring
+Exec=/usr/lib/jvm/java-9-openjdk/bin/jconsole
+Terminal=false
+Type=Application
+Icon=java9-openjdk
+Categories=Application;System;
diff --git a/libre/java9-openjdk/freedesktop-policytool.desktop b/libre/java9-openjdk/freedesktop-policytool.desktop
new file mode 100644
index 000000000..e1c400f40
--- /dev/null
+++ b/libre/java9-openjdk/freedesktop-policytool.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Name=OpenJDK Java 9 Policy Tool
+Name[fi]=OpenJDK Java 9 - käytäntötyökalu
+Name[fr]=OpenJDK Java 9 - Outil de réglage
+Comment=OpenJDK Java 9 Policy Tool
+Comment[fi]=OpenJDK Java 9 - käytäntötyökalu
+Comment[fr]=OpenJDK Java 9 - Outil de réglage
+Keywords=java;security;policytool
+Exec=/usr/lib/jvm/java-9-openjdk/bin/policytool
+Terminal=false
+Type=Application
+Icon=java9-openjdk
+Categories=Settings;
diff --git a/libre/java9-openjdk/install_jdk9-openjdk.sh b/libre/java9-openjdk/install_jdk9-openjdk.sh
new file mode 100644
index 000000000..fc2a6f161
--- /dev/null
+++ b/libre/java9-openjdk/install_jdk9-openjdk.sh
@@ -0,0 +1,50 @@
+THIS_JDK='java-9-openjdk'
+
+fix_default() {
+ if [ ! -x /usr/bin/java ]; then
+ /usr/bin/parabola-java unset
+ echo ""
+ else
+ /usr/bin/parabola-java get
+ fi
+}
+
+post_install() {
+ default=$(fix_default)
+ case ${default} in
+ "")
+ /usr/bin/parabola-java set ${THIS_JDK}
+ ;;
+ ${THIS_JDK})
+ # Nothing
+ ;;
+ *)
+ echo "Default Java environment is already set to '${default}'"
+ echo "See 'parabola-java help' to change it"
+ ;;
+ esac
+
+ if [ ! -f /etc/ssl/certs/java/cacerts ]; then
+ /usr/bin/update-ca-trust
+ fi
+}
+
+post_upgrade() {
+ default=$(fix_default)
+ if [ -z "${default}" ]; then
+ /usr/bin/parabola-java set ${THIS_JDK}
+ fi
+
+ if [ ! -f /etc/ssl/certs/java/cacerts ]; then
+ /usr/bin/update-ca-trust
+ fi
+}
+
+pre_remove() {
+ if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then
+ # Check Jre9 is still available
+ if [ -x /usr/lib/jvm/${THIS_JDK}/bin/java ]; then
+ /usr/bin/parabola-java unset
+ fi
+ fi
+}
diff --git a/libre/java9-openjdk/install_jre9-openjdk-headless.sh b/libre/java9-openjdk/install_jre9-openjdk-headless.sh
new file mode 100644
index 000000000..ed0580948
--- /dev/null
+++ b/libre/java9-openjdk/install_jre9-openjdk-headless.sh
@@ -0,0 +1,48 @@
+THIS_JRE='java-9-openjdk'
+
+fix_default() {
+ if [ ! -x /usr/bin/java ]; then
+ /usr/bin/parabola-java unset
+ echo ""
+ else
+ /usr/bin/parabola-java get
+ fi
+}
+
+post_install() {
+ default=$(fix_default)
+ case ${default} in
+ "")
+ /usr/bin/parabola-java set ${THIS_JRE}
+ ;;
+ ${THIS_JRE})
+ # Nothing
+ ;;
+ *)
+ echo "Default Java environment is already set to '${default}'"
+ echo "See 'parabola-java help' to change it"
+ ;;
+ esac
+
+ if [ ! -f /etc/ssl/certs/java/cacerts ]; then
+ /usr/bin/update-ca-trust
+ fi
+}
+
+post_upgrade() {
+ if [ -z $(fix_default) ]; then
+ /usr/bin/parabola-java set ${THIS_JRE}
+ fi
+
+ if [ ! -f /etc/ssl/certs/java/cacerts ]; then
+ /usr/bin/update-ca-trust
+ fi
+}
+
+pre_remove() {
+ default=$(fix_default)
+ if [ "x${default}" = "x${THIS_JRE}" ]; then
+ /usr/bin/parabola-java unset
+ echo "No Java environment is set as default anymore"
+ fi
+}
diff --git a/libre/java9-openjdk/install_jre9-openjdk.sh b/libre/java9-openjdk/install_jre9-openjdk.sh
new file mode 100644
index 000000000..b311edbe0
--- /dev/null
+++ b/libre/java9-openjdk/install_jre9-openjdk.sh
@@ -0,0 +1,35 @@
+THIS_JRE='java-9-openjdk'
+
+fix_default() {
+ if [ ! -x /usr/bin/java ]; then
+ /usr/bin/parabola-java unset
+ echo ""
+ else
+ /usr/bin/parabola-java get
+ fi
+}
+
+post_install() {
+ default=$(fix_default)
+ case ${default} in
+ "")
+ /usr/bin/parabola-java set ${THIS_JRE}
+ ;;
+ ${THIS_JRE})
+ # Nothing
+ ;;
+ *)
+ echo "Default Java environment is already set to '${default}'"
+ echo "See 'parabola-java help' to change it"
+ ;;
+ esac
+
+ echo "when you use a non-reparenting window manager,"
+ echo "set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh"
+}
+
+post_upgrade() {
+ if [ -z $(fix_default) ]; then
+ /usr/bin/parabola-java set ${THIS_JRE}
+ fi
+}