From 228fc3b3d96fbdaedd8271e4a1441d96cf7d5792 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Mon, 8 Sep 2014 01:43:22 -0300 Subject: {j{re,dk}{7,8}-openjdk,jre{7,8}-openjdk-headless}: add new packages to [libre] for branding reasons --- libre/java7-openjdk/PKGBUILD | 294 +++++++++++++++++++++ libre/java7-openjdk/fontconfig-paths.diff | 134 ++++++++++ libre/java7-openjdk/giflib_5.1.diff | 14 + libre/java7-openjdk/jdk7-openjdk.install | 38 +++ libre/java7-openjdk/jdk7-openjdk.profile | 1 + libre/java7-openjdk/jdk7-openjdk.profile.csh | 1 + libre/java7-openjdk/jre7-openjdk-headless.install | 41 +++ libre/java7-openjdk/jre7-openjdk.install | 45 ++++ libre/java7-openjdk/jre7-openjdk.profile | 4 + libre/java7-openjdk/jre7-openjdk.profile.csh | 4 + .../java7-openjdk/openjdk7_nonreparenting-wm.diff | 58 ++++ .../001_adjust-mflags-for-gmake-4.patch | 46 ++++ libre/java8-openjdk/002_gcc.make-4.9.patch | 12 + libre/java8-openjdk/PKGBUILD | 278 +++++++++++++++++++ libre/java8-openjdk/install_jdk8-openjdk.sh | 38 +++ .../java8-openjdk/install_jre8-openjdk-headless.sh | 39 +++ libre/java8-openjdk/install_jre8-openjdk.sh | 45 ++++ 17 files changed, 1092 insertions(+) create mode 100644 libre/java7-openjdk/PKGBUILD create mode 100644 libre/java7-openjdk/fontconfig-paths.diff create mode 100644 libre/java7-openjdk/giflib_5.1.diff create mode 100644 libre/java7-openjdk/jdk7-openjdk.install create mode 100644 libre/java7-openjdk/jdk7-openjdk.profile create mode 100644 libre/java7-openjdk/jdk7-openjdk.profile.csh create mode 100644 libre/java7-openjdk/jre7-openjdk-headless.install create mode 100644 libre/java7-openjdk/jre7-openjdk.install create mode 100644 libre/java7-openjdk/jre7-openjdk.profile create mode 100644 libre/java7-openjdk/jre7-openjdk.profile.csh create mode 100644 libre/java7-openjdk/openjdk7_nonreparenting-wm.diff create mode 100644 libre/java8-openjdk/001_adjust-mflags-for-gmake-4.patch create mode 100644 libre/java8-openjdk/002_gcc.make-4.9.patch create mode 100644 libre/java8-openjdk/PKGBUILD create mode 100644 libre/java8-openjdk/install_jdk8-openjdk.sh create mode 100644 libre/java8-openjdk/install_jre8-openjdk-headless.sh create mode 100644 libre/java8-openjdk/install_jre8-openjdk.sh (limited to 'libre') diff --git a/libre/java7-openjdk/PKGBUILD b/libre/java7-openjdk/PKGBUILD new file mode 100644 index 000000000..62dc1932b --- /dev/null +++ b/libre/java7-openjdk/PKGBUILD @@ -0,0 +1,294 @@ +# $Id: PKGBUILD 220813 2014-08-30 09:05:41Z guillaume $ +# Maintainer (Arch): Andreas Radke +# Maintainer (Arch): Guillaume ALAUX +# Contributor (Arch): Jan de Groot +# Maintainer: André Silva + +pkgname=('jre7-openjdk-headless' 'jre7-openjdk' 'jdk7-openjdk') +pkgbase=java7-openjdk +_java_ver=7 +_icedtea_ver=2.5.2 + +# check "${srcdir}/icedtea-${_icedtea_ver}"/Makefile.am +_JDK_UPDATE_VERSION=65 + +_bootstrap=0 # 0/1 for quick build or full bootstrap + +pkgver=${_java_ver}.u${_JDK_UPDATE_VERSION}_${_icedtea_ver} +pkgrel=1.parabola1 +arch=('i686' 'x86_64') +url='http://icedtea.classpath.org' +license=('custom') +options=('!emptydirs') +makedepends=('jdk7-openjdk' 'libxp' 'libxslt' + 'alsa-lib' 'apache-ant>=1.8.1' 'giflib' 'libpng>=1.5.7' 'gtk2' + 'java-rhino' 'libpulse>=0.9.11' 'zip' 'unzip' 'cpio' 'fastjar' 'wget' + 'eclipse-ecj') + +_icedtea_url=http://icedtea.classpath.org/download +_drops_url=${_icedtea_url}/drops/icedtea7/${_icedtea_ver} +source=(${_icedtea_url}/source/icedtea-${_icedtea_ver}.tar.gz + icedtea_${_icedtea_ver}_openjdk.tar.bz2::${_drops_url}/openjdk.tar.bz2 + icedtea_${_icedtea_ver}_corba.tar.bz2::${_drops_url}/corba.tar.bz2 + icedtea_${_icedtea_ver}_jaxp.tar.bz2::${_drops_url}/jaxp.tar.bz2 + icedtea_${_icedtea_ver}_jaxws.tar.bz2::${_drops_url}/jaxws.tar.bz2 + icedtea_${_icedtea_ver}_jdk.tar.bz2::${_drops_url}/jdk.tar.bz2 + icedtea_${_icedtea_ver}_langtools.tar.bz2::${_drops_url}/langtools.tar.bz2 + icedtea_${_icedtea_ver}_hotspot.tar.bz2::${_drops_url}/hotspot.tar.bz2 + fontconfig-paths.diff + openjdk7_nonreparenting-wm.diff + giflib_5.1.diff) + +sha256sums=('6e36b5922d6a30b28a3387c60cf698461f12ae6471c9deab9c30763cb3505988' + 'a0f1e39980d4774fec4d6d1096a7c6c5858920536977dec294ec14c5c93d4fb9' + 'f6afe3f5dbec8723d650ac4ecbaf6aa41cd90759eb6503f0397248098a9e1c77' + 'abd68afe382a92b51a45547bd272c12569cf0d166a1f2f00cc3a9ef0fa988a4b' + '069def5538e1e52ed831f9657a9b9ea8e9401788390b54290f2fd7c1bd0b6ccc' + '992a726be72bce1ad9a275b1fc1782c0beb0f80c50de35a989258a56fdfd2ffd' + '5f04fffdcbb4a76cd57c8319c676537c9481625e0c686e172a152deeb7871811' + 'b8c1f0e6560a3300d145784c1a73e02ddecbad38b8ce9511a930b1e7599c8c51' + '9ad943ceb3dbcdf45d72974fc3667886a7ed65c69ab9abc17be5412827551a7f' + '56b919ababb13bd6afdcdaceb112b529b6e82539255f2dae9a7e5eb91645164b' + '77fba3032edf6cce549cd4e174d9296684b20f4589dc59179fcc8cba7426a4e9') + +noextract=(icedtea_${_icedtea_ver}_openjdk.tar.bz2 + icedtea_${_icedtea_ver}_corba.tar.bz2 + icedtea_${_icedtea_ver}_jaxp.tar.bz2 + icedtea_${_icedtea_ver}_jaxws.tar.bz2 + icedtea_${_icedtea_ver}_jdk.tar.bz2 + icedtea_${_icedtea_ver}_langtools.tar.bz2 + icedtea_${_icedtea_ver}_hotspot.tar.bz2) + +[ "$CARCH" = "x86_64" ] && _JARCH=amd64 +[ "$CARCH" = "i686" ] && _JARCH=i386 + +_jvmdir=/usr/lib/jvm/java-7-openjdk +_imgdir="icedtea-${_icedtea_ver}/openjdk.build/j2sdk-image" +_nonheadless=(bin/policytool + lib/${_JARCH}/libjsoundalsa.so + lib/${_JARCH}/libsplashscreen.so + lib/${_JARCH}/xawt/libmawt.so) + +build() { + cd "${srcdir}/icedtea-${_icedtea_ver}" + + export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}" + export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}" + + . /etc/profile.d/apache-ant.sh + + cp "${srcdir}"/*.diff "${srcdir}"/icedtea-${_icedtea_ver}/patches + export DISTRIBUTION_PATCHES="patches/fontconfig-paths.diff \ + patches/openjdk7_nonreparenting-wm.diff \ + patches/giflib_5.1.diff" + + if [ "$_bootstrap" = "1" ]; then + BOOTSTRAPOPT="--enable-bootstrap --with-ecj-jar=/usr/share/java/ecj.jar" + else + BOOTSTRAPOPT="--disable-bootstrap" + fi + + ./configure \ + ${BOOTSTRAPOPT} \ + --with-parallel-jobs="${MAKEFLAGS/-j}" \ + --disable-tests \ + --disable-downloading --disable-Werror \ + --with-pkgversion="Parabola GNU\/Linux-libre build ${pkgver}-${pkgrel}-${CARCH}" \ + --with-jdk-home=${JAVA_HOME} \ + --with-openjdk-src-zip="${srcdir}/icedtea_${_icedtea_ver}_openjdk.tar.bz2" \ + --with-hotspot-src-zip="${srcdir}/icedtea_${_icedtea_ver}_hotspot.tar.bz2" \ + --with-corba-src-zip="${srcdir}/icedtea_${_icedtea_ver}_corba.tar.bz2" \ + --with-jaxp-src-zip="${srcdir}/icedtea_${_icedtea_ver}_jaxp.tar.bz2" \ + --with-jaxws-src-zip="${srcdir}/icedtea_${_icedtea_ver}_jaxws.tar.bz2" \ + --with-jdk-src-zip="${srcdir}/icedtea_${_icedtea_ver}_jdk.tar.bz2" \ + --with-langtools-src-zip="${srcdir}/icedtea_${_icedtea_ver}_langtools.tar.bz2" \ + --enable-nss \ + --with-rhino \ + --with-abs-install-dir=${_jvmdir} \ + --enable-infinality=no + # TODO latest version of openjdk will disable infinality by default + make +} + +check() { + cd "${srcdir}/icedtea-${_icedtea_ver}" + make -k check +} + +package_jre7-openjdk-headless() { + pkgdesc='OpenJDK Java 7 headless runtime environment (Parabola rebranded)' + depends=('java-common' 'libjpeg-turbo' 'lcms2' 'nss' 'ca-certificates-java') + optdepends=('libcups: needed for Java Mauve support - libmawt.so' + 'fontconfig: needed for Java Mauve support - libmawt.so' + 'java-rhino: for some JavaScript support') + provides=('java-runtime-headless=7' 'java-runtime-headless-openjdk=7') + conflicts=('openjdk6') + # TODO remove after some time + replaces=('jre7-openjdk-headless-wm') + # Upstream config files that should go to etc and get backup + _backup_etc=(etc/java-7-openjdk/${_JARCH}/jvm.cfg + etc/java-7-openjdk/calendars.properties + etc/java-7-openjdk/content-types.properties + etc/java-7-openjdk/flavormap.properties + etc/java-7-openjdk/fontconfig.bfc + etc/java-7-openjdk/fontconfig.properties + etc/java-7-openjdk/images/cursors/cursors.properties + etc/java-7-openjdk/logging.properties + etc/java-7-openjdk/management/jmxremote.access + etc/java-7-openjdk/management/jmxremote.password + etc/java-7-openjdk/management/management.properties + etc/java-7-openjdk/management/snmp.acl + etc/java-7-openjdk/net.properties + etc/java-7-openjdk/psfont.properties.ja + etc/java-7-openjdk/psfontj2d.properties + etc/java-7-openjdk/security/java.policy + etc/java-7-openjdk/security/java.security + etc/java-7-openjdk/security/nss.cfg + etc/java-7-openjdk/sound.properties + etc/java-7-openjdk/tz.properties) + backup=(${_backup_etc[@]}) + install=jre7-openjdk-headless.install + + cd "${srcdir}/${_imgdir}/jre" + + install -d -m755 "${pkgdir}${_jvmdir}/jre" + cp -a bin lib "${pkgdir}${_jvmdir}/jre" + + # Set config files + mv "${pkgdir}${_jvmdir}"/jre/lib/fontconfig.{Ubuntu.properties.src,properties} + mv "${pkgdir}${_jvmdir}"/jre/lib/fontconfig.{Ubuntu.bfc,bfc} + mv "${pkgdir}${_jvmdir}"/jre/lib/management/jmxremote.password{.template,} + mv "${pkgdir}${_jvmdir}"/jre/lib/management/snmp.acl{.template,} + rm -f "${pkgdir}${_jvmdir}"/jre/lib/fontconfig.*.bfc + rm -f "${pkgdir}${_jvmdir}"/jre/lib/fontconfig.*.properties.src + rm -f "${pkgdir}${_jvmdir}"/jre/lib/fontconfig.properties.src + + # Remove 'non-headless' files + for f in ${_nonheadless[@]}; do + rm "${pkgdir}${_jvmdir}/jre/${f}" + done + + # Man pages + pushd "${pkgdir}${_jvmdir}/jre/bin" + install -d -m 755 "${pkgdir}"/usr/share/man/{,ja/}man1/ + for file in *; do + install -m 644 "${srcdir}/${_imgdir}/man/man1/${file}.1" \ + "${pkgdir}/usr/share/man/man1/${file}.1" + install -m 644 "${srcdir}/${_imgdir}/man/ja/man1/${file}.1" \ + "${pkgdir}/usr/share/man/ja/man1/${file}.1" + done + popd + + # Link JKS keystore from ca-certificates-java + rm -f "${pkgdir}${_jvmdir}/jre/lib/security/cacerts" + ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}${_jvmdir}/jre/lib/security/cacerts" + + # Install license + install -d -m755 "${pkgdir}/usr/share/licenses/${pkgbase}/" + install -m644 ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README \ + "${pkgdir}/usr/share/licenses/${pkgbase}" + ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + + # Move config files that were set in _backup_etc from ./lib to /etc + for file in ${_backup_etc[@]}; do + _filepkgpath=${_jvmdir}/jre/lib/${file#etc/java-7-openjdk/} + install -D -m 644 "${pkgdir}${_filepkgpath}" "${pkgdir}/${file}" + ln -sf /${file} "${pkgdir}${_filepkgpath}" + done +} + +package_jre7-openjdk() { + pkgdesc='OpenJDK Java 7 full runtime environment (Parabola rebranded)' + depends=("jre7-openjdk-headless=${pkgver}-${pkgrel}" 'xdg-utils' 'hicolor-icon-theme') + optdepends=('icedtea-web-java7: web browser plugin + Java Web Start' + 'alsa-lib: for basic sound support' + 'giflib: for gif format support' + 'libpulse: for advanced sound support' + 'gtk2: for the Gtk+ look and feel - desktop usage' + 'libxtst: linked in xawt/libmawt.so - desktop usage') + provides=('java-runtime=7' 'java-runtime-openjdk=7') + conflicts=('openjdk6') + # TODO remove after some time + replaces=('jre7-openjdk-wm') + install=jre7-openjdk.install + + cd "${srcdir}/${_imgdir}/jre" + + for f in ${_nonheadless[@]}; do + install -D ${f} "${pkgdir}${_jvmdir}/jre/${f}" + done + + # Man pages + pushd "${pkgdir}${_jvmdir}/jre/bin" + install -d -m 755 "${pkgdir}"/usr/share/man/{,ja/}man1/ + for file in *; do + install -m 644 "${srcdir}/${_imgdir}/man/man1/${file}.1" \ + "${pkgdir}/usr/share/man/man1/${file}.1" + install -m 644 "${srcdir}/${_imgdir}/man/ja/man1/${file}.1" \ + "${pkgdir}/usr/share/man/ja/man1/${file}.1" + done + popd + + for s in 16 24 32 48; do + install -D -m 644 \ + "${srcdir}/icedtea-${_icedtea_ver}/openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/java.png" + done + + # Install desktop files. + install -d -m755 "${pkgdir}/usr/share/applications" + install -m644 "${srcdir}/icedtea-${_icedtea_ver}/policytool.desktop" "${pkgdir}/usr/share/applications" + + # link license + install -d -m755 "${pkgdir}/usr/share/licenses" + ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_jdk7-openjdk() { + pkgdesc='OpenJDK Java 7 development kit (Parabola rebranded)' + depends=("jre7-openjdk=${pkgver}-${pkgrel}") + provides=('java-environment=7' 'java-environment-openjdk=7') + replaces=('openjdk6' 'jdk7-openjdk-wm') + install=jdk7-openjdk.install + + cd "${srcdir}/${_imgdir}" + + # Main files + install -d -m755 "${pkgdir}${_jvmdir}" + + cp -a include lib "${pkgdir}${_jvmdir}" + + # 'bin' files + pushd bin + install -d -m755 "${pkgdir}${_jvmdir}/bin/" \ + "${pkgdir}"/usr/share/man/{,ja/}man1/ + + # 'java-rmi.cgi' will be handled separately as it should not be in the PATH and has no man page + for b in $(ls | grep -v java-rmi.cgi); do + if [ -e ../jre/bin/${b} ]; then + # Provide a link of the jre binary in the jdk/bin/ directory + ln -s ../jre/bin/${b} "${pkgdir}${_jvmdir}/bin/${b}" + else + # Copy binary to jdk/bin/ + install -m755 ${b} "${pkgdir}${_jvmdir}/bin/${b}" + # Copy man page + install -m644 ../man/man1/${b}.1 "${pkgdir}/usr/share/man/man1/${b}.1" + install -m644 ../man/ja/man1/${b}.1 "${pkgdir}/usr/share/man/ja/man1/${b}.1" + fi + done + popd + + # Handling 'java-rmi.cgi' separately + install -D -m755 bin/java-rmi.cgi "${pkgdir}${_jvmdir}/bin/java-rmi.cgi" + + # Install desktop files. + install -d -m755 "${pkgdir}/usr/share/applications" + install -m644 "${srcdir}/icedtea-${_icedtea_ver}/jconsole.desktop" "${pkgdir}/usr/share/applications" + + # Temporarily fixing FS#35141 + chmod go+r "${pkgdir}${_jvmdir}/lib/sa-jdi.jar" + + # link license + install -d -m755 "${pkgdir}/usr/share/licenses" + ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} diff --git a/libre/java7-openjdk/fontconfig-paths.diff b/libre/java7-openjdk/fontconfig-paths.diff new file mode 100644 index 000000000..fa08db629 --- /dev/null +++ b/libre/java7-openjdk/fontconfig-paths.diff @@ -0,0 +1,134 @@ +--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties 2009-05-29 22:45:23.024341869 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.new 2009-05-29 22:55:13.681366890 +0000 +@@ -275,73 +275,61 @@ + + # Font File Names + +-filename.DejaVu_Sans=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf +-filename.DejaVu_Sans_Bold=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf +-filename.DejaVu_Sans_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf +-filename.DejaVu_Sans_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf +- +-filename.DejaVu_Sans_Mono=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf +-filename.DejaVu_Sans_Mono_Bold=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf +-filename.DejaVu_Sans_Mono_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Oblique.ttf +-filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-BoldOblique.ttf +- +-filename.DejaVu_Serif=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf +-filename.DejaVu_Serif_Bold=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf +-filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf +-filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf +- +-filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc +-filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc +-filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc +-filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf +- +-filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf +-filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf +-filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf +-filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf +-filename.Baekmuk_Gulim=/usr/share/fonts/truetype/baekmuk/gulim.ttf +-filename.UnDotum=/usr/share/fonts/truetype/unfonts/UnDotum.ttf +-filename.UnDotum_Bold=/usr/share/fonts/truetype/unfonts/UnDotumBold.ttf +-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf +-filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf +-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf +-filename.Sazanami_Mincho=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf +-filename.VL_Gothic=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf +-filename.VL_PGothic=/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf +- +-filename.Lohit_Bengali=/usr/share/fonts/truetype/ttf-bengali-fonts/lohit_bn.ttf +-filename.Lohit_Gujarati=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf +-filename.Lohit_Hindi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_hi.ttf +-filename.Lohit_Kannda=/usr/share/fonts/truetype/ttf-kannada-fonts/lohit_kn.ttf +-#filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf +-filename.Lohit_Oriya=/usr/share/fonts/truetype/ttf-oriya-fonts/lohit_or.ttf +-filename.Lohit_Punjabi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_pa.ttf +-filename.Lohit_Tamil=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_ta.ttf +-filename.Lohit_Telugu=/usr/share/fonts/truetype/ttf-telugu-fonts/lohit_te.ttf +-filename.LKLUG=/usr/share/fonts/truetype/ttf-sinhala-lklug/lklug.ttf +- +-filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf +-filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf +-filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf +-filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf +-filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf +-filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf +-filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf +-filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf +-filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf +-filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf +-filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf +-filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf +- +-# AWT X11 font paths +-awtfontpath.latin-1=/usr/share/fonts/X11/Type1 +-awtfontpath.umingcn=/usr/share/fonts/truetype/arphic +-awtfontpath.uminghk=/usr/share/fonts/truetype/arphic +-awtfontpath.umingtw=/usr/share/fonts/truetype/arphic +-awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic +-awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy +-awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi +-awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami +-awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic +-awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk +-awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts ++filename.DejaVu_Sans=/usr/share/fonts/TTF/DejaVuSans.ttf ++filename.DejaVu_Sans_Bold=/usr/share/fonts/TTF/DejaVuSans-Bold.ttf ++filename.DejaVu_Sans_Oblique=/usr/share/fonts/TTF/DejaVuSans-Oblique.ttf ++filename.DejaVu_Sans_Bold_Oblique=/usr/share/fonts/TTF/DejaVuSans-BoldOblique.ttf ++ ++filename.DejaVu_Sans_Mono=/usr/share/fonts/TTF/DejaVuSansMono.ttf ++filename.DejaVu_Sans_Mono_Bold=/usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf ++filename.DejaVu_Sans_Mono_Oblique=/usr/share/fonts/TTF/DejaVuSansMono-Oblique.ttf ++filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/share/fonts/TTF/DejaVuSansMono-BoldOblique.ttf ++ ++filename.DejaVu_Serif=/usr/share/fonts/TTF/DejaVuSerif.ttf ++filename.DejaVu_Serif_Bold=/usr/share/fonts/TTF/DejaVuSerif-Bold.ttf ++filename.DejaVu_Serif_Oblique=/usr/share/fonts/TTF/DejaVuSerif-Oblique.ttf ++filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/TTF/DejaVuSerif-BoldOblique.ttf ++ ++filename.AR_PL_UMing_CN=/usr/share/fonts/TTF/uming.ttc ++filename.AR_PL_UMing_HK=/usr/share/fonts/TTF/uming.ttc ++filename.AR_PL_UMing_TW=/usr/share/fonts/TTF/uming.ttc ++filename.AR_PL_ShanHeiSun_Uni=/usr/share/TTF/uming.ttf ++ ++filename.WenQuanYi_Zen_Hei=/usr/share/fonts/TTF/wqy-zenhei.ttf ++filename.Baekmuk_Batang=/usr/share/fonts/TTF/batang.ttf ++filename.UnBatang=/usr/share/fonts/TTF/UnBatang.ttf ++filename.UnBatang_Bold=/usr/share/fonts/TTF/UnBatangBold.ttf ++filename.Baekmuk_Gulim=/usr/share/fonts/TTF/gulim.ttf ++filename.UnDotum=/usr/share/fonts/TTF/UnDotum.ttf ++filename.UnDotum_Bold=/usr/share/fonts/TTF/UnDotumBold.ttf ++filename.Kochi_Gothic=/usr/share/fonts/TTF/kochi-gothic.ttf ++filename.Sazanami_Gothic=/usr/share/fonts/TTF/sazanami-gothic.ttf ++filename.Kochi_Mincho=/usr/share/fonts/TTF/kochi-mincho.ttf ++filename.Sazanami_Mincho=/usr/share/fonts/TTF/sazanami-mincho.ttf ++filename.VL_Gothic=/usr/share/fonts/TTF/VL-Gothic-Regular.ttf ++filename.VL_PGothic=/usr/share/fonts/TTF/VL-PGothic-Regular.ttf ++ ++filename.Lohit_Bengali=/usr/share/fonts/TTF/lohit_bn.ttf ++filename.Lohit_Gujarati=/usr/share/fonts/TTF/lohit_gu.ttf ++filename.Lohit_Hindi=/usr/share/fonts/TTF/lohit_hi.ttf ++filename.Lohit_Kannda=/usr/share/fonts/TTF/lohit_kn.ttf ++#filename.Lohit_Malayalam=/usr/share/fonts/TTF/lohit_ml.ttf ++filename.Lohit_Oriya=/usr/share/fonts/TTF/lohit_or.ttf ++filename.Lohit_Punjabi=/usr/share/fonts/TTF/lohit_pa.ttf ++filename.Lohit_Tamil=/usr/share/fonts/TTF/lohit_ta.ttf ++filename.Lohit_Telugu=/usr/share/fonts/TTF/lohit_te.ttf ++filename.LKLUG=/usr/share/fonts/TTF/lklug.ttf ++ ++filename.LuxiSans-Regular=/usr/share/fonts/TTF/luxisr.ttf ++filename.LuxiSans-Bold=/usr/share/fonts/TTF/luxisb.ttf ++filename.LuxiSans-Oblique=/usr/share/fonts/TTF/luxisri.ttf ++filename.LuxiSans-BoldOblique=/usr/share/fonts/TTF/luxisbi.ttf ++filename.LuxiMono-Regular=/usr/share/fonts/TTF/luximr.ttf ++filename.LuxiMono-Bold=/usr/share/fonts/TTF/luximb.ttf ++filename.LuxiMono-Oblique=/usr/share/fonts/TTF/luximri.ttf ++filename.LuxiMono-BoldOblique=/usr/share/fonts/TTF/luximbi.ttf ++filename.LuxiSerif-Regular=/usr/share/fonts/TTF/luxirr.ttf ++filename.LuxiSerif-Bold=/usr/share/fonts/TTF/luxirb.ttf ++filename.LuxiSerif-Oblique=/usr/share/fonts/TTF/luxirri.ttf ++filename.LuxiSerif-BoldOblique=/usr/share/fonts/TTF/luxirbi.ttf ++ diff --git a/libre/java7-openjdk/giflib_5.1.diff b/libre/java7-openjdk/giflib_5.1.diff new file mode 100644 index 000000000..a9361573c --- /dev/null +++ b/libre/java7-openjdk/giflib_5.1.diff @@ -0,0 +1,14 @@ +--- openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c.orig 2014-05-27 22:17:19.766866065 +0200 ++++ openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c 2014-05-27 22:16:35.452894426 +0200 +@@ -310,7 +310,11 @@ + free(pBitmapBits); + free(pOldBitmapBits); + ++#if GIFLIB_MAJOR >= 5 ++ DGifCloseFile(gif, NULL); ++#else + DGifCloseFile(gif); ++#endif + + return 1; + } diff --git a/libre/java7-openjdk/jdk7-openjdk.install b/libre/java7-openjdk/jdk7-openjdk.install new file mode 100644 index 000000000..8a985b606 --- /dev/null +++ b/libre/java7-openjdk/jdk7-openjdk.install @@ -0,0 +1,38 @@ +this_java='java-7-openjdk' + +post_install() { + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + else + echo "Default Java environment is already set to '${default}'" + echo "To set '${this_java}' as default, consider using:" + echo " parabola-java set '${this_java}'" + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore + fi +} + +post_upgrade() { + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore + fi +} + +pre_remove() { + default=$(/usr/bin/parabola-java get) + if [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java set ${this_java}/jre + fi +} diff --git a/libre/java7-openjdk/jdk7-openjdk.profile b/libre/java7-openjdk/jdk7-openjdk.profile new file mode 100644 index 000000000..89a6a82a0 --- /dev/null +++ b/libre/java7-openjdk/jdk7-openjdk.profile @@ -0,0 +1 @@ +export JAVA_HOME=/usr/lib/jvm/java-7-openjdk diff --git a/libre/java7-openjdk/jdk7-openjdk.profile.csh b/libre/java7-openjdk/jdk7-openjdk.profile.csh new file mode 100644 index 000000000..cc7dc8ab1 --- /dev/null +++ b/libre/java7-openjdk/jdk7-openjdk.profile.csh @@ -0,0 +1 @@ +setenv J2SDKDIR "/usr/lib/jvm/java-7-openjdk" diff --git a/libre/java7-openjdk/jre7-openjdk-headless.install b/libre/java7-openjdk/jre7-openjdk-headless.install new file mode 100644 index 000000000..48b79e8b0 --- /dev/null +++ b/libre/java7-openjdk/jre7-openjdk-headless.install @@ -0,0 +1,41 @@ +this_java='java-7-openjdk/jre' + +post_install() { + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + else + echo "Default Java environment is already set to '${default}'" + echo "To set '${this_java}' as default, consider using:" + echo " parabola-java set '${this_java}'" + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + # Overwrite JAVA_HOME because if it still points at java-7-openjdk AND user just removed jdk, + # Then /usr/bin/java will in the end, refer to /usr/lib/jvm/java-7-openjdk/java which doesn't exist + JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore + fi +} + +post_upgrade() { + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore + fi +} + +pre_remove() { + default=$(/usr/bin/parabola-java get) + if [ "x${default/\/jre}" = "x${this_java/\/jre}" ]; then + /usr/bin/parabola-java unset + echo 'No Java environment is set anymore' + fi +} diff --git a/libre/java7-openjdk/jre7-openjdk.install b/libre/java7-openjdk/jre7-openjdk.install new file mode 100644 index 000000000..dd1458385 --- /dev/null +++ b/libre/java7-openjdk/jre7-openjdk.install @@ -0,0 +1,45 @@ +this_java='java-7-openjdk/jre' + +post_install() { + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + echo "when you use a non-reparenting window manager" + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in" + echo "/etc/profile.d/jre.sh" + +# update-desktop-database -q + + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + else + echo "Default Java environment is already set to '${default}'" + echo "To set '${this_java}' as default, consider using:" + echo " parabola-java set '${this_java}'" + fi +} + +post_upgrade() { + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + +# update-desktop-database -q + + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + fi +} + +post_remove() { + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + +# update-desktop-database -q + + default=$(/usr/bin/parabola-java get) + if [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + fi +} diff --git a/libre/java7-openjdk/jre7-openjdk.profile b/libre/java7-openjdk/jre7-openjdk.profile new file mode 100644 index 000000000..b267392e5 --- /dev/null +++ b/libre/java7-openjdk/jre7-openjdk.profile @@ -0,0 +1,4 @@ +export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-7-openjdk/jre} + +# Enable this for non-reparenting window managers +#export _JAVA_AWT_WM_NONREPARENTING=1 diff --git a/libre/java7-openjdk/jre7-openjdk.profile.csh b/libre/java7-openjdk/jre7-openjdk.profile.csh new file mode 100644 index 000000000..c4009af2e --- /dev/null +++ b/libre/java7-openjdk/jre7-openjdk.profile.csh @@ -0,0 +1,4 @@ +setenv JAVA_HOME "/usr/lib/jvm/java-7-openjdk/jre" + +# Enable this for non-reparenting window managers +#setenv _JAVA_AWT_WM_NONREPARENTING 1 diff --git a/libre/java7-openjdk/openjdk7_nonreparenting-wm.diff b/libre/java7-openjdk/openjdk7_nonreparenting-wm.diff new file mode 100644 index 000000000..fb4710c13 --- /dev/null +++ b/libre/java7-openjdk/openjdk7_nonreparenting-wm.diff @@ -0,0 +1,58 @@ +--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java.orig 2013-10-16 16:17:14.000000000 +0200 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java 2013-10-21 20:57:34.768580842 +0200 +@@ -105,7 +105,8 @@ + LG3D_WM = 13, + CWM_WM = 14, + MUTTER_WM = 15, +- MARCO_WM = 16; ++ MARCO_WM = 16, ++ OTHER_NONREPARENTING_WM = 17; + public String toString() { + switch (WMID) { + case NO_WM: +@@ -591,7 +592,7 @@ + // TODO: according to wikipedia, compiz is now reparenting. This should + // probably be updated. + static boolean isNonReparentingWM() { +- return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.CWM_WM); ++ return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.CWM_WM || XWM.getWMID() == XWM.OTHER_NONREPARENTING_WM); + } + + /* +@@ -781,9 +782,17 @@ + * supports WIN or _NET wm spec. + */ + else if (l_net_protocol.active()) { +- awt_wmgr = XWM.OTHER_WM; ++ if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) { ++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM; ++ } else { ++ awt_wmgr = XWM.OTHER_WM; ++ } + } else if (win.active()) { +- awt_wmgr = XWM.OTHER_WM; ++ if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) { ++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM; ++ } else { ++ awt_wmgr = XWM.OTHER_WM; ++ } + } + /* + * Check for legacy WMs. +@@ -794,6 +803,8 @@ + awt_wmgr = XWM.MOTIF_WM; + } else if (isOpenLook()) { + awt_wmgr = XWM.OPENLOOK_WM; ++ } else if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) { ++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM; + } else { + awt_wmgr = XWM.OTHER_WM; + } +@@ -1309,6 +1320,7 @@ + res = new Insets(28, 6, 6, 6); + break; + case NO_WM: ++ case OTHER_NONREPARENTING_WM: + case LG3D_WM: + res = zeroInsets; + break; diff --git a/libre/java8-openjdk/001_adjust-mflags-for-gmake-4.patch b/libre/java8-openjdk/001_adjust-mflags-for-gmake-4.patch new file mode 100644 index 000000000..d998d8aee --- /dev/null +++ b/libre/java8-openjdk/001_adjust-mflags-for-gmake-4.patch @@ -0,0 +1,46 @@ + +# HG changeset patch +# User henryjen +# Date 1390363634 28800 +# Node ID e8d4d0db1f06c26defcbf68e6713afab632f3f30 +# Parent c4b78cbea876aa86112cfda16c0026796848d582 +8028407: adjust-mflags.sh failed build with GNU Make 4.0 with -I +Reviewed-by: erikj + +diff -r c4b78cbea876 -r e8d4d0db1f06 make/bsd/makefiles/adjust-mflags.sh +--- a/make/bsd/makefiles/adjust-mflags.sh Thu Dec 05 00:36:42 2013 -0800 ++++ b/make/bsd/makefiles/adjust-mflags.sh Tue Jan 21 20:07:14 2014 -0800 +@@ -64,7 +64,7 @@ + echo "$MFLAGS" \ + | sed ' + s/^-/ -/ +- s/ -\([^ ][^ ]*\)j/ -\1 -j/ ++ s/ -\([^ I][^ I]*\)j/ -\1 -j/ + s/ -j[0-9][0-9]*/ -j/ + s/ -j\([^ ]\)/ -j -\1/ + s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ +diff -r c4b78cbea876 -r e8d4d0db1f06 make/linux/makefiles/adjust-mflags.sh +--- a/make/linux/makefiles/adjust-mflags.sh Thu Dec 05 00:36:42 2013 -0800 ++++ b/make/linux/makefiles/adjust-mflags.sh Tue Jan 21 20:07:14 2014 -0800 +@@ -64,7 +64,7 @@ + echo "$MFLAGS" \ + | sed ' + s/^-/ -/ +- s/ -\([^ ][^ ]*\)j/ -\1 -j/ ++ s/ -\([^ I][^ I]*\)j/ -\1 -j/ + s/ -j[0-9][0-9]*/ -j/ + s/ -j\([^ ]\)/ -j -\1/ + s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ +diff -r c4b78cbea876 -r e8d4d0db1f06 make/solaris/makefiles/adjust-mflags.sh +--- a/make/solaris/makefiles/adjust-mflags.sh Thu Dec 05 00:36:42 2013 -0800 ++++ b/make/solaris/makefiles/adjust-mflags.sh Tue Jan 21 20:07:14 2014 -0800 +@@ -64,7 +64,7 @@ + echo "$MFLAGS" \ + | sed ' + s/^-/ -/ +- s/ -\([^ ][^ ]*\)j/ -\1 -j/ ++ s/ -\([^ I][^ I]*\)j/ -\1 -j/ + s/ -j[0-9][0-9]*/ -j/ + s/ -j\([^ ]\)/ -j -\1/ + s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ + diff --git a/libre/java8-openjdk/002_gcc.make-4.9.patch b/libre/java8-openjdk/002_gcc.make-4.9.patch new file mode 100644 index 000000000..13715a5d6 --- /dev/null +++ b/libre/java8-openjdk/002_gcc.make-4.9.patch @@ -0,0 +1,12 @@ +--- old/make/linux/makefiles/gcc.make 2014-04-23 22:07:59.838205838 +0100 ++++ new/make/linux/makefiles/gcc.make 2014-04-23 22:07:59.754204533 +0100 +@@ -266,6 +266,9 @@ + ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 3), 1) + OPT_CFLAGS/mulnode.o += $(OPT_CFLAGS/NOOPT) + endif ++ ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 9), 1) ++ OPT_CFLAGS/macroAssembler_x86.o += -fno-devirtualize ++ endif + endif + + # Flags for generating make dependency flags. diff --git a/libre/java8-openjdk/PKGBUILD b/libre/java8-openjdk/PKGBUILD new file mode 100644 index 000000000..8f9c3cffb --- /dev/null +++ b/libre/java8-openjdk/PKGBUILD @@ -0,0 +1,278 @@ +# Maintainer (Arch): Guillaume ALAUX +# Contributor (Arch): Boyan Ding +# Maintainer: André Silva + +# TODO +# once icedtea: +# pulse +# icedtea-web-java8 +# add policytool desktop files + +pkgname=('jre8-openjdk-headless' 'jre8-openjdk' 'jdk8-openjdk') +pkgbase=java8-openjdk +_java_ver=8 +_jdk_update=20 +_jdk_build=23 +pkgver=${_java_ver}.u${_jdk_update} +_repo_ver=jdk${_java_ver}u${_jdk_update}-b${_jdk_build} +pkgrel=1.parabola1 +arch=('i686' 'x86_64') +url='http://openjdk.java.net/' +license=('custom') +makedepends=('jdk7-openjdk' 'ccache' 'cpio' 'unzip' 'zip' + 'libxrender' 'libxtst' 'fontconfig' 'libcups' 'alsa-lib') +_url_src=http://hg.openjdk.java.net/jdk8u/jdk8u +source=(jdk8u-${_repo_ver}.tar.gz::${_url_src}/archive/${_repo_ver}.tar.gz + corba-${_repo_ver}.tar.gz::${_url_src}/corba/archive/${_repo_ver}.tar.gz + hotspot-${_repo_ver}.tar.gz::${_url_src}/hotspot/archive/${_repo_ver}.tar.gz + jdk-${_repo_ver}.tar.gz::${_url_src}/jdk/archive/${_repo_ver}.tar.gz + jaxws-${_repo_ver}.tar.gz::${_url_src}/jaxws/archive/${_repo_ver}.tar.gz + jaxp-${_repo_ver}.tar.gz::${_url_src}/jaxp/archive/${_repo_ver}.tar.gz + langtools-${_repo_ver}.tar.gz::${_url_src}/langtools/archive/${_repo_ver}.tar.gz + nashorn-${_repo_ver}.tar.gz::${_url_src}/nashorn/archive/${_repo_ver}.tar.gz + 001_adjust-mflags-for-gmake-4.patch + 002_gcc.make-4.9.patch) + +sha256sums=('ec0b86c0a5883f769cb951a96a0b61734aa7e3c2b62e3b448f7bf6866a36c237' + 'e979396e3d64af94664932a28eb63d3048bdf3595f180bd4bd3fad91bc8b685c' + 'ba0c359bb99b82fb2eca37ba5d2a7e775bd9f67749e41cbbf6a059677f20750a' + '7f66b915b4ad378710cf1b8e52a3615105457d6a93aaf6183b76d7d6dfa14c14' + '3d19d5b7fd7a13ed2bf860491731ca6c928ed0d44e10910f2d43340f627714f7' + '046de26b27cf7f24b77c33af249aac7fa8d14269306ed2e1f9517cce279243c3' + '05177c5ba5ec95d041d46e871358692ff1e62f8568c8c9580688b39e5165d580' + '2499b19562e320eb304be8797c2a895f1fe2ab2d16fd7da68aeaed180b3f1899' + '682104f7723c5c543c47b53f51cc5577e273a12343bd04bebd1bcd70dd72ded9' + '5b1ed72ffd14a18e36aba2129e0781696b8c9cccd060bf4dbe1c4b9a44100b69') + +case "${CARCH}" in + 'x86_64') _JARCH=amd64 ; _DOC_ARCH=x86_64 ;; + 'i686' ) _JARCH=i386 ; _DOC_ARCH=x86 ;; +esac + +_jdkname=openjdk8 +_jvmdir=/usr/lib/jvm/java-8-openjdk +_prefix="jdk8u-${_repo_ver}/image" +_imgdir="${_prefix}/jvm/openjdk-1.8.0_$(printf '%.2d' ${_jdk_update})" +_nonheadless=(bin/policytool + lib/${_JARCH}/libjsound.so + lib/${_JARCH}/libjsoundalsa.so + lib/${_JARCH}/libsplashscreen.so) + +prepare() { + cd "${srcdir}/jdk8u-${_repo_ver}" + + for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn + do + ln -s ../${subrepo}-${_repo_ver} ${subrepo} + done + + cd hotspot + # https://bugs.openjdk.java.net/browse/JDK-8028407 + patch -p1 < "${srcdir}/001_adjust-mflags-for-gmake-4.patch" + # https://bugs.openjdk.java.net/browse/JDK-8041658 + patch -p1 < "${srcdir}/002_gcc.make-4.9.patch" +} + +build() { + cd "${srcdir}/jdk8u-${_repo_ver}" + + unset JAVA_HOME + # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1346 + export MAKEFLAGS=${MAKEFLAGS/-j*} + + install -d -m 755 "${srcdir}/${_prefix}/" + sh configure \ + --prefix="${srcdir}/${_prefix}" \ + --with-update-version="${_jdk_update}" \ + --with-build-number="b${_jdk_build}" \ + --with-milestone="fcs" \ + --enable-unlimited-crypto \ + --with-zlib=system + + # TODO OpenJDK does not want last version of giflib (add 'giflib' as dependency once fixed) + #--with-giflib=system \ + + # Without 'DEBUG_BINARIES', i686 won't build + # http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-July/019203.html + make \ + DEBUG_BINARIES=true + # These help to debug builds: + #LOG=trace HOTSPOT_BUILD_JOBS=1 + + make docs + + # FIXME sadly 'DESTDIR' is not used here! + make install + + cd "${srcdir}/${_imgdir}" + + # A lot of build stuff were directly taken from + # http://pkgs.fedoraproject.org/cgit/java-1.8.0-openjdk.git/tree/java-1.8.0-openjdk.spec + + # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437 + find . -iname '*.jar' -exec chmod ugo+r {} \; + chmod ugo+r lib/ct.sym + + # remove redundant *diz and *debuginfo files + find . -iname '*.diz' -exec rm {} \; + find . -iname '*.debuginfo' -exec rm {} \; +} + +#check() { +# cd "${srcdir}/${pkgname}-${pkgver}" +# make -k check +#} + +package_jre8-openjdk-headless() { + pkgdesc='OpenJDK Java 8 headless runtime environment (Parabola rebranded)' + depends=('java-common' 'ca-certificates-java' 'nss') + optdepends=('java-rhino: for some JavaScript support') + provides=('java-runtime-headless=8' 'java-runtime-headless-openjdk=8') + # Upstream config files that should go to etc and get backup + _backup_etc=(etc/java-8-openjdk/${_JARCH}/jvm.cfg + etc/java-8-openjdk/calendars.properties + etc/java-8-openjdk/content-types.properties + etc/java-8-openjdk/flavormap.properties + etc/java-8-openjdk/images/cursors/cursors.properties + etc/java-8-openjdk/logging.properties + etc/java-8-openjdk/management/jmxremote.access + etc/java-8-openjdk/management/jmxremote.password + etc/java-8-openjdk/management/management.properties + etc/java-8-openjdk/management/snmp.acl + etc/java-8-openjdk/net.properties + etc/java-8-openjdk/psfont.properties.ja + etc/java-8-openjdk/psfontj2d.properties + etc/java-8-openjdk/security/java.policy + etc/java-8-openjdk/security/java.security + etc/java-8-openjdk/sound.properties) + replaces=('jre8-openjdk-headless-wm') + backup=(${_backup_etc[@]}) + install=install_jre8-openjdk-headless.sh + + cd "${srcdir}/${_imgdir}/jre" + + install -d -m 755 "${pkgdir}${_jvmdir}/jre/" + cp -a bin lib "${pkgdir}${_jvmdir}/jre" + + # Set config files + mv "${pkgdir}${_jvmdir}"/jre/lib/management/jmxremote.password{.template,} + mv "${pkgdir}${_jvmdir}"/jre/lib/management/snmp.acl{.template,} + + # Remove 'non-headless' lib files + for f in ${_nonheadless[@]}; do + rm "${pkgdir}${_jvmdir}/jre/${f}" + done + + # Man pages + pushd "${pkgdir}${_jvmdir}/jre/bin" + install -d -m 755 "${pkgdir}"/usr/share/man/{,ja/}man1/ + for file in *; do + install -m 644 "${srcdir}/${_imgdir}/man/man1/${file}.1" \ + "${pkgdir}/usr/share/man/man1/${file}-${_jdkname}.1" + install -m 644 "${srcdir}/${_imgdir}/man/ja/man1/${file}.1" \ + "${pkgdir}/usr/share/man/ja/man1/${file}-${_jdkname}.1" + done + popd + + # Link JKS keystore from ca-certificates-java + rm -f "${pkgdir}${_jvmdir}/jre/lib/security/cacerts" + ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}${_jvmdir}/jre/lib/security/cacerts" + + # Install license + install -d -m 755 "${pkgdir}/usr/share/licenses/${pkgbase}/" + install -m 644 ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README \ + "${pkgdir}/usr/share/licenses/${pkgbase}" + ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + + # Move config files that were set in _backup_etc from ./lib to /etc + for file in ${_backup_etc[@]}; do + _filepkgpath=${_jvmdir}/jre/lib/${file#etc/java-8-openjdk/} + install -D -m 644 "${pkgdir}${_filepkgpath}" "${pkgdir}/${file}" + ln -sf /${file} "${pkgdir}${_filepkgpath}" + done +} + +package_jre8-openjdk() { + pkgdesc='OpenJDK Java 8 full runtime environment (Parabola rebranded)' + depends=("jre8-openjdk-headless=${pkgver}-${pkgrel}" 'xdg-utils' 'hicolor-icon-theme') + optdepends=('alsa-lib: for basic sound support' + 'gtk2: for the Gtk+ look and feel - desktop usage') + # TODO when adding IcedTea: 'icedtea-web-java7: web browser plugin + Java Web Start' + # TODO when adding IcedTea: 'giflib: for gif format support' + # TODO when adding IcedTea: 'libpulse: for advanced sound support' + provides=('java-runtime=8' 'java-runtime-openjdk=8') + install=install_jre8-openjdk.sh + replaces=('jre8-openjdk-wm') + + cd "${srcdir}/${_imgdir}/jre" + + # TODO? Should /usr/lib/jvm/java-8-openjdk/jre/lib/sound.properties belong to jre? + for f in ${_nonheadless[@]}; do + install -D ${f} "${pkgdir}${_jvmdir}/jre/${f}" + done + + # Man pages + pushd "${pkgdir}${_jvmdir}/jre/bin" + install -d -m 755 "${pkgdir}"/usr/share/man/{,ja/}man1/ + for file in *; do + install -m 644 "${srcdir}/${_imgdir}/man/man1/${file}.1" \ + "${pkgdir}/usr/share/man/man1/${file}-${_jdkname}.1" + install -m 644 "${srcdir}/${_imgdir}/man/ja/man1/${file}.1" \ + "${pkgdir}/usr/share/man/ja/man1/${file}-${_jdkname}.1" + done + popd + + # Desktop files + # TODO add these when switching to IcedTea + #install -D -m 644 "${srcdir}/icedtea-${_icedtea_ver}/policytool.desktop" \ + # "${pkgdir}/usr/share/applications/policytool.desktop" + + # Install license + install -d -m 755 "${pkgdir}/usr/share/licenses/${pkgbase}/" + ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_jdk8-openjdk() { + pkgdesc='OpenJDK Java 8 development kit (Parabola rebranded)' + depends=("jre8-openjdk=${pkgver}-${pkgrel}") + provides=('java-environment=8' 'java-environment-openjdk=8') + replaces=('jdk8-openjdk-wm') + install=install_jdk8-openjdk.sh + + cd "${srcdir}/${_imgdir}" + + # Main files + install -d -m 755 "${pkgdir}${_jvmdir}" + + cp -a include lib "${pkgdir}${_jvmdir}" + + # 'bin' files + pushd bin + + # 'java-rmi.cgi' will be handled separately as it should not be in the PATH and has no man page + for b in $(ls | grep -v java-rmi.cgi); do + if [ -e ../jre/bin/${b} ]; then + # Provide a link of the jre binary in the jdk/bin/ directory + ln -s ../jre/bin/${b} "${pkgdir}${_jvmdir}/bin/${b}" + else + # Copy binary to jdk/bin/ + install -D -m 755 ${b} "${pkgdir}${_jvmdir}/bin/${b}" + # Copy man page + install -D -m 644 ../man/man1/${b}.1 "${pkgdir}/usr/share/man/man1/${b}-${_jdkname}.1" + install -D -m 644 ../man/ja/man1/${b}.1 "${pkgdir}/usr/share/man/ja/man1/${b}-${_jdkname}.1" + fi + done + popd + + # Handling 'java-rmi.cgi' separately + install -D -m 755 bin/java-rmi.cgi "${pkgdir}${_jvmdir}/bin/java-rmi.cgi" + + # Desktop files. + # TODO add these when switching to IcedTea + #install -m 644 "${srcdir}/icedtea-${_icedtea_ver}/jconsole.desktop" \ + # "${pkgdir}/usr/share/applications" + + # link license + install -d -m 755 "${pkgdir}/usr/share/licenses/" + ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} diff --git a/libre/java8-openjdk/install_jdk8-openjdk.sh b/libre/java8-openjdk/install_jdk8-openjdk.sh new file mode 100644 index 000000000..33f3fe77f --- /dev/null +++ b/libre/java8-openjdk/install_jdk8-openjdk.sh @@ -0,0 +1,38 @@ +this_java='java-8-openjdk' + +post_install() { + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + else + echo "Default Java environment is already set to '${default}'" + echo "To set '${this_java}' as default, consider using:" + echo " parabola-java set '${this_java}'" + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore + fi +} + +post_upgrade() { + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore + fi +} + +pre_remove() { + default=$(/usr/bin/parabola-java get) + if [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java set ${this_java}/jre + fi +} diff --git a/libre/java8-openjdk/install_jre8-openjdk-headless.sh b/libre/java8-openjdk/install_jre8-openjdk-headless.sh new file mode 100644 index 000000000..7e2834984 --- /dev/null +++ b/libre/java8-openjdk/install_jre8-openjdk-headless.sh @@ -0,0 +1,39 @@ +this_java='java-8-openjdk/jre' + +post_install() { + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + else + echo "Default Java environment is already set to '${default}'" + echo "To set '${this_java}' as default, consider using:" + echo " parabola-java set '${this_java}'" + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore + fi +} + +post_upgrade() { + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore + fi +} + +pre_remove() { + default=$(/usr/bin/parabola-java get) + if [ "x${default/\/jre}" = "x${this_java/\/jre}" ]; then + /usr/bin/parabola-java unset + echo 'No Java environment is set anymore' + fi +} diff --git a/libre/java8-openjdk/install_jre8-openjdk.sh b/libre/java8-openjdk/install_jre8-openjdk.sh new file mode 100644 index 000000000..ab17eebcb --- /dev/null +++ b/libre/java8-openjdk/install_jre8-openjdk.sh @@ -0,0 +1,45 @@ +this_java='java-8-openjdk/jre' + +post_install() { + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + echo "when you use a non-reparenting window manager" + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in" + echo "/etc/profile.d/jre.sh" + +# update-desktop-database -q + + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + else + echo "Default Java environment is already set to '${default}'" + echo "To set '${this_java}' as default, consider using:" + echo " parabola-java set '${this_java}'" + fi +} + +post_upgrade() { + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + +# update-desktop-database -q + + default=$(/usr/bin/parabola-java get) + if [ -z "${default}" ]; then + /usr/bin/parabola-java set ${this_java} + elif [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + fi +} + +post_remove() { + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + +# update-desktop-database -q + + default=$(/usr/bin/parabola-java get) + if [ "${default/\/jre}" = "${this_java/\/jre}" ]; then + /usr/bin/parabola-java fix + fi +} -- cgit v1.2.3-54-g00ecf