From 96797dd48d6ec85dd835f513d32a68c6cdd74f5f Mon Sep 17 00:00:00 2001 From: Anton Afanasyev Date: Sat, 30 Jul 2022 08:47:49 -0700 Subject: [PATCH 1/2] New package: jetbrains-jdk17-17.0.4.1b629.2. --- .../01-jdk_build_classlist_sort_to_file.diff | 64 ++++++++++ srcpkgs/jetbrains-jdk17/template | 117 ++++++++++++++++++ srcpkgs/jetbrains-jdk17/update | 2 + 3 files changed, 183 insertions(+) create mode 100644 srcpkgs/jetbrains-jdk17/patches/01-jdk_build_classlist_sort_to_file.diff create mode 100644 srcpkgs/jetbrains-jdk17/template create mode 100644 srcpkgs/jetbrains-jdk17/update diff --git a/srcpkgs/jetbrains-jdk17/patches/01-jdk_build_classlist_sort_to_file.diff b/srcpkgs/jetbrains-jdk17/patches/01-jdk_build_classlist_sort_to_file.diff new file mode 100644 index 000000000000..e94884daf217 --- /dev/null +++ b/srcpkgs/jetbrains-jdk17/patches/01-jdk_build_classlist_sort_to_file.diff @@ -0,0 +1,64 @@ +diff --git a/make/GenerateLinkOptData.gmk b/make/GenerateLinkOptData.gmk +index 5dd766c8c07..7b2480625f1 100644 +--- a/make/GenerateLinkOptData.gmk ++++ b/make/GenerateLinkOptData.gmk +@@ -89,9 +89,10 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST + exit $$exitcode \ + ) + $(GREP) -v HelloClasslist $@.raw.2 > $@.raw.3 ++ echo "" > $@ + $(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java \ + -cp $(SUPPORT_OUTPUTDIR)/classlist.jar \ +- build.tools.classlist.SortClasslist $@.raw.3 > $@ ++ build.tools.classlist.SortClasslist $@.raw.3 $@ + + # The jli trace is created by the same recipe as classlist. By declaring these + # dependencies, make will correctly rebuild both jli trace and classlist +diff --git a/make/jdk/src/classes/build/tools/classlist/SortClasslist.java b/make/jdk/src/classes/build/tools/classlist/SortClasslist.java +index 07987feb2da..7a5b84421fc 100644 +--- a/make/jdk/src/classes/build/tools/classlist/SortClasslist.java ++++ b/make/jdk/src/classes/build/tools/classlist/SortClasslist.java +@@ -33,6 +33,10 @@ package build.tools.classlist; + + import java.io.FileInputStream; + import java.io.FileNotFoundException; ++import java.io.FileOutputStream; ++import java.io.OutputStreamWriter; ++import java.io.PrintWriter; ++import java.nio.charset.StandardCharsets; + import java.util.ArrayList; + import java.util.Collections; + import java.util.regex.Pattern; +@@ -50,13 +54,15 @@ public class SortClasslist { + ArrayList lambdas = new ArrayList<>(); + + FileInputStream fis = new FileInputStream(args[0]); ++ FileOutputStream fos = new FileOutputStream(args[1], false); ++ PrintWriter outWriter = new PrintWriter(new OutputStreamWriter(fos, StandardCharsets.UTF_8)); + Scanner scanner = new Scanner(fis); + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + if (line.startsWith("#")) { + // Comments -- print them first without sorting. These appear only at the top + // of the file. +- System.out.println(line); ++ outWriter.println(line); + } else if (line.startsWith("@")) { + // @lambda-form-invoker, @lambda-proxy, etc. + lambdas.add(line); +@@ -73,10 +79,13 @@ public class SortClasslist { + Collections.sort(lambdas); + + for (String s : classes) { +- System.out.println(s); ++ outWriter.println(s); + } + for (String s : lambdas) { +- System.out.println(s); ++ outWriter.println(s); + } ++ ++ outWriter.flush(); ++ outWriter.close(); + } + } diff --git a/srcpkgs/jetbrains-jdk17/template b/srcpkgs/jetbrains-jdk17/template new file mode 100644 index 000000000000..a946fb1b98c3 --- /dev/null +++ b/srcpkgs/jetbrains-jdk17/template @@ -0,0 +1,117 @@ +# Template file for 'jetbrains-jdk17' +pkgname=jetbrains-jdk17 +version=17.0.4.1b629.2 +revision=1 +_gtest_ver=1.8.1 +archs="x86_64" +_tag_name="jbr-release-${version}" +_jdk_home="usr/lib/jvm/jbrsdk" +create_wrksrc=yes +build_wrksrc="JetBrainsRuntime-${_tag_name}" +build_style=gnu-configure +configure_args=" + --with-vendor-name=Void + --with-vendor-url=https://voidlinux.org/ + --with-vendor-bug-url=https://github.com/void-linux/void-packages/issues + --with-vendor-vm-bug-url=https://github.com/void-linux/void-packages/issues + --with-version-pre= + --with-version-opt=${version#*b}-void-r${revision} + --with-stdc++lib=dynamic + --with-libjpeg=system + --with-giflib=system + --with-libpng=system + --with-lcms=system + --with-zlib=system + --with-jtreg=no + --with-harfbuzz=system + --with-jvm-features=zgc + --enable-unlimited-crypto + --disable-warnings-as-errors + --with-native-debug-symbols=internal + --with-debug-level=release + --with-jobs=${XBPS_ORIG_MAKEJOBS} + --with-gtest=../googletest-release-${_gtest_ver} +" +make_build_args="images" +make_install_args="INSTALL_PREFIX=\"${DESTDIR}/usr/lib\"" +make_check_target="test-hotspot-gtest" +hostmakedepends="pkg-config zip unzip autoconf automake libtool which make-ca" +makedepends="alsa-lib-devel cups-devel libX11-devel libjpeg-turbo-devel harfbuzz-devel giflib-devel freetype-devel libXtst-devel libXt-devel libXrender-devel alsa-lib-devel fontconfig-devel libXrandr-devel libXi-devel zlib-devel lcms2-devel" +short_desc="JetBrains Java 17 JDK" +maintainer="Anton Afanasyev " +license="GPL-2.0-only, Classpath-exception-2.0" +homepage="https://github.com/JetBrains/JetBrainsRuntime" +distfiles="https://github.com/JetBrains/JetBrainsRuntime/archive/refs/tags/${_tag_name}.tar.gz + https://github.com/google/googletest/archive/refs/tags/release-${_gtest_ver}.tar.gz" +checksum="c850cc90c8980b00866bb47d2e9f13700f419dd8867892706342aba850127138 + 9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c" +patch_args="-Np1 -d ${build_wrksrc}" +conflicts="jetbrains-jdk-bin" + +# For whatever reason, XBPS finds libjava, libjli, etc as dependencies of this package, and decides to make it depend on openjdk8, which provides those. +# But that is not true, nor desired -- this is a full fledged JDK distribution, just not installed as such here in XBPS land. +noverifyrdeps=yes + +# Build and check are still parallel, but don't use -jN. +disable_parallel_build=yes +disable_parallel_check=yes + +# This does not currently accomplish anything, since only building on x86_64. Leaving this for future, taken from `openjdk17`. +if [ ! "$CROSS_BUILD" ]; then + makedepends+=" openjdk16-bootstrap" + configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk16" +else + makedepends+=" openjdk17" + configure_args+=" --with-boot-jdk=/usr/lib/jvm/openjdk17" +fi +configure_args+=" --with-boot-jdk-jvmargs=-Xlog:disable" + +do_configure() { + CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/} + CXXFLAGS=${CXXFLAGS/-D_FORTIFY_SOURCE=2/} + + configure_args=${configure_args/--with-libtool-sysroot=$XBPS_CROSS_BASE} + if [ "$XBPS_CCACHE" ] && [ -z "$CROSS_BUILD" ]; then + configure_args+=" --enable-ccache" + CC="/usr/bin/cc" + CXX="/usr/bin/c++" + fi + + sh ./configure ${configure_args} \ + --with-extra-cflags="$CFLAGS" \ + --with-extra-cxxflags="$CXXFLAGS" \ + --with-extra-ldflags="$LDFLAGS" \ + READELF=$READELF AR=$AR STRIP=$STRIP NM=$NM \ + OBJDUMP=$OBJDUMP OBJCOPY=$OBJCOPY +} + +# TODO: openjdk17 had the following hook in it. Debug it for understanding. +#post_install() { +# vmkdir $_jdk_home/lib/security +# make-ca -g -f --destdir "${PWD}/ca" -k "${DESTDIR}/$_jdk_home/bin/keytool" +# mv ./ca/etc/pki/tls/java/cacerts ${DESTDIR}/$_jdk_home/lib/security/ +# chmod -R ugo+rw ./ca +# rm -rf ./ca +#} + +do_install() { + TARGET_PATH="${_jdk_home}" + + vmkdir ${TARGET_PATH} + + vlicense ASSEMBLY_EXCEPTION + vlicense LICENSE + + cd build/linux-*-server-release/images/jdk/ + vcopy bin ${TARGET_PATH} + vcopy conf ${TARGET_PATH} + vcopy include ${TARGET_PATH} + vcopy legal ${TARGET_PATH} + vcopy lib ${TARGET_PATH} + vcopy release ${TARGET_PATH} + + vmkdir etc/profile.d + cat > ${DESTDIR}/etc/profile.d/10_jbrsdk.sh < Date: Fri, 15 Apr 2022 09:13:20 -0700 Subject: [PATCH 2/2] intellij-idea-ultimate-edition: update to 2022.2.3. --- .../intellij-idea-ultimate-edition/template | 38 ++++++------------- srcpkgs/intellij-idea-ultimate-edition/update | 4 +- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/srcpkgs/intellij-idea-ultimate-edition/template b/srcpkgs/intellij-idea-ultimate-edition/template index 92ad9135f3a9..2162b3815958 100644 --- a/srcpkgs/intellij-idea-ultimate-edition/template +++ b/srcpkgs/intellij-idea-ultimate-edition/template @@ -1,23 +1,25 @@ # Template file for 'intellij-idea-ultimate-edition' pkgname=intellij-idea-ultimate-edition -version=2021.3.3 +version=2022.2.3 revision=1 archs="i686 x86_64" create_wrksrc="true" -depends="giflib libXtst jetbrains-jdk-bin" +depends="giflib libXtst jetbrains-jdk17" short_desc="Most intelligent Java IDE" maintainer="Anton Afanasyev " license="custom:Commercial" homepage="https://www.jetbrains.com/idea" -_filename="ideaIU-${version}-no-jbr.tar.gz" +_filename="ideaIU-${version}.tar.gz" distfiles="https://download.jetbrains.com/idea/${_filename}" -checksum=2a3295fca08060ad515f6c7198879d09963724cfb36af3ea94f16dcd76636470 +checksum=e1f9de8173cec9f7166894d66b82b89dee4da9022c05366d192f6112956184b3 repository=nonfree restricted=yes nopie=yes # JetBrains' tools are self-sufficient and while they include code that appears to be linked to libs from other packages, these libs are either included in the tool package, or the code works by looking for one of several supported libs. noverifyrdeps=yes +noshlibprovides=yes python_version=3 +nostrip=yes do_extract() { bsdtar xf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_filename} --strip-components=1 -C . @@ -25,30 +27,17 @@ do_extract() { post_extract() { # Remove files for other OSes - rm -rf plugins/cwm-plugin/quiche-native/darwin-aarch64 - rm -rf plugins/cwm-plugin/quiche-native/darwin-x86-64 - rm -rf plugins/cwm-plugin/quiche-native/win32-x86-64 - rm -rf plugins/maven/lib/maven3/lib/jansi-native/freebsd64 - rm -rf plugins/maven/lib/maven3/lib/jansi-native/freebsd32 - rm -rf plugins/maven/lib/maven3/lib/jansi-native/osx - rm -rf plugins/maven/lib/maven3/lib/jansi-native/windows32 - rm -rf plugins/maven/lib/maven3/lib/jansi-native/windows64 - rm -rf plugins/performanceTesting/bin/libyjpagent.dylib - rm -rf plugins/performanceTesting/bin/yjpagent.dll - rm -rf plugins/performanceTesting/bin/yjpagent64.dll - rm -rf plugins/webp/lib/libwebp/mac - rm -rf plugins/webp/lib/libwebp/win + rm -rf plugins/cwm-plugin/quiche-native/{darwin-aarch64,darwin-x86-64,win32-x86-64} + rm -rf plugins/Kotlin/bin/{macos,windows} + rm -rf plugins/maven/lib/maven3/lib/jansi-native/{freebsd32,freebsd64,osx,windows32,windows64} + rm -rf plugins/performanceTesting/bin/{libyjpagent.dylib,yjpagent.dll,yjpagent64.dll} + rm -rf plugins/webp/lib/libwebp/{mac,win} # Remove files for other CPU architectures - rm -rf bin/fsnotifier-arm - rm -rf lib/pty4j-native/linux/aarch64 - rm -rf lib/pty4j-native/linux/arm - rm -rf lib/pty4j-native/linux/mips64el - rm -rf lib/pty4j-native/linux/ppc64le + rm -rf lib/pty4j-native/linux/{aarch64,arm,mips64el,ppc64le} case "$XBPS_TARGET_MACHINE" in x86_64) - rm -rf bin/idea.vmoptions rm -rf lib/pty4j-native/linux/x86 rm -rf plugins/android/lib/libwebp/linux/libwebp_jni.so rm -rf plugins/maven/lib/maven3/lib/jansi-native/linux32 @@ -56,8 +45,6 @@ post_extract() { rm -rf plugins/webp/lib/libwebp/linux/libwebp_jni.so ;; i686) - rm -rf bin/idea64.vmoptions - rm -rf bin/libyjpagent-linux64.so rm -rf lib/pty4j-native/linux/x86_64 rm -rf plugins/android/lib/libwebp/linux/libwebp_jni64.so rm -rf plugins/maven/lib/maven3/lib/jansi-native/linux64 @@ -82,7 +69,6 @@ do_install() { vcopy help ${TARGET_PATH} vcopy lib ${TARGET_PATH} vcopy plugins ${TARGET_PATH} - vcopy redist ${TARGET_PATH} vcopy product-info.json ${TARGET_PATH} vcopy build.txt ${TARGET_PATH} diff --git a/srcpkgs/intellij-idea-ultimate-edition/update b/srcpkgs/intellij-idea-ultimate-edition/update index 0fd4e8031bd5..47b4c56e8f7e 100644 --- a/srcpkgs/intellij-idea-ultimate-edition/update +++ b/srcpkgs/intellij-idea-ultimate-edition/update @@ -1,2 +1,2 @@ -pattern="ideaIU-\K[\d.]+(?=-no-jbr\.tar)" -site="https://data.services.jetbrains.com/products/releases?code=IIU%2CIIC&latest=true&type=release" +pattern="ideaIU-\K[\d.]+(?=\.tar\.gz)" +site="https://data.services.jetbrains.com/products/releases?code=IIU&latest=true&type=release"