diff options
Diffstat (limited to 'build-support')
132 files changed, 7141 insertions, 41 deletions
diff --git a/build-support/disabled/ant19/PKGBUILD b/build-support/disabled/ant19/PKGBUILD new file mode 100644 index 00000000..4f829a3b --- /dev/null +++ b/build-support/disabled/ant19/PKGBUILD @@ -0,0 +1,102 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> +# Contributor: Andrew Wright <andreww@photism.org> +# Contributor: Paul Mattal <paul@archlinux.org> + +pkgbase=ant19 +_pkgbase=ant +pkgname=('ant19' 'ant19-doc') +pkgver=1.9.15 +pkgrel=3 +pkgdesc='Java based build tool' +url='https://ant.apache.org/' +arch=('any') +license=('APACHE') +makedepends=('bash' 'bin32-jdk7' 'junit' 'java-hamcrest') +source=(https://www.apache.org/dist/ant/source/apache-${_pkgbase}-${pkgver}-src.tar.bz2{,.asc} + ant.conf + apache-ant-1.9.15-https-and-repo-urls.patch + NetRexx.zip::ftp://ftp.software.ibm.com/software/awdtools/netrexx/NetRexx.zip) + +sha256sums=('7f7251009dc53e60afac47d0df6bd7e7d3cdba9fa7fec67b7a95412e8becdc8b' + 'SKIP' + '23bbef577b56d48adb1985dbd9795e5533146646f1e8bb879dd061a4014ffcf2' + 'fc8ed0be9586293a8a7f6cf8d245d1db56c43598b6a155ee27f7a4eeb59cafec' + '1f99f054e9b1e412d29823088f3fa7cfce90a7af25d907a60a6d7908a6b97ea4') +validpgpkeys=( + 'CE8075A251547BEE249BC151A2115AE15F6B8B72' # Stefan Bodewig + '8DA70C00DF7AF1B0D2F9DC74DDBCC1270A29D081' # jaikiran@apache <jaikiran@apache.org> +) + +_replace_lib() { + # explicitly call rm to ensure we replace instead of add + rm "$2" + ln -s "$1" "$2" +} + +prepare() { + cd apache-${_pkgbase}-${pkgver} + patch -Np1 < $srcdir/apache-ant-1.9.15-https-and-repo-urls.patch + mkdir -p ~/.ant/tempcache + cp $srcdir/NetRexx.zip ~/.ant/tempcache/. + sed -i 's|/usr/bin/python|/usr/bin/python2|' src/script/runant.py +} + +build() { + cd apache-${_pkgbase}-${pkgver} + export JAVA_HOME=/usr/lib/jvm/java-7-jdk + ./bootstrap.sh + bootstrap/bin/ant -Ddest=optional -f fetch.xml + _replace_lib /usr/share/java/junit.jar lib/optional/junit-4.12.jar + _replace_lib /usr/share/java/hamcrest-core.jar lib/optional/hamcrest-core-1.3.jar + _replace_lib /usr/share/java/hamcrest-library.jar lib/optional/hamcrest-library-1.3.jar + bootstrap/bin/ant dist +} + +package_ant19() { + depends=('bin32-jdk7' 'bash') + optdepends=('junit: junit tasks' + 'java-hamcrest: junit tasks') + conflicts=('ant') + backup=('etc/ant.conf') + + cd apache-${_pkgbase}-${pkgver}/apache-${_pkgbase}-${pkgver} + local _ant_home=/usr/share/ant + + install -d "${pkgdir}${_ant_home}" + cp -Rp etc "${pkgdir}${_ant_home}" + + find bin -type f -a ! -name \*.bat -a ! -name \*.cmd \ + -exec install -Dm 755 {} -t "${pkgdir}${_ant_home}/bin" \; + install -d "${pkgdir}/usr/bin" + ln -s /usr/share/ant/bin/ant "${pkgdir}/usr/bin/ant" + + install -Dm 644 "${srcdir}/ant.conf" -t "${pkgdir}/etc" + install -Dm 644 lib/*.jar -t "${pkgdir}/usr/share/java/ant" + ln -s /usr/share/java/ant "${pkgdir}${_ant_home}/lib" + + install -Dm 644 ../{LICENSE,NOTICE} -t "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_ant19-doc() { + pkgdesc='Apache Ant build tool documentation' + conflicts=('ant-doc') + + install -d "${pkgdir}/usr/share/doc/ant" + cp -r apache-${_pkgbase}-${pkgver}/apache-${_pkgbase}-${pkgver}/manual/* \ + "${pkgdir}/usr/share/doc/ant" +} + +# vim: ts=2 sw=2 et: + +# i486-specific +if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 + _DOC_ARCH=x86 +fi + +# pentium4-specific +if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + _DOC_ARCH=x86 +fi diff --git a/build-support/disabled/ant19/ant.conf b/build-support/disabled/ant19/ant.conf new file mode 100644 index 00000000..63bf219a --- /dev/null +++ b/build-support/disabled/ant19/ant.conf @@ -0,0 +1,8 @@ +# Apache Ant start script configuration file +ANT_HOME=/usr/share/ant + +# Optional jars and their dependencies +OPT_JAR_LIST=/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar +LOCALCLASSPATH=${OPT_JAR_LIST} + +# vim:ft=sh diff --git a/build-support/disabled/ant19/apache-ant-1.9.15-https-and-repo-urls.patch b/build-support/disabled/ant19/apache-ant-1.9.15-https-and-repo-urls.patch new file mode 100644 index 00000000..605b4f7b --- /dev/null +++ b/build-support/disabled/ant19/apache-ant-1.9.15-https-and-repo-urls.patch @@ -0,0 +1,73 @@ +diff -rauN apache-ant-1.9.15/fetch.xml apache-ant-1.9.15-https-and-repo-urls-patch/fetch.xml +--- apache-ant-1.9.15/fetch.xml 2020-05-10 15:42:29.000000000 +0200 ++++ apache-ant-1.9.15-https-and-repo-urls-patch/fetch.xml 2021-05-14 20:17:38.020978197 +0200 +@@ -329,19 +329,19 @@ + <f2 project="tomcat" archive="jasper-runtime"/> + <f2 project="javax.servlet" archive="servlet-api"/> + </target> +- ++<!-- + <target name="jai" + description="load Java Advanced Imaging" + depends="init"> + <f2 project="javax.media" archive="jai-core" id="jboss" +- repository="https://repository.jboss.org/nexus/content/groups/public/"/> ++ repository="http://mvnrepository.com/"/> + <f2 project="com.sun.media" archive="jai-codec" id="jboss" +- repository="https://repository.jboss.org/nexus/content/groups/public/"/> ++ repository="http://repository.jboss.org/nexus/content/groups/public/"/> + </target> +- ++--> + <target name="netrexx" + description="load NetRexx compiler" +- depends="init-no-m2,-setup-temp-cache,-fetch-netrexx,-fetch-netrexx-no-commons-net"> ++ depends="init-no-m2,-setup-temp-cache"> + <checksum file="${temp.dir}/NetRexx.zip" algorithm="SHA-256" property="${netrexx.sha256}" verifyProperty="netrexx.hash.matches"/> + <fail message="NetRexx.zip fetched via ftp has an unexpected SHA-256 checksum, the file may have been tampered with"> + <condition> +@@ -361,18 +361,22 @@ + + <available property="have.commons.net" classname="org.apache.commons.net.ftp.FTPClientConfig"/> + ++<!-- + <target name="-fetch-netrexx" if="have.commons.net"> + <get-ftp-file host="ftp.software.ibm.com" remotedir="/software/awdtools/netrexx" + filename="NetRexx.zip" localdir="${temp.dir}"/> + </target> ++--> + ++<!-- + <target name="-fetch-netrexx-no-commons-net" unless="have.commons.net"> + <get src="ftp://ftp.software.ibm.com/software/awdtools/netrexx/NetRexx.zip" + dest="${temp.dir}/NetRexx.zip" skipexisting="true"/> + </target> ++--> + + <target name="all" + description="load all the libraries (except jython)" +- depends="antunit,ivy,logging,junit,xml,networking,regexp,antlr,bcel,jdepend,bsf,debugging,script,javamail,jspc,jai,netrexx"/> ++ depends="antunit,ivy,logging,junit,xml,networking,regexp,antlr,bcel,jdepend,bsf,debugging,script,javamail,jspc,netrexx"/> + + </project> +diff -rauN apache-ant-1.9.15/lib/libraries.properties apache-ant-1.9.15-https-and-repo-urls-patch/lib/libraries.properties +--- apache-ant-1.9.15/lib/libraries.properties 2020-05-10 15:42:29.000000000 +0200 ++++ apache-ant-1.9.15-https-and-repo-urls-patch/lib/libraries.properties 2021-05-14 20:06:47.150502384 +0200 +@@ -17,7 +17,7 @@ + + # If you change this, change the checksum to match + m2.version=2.1.3 +-m2.url=https://archive.apache.org/dist/maven/ant-tasks ++m2.url=http://archive.apache.org/dist/maven/ant-tasks + m2.artifact-name=maven-ant-tasks + m2.jar.name=${m2.artifact-name}-${m2.version}.jar + #this is the URL of the antlib library, that is pulled down for everything else. +@@ -26,7 +26,7 @@ + m2.sha1.checksum=b09be554228d66d208e5fef5266844aacf443abc + + # Repository to use by default for fetching dependencies. +-m2.repo=https://repo1.maven.org/maven2/ ++m2.repo=http://insecure.repo1.maven.org/maven2/ + + # hashes of libraries loaded over insecure connections + netrexx.sha256=1f99f054e9b1e412d29823088f3fa7cfce90a7af25d907a60a6d7908a6b97ea4 diff --git a/build-support/disabled/java/bin32-jdk6/PKGBUILD b/build-support/disabled/java/bin32-jdk6/PKGBUILD new file mode 100644 index 00000000..2bac2781 --- /dev/null +++ b/build-support/disabled/java/bin32-jdk6/PKGBUILD @@ -0,0 +1,174 @@ +# Maintainer: +# Contributor: Felix Golatofski <contact@xdfr.de> +# Contributor: Det +# Contributor: Damian Nowak + +_pkgname=jdk +pkgname=bin32-jdk6 +_major=6 +_minor=45 +_build=b06 +pkgver=${_major}u${_minor} +pkgrel=6 +pkgdesc="Oracle Java $_major Development Kit (32-bit) (public release - end of support)" +arch=('x86_64' 'i486') +url="https://www.java.com/en/download/faq/java_$_major.xml" +license=('custom') +depends=('ca-certificates-java' 'hicolor-icon-theme' 'java-environment-common' 'java-runtime-common' + 'gcc-libs' 'libxrender' 'libxtst' 'nss' 'xdg-utils') +optdepends=('eclipse: "Oracle Java Mission Control" plugins for Eclipse' + 'alsa-lib: for basic sound support' + 'gtk2: for Gtk+ look and feel (desktop)') +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") + +# Variables +DLAGENTS=('https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -b oraclelicense=a -o %o %u') +_jname=${_pkgname}${_major} +_jvmdir=/usr/lib32/jvm/java-$_major-$_pkgname + +backup=("etc/java-$_jname/i386/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/security/javaws.policy" + "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=("https://download.oracle.com/otn/java/jdk/${pkgver}-${_build}/jdk-${pkgver}-linux-i586.bin" + "https://download.oracle.com/otn-pub/java/jce_policy/$_major/jce_policy-$_major.zip" + "jconsole32-$_jname.desktop" + "jmc32-$_jname.desktop" + "jvisualvm32-$_jname.desktop" + "policytool32-$_jname.desktop" + 'javaws-launcher') +sha256sums=('d53b5a2518d80e1d95565f0adda54eee229dc5f4a1d1a3c2f7bf5045b168a357' + 'd0c2258c3364120b4dbf7dd1655c967eee7057ac6ae6334b5ea8ceb8bafb9262' + '6195ce056e55247365b5cc2363e5e28f8bdb6842f65a41d37732279aee17ce57' + 'a10ec033765a0ecf1fdd8ef8dee3614391f8b3605bb8b4f0d957ff7c7c958563' + 'c7377ddaaee8579a230356e9878030a9f2a8cbcc5c2f89114d6244db051a0a01' + 'ce1ac5bf1fd639fe0e0fe08880e8eae5b2fbf6903a7c51ed8168aee8fd1ee66a' + '5a43bf54553ea39c147a67935d68646806a5053fefd527bd69c546f4c884402e') + +package() { + msg2 "Extracting the .bin" + rm -rf ${_pkgname}1.${_major}.0_${_minor} + sh $_pkgname-$pkgver-linux-i586.bin &>/dev/null + + cd ${_pkgname}1.${_major}.0_${_minor} + + msg2 "Creating directory structure..." + install -d "$pkgdir"/etc/.java/.systemPrefs + install -d "$pkgdir"/usr/lib32/jvm/java-$_major-$_pkgname/bin + install -d "$pkgdir"/usr/lib32/mozilla/plugins + install -d "$pkgdir"/usr/share/licenses/java${_major}-${_pkgname}32 + + msg2 "Removing redundancies..." + rm db/bin/*.bat + rm db/3RDPARTY + rm db/LICENSE + rm -r jre/lib/desktop/icons/HighContrast + rm -r jre/lib/desktop/icons/HighContrastInverse + rm -r jre/lib/desktop/icons/LowContrast + rm jre/lib/fontconfig.*.bfc + rm jre/lib/fontconfig.*.properties.src + rm -r jre/plugin/ + rm jre/*.txt + rm jre/COPYRIGHT + rm jre/LICENSE + rm jre/README + rm man/ja + + msg2 "Moving contents..." + mv * "$pkgdir"/$_jvmdir + + # Cd to the new playground + cd "$pkgdir"/$_jvmdir + + # javaws-launcher + install -m644 "$srcdir"/javaws-launcher bin/ + + 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 + + # Suffix .desktops + icons (sun-java.png -> sun-java-$_jname.png) + for i in $(find jre/lib/desktop/ -type f); do + rename -- "." "32-$_jname." $i + done + + # Fix .desktop's + sed -e '/JavaWS/!s|Name=Java|Name=Java '"$_major"'|' \ + -e "s|Name=JavaWS|Name=JavaWS $_major|" \ + -e "s|Name=.*|& (32-bit)|" \ + -e "s|Comment=Java|Comment=Java $_major|" \ + -e "s|Comment=.*|& (32-bit)|" \ + -e "s|Exec=|Exec=$_jvmdir/jre/bin/|" \ + -e "s|.png|32-$_jname.png|" \ + -i jre/lib/desktop/applications/* + + # Move .desktops + icons to /usr/share + mv jre/lib/desktop/* "$pkgdir"/usr/share/ + install -m644 "$srcdir"/*.desktop "$pkgdir"/usr/share/applications/ + + # Move confs to /etc and link back to /usr: /usr/lib32/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 + + # Link NPAPI plugin + ln -sf $_jvmdir/jre/lib/i386/libnpjp2.so "$pkgdir"/usr/lib32/mozilla/plugins/libnpjp2-$_jname.so + + # 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}32-$_jname.1" + done + + # Move man pages + mv man/ja_JP.eucJP/ man/ja + mv man/ "$pkgdir"/usr/share + + # Move/link licenses + mv db/NOTICE COPYRIGHT LICENSE *.txt "$pkgdir"/usr/share/licenses/java${_major}-${_pkgname}32/ + ln -sf /usr/share/licenses/java${_major}-${_pkgname}32/ "$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"/jce/*.jar jre/lib/security/ + install -Dm644 "$srcdir"/jce/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/build-support/disabled/java/bin32-jdk6/bin32-jdk6.install b/build-support/disabled/java/bin32-jdk6/bin32-jdk6.install new file mode 100644 index 00000000..3d623c37 --- /dev/null +++ b/build-support/disabled/java/bin32-jdk6/bin32-jdk6.install @@ -0,0 +1,71 @@ +THIS_JAVA='java32-6-jdk' +NAME='32-bit JDK 6' + +all_off="$(tput sgr0)" +bold="${all_off}$(tput bold)" +blue="${bold}$(tput setaf 4)" +yellow="${bold}$(tput setaf 3)" + +note() { + printf "${blue}::${yellow} archlinux-java32:${bold} $1${all_off}\n" +} + +update_desktop() { + update-desktop-database -q + update-mime-database /usr/share/mime >/dev/null + xdg-icon-resource forceupdate &>/dev/null +} + +post_install() { + default=$(archlinux-java32 get) + case ${default} in + "") + archlinux-java32 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-java32 set ${THIS_JAVA} + For status, use: + $ archlinux-java32 status" + ;; + esac + + if [[ ! -f /etc/ssl/certs/java/cacerts ]]; then + update-ca-trust + fi + + update_desktop +} + +post_upgrade() { + post_install +} + +pre_remove() { + default=$(archlinux-java32 get) + if [[ ${default} = ${THIS_JAVA} ]]; then + archlinux-java32 unset + fi +} + +post_remove() { + default=$(archlinux-java32 get) # reassign + if [[ ${default} ]]; then + note "Default Java environment is '${default}'." + else + archlinux-java32 fix + default=$(archlinux-java32 get) # re-reassign + if [[ ${default} ]]; then + note "Default Java environment left as '${default}'." + else + note "Java environment unset." + fi + fi + + update_desktop +} diff --git a/build-support/disabled/java/bin32-jdk6/javaws-launcher b/build-support/disabled/java/bin32-jdk6/javaws-launcher new file mode 100644 index 00000000..2831dfcb --- /dev/null +++ b/build-support/disabled/java/bin32-jdk6/javaws-launcher @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ -z "$@" ]; then + exec javaws -viewer +else + exec javaws "$@" +fi diff --git a/build-support/disabled/java/bin32-jdk6/jconsole32-jdk6.desktop b/build-support/disabled/java/bin32-jdk6/jconsole32-jdk6.desktop new file mode 100644 index 00000000..07969d50 --- /dev/null +++ b/build-support/disabled/java/bin32-jdk6/jconsole32-jdk6.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib32/jvm/java32-6-jdk/bin/jconsole +Icon=sun-java32-jdk6 +Name=Java 6 Monitoring and Management Console (32-bit) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/build-support/disabled/java/bin32-jdk6/jmc32-jdk6.desktop b/build-support/disabled/java/bin32-jdk6/jmc32-jdk6.desktop new file mode 100644 index 00000000..9eb18b46 --- /dev/null +++ b/build-support/disabled/java/bin32-jdk6/jmc32-jdk6.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib32/jvm/java32-6-jdk/bin/jmc +Icon=sun-java32-jdk6 +Name=Java 6 Mission Control (32-bit) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/build-support/disabled/java/bin32-jdk6/jvisualvm32-jdk6.desktop b/build-support/disabled/java/bin32-jdk6/jvisualvm32-jdk6.desktop new file mode 100644 index 00000000..3c1f6a32 --- /dev/null +++ b/build-support/disabled/java/bin32-jdk6/jvisualvm32-jdk6.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Exec=/usr/lib32/jvm/java32-6-jdk/bin/jvisualvm +GenericName=Java 6 Monitoring and Performance Monitoring Tool (32-bit) +Icon=sun-java32-jdk6 +Name=Java 6 VisualVM (32-bit) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/build-support/disabled/java/bin32-jdk6/policytool32-jdk6.desktop b/build-support/disabled/java/bin32-jdk6/policytool32-jdk6.desktop new file mode 100644 index 00000000..7b1295ef --- /dev/null +++ b/build-support/disabled/java/bin32-jdk6/policytool32-jdk6.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib32/jvm/java32-6-jdk/jre/bin/policytool +Icon=sun-java32-jdk6 +Name=Java 6 Policy Settings (32-bit) +StartupNotify=true +Terminal=false +Type=Application +Categories=Settings;Java; diff --git a/build-support/disabled/java/bin32-jdk7/.SRCINFO b/build-support/disabled/java/bin32-jdk7/.SRCINFO new file mode 100644 index 00000000..340404ab --- /dev/null +++ b/build-support/disabled/java/bin32-jdk7/.SRCINFO @@ -0,0 +1,60 @@ +pkgbase = bin32-jdk7 + pkgdesc = Oracle Java 7 Development Kit (32-bit) (public release - end of support) + pkgver = 7u80 + pkgrel = 2 + url = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html + install = bin32-jdk7.install + arch = x86_64 + license = custom + depends = ca-certificates-java + depends = hicolor-icon-theme + depends = java32-environment-common + depends = java32-runtime-common + depends = lib32-gcc-libs + depends = lib32-libxrender + depends = lib32-libxtst + depends = lib32-nss + depends = xdg-utils + optdepends = eclipse: "Oracle Java Mission Control" plugins for Eclipse + optdepends = lib32-alsa-lib: for basic sound support + optdepends = lib32-gtk2: for Gtk+ look and feel (desktop) + provides = java32-runtime=7 + provides = java32-runtime-headless=7 + provides = java32-web-start=7 + provides = java32-environment=7 + provides = java32-runtime-jre=7 + provides = java32-runtime-headless-jre=7 + provides = java32-web-start-jre=7 + provides = java32-environment-jdk=7 + provides = java32-openjfx=7 + options = !strip + backup = etc/java32-jdk7/i386/jvm.cfg + backup = etc/java32-jdk7/images/cursors/cursors.properties + backup = etc/java32-jdk7/management/jmxremote.access + backup = etc/java32-jdk7/management/management.properties + backup = etc/java32-jdk7/security/java.policy + backup = etc/java32-jdk7/security/java.security + backup = etc/java32-jdk7/security/javaws.policy + backup = etc/java32-jdk7/content-types.properties + backup = etc/java32-jdk7/flavormap.properties + backup = etc/java32-jdk7/fontconfig.properties.src + backup = etc/java32-jdk7/logging.properties + backup = etc/java32-jdk7/net.properties + backup = etc/java32-jdk7/psfont.properties.ja + backup = etc/java32-jdk7/psfontj2d.properties + backup = etc/java32-jdk7/sound.properties + source = https://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-i586.tar.gz + source = https://download.oracle.com/otn-pub/java/jce/7/UnlimitedJCEPolicyJDK7.zip + source = jconsole32-jdk7.desktop + source = jmc32-jdk7.desktop + source = jvisualvm32-jdk7.desktop + source = policytool32-jdk7.desktop + md5sums = 02ec71669febecd92eb45c2810e6008a + md5sums = c47e997b90ddfd0d813a37ccc97fb933 + md5sums = 721fa304a1f1057c7079330308772ca4 + md5sums = 8a9ff08e43c75c4d7460790dff7dfd4a + md5sums = a16f78eb4c0002fc0e57d95ac9f503f3 + md5sums = 28afaff6decb032e3cce3d88f2fca0d7 + +pkgname = bin32-jdk7 + diff --git a/build-support/disabled/java/bin32-jdk7/PKGBUILD b/build-support/disabled/java/bin32-jdk7/PKGBUILD new file mode 100644 index 00000000..175da1bc --- /dev/null +++ b/build-support/disabled/java/bin32-jdk7/PKGBUILD @@ -0,0 +1,166 @@ +# Maintainer: +# Contributor: Felix Golatofski <contact@xdfr.de> +# Contributor: Det +# Contributor: Damian Nowak + +_pkgname=jdk +pkgname=bin32-jdk7 +_major=7 +_minor=80 +_build=b15 +pkgver=${_major}u${_minor} +pkgrel=2 +pkgdesc="Oracle Java $_major Development Kit (32-bit) (public release - end of support)" +arch=('x86_64' 'i486' 'i686' 'pentium4') +url='http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html' +license=('custom') +depends=('ca-certificates-java' 'hicolor-icon-theme' 'java-environment-common' 'java-runtime-common' + 'gcc-libs' 'libxrender' 'libxtst' 'nss' 'xdg-utils') +optdepends=('eclipse: "Oracle Java Mission Control" plugins for Eclipse' + 'lib-alsa-lib: for basic sound support' + 'lib-gtk2: for Gtk+ look and feel (desktop)') +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=('https::/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/i386/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/security/javaws.policy" + "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=("https://download.oracle.com/otn/java/jdk/${pkgver}-${_build}/jdk-${pkgver}-linux-i586.tar.gz" + "https://download.oracle.com/otn-pub/java/jce/$_major/UnlimitedJCEPolicyJDK$_major.zip" + "jconsole32-$_jname.desktop" + "jmc32-$_jname.desktop" + "jvisualvm32-$_jname.desktop" + "policytool32-$_jname.desktop") +md5sums=('0811a4045714bd8f1e1577e318528597' + '5504e2d9029ee2c41730a228758c50e1' + '721fa304a1f1057c7079330308772ca4' + '8a9ff08e43c75c4d7460790dff7dfd4a' + 'a16f78eb4c0002fc0e57d95ac9f503f3' + '28afaff6decb032e3cce3d88f2fca0d7') + +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}32 + + msg2 "Removing redundancies..." + rm db/bin/*.bat + rm db/3RDPARTY + rm db/LICENSE + rm -r jre/lib/desktop/icons/HighContrast + rm -r jre/lib/desktop/icons/HighContrastInverse + rm -r jre/lib/desktop/icons/LowContrast + rm jre/lib/fontconfig.*.bfc + rm jre/lib/fontconfig.*.properties.src + rm -r jre/plugin/ + rm jre/*.txt + rm jre/COPYRIGHT + rm jre/LICENSE + rm jre/README + rm man/ja + + 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 + + # Suffix .desktops + icons (sun-java.png -> sun-java-$_jname.png) + for i in $(find jre/lib/desktop/ -type f); do + rename -- "." "32-$_jname." $i + done + + # Fix .desktop's + sed -e '/JavaWS/!s|Name=Java|Name=Java '"$_major"'|' \ + -e "s|Name=JavaWS|Name=JavaWS $_major|" \ + -e "s|Name=.*|& (32-bit)|" \ + -e "s|Comment=Java|Comment=Java $_major|" \ + -e "s|Comment=.*|& (32-bit)|" \ + -e "s|Exec=|Exec=$_jvmdir/jre/bin/|" \ + -e "s|.png|32-$_jname.png|" \ + -i jre/lib/desktop/applications/* + + # Move .desktops + icons to /usr/share + mv jre/lib/desktop/* "$pkgdir"/usr/share/ + install -m644 "$srcdir"/*.desktop "$pkgdir"/usr/share/applications/ + + # 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 + + # Link NPAPI plugin + ln -sf $_jvmdir/jre/lib/i386/libnpjp2.so "$pkgdir"/usr/lib/mozilla/plugins/libnpjp2-$_jname.so + + # 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}32-$_jname.1" + done + + # Move man pages + mv man/ja_JP.UTF-8/ man/ja + mv man/ "$pkgdir"/usr/share + + # Move/link licenses + mv db/NOTICE COPYRIGHT LICENSE *.txt "$pkgdir"/usr/share/licenses/java${_major}-${_pkgname}32/ + ln -sf /usr/share/licenses/java${_major}-${_pkgname}32/ "$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"/UnlimitedJCEPolicy/*.jar jre/lib/security/ + install -Dm644 "$srcdir"/UnlimitedJCEPolicy/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/build-support/disabled/java/bin32-jdk7/bin32-jdk7.install b/build-support/disabled/java/bin32-jdk7/bin32-jdk7.install new file mode 100644 index 00000000..7e849cbb --- /dev/null +++ b/build-support/disabled/java/bin32-jdk7/bin32-jdk7.install @@ -0,0 +1,71 @@ +THIS_JAVA='java32-7-jdk' +NAME='32-bit JDK 7' + +all_off="$(tput sgr0)" +bold="${all_off}$(tput bold)" +blue="${bold}$(tput setaf 4)" +yellow="${bold}$(tput setaf 3)" + +note() { + printf "${blue}::${yellow} archlinux-java32:${bold} $1${all_off}\n" +} + +update_desktop() { + update-desktop-database -q + update-mime-database /usr/share/mime >/dev/null + xdg-icon-resource forceupdate &>/dev/null +} + +post_install() { + default=$(archlinux-java32 get) + case ${default} in + "") + archlinux-java32 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-java32 set ${THIS_JAVA} + For status, use: + $ archlinux-java32 status" + ;; + esac + + if [[ ! -f /etc/ssl/certs/java/cacerts ]]; then + update-ca-trust + fi + + update_desktop +} + +post_upgrade() { + post_install +} + +pre_remove() { + default=$(archlinux-java32 get) + if [[ ${default} = ${THIS_JAVA} ]]; then + archlinux-java32 unset + fi +} + +post_remove() { + default=$(archlinux-java32 get) # reassign + if [[ ${default} ]]; then + note "Default Java environment is '${default}'." + else + archlinux-java32 fix + default=$(archlinux-java32 get) # re-reassign + if [[ ${default} ]]; then + note "Default Java environment left as '${default}'." + else + note "Java environment unset." + fi + fi + + update_desktop +} diff --git a/build-support/disabled/java/bin32-jdk7/jconsole32-jdk7.desktop b/build-support/disabled/java/bin32-jdk7/jconsole32-jdk7.desktop new file mode 100644 index 00000000..8889e37e --- /dev/null +++ b/build-support/disabled/java/bin32-jdk7/jconsole32-jdk7.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib32/jvm/java32-7-jdk/bin/jconsole +Icon=sun-java32-jdk7 +Name=Java 7 Monitoring and Management Console (32-bit) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/build-support/disabled/java/bin32-jdk7/jmc32-jdk7.desktop b/build-support/disabled/java/bin32-jdk7/jmc32-jdk7.desktop new file mode 100644 index 00000000..84217af1 --- /dev/null +++ b/build-support/disabled/java/bin32-jdk7/jmc32-jdk7.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib32/jvm/java32-7-jdk/bin/jmc +Icon=sun-java32-jdk7 +Name=Java 7 Mission Control (32-bit) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/build-support/disabled/java/bin32-jdk7/jvisualvm32-jdk7.desktop b/build-support/disabled/java/bin32-jdk7/jvisualvm32-jdk7.desktop new file mode 100644 index 00000000..2f9ee247 --- /dev/null +++ b/build-support/disabled/java/bin32-jdk7/jvisualvm32-jdk7.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Exec=/usr/lib32/jvm/java32-7-jdk/bin/jvisualvm +GenericName=Java 7 Monitoring and Performance Monitoring Tool (32-bit) +Icon=sun-java32-jdk7 +Name=Java 7 VisualVM (32-bit) +StartupNotify=true +Terminal=false +Type=Application +Categories=Development;Java; diff --git a/build-support/disabled/java/bin32-jdk7/policytool32-jdk7.desktop b/build-support/disabled/java/bin32-jdk7/policytool32-jdk7.desktop new file mode 100644 index 00000000..03a3f03b --- /dev/null +++ b/build-support/disabled/java/bin32-jdk7/policytool32-jdk7.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Exec=/usr/lib32/jvm/java32-7-jdk/jre/bin/policytool +Icon=sun-java32-jdk7 +Name=Java 7 Policy Settings (32-bit) +StartupNotify=true +Terminal=false +Type=Application +Categories=Settings;Java; diff --git a/build-support/disabled/libfm-extra/PKGBUILD b/build-support/disabled/libfm-extra/PKGBUILD new file mode 100644 index 00000000..3ee20db8 --- /dev/null +++ b/build-support/disabled/libfm-extra/PKGBUILD @@ -0,0 +1,33 @@ +# breaking the cycle with menu-cache on i486 +depends=(${depends[@]//menu-cache/}) +depends_i686+=(menu-cache) +depends_pentium4=("${depends_i686[@]}") + +if [ "$CARCH" = 'i486' ]; then + eval "$( + declare -f build | \ + sed ' + s|./configure|./configure --with-extra-only | + /mv.*\/usr\/bin/d + ' + )" + + eval "$( + declare -f package_libfm | \ + sed ' + s/mv\(.*\)/(mv\1) || true/ + ' + )" + eval "$( + declare -f package_libfm-gtk2 | \ + sed ' + s/mv\(.*\)/(mv\1) || true/ + ' + )" + eval "$( + declare -f package_libfm-gtk3 | \ + sed ' + s/mv\(.*\)/(mv\1) || true/ + ' + )" +fi diff --git a/build-support/libvips884/PKGBUILD b/build-support/disabled/libvips884/PKGBUILD index c73ac6fb..c73ac6fb 100644 --- a/build-support/libvips884/PKGBUILD +++ b/build-support/disabled/libvips884/PKGBUILD diff --git a/build-support/disabled/mesa/mesa b/build-support/disabled/mesa/mesa new file mode 100644 index 00000000..81de2061 --- /dev/null +++ b/build-support/disabled/mesa/mesa @@ -0,0 +1,177 @@ +# disable openswf as it requires AVX, makes no sense with old CPUs +# disable every new software rasterizer and take the old ones +# see also FS32#39 +eval "$( + declare -f build | \ + sed ' + /arch-meson/s/\(gallium-drivers=.*\),swrast,swr/\1,swrast/ + /arch-meson/s/\(-D swr-arches=\)avx,avx2/\1/ + ' + declare -f package_mesa | \ + sed ' + s@_install fakeinstall/usr/lib/libswrAVX.*@#\0@g + ' +)" + +# See https://bugs.freedesktop.org/show_bug.cgi?id=93089 +# do not build/package vulkan on i486 +# do not build i915,i965 on i486 +if [ "$CARCH" = 'i486' ]; then + eval "$( + declare -f build | \ + sed ' + s/-D gallium-omx=bellagio // + s/-D gallium-opencl=\S\+ // + s/-D osmesa=true /-D osmesa=false / + s/\(-D gallium-\S\+=\)enabled /\1disabled /g + s/\(-D gallium-nine=\)true /\1false /g + s/\(-D vulkan-drivers=\)\S\+ /\1 / + s/\(-D dri-drivers=\(\S\+,\)\?\)i915,/\1/ + s/\(-D dri-drivers=\(\S\+,\)\?\)i965,/\1/ + ' + declare -f package_mesa | \ + sed ' + \,rm .*/vulkan;,d + \,bellagio,d + \,fakeinstall/usr/lib/d3d,d + \,fakeinstall/usr/lib/libOSMesa\.so\*,d + \,fakeinstall/usr/lib/libxatracker\.so\*,d + ' + )" +else + eval "$( + declare -f package_vulkan-intel package_vulkan-radeon package_opencl-mesa package_libva-mesa-driver package_mesa-vdpau | \ + sed ' + /^\s*{\s*$/ a arch=('"$( + printf '%s\n' "${arch[@]}" | \ + grep -vxF 'i486' | \ + tr '\n' ' ' + )"') + ' + )" +fi + +# break cycle with conflicting installation files between mesa and libglvnd +# (indirect dependency via libva) +# i486-specific +if [ "$CARCH" = 'i486' ]; then + eval "$( + declare -f package_mesa | \ + sed ' + $ i rm -rf $pkgdir/usr/include/EGL/egl.h \ + rm -rf $pkgdir/usr/include/EGL/eglext.h \ + rm -rf $pkgdir/usr/include/EGL/eglplatform.h \ + rm -rf $pkgdir/usr/include/GL/gl.h \ + rm -rf $pkgdir/usr/include/GL/glcorearb.h \ + rm -rf $pkgdir/usr/include/GL/glext.h \ + rm -rf $pkgdir/usr/include/GL/glx.h \ + rm -rf $pkgdir/usr/include/GL/glxext.h \ + rm -rf $pkgdir/usr/include/GLES2/gl2.h \ + rm -rf $pkgdir/usr/include/GLES2/gl2ext.h \ + rm -rf $pkgdir/usr/include/GLES2/gl2platform.h \ + rm -rf $pkgdir/usr/include/GLES3/gl3.h \ + rm -rf $pkgdir/usr/include/GLES3/gl31.h \ + rm -rf $pkgdir/usr/include/GLES3/gl32.h \ + rm -rf $pkgdir/usr/include/GLES3/gl3ext.h \ + rm -rf $pkgdir/usr/include/GLES3/gl3platform.h \ + rm -rf $pkgdir/usr/include/KHR/khrplatform.h \ + rm -rf $pkgdir/usr/lib/pkgconfig/egl.pc \ + rm -rf $pkgdir/usr/lib/pkgconfig/gl.pc \ + rm -rf $pkgdir/usr/lib/pkgconfig/glesv2.pc + ' + declare -f package_vulkan-mesa-layers | \ + sed ' + 3 i if false; then + $ i fi + ' + declare -f package_vulkan-swrast | \ + sed ' + 3 i if false; then + $ i fi + ' + declare -f package_vulkan-intel | \ + sed ' + 3 i if false; then + $ i fi + ' + declare -f package_vulkan-radeon | \ + sed ' + 3 i if false; then + $ i fi + ' + declare -f package_opencl-mesa | \ + sed ' + 3 i if false; then + $ i fi + ' + declare -f package_libva-mesa-driver | \ + sed ' + 3 i if false; then + $ i fi + ' + declare -f package_libva-mesa-vdpau | \ + sed ' + 3 i if false; then + $ i fi + ' + declare -f package_mesa-vdpau | \ + sed ' + 3 i if false; then + $ i fi + ' + ) + " +fi + +# add libdrm and libxshmfence explocitily for now, as deep down in th +# dependency tree as reasonable instead of patching all packages failing above +if [ "$CARCH" = 'i486' ]; then + depends+=(libdrm) + depends+=(libxshmfence) + depends+=(wayland) +fi + +# defaults changed to SSE2 enabled by default, disable it +if [ "$CARCH" = 'i686' -o "$CARCH" = 'i486' ]; then + eval "$( + declare -f build | \ + sed ' + s/arch-meson /arch-meson -Dsse2=false / + ' + )" +fi + +# LTO on i486 results in out-of-memory +if [ "$CARCH" == 'i486' ]; then + eval "$( + declare -f build | \ + sed ' + s/-D b_lto=true/-D b_lto=false/ + ' + )" +fi + +# libclc needs spirv-llvm-translator which throws heavily errors on 32-bit +# LLVM_SPIRV :: DebugInfo/X86/dbg-declare-alloca.ll +# LLVM_SPIRV :: DebugInfo/X86/dbg-declare-arg.ll +# LLVM_SPIRV :: DebugInfo/X86/dbg-value-const-byref.ll +# LLVM_SPIRV :: DebugInfo/X86/dw_op_minus_direct.ll +# LLVM_SPIRV :: DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll +# LLVM_SPIRV :: DebugInfo/X86/frame-register.ll +# LLVM_SPIRV :: DebugInfo/X86/this-stack_value.ll +# LLVM_SPIRV :: spirv-extensions-control.ll +# LLVM_SPIRV :: transcoding/SPV_KHR_integer_dot_product-sat.ll +# usually with segfaults in the middle of LLVM itself +# this might be hopeless to get working +makedepends=(${makedepends[@]//libclc/}) +eval "$( + declare -f build | \ + sed ' + s/-D gallium-opencl=icd/-D gallium-opencl=disabled/ + ' + declare -f package_opencl-mesa | \ + sed ' + 3 i if false; then + $ i fi + ' +)" diff --git a/build-support/disabled/python-no-opt-no-check/PKGBUILD b/build-support/disabled/python-no-opt-no-check/PKGBUILD new file mode 100644 index 00000000..357d41c1 --- /dev/null +++ b/build-support/disabled/python-no-opt-no-check/PKGBUILD @@ -0,0 +1,65 @@ +# tests run with -j4 per default effectively killing build slaves, +# forcing single threaded execution of tests + +eval "$( + declare -f build | \ + sed " + s/make /make EXTRATESTOPTS='-j 1' / + " +)" + +eval "$( + declare -f check | \ + sed " + s/ -m test.regrtest/ -m test.regrtest -j1/ + " +)" + +makedepends=(${makedepends[@]//xorg-server-xvfb/}) +makedepends_i686+=(xorg-server-xvfb) +makedepends_pentium4=("${makedepends_i686[@]}") + +# skip xvfb stuff on i486 +if [ "$CARCH" = 'i486' ]; then + eval "$( + declare -f build | \ + sed ' + /export servernum=99/,/done/d + s/.*make/make/ + ' + )" + eval "$( + declare -f check | \ + sed ' + /export servernum=99/,/done/d + s/xvfb-run -s "-screen 0 1920x1080x16 -ac +extension GLX" -a -n "$servernum"// + ' + )" +fi + +# ignore failing realtime scheduling test as the systemd-nspawn container +# lacks the SYS_NICE capability (at least, I think so) +# ERROR: test_sched_rr_get_interval (test.test_posix.PosixTester) +# Bonus points for finding the option to ignore single tests in test_posix +# test_gdb currently fails for unknown reasons, also not that important +# test_socket tests take more than 1.5 hours, so ignoring them +# Ignore test_cmath test_math test_turtle - they fail due to too low precision +# on i686 (all of them - really? - actually, I just checket test_cmath) +eval "$( + declare -f check | \ + sed " + /-uall/ s/;\?$/ -x test_posix -x test_gdb -x test_socket -x test_cmath -x test_math -x test_turtle \\|\\| true/g + " +)" + +# LTO, PDO takes too long +eval "$( + declare -f build | \ + sed " + s/--with-lto/--without-lto/ + s/--enable-optimizations/--disable-optimizations/ + " +)" + +# for now disable testing +unset check diff --git a/build-support/disabled/python-pip-bootstrap/.SRCINFO b/build-support/disabled/python-pip-bootstrap/.SRCINFO deleted file mode 100644 index d88edfcc..00000000 --- a/build-support/disabled/python-pip-bootstrap/.SRCINFO +++ /dev/null @@ -1,21 +0,0 @@ -pkgbase = python-pip-bootstrap - pkgdesc = bootstap pip and setuptools for bootstrapping python - pkgver = 0.0.1 - pkgrel = 1 - url = https://bootstrap.pypa.io/ - arch = i486 - arch = i686 - arch = x86_64 - arch = armv6h - arch = armv7h - source = https://bootstrap.pypa.io/get-pip.py - sha512sums = 29971130c5d1d1baf2b51ef689b40c91fcd0d1e62de6f99d6abef6879684a59843be539cd112dfddc3637cc3d1a91c79f775d80f6aa2fe920252710d48d2934d - -pkgname = python-pip-bootstrap - install = install.sh - depends = python - -pkgname = python2-pip-bootstrap - install = install2.sh - depends = python2 - diff --git a/build-support/disabled/python-pip-bootstrap/PKGBUILD b/build-support/disabled/python-pip-bootstrap/PKGBUILD index f278e657..7dc64258 100644 --- a/build-support/disabled/python-pip-bootstrap/PKGBUILD +++ b/build-support/disabled/python-pip-bootstrap/PKGBUILD @@ -1,28 +1,26 @@ # Maintainer: Andreas Baumann <mail@andreasbaumann.cc> pkgname=('python-pip-bootstrap' 'python2-pip-bootstrap') -pkgver='19.3.1' -pkgrel='1' +pkgver=0.0.1 +pkgrel=1 pkgdesc="bootstap pip and setuptools for bootstrapping python" -arch=('x86_64' 'armv6h' 'armv7h') +arch=(i486 'i686' 'x86_64' 'armv6h' 'armv7h') url="https://bootstrap.pypa.io/" -source=("get-pip-${pkgver}.py::https://bootstrap.pypa.io/get-pip.py") -sha512sums=('d8744fcfa4dce749675632be0691a5e9bdac95e34d5b787bca6e635e2d6a25badbeb0b5f5ff6af1beb879604bdf060829805622a835a4b579967d806d3a642b5') +source=("https://bootstrap.pypa.io/get-pip.py") +sha512sums=('ae0f0b2e41f435d80f955eb577f74fa9561ba283b8c7f65a5dd96270beebf7d2c220d107865e07a31e66d25dd33953cca852100b3f04bf8990626aa69c60fa98') package_python-pip-bootstrap() { - provides=("python-pip=${pkgver}") depends=('python') install=install.sh mkdir -p "${pkgdir}/usr/bin" - cp "${srcdir}/get-pip-${pkgver}.py" "${pkgdir}/usr/bin/." + cp "${srcdir}/get-pip.py" "${pkgdir}/usr/bin/." } package_python2-pip-bootstrap() { - provides=("python2-pip=${pkgver}") depends=('python2') install=install2.sh mkdir -p "${pkgdir}/usr/bin" - cp "${srcdir}/get-pip-${pkgver}.py" "${pkgdir}/usr/bin/get-pip2.py" + cp "${srcdir}/get-pip.py" "${pkgdir}/usr/bin/get-pip2.py" } diff --git a/build-support/disabled/python-setuptools-egg-info-manually b/build-support/disabled/python-setuptools-egg-info-manually new file mode 100644 index 00000000..9320e0b6 --- /dev/null +++ b/build-support/disabled/python-setuptools-egg-info-manually @@ -0,0 +1,30 @@ +# create directory before installing (otherwise installing fails) +eval "$( + declare -f package | \ + sed ' + 4 i mkdir build/scripts-3.10 + ' +)" + +# ignore errors in tests, but execute the tests +eval "$( + declare -f check | \ + sed ' + s/\(python.*\)/\1 || true/ + ' +)" + +unset checkdepends +unset check + +# egg-infos are not installed correctly, create them before and install +# them manually +eval "$( + declare -f package | \ + sed ' + 6 i python setup.py egg_info \ + rm -rf "$pkgdir"/usr/lib/python3.10/site-packages/setuptools-57.4.0-py3.10.egg-info \ + mkdir "$pkgdir"/usr/lib/python3.10/site-packages/setuptools-57.4.0-py3.10.egg-info \ + cp -R setuptools.egg-info/* "$pkgdir"/usr/lib/python3.10/site-packages/setuptools-57.4.0-py3.10.egg-info/. + ' +)" diff --git a/build-support/disabled/python-urllib3/PKGBUILD b/build-support/disabled/python-urllib3/PKGBUILD new file mode 100644 index 00000000..ab31fc8d --- /dev/null +++ b/build-support/disabled/python-urllib3/PKGBUILD @@ -0,0 +1,28 @@ +# for now ignore failing TLS tests (not really comforting from a security +# point of view, but it blocks stuff) +# FAILED test/contrib/test_pyopenssl.py::TestSSL::test_ssl_read_timeout - urlli... +# FAILED test/contrib/test_pyopenssl.py::TestSSL::test_ssl_failed_fingerprint_verification +# FAILED test/with_dummyserver/test_socketlevel.py::TestSSL::test_ssl_read_timeout + +eval "$( + declare -f check | \ + sed ' + s/python setup.py pytest/python setup.py pytest || true/ + ' +)" + +# breaking the cycle with python-spinx +makedepends=(${makedepends[@]/python-sphinx-furo}) +makedepends=(${makedepends[@]/python-sphinx}) +eval "$( + declare -f build | \ + sed ' + /make html/d + ' +)" +eval "$( + declare -f package_python-urllib3-doc | \ + sed ' + /cp.*_build\/html/d + ' +)" diff --git a/build-support/disabled/python310/PKGBUILD b/build-support/disabled/python310/PKGBUILD new file mode 100644 index 00000000..a15bcc7c --- /dev/null +++ b/build-support/disabled/python310/PKGBUILD @@ -0,0 +1,73 @@ +# tests run with -j4 per default effectively killing build slaves, +# forcing single threaded execution of tests + +eval "$( + declare -f build | \ + sed " + s/make /make EXTRATESTOPTS='-j 1' / + " +)" + +eval "$( + declare -f check | \ + sed " + s/ -m test.regrtest/ -m test.regrtest -j1/ + " +)" + +makedepends=(${makedepends[@]//xorg-server-xvfb/}) +makedepends_i686+=(xorg-server-xvfb) +makedepends_pentium4=("${makedepends_i686[@]}") + +# skip xvfb stuff on i486 +if [ "$CARCH" = 'i486' ]; then + eval "$( + declare -f build | \ + sed ' + /export servernum=99/,/done/d + s/.*make/make/ + ' + )" + eval "$( + declare -f check | \ + sed ' + /export servernum=99/,/done/d + s/xvfb-run -s "-screen 0 1920x1080x16 -ac +extension GLX" -a -n "$servernum"// + ' + )" +fi + +# ignore failing realtime scheduling test as the systemd-nspawn container +# lacks the SYS_NICE capability (at least, I think so) +# ERROR: test_sched_rr_get_interval (test.test_posix.PosixTester) +# Bonus points for finding the option to ignore single tests in test_posix +# test_gdb currently fails for unknown reasons, also not that important +# test_socket tests take more than 1.5 hours, so ignoring them +# Ignore test_cmath test_math test_turtle - they fail due to too low precision +# on i686 (all of them - really? - actually, I just checket test_cmath) +eval "$( + declare -f check | \ + sed " + /-uall/ s/;\?$/ -x test_posix -x test_gdb -x test_socket -x test_cmath -x test_math -x test_turtle \\|\\| true/g + " +)" + +# enable ensurepip +eval "$( + declare -f build | \ + sed " + s/--without-ensurepip/--with-ensurepip/ + " +)" + +# LTO, PDO takes too long +eval "$( + declare -f build | \ + sed " + s/--with-lto/--without-lto/ + s/--enable-optimizations/--disable-optimizations/ + " +)" + +# for now disable testing +unset check diff --git a/build-support/disabled/releng/archiso32-git/PKGBUILD b/build-support/disabled/releng/archiso32-git/PKGBUILD new file mode 100644 index 00000000..ee776241 --- /dev/null +++ b/build-support/disabled/releng/archiso32-git/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: Sebastian Lau <lauseb644@gmail.com> +# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com> + +_pkgname=archiso32 +pkgname="${_pkgname}-git" +pkgver=i686.33.2.g1e308c7 +pkgrel=1 +pkgdesc="Arch Linux 32 livecd/liveusb generation scripts" +arch=('any') +url="http://archlinux32.org" +license=('GPL') +depends=('libisoburn' 'squashfs-tools' 'btrfs-progs' 'dosfstools' 'lynx' 'arch-install-scripts') +optdepends=('qemu: quickly test isos') +makedepends=('git') +provides=('archiso') +conflicts=('archiso') +source=("git://github.com/archlinux32/${_pkgname}.git") +md5sums=('SKIP') + +pkgver() { + cd "${srcdir}/${_pkgname}" + git describe --long | sed 's/-/./g;s/v//' +} + +package() { + cd "${srcdir}/${_pkgname}" + + make DESTDIR="${pkgdir}/" install +} + +# vim:set ts=2 sw=2 et: diff --git a/build-support/disabled/releng/asp32-git/PKGBUILD b/build-support/disabled/releng/asp32-git/PKGBUILD new file mode 100644 index 00000000..5eaa912e --- /dev/null +++ b/build-support/disabled/releng/asp32-git/PKGBUILD @@ -0,0 +1,25 @@ +# Maintainer: Andreas Baumann <mail@andreasbaumann.cc> + +pkgname=asp32-git +pkgver=1 +pkgrel=1 +pkgdesc="Arch Linux build source file management tool (for Archlinux32)" +arch=(any) +url="https://git.archlinux32.org/archlinux32/asp32" +license=(MIT) +depends=(awk bash jq git libarchive) +conflicts=(asp) +makedepends=(asciidoc) +source=("git+https://git.archlinux32.org/archlinux32/asp32.git") +md5sums=('SKIP') + +build() { + make -C asp32 +} + +package() { + make -C asp32 PREFIX=/usr DESTDIR="$pkgdir" install + install -Dm644 asp32/LICENSE "$pkgdir/usr/share/licenses/asp/LICENSE" +} + +# vim: ft=sh syn=sh et diff --git a/build-support/rime-luna-pinyin-bootstrap/PKGBUILD b/build-support/disabled/rime-luna-pinyin-bootstrap/PKGBUILD index 0f663756..0f663756 100644 --- a/build-support/rime-luna-pinyin-bootstrap/PKGBUILD +++ b/build-support/disabled/rime-luna-pinyin-bootstrap/PKGBUILD diff --git a/build-support/disabled/rust-bin/PKGBUILD b/build-support/disabled/rust-bin/PKGBUILD index ece1dfaf..d6610764 100644 --- a/build-support/disabled/rust-bin/PKGBUILD +++ b/build-support/disabled/rust-bin/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Andreas Baumann <mail@andreasbaumann.cc> pkgname=rust-bin -pkgver=1.49.0 +pkgver=1.57.0 pkgrel=1 pkgdesc='Binary precompiled packages for Rust' url='https://www.rust-lang.org/' @@ -15,11 +15,11 @@ source_x86_64=("https://static.rust-lang.org/dist/rust-$pkgver-x86_64-unknown-li source_pentium4=("https://static.rust-lang.org/dist/rust-$pkgver-i686-unknown-linux-gnu.tar.gz"{,.asc}) source_i686=("https://static.rust-lang.org/dist/rust-$pkgver-i686-unknown-linux-gnu.tar.gz"{,.asc}) -sha256sums_x86_64=('8b14446df82f3707d69cf58fed92f18e0bff91621c62baf89288ef70e3e92981' +sha256sums_x86_64=('ea0253784b2e5c22659ff148d492a68d2e11da734491714ebc61cc93896efcda' 'SKIP') -sha256sums_pentium4=('5371bfa2c8e566aa283acdfa93d24b981c789d7c040ac1ca74e76bff1c7f6598' +sha256sums_pentium4=('7e4ac8ca2874897099a3ceb89039ceee170f474a98ee247589fd6bca8dda7cfa' 'SKIP') -sha256sums_i686=('5371bfa2c8e566aa283acdfa93d24b981c789d7c040ac1ca74e76bff1c7f6598' +sha256sums_i686=('7e4ac8ca2874897099a3ceb89039ceee170f474a98ee247589fd6bca8dda7cfa' 'SKIP') validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE' # Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org> diff --git a/build-support/rust140/PKGBUILD b/build-support/disabled/rust140/PKGBUILD index 6d05c3a7..6d05c3a7 100644 --- a/build-support/rust140/PKGBUILD +++ b/build-support/disabled/rust140/PKGBUILD diff --git a/build-support/rust140/config.toml.patch b/build-support/disabled/rust140/config.toml.patch index 8d0762cd..8d0762cd 100644 --- a/build-support/rust140/config.toml.patch +++ b/build-support/disabled/rust140/config.toml.patch diff --git a/build-support/rust140/watcher.sh b/build-support/disabled/rust140/watcher.sh index 98228b5d..98228b5d 100755 --- a/build-support/rust140/watcher.sh +++ b/build-support/disabled/rust140/watcher.sh diff --git a/build-support/rust141/PKGBUILD b/build-support/disabled/rust141/PKGBUILD index afa6ad96..afa6ad96 100644 --- a/build-support/rust141/PKGBUILD +++ b/build-support/disabled/rust141/PKGBUILD diff --git a/build-support/rust141/config.toml.patch b/build-support/disabled/rust141/config.toml.patch index 8d0762cd..8d0762cd 100644 --- a/build-support/rust141/config.toml.patch +++ b/build-support/disabled/rust141/config.toml.patch diff --git a/build-support/rust141/rustc-1.41.0-src-typenum-U1024.patch b/build-support/disabled/rust141/rustc-1.41.0-src-typenum-U1024.patch index d1484d5c..d1484d5c 100644 --- a/build-support/rust141/rustc-1.41.0-src-typenum-U1024.patch +++ b/build-support/disabled/rust141/rustc-1.41.0-src-typenum-U1024.patch diff --git a/build-support/rust148/PKGBUILD b/build-support/disabled/rust148/PKGBUILD index 9ed1cba8..9ed1cba8 100644 --- a/build-support/rust148/PKGBUILD +++ b/build-support/disabled/rust148/PKGBUILD diff --git a/build-support/rust148/config.toml.patch b/build-support/disabled/rust148/config.toml.patch index 8d0762cd..8d0762cd 100644 --- a/build-support/rust148/config.toml.patch +++ b/build-support/disabled/rust148/config.toml.patch diff --git a/build-support/disabled/rust156-bin/PKGBUILD b/build-support/disabled/rust156-bin/PKGBUILD new file mode 100644 index 00000000..a60bcd82 --- /dev/null +++ b/build-support/disabled/rust156-bin/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Andreas Baumann <mail@andreasbaumann.cc> + +pkgname=rust156-bin +pkgver=1.56.0 +pkgrel=1 +pkgdesc='Binary precompiled packages for Rust' +url='https://www.rust-lang.org/' +arch=(x86_64 pentium4 i686) +license=('MIT' 'Apache') +provides=('rust' 'cargo') +conflicts=('rust' 'cargo') +options=('!emptydirs') + +source_x86_64=("https://static.rust-lang.org/dist/rust-$pkgver-x86_64-unknown-linux-gnu.tar.gz"{,.asc}) +source_pentium4=("https://static.rust-lang.org/dist/rust-$pkgver-i686-unknown-linux-gnu.tar.gz"{,.asc}) +source_i686=("https://static.rust-lang.org/dist/rust-$pkgver-i686-unknown-linux-gnu.tar.gz"{,.asc}) + +sha256sums_x86_64=('5189cd56447f9d56fcd7a1966efe5a8efd19843fdfd6bf9a23a9acbc57b5e3f9' + 'SKIP') +sha256sums_pentium4=('f5fa5686a79108959a2910c97cec7c642198efd2a617d7a1b6cfc97d33612fe0' + 'SKIP') +sha256sums_i686=('f5fa5686a79108959a2910c97cec7c642198efd2a617d7a1b6cfc97d33612fe0' + 'SKIP') + +validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE' # Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org> + '474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard <tstellar@redhat.com> + +case "${CARCH}" in + x86_64) _ARCH='x86_64-unknown-linux-gnu';; + i686|pentium4) _ARCH='i686-unknown-linux-gnu';; +esac + +package() { + cd "rust-$pkgver-$_ARCH" + + ./install.sh --prefix=/usr --destdir="$pkgdir" +} diff --git a/build-support/disabled/rust157-bin/PKGBUILD b/build-support/disabled/rust157-bin/PKGBUILD new file mode 100644 index 00000000..01f3e801 --- /dev/null +++ b/build-support/disabled/rust157-bin/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Andreas Baumann <mail@andreasbaumann.cc> + +pkgname=rust157-bin +pkgver=1.57.0 +pkgrel=1 +pkgdesc='Binary precompiled packages for Rust' +url='https://www.rust-lang.org/' +arch=(x86_64 pentium4 i686) +license=('MIT' 'Apache') +provides=('rust' 'cargo') +conflicts=('rust' 'cargo') +options=('!emptydirs') + +source_x86_64=("https://static.rust-lang.org/dist/rust-$pkgver-x86_64-unknown-linux-gnu.tar.gz"{,.asc}) +source_pentium4=("https://static.rust-lang.org/dist/rust-$pkgver-i686-unknown-linux-gnu.tar.gz"{,.asc}) +source_i686=("https://static.rust-lang.org/dist/rust-$pkgver-i686-unknown-linux-gnu.tar.gz"{,.asc}) + +sha256sums_x86_64=('ea0253784b2e5c22659ff148d492a68d2e11da734491714ebc61cc93896efcda' + 'SKIP') +sha256sums_pentium4=('7e4ac8ca2874897099a3ceb89039ceee170f474a98ee247589fd6bca8dda7cfa' + 'SKIP') +sha256sums_i686=('7e4ac8ca2874897099a3ceb89039ceee170f474a98ee247589fd6bca8dda7cfa' + 'SKIP') + +validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE' # Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org> + '474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard <tstellar@redhat.com> + +case "${CARCH}" in + x86_64) _ARCH='x86_64-unknown-linux-gnu';; + i686|pentium4) _ARCH='i686-unknown-linux-gnu';; +esac + +package() { + cd "rust-$pkgver-$_ARCH" + + ./install.sh --prefix=/usr --destdir="$pkgdir" +} diff --git a/build-support/disabled/rust159-bin/PKGBUILD b/build-support/disabled/rust159-bin/PKGBUILD new file mode 100644 index 00000000..205e3d61 --- /dev/null +++ b/build-support/disabled/rust159-bin/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Andreas Baumann <mail@andreasbaumann.cc> + +pkgname=rust159-bin +pkgver=1.59.0 +pkgrel=1 +pkgdesc='Binary precompiled packages for Rust' +url='https://www.rust-lang.org/' +arch=(x86_64 pentium4 i686) +license=('MIT' 'Apache') +provides=('rust' 'cargo') +conflicts=('rust' 'cargo') +options=('!emptydirs') + +source_x86_64=("https://static.rust-lang.org/dist/rust-$pkgver-x86_64-unknown-linux-gnu.tar.gz"{,.asc}) +source_pentium4=("https://static.rust-lang.org/dist/rust-$pkgver-i686-unknown-linux-gnu.tar.gz"{,.asc}) +source_i686=("https://static.rust-lang.org/dist/rust-$pkgver-i686-unknown-linux-gnu.tar.gz"{,.asc}) + +sha256sums_x86_64=('0c1c2da3fa26372e5178123aa5bb0fdcd4933fbad9bfb268ffbd71807182ecae' + 'SKIP') +sha256sums_pentium4=('f57ebfafed1e857b2b1dc1a22cf1133766f68a0759dc2f717dec54a8d4385dec' + 'SKIP') +sha256sums_i686=('f57ebfafed1e857b2b1dc1a22cf1133766f68a0759dc2f717dec54a8d4385dec' + 'SKIP') + +validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE' # Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org> + '474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard <tstellar@redhat.com> + +case "${CARCH}" in + x86_64) _ARCH='x86_64-unknown-linux-gnu';; + i686|pentium4) _ARCH='i686-unknown-linux-gnu';; +esac + +package() { + cd "rust-$pkgver-$_ARCH" + + ./install.sh --prefix=/usr --destdir="$pkgdir" +} diff --git a/build-support/disabled/uinit/.SRCINFO b/build-support/disabled/uinit/.SRCINFO new file mode 100644 index 00000000..37b1f9dd --- /dev/null +++ b/build-support/disabled/uinit/.SRCINFO @@ -0,0 +1,14 @@ +pkgbase = uinit + pkgdesc = uinit -- smallest init possible + pkgver = 20171230git + pkgrel = 1 + url = https://github.com/shiftypenguin/uinit + arch = i686 + arch = x86_64 + license = custom:unlicense + makedepends = git + source = git+https://github.com/shiftypenguin/uinit.git#commit=8c11abef + sha512sums = SKIP + +pkgname = uinit + diff --git a/build-support/disabled/uinit/PKGBUILD b/build-support/disabled/uinit/PKGBUILD new file mode 100644 index 00000000..2afaf4bb --- /dev/null +++ b/build-support/disabled/uinit/PKGBUILD @@ -0,0 +1,32 @@ +# Maintainer: Andreas Baumann <mail@andreasbaumann.cc> + +pkgname=uinit +pkgver=20171230git +_commit=8c11abef +pkgrel=1 +pkgdesc="uinit -- smallest init possible" +arch=('i686' 'x86_64') +url="https://github.com/shiftypenguin/uinit" +license=('custom:unlicense') +makedepends=('git') +source=("git+https://github.com/shiftypenguin/uinit.git#commit=${_commit}") +sha512sums=('SKIP') + +build() { + cd "${srcdir}/${pkgname}" + + make CFLAGS="${CFLAGS}" +} + +package(){ + cd "${srcdir}/${pkgname}" + + install -d -m0755 ${pkgdir}/{usr/bin,sbin} + + make DESTDIR="${pkgdir}" install + + install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + + mv ${pkgdir}/sbin/* ${pkgdir}/usr/bin/. + rmdir ${pkgdir}/sbin +} diff --git a/build-support/disabled/vala-bootstrap/PKGBUILD b/build-support/disabled/vala-bootstrap/PKGBUILD new file mode 100644 index 00000000..40aceda3 --- /dev/null +++ b/build-support/disabled/vala-bootstrap/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Andreas Baumann <mail@andreasbaumann.cc> + +pkgname=vala-bootstrap +pkgver=0.16.1 +pkgrel=1 +pkgdesc='Bootstrapping Compiler for the GObject type system' +url='https://wiki.gnome.org/Projects/Vala' +arch=(i486 i686 pentium4 x86_64) +license=(LGPL) +depends=() +makedepends=(git) +provides=(vala) +conflicts=(vala) +_commit=b2beeacc # corresponds to 0.16.1 +source=("git+https://gitlab.gnome.org/Archive/vala-bootstrap.git#commit=$_commit") +sha256sums=('SKIP') + +prepare() { + cd $pkgname +} + +build() { + cd $pkgname + ./configure --prefix=/usr --disable-build-from-vala + make +} + +check() { + cd $pkgname +# tests are horribly broken +# make check +} + +package() { + cd $pkgname + make DESTDIR="$pkgdir" install +} diff --git a/build-support/disabled/vala/PKGBUILD b/build-support/disabled/vala/PKGBUILD new file mode 100644 index 00000000..0f6ce63a --- /dev/null +++ b/build-support/disabled/vala/PKGBUILD @@ -0,0 +1,5 @@ +# bootstrapping vala with vala-bootstrap (only for i486 for now) +if [ "$CARCH" = 'i486' ]; then + makedepends=(${makedepends[@]//vala/}) + makedepends+=(vala-bootstrap) +fi diff --git a/build-support/ghc90-bin/PKGBUILD b/build-support/ghc90-bin/PKGBUILD new file mode 100644 index 00000000..beb4c2bf --- /dev/null +++ b/build-support/ghc90-bin/PKGBUILD @@ -0,0 +1,65 @@ +# Maintainer: Rudy Matela <rudy@matela.com.br> +# +# Contributor: Rudy Matela <rudy@matela.com.br> +# +# This package can coexist with the latest version of GHC. +# If you would like to compile GHC yourself (AUR: ghc9.0), +# you can use this to bootstrap compilation. +pkgname=ghc90-bin +pkgver=9.0.1 +pkgrel=1 +pkgdesc='Legacy binary GHC 9.0 installed on /usr/bin/ghc-9.0 (Feb/2021 - Feb/2021).' +arch=('i486' 'i686' 'pentium4') +url='http://www.haskell.org/ghc/' +license=('custom') +depends=('gcc' 'gmp' 'libffi' 'perl' 'ncurses5-compat-libs') +makedepends=( 'perl' 'libxslt' 'docbook-xsl') +checkdepends=('python2') +install='ghc.install' +options=('staticlibs') +provides=('ghc9.0') +conflicts=('ghc9.0') +source=("https://www.haskell.org/ghc/dist/${pkgver}/ghc-${pkgver}-i386-deb9-linux.tar.xz") +noextract=("ghc-${pkgver}-${CARCH}-deb10-linux.tar.xz") +sha256sums=('880e37cea8328401bcfecfe4bb56eb85195f30135b140140b3f24094264f8ba5') + +prepare() { + # for some reason, bsdtar cannot unpack this file: + tar -xf "ghc-${pkgver}-i386-deb9-linux.tar.xz" + # see https://wiki.archlinux.org/index.php/PKGBUILD#noextract +} + +build() { + cd ghc-${pkgver} + + sed -i 's,"$bindir/ghc","$bindir/ghc-9.0",' utils/runghc/runghc.wrapper + + ./configure \ + --prefix=/usr \ + --docdir=/usr/share/doc/ghc-9.0 +} + +package() { + cd ghc-${pkgver} + + make DESTDIR=${pkgdir} install + + mv ${pkgdir}/usr/bin/ghc ${pkgdir}/usr/bin/ghc-9.0 + mv ${pkgdir}/usr/bin/ghci ${pkgdir}/usr/bin/ghci-9.0 + mv ${pkgdir}/usr/bin/ghc-pkg ${pkgdir}/usr/bin/ghc-pkg-9.0 + mv ${pkgdir}/usr/bin/haddock ${pkgdir}/usr/bin/haddock-ghc-9.0 + mv ${pkgdir}/usr/bin/hp2ps ${pkgdir}/usr/bin/hp2ps-ghc-9.0 + mv ${pkgdir}/usr/bin/hpc ${pkgdir}/usr/bin/hpc-ghc-9.0 + mv ${pkgdir}/usr/bin/hsc2hs ${pkgdir}/usr/bin/hsc2hs-ghc-9.0 + mv ${pkgdir}/usr/bin/runghc ${pkgdir}/usr/bin/runghc-9.0 + rm ${pkgdir}/usr/bin/runhaskell # use runghc-9.0 instead + + mv ${pkgdir}/usr/share/man/man1/ghc.1 ${pkgdir}/usr/share/man/man1/ghc-9.0 + + install -d ${pkgdir}/usr/share/licenses/ghc-9.0 + install -m644 LICENSE ${pkgdir}/usr/share/licenses/ghc-9.0 + + # for some reason I end up with the wrong LLVM target on IA-32, + # patch it + sed -i 's/,("LLVM target", ".*")/,("LLVM target", "i686-unknown-linux")/' ${pkgdir}/usr/lib/ghc-9.0.1/settings +} diff --git a/build-support/ghc90-bin/ghc.install b/build-support/ghc90-bin/ghc.install new file mode 100644 index 00000000..68eed631 --- /dev/null +++ b/build-support/ghc90-bin/ghc.install @@ -0,0 +1,10 @@ +pre_upgrade() { + echo '==> Unregistering cabalized packages...' + [[ -d /usr/share/haskell-ghc-9.0 ]] && find /usr/share/haskell-ghc-9.0 -maxdepth 2 -name 'unregister.sh' -exec {} \; + echo '==> Done.' +} + +post_upgrade() { + echo '==> All cabalized packages need to be reinstalled now.' + echo '==> See /usr/share/haskell-ghc-9.0/ and ghc-pkg-9.0 list --user for a tentative list of affected packages.' +} diff --git a/build-support/graphviz-dummy/PKGBUILD b/build-support/graphviz-dummy/PKGBUILD index 6af25470..4ec43649 100644 --- a/build-support/graphviz-dummy/PKGBUILD +++ b/build-support/graphviz-dummy/PKGBUILD @@ -1,5 +1,5 @@ pkgname=graphviz-dummy -pkgver='2.47.0' +pkgver='2.50.0' pkgrel='1' pkgdesc='Graph visualization software - dummy package for i486' url='https://www.graphviz.org/' diff --git a/build-support/java10-openjdk/PKGBUILD b/build-support/java10-openjdk/PKGBUILD new file mode 100644 index 00000000..d0f15286 --- /dev/null +++ b/build-support/java10-openjdk/PKGBUILD @@ -0,0 +1,324 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> + +# TODO add test, see about packaging jtreg and using it here +# TODO see about building with OpenJDK10 +# TODO add javazi +# TODO when IcedTea provides it, package icedtea-web and add it as optdepends +# TODO package OpenJFX for OpenJDK10 and add it as optdepends + +## EXPLORATIONS +# TODO extract a jmods package from jdk10-openjdk? +# TODO extract a jdk-headless package? + +pkgbase=java10-openjdk +pkgname=('jre10-openjdk-headless' 'jre10-openjdk' 'jdk10-openjdk' 'openjdk10-src' 'openjdk10-doc') +_majorver=10 +_minorver=0 +_securityver=2 +_updatever=13 +pkgrel=1 +pkgver=${_majorver}.${_minorver}.${_securityver}.u${_updatever} +_hg_tag=jdk-${_majorver}.${_minorver}.${_securityver}+${_updatever} +arch=('x86_64' 'i486' 'i686' 'pentium4') +url='http://openjdk.java.net/' +license=('custom') +makedepends=('jdk9-openjdk' 'cpio' 'unzip' 'zip' 'libelf' 'libcups' 'libx11' + 'libxrender' 'libxtst' 'libxt' 'libxext' 'alsa-lib' + 'graphviz' 'freetype2' 'libjpeg-turbo' 'giflib' 'libpng' 'lcms2' + 'libnet' 'bash') +source=(http://hg.openjdk.java.net/jdk-updates/jdk${_majorver}u/archive/${_hg_tag}.tar.gz + freedesktop-java.desktop + freedesktop-jconsole.desktop + freedesktop-jshell.desktop + jdk10u-jdk-10.0.2+13-make43.patch + jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon.patch + jdk10u-jdk-10.0.2+13-bitmap-segv.patch + jdk10u-jdk-10.0.2+13-oscontainer-wrong-compare.patch + jdk10u-jdk-10.0.2+13-c1.patch + ) +sha256sums=('f34a53b049f2e3ee8d954998687c4a48b56f24efbb2738ae7fe81bbbdff7f078' + '819e6ca314641c3115566f9478fbd8671f5d884a3d4e65f05950b4bd2d3b8451' + '5276edf203e5a75607c55b8bd4ae4f76cf61360811190286829c66d0c4b06554' + '0bcdb1eb9640775ca61e87ffeb9b0e0f99386b41f51fec753688bdd5ff9b6010' + 'e35145e071fd173d696afd7ad0a1d7ed4483d53980c3ac54113dc535769ccb37' + 'b266913bf362c46ace53972fabc1014a9e4e455981f2f22a551037f6d300a13b' + 'c7af7c1a22ba0174225cd29733d484b5a4aefe9e0a6b1f505c3fff51e697cd7a' + 'd9f4ec837471ad48dbcac60e99be2617afb970d92eeb1d636eb91abfd7382554' + '1f2c39b9c0c0c4371cf5f098d7ea970970ac6102917d4308ed57c0f5585bdb0b' + ) + +case "${CARCH}" in + x86_64) _JARCH='x86_64';; + i486|i686|pentium4) _JARCH='x86';; +esac + +_jvmdir=/usr/lib/jvm/java-${_majorver}-openjdk +_jdkdir=jdk${_majorver}u-${_hg_tag} +_imgdir=${_jdkdir}/build/linux-${_JARCH}-normal-server-release/images +_imgdir="${_imgdir//--/-${_JARCH}-}" + +_nonheadless=(lib/libawt_xawt.so + lib/libjawt.so + lib/libjsoundalsa.so + lib/libsplashscreen.so) +#_nonheadless=( +# "${_nonheadless[@]/\/\///${_JARCH}/}" +#) + +prepare() { + cd ${_jdkdir} + + # see https://bugs.openjdk.java.net/browse/JDK-8237879 + patch -Np1 < $srcdir/jdk10u-jdk-10.0.2+13-make43.patch + + # some gcc 10 issues and backports of known bugs + patch -Np1 < $srcdir/jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon.patch + patch -Np1 < $srcdir/jdk10u-jdk-10.0.2+13-bitmap-segv.patch + patch -Np1 < $srcdir/jdk10u-jdk-10.0.2+13-oscontainer-wrong-compare.patch + patch -Np1 < $srcdir/jdk10u-jdk-10.0.2+13-c1.patch +} + +build() { + cd ${_jdkdir} + + NUM_PROC_OPT='' + MAKEFLAG_J=$(echo ${MAKEFLAGS} | sed -En 's/.*-j([0-9]+).*/\1/p') + if [ -n "${MAKEFLAG_J}" ]; then + # http://hg.openjdk.java.net/jdk10/jdk10/file/85e6cb013b98/make/InitSupport.gmk#l105 + echo "Removing '-j${MAKEFLAG_J}' from MAKEFLAGS to prevent build fail. Passing it directly to ./configure." + export MAKEFLAGS=${MAKEFLAGS/-j${MAKEFLAG_J}/} +# fails to build with more than one core +# NUM_PROC_OPT="--with-num-cores=${MAKEFLAG_J}" + NUM_PROC_OPT="--with-num-cores=1" + fi + + # Avoid optimization of HotSpot being lowered from O3 to O2 + local _CFLAGS="${CFLAGS//-O2/-O3} ${CPPFLAGS}" + local _CXXFLAGS="${CXXFLAGS//-O2/-O3} ${CPPFLAGS}" + local _LDFLAGS=${LDFLAGS} + if [[ $CARCH = i486 || $CARCH = i686 || $CARCH = pentium4 ]]; then + echo "Removing '-fno-plt' from CFLAGS and CXXFLAGS to prevent build fail with this architecture" + _CFLAGS=${CFLAGS/-fno-plt/} + _CXXFLAGS=${CXXFLAGS/-fno-plt/} + fi + + # i486-specific + if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 + _DOC_ARCH=x86 + fi + + # pentium4-specific + if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + _DOC_ARCH=x86 + # force 4-byte stack alignment on SSE aptimized systems, see FS32#75 + _CFLAGS+=" -mincoming-stack-boundary=2" + _CXXFLAGS+=" -mincoming-stack-boundary=2" + fi + + # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning + # in the output of ./configure unless used like such: + # --with-extra-cflags="${CFLAGS}" + # --with-extra-cxxflags="${CXXFLAGS}" + # --with-extra-ldflags="${LDFLAGS}" + # See also paragraph "Configure Control Variables from "jdk${_majorver}-${_hg_tag}/common/doc/building.md + unset CFLAGS + unset CXXFLAGS + unset LDFLAGS + + bash configure \ + --with-version-build="${_updatever}" \ + --with-version-pre="" \ + --with-version-opt="" \ + --with-stdc++lib=dynamic \ + --with-extra-cflags="${_CFLAGS}" \ + --with-extra-cxxflags="${_CXXFLAGS}" \ + --with-extra-ldflags="${_LDFLAGS}" \ + --with-libjpeg=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-lcms=system \ + --with-zlib=system \ + --enable-unlimited-crypto \ + --disable-warnings-as-errors \ + ${NUM_PROC_OPT} + #--disable-javac-server + + make images docs + + # https://bugs.openjdk.java.net/browse/JDK-8173610 + find "../${_imgdir}" -iname '*.so' -exec chmod +x {} \; +} + +check() { + cd ${_jdkdir} + #make -k check + #make run-test-tier1 +} + +package_jre10-openjdk-headless() { + pkgdesc="OpenJDK Java ${_majorver} headless runtime environment" + depends=('java-runtime-common>=3' 'ca-certificates-utils' 'nss' 'libjpeg-turbo' 'lcms2' 'libnet' 'freetype2') + optdepends=('java-rhino: for some JavaScript support') + provides=("java-runtime-headless=${_majorver}" "java-runtime-headless-openjdk=${_majorver}") + replaces=('jre9-openjdk-headless') + backup=(etc/${pkgbase}/logging.properties + etc/${pkgbase}/management/jmxremote.access + etc/${pkgbase}/management/jmxremote.password.template + etc/${pkgbase}/management/management.properties + etc/${pkgbase}/net.properties + etc/${pkgbase}/security/java.policy + etc/${pkgbase}/security/java.security + etc/${pkgbase}/security/policy/README.txt + etc/${pkgbase}/security/policy/limited/default_US_export.policy + etc/${pkgbase}/security/policy/limited/default_local.policy + etc/${pkgbase}/security/policy/limited/exempt_local.policy + etc/${pkgbase}/security/policy/unlimited/default_US_export.policy + etc/${pkgbase}/security/policy/unlimited/default_local.policy + etc/${pkgbase}/sound.properties) + install=install_jre10-openjdk-headless.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin lib \ + "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + rm "${pkgdir}${_jvmdir}/${f}" + done + + cp ../jdk/release "${pkgdir}${_jvmdir}" + cp ../jdk/lib/modules "${pkgdir}${_jvmdir}/lib" + + # Conf + install -dm 755 "${pkgdir}/etc" + cp -r conf "${pkgdir}/etc/${pkgbase}" + ln -s /etc/${pkgbase} "${pkgdir}/${_jvmdir}/conf" + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + ln -s /usr/share/licenses/${pkgbase} "${pkgdir}/${_jvmdir}/legal" + + # Man pages + for f in man/man1/* man/ja/man1/*; do + install -Dm 644 "${f}" "${pkgdir}/usr/share/${f/\.1/-openjdk10.1}" + done + ln -s /usr/share/man "${pkgdir}/${_jvmdir}/man" + + # Link JKS keystore from ca-certificates-utils + rm -f "${pkgdir}${_jvmdir}/lib/security/cacerts" + ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}${_jvmdir}/lib/security/cacerts" +} + +package_jre10-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} full runtime environment" + depends=("jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}" 'giflib') + optdepends=('alsa-lib: for basic sound support' + 'gtk2: for the Gtk+ 2 look and feel - desktop usage' + 'gtk3: for the Gtk+ 3 look and feel - desktop usage') + provides=("java-runtime=${_majorver}" "java-runtime-openjdk=${_majorver}") + replaces=('jre9-openjdk ') + install=install_jre10-openjdk.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + install -Dm 644 ${f} "${pkgdir}${_jvmdir}/${f}" + done + + # Licenses + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_jdk10-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} development kit" + depends=("jre${_majorver}-openjdk=${pkgver}-${pkgrel}" 'java-environment-common=3' 'hicolor-icon-theme' 'libelf') + provides=("java-environment=${_majorver}" "java-environment-openjdk=${_majorver}") + replaces=('jdk9-openjdk') + install=install_jdk10-openjdk.sh + + cd ${_imgdir}/jdk + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin demo include jmods lib \ + "${pkgdir}${_jvmdir}" + + rm "${pkgdir}${_jvmdir}/lib/src.zip" + + # Remove files held by JRE + pushd ../jre + for d in bin lib; do + find ${d} ! -type d -exec rm "${pkgdir}${_jvmdir}/{}" \; + done + popd + find "${pkgdir}${_jvmdir}/lib" -type d -empty -delete + + # Conf files all belong to JRE + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + pushd ../jre/legal + find . ! -type d -exec rm "${pkgdir}/usr/share/licenses/${pkgbase}/{}" \; + popd + find "${pkgdir}/usr/share/licenses" -type d -empty -delete + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + + # Man pages + for f in man/man1/* man/ja/man1/*; do + if [ ! -e "../jre/${f}" ]; then + install -Dm 644 "${f}" "${pkgdir}/usr/share/${f/\.1/-openjdk${_majorver}.1}" + fi + done + + # Icons + for s in 16 24 32 48; do + install -Dm 644 \ + "${srcdir}/jdk${_majorver}u-${_hg_tag}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/${pkgbase}.png" + done + + # Desktop files + for f in jconsole java jshell; do + install -Dm 644 \ + "${srcdir}/freedesktop-${f}.desktop" \ + "${pkgdir}/usr/share/applications/${f}-${pkgbase}.desktop" + done +} + +package_openjdk10-src() { + pkgdesc="OpenJDK Java ${_majorver} sources" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + replaces=('openjdk9-src') + + install -Dm 644 -t "${pkgdir}${_jvmdir}/lib" ${_imgdir}/jdk/lib/src.zip + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_openjdk10-doc() { + pkgdesc="OpenJDK Java ${_majorver} documentation" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + replaces=('openjdk9-doc') + + install -dm 755 "${pkgdir}/usr/share/doc" + cp -r ${_imgdir}/docs "${pkgdir}/usr/share/doc/${pkgbase}" + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +# vim: ts=2 sw=2 et: diff --git a/build-support/java10-openjdk/freedesktop-java.desktop b/build-support/java10-openjdk/freedesktop-java.desktop new file mode 100644 index 00000000..a84496ec --- /dev/null +++ b/build-support/java10-openjdk/freedesktop-java.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=OpenJDK Java 10 Runtime +Name[fi]=OpenJDK Java 10 - ajonaikainen ympäristö +Comment=OpenJDK Java 10 Runtime +Comment[fi]=OpenJDK Java 10 - ajonaikainen ympäristö +Keywords=java;runtime +Exec=/usr/lib/jvm/java-10-openjdk/bin/java -jar +Terminal=false +Type=Application +Icon=java10-openjdk +MimeType=application/x-java-archive;application/java-archive;application/x-jar; +NoDisplay=true diff --git a/build-support/java10-openjdk/freedesktop-jconsole.desktop b/build-support/java10-openjdk/freedesktop-jconsole.desktop new file mode 100644 index 00000000..50436a54 --- /dev/null +++ b/build-support/java10-openjdk/freedesktop-jconsole.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK Java 10 Console +Name[fi]=OpenJDK Java 10 - konsoli +Comment=OpenJDK Java 10 Monitoring & Management Console +Comment[fi]=OpenJDK Java 10 - valvonta- ja hallintakonsoli +Keywords=java;console;monitoring +Exec=/usr/lib/jvm/java-10-openjdk/bin/jconsole +Terminal=false +Type=Application +Icon=java10-openjdk +Categories=Application;System; diff --git a/build-support/java10-openjdk/freedesktop-jshell.desktop b/build-support/java10-openjdk/freedesktop-jshell.desktop new file mode 100644 index 00000000..a0cdd900 --- /dev/null +++ b/build-support/java10-openjdk/freedesktop-jshell.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=OpenJDK Java 10 Shell +Comment=OpenJDK Java 10 Shell +Keywords=java;shell +Exec=/usr/lib/jvm/java-10-openjdk/bin/jshell +Terminal=true +Type=Application +Icon=java10-openjdk +Categories=Application;System; diff --git a/build-support/java10-openjdk/install_jdk10-openjdk.sh b/build-support/java10-openjdk/install_jdk10-openjdk.sh new file mode 100644 index 00000000..d931854c --- /dev/null +++ b/build-support/java10-openjdk/install_jdk10-openjdk.sh @@ -0,0 +1,50 @@ +THIS_JDK='java-10-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JDK} + ;; + ${THIS_JDK}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + default=$(fix_default) + if [ -z "${default}" ]; then + /usr/bin/archlinux-java set ${THIS_JDK} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then + # Check JRE10 is still available + if [ -x /usr/lib/jvm/${THIS_JDK}/bin/java ]; then + /usr/bin/archlinux-java unset + fi + fi +} diff --git a/build-support/java10-openjdk/install_jre10-openjdk-headless.sh b/build-support/java10-openjdk/install_jre10-openjdk-headless.sh new file mode 100644 index 00000000..1b02d707 --- /dev/null +++ b/build-support/java10-openjdk/install_jre10-openjdk-headless.sh @@ -0,0 +1,48 @@ +THIS_JRE='java-10-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + default=$(fix_default) + if [ "x${default}" = "x${THIS_JRE}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java10-openjdk/install_jre10-openjdk.sh b/build-support/java10-openjdk/install_jre10-openjdk.sh new file mode 100644 index 00000000..47003e56 --- /dev/null +++ b/build-support/java10-openjdk/install_jre10-openjdk.sh @@ -0,0 +1,35 @@ +THIS_JRE='java-10-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + echo "when you use a non-reparenting window manager," + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh" +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi +} diff --git a/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-bitmap-segv.patch b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-bitmap-segv.patch new file mode 100644 index 00000000..96cec5ac --- /dev/null +++ b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-bitmap-segv.patch @@ -0,0 +1,14 @@ +diff -rauN jdk10u-jdk-10.0.2+13/src/hotspot/share/utilities/bitMap.cpp jdk10u-jdk-10.0.2+13-bitmap-segv-patch/src/hotspot/share/utilities/bitMap.cpp +--- jdk10u-jdk-10.0.2+13/src/hotspot/share/utilities/bitMap.cpp 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-bitmap-segv-patch/src/hotspot/share/utilities/bitMap.cpp 2021-05-17 17:10:22.467980460 +0200 +@@ -548,7 +548,9 @@ + bm_word_t* dest_map = map(); + const bm_word_t* other_map = other.map(); + idx_t copy_words = word_index(size()); +- Copy::disjoint_words((HeapWord*)other_map, (HeapWord*)dest_map, copy_words); ++ if (other_map != NULL) { ++ Copy::disjoint_words((HeapWord*)other_map, (HeapWord*)dest_map, copy_words); ++ } + idx_t rest = bit_in_word(size()); + if (rest > 0) { + dest_map[copy_words] = merge_tail_of_map(other_map[copy_words], diff --git a/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-c1.patch b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-c1.patch new file mode 100644 index 00000000..2217b37f --- /dev/null +++ b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-c1.patch @@ -0,0 +1,57 @@ +diff -rauN jdk10u-jdk-10.0.2+13/src/hotspot/share/c1/c1_Instruction.hpp jdk10u-jdk-10.0.2+13-c1-patch/src/hotspot/share/c1/c1_Instruction.hpp +--- jdk10u-jdk-10.0.2+13/src/hotspot/share/c1/c1_Instruction.hpp 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-c1-patch/src/hotspot/share/c1/c1_Instruction.hpp 2021-05-17 17:31:40.472148317 +0200 +@@ -303,7 +303,6 @@ + XHandlers* _exception_handlers; // Flat list of exception handlers covering this instruction + + friend class UseCountComputer; +- friend class BlockBegin; + + void update_exception_state(ValueStack* state); + +@@ -349,7 +348,6 @@ + void* operator new(size_t size) throw() { + Compilation* c = Compilation::current(); + void* res = c->arena()->Amalloc(size); +- ((Instruction*)res)->_id = c->get_next_id(); + return res; + } + +@@ -410,7 +408,8 @@ + + // creation + Instruction(ValueType* type, ValueStack* state_before = NULL, bool type_is_constant = false) +- : _use_count(0) ++ : _id(Compilation::current()->get_next_id()) ++ , _use_count(0) + #ifndef PRODUCT + , _printable_bci(-99) + #endif +@@ -1648,8 +1647,6 @@ + void* operator new(size_t size) throw() { + Compilation* c = Compilation::current(); + void* res = c->arena()->Amalloc(size); +- ((BlockBegin*)res)->_id = c->get_next_id(); +- ((BlockBegin*)res)->_block_id = c->get_next_block_id(); + return res; + } + +@@ -1661,6 +1658,7 @@ + // creation + BlockBegin(int bci) + : StateSplit(illegalType) ++ , _block_id(Compilation::current()->get_next_block_id()) + , _bci(bci) + , _depth_first_number(-1) + , _linear_scan_number(-1) +diff -rauN jdk10u-jdk-10.0.2+13/src/hotspot/share/c1/c1_ValueMap.cpp jdk10u-jdk-10.0.2+13-c1-patch/src/hotspot/share/c1/c1_ValueMap.cpp +--- jdk10u-jdk-10.0.2+13/src/hotspot/share/c1/c1_ValueMap.cpp 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-c1-patch/src/hotspot/share/c1/c1_ValueMap.cpp 2021-05-17 17:32:03.702163251 +0200 +@@ -488,6 +488,7 @@ + : _current_map(NULL) + , _value_maps(ir->linear_scan_order()->length(), ir->linear_scan_order()->length(), NULL) + , _compilation(ir->compilation()) ++ , _has_substitutions(false) + { + TRACE_VALUE_NUMBERING(tty->print_cr("****** start of global value numbering")); + diff --git a/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon.patch b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon.patch new file mode 100644 index 00000000..92700957 --- /dev/null +++ b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon.patch @@ -0,0 +1,87 @@ +diff -rauN jdk10u-jdk-10.0.2+13/src/java.base/unix/native/libjava/childproc.c jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c +--- jdk10u-jdk-10.0.2+13/src/java.base/unix/native/libjava/childproc.c 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c 2021-05-16 21:08:01.825997035 +0200 +@@ -33,6 +33,7 @@ + + #include "childproc.h" + ++const char * const *parentPathv; + + ssize_t + restartableWrite(int fd, const void *buf, size_t count) +diff -rauN jdk10u-jdk-10.0.2+13/src/java.base/unix/native/libjava/childproc.h jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h +--- jdk10u-jdk-10.0.2+13/src/java.base/unix/native/libjava/childproc.h 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h 2021-05-16 21:08:01.905997132 +0200 +@@ -118,7 +118,7 @@ + * The cached and split version of the JDK's effective PATH. + * (We don't support putenv("PATH=...") in native code) + */ +-const char * const *parentPathv; ++extern const char * const *parentPathv; + + ssize_t restartableWrite(int fd, const void *buf, size_t count); + int restartableDup2(int fd_from, int fd_to); +diff -rauN jdk10u-jdk-10.0.2+13/src/java.security.jgss/unix/native/libj2gss/NativeFunc.c jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/java.security.jgss/unix/native/libj2gss/NativeFunc.c +--- jdk10u-jdk-10.0.2+13/src/java.security.jgss/unix/native/libj2gss/NativeFunc.c 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/java.security.jgss/unix/native/libj2gss/NativeFunc.c 2021-05-16 21:08:01.905997132 +0200 +@@ -28,6 +28,9 @@ + #include <dlfcn.h> + #include "NativeFunc.h" + ++/* global GSS function table */ ++GSS_FUNCTION_TABLE_PTR ftab; ++ + /* standard GSS method names (ordering is from mapfile) */ + static const char RELEASE_NAME[] = "gss_release_name"; + static const char IMPORT_NAME[] = "gss_import_name"; +diff -rauN jdk10u-jdk-10.0.2+13/src/java.security.jgss/unix/native/libj2gss/NativeFunc.h jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/java.security.jgss/unix/native/libj2gss/NativeFunc.h +--- jdk10u-jdk-10.0.2+13/src/java.security.jgss/unix/native/libj2gss/NativeFunc.h 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/java.security.jgss/unix/native/libj2gss/NativeFunc.h 2021-05-16 21:08:01.975997215 +0200 +@@ -265,6 +265,6 @@ + typedef GSS_FUNCTION_TABLE *GSS_FUNCTION_TABLE_PTR; + + /* global GSS function table */ +-GSS_FUNCTION_TABLE_PTR ftab; ++extern GSS_FUNCTION_TABLE_PTR ftab; + + #endif +diff -rauN jdk10u-jdk-10.0.2+13/src/jdk.sctp/unix/native/libsctp/Sctp.h jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h +--- jdk10u-jdk-10.0.2+13/src/jdk.sctp/unix/native/libsctp/Sctp.h 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h 2021-05-16 21:08:01.975997215 +0200 +@@ -322,12 +322,12 @@ + + #endif /* __linux__ */ + +-sctp_getladdrs_func* nio_sctp_getladdrs; +-sctp_freeladdrs_func* nio_sctp_freeladdrs; +-sctp_getpaddrs_func* nio_sctp_getpaddrs; +-sctp_freepaddrs_func* nio_sctp_freepaddrs; +-sctp_bindx_func* nio_sctp_bindx; +-sctp_peeloff_func* nio_sctp_peeloff; ++extern sctp_getladdrs_func* nio_sctp_getladdrs; ++extern sctp_freeladdrs_func* nio_sctp_freeladdrs; ++extern sctp_getpaddrs_func* nio_sctp_getpaddrs; ++extern sctp_freepaddrs_func* nio_sctp_freepaddrs; ++extern sctp_bindx_func* nio_sctp_bindx; ++extern sctp_peeloff_func* nio_sctp_peeloff; + + jboolean loadSocketExtensionFuncs(JNIEnv* env); + +diff -rauN jdk10u-jdk-10.0.2+13/src/jdk.sctp/unix/native/libsctp/SctpNet.c jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c +--- jdk10u-jdk-10.0.2+13/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2021-05-16 21:08:01.975997215 +0200 +@@ -28,6 +28,14 @@ + #include <dlfcn.h> + + #include "Sctp.h" ++ ++sctp_getladdrs_func* nio_sctp_getladdrs; ++sctp_freeladdrs_func* nio_sctp_freeladdrs; ++sctp_getpaddrs_func* nio_sctp_getpaddrs; ++sctp_freepaddrs_func* nio_sctp_freepaddrs; ++sctp_bindx_func* nio_sctp_bindx; ++sctp_peeloff_func* nio_sctp_peeloff; ++ + #include "jni.h" + #include "jni_util.h" + #include "nio_util.h" diff --git a/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-make43.patch b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-make43.patch new file mode 100644 index 00000000..1827b012 --- /dev/null +++ b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-make43.patch @@ -0,0 +1,24 @@ +diff -rauN jdk10u-jdk-10.0.2+13/make/common/MakeBase.gmk jdk10u-jdk-10.0.2+13-make43-patch/make/common/MakeBase.gmk +--- jdk10u-jdk-10.0.2+13/make/common/MakeBase.gmk 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-make43-patch/make/common/MakeBase.gmk 2021-05-16 20:53:00.001488298 +0200 +@@ -960,15 +960,16 @@ + # Param 2 - (optional) name of file to store value in + DependOnVariableHelper = \ + $(strip \ +- $(eval -include $(call DependOnVariableFileName, $1, $2)) \ ++ $(eval $1_filename := $(call DependOnVariableFileName, $1, $2)) \ ++ $(if $(wildcard $($1_filename)), $(eval include $($1_filename))) \ + $(if $(call equals, $(strip $($1)), $(strip $($1_old))),,\ +- $(call MakeDir, $(dir $(call DependOnVariableFileName, $1, $2))) \ ++ $(call MakeDir, $(dir $($1_filename))) \ + $(if $(findstring $(LOG_LEVEL), trace), \ + $(info NewVariable $1: >$(strip $($1))<) \ + $(info OldVariable $1: >$(strip $($1_old))<)) \ + $(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \ +- $(call DependOnVariableFileName, $1, $2))) \ +- $(call DependOnVariableFileName, $1, $2) \ ++ $($1_filename))) \ ++ $($1_filename) \ + ) + + # Main macro diff --git a/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-oscontainer-wrong-compare.patch b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-oscontainer-wrong-compare.patch new file mode 100644 index 00000000..549115eb --- /dev/null +++ b/build-support/java10-openjdk/jdk10u-jdk-10.0.2+13-oscontainer-wrong-compare.patch @@ -0,0 +1,12 @@ +diff -rauN jdk10u-jdk-10.0.2+13/src/hotspot/os/linux/os_linux.cpp jdk10u-jdk-10.0.2+13-oscontainer-wrong-compare-patch/src/hotspot/os/linux/os_linux.cpp +--- jdk10u-jdk-10.0.2+13/src/hotspot/os/linux/os_linux.cpp 2018-06-24 16:07:06.000000000 +0200 ++++ jdk10u-jdk-10.0.2+13-oscontainer-wrong-compare-patch/src/hotspot/os/linux/os_linux.cpp 2021-05-17 17:26:13.438603378 +0200 +@@ -2155,7 +2155,7 @@ + } + + p = OSContainer::cpu_cpuset_memory_nodes(); +- if (p < 0) ++ if (p == NULL) + st->print("cpu_memory_nodes() failed\n"); + else { + st->print("cpu_memory_nodes: %s\n", p); diff --git a/build-support/java12-openjdk/PKGBUILD b/build-support/java12-openjdk/PKGBUILD new file mode 100644 index 00000000..d8710f51 --- /dev/null +++ b/build-support/java12-openjdk/PKGBUILD @@ -0,0 +1,306 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> + +# TODO add test, see about packaging jtreg and using it here + +pkgbase=java12-openjdk +pkgname=('jre12-openjdk-headless' 'jre12-openjdk' 'jdk12-openjdk' 'openjdk12-src' 'openjdk12-doc') +_majorver=12 +_minorver=0 +_securityver=2 +_updatever=10 +pkgrel=1 +pkgver=${_majorver}.${_minorver}.${_securityver}.u${_updatever} +_hg_tag=jdk-${_majorver}.${_minorver}.${_securityver}+${_updatever} +arch=('x86_64' 'i486' 'i686' 'pentium4') +url='https://openjdk.java.net/' +license=('custom') +makedepends=('java-environment>=11' 'cpio' 'unzip' 'zip' 'libelf' 'libcups' 'libx11' + 'libxrender' 'libxtst' 'libxt' 'libxext' 'libxrandr' 'alsa-lib' + 'graphviz' 'freetype2' 'libjpeg-turbo' 'giflib' 'libpng' 'lcms2' + 'libnet' 'bash') +source=(http://hg.openjdk.java.net/jdk-updates/jdk${_majorver}u/archive/${_hg_tag}.tar.gz + freedesktop-java.desktop + freedesktop-jconsole.desktop + freedesktop-jshell.desktop + jdk12u-jdk-12.0.2+10-make43.patch + jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon.patch + jdk12u-jdk-12.0.2+10-c1.patch + ) +sha256sums=('b2bcad35656b00928683416f3480ad00363b00993eb711c3e1886e4fe77eefeb' + '779dba7cf4f5de7cd512adf969354ec4aefddb33d970757eb3c49ea1fd8d5184' + 'fa67642a8ba1173c30536a12dfbeeacf5d0f37918849057c1049b88a81f261ed' + '0a1d66a3e4774d7fad267c8a4e726ecf362ae2f33df12439567e0fb249655c48' + 'c41c32ec668f5ae79d360c9437aca0574481ecbb3d346b8efe6b2ca5c59c0238' + 'd2df8c2294753e10b0cf266fe2028bd59a71f480096fe259731d3b284177daa5' + '61e3ec58190f19feb068e6ad21469cce2fd9867079fd5f6e9a32cefb70600cf9' + ) + +case "${CARCH}" in + x86_64) _JARCH='x86_64';; + i486|i686|pentium4) _JARCH='x86';; +esac + +_jvmdir=/usr/lib/jvm/java-${_majorver}-openjdk +_jdkdir=jdk${_majorver}u-${_hg_tag} +_imgdir=${_jdkdir}/build/linux-${_JARCH}-server-release/images +_imgdir="${_imgdir//--/-${_JARCH}-}" + +_nonheadless=(lib/libawt_xawt.{so,debuginfo} + lib/libjawt.{so,debuginfo} + lib/libjsound.{so,debuginfo} + lib/libsplashscreen.{so,debuginfo}) +#_nonheadless=( +# "${_nonheadless[@]/\/\///${_JARCH}/}" +#) + +prepare() { + cd ${_jdkdir} + + # see https://bugs.openjdk.java.net/browse/JDK-8237879 + patch -Np1 < $srcdir/jdk12u-jdk-12.0.2+10-make43.patch + + # some gcc 10 issues and backports of known bugs + patch -Np1 < $srcdir/jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon.patch + patch -Np1 < $srcdir/jdk12u-jdk-12.0.2+10-c1.patch +} + +build() { + cd ${_jdkdir} + + NUM_PROC_OPT='' + MAKEFLAG_J=$(echo ${MAKEFLAGS} | sed -En 's/.*-j([0-9]+).*/\1/p') + if [ -n "${MAKEFLAG_J}" ]; then + # http://hg.openjdk.java.net/jdk10/jdk10/file/85e6cb013b98/make/InitSupport.gmk#l105 + echo "Removing '-j${MAKEFLAG_J}' from MAKEFLAGS to prevent build fail. Passing it directly to ./configure." + export MAKEFLAGS=${MAKEFLAGS/-j${MAKEFLAG_J}/} + NUM_PROC_OPT="--with-num-cores=${MAKEFLAG_J}" + fi + + # Avoid optimization of HotSpot to be lowered from O3 to O2 + local _CFLAGS="${CFLAGS//-O2/-O3} ${CPPFLAGS}" + local _CXXFLAGS="${CXXFLAGS//-O2/-O3} ${CPPFLAGS}" + local _LDFLAGS=${LDFLAGS} + if [[ $CARCH = i486 || $CARCH = i686 || $CARCH = pentium4 ]]; then + echo "Removing '-fno-plt' from CFLAGS and CXXFLAGS to prevent build fail with this architecture" + _CFLAGS=${CFLAGS/-fno-plt/} + _CXXFLAGS=${CXXFLAGS/-fno-plt/} + fi + # i486-specific + if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 + fi + + # pentium4-specific + if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + # force 4-byte stack alignment on SSE aptimized systems, see FS32#75 + _CFLAGS+=" -mincoming-stack-boundary=2" + _CXXFLAGS+=" -mincoming-stack-boundary=2" + fi + + # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning + # in the output of ./configure unless used like such: + # --with-extra-cflags="${CFLAGS}" + # --with-extra-cxxflags="${CXXFLAGS}" + # --with-extra-ldflags="${LDFLAGS}" + # See also paragraph "Configure Control Variables from "jdk${_majorver}-${_hg_tag}/common/doc/building.md + unset CFLAGS + unset CXXFLAGS + unset LDFLAGS + + bash configure \ + --with-version-build="${_updatever}" \ + --with-version-pre="" \ + --with-version-opt="" \ + --with-stdc++lib=dynamic \ + --with-extra-cflags="${_CFLAGS}" \ + --with-extra-cxxflags="${_CXXFLAGS}" \ + --with-extra-ldflags="${_LDFLAGS}" \ + --with-libjpeg=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-lcms=system \ + --with-zlib=system \ + --with-jvm-features=zgc \ + --enable-unlimited-crypto \ + --disable-warnings-as-errors \ + ${NUM_PROC_OPT} + #--disable-javac-server + + make images legacy-jre-image docs + + # https://bugs.openjdk.java.net/browse/JDK-8173610 + find "../${_imgdir}" -iname '*.so' -exec chmod +x {} \; +} + +check() { + cd jdk${_majorver}u-${_hg_tag} + # TODO package jtreg + # make -k check +} + +package_jre12-openjdk-headless() { + pkgdesc="OpenJDK Java ${_majorver} headless runtime environment" + depends=('java-runtime-common>=3' 'ca-certificates-utils' 'nss' 'libjpeg-turbo' 'lcms2' 'libnet' 'freetype2') + optdepends=('java-rhino: for some JavaScript support') + provides=("java-runtime-headless=${_majorver}" "java-runtime-headless-openjdk=${_majorver}" "jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}") + backup=(etc/${pkgbase}/logging.properties + etc/${pkgbase}/management/jmxremote.access + etc/${pkgbase}/management/jmxremote.password.template + etc/${pkgbase}/management/management.properties + etc/${pkgbase}/net.properties + etc/${pkgbase}/security/java.policy + etc/${pkgbase}/security/java.security + etc/${pkgbase}/security/policy/README.txt + etc/${pkgbase}/security/policy/limited/default_US_export.policy + etc/${pkgbase}/security/policy/limited/default_local.policy + etc/${pkgbase}/security/policy/limited/exempt_local.policy + etc/${pkgbase}/security/policy/unlimited/default_US_export.policy + etc/${pkgbase}/security/policy/unlimited/default_local.policy + etc/${pkgbase}/sound.properties) + install=install_jre-openjdk-headless.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin lib \ + "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + rm "${pkgdir}${_jvmdir}/${f}" + done + + cp ../jdk/release "${pkgdir}${_jvmdir}" + cp ../jdk/lib/modules "${pkgdir}${_jvmdir}/lib" + + # Conf + install -dm 755 "${pkgdir}/etc" + cp -r conf "${pkgdir}/etc/${pkgbase}" + ln -s /etc/${pkgbase} "${pkgdir}/${_jvmdir}/conf" + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + ln -s /usr/share/licenses/${pkgbase} "${pkgdir}/${_jvmdir}/legal" + + # Man pages + for f in bin/*; do + f=$(basename "${f}") + _man=../jdk/man/man1/"${f}.1" + test -f "${_man}" && install -Dm 644 "${_man}" "${pkgdir}/usr/share/man/man1/${f}-openjdk${_majorver}.1" + done + ln -s /usr/share/man "${pkgdir}/${_jvmdir}/man" + + # Link JKS keystore from ca-certificates-utils + rm -f "${pkgdir}${_jvmdir}/lib/security/cacerts" + ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}${_jvmdir}/lib/security/cacerts" +} + +package_jre12-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} full runtime environment" + depends=("jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}" 'giflib') + optdepends=('alsa-lib: for basic sound support' + 'gtk2: for the Gtk+ 2 look and feel - desktop usage' + 'gtk3: for the Gtk+ 3 look and feel - desktop usage') + provides=("java-runtime=${_majorver}" "java-runtime-openjdk=${_majorver}" "jre${_majorver}-openjdk=${pkgver}-${pkgrel}") + install=install_jre-openjdk.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + install -Dm 644 ${f} "${pkgdir}${_jvmdir}/${f}" + done + + # Licenses + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_jdk12-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} development kit" + depends=("jre${_majorver}-openjdk=${pkgver}-${pkgrel}" 'java-environment-common=3' 'hicolor-icon-theme' 'libelf') + provides=("java-environment=${_majorver}" "java-environment-openjdk=${_majorver}" "jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + install=install_jdk-openjdk.sh + + cd ${_imgdir}/jdk + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin demo include jmods lib \ + "${pkgdir}${_jvmdir}" + + rm "${pkgdir}${_jvmdir}/lib/src.zip" + + # Remove files held by JRE + pushd ../jre + for d in bin lib; do + find ${d} ! -type d -exec rm "${pkgdir}${_jvmdir}/{}" \; + done + popd + find "${pkgdir}${_jvmdir}/lib" -type d -empty -delete + + # Conf files all belong to JRE + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + pushd ../jre/legal + find . ! -type d -exec rm "${pkgdir}/usr/share/licenses/${pkgbase}/{}" \; + popd + find "${pkgdir}/usr/share/licenses" -type d -empty -delete + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + + # Man pages + for f in bin/*; do + f=$(basename "${f}") + _man=man/man1/"${f}.1" + test -f "../jre/bin/${f}" && continue + test -f "${_man}" && install -Dm 644 "${_man}" "${pkgdir}/usr/share/man/man1/${f}-openjdk${_majorver}.1" + done + + # Icons + for s in 16 24 32 48; do + install -Dm 644 \ + "${srcdir}/jdk${_majorver}u-${_hg_tag}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/${pkgbase}.png" + done + + # Desktop files + for f in jconsole java jshell; do + install -Dm 644 \ + "${srcdir}/freedesktop-${f}.desktop" \ + "${pkgdir}/usr/share/applications/${f}-${pkgbase}.desktop" + done +} + +package_openjdk12-src() { + pkgdesc="OpenJDK Java ${_majorver} sources" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + provides=("openjdk${_majorver}-src=${pkgver}-${pkgrel}") + + install -Dm 644 -t "${pkgdir}${_jvmdir}/lib" ${_imgdir}/jdk/lib/src.zip + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_openjdk12-doc() { + pkgdesc="OpenJDK Java ${_majorver} documentation" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + provides=("openjdk${_majorver}-doc=${pkgver}-${pkgrel}") + + install -dm 755 "${pkgdir}/usr/share/doc" + cp -r ${_imgdir}/docs "${pkgdir}/usr/share/doc/${pkgbase}" + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +# vim: ts=2 sw=2 et: diff --git a/build-support/java12-openjdk/freedesktop-java.desktop b/build-support/java12-openjdk/freedesktop-java.desktop new file mode 100644 index 00000000..acd8701d --- /dev/null +++ b/build-support/java12-openjdk/freedesktop-java.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=OpenJDK Java 12 Runtime +Name[fi]=OpenJDK Java 12 - ajonaikainen ympäristö +Comment=OpenJDK Java 12 Runtime +Comment[fi]=OpenJDK Java 12 - ajonaikainen ympäristö +Keywords=java;runtime +Exec=/usr/lib/jvm/java-12-openjdk/bin/java -jar +Terminal=false +Type=Application +Icon=java12-openjdk +MimeType=application/x-java-archive;application/java-archive;application/x-jar; +NoDisplay=true diff --git a/build-support/java12-openjdk/freedesktop-jconsole.desktop b/build-support/java12-openjdk/freedesktop-jconsole.desktop new file mode 100644 index 00000000..acb6472d --- /dev/null +++ b/build-support/java12-openjdk/freedesktop-jconsole.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK Java 12 Console +Name[fi]=OpenJDK Java 12 - konsoli +Comment=OpenJDK Java 12 Monitoring & Management Console +Comment[fi]=OpenJDK Java 12 - valvonta- ja hallintakonsoli +Keywords=java;console;monitoring +Exec=/usr/lib/jvm/java-12-openjdk/bin/jconsole +Terminal=false +Type=Application +Icon=java12-openjdk +Categories=Application;System; diff --git a/build-support/java12-openjdk/freedesktop-jshell.desktop b/build-support/java12-openjdk/freedesktop-jshell.desktop new file mode 100644 index 00000000..16110b86 --- /dev/null +++ b/build-support/java12-openjdk/freedesktop-jshell.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=OpenJDK Java 12 Shell +Comment=OpenJDK Java 12 Shell +Keywords=java;shell +Exec=/usr/lib/jvm/java-12-openjdk/bin/jshell +Terminal=true +Type=Application +Icon=java12-openjdk +Categories=Application;System; diff --git a/build-support/java12-openjdk/install_jdk-openjdk.sh b/build-support/java12-openjdk/install_jdk-openjdk.sh new file mode 100644 index 00000000..cf97693a --- /dev/null +++ b/build-support/java12-openjdk/install_jdk-openjdk.sh @@ -0,0 +1,50 @@ +THIS_JDK='java-12-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JDK} + ;; + ${THIS_JDK}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + default=$(fix_default) + if [ -z "${default}" ]; then + /usr/bin/archlinux-java set ${THIS_JDK} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then + # Check JRE is still available + if [ -x /usr/lib/jvm/${THIS_JDK}/bin/java ]; then + /usr/bin/archlinux-java unset + fi + fi +} diff --git a/build-support/java12-openjdk/install_jre-openjdk-headless.sh b/build-support/java12-openjdk/install_jre-openjdk-headless.sh new file mode 100644 index 00000000..a340d0be --- /dev/null +++ b/build-support/java12-openjdk/install_jre-openjdk-headless.sh @@ -0,0 +1,48 @@ +THIS_JRE='java-12-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + default=$(fix_default) + if [ "x${default}" = "x${THIS_JRE}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java12-openjdk/install_jre-openjdk.sh b/build-support/java12-openjdk/install_jre-openjdk.sh new file mode 100644 index 00000000..03d45d07 --- /dev/null +++ b/build-support/java12-openjdk/install_jre-openjdk.sh @@ -0,0 +1,35 @@ +THIS_JRE='java-12-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + echo "when you use a non-reparenting window manager," + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh" +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi +} diff --git a/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-c1.patch b/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-c1.patch new file mode 100644 index 00000000..597c76ba --- /dev/null +++ b/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-c1.patch @@ -0,0 +1,51 @@ +diff -rauN jdk12u-jdk-12.0.2+10/src/hotspot/share/c1/c1_Instruction.hpp jdk12u-jdk-12.0.2+10-c1-patch/src/hotspot/share/c1/c1_Instruction.hpp +--- jdk12u-jdk-12.0.2+10/src/hotspot/share/c1/c1_Instruction.hpp 2019-07-16 18:38:28.000000000 +0200 ++++ jdk12u-jdk-12.0.2+10-c1-patch/src/hotspot/share/c1/c1_Instruction.hpp 2021-05-19 16:54:56.288783039 +0200 +@@ -303,7 +303,6 @@ + XHandlers* _exception_handlers; // Flat list of exception handlers covering this instruction + + friend class UseCountComputer; +- friend class BlockBegin; + + void update_exception_state(ValueStack* state); + +@@ -349,7 +348,6 @@ + void* operator new(size_t size) throw() { + Compilation* c = Compilation::current(); + void* res = c->arena()->Amalloc(size); +- ((Instruction*)res)->_id = c->get_next_id(); + return res; + } + +@@ -410,11 +408,11 @@ + + // creation + Instruction(ValueType* type, ValueStack* state_before = NULL, bool type_is_constant = false) +- : ++ : _id(Compilation::current()->get_next_id()) ++ , _use_count(0) + #ifndef PRODUCT +- _printable_bci(-99), ++ , _printable_bci(-99) + #endif +- _use_count(0) + , _pin_state(0) + , _type(type) + , _next(NULL) +@@ -1649,8 +1647,6 @@ + void* operator new(size_t size) throw() { + Compilation* c = Compilation::current(); + void* res = c->arena()->Amalloc(size); +- ((BlockBegin*)res)->_id = c->get_next_id(); +- ((BlockBegin*)res)->_block_id = c->get_next_block_id(); + return res; + } + +@@ -1662,6 +1658,7 @@ + // creation + BlockBegin(int bci) + : StateSplit(illegalType) ++ , _block_id(Compilation::current()->get_next_block_id()) + , _bci(bci) + , _depth_first_number(-1) + , _linear_scan_number(-1) diff --git a/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon.patch b/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon.patch new file mode 100644 index 00000000..a15870e2 --- /dev/null +++ b/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon.patch @@ -0,0 +1,86 @@ +diff -rauN jdk12u-jdk-12.0.2+10/src/java.base/unix/native/libjava/childproc.c jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c +--- jdk12u-jdk-12.0.2+10/src/java.base/unix/native/libjava/childproc.c 2019-07-16 18:38:28.000000000 +0200 ++++ jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c 2021-05-19 16:33:32.193463845 +0200 +@@ -33,6 +33,7 @@ + + #include "childproc.h" + ++const char * const *parentPathv; + + ssize_t + restartableWrite(int fd, const void *buf, size_t count) +diff -rauN jdk12u-jdk-12.0.2+10/src/java.base/unix/native/libjava/childproc.h jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h +--- jdk12u-jdk-12.0.2+10/src/java.base/unix/native/libjava/childproc.h 2019-07-16 18:38:28.000000000 +0200 ++++ jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h 2021-05-19 16:33:45.056818223 +0200 +@@ -118,7 +118,7 @@ + * The cached and split version of the JDK's effective PATH. + * (We don't support putenv("PATH=...") in native code) + */ +-const char * const *parentPathv; ++extern const char * const *parentPathv; + + ssize_t restartableWrite(int fd, const void *buf, size_t count); + int restartableDup2(int fd_from, int fd_to); +diff -rauN jdk12u-jdk-12.0.2+10/src/java.security.jgss/share/native/libj2gss/NativeFunc.c jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.c +--- jdk12u-jdk-12.0.2+10/src/java.security.jgss/share/native/libj2gss/NativeFunc.c 2019-07-16 18:38:28.000000000 +0200 ++++ jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.c 2021-05-19 16:36:27.850415027 +0200 +@@ -27,6 +27,9 @@ + #include <stdlib.h> + #include "NativeFunc.h" + ++/* global GSS function table */ ++GSS_FUNCTION_TABLE_PTR ftab; ++ + /* standard GSS method names (ordering is from mapfile) */ + static const char RELEASE_NAME[] = "gss_release_name"; + static const char IMPORT_NAME[] = "gss_import_name"; +diff -rauN jdk12u-jdk-12.0.2+10/src/java.security.jgss/share/native/libj2gss/NativeFunc.h jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.h +--- jdk12u-jdk-12.0.2+10/src/java.security.jgss/share/native/libj2gss/NativeFunc.h 2019-07-16 18:38:28.000000000 +0200 ++++ jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.h 2021-05-19 16:35:59.263702472 +0200 +@@ -277,6 +277,6 @@ + typedef GSS_FUNCTION_TABLE *GSS_FUNCTION_TABLE_PTR; + + /* global GSS function table */ +-GSS_FUNCTION_TABLE_PTR ftab; ++extern GSS_FUNCTION_TABLE_PTR ftab; + + #endif +diff -rauN jdk12u-jdk-12.0.2+10/src/jdk.sctp/unix/native/libsctp/Sctp.h jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h +--- jdk12u-jdk-12.0.2+10/src/jdk.sctp/unix/native/libsctp/Sctp.h 2019-07-16 18:38:28.000000000 +0200 ++++ jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h 2021-05-19 16:37:45.070538192 +0200 +@@ -322,12 +322,12 @@ + + #endif /* __linux__ */ + +-sctp_getladdrs_func* nio_sctp_getladdrs; +-sctp_freeladdrs_func* nio_sctp_freeladdrs; +-sctp_getpaddrs_func* nio_sctp_getpaddrs; +-sctp_freepaddrs_func* nio_sctp_freepaddrs; +-sctp_bindx_func* nio_sctp_bindx; +-sctp_peeloff_func* nio_sctp_peeloff; ++extern sctp_getladdrs_func* nio_sctp_getladdrs; ++extern sctp_freeladdrs_func* nio_sctp_freeladdrs; ++extern sctp_getpaddrs_func* nio_sctp_getpaddrs; ++extern sctp_freepaddrs_func* nio_sctp_freepaddrs; ++extern sctp_bindx_func* nio_sctp_bindx; ++extern sctp_peeloff_func* nio_sctp_peeloff; + + jboolean loadSocketExtensionFuncs(JNIEnv* env); + +diff -rauN jdk12u-jdk-12.0.2+10/src/jdk.sctp/unix/native/libsctp/SctpNet.c jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c +--- jdk12u-jdk-12.0.2+10/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2019-07-16 18:38:28.000000000 +0200 ++++ jdk12u-jdk-12.0.2+10-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2021-05-19 16:38:27.413938578 +0200 +@@ -37,6 +37,13 @@ + #include "sun_nio_ch_sctp_SctpNet.h" + #include "sun_nio_ch_sctp_SctpStdSocketOption.h" + ++sctp_getladdrs_func* nio_sctp_getladdrs; ++sctp_freeladdrs_func* nio_sctp_freeladdrs; ++sctp_getpaddrs_func* nio_sctp_getpaddrs; ++sctp_freepaddrs_func* nio_sctp_freepaddrs; ++sctp_bindx_func* nio_sctp_bindx; ++sctp_peeloff_func* nio_sctp_peeloff; ++ + static jclass isaCls = 0; + static jmethodID isaCtrID = 0; + diff --git a/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-make43.patch b/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-make43.patch new file mode 100644 index 00000000..998afc6b --- /dev/null +++ b/build-support/java12-openjdk/jdk12u-jdk-12.0.2+10-make43.patch @@ -0,0 +1,24 @@ +diff -rauN jdk12u-jdk-12.0.2+10/make/common/MakeBase.gmk jdk12u-jdk-12.0.2+10-make43-patch/make/common/MakeBase.gmk +--- jdk12u-jdk-12.0.2+10/make/common/MakeBase.gmk 2019-07-16 18:38:28.000000000 +0200 ++++ jdk12u-jdk-12.0.2+10-make43-patch/make/common/MakeBase.gmk 2021-05-19 14:33:26.193326369 +0200 +@@ -977,15 +977,16 @@ + # Param 2 - (optional) name of file to store value in + DependOnVariableHelper = \ + $(strip \ +- $(eval -include $(call DependOnVariableFileName, $1, $2)) \ ++ $(eval $1_filename := $(call DependOnVariableFileName, $1, $2)) \ ++ $(if $(wildcard $($1_filename)), $(eval include $($1_filename))) \ + $(if $(call equals, $(strip $($1)), $(strip $($1_old))),,\ +- $(call MakeDir, $(dir $(call DependOnVariableFileName, $1, $2))) \ ++ $(call MakeDir, $(dir $($1_filename))) \ + $(if $(findstring $(LOG_LEVEL), trace), \ + $(info NewVariable $1: >$(strip $($1))<) \ + $(info OldVariable $1: >$(strip $($1_old))<)) \ + $(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \ +- $(call DependOnVariableFileName, $1, $2))) \ +- $(call DependOnVariableFileName, $1, $2) \ ++ $($1_filename))) \ ++ $($1_filename) \ + ) + + # Main macro diff --git a/build-support/java13-openjdk/PKGBUILD b/build-support/java13-openjdk/PKGBUILD new file mode 100644 index 00000000..89554850 --- /dev/null +++ b/build-support/java13-openjdk/PKGBUILD @@ -0,0 +1,304 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> + +# TODO add test, see about packaging jtreg and using it here + +pkgbase=java13-openjdk +pkgname=('jre13-openjdk-headless' 'jre13-openjdk' 'jdk13-openjdk' 'openjdk13-src' 'openjdk13-doc') +_majorver=13 +_minorver=0 +_securityver=2 +_updatever=8 +pkgrel=1 +pkgver=${_majorver}.${_minorver}.${_securityver}.u${_updatever} +_hg_tag=jdk-${_majorver}.${_minorver}.${_securityver}+${_updatever} +arch=('x86_64' 'i486' 'i686' 'pentium4') +url='https://openjdk.java.net/' +license=('custom') +makedepends=('jdk12-openjdk' 'cpio' 'unzip' 'zip' 'libelf' 'libcups' 'libx11' + 'libxrender' 'libxtst' 'libxt' 'libxext' 'libxrandr' 'alsa-lib' + 'graphviz' 'freetype2' 'libjpeg-turbo' 'giflib' 'libpng' 'lcms2' + 'libnet' 'bash') +source=(https://hg.openjdk.java.net/jdk-updates/jdk${_majorver}u/archive/${_hg_tag}.tar.gz + freedesktop-java.desktop + freedesktop-jconsole.desktop + freedesktop-jshell.desktop + jdk13u-jdk-13.0.2+8-make43.patch + jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon.patch + ) +sha256sums=('d38fb17795782dffe84e98f21f1d6293b0a45ea8f1e9c81e99cd71acac03a4e0' + '4edd8475037062cdff87993c1745ddb6df31f49e76c2774bca3841da70675580' + 'd759e5e360abe9fae7b5f87498f81dd786aa568aa997d0cb8ba3e75fa0c364dd' + '939b2d8b24f18ad82c4868880e337c6291daee9b7edcfeadb8951bf99d6c2acc' + '3c42955f62c5cf47bfe717443c39cf648605b3626952bbd695b00f49e55ccad7' + 'fbc9c8862570f4de44fe8447c0f0182ffca2ae831af25848d489e84ef4d42ce2' + ) + +case "${CARCH}" in + x86_64) _JARCH='x86_64';; + i486|i686|pentium4) _JARCH='x86';; +esac + +_jvmdir=/usr/lib/jvm/java-${_majorver}-openjdk +_jdkdir=jdk${_majorver}u-${_hg_tag} +_imgdir=${_jdkdir}/build/linux-${_JARCH}-server-release/images +_imgdir="${_imgdir//--/-${_JARCH}-}" + +_nonheadless=(lib/libawt_xawt.{so,debuginfo} + lib/libjawt.{so,debuginfo} + lib/libjsound.{so,debuginfo} + lib/libsplashscreen.{so,debuginfo}) +#_nonheadless=( +# "${_nonheadless[@]/\/\///${_JARCH}/}" +#) + +prepare() { + cd ${_jdkdir} + + # see https://bugs.openjdk.java.net/browse/JDK-8237879 + patch -Np1 < $srcdir/jdk13u-jdk-13.0.2+8-make43.patch + + # some gcc 10 issues and backports of known bugs + patch -Np1 < $srcdir/jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon.patch +} + +build() { + cd ${_jdkdir} + + NUM_PROC_OPT='' + MAKEFLAG_J=$(echo ${MAKEFLAGS} | sed -En 's/.*-j([0-9]+).*/\1/p') + if [ -n "${MAKEFLAG_J}" ]; then + # http://hg.openjdk.java.net/jdk10/jdk10/file/85e6cb013b98/make/InitSupport.gmk#l105 + echo "Removing '-j${MAKEFLAG_J}' from MAKEFLAGS to prevent build fail. Passing it directly to ./configure." + export MAKEFLAGS=${MAKEFLAGS/-j${MAKEFLAG_J}/} + NUM_PROC_OPT="--with-num-cores=${MAKEFLAG_J}" + fi + + # Avoid optimization of HotSpot to be lowered from O3 to O2 + local _CFLAGS="${CFLAGS//-O2/-O3} ${CPPFLAGS}" + local _CXXFLAGS="${CXXFLAGS//-O2/-O3} ${CPPFLAGS}" + local _LDFLAGS=${LDFLAGS} + if [[ $CARCH = i486 || $CARCH = i686 || $CARCH = pentium4 ]]; then + echo "Removing '-fno-plt' from CFLAGS and CXXFLAGS to prevent build fail with this architecture" + _CFLAGS=${CFLAGS/-fno-plt/} + _CXXFLAGS=${CXXFLAGS/-fno-plt/} + fi + + # i486-specific + if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 + fi + + # pentium4-specific + if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + # force 4-byte stack alignment on SSE aptimized systems, see FS32#75 + _CFLAGS+=" -mincoming-stack-boundary=2" + _CXXFLAGS+=" -mincoming-stack-boundary=2" + fi + + # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning + # in the output of ./configure unless used like such: + # --with-extra-cflags="${CFLAGS}" + # --with-extra-cxxflags="${CXXFLAGS}" + # --with-extra-ldflags="${LDFLAGS}" + # See also paragraph "Configure Control Variables from "jdk${_majorver}-${_hg_tag}/common/doc/building.md + unset CFLAGS + unset CXXFLAGS + unset LDFLAGS + + bash configure \ + --with-version-build="${_updatever}" \ + --with-version-pre="" \ + --with-version-opt="" \ + --with-stdc++lib=dynamic \ + --with-extra-cflags="${_CFLAGS}" \ + --with-extra-cxxflags="${_CXXFLAGS}" \ + --with-extra-ldflags="${_LDFLAGS}" \ + --with-libjpeg=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-lcms=system \ + --with-zlib=system \ + --with-jvm-features=zgc \ + --enable-unlimited-crypto \ + --disable-warnings-as-errors \ + ${NUM_PROC_OPT} + #--disable-javac-server + + make images legacy-jre-image docs + + # https://bugs.openjdk.java.net/browse/JDK-8173610 + find "../${_imgdir}" -iname '*.so' -exec chmod +x {} \; +} + +check() { + cd jdk${_majorver}u-${_hg_tag} + # TODO package jtreg + # make -k check +} + +package_jre13-openjdk-headless() { + pkgdesc="OpenJDK Java ${_majorver} headless runtime environment" + depends=('java-runtime-common>=3' 'ca-certificates-utils' 'nss' 'libjpeg-turbo' 'lcms2' 'libnet' 'freetype2') + optdepends=('java-rhino: for some JavaScript support') + provides=("java-runtime-headless=${_majorver}" "java-runtime-headless-openjdk=${_majorver}" "jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}") + backup=(etc/${pkgbase}/logging.properties + etc/${pkgbase}/management/jmxremote.access + etc/${pkgbase}/management/jmxremote.password.template + etc/${pkgbase}/management/management.properties + etc/${pkgbase}/net.properties + etc/${pkgbase}/security/java.policy + etc/${pkgbase}/security/java.security + etc/${pkgbase}/security/policy/README.txt + etc/${pkgbase}/security/policy/limited/default_US_export.policy + etc/${pkgbase}/security/policy/limited/default_local.policy + etc/${pkgbase}/security/policy/limited/exempt_local.policy + etc/${pkgbase}/security/policy/unlimited/default_US_export.policy + etc/${pkgbase}/security/policy/unlimited/default_local.policy + etc/${pkgbase}/sound.properties) + install=install_jre-openjdk-headless.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin lib \ + "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + rm "${pkgdir}${_jvmdir}/${f}" + done + + cp ../jdk/release "${pkgdir}${_jvmdir}" + cp ../jdk/lib/modules "${pkgdir}${_jvmdir}/lib" + + # Conf + install -dm 755 "${pkgdir}/etc" + cp -r conf "${pkgdir}/etc/${pkgbase}" + ln -s /etc/${pkgbase} "${pkgdir}/${_jvmdir}/conf" + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + ln -s /usr/share/licenses/${pkgbase} "${pkgdir}/${_jvmdir}/legal" + + # Man pages + for f in bin/*; do + f=$(basename "${f}") + _man=../jdk/man/man1/"${f}.1" + test -f "${_man}" && install -Dm 644 "${_man}" "${pkgdir}/usr/share/man/man1/${f}-openjdk${_majorver}.1" + done + ln -s /usr/share/man "${pkgdir}/${_jvmdir}/man" + + # Link JKS keystore from ca-certificates-utils + rm -f "${pkgdir}${_jvmdir}/lib/security/cacerts" + ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}${_jvmdir}/lib/security/cacerts" +} + +package_jre13-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} full runtime environment" + depends=("jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}" 'giflib') + optdepends=('alsa-lib: for basic sound support' + 'gtk2: for the Gtk+ 2 look and feel - desktop usage' + 'gtk3: for the Gtk+ 3 look and feel - desktop usage') + provides=("java-runtime=${_majorver}" "java-runtime-openjdk=${_majorver}" "jre${_majorver}-openjdk=${pkgver}-${pkgrel}") + install=install_jre-openjdk.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + install -Dm 644 ${f} "${pkgdir}${_jvmdir}/${f}" + done + + # Licenses + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_jdk13-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} development kit" + depends=("jre${_majorver}-openjdk=${pkgver}-${pkgrel}" 'java-environment-common=3' 'hicolor-icon-theme' 'libelf') + provides=("java-environment=${_majorver}" "java-environment-openjdk=${_majorver}" "jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + install=install_jdk-openjdk.sh + + cd ${_imgdir}/jdk + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin demo include jmods lib \ + "${pkgdir}${_jvmdir}" + + rm "${pkgdir}${_jvmdir}/lib/src.zip" + + # Remove files held by JRE + pushd ../jre + for d in bin lib; do + find ${d} ! -type d -exec rm "${pkgdir}${_jvmdir}/{}" \; + done + popd + find "${pkgdir}${_jvmdir}/lib" -type d -empty -delete + + # Conf files all belong to JRE + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + pushd ../jre/legal + find . ! -type d -exec rm "${pkgdir}/usr/share/licenses/${pkgbase}/{}" \; + popd + find "${pkgdir}/usr/share/licenses" -type d -empty -delete + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + + # Man pages + for f in bin/*; do + f=$(basename "${f}") + _man=man/man1/"${f}.1" + test -f "../jre/bin/${f}" && continue + test -f "${_man}" && install -Dm 644 "${_man}" "${pkgdir}/usr/share/man/man1/${f}-openjdk${_majorver}.1" + done + + # Icons + for s in 16 24 32 48; do + install -Dm 644 \ + "${srcdir}/jdk${_majorver}u-${_hg_tag}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/${pkgbase}.png" + done + + # Desktop files + for f in jconsole java jshell; do + install -Dm 644 \ + "${srcdir}/freedesktop-${f}.desktop" \ + "${pkgdir}/usr/share/applications/${f}-${pkgbase}.desktop" + done +} + +package_openjdk13-src() { + pkgdesc="OpenJDK Java ${_majorver} sources" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + provides=("openjdk${_majorver}-src=${pkgver}-${pkgrel}") + + install -Dm 644 -t "${pkgdir}${_jvmdir}/lib" ${_imgdir}/jdk/lib/src.zip + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_openjdk13-doc() { + pkgdesc="OpenJDK Java ${_majorver} documentation" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + provides=("openjdk${_majorver}-doc=${pkgver}-${pkgrel}") + + install -dm 755 "${pkgdir}/usr/share/doc" + cp -r ${_imgdir}/docs "${pkgdir}/usr/share/doc/${pkgbase}" + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +# vim: ts=2 sw=2 et: diff --git a/build-support/java13-openjdk/freedesktop-java.desktop b/build-support/java13-openjdk/freedesktop-java.desktop new file mode 100644 index 00000000..dbbd26bc --- /dev/null +++ b/build-support/java13-openjdk/freedesktop-java.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=OpenJDK Java 13 Runtime +Name[fi]=OpenJDK Java 13 - ajonaikainen ympäristö +Comment=OpenJDK Java 13 Runtime +Comment[fi]=OpenJDK Java 13 - ajonaikainen ympäristö +Keywords=java;runtime +Exec=/usr/lib/jvm/java-13-openjdk/bin/java -jar +Terminal=false +Type=Application +Icon=java13-openjdk +MimeType=application/x-java-archive;application/java-archive;application/x-jar; +NoDisplay=true diff --git a/build-support/java13-openjdk/freedesktop-jconsole.desktop b/build-support/java13-openjdk/freedesktop-jconsole.desktop new file mode 100644 index 00000000..6252b0d2 --- /dev/null +++ b/build-support/java13-openjdk/freedesktop-jconsole.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK Java 13 Console +Name[fi]=OpenJDK Java 13 - konsoli +Comment=OpenJDK Java 13 Monitoring & Management Console +Comment[fi]=OpenJDK Java 13 - valvonta- ja hallintakonsoli +Keywords=java;console;monitoring +Exec=/usr/lib/jvm/java-13-openjdk/bin/jconsole +Terminal=false +Type=Application +Icon=java13-openjdk +Categories=Application;System; diff --git a/build-support/java13-openjdk/freedesktop-jshell.desktop b/build-support/java13-openjdk/freedesktop-jshell.desktop new file mode 100644 index 00000000..6a684b24 --- /dev/null +++ b/build-support/java13-openjdk/freedesktop-jshell.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=OpenJDK Java 13 Shell +Comment=OpenJDK Java 13 Shell +Keywords=java;shell +Exec=/usr/lib/jvm/java-13-openjdk/bin/jshell +Terminal=true +Type=Application +Icon=java13-openjdk +Categories=Application;System; diff --git a/build-support/java13-openjdk/install_jdk-openjdk.sh b/build-support/java13-openjdk/install_jdk-openjdk.sh new file mode 100644 index 00000000..2e9dc199 --- /dev/null +++ b/build-support/java13-openjdk/install_jdk-openjdk.sh @@ -0,0 +1,50 @@ +THIS_JDK='java-13-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JDK} + ;; + ${THIS_JDK}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + default=$(fix_default) + if [ -z "${default}" ]; then + /usr/bin/archlinux-java set ${THIS_JDK} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then + # Check JRE is still available + if [ -x /usr/lib/jvm/${THIS_JDK}/bin/java ]; then + /usr/bin/archlinux-java unset + fi + fi +} diff --git a/build-support/java13-openjdk/install_jre-openjdk-headless.sh b/build-support/java13-openjdk/install_jre-openjdk-headless.sh new file mode 100644 index 00000000..c498dadf --- /dev/null +++ b/build-support/java13-openjdk/install_jre-openjdk-headless.sh @@ -0,0 +1,48 @@ +THIS_JRE='java-13-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + default=$(fix_default) + if [ "x${default}" = "x${THIS_JRE}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java13-openjdk/install_jre-openjdk.sh b/build-support/java13-openjdk/install_jre-openjdk.sh new file mode 100644 index 00000000..408226eb --- /dev/null +++ b/build-support/java13-openjdk/install_jre-openjdk.sh @@ -0,0 +1,35 @@ +THIS_JRE='java-13-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + echo "when you use a non-reparenting window manager," + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh" +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi +} diff --git a/build-support/java13-openjdk/jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon.patch b/build-support/java13-openjdk/jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon.patch new file mode 100644 index 00000000..7d58b42c --- /dev/null +++ b/build-support/java13-openjdk/jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon.patch @@ -0,0 +1,86 @@ +diff -rauN jdk13u-jdk-13.0.2+8/src/java.base/unix/native/libjava/childproc.c jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c +--- jdk13u-jdk-13.0.2+8/src/java.base/unix/native/libjava/childproc.c 2019-11-28 21:32:27.000000000 +0100 ++++ jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c 2021-05-19 18:58:57.738009468 +0200 +@@ -33,6 +33,7 @@ + + #include "childproc.h" + ++const char * const *parentPathv; + + ssize_t + restartableWrite(int fd, const void *buf, size_t count) +diff -rauN jdk13u-jdk-13.0.2+8/src/java.base/unix/native/libjava/childproc.h jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h +--- jdk13u-jdk-13.0.2+8/src/java.base/unix/native/libjava/childproc.h 2019-11-28 21:32:27.000000000 +0100 ++++ jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h 2021-05-19 18:58:57.738009468 +0200 +@@ -126,7 +126,7 @@ + * The cached and split version of the JDK's effective PATH. + * (We don't support putenv("PATH=...") in native code) + */ +-const char * const *parentPathv; ++extern const char * const *parentPathv; + + ssize_t restartableWrite(int fd, const void *buf, size_t count); + int restartableDup2(int fd_from, int fd_to); +diff -rauN jdk13u-jdk-13.0.2+8/src/java.security.jgss/share/native/libj2gss/NativeFunc.c jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.c +--- jdk13u-jdk-13.0.2+8/src/java.security.jgss/share/native/libj2gss/NativeFunc.c 2019-11-28 21:32:27.000000000 +0100 ++++ jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.c 2021-05-19 18:58:57.738009468 +0200 +@@ -27,6 +27,9 @@ + #include <stdlib.h> + #include "NativeFunc.h" + ++/* global GSS function table */ ++GSS_FUNCTION_TABLE_PTR ftab; ++ + /* standard GSS method names (ordering is from mapfile) */ + static const char RELEASE_NAME[] = "gss_release_name"; + static const char IMPORT_NAME[] = "gss_import_name"; +diff -rauN jdk13u-jdk-13.0.2+8/src/java.security.jgss/share/native/libj2gss/NativeFunc.h jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.h +--- jdk13u-jdk-13.0.2+8/src/java.security.jgss/share/native/libj2gss/NativeFunc.h 2019-11-28 21:32:27.000000000 +0100 ++++ jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.h 2021-05-19 18:58:57.741342811 +0200 +@@ -277,6 +277,6 @@ + typedef GSS_FUNCTION_TABLE *GSS_FUNCTION_TABLE_PTR; + + /* global GSS function table */ +-GSS_FUNCTION_TABLE_PTR ftab; ++extern GSS_FUNCTION_TABLE_PTR ftab; + + #endif +diff -rauN jdk13u-jdk-13.0.2+8/src/jdk.sctp/unix/native/libsctp/Sctp.h jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h +--- jdk13u-jdk-13.0.2+8/src/jdk.sctp/unix/native/libsctp/Sctp.h 2019-11-28 21:32:27.000000000 +0100 ++++ jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h 2021-05-19 18:58:57.964676615 +0200 +@@ -322,12 +322,12 @@ + + #endif /* __linux__ */ + +-sctp_getladdrs_func* nio_sctp_getladdrs; +-sctp_freeladdrs_func* nio_sctp_freeladdrs; +-sctp_getpaddrs_func* nio_sctp_getpaddrs; +-sctp_freepaddrs_func* nio_sctp_freepaddrs; +-sctp_bindx_func* nio_sctp_bindx; +-sctp_peeloff_func* nio_sctp_peeloff; ++extern sctp_getladdrs_func* nio_sctp_getladdrs; ++extern sctp_freeladdrs_func* nio_sctp_freeladdrs; ++extern sctp_getpaddrs_func* nio_sctp_getpaddrs; ++extern sctp_freepaddrs_func* nio_sctp_freepaddrs; ++extern sctp_bindx_func* nio_sctp_bindx; ++extern sctp_peeloff_func* nio_sctp_peeloff; + + jboolean loadSocketExtensionFuncs(JNIEnv* env); + +diff -rauN jdk13u-jdk-13.0.2+8/src/jdk.sctp/unix/native/libsctp/SctpNet.c jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c +--- jdk13u-jdk-13.0.2+8/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2019-11-28 21:32:27.000000000 +0100 ++++ jdk13u-jdk-13.0.2+8-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2021-05-19 18:58:58.161343697 +0200 +@@ -37,6 +37,13 @@ + #include "sun_nio_ch_sctp_SctpNet.h" + #include "sun_nio_ch_sctp_SctpStdSocketOption.h" + ++sctp_getladdrs_func* nio_sctp_getladdrs; ++sctp_freeladdrs_func* nio_sctp_freeladdrs; ++sctp_getpaddrs_func* nio_sctp_getpaddrs; ++sctp_freepaddrs_func* nio_sctp_freepaddrs; ++sctp_bindx_func* nio_sctp_bindx; ++sctp_peeloff_func* nio_sctp_peeloff; ++ + static jclass isaCls = 0; + static jmethodID isaCtrID = 0; + diff --git a/build-support/java13-openjdk/jdk13u-jdk-13.0.2+8-make43.patch b/build-support/java13-openjdk/jdk13u-jdk-13.0.2+8-make43.patch new file mode 100644 index 00000000..1ae8f20e --- /dev/null +++ b/build-support/java13-openjdk/jdk13u-jdk-13.0.2+8-make43.patch @@ -0,0 +1,24 @@ +diff -rauN jdk13u-jdk-13.0.2+8/make/common/MakeBase.gmk jdk13u-jdk-13.0.2+8-make43-patch/make/common/MakeBase.gmk +--- jdk13u-jdk-13.0.2+8/make/common/MakeBase.gmk 2019-11-28 21:32:27.000000000 +0100 ++++ jdk13u-jdk-13.0.2+8-make43-patch/make/common/MakeBase.gmk 2021-05-19 18:43:25.376205183 +0200 +@@ -525,15 +525,16 @@ + # Param 2 - (optional) name of file to store value in + DependOnVariableHelper = \ + $(strip \ +- $(eval -include $(call DependOnVariableFileName, $1, $2)) \ ++ $(eval $1_filename := $(call DependOnVariableFileName, $1, $2)) \ ++ $(if $(wildcard $($1_filename)), $(eval include $($1_filename))) \ + $(if $(call equals, $(strip $($1)), $(strip $($1_old))),,\ +- $(call MakeDir, $(dir $(call DependOnVariableFileName, $1, $2))) \ ++ $(call MakeDir, $(dir $($1_filename))) \ + $(if $(findstring $(LOG_LEVEL), trace), \ + $(info NewVariable $1: >$(strip $($1))<) \ + $(info OldVariable $1: >$(strip $($1_old))<)) \ + $(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \ +- $(call DependOnVariableFileName, $1, $2))) \ +- $(call DependOnVariableFileName, $1, $2) \ ++ $($1_filename))) \ ++ $($1_filename) \ + ) + + # Main macro diff --git a/build-support/java14-openjdk/PKGBUILD b/build-support/java14-openjdk/PKGBUILD new file mode 100644 index 00000000..423d0fe3 --- /dev/null +++ b/build-support/java14-openjdk/PKGBUILD @@ -0,0 +1,299 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> + +# TODO add test, see about packaging jtreg and using it here + +pkgbase=java14-openjdk +pkgname=('jre14-openjdk-headless' 'jre14-openjdk' 'jdk14-openjdk' 'openjdk14-src' 'openjdk14-doc') +_majorver=14 +_minorver=0 +_securityver=2 +_updatever=12 +pkgrel=1 +pkgver=${_majorver}.${_minorver}.${_securityver}.u${_updatever} +_hg_tag=jdk-${_majorver}.${_minorver}.${_securityver}+${_updatever} +arch=('x86_64' 'i486' 'i686' 'pentium4') +url='https://openjdk.java.net/' +license=('custom') +makedepends=('jdk13-openjdk' 'cpio' 'unzip' 'zip' 'libelf' 'libcups' 'libx11' + 'libxrender' 'libxtst' 'libxt' 'libxext' 'libxrandr' 'alsa-lib' + 'graphviz' 'freetype2' 'libjpeg-turbo' 'giflib' 'libpng' 'lcms2' + 'libnet' 'bash') +source=(https://hg.openjdk.java.net/jdk-updates/jdk${_majorver}u/archive/${_hg_tag}.tar.gz + freedesktop-java.desktop + freedesktop-jconsole.desktop + freedesktop-jshell.desktop + jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon.patch + ) +sha256sums=('dfb3607f1b675458f29a185a40f1dbbf896439cf33b3aa0f3d89df297e604935' + '165273caba29f70496e697c9ed5bf61a4322ab324888f78559820f0032df48c9' + '1e3decf29075b6f62238a5b2ac537679f00c185ce36d83db254004237cfe7084' + '676c74c8aed53d6cd4c4755ece2b2e3ab1a72b1bd2ef53983dcad0229d91af3c' + '6f2a8291aba98f648d823d938a7bf33df2570ca4964595527ef5f8833cf00fe9' + ) + +case "${CARCH}" in + x86_64) _JARCH='x86_64';; + i486|i686|pentium4) _JARCH='x86';; +esac + +_jvmdir=/usr/lib/jvm/java-${_majorver}-openjdk +_jdkdir=jdk${_majorver}u-${_hg_tag} +_imgdir=${_jdkdir}/build/linux-${_JARCH}-server-release/images +_imgdir="${_imgdir//--/-${_JARCH}-}" + +_nonheadless=(lib/libawt_xawt.{so,debuginfo} + lib/libjawt.{so,debuginfo} + lib/libjsound.{so,debuginfo} + lib/libsplashscreen.{so,debuginfo}) +#_nonheadless=( +# "${_nonheadless[@]/\/\///${_JARCH}/}" +#) + +prepare() { + cd ${_jdkdir} + + # some gcc 10 issues + patch -Np1 < $srcdir/jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon.patch +} + +build() { + cd ${_jdkdir} + + NUM_PROC_OPT='' + MAKEFLAG_J=$(echo ${MAKEFLAGS} | sed -En 's/.*-j([0-9]+).*/\1/p') + if [ -n "${MAKEFLAG_J}" ]; then + # http://hg.openjdk.java.net/jdk10/jdk10/file/85e6cb013b98/make/InitSupport.gmk#l105 + echo "Removing '-j${MAKEFLAG_J}' from MAKEFLAGS to prevent build fail. Passing it directly to ./configure." + export MAKEFLAGS=${MAKEFLAGS/-j${MAKEFLAG_J}/} + NUM_PROC_OPT="--with-num-cores=${MAKEFLAG_J}" + fi + + # Avoid optimization of HotSpot to be lowered from O3 to O2 + local _CFLAGS="${CFLAGS//-O2/-O3} ${CPPFLAGS} -fcommon" + local _CXXFLAGS="${CXXFLAGS//-O2/-O3} ${CPPFLAGS} -fcommon" + local _LDFLAGS=${LDFLAGS} + if [[ $CARCH = i486 || $CARCH = i686 || $CARCH = pentium4 ]]; then + echo "Removing '-fno-plt' from CFLAGS and CXXFLAGS to prevent build fail with this architecture" + _CFLAGS=${CFLAGS/-fno-plt/} + _CXXFLAGS=${CXXFLAGS/-fno-plt/} + fi + + # i486-specific + if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 + fi + + # pentium4-specific + if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + # force 4-byte stack alignment on SSE aptimized systems, see FS32#75 + _CFLAGS+=" -mincoming-stack-boundary=2" + _CXXFLAGS+=" -mincoming-stack-boundary=2" + fi + + # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning + # in the output of ./configure unless used like such: + # --with-extra-cflags="${CFLAGS}" + # --with-extra-cxxflags="${CXXFLAGS}" + # --with-extra-ldflags="${LDFLAGS}" + # See also paragraph "Configure Control Variables from "jdk${_majorver}-${_hg_tag}/common/doc/building.md + unset CFLAGS + unset CXXFLAGS + unset LDFLAGS + + bash configure \ + --with-version-build="${_updatever}" \ + --with-version-pre="" \ + --with-version-opt="" \ + --with-stdc++lib=dynamic \ + --with-extra-cflags="${_CFLAGS}" \ + --with-extra-cxxflags="${_CXXFLAGS}" \ + --with-extra-ldflags="${_LDFLAGS}" \ + --with-libjpeg=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-lcms=system \ + --with-zlib=system \ + --with-jvm-features=zgc \ + --enable-unlimited-crypto \ + --disable-warnings-as-errors \ + ${NUM_PROC_OPT} + #--disable-javac-server + + make images legacy-jre-image docs + + # https://bugs.openjdk.java.net/browse/JDK-8173610 + find "../${_imgdir}" -iname '*.so' -exec chmod +x {} \; +} + +check() { + cd jdk${_majorver}u-${_hg_tag} + # TODO package jtreg + # make -k check +} + +package_jre14-openjdk-headless() { + pkgdesc="OpenJDK Java ${_majorver} headless runtime environment" + depends=('java-runtime-common>=3' 'ca-certificates-utils' 'nss' 'libjpeg-turbo' 'lcms2' 'libnet' 'freetype2') + optdepends=('java-rhino: for some JavaScript support') + provides=("java-runtime-headless=${_majorver}" "java-runtime-headless-openjdk=${_majorver}" "jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}") + backup=(etc/${pkgbase}/logging.properties + etc/${pkgbase}/management/jmxremote.access + etc/${pkgbase}/management/jmxremote.password.template + etc/${pkgbase}/management/management.properties + etc/${pkgbase}/net.properties + etc/${pkgbase}/security/java.policy + etc/${pkgbase}/security/java.security + etc/${pkgbase}/security/policy/README.txt + etc/${pkgbase}/security/policy/limited/default_US_export.policy + etc/${pkgbase}/security/policy/limited/default_local.policy + etc/${pkgbase}/security/policy/limited/exempt_local.policy + etc/${pkgbase}/security/policy/unlimited/default_US_export.policy + etc/${pkgbase}/security/policy/unlimited/default_local.policy + etc/${pkgbase}/sound.properties) + install=install_jre-openjdk-headless.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin lib \ + "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + rm "${pkgdir}${_jvmdir}/${f}" + done + + cp ../jdk/release "${pkgdir}${_jvmdir}" + cp ../jdk/lib/modules "${pkgdir}${_jvmdir}/lib" + + # Conf + install -dm 755 "${pkgdir}/etc" + cp -r conf "${pkgdir}/etc/${pkgbase}" + ln -s /etc/${pkgbase} "${pkgdir}/${_jvmdir}/conf" + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + ln -s /usr/share/licenses/${pkgbase} "${pkgdir}/${_jvmdir}/legal" + + # Man pages + for f in bin/*; do + f=$(basename "${f}") + _man=../jdk/man/man1/"${f}.1" + test -f "${_man}" && install -Dm 644 "${_man}" "${pkgdir}/usr/share/man/man1/${f}-openjdk${_majorver}.1" + done + ln -s /usr/share/man "${pkgdir}/${_jvmdir}/man" + + # Link JKS keystore from ca-certificates-utils + rm -f "${pkgdir}${_jvmdir}/lib/security/cacerts" + ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}${_jvmdir}/lib/security/cacerts" +} + +package_jre14-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} full runtime environment" + depends=("jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}" 'giflib') + optdepends=('alsa-lib: for basic sound support' + 'gtk2: for the Gtk+ 2 look and feel - desktop usage' + 'gtk3: for the Gtk+ 3 look and feel - desktop usage') + provides=("java-runtime=${_majorver}" "java-runtime-openjdk=${_majorver}" "jre${_majorver}-openjdk=${pkgver}-${pkgrel}") + install=install_jre-openjdk.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + install -Dm 644 ${f} "${pkgdir}${_jvmdir}/${f}" + done + + # Licenses + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_jdk14-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} development kit" + depends=("jre${_majorver}-openjdk=${pkgver}-${pkgrel}" 'java-environment-common=3' 'hicolor-icon-theme' 'libelf') + provides=("java-environment=${_majorver}" "java-environment-openjdk=${_majorver}" "jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + install=install_jdk-openjdk.sh + + cd ${_imgdir}/jdk + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin demo include jmods lib \ + "${pkgdir}${_jvmdir}" + + rm "${pkgdir}${_jvmdir}/lib/src.zip" + + # Remove files held by JRE + pushd ../jre + for d in bin lib; do + find ${d} ! -type d -exec rm "${pkgdir}${_jvmdir}/{}" \; + done + popd + find "${pkgdir}${_jvmdir}/lib" -type d -empty -delete + + # Conf files all belong to JRE + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + pushd ../jre/legal + find . ! -type d -exec rm "${pkgdir}/usr/share/licenses/${pkgbase}/{}" \; + popd + find "${pkgdir}/usr/share/licenses" -type d -empty -delete + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + + # Man pages + for f in bin/*; do + f=$(basename "${f}") + _man=man/man1/"${f}.1" + test -f "../jre/bin/${f}" && continue + test -f "${_man}" && install -Dm 644 "${_man}" "${pkgdir}/usr/share/man/man1/${f}-openjdk${_majorver}.1" + done + + # Icons + for s in 16 24 32 48; do + install -Dm 644 \ + "${srcdir}/jdk${_majorver}u-${_hg_tag}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/${pkgbase}.png" + done + + # Desktop files + for f in jconsole java jshell; do + install -Dm 644 \ + "${srcdir}/freedesktop-${f}.desktop" \ + "${pkgdir}/usr/share/applications/${f}-${pkgbase}.desktop" + done +} + +package_openjdk14-src() { + pkgdesc="OpenJDK Java ${_majorver} sources" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + provides=("openjdk${_majorver}-src=${pkgver}-${pkgrel}") + + install -Dm 644 -t "${pkgdir}${_jvmdir}/lib" ${_imgdir}/jdk/lib/src.zip + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_openjdk14-doc() { + pkgdesc="OpenJDK Java ${_majorver} documentation" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + provides=("openjdk${_majorver}-doc=${pkgver}-${pkgrel}") + + install -dm 755 "${pkgdir}/usr/share/doc" + cp -r ${_imgdir}/docs "${pkgdir}/usr/share/doc/${pkgbase}" + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +# vim: ts=2 sw=2 et: diff --git a/build-support/java14-openjdk/freedesktop-java.desktop b/build-support/java14-openjdk/freedesktop-java.desktop new file mode 100644 index 00000000..0c3af5fc --- /dev/null +++ b/build-support/java14-openjdk/freedesktop-java.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=OpenJDK Java 14 Runtime +Name[fi]=OpenJDK Java 14 - ajonaikainen ympäristö +Comment=OpenJDK Java 14 Runtime +Comment[fi]=OpenJDK Java 14 - ajonaikainen ympäristö +Keywords=java;runtime +Exec=/usr/lib/jvm/java-14-openjdk/bin/java -jar +Terminal=false +Type=Application +Icon=java14-openjdk +MimeType=application/x-java-archive;application/java-archive;application/x-jar; +NoDisplay=true diff --git a/build-support/java14-openjdk/freedesktop-jconsole.desktop b/build-support/java14-openjdk/freedesktop-jconsole.desktop new file mode 100644 index 00000000..d13bc697 --- /dev/null +++ b/build-support/java14-openjdk/freedesktop-jconsole.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK Java 14 Console +Name[fi]=OpenJDK Java 14 - konsoli +Comment=OpenJDK Java 14 Monitoring & Management Console +Comment[fi]=OpenJDK Java 14 - valvonta- ja hallintakonsoli +Keywords=java;console;monitoring +Exec=/usr/lib/jvm/java-14-openjdk/bin/jconsole +Terminal=false +Type=Application +Icon=java14-openjdk +Categories=Application;System; diff --git a/build-support/java14-openjdk/freedesktop-jshell.desktop b/build-support/java14-openjdk/freedesktop-jshell.desktop new file mode 100644 index 00000000..54d71450 --- /dev/null +++ b/build-support/java14-openjdk/freedesktop-jshell.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=OpenJDK Java 14 Shell +Comment=OpenJDK Java 14 Shell +Keywords=java;shell +Exec=/usr/lib/jvm/java-14-openjdk/bin/jshell +Terminal=true +Type=Application +Icon=java14-openjdk +Categories=Application;System; diff --git a/build-support/java14-openjdk/install_jdk-openjdk.sh b/build-support/java14-openjdk/install_jdk-openjdk.sh new file mode 100644 index 00000000..4fe5cdc6 --- /dev/null +++ b/build-support/java14-openjdk/install_jdk-openjdk.sh @@ -0,0 +1,50 @@ +THIS_JDK='java-14-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JDK} + ;; + ${THIS_JDK}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + default=$(fix_default) + if [ -z "${default}" ]; then + /usr/bin/archlinux-java set ${THIS_JDK} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then + # Check JRE is still available + if [ -x /usr/lib/jvm/${THIS_JDK}/bin/java ]; then + /usr/bin/archlinux-java unset + fi + fi +} diff --git a/build-support/java14-openjdk/install_jre-openjdk-headless.sh b/build-support/java14-openjdk/install_jre-openjdk-headless.sh new file mode 100644 index 00000000..712bc322 --- /dev/null +++ b/build-support/java14-openjdk/install_jre-openjdk-headless.sh @@ -0,0 +1,48 @@ +THIS_JRE='java-14-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + default=$(fix_default) + if [ "x${default}" = "x${THIS_JRE}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java14-openjdk/install_jre-openjdk.sh b/build-support/java14-openjdk/install_jre-openjdk.sh new file mode 100644 index 00000000..cc6b928e --- /dev/null +++ b/build-support/java14-openjdk/install_jre-openjdk.sh @@ -0,0 +1,35 @@ +THIS_JRE='java-14-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + echo "when you use a non-reparenting window manager," + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh" +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi +} diff --git a/build-support/java14-openjdk/jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon.patch b/build-support/java14-openjdk/jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon.patch new file mode 100644 index 00000000..ac08a877 --- /dev/null +++ b/build-support/java14-openjdk/jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon.patch @@ -0,0 +1,86 @@ +diff -rauN jdk14u-jdk-14.0.2+12/src/java.base/unix/native/libjava/childproc.c jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c +--- jdk14u-jdk-14.0.2+12/src/java.base/unix/native/libjava/childproc.c 2020-07-08 22:01:33.000000000 +0200 ++++ jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c 2021-05-20 07:06:02.032844761 +0200 +@@ -34,6 +34,7 @@ + + #include "childproc.h" + ++const char * const *parentPathv; + + ssize_t + restartableWrite(int fd, const void *buf, size_t count) +diff -rauN jdk14u-jdk-14.0.2+12/src/java.base/unix/native/libjava/childproc.h jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h +--- jdk14u-jdk-14.0.2+12/src/java.base/unix/native/libjava/childproc.h 2020-07-08 22:01:33.000000000 +0200 ++++ jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h 2021-05-20 07:06:02.032844761 +0200 +@@ -126,7 +126,7 @@ + * The cached and split version of the JDK's effective PATH. + * (We don't support putenv("PATH=...") in native code) + */ +-const char * const *parentPathv; ++extern const char * const *parentPathv; + + ssize_t restartableWrite(int fd, const void *buf, size_t count); + int restartableDup2(int fd_from, int fd_to); +diff -rauN jdk14u-jdk-14.0.2+12/src/java.security.jgss/share/native/libj2gss/NativeFunc.c jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.c +--- jdk14u-jdk-14.0.2+12/src/java.security.jgss/share/native/libj2gss/NativeFunc.c 2020-07-08 22:01:33.000000000 +0200 ++++ jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.c 2021-05-20 07:06:02.099511592 +0200 +@@ -27,6 +27,9 @@ + #include <stdlib.h> + #include "NativeFunc.h" + ++/* global GSS function table */ ++GSS_FUNCTION_TABLE_PTR ftab; ++ + /* standard GSS method names (ordering is from mapfile) */ + static const char RELEASE_NAME[] = "gss_release_name"; + static const char IMPORT_NAME[] = "gss_import_name"; +diff -rauN jdk14u-jdk-14.0.2+12/src/java.security.jgss/share/native/libj2gss/NativeFunc.h jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.h +--- jdk14u-jdk-14.0.2+12/src/java.security.jgss/share/native/libj2gss/NativeFunc.h 2020-07-08 22:01:33.000000000 +0200 ++++ jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/java.security.jgss/share/native/libj2gss/NativeFunc.h 2021-05-20 07:06:02.162845082 +0200 +@@ -277,6 +277,6 @@ + typedef GSS_FUNCTION_TABLE *GSS_FUNCTION_TABLE_PTR; + + /* global GSS function table */ +-GSS_FUNCTION_TABLE_PTR ftab; ++extern GSS_FUNCTION_TABLE_PTR ftab; + + #endif +diff -rauN jdk14u-jdk-14.0.2+12/src/jdk.sctp/unix/native/libsctp/Sctp.h jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h +--- jdk14u-jdk-14.0.2+12/src/jdk.sctp/unix/native/libsctp/Sctp.h 2020-07-08 22:01:33.000000000 +0200 ++++ jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h 2021-05-20 07:06:02.189511815 +0200 +@@ -322,12 +322,12 @@ + + #endif /* __linux__ */ + +-sctp_getladdrs_func* nio_sctp_getladdrs; +-sctp_freeladdrs_func* nio_sctp_freeladdrs; +-sctp_getpaddrs_func* nio_sctp_getpaddrs; +-sctp_freepaddrs_func* nio_sctp_freepaddrs; +-sctp_bindx_func* nio_sctp_bindx; +-sctp_peeloff_func* nio_sctp_peeloff; ++extern sctp_getladdrs_func* nio_sctp_getladdrs; ++extern sctp_freeladdrs_func* nio_sctp_freeladdrs; ++extern sctp_getpaddrs_func* nio_sctp_getpaddrs; ++extern sctp_freepaddrs_func* nio_sctp_freepaddrs; ++extern sctp_bindx_func* nio_sctp_bindx; ++extern sctp_peeloff_func* nio_sctp_peeloff; + + jboolean loadSocketExtensionFuncs(JNIEnv* env); + +diff -rauN jdk14u-jdk-14.0.2+12/src/jdk.sctp/unix/native/libsctp/SctpNet.c jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c +--- jdk14u-jdk-14.0.2+12/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2020-07-08 22:01:33.000000000 +0200 ++++ jdk14u-jdk-14.0.2+12-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2021-05-20 07:06:02.212845206 +0200 +@@ -37,6 +37,13 @@ + #include "sun_nio_ch_sctp_SctpNet.h" + #include "sun_nio_ch_sctp_SctpStdSocketOption.h" + ++sctp_getladdrs_func* nio_sctp_getladdrs; ++sctp_freeladdrs_func* nio_sctp_freeladdrs; ++sctp_getpaddrs_func* nio_sctp_getpaddrs; ++sctp_freepaddrs_func* nio_sctp_freepaddrs; ++sctp_bindx_func* nio_sctp_bindx; ++sctp_peeloff_func* nio_sctp_peeloff; ++ + static jclass isaCls = 0; + static jmethodID isaCtrID = 0; + diff --git a/build-support/java15-openjdk/PKGBUILD b/build-support/java15-openjdk/PKGBUILD new file mode 100644 index 00000000..f10f7fc1 --- /dev/null +++ b/build-support/java15-openjdk/PKGBUILD @@ -0,0 +1,289 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> + +# TODO add test, see about packaging jtreg and using it here + +pkgbase=java15-openjdk +pkgname=('jre15-openjdk-headless' 'jre15-openjdk' 'jdk15-openjdk' 'openjdk15-src' 'openjdk15-doc') +_majorver=15 +_minorver=0 +_securityver=3 +_updatever=3 +pkgrel=1 +pkgver=${_majorver}.${_minorver}.${_securityver}.u${_updatever} +_hg_tag=jdk-${_majorver}.${_minorver}.${_securityver}+${_updatever} +arch=('x86_64' 'i486' 'i686' 'pentium4') +url='https://openjdk.java.net/' +license=('custom') +makedepends=('jdk14-openjdk' 'cpio' 'unzip' 'zip' 'libelf' 'libcups' 'libx11' + 'libxrender' 'libxtst' 'libxt' 'libxext' 'libxrandr' 'alsa-lib' + 'graphviz' 'freetype2' 'libjpeg-turbo' 'giflib' 'libpng' 'lcms2' + 'libnet' 'bash' 'harfbuzz' 'gcc-libs' 'glibc') +#source=(https://hg.openjdk.java.net/jdk-updates/jdk${_majorver}u/archive/${_hg_tag}.tar.gz +source=(https://hg.openjdk.java.net/jdk-updates/jdk15u/archive/jdk-15.0.3+3.tar.gz + freedesktop-java.desktop + freedesktop-jconsole.desktop + freedesktop-jshell.desktop) +sha256sums=('4bbd7a73354a2d244c7a075406339aa0ce4c5fc6be91a795af931f6dc95d067c' + '30b38fcbf1fcab6b33aea2e6d82e611f7d0ea974d1d11a87a262f598ba006fd9' + '971a71d0a80d6e5e47d5ea722b723088e86425a943a5c3615da95417c8f5aca2' + '77e45ece92bc9b0c638f5468c2050cc1dc4508308ec302e6910e793be97687ac') + +case "${CARCH}" in + x86_64) _JARCH='x86_64';; + i486|i686|pentium4) _JARCH='x86';; +esac + +_jvmdir=/usr/lib/jvm/java-${_majorver}-openjdk +_jdkdir=jdk${_majorver}u-${_hg_tag} +_imgdir=${_jdkdir}/build/linux-${_JARCH}-server-release/images +_imgdir="${_imgdir//--/-${_JARCH}-}" + +_nonheadless=(lib/libawt_xawt.{so,debuginfo} + lib/libjawt.{so,debuginfo} + lib/libjsound.{so,debuginfo} + lib/libsplashscreen.{so,debuginfo}) + +build() { + cd ${_jdkdir} + + NUM_PROC_OPT='' + MAKEFLAG_J=$(echo ${MAKEFLAGS} | sed -En 's/.*-j([0-9]+).*/\1/p') + if [ -n "${MAKEFLAG_J}" ]; then + # http://hg.openjdk.java.net/jdk10/jdk10/file/85e6cb013b98/make/InitSupport.gmk#l105 + echo "Removing '-j${MAKEFLAG_J}' from MAKEFLAGS to prevent build fail. Passing it directly to ./configure." + export MAKEFLAGS=${MAKEFLAGS/-j${MAKEFLAG_J}/} + NUM_PROC_OPT="--with-num-cores=${MAKEFLAG_J}" + fi + + # Avoid optimization of HotSpot to be lowered from O3 to O2 + local _CFLAGS="${CFLAGS//-O2/-O3} ${CPPFLAGS} -fcommon" + local _CXXFLAGS="${CXXFLAGS//-O2/-O3} ${CPPFLAGS} -fcommon" + local _LDFLAGS=${LDFLAGS} + if [[ $CARCH = i486 || $CARCH = i686 || $CARCH = pentium4 ]]; then + echo "Removing '-fno-plt' from CFLAGS and CXXFLAGS to prevent build fail with this architecture" + _CFLAGS=${CFLAGS/-fno-plt/} + _CXXFLAGS=${CXXFLAGS/-fno-plt/} + fi + + # i486-specific + if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 + fi + + # pentium4-specific + if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + # force 4-byte stack alignment on SSE aptimized systems, see FS32#75 + _CFLAGS+=" -mincoming-stack-boundary=2" + _CXXFLAGS+=" -mincoming-stack-boundary=2" + fi + + # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning + # in the output of ./configure unless used like such: + # --with-extra-cflags="${CFLAGS}" + # --with-extra-cxxflags="${CXXFLAGS}" + # --with-extra-ldflags="${LDFLAGS}" + # See also paragraph "Configure Control Variables from "jdk${_majorver}-${_hg_tag}/common/doc/building.md + unset CFLAGS + unset CXXFLAGS + unset LDFLAGS + + bash configure \ + --with-version-build="${_updatever}" \ + --with-version-pre="" \ + --with-version-opt="" \ + --with-stdc++lib=dynamic \ + --with-extra-cflags="${_CFLAGS}" \ + --with-extra-cxxflags="${_CXXFLAGS}" \ + --with-extra-ldflags="${_LDFLAGS}" \ + --with-libjpeg=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-lcms=system \ + --with-zlib=system \ + --enable-unlimited-crypto \ + --disable-warnings-as-errors \ + ${NUM_PROC_OPT} + #--disable-javac-server + + make images legacy-jre-image docs + + # https://bugs.openjdk.java.net/browse/JDK-8173610 + find "../${_imgdir}" -iname '*.so' -exec chmod +x {} \; +} + +check() { + cd jdk${_majorver}u-${_hg_tag} + # TODO package jtreg + # make -k check +} + +package_jre15-openjdk-headless() { + pkgdesc="OpenJDK Java ${_majorver} headless runtime environment" + depends=('java-runtime-common>=3' 'ca-certificates-utils' 'nss' 'libjpeg-turbo' 'libjpeg.so' + 'lcms2' 'liblcms2.so' 'libnet' 'freetype2' 'libfreetype.so' 'harfbuzz' 'libharfbuzz.so' + 'glibc' 'gcc-libs') + optdepends=('java-rhino: for some JavaScript support') + provides=("java-runtime-headless=${_majorver}" "java-runtime-headless-openjdk=${_majorver}" "jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}") + backup=(etc/${pkgbase}/logging.properties + etc/${pkgbase}/management/jmxremote.access + etc/${pkgbase}/management/jmxremote.password.template + etc/${pkgbase}/management/management.properties + etc/${pkgbase}/net.properties + etc/${pkgbase}/security/java.policy + etc/${pkgbase}/security/java.security + etc/${pkgbase}/security/policy/README.txt + etc/${pkgbase}/security/policy/limited/default_US_export.policy + etc/${pkgbase}/security/policy/limited/default_local.policy + etc/${pkgbase}/security/policy/limited/exempt_local.policy + etc/${pkgbase}/security/policy/unlimited/default_US_export.policy + etc/${pkgbase}/security/policy/unlimited/default_local.policy + etc/${pkgbase}/sound.properties) + install=install_jre-openjdk-headless.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin lib \ + "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + rm "${pkgdir}${_jvmdir}/${f}" + done + + cp ../jdk/release "${pkgdir}${_jvmdir}" + cp ../jdk/lib/modules "${pkgdir}${_jvmdir}/lib" + + # Conf + install -dm 755 "${pkgdir}/etc" + cp -r conf "${pkgdir}/etc/${pkgbase}" + ln -s /etc/${pkgbase} "${pkgdir}/${_jvmdir}/conf" + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + ln -s /usr/share/licenses/${pkgbase} "${pkgdir}/${_jvmdir}/legal" + + # Man pages + for f in bin/*; do + f=$(basename "${f}") + _man=../jdk/man/man1/"${f}.1" + test -f "${_man}" && install -Dm 644 "${_man}" "${pkgdir}/usr/share/man/man1/${f}-openjdk${_majorver}.1" + done + ln -s /usr/share/man "${pkgdir}/${_jvmdir}/man" + + # Link JKS keystore from ca-certificates-utils + rm -f "${pkgdir}${_jvmdir}/lib/security/cacerts" + ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}${_jvmdir}/lib/security/cacerts" +} + +package_jre15-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} full runtime environment" + depends=("jre${_majorver}-openjdk-headless=${pkgver}-${pkgrel}" 'giflib' 'libgif.so' + 'glibc' 'gcc-libs' 'libpng') + optdepends=('alsa-lib: for basic sound support' + 'gtk2: for the Gtk+ 2 look and feel - desktop usage' + 'gtk3: for the Gtk+ 3 look and feel - desktop usage') + provides=("java-runtime=${_majorver}" "java-runtime-openjdk=${_majorver}" "jre${_majorver}-openjdk=${pkgver}-${pkgrel}") + install=install_jre-openjdk.sh + + cd ${_imgdir}/jre + + install -dm 755 "${pkgdir}${_jvmdir}" + + for f in "${_nonheadless[@]}"; do + install -Dm 644 ${f} "${pkgdir}${_jvmdir}/${f}" + done + + # Licenses + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_jdk15-openjdk() { + pkgdesc="OpenJDK Java ${_majorver} development kit" + depends=("jre${_majorver}-openjdk=${pkgver}-${pkgrel}" 'java-environment-common=3' + 'hicolor-icon-theme' 'libelf' 'glibc' 'gcc-libs') + provides=("java-environment=${_majorver}" "java-environment-openjdk=${_majorver}" "jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + install=install_jdk-openjdk.sh + + cd ${_imgdir}/jdk + + install -dm 755 "${pkgdir}${_jvmdir}" + + cp -a bin demo include jmods lib \ + "${pkgdir}${_jvmdir}" + + rm "${pkgdir}${_jvmdir}/lib/src.zip" + + # Remove files held by JRE + pushd ../jre + for d in bin lib; do + find ${d} ! -type d -exec rm "${pkgdir}${_jvmdir}/{}" \; + done + popd + find "${pkgdir}${_jvmdir}/lib" -type d -empty -delete + + # Conf files all belong to JRE + + # Legal + install -dm 755 "${pkgdir}/usr/share/licenses" + cp -r legal "${pkgdir}/usr/share/licenses/${pkgbase}" + pushd ../jre/legal + find . ! -type d -exec rm "${pkgdir}/usr/share/licenses/${pkgbase}/{}" \; + popd + find "${pkgdir}/usr/share/licenses" -type d -empty -delete + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" + + # Man pages + for f in bin/*; do + f=$(basename "${f}") + _man=man/man1/"${f}.1" + test -f "../jre/bin/${f}" && continue + test -f "${_man}" && install -Dm 644 "${_man}" "${pkgdir}/usr/share/man/man1/${f}-openjdk${_majorver}.1" + done + + # Icons + for s in 16 24 32 48; do + install -Dm 644 \ + "${srcdir}/jdk${_majorver}u-${_hg_tag}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/${pkgbase}.png" + done + + # Desktop files + for f in jconsole java jshell; do + install -Dm 644 \ + "${srcdir}/freedesktop-${f}.desktop" \ + "${pkgdir}/usr/share/applications/${f}-${pkgbase}.desktop" + done +} + +package_openjdk15-src() { + pkgdesc="OpenJDK Java ${_majorver} sources" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + provides=("openjdk${_majorver}-src=${pkgver}-${pkgrel}") + + install -Dm 644 -t "${pkgdir}${_jvmdir}/lib" ${_imgdir}/jdk/lib/src.zip + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_openjdk15-doc() { + pkgdesc="OpenJDK Java ${_majorver} documentation" + # Depends on JDK to get license files + depends=("jdk${_majorver}-openjdk=${pkgver}-${pkgrel}") + provides=("openjdk${_majorver}-doc=${pkgver}-${pkgrel}") + + install -dm 755 "${pkgdir}/usr/share/doc" + cp -r ${_imgdir}/docs "${pkgdir}/usr/share/doc/${pkgbase}" + + install -dm 755 "${pkgdir}/usr/share/licenses" + ln -s ${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +# vim: ts=2 sw=2 et: diff --git a/build-support/java15-openjdk/freedesktop-java.desktop b/build-support/java15-openjdk/freedesktop-java.desktop new file mode 100644 index 00000000..ea3bc146 --- /dev/null +++ b/build-support/java15-openjdk/freedesktop-java.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=OpenJDK Java 15 Runtime +Name[fi]=OpenJDK Java 15 - ajonaikainen ympäristö +Comment=OpenJDK Java 15 Runtime +Comment[fi]=OpenJDK Java 15 - ajonaikainen ympäristö +Keywords=java;runtime +Exec=/usr/lib/jvm/java-15-openjdk/bin/java -jar +Terminal=false +Type=Application +Icon=java15-openjdk +MimeType=application/x-java-archive;application/java-archive;application/x-jar; +NoDisplay=true diff --git a/build-support/java15-openjdk/freedesktop-jconsole.desktop b/build-support/java15-openjdk/freedesktop-jconsole.desktop new file mode 100644 index 00000000..7a70f38a --- /dev/null +++ b/build-support/java15-openjdk/freedesktop-jconsole.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK Java 15 Console +Name[fi]=OpenJDK Java 15 - konsoli +Comment=OpenJDK Java 15 Monitoring & Management Console +Comment[fi]=OpenJDK Java 15 - valvonta- ja hallintakonsoli +Keywords=java;console;monitoring +Exec=/usr/lib/jvm/java-15-openjdk/bin/jconsole +Terminal=false +Type=Application +Icon=java15-openjdk +Categories=Application;System; diff --git a/build-support/java15-openjdk/freedesktop-jshell.desktop b/build-support/java15-openjdk/freedesktop-jshell.desktop new file mode 100644 index 00000000..f64f79d6 --- /dev/null +++ b/build-support/java15-openjdk/freedesktop-jshell.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=OpenJDK Java 15 Shell +Comment=OpenJDK Java 15 Shell +Keywords=java;shell +Exec=/usr/lib/jvm/java-15-openjdk/bin/jshell +Terminal=true +Type=Application +Icon=java15-openjdk +Categories=Application;System; diff --git a/build-support/java15-openjdk/install_jdk-openjdk.sh b/build-support/java15-openjdk/install_jdk-openjdk.sh new file mode 100644 index 00000000..154be958 --- /dev/null +++ b/build-support/java15-openjdk/install_jdk-openjdk.sh @@ -0,0 +1,50 @@ +THIS_JDK='java-15-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JDK} + ;; + ${THIS_JDK}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + default=$(fix_default) + if [ -z "${default}" ]; then + /usr/bin/archlinux-java set ${THIS_JDK} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then + # Check JRE is still available + if [ -x /usr/lib/jvm/${THIS_JDK}/bin/java ]; then + /usr/bin/archlinux-java unset + fi + fi +} diff --git a/build-support/java15-openjdk/install_jre-openjdk-headless.sh b/build-support/java15-openjdk/install_jre-openjdk-headless.sh new file mode 100644 index 00000000..4c0bcdb8 --- /dev/null +++ b/build-support/java15-openjdk/install_jre-openjdk-headless.sh @@ -0,0 +1,48 @@ +THIS_JRE='java-15-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + default=$(fix_default) + if [ "x${default}" = "x${THIS_JRE}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java15-openjdk/install_jre-openjdk.sh b/build-support/java15-openjdk/install_jre-openjdk.sh new file mode 100644 index 00000000..c55c4aef --- /dev/null +++ b/build-support/java15-openjdk/install_jre-openjdk.sh @@ -0,0 +1,35 @@ +THIS_JRE='java-15-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + echo "when you use a non-reparenting window manager," + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh" +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi +} diff --git a/build-support/java7-openjdk/PKGBUILD b/build-support/java7-openjdk/PKGBUILD new file mode 100644 index 00000000..a3819e00 --- /dev/null +++ b/build-support/java7-openjdk/PKGBUILD @@ -0,0 +1,350 @@ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org> + +pkgname=('jre7-openjdk-headless' 'jre7-openjdk' 'jdk7-openjdk' 'openjdk7-src' 'openjdk7-doc') +pkgbase=java7-openjdk +_java_ver=7 +_icedtea_ver=2.6.22 +#pkgver() { +# _updatever=$(grep -E "^JDK_UPDATE_VERSION = (.)+" ${srcdir}/icedtea-${_icedtea_ver}/Makefile.am \ +# | sed -r 's/^JDK_UPDATE_VERSION = (.+)$/\1/') +# echo ${_java_ver}.u${_updatever}_${_icedtea_ver} +#} +_updatever=261 +pkgver=${_java_ver}.u${_updatever}_${_icedtea_ver} +pkgrel=1 + +_bootstrap=0 # 0/1 for quick build or full bootstrap + +arch=(i486 i686 pentium4 'x86_64') +url='http://icedtea.classpath.org' +license=('custom') +options=('!emptydirs') +makedepends=('bin32-jdk6' 'libxp' 'libxslt' + 'alsa-lib' 'giflib' 'libpng>=1.5.7' 'gtk2' + 'libpulse>=0.9.11' 'zip' 'unzip' 'cpio' 'fastjar' 'wget' + 'eclipse-ecj' 'pcsclite' 'lksctp-tools' 'autoconf' 'lcms2' 'procps-ng' 'ant19') +# checkdepends=('procps-ng') # requires now systemtap and maybe more from AUR -> tests disabled + +_icedtea_url=http://icedtea.classpath.org/download +_drops_url=${_icedtea_url}/drops/icedtea7/${_icedtea_ver} +source=(${_icedtea_url}/source/icedtea-${_icedtea_ver}.tar.gz{,.sig} + 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 + icedtea-jdk-xattr.diff + fix-xattr-include.patch + icedtea-2.6.22-autogen.patch) + +# EdDSA key may require `keyserver sks-keyservers.net` in GPG config +validpgpkeys=('5132579DD1540ED23E04C5A0CFDA0F9B35964222') # Andrew John Hughes + +# http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2357 + +sha256sums=('5b201c1f6015e814a90bd521ac264748d93494711fe78708e626fbe40713eaff' + 'SKIP' + '65fe3b8d22e1bceaf374402346ad4649e149d3b3329c3b0fa2ed0ad9669a1818' + 'a07a927a03e1e4199c77ef352aaaf6067101d076a1448a930e1ef2654e9185db' + '988ee7a724385e482137f3962db151c3e522a94dd6ae7285941a07929868557a' + '8cae72b86bcf782506580ab0efa5c1221cb80b967ea432d1ea081e0d557637da' + '3719a0a6394e4674008fb2c62f428bcae2e8695a2462cf49efec5d5711f8d112' + '9625754a76451e32f6df941c375102cb876737ae607fd76893cb83cfc3657021' + 'dad4c549767780314f27558873eb12689fecf17aa1ae3792e77924c4350dca43' + '9ad943ceb3dbcdf45d72974fc3667886a7ed65c69ab9abc17be5412827551a7f' + '56b919ababb13bd6afdcdaceb112b529b6e82539255f2dae9a7e5eb91645164b' + '8da7248a72c60f4cb82c33712bdd8ce8f25b0cd147816efb7112f18a752fcabd' + '9a48d91af72d28d7f0fca8ea6f5e42085d7c877c7141a7d895331ab1f5882086' + '595b6687d3319b18aa9a2de9e30337170f2056479ecb63878c4bdc734637593e') + +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) + +prepare() { + cp "${srcdir}"/*.diff "${srcdir}"/icedtea-${_icedtea_ver}/patches + + cd "${srcdir}/icedtea-${_icedtea_ver}" + patch -Np1 -i ../fix-xattr-include.patch + patch -Np1 -i ../icedtea-2.6.22-autogen.patch + + ./autogen.sh +} + +build() { + cd "${srcdir}/icedtea-${_icedtea_ver}" + + export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}" + export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}" + + export DISTRIBUTION_PATCHES="patches/fontconfig-paths.diff \ + patches/openjdk7_nonreparenting-wm.diff \ + patches/icedtea-jdk-xattr.diff" + + if [ "$_bootstrap" = "1" ]; then + BOOTSTRAPOPT="--enable-bootstrap --with-ecj-jar=/usr/share/java/ecj.jar" + else + BOOTSTRAPOPT="--disable-bootstrap" + fi + + export EXTRA_CFLAGS="$CFLAGS $CPPFLAGS -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow" + export EXTRA_LDFLAGS="$LDFLAGS" + + export JAVA_HOME=/usr/lib32/jvm/java-6-jdk + ./configure \ + ${BOOTSTRAPOPT} \ + --with-parallel-jobs="${MAKEFLAGS/-j}" \ + --disable-tests \ + --disable-downloading --disable-Werror \ + --with-pkgversion="Arch Linux 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 \ + --without-rhino +#--disable-docs + make +} + +check() { + cd "${srcdir}/icedtea-${_icedtea_ver}" + #make -k check +} + +package_jre7-openjdk-headless() { + pkgdesc='OpenJDK Java 7 headless runtime environment' + depends=('java-runtime-common' 'libjpeg-turbo' 'lcms2' 'nss' 'ca-certificates-utils' 'libcups') + optdepends=('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-utils + 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' + depends=("jre7-openjdk-headless=${pkgver}-${pkgrel}" 'xdg-utils' 'hicolor-icon-theme') + optdepends=('icedtea-web: 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" + sed "s#_BINDIR_#${_jvmdir}/jre/bin#" \ + "${srcdir}/icedtea-${_icedtea_ver}/policytool.desktop" \ + > "${pkgdir}/usr/share/applications/policytool.desktop" + + # 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' + depends=('java-environment-common' "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" + sed "s#_BINDIR_#${_jvmdir}/bin#" \ + "${srcdir}/icedtea-${_icedtea_ver}/jconsole.desktop" \ + > "${pkgdir}/usr/share/applications/jconsole.desktop" + + + # 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}" +} + +package_openjdk7-src() { + pkgdesc='OpenJDK Java 7 sources' + replaces=('openjdk6-src') + + install -D "${srcdir}/${_imgdir}/src.zip" "${pkgdir}${_jvmdir}/src.zip" +} + +package_openjdk7-doc() { + pkgdesc='OpenJDK Java 7 documentation' + + install -d -m755 "${pkgdir}/usr/share/doc/openjdk7-doc" + for i in "${srcdir}"/icedtea-${_icedtea_ver}/openjdk.build/docs/*; do + cp -a $i "${pkgdir}/usr/share/doc/openjdk7-doc/" + done +} +# i486-specific +if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 +fi + +# pentium4-specific +if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + _DOC_ARCH=x86 +fi + +_nonheadless=( + "${_nonheadless[@]/\/\///${_JARCH}/}" +) +_imgdir="${_imgdir//--/-${_JARCH}-}" diff --git a/build-support/java7-openjdk/fix-xattr-include.patch b/build-support/java7-openjdk/fix-xattr-include.patch new file mode 100644 index 00000000..7bba754d --- /dev/null +++ b/build-support/java7-openjdk/fix-xattr-include.patch @@ -0,0 +1,13 @@ +--- icedtea-2.6.17.orig/acinclude.m4 2019-05-30 09:49:34.952140696 +0300 ++++ icedtea-2.6.17/acinclude.m4 2019-05-30 09:50:28.231483929 +0300 +@@ -2271,8 +2271,8 @@ + dnl Check for syscalls + AC_CHECK_FUNCS([openat64 fstatat64 fgetxattr fsetxattr fremovexattr flistxattr unlinkat renameat futimesat fdopendir epoll_create epoll_ctl epoll_wait],, + [AC_MSG_ERROR([Could not find required syscalls; check config.log and use --disable-compile-against-syscalls if necessary.])]) +- AC_CHECK_HEADERS([sys/epoll.h attr/xattr.h], +- , [AC_MSG_ERROR([Could not find required system headers; install the appropriate files from glibc-headers, libc6-dev and/or libattr-devel, libattr1-dev or use --disable-compile-against-syscalls if necessary.])]) ++ AC_CHECK_HEADERS([sys/epoll.h sys/xattr.h], ++ , [AC_MSG_ERROR([Could not find required system headers; install the appropriate files from glibc-headers or libc6-dev or use --disable-compile-against-syscalls if necessary.])]) + ENABLE_SYSCALL_COMPILATION=true + fi + AM_CONDITIONAL(USE_SYSCALL_COMPILATION, test x"${ENABLE_SYSCALL_COMPILATION}" = "xtrue") diff --git a/build-support/java7-openjdk/fontconfig-paths.diff b/build-support/java7-openjdk/fontconfig-paths.diff new file mode 100644 index 00000000..fa08db62 --- /dev/null +++ b/build-support/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/build-support/java7-openjdk/icedtea-2.6.22-autogen.patch b/build-support/java7-openjdk/icedtea-2.6.22-autogen.patch new file mode 100644 index 00000000..fe5f0c72 --- /dev/null +++ b/build-support/java7-openjdk/icedtea-2.6.22-autogen.patch @@ -0,0 +1,30 @@ +diff -rauN icedtea-2.6.22/autogen.sh icedtea-2.6.22-autogen-patch/autogen.sh +--- icedtea-2.6.22/autogen.sh 2020-04-16 18:12:10.921181620 +0200 ++++ icedtea-2.6.22-autogen-patch/autogen.sh 2021-05-14 15:49:37.539185834 +0200 +@@ -11,7 +11,7 @@ + AUTOCONF_VERSION=`${AUTOCONF} --version | head -1 | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'` + # echo ${AUTOCONF_VERSION} + case ${AUTOCONF_VERSION} in +- 2.59* | 2.6[0-9]* ) ++ 2.59* | 2.6[0-9]* | 2.7[0-9]* ) + HAVE_AUTOCONF=true + break; + ;; +@@ -28,7 +28,7 @@ + AUTOHEADER_VERSION=`${AUTOHEADER} --version | head -1 | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'` + # echo ${AUTOHEADER_VERSION} + case ${AUTOHEADER_VERSION} in +- 2.59* | 2.6[0-9]* ) ++ 2.59* | 2.6[0-9]* | 2.7[0-9]* ) + HAVE_AUTOHEADER=true + break; + ;; +@@ -45,7 +45,7 @@ + AUTORECONF_VERSION=`${AUTORECONF} --version | head -1 | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'` + # echo ${AUTORECONF_VERSION} + case ${AUTORECONF_VERSION} in +- 2.59* | 2.6[0-9]* ) ++ 2.59* | 2.6[0-9]* | 2.7[0-9]* ) + HAVE_AUTORECONF=true + break; + ;; diff --git a/build-support/java7-openjdk/icedtea-jdk-xattr.diff b/build-support/java7-openjdk/icedtea-jdk-xattr.diff new file mode 100644 index 00000000..4675ba20 --- /dev/null +++ b/build-support/java7-openjdk/icedtea-jdk-xattr.diff @@ -0,0 +1,11 @@ +--- openjdk.orig/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c 2019-05-30 09:55:45.271164370 +0300 ++++ openjdk/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c 2019-05-30 09:56:01.000980599 +0300 +@@ -38,7 +38,7 @@ + + #ifdef COMPILE_AGAINST_SYSCALLS + #include <sys/types.h> +-#include <attr/xattr.h> ++#include <sys/xattr.h> + #else + #include <syscalls_fp.h> + #endif diff --git a/build-support/java7-openjdk/jdk7-openjdk.install b/build-support/java7-openjdk/jdk7-openjdk.install new file mode 100644 index 00000000..812af454 --- /dev/null +++ b/build-support/java7-openjdk/jdk7-openjdk.install @@ -0,0 +1,50 @@ +THIS_JDK='java-7-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "" | ${THIS_JDK}/jre) + /usr/bin/archlinux-java set ${THIS_JDK} + ;; + ${THIS_JDK}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + default=$(fix_default) + if [ -z "${default}" -o "x${default}" = "x${THIS_JDK}/jre" ]; then + /usr/bin/archlinux-java set ${THIS_JDK} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then + /usr/bin/archlinux-java unset + if [ -x /usr/lib/jvm/${THIS_JDK}/jre/bin/java ]; then + /usr/bin/archlinux-java set ${THIS_JDK}/jre + fi + fi +} diff --git a/build-support/java7-openjdk/jre7-openjdk-headless.install b/build-support/java7-openjdk/jre7-openjdk-headless.install new file mode 100644 index 00000000..6f0ad5d4 --- /dev/null +++ b/build-support/java7-openjdk/jre7-openjdk-headless.install @@ -0,0 +1,48 @@ +THIS_JRE='java-7-openjdk/jre' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE} | ${THIS_JRE/\/jre}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + if [ -z $(fix_default) ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + default=$(fix_default) + if [ "x${default/\/jre}" = "x${THIS_JRE/\/jre}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java7-openjdk/jre7-openjdk.install b/build-support/java7-openjdk/jre7-openjdk.install new file mode 100644 index 00000000..78e694f3 --- /dev/null +++ b/build-support/java7-openjdk/jre7-openjdk.install @@ -0,0 +1,55 @@ +THIS_JRE='java-7-openjdk/jre' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE} | ${THIS_JRE/\/jre}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + 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 /etc/profile.d/jre.sh" + +# update-desktop-database -q +} + +post_upgrade() { + if [ -z $(fix_default) ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + +# update-desktop-database -q +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JRE/\/jre}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} + +post_remove() { + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + +# update-desktop-database -q +} diff --git a/build-support/java7-openjdk/makefile-export-jar.patch b/build-support/java7-openjdk/makefile-export-jar.patch new file mode 100644 index 00000000..efb0bb6c --- /dev/null +++ b/build-support/java7-openjdk/makefile-export-jar.patch @@ -0,0 +1,127 @@ +diff --git a/make/Makefile b/make/Makefile +--- a/make/Makefile ++++ b/make/Makefile +@@ -301,23 +301,18 @@ + + ifeq ($(JVM_VARIANT_SERVER), true) + MISC_DIR=$(C2_DIR) +- GEN_DIR=$(C2_BASE_DIR)/generated + endif + ifeq ($(JVM_VARIANT_CLIENT), true) + MISC_DIR=$(C1_DIR) +- GEN_DIR=$(C1_BASE_DIR)/generated + endif + ifeq ($(JVM_VARIANT_ZEROSHARK), true) + MISC_DIR=$(SHARK_DIR) +- GEN_DIR=$(SHARK_BASE_DIR)/generated + endif + ifeq ($(JVM_VARIANT_ZERO), true) + MISC_DIR=$(ZERO_DIR) +- GEN_DIR=$(ZERO_BASE_DIR)/generated + endif + ifeq ($(JVM_VARIANT_MINIMAL1), true) + MISC_DIR=$(MINIMAL1_DIR) +- GEN_DIR=$(MINIMAL1_BASE_DIR)/generated + endif + + # Bin files (windows) +@@ -377,17 +372,21 @@ + $(install-file) + $(EXPORT_SERVER_DIR)/64/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX) + $(install-file) +- $(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo ++ $(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo + $(install-file) +- $(EXPORT_SERVER_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo ++ $(EXPORT_SERVER_DIR)/%.debuginfo: $(C2_DIR)/%.debuginfo + $(install-file) +- $(EXPORT_SERVER_DIR)/64/%.debuginfo: $(C2_DIR)/%.debuginfo ++ $(EXPORT_SERVER_DIR)/64/%.debuginfo: $(C2_DIR)/%.debuginfo + $(install-file) +- $(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(C2_DIR)/%.diz ++ $(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(C2_DIR)/%.diz + $(install-file) +- $(EXPORT_SERVER_DIR)/%.diz: $(C2_DIR)/%.diz ++ $(EXPORT_SERVER_DIR)/%.diz: $(C2_DIR)/%.diz + $(install-file) +- $(EXPORT_SERVER_DIR)/64/%.diz: $(C2_DIR)/%.diz ++ $(EXPORT_SERVER_DIR)/64/%.diz: $(C2_DIR)/%.diz ++ $(install-file) ++ $(EXPORT_LIB_DIR)/%.jar: $(C2_BASE_DIR)/generated/%.jar ++ $(install-file) ++ $(EXPORT_INCLUDE_DIR)/%: $(C2_BASE_DIR)/generated/jvmtifiles/% + $(install-file) + endif + ifeq ($(JVM_VARIANT_CLIENT), true) +@@ -397,17 +396,21 @@ + $(install-file) + $(EXPORT_CLIENT_DIR)/64/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX) + $(install-file) +- $(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo ++ $(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo + $(install-file) +- $(EXPORT_CLIENT_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo ++ $(EXPORT_CLIENT_DIR)/%.debuginfo: $(C1_DIR)/%.debuginfo + $(install-file) +- $(EXPORT_CLIENT_DIR)/64/%.debuginfo: $(C1_DIR)/%.debuginfo ++ $(EXPORT_CLIENT_DIR)/64/%.debuginfo: $(C1_DIR)/%.debuginfo + $(install-file) +- $(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(C1_DIR)/%.diz ++ $(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(C1_DIR)/%.diz + $(install-file) +- $(EXPORT_CLIENT_DIR)/%.diz: $(C1_DIR)/%.diz ++ $(EXPORT_CLIENT_DIR)/%.diz: $(C1_DIR)/%.diz + $(install-file) +- $(EXPORT_CLIENT_DIR)/64/%.diz: $(C1_DIR)/%.diz ++ $(EXPORT_CLIENT_DIR)/64/%.diz: $(C1_DIR)/%.diz ++ $(install-file) ++ $(EXPORT_LIB_DIR)/%.jar: $(C1_BASE_DIR)/generated/%.jar ++ $(install-file) ++ $(EXPORT_INCLUDE_DIR)/%: $(C1_BASE_DIR)/generated/jvmtifiles/% + $(install-file) + endif + ifeq ($(JVM_VARIANT_ZEROSHARK), true) +@@ -423,6 +426,10 @@ + $(install-file) + $(EXPORT_SERVER_DIR)/%.diz: $(SHARK_DIR)/%.diz + $(install-file) ++ $(EXPORT_LIB_DIR)/%.jar: $(SHARK_BASE_DIR)/generated/%.jar ++ $(install-file) ++ $(EXPORT_INCLUDE_DIR)/%: $(SHARK_BASE_DIR)/generated/jvmtifiles/% ++ $(install-file) + endif + ifeq ($(JVM_VARIANT_ZERO), true) + $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX) +@@ -437,6 +444,10 @@ + $(install-file) + $(EXPORT_SERVER_DIR)/%.diz: $(ZERO_DIR)/%.diz + $(install-file) ++ $(EXPORT_LIB_DIR)/%.jar: $(ZERO_BASE_DIR)/generated/%.jar ++ $(install-file) ++ $(EXPORT_INCLUDE_DIR)/%: $(ZERO_BASE_DIR)/generated/jvmtifiles/% ++ $(install-file) + endif + ifeq ($(JVM_VARIANT_MINIMAL1), true) + $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(MINIMAL1_DIR)/%.$(LIBRARY_SUFFIX) +@@ -457,17 +468,13 @@ + $(install-file) + $(EXPORT_MINIMAL_DIR)/64/%.diz: $(MINIMAL1_DIR)/%.diz + $(install-file) ++ $(EXPORT_LIB_DIR)/%.jar: $(MINIMAL1_BASE_DIR)/generated/%.jar ++ $(install-file) ++ $(EXPORT_INCLUDE_DIR)/%: $(MINIMAL1_BASE_DIR)/generated/jvmtifiles/% ++ $(install-file) + endif + endif + +-# Jar file (sa-jdi.jar) +-$(EXPORT_LIB_DIR)/%.jar: $(GEN_DIR)/%.jar +- $(install-file) +- +-# Include files (jvmti.h, jvmticmlr.h, jni.h, $(JDK_INCLUDE_SUBDIR)/jni_md.h, jmm.h, jfr.h) +-$(EXPORT_INCLUDE_DIR)/%: $(GEN_DIR)/jvmtifiles/% +- $(install-file) +- + $(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/code/% + $(install-file) + diff --git a/build-support/java7-openjdk/openjdk7_nonreparenting-wm.diff b/build-support/java7-openjdk/openjdk7_nonreparenting-wm.diff new file mode 100644 index 00000000..fb4710c1 --- /dev/null +++ b/build-support/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/build-support/java8-openjdk/PKGBUILD b/build-support/java8-openjdk/PKGBUILD new file mode 100644 index 00000000..94c724db --- /dev/null +++ b/build-support/java8-openjdk/PKGBUILD @@ -0,0 +1,318 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> +# Contributor: Boyan Ding <stu_dby@126.com> + +pkgname=('jre8-openjdk-headless' 'jre8-openjdk' 'jdk8-openjdk' 'openjdk8-src' 'openjdk8-doc') +pkgbase=java8-openjdk +_java_ver=8 +_jdk_update=292 +_jdk_build=10 +pkgver=${_java_ver}.u${_jdk_update} +_repo_ver=jdk${_java_ver}u${_jdk_update}-b${_jdk_build} +pkgrel=1 +arch=(i486 i686 pentium4 'x86_64') +url='https://openjdk.java.net/' +license=('custom') +makedepends=('bin32-jdk7' 'ccache' 'cpio' 'unzip' 'zip' + 'libxrender' 'libxtst' 'fontconfig' 'libcups' 'alsa-lib') +_url_src=https://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) + +sha256sums=('aba46c3c758b5fdedc812ce7d8ac46b45c3dfc2c51e41f9b23683d3ea4119d2b' + '55028874f71eda4bd170580885dd1bf707fd69c1e4a4af14175e6ac777ef5927' + '6a6be1e9d69d0bc8ca98b356e1150baae9e112241e3392c2adb6b30ec82864af' + '67f1c3a2c897c81bafb14327fcea249b9faac31a0b4d09321eae79847d4ea509' + '749073e9ba943a6fc87239d808463b05c804a5855fbc8c99fe9a090ae8cd07ef' + 'ca954d02629c43a0b553df75c1c7fe9cea31c428d99a9718a3e6860d684fb8a1' + 'e742f778cbdcb76b4dc593b9fed4bee26af91972096a265c1edb6d8e6ddf6fa3' + '1f335e8fb4ddff5786d1b65345daa4e525aa4ebcefe7e24bf5428b259e47c5d0') + +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 jdk8u-${_repo_ver} + for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do + ln -s ../${subrepo}-${_repo_ver} ${subrepo} + done +} + +build() { + cd jdk8u-${_repo_ver} + +# unset JAVA_HOME + export JAVA_HOME=/usr/lib/jvm/java-7-jdk + + # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1346 + export MAKEFLAGS=${MAKEFLAGS/-j*} + + # Avoid optimization of HotSpot being lowered from O3 to O2 + export CFLAGS="${CFLAGS//-O2/-O3} ${CPPFLAGS} -Wno-error=deprecated-declarations -Wno-error=stringop-overflow= -Wno-error=return-type -Wno-error=cpp -fno-lifetime-dse -fno-delete-null-pointer-checks -fcommon -Wno-error=format-overflow=" + export CXXFLAGS="${CXXFLAGS} ${CPPFLAGS} -fcommon" + + 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 \ + --with-extra-cflags="${CFLAGS}" \ + --with-extra-cxxflags="${CXXFLAGS}" \ + --with-extra-ldflags="${LDFLAGS}" + + # TODO OpenJDK does not want last version of giflib (add 'giflib' as dependency once fixed) + #--with-giflib=system \ + + # These help to debug builds: LOG=trace HOTSPOT_BUILD_JOBS=1 + # Without 'DEBUG_BINARIES', i686 won't build: http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-July/019203.html + make + make docs + + # FIXME sadly 'DESTDIR' is not used here! + make install + + cd ../${_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 jdk8u-${_repo_ver} + #make -k test +} + +package_jre8-openjdk-headless() { + pkgdesc='OpenJDK Java 8 headless runtime environment' + depends=('java-runtime-common' 'ca-certificates-utils' '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 ${_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 + if [ -f "${srcdir}/${_imgdir}/man/man1/${file}.1" ]; then + install -m 644 "${srcdir}/${_imgdir}/man/man1/${file}.1" \ + "${pkgdir}/usr/share/man/man1/${file}-${_jdkname}.1" + fi + if [ -f "${srcdir}/${_imgdir}/man/ja/man1/${file}.1" ]; then + install -m 644 "${srcdir}/${_imgdir}/man/ja/man1/${file}.1" \ + "${pkgdir}/usr/share/man/ja/man1/${file}-${_jdkname}.1" + fi + done + popd + + # Link JKS keystore from ca-certificates-utils + 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' + depends=("jre8-openjdk-headless=${pkgver}-${pkgrel}" 'xdg-utils' 'hicolor-icon-theme') + optdepends=('icedtea-web: web browser plugin + Java Web Start' + 'alsa-lib: for basic sound support' + 'gtk2: for the Gtk+ look and feel - desktop usage' + 'java8-openjfx: for JavaFX GUI components support') + provides=('java-runtime=8' 'java-runtime-openjdk=8') + install=install_jre8-openjdk.sh + replaces=('jre8-openjdk-wm') + + cd ${_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}-${_jdkname}.1" + install -m 644 "${srcdir}/${_imgdir}/man/ja/man1/${file}.1" \ + "${pkgdir}/usr/share/man/ja/man1/${file}-${_jdkname}.1" + done + popd + + # 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' + depends=('java-environment-common' "jre8-openjdk=${pkgver}-${pkgrel}") + provides=('java-environment=8' 'java-environment-openjdk=8') + replaces=('jdk8-openjdk-wm') + install=install_jdk8-openjdk.sh + + cd ${_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 + if [ -f ../man/man1/${b}.1 ]; then + install -D -m 644 ../man/man1/${b}.1 "${pkgdir}/usr/share/man/man1/${b}-${_jdkname}.1" + fi + if [ -f ../man/ja/man1/${b}.1 ]; then + install -D -m 644 ../man/ja/man1/${b}.1 "${pkgdir}/usr/share/man/ja/man1/${b}-${_jdkname}.1" + fi + fi + done + popd + + # Handling 'java-rmi.cgi' separately + install -D -m 755 bin/java-rmi.cgi "${pkgdir}${_jvmdir}/bin/java-rmi.cgi" + + # link license + install -d -m 755 "${pkgdir}/usr/share/licenses/" + ln -sf /usr/share/licenses/${pkgbase} "${pkgdir}/usr/share/licenses/${pkgname}" +} + +package_openjdk8-src() { + pkgdesc='OpenJDK Java 8 sources' + + install -D "${srcdir}/${_imgdir}/src.zip" "${pkgdir}${_jvmdir}/src.zip" +} + +package_openjdk8-doc() { + pkgdesc='OpenJDK Java 8 documentation' + + install -d -m 755 "${pkgdir}/usr/share/doc/${pkgbase}/" + cp -r "${srcdir}"/jdk8u-${_repo_ver}/build/linux-${_DOC_ARCH}-normal-server-release/docs/* \ + "${pkgdir}/usr/share/doc/${pkgbase}/" +} + +# vim: ts=2 sw=2 et: +eval "$( + declare -f build | \ + sed ' + s/-Wno-error=deprecated-declarations/-Wno-error=deprecated-declarations -Wno-error=deprecated/ + ' +)" + +eval "$( + declare -f package_jre8-openjdk-headless | \ + sed ' + s/^\s*rm\s/\0-f / + T + s/ -f -f / -f / + ' +)" + +# i486-specific +if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 + _DOC_ARCH=x86 +fi + +# pentium4-specific +if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + _DOC_ARCH=x86 + + # force 4-byte stack alignment on SSE aptimized systems, see FS32#75 + eval "$( + declare -f build | \ + sed ' + s/\(export CFLAGS="\)/\1-mincoming-stack-boundary=2 / + s/\(export CXXFLAGS="\)/\1-mincoming-stack-boundary=2 / + ' + )" +fi + +_nonheadless=( + "${_nonheadless[@]/\/\///${_JARCH}/}" +) +_imgdir="${_imgdir//--/-${_JARCH}-}" diff --git a/build-support/java8-openjdk/hotspot-jdk8u181-b13-readdir_r.patch b/build-support/java8-openjdk/hotspot-jdk8u181-b13-readdir_r.patch new file mode 100644 index 00000000..2da9545c --- /dev/null +++ b/build-support/java8-openjdk/hotspot-jdk8u181-b13-readdir_r.patch @@ -0,0 +1,25 @@ +diff -rauN hotspot-jdk8u181-b13/src/os/linux/vm/os_linux.inline.hpp hotspot-jdk8u181-b13-readdir_r-patch/src/os/linux/vm/os_linux.inline.hpp +--- hotspot-jdk8u181-b13/src/os/linux/vm/os_linux.inline.hpp 2018-07-04 03:01:40.000000000 +0200 ++++ hotspot-jdk8u181-b13-readdir_r-patch/src/os/linux/vm/os_linux.inline.hpp 2018-08-29 16:58:42.460758701 +0200 +@@ -117,18 +117,10 @@ + inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf) + { + dirent* p; +- int status; + assert(dirp != NULL, "just checking"); +- +- // NOTE: Linux readdir_r (on RH 6.2 and 7.2 at least) is NOT like the POSIX +- // version. Here is the doc for this function: +- // http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_262.html +- +- if((status = ::readdir_r(dirp, dbuf, &p)) != 0) { +- errno = status; +- return NULL; +- } else +- return p; ++ ++ p = ::readdir(dirp); ++ return p; + } + + inline int os::closedir(DIR *dirp) { diff --git a/build-support/java8-openjdk/install_jdk8-openjdk.sh b/build-support/java8-openjdk/install_jdk8-openjdk.sh new file mode 100644 index 00000000..faac8725 --- /dev/null +++ b/build-support/java8-openjdk/install_jdk8-openjdk.sh @@ -0,0 +1,50 @@ +THIS_JDK='java-8-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "" | ${THIS_JDK}/jre) + /usr/bin/archlinux-java set ${THIS_JDK} + ;; + ${THIS_JDK}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + default=$(fix_default) + if [ -z "${default}" -o "x${default}" = "x${THIS_JDK}/jre" ]; then + /usr/bin/archlinux-java set ${THIS_JDK} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then + /usr/bin/archlinux-java unset + if [ -x /usr/lib/jvm/${THIS_JDK}/jre/bin/java ]; then + /usr/bin/archlinux-java set ${THIS_JDK}/jre + fi + fi +} diff --git a/build-support/java8-openjdk/install_jre8-openjdk-headless.sh b/build-support/java8-openjdk/install_jre8-openjdk-headless.sh new file mode 100644 index 00000000..7a168097 --- /dev/null +++ b/build-support/java8-openjdk/install_jre8-openjdk-headless.sh @@ -0,0 +1,48 @@ +THIS_JRE='java-8-openjdk/jre' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE} | ${THIS_JRE/\/jre}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + if [ -z $(fix_default) ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + default=$(fix_default) + if [ "x${default/\/jre}" = "x${THIS_JRE/\/jre}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java8-openjdk/install_jre8-openjdk.sh b/build-support/java8-openjdk/install_jre8-openjdk.sh new file mode 100644 index 00000000..aef58588 --- /dev/null +++ b/build-support/java8-openjdk/install_jre8-openjdk.sh @@ -0,0 +1,42 @@ +THIS_JRE='java-8-openjdk/jre' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE} | ${THIS_JRE/\/jre}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + echo "when you use a non-reparenting window manager," + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh" +} + +post_upgrade() { + if [ -z "$(fix_default)" ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JRE/\/jre}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java9-openjdk/PKGBUILD b/build-support/java9-openjdk/PKGBUILD new file mode 100644 index 00000000..6d850a1c --- /dev/null +++ b/build-support/java9-openjdk/PKGBUILD @@ -0,0 +1,348 @@ +# Maintainer: Guillaume ALAUX <guillaume@archlinux.org> + +# TODO add test, see about packaging jtreg and using it here +# TODO see about building with OpenJDK9 +# TODO add javazi +# TODO when IcedTea provides it, package icedtea-web and add it as optdepends +# TODO package OpenJFX for OpenJDK9 and add it as optdepends + +## EXPLORATIONS +# TODO extract a jmods package from jdk9-openjdk? +# TODO extract a jdk-headless package? +# Now that `jconsole` and `policytool` belong to JDK, one could extract +# these to their own package. +# FYI, `jdk8-openjdk` already depends on `jre8-openjdk` and not `jre8-openjdk-headless` + +pkgname=('jre9-openjdk-headless' 'jre9-openjdk' 'jdk9-openjdk' 'openjdk9-src' 'openjdk9-doc') +_majorver=9 +_minorver=0 +_securityver=4 +_updatever=12 +pkgbase=java$_majorver-openjdk +pkgver=$_majorver.$_minorver.$_securityver.u$_updatever +_hg_tag="jdk-$_majorver.$_minorver.$_securityver+$_updatever" +_repo_ver=jdk$_java_ver.$_hg_tag +pkgrel=1 +_pkg_full_ver=$pkgver-$pkgrel +arch=('x86_64' i486 i686 pentium4) +url='http://openjdk.java.net/' +license=('custom') +makedepends=('jdk8-openjdk' 'cpio' 'unzip' 'zip' + 'libelf' # required for AOT + 'libcups' + 'libx11' 'libxrender' 'libxtst' 'libxt' # 'libxext' already pulled by libxtst + 'alsa-lib' + 'graphviz') # to generate full docs (as said in output of configure) + # 'freetype2' already pulled + # 'libjpeg-turbo' 'giflib' 'libpng' 'lcms2' already pulled + # 'bash' OpenJDK scripts are explicitly Bash +checkdepends=() +_url_src=http://hg.openjdk.java.net/jdk-updates/jdk9u +source=("jdk9u-${_repo_ver}.tar.gz::$_url_src/archive/$_hg_tag.tar.gz" + "corba-${_repo_ver}.tar.gz::$_url_src/corba/archive/$_hg_tag.tar.gz" + "hotspot-${_repo_ver}.tar.gz::$_url_src/hotspot/archive/$_hg_tag.tar.gz" + "jaxp-${_repo_ver}.tar.gz::$_url_src/jaxp/archive/$_hg_tag.tar.gz" + "jaxws-${_repo_ver}.tar.gz::$_url_src/jaxws/archive/$_hg_tag.tar.gz" + "jdk-${_repo_ver}.tar.gz::$_url_src/jdk/archive/$_hg_tag.tar.gz" + "langtools-${_repo_ver}.tar.gz::$_url_src/langtools/archive/$_hg_tag.tar.gz" + "nashorn-${_repo_ver}.tar.gz::$_url_src/nashorn/archive/$_hg_tag.tar.gz" + freedesktop-java.desktop + freedesktop-jconsole.desktop + freedesktop-policytool.desktop + jdk9u-jdk-9.0.4+12-make43.patch + jdk-jdk-9.0.4+12-gcc10-default-no-fcommon.patch + hotspot-jdk-9.0.4+12-bitmap-segv.patch + hotspot-jdk-9.0.4+12-c1.patch + ) +sha256sums=('508ea8854da2260a5b5bf226533d1efdacc70df5b2061a8dc02ebfcee7cf161a' + '13db0d5039757d67aa10f972a96019fad917af3080ed65f37fdf55a17f2ba890' + '7ba43e5f328a4c83ac7cd7097db6779ab40c8c5689a9139cccd363419d6bad3c' + 'b55350eef3dc9fc191373db4975b53f3bbed387e8634b37694db98c1e313da1a' + 'f649a8dcdb42122212773b181ad8d2d7e8e7d1dd2e6b3517e0e46018d8d52ad4' + '708cc3e5613a7341b0dad477d7fcfa1f70d38e2ac14484c1f13ff9f19a2ca998' + 'b112d33f6e74387e34b0cd6f7da892538b67d70e0075d918f7e68e732cb6b89b' + '0732a1c0379a5e0849c419e325d78e5636cc59a6122713e9f701c2f0f7a7d57c' + '85d32321fb59a89e4f9ab320060597d4ca9d5e23b995c61549a48b41ac908a67' + 'bf197deb003879ed01adc6973a2430a41574f638667a5ecfbb1aad1403897ddc' + '9394de47b5c38826ab837145816667d96b697998bafec5dd132d39d4846ac70e' + '4935390ee360b62dd059e8163ef598441c41471e79c76e212b01cdb32fe0e3b9' + 'dccab9e9a30d838dcb76e799443c914f48677aa7a3c4e3549bb4190ffcbbd67e' + 'becfe6b7dd08e4572f1ce62e1f1d37304b5e52ad6baa0be0e37f323249f2a003' + 'c9b79eb1af2efd57c5e639b37774e12b2026a474d210a20f770e304e57a63c6b' + ) + +case "$CARCH" in + x86_64) _JARCH='x86_64';; + i486|i686|pentium4) _JARCH='x86';; +esac + +_jvmdir=/usr/lib/jvm/java-$_majorver-openjdk +_jdkdir=jdk${_majorver}u-$_hg_tag +_imgdir=$_jdkdir/build/linux-$_JARCH-normal-server-release/images +_imgdir="${_imgdir//--/-${_JARCH}-}" + +_nonheadless=(lib/libawt_xawt.{so,diz} + lib/libjawt.{so,diz} + lib/libjsoundalsa.{so,diz} + lib/libsplashscreen.{so,diz}) +#_nonheadless=( +# "${_nonheadless[@]/\/\///${_JARCH}/}" +#) + +prepare() { + cd $_jdkdir + for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn + do + ln -s ../$subrepo-$_hg_tag $subrepo + done + # see https://bugs.openjdk.java.net/browse/JDK-8237879 + patch -Np1 < $srcdir/jdk9u-jdk-9.0.4+12-make43.patch + + # some gcc 10 issues and backports of known bugs + pushd jdk + patch -Np1 < $srcdir/jdk-jdk-9.0.4+12-gcc10-default-no-fcommon.patch + popd + pushd hotspot + patch -Np1 < $srcdir/hotspot-jdk-9.0.4+12-bitmap-segv.patch + patch -Np1 < $srcdir/hotspot-jdk-9.0.4+12-c1.patch + popd +} + +build() { + cd $_jdkdir + + NUM_PROC_OPT='' + MAKEFLAG_J=$(echo $MAKEFLAGS | sed -En 's/.*-j([0-9]+).*/\1/p') + if [ -n $MAKEFLAG_J ]; then + # http://hg.openjdk.java.net/jdk9/jdk9/file/85e6cb013b98/make/InitSupport.gmk#l105 + echo "Removing '-j$MAKEFLAG_J' from MAKEFLAGS to prevent build fail. Passing it directly to ./configure." + export MAKEFLAGS=${MAKEFLAGS/-j$MAKEFLAG_J/} + NUM_PROC_OPT="--with-num-cores=$MAKEFLAG_J" + fi + + local _CFLAGS="${CFLAGS//-O2/-O3} ${CPPFLAGS}" + local _CXXFLAGS="${CXXFLAGS//-O2/-O3} ${CPPFLAGS}" + local _LDFLAGS=${LDFLAGS} + if [[ $CARCH = i486 || $CARCH = i686 || $CARCH = pentium4 ]]; then + echo "Removing '-fno-plt' from CFLAGS and CXXFLAGS to prevent build fail with this architecture" + _CFLAGS=${CFLAGS/-fno-plt/} + _CXXFLAGS=${CXXFLAGS/-fno-plt/} + fi + + # i486-specific + if [ "${CARCH}" = "i486" ]; then + _JARCH=i386 + _DOC_ARCH=x86 + fi + + # pentium4-specific + if [ "${CARCH}" = "pentium4" ]; then + _JARCH=i386 + _DOC_ARCH=x86 + # force 4-byte stack alignment on SSE aptimized systems, see FS32#75 + _CFLAGS+=" -mincoming-stack-boundary=2" + _CXXFLAGS+=" -mincoming-stack-boundary=2" + fi + + # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning + # in the output of ./configure unless used like such: + # --with-extra-cflags="$CFLAGS" + # --with-extra-cxxflags="$CXXFLAGS" + # --with-extra-ldflags="$LDFLAGS" + # See also paragraph "Configure Control Variables from "jdk$_majorver-$_hg_tag/common/doc/building.md + unset CFLAGS + unset CXXFLAGS + unset LDFLAGS + + bash configure \ + --with-version-build="$_updatever" \ + --with-version-pre="" \ + --with-version-opt="" \ + --with-stdc++lib=dynamic \ + --with-extra-cflags="$_CFLAGS" \ + --with-extra-cxxflags="$_CXXFLAGS" \ + --with-extra-ldflags="$_LDFLAGS" \ + --with-libjpeg=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-lcms=system \ + --with-zlib=system \ + --enable-unlimited-crypto \ + --disable-warnings-as-errors \ + $NUM_PROC_OPT + #--disable-javac-server + + make images docs + + # https://bugs.openjdk.java.net/browse/JDK-8173610 + find "../$_imgdir" -iname '*.so' -exec chmod +x {} \; +} + +# check() { +# cd "$pkgname-$pkgver" +# make -k check +# } + +package_jre9-openjdk-headless() { + pkgdesc="OpenJDK Java $_majorver headless runtime environment" + depends=('java-runtime-common>=3' 'ca-certificates-utils' 'nss') + optdepends=('java-rhino: for some JavaScript support') + provides=("java-runtime-headless=$_majorver" "java-runtime-headless-openjdk=$_majorver") + backup=(etc/$pkgbase/logging.properties + etc/$pkgbase/management/jmxremote.access + etc/$pkgbase/management/jmxremote.password.template + etc/$pkgbase/management/management.properties + etc/$pkgbase/net.properties + etc/$pkgbase/security/java.policy + etc/$pkgbase/security/java.security + etc/$pkgbase/security/policy/README.txt + etc/$pkgbase/security/policy/limited/default_US_export.policy + etc/$pkgbase/security/policy/limited/default_local.policy + etc/$pkgbase/security/policy/limited/exempt_local.policy + etc/$pkgbase/security/policy/unlimited/default_US_export.policy + etc/$pkgbase/security/policy/unlimited/default_local.policy + etc/$pkgbase/sound.properties) + install=install_jre9-openjdk-headless.sh + + cd $_imgdir/jre + + install -d -m 755 "$pkgdir$_jvmdir" + + cp -a bin lib \ + "$pkgdir$_jvmdir" + + for f in ${_nonheadless[@]}; do + rm "$pkgdir$_jvmdir/$f" + done + + cp ../jdk/release "$pkgdir$_jvmdir" + cp ../jdk/lib/modules "$pkgdir$_jvmdir/lib" + + # Conf + install -d -m 755 "$pkgdir/etc" + cp -r conf "$pkgdir/etc/$pkgbase" + ln -s /etc/$pkgbase "$pkgdir/$_jvmdir/conf" + + # Legal + install -d -m 755 "$pkgdir/usr/share/licenses" + cp -r legal "$pkgdir/usr/share/licenses/$pkgbase" + ln -s $pkgbase "$pkgdir/usr/share/licenses/$pkgname" + ln -s /usr/share/licenses/$pkgbase "$pkgdir/$_jvmdir/legal" + + # Man pages + for f in man/man1/* man/ja/man1/*; do + install -D -m 644 $f "$pkgdir/usr/share/${f/\.1/-openjdk9.1}" + done + ln -s /usr/share/man "$pkgdir/$_jvmdir/man" + + # Link JKS keystore from ca-certificates-utils + rm -f "$pkgdir$_jvmdir/lib/security/cacerts" + ln -sf /etc/ssl/certs/java/cacerts "$pkgdir$_jvmdir/lib/security/cacerts" + + find "$pkgdir$_jvmdir" -iname '*.diz' -exec rm {} \; +} + +package_jre9-openjdk() { + pkgdesc="OpenJDK Java $_majorver full runtime environment" + depends=("jre$_majorver-openjdk-headless=$_pkg_full_ver") + optdepends=('alsa-lib: for basic sound support' + 'gtk2: for the Gtk+ 2 look and feel - desktop usage' + 'gtk3: for the Gtk+ 3 look and feel - desktop usage') + provides=("java-runtime=$_majorver" "java-runtime-openjdk=$_majorver") + install=install_jre9-openjdk.sh + + cd $_imgdir/jre + + install -d -m 755 "$pkgdir$_jvmdir" + + for f in ${_nonheadless[@]}; do + install -D -m 644 $f "$pkgdir$_jvmdir/$f" + done + + # Licenses + install -d -m 755 "$pkgdir/usr/share/licenses" + ln -s $pkgbase "$pkgdir/usr/share/licenses/$pkgname" + + find "$pkgdir$_jvmdir" -iname '*.diz' -exec rm {} \; +} + +package_jdk9-openjdk() { + pkgdesc="OpenJDK Java $_majorver development kit" + depends=("jre$_majorver-openjdk=$_pkg_full_ver" 'java-environment-common=3' 'hicolor-icon-theme' 'libelf') + provides=("java-environment=$_majorver" "java-environment-openjdk=$_majorver") + install=install_jdk9-openjdk.sh + + cd $_imgdir/jdk + + install -d -m 755 "$pkgdir$_jvmdir" + + cp -a bin demo include jmods lib \ + "$pkgdir$_jvmdir" + + rm "$pkgdir$_jvmdir/lib/src.zip" + + # Remove files held by JRE + pushd ../jre + for d in bin lib; do + find $d ! -type d -exec rm "$pkgdir$_jvmdir/{}" \; + done + popd + find "$pkgdir$_jvmdir/lib" -type d -empty -delete + + # Conf files all belong to JRE + + # Legal + install -d -m 755 "$pkgdir/usr/share/licenses" + cp -r legal "$pkgdir/usr/share/licenses/$pkgbase" + pushd ../jre/legal + find . ! -type d -exec rm "$pkgdir/usr/share/licenses/$pkgbase/{}" \; + popd + find "$pkgdir/usr/share/licenses" -type d -empty -delete + ln -s $pkgbase "$pkgdir/usr/share/licenses/$pkgname" + + # Man pages + for f in man/man1/* man/ja/man1/*; do + if [ ! -e ../jre/$f ]; then + install -D -m 644 $f "$pkgdir/usr/share/${f/\.1/-openjdk$_majorver.1}" + fi + done + + # Icons + for s in 16 24 32 48; do + install -D -m 644 \ + $srcdir/jdk-$_hg_tag/src/java.desktop/unix/classes/sun/awt/X11/java-icon$s.png \ + "$pkgdir/usr/share/icons/hicolor/$sx$s/apps/$pkgbase.png" + done + + # Desktop files + for f in jconsole policytool java; do + install -D -m 644 \ + "$srcdir/freedesktop-$f.desktop" \ + "$pkgdir/usr/share/applications/$f-$pkgbase.desktop" + done + + find "$pkgdir$_jvmdir" -iname '*.diz' -exec rm {} \; +} + +package_openjdk9-src() { + pkgdesc="OpenJDK Java $_majorver sources" + # Depends on JDK to get license files + depends=("jdk$_majorver-openjdk=$_pkg_full_ver") + + install -D -m 644 -t "$pkgdir$_jvmdir/lib" $_imgdir/jdk/lib/src.zip + + install -d -m 755 "$pkgdir/usr/share/licenses" + ln -s $pkgbase "$pkgdir/usr/share/licenses/$pkgname" +} + +package_openjdk9-doc() { + pkgdesc="OpenJDK Java $_majorver documentation" + # Depends on JDK to get license files + depends=("jdk$_majorver-openjdk=$_pkg_full_ver") + + install -d -m 755 "$pkgdir/usr/share/doc" + cp -r $_imgdir/docs "$pkgdir/usr/share/doc/$pkgbase" + + install -d -m 755 "$pkgdir/usr/share/licenses" + ln -s $pkgbase "$pkgdir/usr/share/licenses/$pkgname" +} diff --git a/build-support/java9-openjdk/freedesktop-java.desktop b/build-support/java9-openjdk/freedesktop-java.desktop new file mode 100644 index 00000000..0479c92b --- /dev/null +++ b/build-support/java9-openjdk/freedesktop-java.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=OpenJDK Java 9 Runtime +Name[fi]=OpenJDK Java 9 - ajonaikainen ympäristö +Comment=OpenJDK Java 9 Runtime +Comment[fi]=OpenJDK Java 9 - ajonaikainen ympäristö +Keywords=java;runtime +Exec=/usr/lib/jvm/java-9-openjdk/bin/java -jar +Terminal=false +Type=Application +Icon=java9-openjdk +MimeType=application/x-java-archive;application/java-archive;application/x-jar; +NoDisplay=true diff --git a/build-support/java9-openjdk/freedesktop-jconsole.desktop b/build-support/java9-openjdk/freedesktop-jconsole.desktop new file mode 100644 index 00000000..0a83b0a9 --- /dev/null +++ b/build-support/java9-openjdk/freedesktop-jconsole.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK Java 9 Console +Name[fi]=OpenJDK Java 9 - konsoli +Comment=OpenJDK Java 9 Monitoring & Management Console +Comment[fi]=OpenJDK Java 9 - valvonta- ja hallintakonsoli +Keywords=java;console;monitoring +Exec=/usr/lib/jvm/java-9-openjdk/bin/jconsole +Terminal=false +Type=Application +Icon=java9-openjdk +Categories=Application;System; diff --git a/build-support/java9-openjdk/freedesktop-policytool.desktop b/build-support/java9-openjdk/freedesktop-policytool.desktop new file mode 100644 index 00000000..e1c400f4 --- /dev/null +++ b/build-support/java9-openjdk/freedesktop-policytool.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Name=OpenJDK Java 9 Policy Tool +Name[fi]=OpenJDK Java 9 - käytäntötyökalu +Name[fr]=OpenJDK Java 9 - Outil de réglage +Comment=OpenJDK Java 9 Policy Tool +Comment[fi]=OpenJDK Java 9 - käytäntötyökalu +Comment[fr]=OpenJDK Java 9 - Outil de réglage +Keywords=java;security;policytool +Exec=/usr/lib/jvm/java-9-openjdk/bin/policytool +Terminal=false +Type=Application +Icon=java9-openjdk +Categories=Settings; diff --git a/build-support/java9-openjdk/hotspot-jdk-9.0.4+12-bitmap-segv.patch b/build-support/java9-openjdk/hotspot-jdk-9.0.4+12-bitmap-segv.patch new file mode 100644 index 00000000..7e325af2 --- /dev/null +++ b/build-support/java9-openjdk/hotspot-jdk-9.0.4+12-bitmap-segv.patch @@ -0,0 +1,27 @@ +diff -rauN hotspot-jdk-9.0.4+12/src/share/vm/utilities/bitMap.cpp hotspot-jdk-9.0.4+12-bitmap-segv-patch/src/share/vm/utilities/bitMap.cpp +--- hotspot-jdk-9.0.4+12/src/share/vm/utilities/bitMap.cpp 2018-01-22 16:19:02.000000000 +0100 ++++ hotspot-jdk-9.0.4+12-bitmap-segv-patch/src/share/vm/utilities/bitMap.cpp 2021-05-16 16:22:06.049850445 +0200 +@@ -78,8 +78,10 @@ + if (new_size_in_words > 0) { + map = allocator.allocate(new_size_in_words); + +- Copy::disjoint_words((HeapWord*)old_map, (HeapWord*) map, +- MIN2(old_size_in_words, new_size_in_words)); ++ if (old_map != NULL) { ++ Copy::disjoint_words((HeapWord*)old_map, (HeapWord*) map, ++ MIN2(old_size_in_words, new_size_in_words)); ++ } + + if (new_size_in_words > old_size_in_words) { + clear_range_of_words(map, old_size_in_words, new_size_in_words); +@@ -543,7 +545,9 @@ + bm_word_t* dest_map = map(); + const bm_word_t* other_map = other.map(); + idx_t copy_words = word_index(size()); +- Copy::disjoint_words((HeapWord*)other_map, (HeapWord*)dest_map, copy_words); ++ if (other_map != NULL) { ++ Copy::disjoint_words((HeapWord*)other_map, (HeapWord*)dest_map, copy_words); ++ } + idx_t rest = bit_in_word(size()); + if (rest > 0) { + dest_map[copy_words] = merge_tail_of_map(other_map[copy_words], diff --git a/build-support/java9-openjdk/hotspot-jdk-9.0.4+12-c1.patch b/build-support/java9-openjdk/hotspot-jdk-9.0.4+12-c1.patch new file mode 100644 index 00000000..d1a6524a --- /dev/null +++ b/build-support/java9-openjdk/hotspot-jdk-9.0.4+12-c1.patch @@ -0,0 +1,57 @@ +diff -rauN hotspot-jdk-9.0.4+12/src/share/vm/c1/c1_Instruction.hpp hotspot-jdk-9.0.4+12-c1-patch/src/share/vm/c1/c1_Instruction.hpp +--- hotspot-jdk-9.0.4+12/src/share/vm/c1/c1_Instruction.hpp 2018-01-22 16:19:02.000000000 +0100 ++++ hotspot-jdk-9.0.4+12-c1-patch/src/share/vm/c1/c1_Instruction.hpp 2021-05-16 18:08:52.629495872 +0200 +@@ -303,7 +303,6 @@ + XHandlers* _exception_handlers; // Flat list of exception handlers covering this instruction + + friend class UseCountComputer; +- friend class BlockBegin; + + void update_exception_state(ValueStack* state); + +@@ -349,7 +348,6 @@ + void* operator new(size_t size) throw() { + Compilation* c = Compilation::current(); + void* res = c->arena()->Amalloc(size); +- ((Instruction*)res)->_id = c->get_next_id(); + return res; + } + +@@ -410,7 +408,8 @@ + + // creation + Instruction(ValueType* type, ValueStack* state_before = NULL, bool type_is_constant = false) +- : _use_count(0) ++ : _id(Compilation::current()->get_next_id()) ++ , _use_count(0) + #ifndef PRODUCT + , _printable_bci(-99) + #endif +@@ -1648,8 +1647,6 @@ + void* operator new(size_t size) throw() { + Compilation* c = Compilation::current(); + void* res = c->arena()->Amalloc(size); +- ((BlockBegin*)res)->_id = c->get_next_id(); +- ((BlockBegin*)res)->_block_id = c->get_next_block_id(); + return res; + } + +@@ -1661,6 +1658,7 @@ + // creation + BlockBegin(int bci) + : StateSplit(illegalType) ++ , _block_id(Compilation::current()->get_next_block_id()) + , _bci(bci) + , _depth_first_number(-1) + , _linear_scan_number(-1) +diff -rauN hotspot-jdk-9.0.4+12/src/share/vm/c1/c1_ValueMap.cpp hotspot-jdk-9.0.4+12-c1-patch/src/share/vm/c1/c1_ValueMap.cpp +--- hotspot-jdk-9.0.4+12/src/share/vm/c1/c1_ValueMap.cpp 2018-01-22 16:19:02.000000000 +0100 ++++ hotspot-jdk-9.0.4+12-c1-patch/src/share/vm/c1/c1_ValueMap.cpp 2021-05-16 18:09:20.186147327 +0200 +@@ -488,6 +488,7 @@ + : _current_map(NULL) + , _value_maps(ir->linear_scan_order()->length(), ir->linear_scan_order()->length(), NULL) + , _compilation(ir->compilation()) ++ , _has_substitutions(false) + { + TRACE_VALUE_NUMBERING(tty->print_cr("****** start of global value numbering")); + diff --git a/build-support/java9-openjdk/install_jdk9-openjdk.sh b/build-support/java9-openjdk/install_jdk9-openjdk.sh new file mode 100644 index 00000000..6067ba16 --- /dev/null +++ b/build-support/java9-openjdk/install_jdk9-openjdk.sh @@ -0,0 +1,50 @@ +THIS_JDK='java-9-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JDK} + ;; + ${THIS_JDK}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + default=$(fix_default) + if [ -z "${default}" ]; then + /usr/bin/archlinux-java set ${THIS_JDK} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + if [ "x$(fix_default)" = "x${THIS_JDK}" ]; then + # Check Jre9 is still available + if [ -x /usr/lib/jvm/${THIS_JDK}/bin/java ]; then + /usr/bin/archlinux-java unset + fi + fi +} diff --git a/build-support/java9-openjdk/install_jre9-openjdk-headless.sh b/build-support/java9-openjdk/install_jre9-openjdk-headless.sh new file mode 100644 index 00000000..50b676e3 --- /dev/null +++ b/build-support/java9-openjdk/install_jre9-openjdk-headless.sh @@ -0,0 +1,48 @@ +THIS_JRE='java-9-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +post_upgrade() { + if [ -z $(fix_default) ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi + + if [ ! -f /etc/ssl/certs/java/cacerts ]; then + /usr/bin/update-ca-trust + fi +} + +pre_remove() { + default=$(fix_default) + if [ "x${default}" = "x${THIS_JRE}" ]; then + /usr/bin/archlinux-java unset + echo "No Java environment is set as default anymore" + fi +} diff --git a/build-support/java9-openjdk/install_jre9-openjdk.sh b/build-support/java9-openjdk/install_jre9-openjdk.sh new file mode 100644 index 00000000..edae3a84 --- /dev/null +++ b/build-support/java9-openjdk/install_jre9-openjdk.sh @@ -0,0 +1,35 @@ +THIS_JRE='java-9-openjdk' + +fix_default() { + if [ ! -x /usr/bin/java ]; then + /usr/bin/archlinux-java unset + echo "" + else + /usr/bin/archlinux-java get + fi +} + +post_install() { + default=$(fix_default) + case ${default} in + "") + /usr/bin/archlinux-java set ${THIS_JRE} + ;; + ${THIS_JRE}) + # Nothing + ;; + *) + echo "Default Java environment is already set to '${default}'" + echo "See 'archlinux-java help' to change it" + ;; + esac + + echo "when you use a non-reparenting window manager," + echo "set _JAVA_AWT_WM_NONREPARENTING=1 in /etc/profile.d/jre.sh" +} + +post_upgrade() { + if [ -z $(fix_default) ]; then + /usr/bin/archlinux-java set ${THIS_JRE} + fi +} diff --git a/build-support/java9-openjdk/jdk-jdk-9.0.4+12-gcc10-default-no-fcommon.patch b/build-support/java9-openjdk/jdk-jdk-9.0.4+12-gcc10-default-no-fcommon.patch new file mode 100644 index 00000000..43102aaa --- /dev/null +++ b/build-support/java9-openjdk/jdk-jdk-9.0.4+12-gcc10-default-no-fcommon.patch @@ -0,0 +1,87 @@ +diff -rauN jdk-jdk-9.0.4+12/src/java.base/unix/native/libjava/childproc.c jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c +--- jdk-jdk-9.0.4+12/src/java.base/unix/native/libjava/childproc.c 2018-01-13 03:07:38.000000000 +0100 ++++ jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.c 2021-05-16 14:34:22.286800941 +0200 +@@ -33,6 +33,7 @@ + + #include "childproc.h" + ++const char * const *parentPathv; + + ssize_t + restartableWrite(int fd, const void *buf, size_t count) +diff -rauN jdk-jdk-9.0.4+12/src/java.base/unix/native/libjava/childproc.h jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h +--- jdk-jdk-9.0.4+12/src/java.base/unix/native/libjava/childproc.h 2018-01-13 03:07:38.000000000 +0100 ++++ jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/java.base/unix/native/libjava/childproc.h 2021-05-16 14:34:53.816831584 +0200 +@@ -118,7 +118,7 @@ + * The cached and split version of the JDK's effective PATH. + * (We don't support putenv("PATH=...") in native code) + */ +-const char * const *parentPathv; ++extern const char * const *parentPathv; + + ssize_t restartableWrite(int fd, const void *buf, size_t count); + int restartableDup2(int fd_from, int fd_to); +diff -rauN jdk-jdk-9.0.4+12/src/java.security.jgss/unix/native/libj2gss/NativeFunc.c jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/java.security.jgss/unix/native/libj2gss/NativeFunc.c +--- jdk-jdk-9.0.4+12/src/java.security.jgss/unix/native/libj2gss/NativeFunc.c 2018-01-13 03:07:38.000000000 +0100 ++++ jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/java.security.jgss/unix/native/libj2gss/NativeFunc.c 2021-05-16 14:49:58.261235281 +0200 +@@ -28,6 +28,9 @@ + #include <dlfcn.h> + #include "NativeFunc.h" + ++/* global GSS function table */ ++GSS_FUNCTION_TABLE_PTR ftab; ++ + /* standard GSS method names (ordering is from mapfile) */ + static const char RELEASE_NAME[] = "gss_release_name"; + static const char IMPORT_NAME[] = "gss_import_name"; +diff -rauN jdk-jdk-9.0.4+12/src/java.security.jgss/unix/native/libj2gss/NativeFunc.h jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/java.security.jgss/unix/native/libj2gss/NativeFunc.h +--- jdk-jdk-9.0.4+12/src/java.security.jgss/unix/native/libj2gss/NativeFunc.h 2018-01-13 03:07:38.000000000 +0100 ++++ jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/java.security.jgss/unix/native/libj2gss/NativeFunc.h 2021-05-16 14:50:08.671248326 +0200 +@@ -265,6 +265,6 @@ + typedef GSS_FUNCTION_TABLE *GSS_FUNCTION_TABLE_PTR; + + /* global GSS function table */ +-GSS_FUNCTION_TABLE_PTR ftab; ++extern GSS_FUNCTION_TABLE_PTR ftab; + + #endif +diff -rauN jdk-jdk-9.0.4+12/src/jdk.sctp/unix/native/libsctp/Sctp.h jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h +--- jdk-jdk-9.0.4+12/src/jdk.sctp/unix/native/libsctp/Sctp.h 2018-01-13 03:07:38.000000000 +0100 ++++ jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/Sctp.h 2021-05-16 15:40:57.905491930 +0200 +@@ -322,12 +322,12 @@ + + #endif /* __linux__ */ + +-sctp_getladdrs_func* nio_sctp_getladdrs; +-sctp_freeladdrs_func* nio_sctp_freeladdrs; +-sctp_getpaddrs_func* nio_sctp_getpaddrs; +-sctp_freepaddrs_func* nio_sctp_freepaddrs; +-sctp_bindx_func* nio_sctp_bindx; +-sctp_peeloff_func* nio_sctp_peeloff; ++extern sctp_getladdrs_func* nio_sctp_getladdrs; ++extern sctp_freeladdrs_func* nio_sctp_freeladdrs; ++extern sctp_getpaddrs_func* nio_sctp_getpaddrs; ++extern sctp_freepaddrs_func* nio_sctp_freepaddrs; ++extern sctp_bindx_func* nio_sctp_bindx; ++extern sctp_peeloff_func* nio_sctp_peeloff; + + jboolean loadSocketExtensionFuncs(JNIEnv* env); + +diff -rauN jdk-jdk-9.0.4+12/src/jdk.sctp/unix/native/libsctp/SctpNet.c jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c +--- jdk-jdk-9.0.4+12/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2018-01-13 03:07:38.000000000 +0100 ++++ jdk-jdk-9.0.4+12-gcc10-default-no-fcommon-patch/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2021-05-16 15:42:27.565614895 +0200 +@@ -28,6 +28,14 @@ + #include <dlfcn.h> + + #include "Sctp.h" ++ ++sctp_getladdrs_func* nio_sctp_getladdrs; ++sctp_freeladdrs_func* nio_sctp_freeladdrs; ++sctp_getpaddrs_func* nio_sctp_getpaddrs; ++sctp_freepaddrs_func* nio_sctp_freepaddrs; ++sctp_bindx_func* nio_sctp_bindx; ++sctp_peeloff_func* nio_sctp_peeloff; ++ + #include "jni.h" + #include "jni_util.h" + #include "nio_util.h" diff --git a/build-support/java9-openjdk/jdk9u-jdk-9.0.4+12-make43.patch b/build-support/java9-openjdk/jdk9u-jdk-9.0.4+12-make43.patch new file mode 100644 index 00000000..b8440634 --- /dev/null +++ b/build-support/java9-openjdk/jdk9u-jdk-9.0.4+12-make43.patch @@ -0,0 +1,24 @@ +diff -rauN jdk9u-jdk-9.0.4+12/make/common/MakeBase.gmk jdk9u-jdk-9.0.4+12-make43-patch/make/common/MakeBase.gmk +--- jdk9u-jdk-9.0.4+12/make/common/MakeBase.gmk 2017-12-20 00:25:20.000000000 +0100 ++++ jdk9u-jdk-9.0.4+12-make43-patch/make/common/MakeBase.gmk 2021-05-16 08:48:07.503289305 +0200 +@@ -897,15 +897,16 @@ + # Param 2 - (optional) name of file to store value in + DependOnVariableHelper = \ + $(strip \ +- $(eval -include $(call DependOnVariableFileName, $1, $2)) \ ++ $(eval $1_filename := $(call DependOnVariableFileName, $1, $2)) \ ++ $(if $(wildcard $($1_filename)), $(eval include $($1_filename))) \ + $(if $(call equals, $(strip $($1)), $(strip $($1_old))),,\ +- $(call MakeDir, $(dir $(call DependOnVariableFileName, $1, $2))) \ ++ $(call MakeDir, $(dir $($1_filename))) \ + $(if $(findstring $(LOG_LEVEL), trace), \ + $(info NewVariable $1: >$(strip $($1))<) \ + $(info OldVariable $1: >$(strip $($1_old))<)) \ + $(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \ +- $(call DependOnVariableFileName, $1, $2))) \ +- $(call DependOnVariableFileName, $1, $2) \ ++ $($1_filename))) \ ++ $($1_filename) \ + ) + + # Main macro diff --git a/build-support/libldap24 b/build-support/libldap24 new file mode 160000 +Subproject 005c005b4d740535271cee88b3650c5b777176f diff --git a/build-support/libsigc++-docs-dummy/PKGBUILD b/build-support/libsigc++-docs-dummy/PKGBUILD index 6741e83f..1b6453d9 100644 --- a/build-support/libsigc++-docs-dummy/PKGBUILD +++ b/build-support/libsigc++-docs-dummy/PKGBUILD @@ -1,5 +1,5 @@ pkgname='libsigc++-docs-dummy' -pkgver='2.10.6' +pkgver='2.10.8' pkgrel='1' arch=('i486' 'i686' 'pentium4' 'x86_64') pkgdesc="Developer documentation for libsigc++ - dummy package" diff --git a/build-support/ncurses5-compat-libs/PKGBUILD b/build-support/ncurses5-compat-libs/PKGBUILD new file mode 100644 index 00000000..a8e40fd1 --- /dev/null +++ b/build-support/ncurses5-compat-libs/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> +# Maintainer: Mateusz Gozdek <mgozdekof@gmail.com> +# Contributor: Allan McRae <allan@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org> + +pkgname=ncurses5-compat-libs +_pkgname=ncurses +pkgver=6.2 +pkgrel=1 +pkgdesc='System V Release 4.0 curses emulation library, ABI 5' +arch=(i486 i686 pentium4 x86_64) +url='http://invisible-island.net/ncurses/ncurses.html' +license=(MIT) +depends=(glibc gcc-libs sh) +provides=(libtinfo5) +conflicts=(libtinfo5) +source=(https://ftp.gnu.org/pub/gnu/ncurses/ncurses-$pkgver.tar.gz{,.sig}) +sha256sums=('30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d' + 'SKIP') +validpgpkeys=('C52048C0C0748FEE227D47A2702353E0F7E48EDB') # Thomas Dickey + +build() { + cd ${_pkgname}-${pkgver} + + ./configure \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --with-shared \ + --with-normal \ + --without-debug \ + --without-ada \ + --enable-widec \ + --disable-pc-files \ + --with-cxx-binding \ + --with-cxx-shared \ + --with-versioned-syms \ + --with-abi-version=5 + make +} + +package() { + cd ${_pkgname}-${pkgver} + make DESTDIR="$pkgdir" install.libs + install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + rm -rf "$pkgdir/usr/include/" "$pkgdir/usr/lib/pkgconfig" \ + "$pkgdir"/usr/lib/*.so "$pkgdir"/usr/lib/*.a + + for lib in ncurses ncurses++ form panel menu; do + ln -s /usr/lib/lib${lib}w.so.5 "$pkgdir/usr/lib/lib${lib}.so.5" + done + ln -s /usr/lib/libncurses.so.5 "$pkgdir/usr/lib/libtinfo.so.5" + ln -s /usr/lib/libncurses.so.5 "$pkgdir/usr/lib/libtic.so.5" +} diff --git a/build-support/pacman-static/.SRCINFO b/build-support/pacman-static/.SRCINFO new file mode 100644 index 00000000..d610abb3 --- /dev/null +++ b/build-support/pacman-static/.SRCINFO @@ -0,0 +1,109 @@ +pkgbase = pacman-static + pkgdesc = Statically-compiled pacman (to fix or install systems without libc) + pkgver = 6.0.0 + pkgrel = 1 + url = https://www.archlinux.org/pacman/ + arch = i686 + arch = x86_64 + arch = arm + arch = armv6h + arch = armv7h + arch = aarch64 + license = GPL + makedepends = meson + makedepends = musl + makedepends = kernel-headers-musl + depends = pacman + options = !emptydirs + source = https://sources.archlinux.org/other/pacman/pacman-6.0.0.tar.xz + source = https://sources.archlinux.org/other/pacman/pacman-6.0.0.tar.xz.sig + source = https://github.com/nghttp2/nghttp2/releases/download/v1.43.0/nghttp2-1.43.0.tar.xz + source = https://c-ares.haxx.se/download/c-ares-1.17.1.tar.gz + source = https://c-ares.haxx.se/download/c-ares-1.17.1.tar.gz.asc + source = https://curl.haxx.se/download/curl-7.77.0.tar.gz + source = https://curl.haxx.se/download/curl-7.77.0.tar.gz.asc + source = https://www.openssl.org/source/openssl-1.1.1k.tar.gz + source = https://www.openssl.org/source/openssl-1.1.1k.tar.gz.asc + source = ca-dir.patch + source = https://zlib.net/zlib-1.2.11.tar.gz + source = https://zlib.net/zlib-1.2.11.tar.gz.asc + source = https://tukaani.org/xz/xz-5.2.5.tar.gz + source = https://tukaani.org/xz/xz-5.2.5.tar.gz.sig + source = https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz + source = https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz.sig + source = https://github.com/facebook/zstd/releases/download/v1.5.0/zstd-1.5.0.tar.zst + source = https://github.com/facebook/zstd/releases/download/v1.5.0/zstd-1.5.0.tar.zst.sig + source = https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.42.tar.bz2 + source = https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.42.tar.bz2.sig + source = https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.5.tar.bz2 + source = https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.5.tar.bz2.sig + source = https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.15.1.tar.bz2 + source = https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.15.1.tar.bz2.sig + source = https://github.com/libarchive/libarchive/releases/download/3.5.1/libarchive-3.5.1.tar.xz + source = https://github.com/libarchive/libarchive/releases/download/3.5.1/libarchive-3.5.1.tar.xz.asc + validpgpkeys = 6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD + validpgpkeys = B8151B117037781095514CA7BBDFFC92306B1121 + validpgpkeys = 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 + validpgpkeys = 8657ABB260F056B1E5190839D9C4D26D0E604491 + validpgpkeys = 7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C + validpgpkeys = 5ED46A6721D365587791E2AA783FCD8E58BCAFBA + validpgpkeys = 3690C240CE51B4670D30AD1C38EE757D69184620 + validpgpkeys = EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A + validpgpkeys = 4EF4AC63455FC9F4545D9B7DEF8FE99528B52FFD + validpgpkeys = 6DAA6E64A76D2840571B4902528897B826403ADA + validpgpkeys = 031EC2536E580D8EA286A9F22071B08A33BD3F06 + validpgpkeys = A5A45B12AD92D964B89EEE2DEC560C81CEC2276E + sha512sums = 78fc5b70a2fc356746f8a4580ce7fd01b25b3463db1b9b008f02a97e22c236fdb1d09985769caf6ac675d9b1091ba0f71afa38ec5759cf7911f1b1a33586f563 + sha512sums = SKIP + sha512sums = eac69ba356870a1cba420a06771082897be8dd40a68f4e04223f41f3d22626e4f5b3766d3dbcc496dd212be01f64c3ac280a2ebddd31dd88f7350c20f56e5d39 + sha512sums = b11887bcc9274d368088e1a8b6aca62414f20675cf0bc58e948f54fa04c327c39dd23cefe7509eec6397db14b550a3f6b77f5c18b3d735b3eef48ce2da1dcd00 + sha512sums = SKIP + sha512sums = cacd85eb9b2ad90f59595b497035f4660b6c5cff2d653da939c9ceac6dd8dd4bc7bdcb2dfd251862af0c29b9299312bf7271ed0249734fca979c9588799635d6 + sha512sums = SKIP + sha512sums = 73cd042d4056585e5a9dd7ab68e7c7310a3a4c783eafa07ab0b560e7462b924e4376436a6d38a155c687f6942a881cfc0c1b9394afcde1d8c46bf396e7d51121 + sha512sums = SKIP + sha512sums = 3857c298663728a465b5f95a3ef44547efbfb420d755e9dde7f20aa3905171b400e1c126d8db5c2b916c733bbd0724d8753cad16c9baf7b12dcd225a3ee04a97 + sha512sums = 73fd3fff4adeccd4894084c15ddac89890cd10ef105dd5e1835e1e9bbb6a49ff229713bd197d203edfa17c2727700fce65a2a235f07568212d820dca88b528ae + sha512sums = SKIP + sha512sums = 7443674247deda2935220fbc4dfc7665e5bb5a260be8ad858c8bd7d7b9f0f868f04ea45e62eb17c0a5e6a2de7c7500ad2d201e2d668c48ca29bd9eea5a73a3ce + sha512sums = SKIP + sha512sums = 083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3 + sha512sums = SKIP + sha512sums = 071b4596afbb290fdfab0021b1ddda3e24f508680c643259ced683ec4685fca186f6c9c111097594d2d2911976df1a2f92a321ae71a0d5b9734c9f8e2c1bff76 + sha512sums = SKIP + sha512sums = f6d95712a874edefc39a7746062c8037a62801a550560c5b2eab08b5b86987c1de5be60eba5fcb56d35a37db109aa32d07b7eff2bb99800c1c47d2227421a8f4 + sha512sums = SKIP + sha512sums = 70117f77aa43bbbe0ed28da5ef23834c026780a74076a92ec775e30f851badb423e9a2cb9e8d142c94e4f6f8a794988c1b788fd4bd2271e562071adf0ab16403 + sha512sums = SKIP + sha512sums = 1d75a848cce6389f7cb8896b57a28dfe1dc5a447bfb4f128b0994a43e04134343400a3be063e971f03dfd595474cfd558519741d5d56afb3e84853ad4f2a45c2 + sha512sums = SKIP + sha512sums = 04ad3e98e840fee19eb4c2652f29eccef1cffc071fd5c6a6feb358fea6048699281c7baacbb9ca8f823b1bfaaef6d4c87d9cf6a8b0c28aab53b75b2d259b2045 + sha512sums = SKIP + b2sums = 79443cbee5df7b367267c70da04d570455a42d9cfa2e623333fd30e640d3cd9f01da382134efcd1c84202331499fd134b23dde8788a89f6949f0eb40e0e7a38b + b2sums = SKIP + b2sums = 0e6c674486c484558a55822501a13ac93c4e890cf62749bc8519690f468912701329b7b9e83b0b68c3f35b72442b1ed47a90050cccd3fc05d79622e1e26634dc + b2sums = 31dac21ecae231e2a201dc1ba954c1a0663a06f93eb8e7e033ca3c6d385f53e07af0b04854739f1ee8a7f0693f67f620143e152ef092b49342c62279a0480905 + b2sums = SKIP + b2sums = b75e0de2f4134444d62c4495e11045181bb10624c0b48efcfdd45d18749936293b9f1b1f3b59b7c80e997d144a6be266b3cd945a147281a193aa040b6995e6be + b2sums = SKIP + b2sums = e9bd90f17bc819c4960d07bbee04346e8a7adb87a764a09d033ef76f1d638c67b180c4f2beb84ec25fbff54ccc9c14c13b9b16a27cac231a5dd22b02635d5cec + b2sums = SKIP + b2sums = e2ff99e8236487f43171c771d0ee89137b73f3d0b2756bcb0d6525c810ffa9f5a3763c3744327fb47cef21eabfc50fff96632f4bbe2cd244206a99daffa0c25a + b2sums = 6bfc4bca5dcadba8a0d4121a2b3ed0bfe440c261003521862c8e6381f1a6f0a72d3fc037351d30afd7ef321e8e8d2ec817c046ac749f2ca0c97fbdc2f7e840b7 + b2sums = SKIP + b2sums = aded57324e129572c41646b3cc3b0b59a459452d9338d9245663b63dac2a463fb1f1b2b1d2d4ad3c09cb71fb8439df52cd94f24db99e782fc899b94a288a3043 + b2sums = SKIP + b2sums = 22ab3acd84f4db8c3d6f59340c252faedfd4447cea00dafbd652e65b6cf8a20adf6835c22e58563004cfafdb15348c924996230b4b23cae42da5e25eeac4bdad + b2sums = SKIP + b2sums = cfea18b2347bf893d9bd461e57113d0a141040a1f7a42db6221ed9662f84023f45b058df3382cc06d82596f8eb98e0806f3abe1e79155fafd46da2a8b746bfbe + b2sums = SKIP + b2sums = eb3381ec7106cfe5dca333391f473e97b03df83f247d3067e9f933ed7206f826e59d2b74b8c28d41e785ffe1c2980b680470064eb2fa2ff1ee3d8fa8be5b81a8 + b2sums = SKIP + b2sums = 24952e97c757b97c387ab4c2c4bf7b040f2874e9326c129805c7f5326fa14d80e083b0842e336a635531a2c8d4a66d428c816bae6b175f1c4518add1ffa3554d + b2sums = SKIP + b2sums = d3a6ccaa35360ed3fc79364dfcc3f2fdcb70e5e41ac72ef011373a39d5def9be9ce1be45843ab65a87630d3fc570d29db5f40b9a273aa8e281464c9d1d3477de + b2sums = SKIP + b2sums = 0be26a858bffc48bc3dea64e7ea16a703fd7dae1c37dd93e1acde291b6799e323461b3b0bb31c12f63e3429aa4be72d88636606d786978f8d56b94dd2dc144c7 + b2sums = SKIP + +pkgname = pacman-static diff --git a/build-support/pacman-static/PKGBUILD b/build-support/pacman-static/PKGBUILD new file mode 100644 index 00000000..6ee24a60 --- /dev/null +++ b/build-support/pacman-static/PKGBUILD @@ -0,0 +1,317 @@ +# Maintainer: Eli Schwartz <eschwartz@archlinux.org> + +# All my PKGBUILDs are managed at https://github.com/eli-schwartz/pkgbuilds + +pkgname=pacman-static +pkgver=6.0.1 +_cares_ver=1.17.2 +_nghttp2_ver=1.45.1 +_curlver=7.78.0 +_sslver=1.1.1l +_zlibver=1.2.11 +_xzver=5.2.5 +_bzipver=1.0.8 +_zstdver=1.5.0 +_libarchive_ver=3.5.2 +_gpgerrorver=1.42 +_libassuanver=2.5.5 +_gpgmever=1.16.0 +pkgrel=1 +pkgdesc="Statically-compiled pacman (to fix or install systems without libc)" +arch=('i486' 'i686' 'pentium4' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64') +url="https://www.archlinux.org/pacman/" +license=('GPL') +depends=('pacman') +makedepends=('meson' 'musl' 'kernel-headers-musl') +options=('!emptydirs') + +# pacman +source=("https://sources.archlinux.org/other/pacman/pacman-${pkgver}.tar.xz"{,.sig}) +validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae <allan@archlinux.org> + 'B8151B117037781095514CA7BBDFFC92306B1121') # Andrew Gregory (pacman) <andrew@archlinux.org> +# nghttp2 +source+=("https://github.com/nghttp2/nghttp2/releases/download/v$_nghttp2_ver/nghttp2-$_nghttp2_ver.tar.xz") +# c-ares +source+=("https://c-ares.haxx.se/download/c-ares-${_cares_ver}.tar.gz"{,.asc}) +validpgpkeys+=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg <daniel@haxx.se> +# curl +source+=("https://curl.haxx.se/download/curl-${_curlver}.tar.gz"{,.asc}) +# openssl +source+=("https://www.openssl.org/source/openssl-${_sslver}.tar.gz"{,.asc} + "ca-dir.patch") +validpgpkeys+=('8657ABB260F056B1E5190839D9C4D26D0E604491' # Matt Caswell <matt@openssl.org> + '7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C') # Richard Levitte <levitte@openssl.org> +# zlib +source+=("https://zlib.net/zlib-${_zlibver}.tar.gz"{,.asc}) +validpgpkeys+=('5ED46A6721D365587791E2AA783FCD8E58BCAFBA') # Mark Adler <madler@alumni.caltech.edu> +# xz +source+=("https://tukaani.org/xz/xz-${_xzver}.tar.gz"{,.sig}) +validpgpkeys+=('3690C240CE51B4670D30AD1C38EE757D69184620') # Lasse Collin <lasse.collin@tukaani.org> +# bzip2 +source+=("https://sourceware.org/pub/bzip2/bzip2-${_bzipver}.tar.gz"{,.sig}) +validpgpkeys+=('EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A') # Mark Wielaard <mark@klomp.org> +# zstd +source+=("https://github.com/facebook/zstd/releases/download/v${_zstdver}/zstd-${_zstdver}.tar.zst"{,.sig}) +validpgpkeys+=('4EF4AC63455FC9F4545D9B7DEF8FE99528B52FFD') # Zstandard Release Signing Key <signing@zstd.net> +# libgpg-error +source+=("https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${_gpgerrorver}.tar.bz2"{,.sig}) +validpgpkeys+=('6DAA6E64A76D2840571B4902528897B826403ADA' # "Werner Koch (dist signing 2020)" + '031EC2536E580D8EA286A9F22071B08A33BD3F06') # NIIBE Yutaka (GnuPG Release Key) <gniibe@fsij.org> +# libassuan +source+=("https://gnupg.org/ftp/gcrypt/libassuan/libassuan-${_libassuanver}.tar.bz2"{,.sig}) +# gpgme +source+=("https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-${_gpgmever}.tar.bz2"{,.sig}) +# libarchive +source+=("https://github.com/libarchive/libarchive/releases/download/v${_libarchive_ver}/libarchive-${_libarchive_ver}.tar.xz"{,.asc}) +validpgpkeys+=('A5A45B12AD92D964B89EEE2DEC560C81CEC2276E') # Martin Matuska <mm@FreeBSD.org> + +sha512sums=('d17b9aea9f8d51a5a02fc9faa8e36227c0edea73957cc8a8174a23a81ca42737ecfce630aa86008ab26daec584004b772cd2eb3527aeef9e098b445edaa21f6f' + 'SKIP' + '320a8c9f29b58c55df98be4312d415bc406edbdfb0765aa37570cdb472a84f40c4f95a51c44c5488363c16ad6815c75b5503b32e43d94724c54117ff583c7150' + 'f625e0ef8508af6475d3e83b51ab29be8a4878e2a87e7f518bea046b76a74bfde7043ca6ec2a9e714c898ab9e5d4a5a678c3347a9f9eb68980438f7ca8ae3fc8' + 'SKIP' + '3d74343e06dd3d699f4c883758775554956f7f27de470b71f4af0d7f56ff5e4d7c534ab958c8926fae69cd0ded90c173ac3d5a6ad5518d88c2f39f31f8bba2f3' + 'SKIP' + 'd9611f393e37577cca05004531388d3e0ebbf714894cab9f95f4903909cd4f45c214faab664c0cbc3ad3cca309d500b9e6d0ecbf9a0a0588d1677dc6b047f9e0' + 'SKIP' + '3857c298663728a465b5f95a3ef44547efbfb420d755e9dde7f20aa3905171b400e1c126d8db5c2b916c733bbd0724d8753cad16c9baf7b12dcd225a3ee04a97' + '73fd3fff4adeccd4894084c15ddac89890cd10ef105dd5e1835e1e9bbb6a49ff229713bd197d203edfa17c2727700fce65a2a235f07568212d820dca88b528ae' + 'SKIP' + '7443674247deda2935220fbc4dfc7665e5bb5a260be8ad858c8bd7d7b9f0f868f04ea45e62eb17c0a5e6a2de7c7500ad2d201e2d668c48ca29bd9eea5a73a3ce' + 'SKIP' + '083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3' + 'SKIP' + '071b4596afbb290fdfab0021b1ddda3e24f508680c643259ced683ec4685fca186f6c9c111097594d2d2911976df1a2f92a321ae71a0d5b9734c9f8e2c1bff76' + 'SKIP' + 'f6d95712a874edefc39a7746062c8037a62801a550560c5b2eab08b5b86987c1de5be60eba5fcb56d35a37db109aa32d07b7eff2bb99800c1c47d2227421a8f4' + 'SKIP' + '70117f77aa43bbbe0ed28da5ef23834c026780a74076a92ec775e30f851badb423e9a2cb9e8d142c94e4f6f8a794988c1b788fd4bd2271e562071adf0ab16403' + 'SKIP' + '69487be69612e9bf0221ff56ae687248bd13635db1b7087130e93c1670e38f3c810bbca17723555c04fe207976c35871bbc3da005179ce099504321cf33636e4' + 'SKIP' + 'ac7c47f9ddfe5d4d5db6ca9c1bcba788af95662bf0e54ca5426fe66cd8262896e12acc426eecdf0e0d6681c180bcd37f4c4469619273607e95399c7f49b61c7c' + 'SKIP') +b2sums=('907c39bb368beea037dcb4b32c56b04a86580123d23ddfe5a1d30ed53143a9b6204044d74040e5bcfe80061673d59597ad2e033525561d6b195a95a104203fa9' + 'SKIP' + '17bc5e0a6270494a0296da7f1394d0b89666ca42ad04bcce097740da2b30cdc575f17e681a8320dc2a2161eeebb753f22f228a340fc7cd690fa883d29149bcd8' + 'c6f5ad65ca75f8467b624daf3caaee2f35d6e4714ce46ebe1bbf79447feecf8615915b00fa5e7bd1e97c6232864e06c53a792fbadf36a5399883529769273e24' + 'SKIP' + '053ec771b15082b153868d70182d61a59ac94553867f153304542ae7e083825c729882044a627016723cd3bbd831f6f3dfe12e12b079da42bc7587e934f04d55' + 'SKIP' + '9e8739015db63a013c05587e3d164d67c3f65f1f6c5fc75e4592bcd038c036cde88a7bc95fbc1f1b4ed876f6124ca4dabcd4f5dbb45d1b84299f2efe1a59431a' + 'SKIP' + 'e2ff99e8236487f43171c771d0ee89137b73f3d0b2756bcb0d6525c810ffa9f5a3763c3744327fb47cef21eabfc50fff96632f4bbe2cd244206a99daffa0c25a' + '6bfc4bca5dcadba8a0d4121a2b3ed0bfe440c261003521862c8e6381f1a6f0a72d3fc037351d30afd7ef321e8e8d2ec817c046ac749f2ca0c97fbdc2f7e840b7' + 'SKIP' + 'aded57324e129572c41646b3cc3b0b59a459452d9338d9245663b63dac2a463fb1f1b2b1d2d4ad3c09cb71fb8439df52cd94f24db99e782fc899b94a288a3043' + 'SKIP' + '22ab3acd84f4db8c3d6f59340c252faedfd4447cea00dafbd652e65b6cf8a20adf6835c22e58563004cfafdb15348c924996230b4b23cae42da5e25eeac4bdad' + 'SKIP' + 'cfea18b2347bf893d9bd461e57113d0a141040a1f7a42db6221ed9662f84023f45b058df3382cc06d82596f8eb98e0806f3abe1e79155fafd46da2a8b746bfbe' + 'SKIP' + 'eb3381ec7106cfe5dca333391f473e97b03df83f247d3067e9f933ed7206f826e59d2b74b8c28d41e785ffe1c2980b680470064eb2fa2ff1ee3d8fa8be5b81a8' + 'SKIP' + '24952e97c757b97c387ab4c2c4bf7b040f2874e9326c129805c7f5326fa14d80e083b0842e336a635531a2c8d4a66d428c816bae6b175f1c4518add1ffa3554d' + 'SKIP' + 'da55e695b148e949a1c0770d0298d7a8c9f87d7a1f9e45d380f8c13c472bd44cb4266adb9a113e2b1dcc2596291744f48fdf998ff2de876059d89d184dc87f3a' + 'SKIP' + '161ac11115a80c21233e4dbe52f92201fa3372e5750cff38b3f49d60f2440b560c4c9a55dfca8f6313750eb2b65a6b0a8427619c382085bcc24cdfe45f6d6233' + 'SKIP') + +export LDFLAGS="$LDFLAGS -static" +export CC=musl-gcc +export CXX=musl-gcc + +# https://www.openwall.com/lists/musl/2014/11/05/3 +# fstack-protector and musl do not get along but only on i686 +if [[ $CARCH = i686 || $CARCH = pentium4 || $CARCH = i486 ]]; then + # silly build systems have configure checks or buildtime programs that don't CFLAGS but do do CC + export CC="musl-gcc -fno-stack-protector" + export CXX="musl-gcc -fno-stack-protector" + export CFLAGS="${CFLAGS/-fstack-protector-strong/}" + export CXXFLAGS="${CXXFLAGS/-fstack-protector-strong/}" +fi + +# keep using xz-compressed packages, because one use of the package is to +# recover on systems with broken zstd support in libarchive +[[ $PKGEXT = .pkg.tar.zst ]] && PKGEXT=.pkg.tar.xz + +build() { + export PKG_CONFIG_PATH="${srcdir}"/temp/usr/lib/pkgconfig + export PATH="${srcdir}/temp/usr/bin:${PATH}" + + # openssl + cd "${srcdir}"/openssl-${_sslver} + case ${CARCH} in + x86_64) + openssltarget='linux-x86_64' + optflags='enable-ec_nistp_64_gcc_128' + ;; + pentium4) + openssltarget='linux-elf' + optflags='' + ;; + i686) + openssltarget='linux-elf' + optflags='no-sse2' + ;; + i486) + openssltarget='linux-elf' + optflags='386' + ;; + arm|armv6h|armv7h) + openssltarget='linux-armv4' + optflags='' + ;; + aarch64) + openssltarget='linux-aarch64' + optflags='no-afalgeng' + ;; + esac + # mark stack as non-executable: http://bugs.archlinux.org/task/12434 + ./Configure --prefix="${srcdir}"/temp/usr \ + --openssldir=/etc/ssl \ + --libdir=lib \ + -static \ + no-ssl3-method \ + ${optflags} \ + "${openssltarget}" \ + "-Wa,--noexecstack ${CPPFLAGS} ${CFLAGS} ${LDFLAGS}" + make build_libs + make install_dev + + # xz + cd "${srcdir}"/xz-${_xzver} + ./configure --prefix="${srcdir}"/temp/usr \ + --disable-shared + cd src/liblzma + make + make install + + # bzip2 + cd "${srcdir}"/bzip2-${_bzipver} + sed -i "s|-O2|${CFLAGS}|g;s|CC=gcc|CC=${CC}|g" Makefile + make libbz2.a + install -Dvm644 bzlib.h "${srcdir}"/temp/usr/include/ + install -Dvm644 libbz2.a "${srcdir}"/temp/usr/lib/ + + cd "${srcdir}"/zstd-${_zstdver}/lib + make libzstd.a + make PREFIX="${srcdir}"/temp/usr install-pc install-static install-includes + + # zlib + cd "${srcdir}/"zlib-${_zlibver} + ./configure --prefix="${srcdir}"/temp/usr \ + --static + make libz.a + make install + + # libarchive + cd "${srcdir}"/libarchive-${_libarchive_ver} + CPPFLAGS="-I${srcdir}/temp/usr/include" CFLAGS="-L${srcdir}/temp/usr/lib" \ + ./configure --prefix="${srcdir}"/temp/usr \ + --without-xml2 \ + --without-nettle \ + --disable-{bsdtar,bsdcat,bsdcpio} \ + --without-expat \ + --disable-shared + make + make install-{includeHEADERS,libLTLIBRARIES,pkgconfigDATA,includeHEADERS} + + # nghttp2 + cd "${srcdir}"/nghttp2-${_nghttp2_ver} + ./configure --prefix="${srcdir}"/temp/usr \ + --disable-shared \ + --disable-examples \ + --disable-python-bindings + make -C lib + make -C lib install + + # c-ares + # needed for curl, which does not use it in the repos + # but seems to be needed for static builds + cd "${srcdir}"/c-ares-${_cares_ver} + ./configure --prefix="${srcdir}"/temp/usr \ + --disable-shared + make -C src/lib + make install-pkgconfigDATA + make -C src/lib install + make -C include install + + # curl + cd "${srcdir}"/curl-${_curlver} + # c-ares is not detected via pkg-config :( + ./configure --prefix="${srcdir}"/temp/usr \ + --disable-shared \ + --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt \ + --disable-{dict,gopher,imap,imaps,ldap,ldaps,manual,pop3,pop3s,rtsp,scp,sftp,smb,smbs,smtp,smtps,telnet,tftp} \ + --without-{brotli,libidn2,librtmp,libssh2} \ + --disable-libcurl-option \ + --with-openssl \ + --enable-ares="${srcdir}"/temp/usr + make -C lib + make install-pkgconfigDATA + make -C lib install + make -C include install + + # libgpg-error + cd "${srcdir}"/libgpg-error-${_gpgerrorver} + ./configure --prefix="${srcdir}"/temp/usr \ + --disable-shared + make -C src + make -C src install-{{,dist_}binSCRIPTS,libLTLIBRARIES,nodist_includeHEADERS,pkgconfigDATA} + + # libassuan + cd "${srcdir}"/libassuan-${_libassuanver} + ./configure --prefix="${srcdir}"/temp/usr \ + --disable-shared + make -C src + make -C src install-{binSCRIPTS,libLTLIBRARIES,nodist_includeHEADERS,pkgconfigDATA} + + # gpgme + cd "${srcdir}"/gpgme-${_gpgmever} + ./configure --prefix="${srcdir}"/temp/usr \ + --disable-fd-passing \ + --disable-shared \ + --disable-languages + make -C src + make -C src install-{binSCRIPTS,libLTLIBRARIES,nodist_includeHEADERS,pkgconfigDATA} + + # ew libtool + rm "${srcdir}"/temp/usr/lib/lib*.la + + # Finally, it's a pacman! + mkdir -p "${srcdir}"/pacman-${pkgver}/builddir + cd "${srcdir}"/pacman-${pkgver}/builddir + meson setup \ + --prefix=/usr \ + --includedir=lib/pacman/include \ + --libdir=lib/pacman/lib \ + --buildtype=plain \ + -Dbuildstatic=true \ + -Ddefault_library=static \ + -Ddoc=disabled \ + -Dldconfig=/usr/bin/ldconfig \ + -Dscriptlet-shell=/usr/bin/bash \ + .. + ninja +} + +package() { + cd "${srcdir}"/pacman-${pkgver}/builddir + DESTDIR="${pkgdir}" ninja install + + rm -rf "${pkgdir}"/usr/share "${pkgdir}"/etc + for exe in "${pkgdir}"/usr/bin/*; do + if [[ -f ${exe} && $(head -c4 "${exe}") = $'\x7fELF' ]]; then + mv "${exe}" "${exe}"-static + else + rm "${exe}" + fi + done + + cp -a "${srcdir}"/temp/usr/{bin,include,lib} "${pkgdir}"/usr/lib/pacman/ + sed -i "s@${srcdir}/temp/usr@/usr/lib/pacman@g" \ + "${pkgdir}"/usr/lib/pacman/lib/pkgconfig/*.pc \ + "${pkgdir}"/usr/lib/pacman/bin/* +} diff --git a/build-support/pacman-static/build-packages.sh b/build-support/pacman-static/build-packages.sh new file mode 100755 index 00000000..b1eb05a2 --- /dev/null +++ b/build-support/pacman-static/build-packages.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# requires devtools, devtools32 (for extra-i686-build) +# if debug variants of extra-* exist, use them (I have a custom script for this) + +rm -rf artifacts/ + +for buildarch in x86_64 i686; do + extradir=artifacts/${buildarch}-extracted + + if command -v debug-${buildarch}-build; then + debug-${buildarch}-build + else + extra-${buildarch}-build + fi + + CARCH=${buildarch} makepkg --packagelist | while read -r pkgfile; do + if bsdtar -tf "${pkgfile}" usr/bin/pacman-static > /dev/null 2>&1; then + mkdir -p ${extradir} + bsdtar --strip-components 2 -C ${extradir} -xf "${pkgfile}" usr/bin/pacman-static + break + fi + done + + xz -ke ${extradir}/pacman-static + gpg --detach-sign ${extradir}/pacman-static + gpg --detach-sign ${extradir}/pacman-static.xz +done diff --git a/build-support/pacman-static/ca-dir.patch b/build-support/pacman-static/ca-dir.patch new file mode 100644 index 00000000..1daba849 --- /dev/null +++ b/build-support/pacman-static/ca-dir.patch @@ -0,0 +1,31 @@ +--- apps/CA.pl.in 2016-09-26 11:46:04.000000000 +0200 ++++ apps/CA.pl.in 2016-11-01 16:02:16.709616823 +0100 +@@ -33,7 +33,7 @@ + my $PKCS12 = "$openssl pkcs12"; + + # default openssl.cnf file has setup as per the following +-my $CATOP = "./demoCA"; ++my $CATOP = "/etc/ssl"; + my $CAKEY = "cakey.pem"; + my $CAREQ = "careq.pem"; + my $CACERT = "cacert.pem"; +--- apps/openssl.cnf 2016-09-26 11:46:04.000000000 +0200 ++++ apps/openssl.cnf 2016-11-01 16:02:48.378503427 +0100 +@@ -39,7 +39,7 @@ + #################################################################### + [ CA_default ] + +-dir = ./demoCA # Where everything is kept ++dir = /etc/ssl # Where everything is kept + certs = $dir/certs # Where the issued certs are kept + crl_dir = $dir/crl # Where the issued crl are kept + database = $dir/index.txt # database index file. +@@ -323,7 +323,7 @@ + [ tsa_config1 ] + + # These are used by the TSA reply generation only. +-dir = ./demoCA # TSA root directory ++dir = /etc/ssl # TSA root directory + serial = $dir/tsaserial # The current serial number (mandatory) + crypto_device = builtin # OpenSSL engine to use for signing + signer_cert = $dir/tsacert.pem # The TSA signing certificate diff --git a/build-support/pacman-static/nvchecker-deps.toml b/build-support/pacman-static/nvchecker-deps.toml new file mode 100644 index 00000000..88f3d02c --- /dev/null +++ b/build-support/pacman-static/nvchecker-deps.toml @@ -0,0 +1,51 @@ +[__config__] +oldver = "nvchecker-old.txt" +newver = "nvchecker-new.txt" + +[c-ares] +source = "archpkg" +archpkg = "c-ares" + +[nghttp2] +source = "archpkg" +archpkg = "libnghttp2" + +[curl] +source = "archpkg" +archpkg = "curl" + +[ssl] +source = "archpkg" +archpkg = "openssl" + +[zlib] +source = "archpkg" +archpkg = "zlib" + +[xz] +source = "archpkg" +archpkg = "xz" + +[bzip] +source = "archpkg" +archpkg = "bzip2" + +[zstd] +source = "archpkg" +archpkg = "zstd" + +[libarchive] +source = "archpkg" +archpkg = "libarchive" + +[gpgerror] +source = "archpkg" +archpkg = "libgpg-error" + +[libassuan] +source = "archpkg" +archpkg = "libassuan" + +[gpgme] +source = "archpkg" +archpkg = "gpgme" diff --git a/build-support/pacman-static/nvchecker-new.txt b/build-support/pacman-static/nvchecker-new.txt new file mode 100644 index 00000000..6758eaeb --- /dev/null +++ b/build-support/pacman-static/nvchecker-new.txt @@ -0,0 +1,14 @@ +{ + "bzip": "1.0.8-4", + "c-ares": "1.17.1-1", + "curl": "7.77.0-1", + "gpgerror": "1.42-1", + "gpgme": "1.15.1-1", + "libarchive": "3.5.1-1", + "libassuan": "2.5.5-1", + "nghttp2": "1.43.0-1", + "ssl": "1.1.1.k-1", + "xz": "5.2.5-1", + "zlib": "1.2.11-4", + "zstd": "1.5.0-1" +} diff --git a/build-support/pacman-static/nvchecker-old.txt b/build-support/pacman-static/nvchecker-old.txt new file mode 100644 index 00000000..72cf2c0f --- /dev/null +++ b/build-support/pacman-static/nvchecker-old.txt @@ -0,0 +1,14 @@ +{ + "bzip": "1.0.8-4", + "c-ares": "1.17.1-1", + "curl": "7.77.0-1", + "gpgerror": "1.42-1", + "gpgme": "1.15.1-1", + "libarchive": "3.5.1-1", + "libassuan": "2.5.5-1", + "nghttp2": "1.43.0-1", + "ssl": "1.1.1.k-1", + "xz": "5.2.5-1", + "zlib": "1.2.11-4", + "zstd": "1.4.9-1" +} diff --git a/build-support/python-setuptools-bootstrap/PKGBUILD b/build-support/python-setuptools-bootstrap/PKGBUILD index edefd64d..8b46c9e3 100644 --- a/build-support/python-setuptools-bootstrap/PKGBUILD +++ b/build-support/python-setuptools-bootstrap/PKGBUILD @@ -8,16 +8,17 @@ # heavily borrowed from python-setuptools' PKGBUILD pkgname=python-setuptools-bootstrap -pkgver='55.0.0' -pkgrel='1' +_pkgname="${pkgname%-*}" +pkgver='56.2.0' +pkgrel='2' epoch='1' pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages - bootstrap variant" arch=('any') license=('PSF') url="https://pypi.org/project/setuptools/" makedepends=('python' 'git') -source=("$pkgbase-$pkgver.tar.gz::https://github.com/pypa/setuptools/archive/v$pkgver.tar.gz") -sha512sums=('09ef700a076cac07d552a2faf54f48b040944852521bfe357f2ef4dec79d8f87b8d285640cf698a490b0289ba974a06b1c39c32ea0acbfa56e582e4bb68ffdf7') +source=("$_pkgname-$pkgver.tar.gz::https://github.com/pypa/setuptools/archive/v$pkgver.tar.gz") +sha512sums=('ff062db8adf4478bb55650e0c5ef162aed1e4de2b6dba8c0b6ea986b669ef2c8af126247f281feb749cd8a54c0bd9af54e99289073ab742b0d4e26a0208b963c') export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0 @@ -55,5 +56,7 @@ package() { replaces=('python-distribute') cd "$srcdir"/setuptools-$pkgver + # create directory before installing (otherwise installing fails) + mkdir build/scripts-3.10 python setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 --skip-build } diff --git a/build-support/ruby-activesupport-bootstrap/PKGBUILD b/build-support/ruby-activesupport-bootstrap/PKGBUILD index 85831fb8..85659cb5 100644 --- a/build-support/ruby-activesupport-bootstrap/PKGBUILD +++ b/build-support/ruby-activesupport-bootstrap/PKGBUILD @@ -3,7 +3,7 @@ _name=activesupport pkgname=ruby-activesupport-bootstrap _pkgname=ruby-activesupport -pkgver='6.1.3' +pkgver='6.1.3.2' pkgrel='1' pkgdesc='A collection of utility classes and standard library extensions' arch=('any') |