diff options
author | Franck Lucien Duriez | 2019-01-02 12:48:57 +0000 |
---|---|---|
committer | Franck Lucien Duriez | 2019-02-08 11:08:16 +0000 |
commit | 234f6e3b679f63644e5a0205d7ee869accebdd5a (patch) | |
tree | 8daa78657a69741851faa1bd085c76d5367f5a27 | |
download | aur-234f6e3b679f63644e5a0205d7ee869accebdd5a.tar.gz |
First commit
-rw-r--r-- | .SRCINFO | 46 | ||||
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | PKGBUILD | 121 | ||||
-rw-r--r-- | jdk8-arm.install | 61 |
4 files changed, 234 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..c3abfff1c72e --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,46 @@ +pkgbase = jdk8-arm + pkgdesc = Oracle Java 8 Development Kit for ARM32 + pkgver = 8u201 + pkgrel = 1 + url = http://www.oracle.com/technetwork/java/javase/downloads/index.html + install = jdk8-arm.install + arch = armv7h + 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 + provides = java-runtime=8 + provides = java-runtime-headless=8 + provides = java-web-start=8 + provides = java-environment=8 + provides = java-runtime-jre=8 + provides = java-runtime-headless-jre=8 + provides = java-web-start-jre=8 + provides = java-environment-jdk=8 + provides = java-openjfx=8 + options = !strip + backup = etc/java-jdk8/arm/jvm.cfg + backup = etc/java-jdk8/images/cursors/cursors.properties + backup = etc/java-jdk8/management/jmxremote.access + backup = etc/java-jdk8/management/management.properties + backup = etc/java-jdk8/security/java.policy + backup = etc/java-jdk8/security/java.security + backup = etc/java-jdk8/content-types.properties + backup = etc/java-jdk8/flavormap.properties + backup = etc/java-jdk8/fontconfig.properties.src + backup = etc/java-jdk8/logging.properties + backup = etc/java-jdk8/net.properties + backup = etc/java-jdk8/psfont.properties.ja + backup = etc/java-jdk8/psfontj2d.properties + backup = etc/java-jdk8/sound.properties + source = http://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-arm32-vfp-hflt.tar.gz + source = http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip + md5sums = 7f421e5766094b7068042bcf9c603e96 + md5sums = b3c7031bc65c28c2340302065e7d00d3 + +pkgname = jdk8-arm + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..58fdd6549682 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +pkg/ +src/ + +*.zip +*.tar.gz +*.tar.xz diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..fadd73275871 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,121 @@ +# Maintainer: Franck Lucien Duriez <franck.lucien.duriez@gmail.com> +# Maintainer: Det <nimetonmaili g-mail> + +_pkgname=jdk +pkgname=jdk8-arm +_major=8 +_minor=201 +_build=b09 +_hash=42970487e3af4f5aa5bca3f542482c60 +pkgver=${_major}u${_minor} +pkgrel=1 +pkgdesc="Oracle Java $_major Development Kit for ARM32" +_arch=arm32-vfp-hflt +arch=('armv7h') +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') +provides=("java-runtime=$_major" "java-runtime-headless=$_major" "java-web-start=$_major" "java-environment=$_major" + "java-runtime-jre=$_major" "java-runtime-headless-jre=$_major" "java-web-start-jre=$_major" "java-environment-jdk=$_major" + "java-openjfx=$_major") + +# Variables +DLAGENTS=('http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -b oraclelicense=a -o %o %u') +_jname=${_pkgname}${_major} +_jvmdir=/usr/lib/jvm/java-$_major-$_pkgname + +backup=("etc/java-$_jname/arm/jvm.cfg" + "etc/java-$_jname/images/cursors/cursors.properties" + "etc/java-$_jname/management/jmxremote.access" + "etc/java-$_jname/management/management.properties" + "etc/java-$_jname/security/java.policy" + "etc/java-$_jname/security/java.security" + "etc/java-$_jname/content-types.properties" + "etc/java-$_jname/flavormap.properties" + "etc/java-$_jname/fontconfig.properties.src" + "etc/java-$_jname/logging.properties" + "etc/java-$_jname/net.properties" + "etc/java-$_jname/psfont.properties.ja" + "etc/java-$_jname/psfontj2d.properties" + "etc/java-$_jname/sound.properties") +options=('!strip') # JDK debug-symbols +install=$pkgname.install + +source=("http://download.oracle.com/otn-pub/java/jdk/$pkgver-$_build/$_hash/$_pkgname-$pkgver-linux-$_arch.tar.gz" + "http://download.oracle.com/otn-pub/java/jce/$_major/jce_policy-$_major.zip") +md5sums=('7f421e5766094b7068042bcf9c603e96' + 'b3c7031bc65c28c2340302065e7d00d3') + +package() { + cd "${_pkgname}1.${_major}.0_${_minor}" + + msg2 "Creating directory structure..." + install -d "$pkgdir/etc/.java/.systemPrefs" + install -d "$pkgdir/usr/lib/jvm/java-$_major-$_pkgname/bin" + install -d "$pkgdir/usr/lib/mozilla/plugins" + install -d "$pkgdir/usr/share/licenses/java$_major-$_pkgname" + + msg2 "Removing redundancies..." + rm jre/lib/fontconfig.*.bfc + rm jre/lib/fontconfig.*.properties.src + rm jre/*.txt + + msg2 "Moving contents..." + mv * "$pkgdir/$_jvmdir" + + # Cd to the new playground + cd "$pkgdir/$_jvmdir" + + msg2 "Fixing directory structure..." + # Replace duplicate binaries in bin/ with links to jre/bin/ + for i in $(ls jre/bin/); do + ln -sf "$_jvmdir/jre/bin/$i" "bin/$i" + done + + # Move confs to /etc and link back to /usr: /usr/lib/jvm/java-$_jname/jre/lib -> /etc + for new_etc_path in ${backup[@]}; do + # Old location + old_usr_path="jre/lib/${new_etc_path#*$_jname/}" + + # Move + install -Dm644 "$old_usr_path" "$pkgdir/$new_etc_path" + ln -sf "/$new_etc_path" "$old_usr_path" + done + + # Replace JKS keystore with 'ca-certificates-java' + ln -sf '/etc/ssl/certs/java/cacerts' 'jre/lib/security/cacerts' + + # Suffix man pages + for i in $(find 'man' -type f); do + mv "$i" "${i/.1}-$_jname.1" + done + + # Move man pages + mv 'man/' "$pkgdir/usr/share" + + # Move/link licenses + mv 'COPYRIGHT' 'LICENSE' *.txt "$pkgdir/usr/share/licenses/java$_major-$_pkgname/" + ln -sf "/usr/share/licenses/java$_major-$_pkgname/" "$pkgdir/usr/share/licenses/$pkgname" + + msg2 "Installing Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files..." + # 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$_major/"*.jar "jre/lib/security/" + install -Dm644 "$srcdir/UnlimitedJCEPolicyJDK$_major/README.txt" \ + "$pkgdir/usr/share/doc/$_pkgname/README_-_Java_JCE_Unlimited_Strength.txt" + + msg2 "Enabling copy+paste in unsigned applets..." + # 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 + _line=$(awk '/permission/{a=NR}; END{print a}' "$pkgdir/etc/java-$_jname/security/java.policy") + sed "$_line a\\\\n \ + // (AUR) Allow unsigned applets to read system clipboard, see:\n \ + // - https://blogs.oracle.com/kyle/entry/copy_and_paste_in_java\n \ + // - http://slightlyrandombrokenthoughts.blogspot.com/2011/03/oracle-java-applet-clipboard-injection.html\n \ + permission java.awt.AWTPermission \"accessClipboard\";" \ + -i "$pkgdir/etc/java-$_jname/security/java.policy" +} diff --git a/jdk8-arm.install b/jdk8-arm.install new file mode 100644 index 000000000000..32146f374818 --- /dev/null +++ b/jdk8-arm.install @@ -0,0 +1,61 @@ +THIS_JAVA='java-8-jdk' +NAME='JDK 8' + +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 +} |