summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorfrealgagu2020-12-10 20:38:43 -0500
committerfrealgagu2020-12-10 20:38:43 -0500
commit18c474e0223bbb6a0e65d98e746097fe4e656962 (patch)
tree30a8aee27fba2e43efc2d8d7f8ea9f21e5483900
downloadaur-18c474e0223bbb6a0e65d98e746097fe4e656962.tar.gz
Oracle JDK BCL.
-rw-r--r--.SRCINFO57
-rw-r--r--.gitignore7
-rw-r--r--PKGBUILD167
-rw-r--r--jconsole-jdk-bcl.desktop8
-rw-r--r--jdk-bcl.install61
-rw-r--r--jmc-jdk-bcl.desktop8
-rw-r--r--jvisualvm-jdk-bcl.desktop9
-rw-r--r--policytool-jdk-bcl.desktop8
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;