diff options
author | frealgagu | 2020-12-10 20:38:43 -0500 |
---|---|---|
committer | frealgagu | 2020-12-10 20:38:43 -0500 |
commit | 18c474e0223bbb6a0e65d98e746097fe4e656962 (patch) | |
tree | 30a8aee27fba2e43efc2d8d7f8ea9f21e5483900 | |
download | aur-18c474e0223bbb6a0e65d98e746097fe4e656962.tar.gz |
Oracle JDK BCL.
-rw-r--r-- | .SRCINFO | 57 | ||||
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | PKGBUILD | 167 | ||||
-rw-r--r-- | jconsole-jdk-bcl.desktop | 8 | ||||
-rw-r--r-- | jdk-bcl.install | 61 | ||||
-rw-r--r-- | jmc-jdk-bcl.desktop | 8 | ||||
-rw-r--r-- | jvisualvm-jdk-bcl.desktop | 9 | ||||
-rw-r--r-- | policytool-jdk-bcl.desktop | 8 |
8 files changed, 325 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..0f03645b1115 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,57 @@ +pkgbase = jdk-bcl + pkgdesc = Oracle Java Development Kit (BCL) + pkgver = 8u201 + pkgrel = 1 + url = http://www.oracle.com/technetwork/java/javase/downloads/index.html + install = jdk-bcl.install + arch = x86_64 + license = custom:Oracle + depends = ca-certificates-java + depends = hicolor-icon-theme + depends = java-environment-common + depends = java-runtime-common + depends = nss + depends = xdg-utils + optdepends = alsa-lib: for basic sound support + optdepends = eclipse-java: to use "Oracle Java Mission Control" plugins in Eclipse + optdepends = gtk2: for Gtk+ look and feel (desktop) + provides = java-environment=8 + provides = java-environment-jdk=8 + provides = java-openjfx=8 + provides = java-runtime=8 + provides = java-runtime-headless=8 + provides = java-runtime-headless-jre=8 + provides = java-runtime-jre=8 + provides = java-web-start=8 + provides = java-web-start-jre=8 + options = !strip + backup = etc/java-jdk-bcl/amd64/jvm.cfg + backup = etc/java-jdk-bcl/images/cursors/cursors.properties + backup = etc/java-jdk-bcl/management/jmxremote.access + backup = etc/java-jdk-bcl/management/management.properties + backup = etc/java-jdk-bcl/security/java.policy + backup = etc/java-jdk-bcl/security/java.security + backup = etc/java-jdk-bcl/security/javaws.policy + backup = etc/java-jdk-bcl/content-types.properties + backup = etc/java-jdk-bcl/flavormap.properties + backup = etc/java-jdk-bcl/fontconfig.properties.src + backup = etc/java-jdk-bcl/logging.properties + backup = etc/java-jdk-bcl/net.properties + backup = etc/java-jdk-bcl/psfont.properties.ja + backup = etc/java-jdk-bcl/psfontj2d.properties + backup = etc/java-jdk-bcl/sound.properties + source = manual://jdk-8u201-linux-x64.tar.gz + source = https://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip + source = jconsole-jdk-bcl.desktop + source = jmc-jdk-bcl.desktop + source = jvisualvm-jdk-bcl.desktop + source = policytool-jdk-bcl.desktop + sha256sums = cb700cc0ac3ddc728a567c350881ce7e25118eaf7ca97ca9705d4580c506e370 + sha256sums = f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59 + sha256sums = 50d8f76c1205e437c290a3d3fe1274e2cddbcac4dde0a95300cc473200176154 + sha256sums = dfa19d10ea5614fda73cee31c592601e3a24c567150a6a7243dd7bcd1e3540cc + sha256sums = 44c97f46d2706f4410ebf838bb26e21e6dee3a7e0b357cf91d68c75cf9d1e011 + sha256sums = 6bfccd461abd3ee2eba600c19f3f3cc5be95bff841e96ea1bc05b234fba9e27d + +pkgname = jdk-bcl + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..4fb0e3fbda19 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +jdk-bcl-*.pkg.tar.zst +jdk-bcl-*.pkg.tar.xz +jdk-bcl-*.log +jdk-*.tar.gz +PKGBUILD-namcap.log +jdk1.*/ +jce_policy-*.zip diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..6efdaa13e8ac --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,167 @@ +# Maintainer: Fredy GarcĂa <frealgagu at gmail dot com> + +pkgname=jdk-bcl +pkgver=8u201 +pkgrel=1 +pkgdesc="Oracle Java Development Kit (BCL)" +arch=("x86_64") +url="http://www.oracle.com/technetwork/java/javase/downloads/index.html" +license=("custom:Oracle") +depends=("ca-certificates-java" "hicolor-icon-theme" "java-environment-common" "java-runtime-common" "nss" "xdg-utils") +optdepends=( + "alsa-lib: for basic sound support" + "eclipse-java: to use \"Oracle Java Mission Control\" plugins in Eclipse" + "gtk2: for Gtk+ look and feel (desktop)" +) +provides=( + "java-environment=${pkgver%u*}" + "java-environment-jdk=${pkgver%u*}" + "java-openjfx=${pkgver%u*}" + "java-runtime=${pkgver%u*}" + "java-runtime-headless=${pkgver%u*}" + "java-runtime-headless-jre=${pkgver%u*}" + "java-runtime-jre=${pkgver%u*}" + "java-web-start=${pkgver%u*}" + "java-web-start-jre=${pkgver%u*}" +) +backup=( + "etc/java-${pkgname}/amd64/jvm.cfg" + "etc/java-${pkgname}/images/cursors/cursors.properties" + "etc/java-${pkgname}/management/jmxremote.access" + "etc/java-${pkgname}/management/management.properties" + "etc/java-${pkgname}/security/java.policy" + "etc/java-${pkgname}/security/java.security" + "etc/java-${pkgname}/security/javaws.policy" + "etc/java-${pkgname}/content-types.properties" + "etc/java-${pkgname}/flavormap.properties" + "etc/java-${pkgname}/fontconfig.properties.src" + "etc/java-${pkgname}/logging.properties" + "etc/java-${pkgname}/net.properties" + "etc/java-${pkgname}/psfont.properties.ja" + "etc/java-${pkgname}/psfontj2d.properties" + "etc/java-${pkgname}/sound.properties" +) +options=(!strip) # JDK debug-symbols +install="${pkgname}.install" +source=( + "manual://${pkgname%-bcl}-${pkgver}-linux-x64.tar.gz" + "https://download.oracle.com/otn-pub/java/jce/${pkgver%u*}/jce_policy-${pkgver%u*}.zip" + "jconsole-${pkgname}.desktop" + "jmc-${pkgname}.desktop" + "jvisualvm-${pkgname}.desktop" + "policytool-${pkgname}.desktop" +) +sha256sums=( + "cb700cc0ac3ddc728a567c350881ce7e25118eaf7ca97ca9705d4580c506e370" + "f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59" + "50d8f76c1205e437c290a3d3fe1274e2cddbcac4dde0a95300cc473200176154" + "dfa19d10ea5614fda73cee31c592601e3a24c567150a6a7243dd7bcd1e3540cc" + "44c97f46d2706f4410ebf838bb26e21e6dee3a7e0b357cf91d68c75cf9d1e011" + "6bfccd461abd3ee2eba600c19f3f3cc5be95bff841e96ea1bc05b234fba9e27d" +) +DLAGENTS=("${DLAGENTS[@]//curl -/curl -b "oraclelicense=a" -}") + +package() { + _jvmdir="/usr/lib/jvm/java-${pkgver%u*}-${pkgname}" + _workdir="${srcdir}/${pkgname%-bcl}1.${pkgver%u*}.0_${pkgver#*u}" + + set +u; msg2 "Creating directory structure..."; set -u + install -dm755 "${pkgdir}/etc/.java/.systemPrefs" + install -dm755 "${pkgdir}/usr/lib/jvm/java-${pkgver%u*}-${pkgname}/bin" + install -dm755 "${pkgdir}/usr/lib/mozilla/plugins" + install -dm755 "${pkgdir}/usr/share/licenses/java-${pkgname}" + + set +u; msg2 "Removing redundancies..."; set -u + + rm -rf "${_workdir}/jre/lib/desktop/icons/HighContrast/" + rm -rf "${_workdir}/jre/lib/desktop/icons/HighContrastInverse/" + rm -rf "${_workdir}/jre/lib/desktop/icons/LowContrast/" + rm -rf "${_workdir}/jre/lib/fontconfig."*.bfc + rm -rf "${_workdir}/jre/lib/fontconfig."*.properties.src + rm -rf "${_workdir}/jre/"*.txt + rm -rf "${_workdir}/jre/COPYRIGHT" + rm -rf "${_workdir}/jre/LICENSE" + rm -rf "${_workdir}/jre/README" + rm -rf "${_workdir}/jre/plugin/" + rm -rf "${_workdir}/man/ja" + + set +u; msg2 "Moving contents..."; set -u + mv "${_workdir}/"* "${pkgdir}${_jvmdir}" + + set +u; msg2 "Replacing duplicate binaries in bin/ with links to jre/bin/ ..."; set -u + local _i + for _i in "${pkgdir}${_jvmdir}/jre/bin/"*; do + ln -sf "${_jvmdir}/jre/bin/${_i##*/}" "${pkgdir}${_jvmdir}/bin/${_i##*/}" + done + + set +u; msg2 "Adding ${pkgname} suffix to .desktop and icons (sun-java.png -> sun-java-${pkgname}.png) ..."; set -u + local _i + for _i in $(find "${pkgdir}${_jvmdir}/jre/lib/desktop/" -type "f"); do + rename -- "." "-${pkgname}." "${_i}" + done + + set +u; msg2 "Fixing .desktop paths..."; set -u + sed -e "s|Exec=|Exec=${_jvmdir}/jre/bin/|" -i "${pkgdir}${_jvmdir}/jre/lib/desktop/applications"/* + sed -e "s|.png|-${pkgname}.png|" -i "${pkgdir}${_jvmdir}/jre/lib/desktop/applications"/* + + set +u; msg2 "Moving .desktops and icons to /usr/share ..."; set -u + mv "${pkgdir}${_jvmdir}/jre/lib/desktop"/* "${pkgdir}/usr/share/" + install -m644 "${srcdir}"/*.desktop "${pkgdir}/usr/share/applications/" + + set +u; msg2 "Moving confs to /etc and link back to /usr: /usr/lib/jvm/java-${pkgname}/jre/lib -> /etc ..."; set -u + local _new_etc_path + for _new_etc_path in "${backup[@]}"; do + # Old location + local _old_usr_path="${pkgdir}${_jvmdir}/jre/lib/${_new_etc_path#*${pkgname}/}" + + # Move + install -Dm644 "${_old_usr_path}" "${pkgdir}/${_new_etc_path}" + ln -sf "/${_new_etc_path}" "${_old_usr_path}" + done + + set +u; msg2 "Linking NPAPI plugin..."; set -u + ln -s "${_jvmdir}/jre/lib/amd64/libnpjp2.so" "${pkgdir}/usr/lib/mozilla/plugins/libnpjp2-${pkgname}.so" + + set +u; msg2 "Replacing JKS keystore with ca-certificates-java ..."; set -u + ln -sf "/etc/ssl/certs/java/cacerts" "${pkgdir}${_jvmdir}/jre/lib/security/cacerts" + + set +u; msg2 "Adding suffix to man pages..."; set -u + for _i in $(find "${pkgdir}${_jvmdir}/man/" -type "f"); do + rename -- ".1" "-${pkgname}.1" "${_i}" + done + + set +u; msg2 "Moving man pages..."; set -u + mv "${pkgdir}${_jvmdir}/man/ja_JP.UTF-8/" "${pkgdir}${_jvmdir}/man/ja" + mv "${pkgdir}${_jvmdir}/man/" "${pkgdir}/usr/share" + + set +u; msg2 "Moving/Linking licenses..."; set -u + mv "${pkgdir}${_jvmdir}/COPYRIGHT" "${pkgdir}/usr/share/licenses/java-${pkgname}/" + mv "${pkgdir}${_jvmdir}/LICENSE" "${pkgdir}/usr/share/licenses/java-${pkgname}/" + mv "${pkgdir}${_jvmdir}/"*.txt "${pkgdir}/usr/share/licenses/java-${pkgname}/" + ln -s "/usr/share/licenses/java-${pkgname}/" "${pkgdir}/usr/share/licenses/${pkgname}" + + set +u; msg2 "Installing Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files..."; set -u + # Replace default "strong", but limited, cryptography to get an "unlimited strength" one for + # things like 256-bit AES. Enabled by default in OpenJDK: + # - http://suhothayan.blogspot.com/2012/05/how-to-install-java-cryptography.html + # - http://www.eyrie.org/~eagle/notes/debian/jce-policy.html + install -m644 "${srcdir}/UnlimitedJCEPolicyJDK${pkgver%u*}"/*.jar "${pkgdir}${_jvmdir}/jre/lib/security/" + install -Dm644 "${srcdir}/UnlimitedJCEPolicyJDK${pkgver%u*}/README.txt" \ + "${pkgdir}/usr/share/doc/${pkgname}/README_-_Java_JCE_Unlimited_Strength.txt" + + set +u; msg2 "Enabling copy+paste in unsigned applets..."; set -u + # Copy/paste from system clipboard to unsigned Java applets has been disabled since 6u24: + # - https://blogs.oracle.com/kyle/entry/copy_and_paste_in_java + # - http://slightlyrandombrokenthoughts.blogspot.com/2011/03/oracle-java-applet-clipboard-injection.html + local _text='\ + // (AUR) Allow unsigned applets to read system clipboard, see: + // - https://blogs.oracle.com/kyle/entry/copy_and_paste_in_java + // - http://slightlyrandombrokenthoughts.blogspot.com/2011/03/oracle-java-applet-clipboard-injection.html + permission java.awt.AWTPermission "accessClipboard";' + local _lf=$'\n' + _text="${_text//${_lf}/\\n}" + local _line + _line="$(awk "/permission/{a=NR}; END{print a}" "${pkgdir}/etc/java-${pkgname}/security/java.policy")" + sed -e "${_line} a ${_text}" -i "${pkgdir}/etc/java-${pkgname}/security/java.policy" + set +u +} diff --git a/jconsole-jdk-bcl.desktop b/jconsole-jdk-bcl.desktop new file mode 100644 index 000000000000..465596ae918f --- /dev/null +++ b/jconsole-jdk-bcl.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib/jvm/java-8-jdk-bcl/bin/jconsole +Icon=sun-java-jdk8 +Name=Java 8 Monitoring and Management Console (BCL) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/jdk-bcl.install b/jdk-bcl.install new file mode 100644 index 000000000000..8b7da3b15320 --- /dev/null +++ b/jdk-bcl.install @@ -0,0 +1,61 @@ +THIS_JAVA='java-8-jdk-bcl' +NAME='JDK 8 (BCL)' + +all_off="$(tput sgr0)" +bold="${all_off}$(tput bold)" +blue="${bold}$(tput setaf 4)" +yellow="${bold}$(tput setaf 3)" + +note() { + printf "${blue}::${yellow} archlinux-java:${bold} $1${all_off}\n" +} + +post_install() { + default=$(archlinux-java get) + case ${default} in + "") + archlinux-java set ${THIS_JAVA} + note "${NAME} ('${THIS_JAVA}') set as default Java environment." + ;; + ${THIS_JAVA}) + note "${NAME} ('${THIS_JAVA}') set as default Java environment." + ;; + *) + note "Default Java environment already set to '${default}'. + To use ${NAME} ('${THIS_JAVA}'), run: + # archlinux-java set ${THIS_JAVA} + For status, use: + $ archlinux-java status" + ;; + esac + + if [[ ! -f /etc/ssl/certs/java/cacerts ]]; then + update-ca-trust + fi +} + +post_upgrade() { + post_install +} + +pre_remove() { + default=$(archlinux-java get) + if [[ ${default} = ${THIS_JAVA} ]]; then + archlinux-java unset + fi +} + +post_remove() { + default=$(archlinux-java get) # reassign + if [[ ${default} ]]; then + note "Default Java environment is '${default}'." + else + archlinux-java fix + default=$(archlinux-java get) # re-reassign + if [[ ${default} ]]; then + note "Default Java environment left as '${default}'." + else + note "Java environment unset." + fi + fi +} diff --git a/jmc-jdk-bcl.desktop b/jmc-jdk-bcl.desktop new file mode 100644 index 000000000000..520fc0cfe413 --- /dev/null +++ b/jmc-jdk-bcl.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib/jvm/java-8-jdk-bcl/bin/jmc +Icon=sun-java-jdk8 +Name=Java 8 Mission Control (BCL) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/jvisualvm-jdk-bcl.desktop b/jvisualvm-jdk-bcl.desktop new file mode 100644 index 000000000000..3d561e490ad8 --- /dev/null +++ b/jvisualvm-jdk-bcl.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Exec=/usr/lib/jvm/java-8-jdk-bcl/bin/jvisualvm +GenericName=Java 8 Monitoring and Performance Monitoring Tool (BCL) +Icon=sun-java-jdk8 +Name=Java 8 VisualVM (BCL) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/policytool-jdk-bcl.desktop b/policytool-jdk-bcl.desktop new file mode 100644 index 000000000000..bb2d6bf53e72 --- /dev/null +++ b/policytool-jdk-bcl.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib/jvm/java-8-jdk-bcl/jre/bin/policytool +Icon=sun-java-jdk8 +Name=Java 8 Policy Settings (BCL) +StartupNotify=true +Terminal=false +Type=Application +Categories=Settings;Java; |