spacepaste

  1.  
  2. # Description: OpenJDK 8 built using IcedTea build harness
  3. # URL: http://icedtea.classpath.org
  4. # URL: http://openjdk.java.net
  5. # Maintainer: John Vogel, jvogel4 at stny dot rr dot com
  6. # Depends on: alsa-lib cups fontconfig freetype giflib gtk krb5 lcms2 libjpeg-turbo libpng libxslt nss unzip xorg-libxt xorg-libxtst xorg-libxinerama zip
  7. name=openjdk8
  8. openjdk_release=8
  9. openjdk_update=u151
  10. openjdk_build=b12
  11. openjdk_version=$openjdk_release$openjdk_update$openjdk_build
  12. version=8u151-b12
  13. icedtea_version=3.6.0
  14. boot_version=20171208
  15. certdata_rev=be884de5820a
  16. release=2
  17. source=(http://icedtea.wildebeest.org/download/source/icedtea-$icedtea_version.tar.xz
  18. https://stygian.me/crux/distfiles/$name/corba-$openjdk_version.tar.xz
  19. https://stygian.me/crux/distfiles/$name/hotspot-$openjdk_version.tar.xz
  20. https://stygian.me/crux/distfiles/$name/jaxp-$openjdk_version.tar.xz
  21. https://stygian.me/crux/distfiles/$name/jaxws-$openjdk_version.tar.xz
  22. https://stygian.me/crux/distfiles/$name/jdk-$openjdk_version.tar.xz
  23. https://stygian.me/crux/distfiles/$name/langtools-$openjdk_version.tar.xz
  24. https://stygian.me/crux/distfiles/$name/nashorn-$openjdk_version.tar.xz
  25. https://stygian.me/crux/distfiles/$name/openjdk-$openjdk_version.tar.xz
  26. https://stygian.me/crux/distfiles/$name-boot-$boot_version.pkg.tar.xz
  27. http://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2017Q3/pkgsrc/security/mozilla-rootcerts/files/mozilla-rootcerts.sh
  28. http://hg.mozilla.org/releases/mozilla-release/raw-file/$certdata_rev/security/nss/lib/ckfw/builtins/certdata.txt)
  29. unpack_source() {
  30. for file in ${source[@]}; do
  31. case ${file##*/} in
  32. icedtea-$icedtea_version.tar.xz|\
  33. $name-boot-$boot_version.pkg.tar.xz)
  34. bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
  35. *)
  36. cp $(get_filename $file) $SRC ;;
  37. esac
  38. done
  39. }
  40. build() {
  41. # Make sure we do not have ccache masquerade directory in PATH
  42. # Please use --enable-ccache instead of providing a wrapped compiler.
  43. if [ -e '/usr/bin/ccache' ]; then
  44. PKGMK_OPENJDK8='--enable-ccache'
  45. PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
  46. fi
  47. JAVA_DIR=$SRC/$name-boot
  48. mkdir $SRC/build
  49. cd $SRC/build
  50. LC_ALL=C \
  51. CFLAGS="$CFLAGS -fno-delete-null-pointer-checks -fno-omit-frame-pointer -fno-lifetime-dse" \
  52. CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks -fno-omit-frame-pointer -fno-lifetime-dse" \
  53. JAVA_HOME=$JAVA_DIR \
  54. PATH=$JAVA_DIR/bin:$PATH \
  55. CONFIG_SHELL=/bin/bash \
  56. ../icedtea-$icedtea_version/configure ${PKGMK_OPENJDK8} \
  57. --prefix=/usr/lib/java/$name \
  58. --disable-docs \
  59. --disable-downloading \
  60. --disable-precompiled-headers \
  61. --disable-tests \
  62. --disable-system-pcsc \
  63. --disable-system-sctp \
  64. --enable-system-cups \
  65. --enable-system-fontconfig \
  66. --enable-system-gconf \
  67. --enable-system-gio \
  68. --enable-system-gtk \
  69. --enable-system-jpeg \
  70. --enable-system-kerberos \
  71. --enable-system-lcms \
  72. --enable-system-png \
  73. --enable-system-zlib \
  74. --enable-nss \
  75. --enable-sunec \
  76. --enable-non-nss-curves \
  77. --enable-improved-font-rendering \
  78. --with-openjdk-src-zip=$SRC/openjdk-$openjdk_version.tar.xz \
  79. --with-hotspot-src-zip=$SRC/hotspot-$openjdk_version.tar.xz \
  80. --with-corba-src-zip=$SRC/corba-$openjdk_version.tar.xz \
  81. --with-jaxp-src-zip=$SRC/jaxp-$openjdk_version.tar.xz \
  82. --with-jaxws-src-zip=$SRC/jaxws-$openjdk_version.tar.xz \
  83. --with-jdk-src-zip=$SRC/jdk-$openjdk_version.tar.xz \
  84. --with-langtools-src-zip=$SRC/langtools-$openjdk_version.tar.xz \
  85. --with-nashorn-src-zip=$SRC/nashorn-$openjdk_version.tar.xz \
  86. --with-pkgversion=CRUX \
  87. --with-jdk-home=$JAVA_DIR
  88. LC_ALL=C \
  89. CFLAGS="$CFLAGS -fno-delete-null-pointer-checks -fno-omit-frame-pointer -fno-lifetime-dse" \
  90. CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks -fno-omit-frame-pointer -fno-lifetime-dse" \
  91. JAVA_HOME=$JAVA_DIR \
  92. PATH=$JAVA_DIR/bin:$PATH \
  93. make
  94. mkdir -p $PKG/usr/lib/java/$name
  95. cp -r openjdk.build/images/j2sdk-image/* $PKG/usr/lib/java/$name
  96. mkdir -p $PKG/etc/revdep.d
  97. echo "/usr/lib/java/$name/jre/lib/amd64" > $PKG/etc/revdep.d/$name
  98. echo "/usr/lib/java/$name/jre/lib/amd64/jli" >> $PKG/etc/revdep.d/$name
  99. echo "/usr/lib/java/$name/jre/lib/amd64/server" >> $PKG/etc/revdep.d/$name
  100. # remove unneeded files
  101. rm -f $PKG/usr/lib/java/$name/src.zip
  102. rm -rf $PKG/usr/lib/java/$name/{demo,sample}
  103. rm -f $PKG/usr/lib/java/$name/man/ja
  104. rm -rf $PKG/usr/lib/java/$name/man/ja_JP.UTF-8
  105. find $PKG/usr/lib/java/$name -name '*.ja' -delete
  106. # deduplicate
  107. rm $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
  108. ln -s ../../../lib/amd64/libjawt.so \
  109. $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
  110. rm $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
  111. ln -s ../../../../lib/amd64/jli/libjli.so \
  112. $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
  113. for f in $PKG/usr/lib/java/$name/jre/bin/* ; do
  114. if [ -f $PKG/usr/lib/java/$name/bin/${f##*/} ]; then
  115. rm $f
  116. ln -s ../../bin/${f##*/} $f
  117. fi
  118. done
  119. sed -e "/# cd \/etc\/openssl\/certs/s//# cd \/usr\/share\/$name\/certs/" \
  120. -e '/@AWK@/s,,/usr/bin/awk,' \
  121. -e "/@DATADIR@/s,,/usr/share/$name," \
  122. -e '/@ECHO@/s,,/bin/echo,' \
  123. -e '/@EXPR@/s,,/usr/bin/expr,' \
  124. -e '/@LN@/s,,/bin/ln,' \
  125. -e '/@LS@/s,,/bin/ls,' \
  126. -e '/@MKDIR@/s,,/bin/mkdir,' \
  127. -e '/@OPENSSL@/s,,/usr/bin/openssl,' \
  128. -e '/@PREFIX@/s,,/usr,' \
  129. -e "/@SSLDIR@/s,,/usr/share/$name," \
  130. -e '/@RM@/s,,/bin/rm,' \
  131. -e 's,self extract,self -f $certfile extract,' \
  132. -e 's,self rehash,self -f $certfile rehash,' \
  133. $SRC/mozilla-rootcerts.sh > $SRC/mozilla-rootcerts
  134. # generate java's cacerts
  135. # big thanks to pkgsrc's mozilla-rootcerts and openjdk pkg's for this part
  136. rm -f $PKG/usr/lib/java/$name/jre/lib/security/cacerts
  137. mkdir $SRC/cacerts
  138. cd $SRC/cacerts
  139. sh $SRC/mozilla-rootcerts -f $SRC/certdata.txt extract
  140. for cert in *.pem; do
  141. JAVA_HOME=$PKG/usr/lib/java/$name \
  142. PATH=$JAVA_HOME/bin:$PATH \
  143. keytool \
  144. -noprompt \
  145. -importcert \
  146. -keystore $PKG/usr/lib/java/$name/jre/lib/security/cacerts \
  147. -alias $(echo $cert | sed 's,.*/\([^/]*\)\.pem,\1,') \
  148. -file $cert \
  149. -storepass changeit
  150. done
  151. }
  152.