Github messages for voidlinux
 help / color / mirror / Atom feed
From: 2asoft <2asoft@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] CLion: update to 2022.2.3.
Date: Mon, 31 Oct 2022 09:19:14 +0100	[thread overview]
Message-ID: <20221031081914.NM2GE8pc7u1R0xYuctovtH5n_IPjIrYVK25alby9omQ@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-36712@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 489 bytes --]

There is an updated pull request by 2asoft against master on the void-packages repository

https://github.com/2asoft/void-packages 2asoft/jb_update_clion
https://github.com/void-linux/void-packages/pull/36712

CLion: update to 2022.2.3.
#### Testing the changes
- I tested the changes in this PR: **YES**

#### Local build testing
- I built this PR locally for my native architecture, (x86_64)

A patch file from https://github.com/void-linux/void-packages/pull/36712.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-2asoft/jb_update_clion-36712.patch --]
[-- Type: text/x-diff, Size: 14772 bytes --]

From d17a639126d13f78aa6bc23208e72efd3341a8da Mon Sep 17 00:00:00 2001
From: Anton Afanasyev <anton@doubleasoftware.com>
Date: Sat, 30 Jul 2022 08:47:49 -0700
Subject: [PATCH 1/2] New package: jetbrains-jdk17-17.0.4.1b653.1.

---
 .../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<String> 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..eb0dae960025
--- /dev/null
+++ b/srcpkgs/jetbrains-jdk17/template
@@ -0,0 +1,117 @@
+# Template file for 'jetbrains-jdk17'
+pkgname=jetbrains-jdk17
+version=17.0.4.1b653.1
+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 <anton@doubleasoftware.com>"
+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="3aa4e853afe36bc9118e81394fe6e0e90e5bf0e47ae5c42bcc7772bb87ae846b
+ 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 <<EOF
+export IDEA_JDK=\${IDEA_JDK=/${_jdk_home}}
+EOF
+}
diff --git a/srcpkgs/jetbrains-jdk17/update b/srcpkgs/jetbrains-jdk17/update
new file mode 100644
index 000000000000..215972d02843
--- /dev/null
+++ b/srcpkgs/jetbrains-jdk17/update
@@ -0,0 +1,2 @@
+pattern='/archive/refs/tags/jbr-release-\K17[\d.]+b[\d.]+(?=\.tar\.gz)'
+site="https://github.com/JetBrains/JetBrainsRuntime/tags"

From c649b94d993ddb0cd4c0a6ab95339d9d16ee7540 Mon Sep 17 00:00:00 2001
From: Anton Afanasyev <anton@doubleasoftware.com>
Date: Fri, 15 Apr 2022 12:50:13 -0700
Subject: [PATCH 2/2] CLion: update to 2022.2.4.

---
 srcpkgs/CLion-cmake    |   1 +
 srcpkgs/CLion-gdb      |   1 +
 srcpkgs/CLion-lldb     |   1 +
 srcpkgs/CLion/template | 109 +++++++++++++++++++++--------------------
 4 files changed, 60 insertions(+), 52 deletions(-)
 create mode 120000 srcpkgs/CLion-cmake
 create mode 120000 srcpkgs/CLion-gdb
 create mode 120000 srcpkgs/CLion-lldb

diff --git a/srcpkgs/CLion-cmake b/srcpkgs/CLion-cmake
new file mode 120000
index 000000000000..0c38ab4f97d6
--- /dev/null
+++ b/srcpkgs/CLion-cmake
@@ -0,0 +1 @@
+CLion
\ No newline at end of file
diff --git a/srcpkgs/CLion-gdb b/srcpkgs/CLion-gdb
new file mode 120000
index 000000000000..0c38ab4f97d6
--- /dev/null
+++ b/srcpkgs/CLion-gdb
@@ -0,0 +1 @@
+CLion
\ No newline at end of file
diff --git a/srcpkgs/CLion-lldb b/srcpkgs/CLion-lldb
new file mode 120000
index 000000000000..0c38ab4f97d6
--- /dev/null
+++ b/srcpkgs/CLion-lldb
@@ -0,0 +1 @@
+CLion
\ No newline at end of file
diff --git a/srcpkgs/CLion/template b/srcpkgs/CLion/template
index 65e76c206e6c..aa60e32f393f 100644
--- a/srcpkgs/CLion/template
+++ b/srcpkgs/CLion/template
@@ -1,55 +1,31 @@
 # Template file for 'CLion'
 pkgname=CLion
-version=2021.3.4
+version=2022.2.4
 revision=1
 archs="x86_64 aarch64"
 wrksrc="clion-${version}"
-depends="jetbrains-jdk-bin giflib libXtst"
+depends="giflib libXtst jetbrains-jdk17"
 short_desc="Smart cross-platform IDE for C and C++"
 maintainer="Anton Afanasyev <anton@doubleasoftware.com>"
 license="custom:Commercial"
 homepage="https://www.jetbrains.com/clion"
 distfiles="https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"
-checksum=f3b0b9e0dd0cd4aebef5d424e7a22868c732daad47d6c94f73630cef449ccf78
+checksum=d88794c698d7bf4d970ba102b85166d5f8c3cb08c4ed5b4cbc150bb505320fab
 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
+nostrip=yes
+noshlibprovides=yes
 python_version=3
 
-build_options="bundled_cmake bundled_gdb bundled_lldb"
-build_options_default="bundled_cmake bundled_gdb bundled_lldb"
-desc_option_bundled_cmake="Install bundled CMake"
-desc_option_bundled_gdb="Install bundled GDB"
-desc_option_bundled_lldb="Install bundled LLDB"
-
 post_extract() {
 	# Remove files for other OSes and/or CPU architectures
-	# Darwin (this is not packaged for macOS)
-	rm -rf plugins/cwm-plugin/quiche-native/darwin-aarch64
-	rm -rf plugins/cwm-plugin/quiche-native/darwin-x86-64
-	rm -rf plugins/performanceTesting/bin/libyjpagent.dylib
-	rm -rf plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_x86.dylib
-	rm -rf plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_x86_64.dylib
-	# Windows (this is not packaged for Windows)
-	rm -rf plugins/cwm-plugin/quiche-native/win32-x86-64
-	rm -rf plugins/performanceTesting/bin/yjpagent.dll
-	rm -rf plugins/performanceTesting/bin/yjpagent64.dll
-	rm -rf plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_amd64.dll
-	rm -rf plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_x86.dll
-	# x86 (unsupported after v2021.1)
-	rm -rf bin/clion.vmoptions
-	rm -rf lib/pty4j-native/linux/x86
-	rm -rf plugins/performanceTesting/bin/libyjpagent.so
-	rm -rf plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_x86.so
-	# MIPS
-	rm -rf lib/pty4j-native/linux/mips64el
-	# ARM
-	rm -rf lib/pty4j-native/linux/arm
-	# PPC
-	rm -rf lib/pty4j-native/linux/ppc64le
-
+	rm -rf plugins/cwm-plugin/quiche-native/{darwin-aarch64,darwin-x86-64,win32-x86-64}
+	rm -rf plugins/performanceTesting/bin/{libyjpagent.dylib,yjpagent.dll,yjpagent64.dll,libyjpagent.so}
+	rm -rf plugins/python-ce/helpers/pydev/pydevd_attach_to_process/{attach_x86.dylib,attach_x86_64.dylib,attach_amd64.dll,attach_x86.dll,attach_linux_x86.so}
+	rm -rf lib/pty4j-native/linux/{x86,mips64el,arm,ppc64le}
 
 	case "$XBPS_TARGET_MACHINE" in
 		x86_64)
@@ -62,22 +38,15 @@ post_extract() {
 			;;
 	esac
 
-	if [ ! "$build_option_bundled_cmake" ]; then
-		rm -rf bin/cmake
-	fi
-	if [ ! "$build_option_bundled_gdb" ]; then
-		rm -rf bin/gdb
-	fi
-	if [ ! "$build_option_bundled_lldb" ]; then
-		rm -rf bin/lldb
-	fi
+	# Packaged in separate packages
+	mkdir -p _bin
+	mv bin/{cmake,gdb,lldb} _bin/
 }
 
+_TARGET_PATH="usr/lib/${pkgname}"
 do_install() {
-	TARGET_PATH="usr/lib/${pkgname}"
-
 	vmkdir usr/bin
-	vmkdir ${TARGET_PATH}
+	vmkdir ${_TARGET_PATH}
 
 	local i
 	for i in license/* ; do
@@ -86,12 +55,48 @@ do_install() {
 
 	local launcher_path="bin/clion.sh"
 	sed -i '1 s/$/\nCLION_JDK=${CLION_JDK:-${IDEA_JDK}}/' "${launcher_path}"
-	vcopy bin ${TARGET_PATH}
-	vcopy help ${TARGET_PATH}
-	vcopy lib ${TARGET_PATH}
-	vcopy plugins ${TARGET_PATH}
-	vcopy product-info.json ${TARGET_PATH}
-	vcopy build.txt ${TARGET_PATH}
+	vcopy bin ${_TARGET_PATH}
+	vcopy help ${_TARGET_PATH}
+	vcopy lib ${_TARGET_PATH}
+	vcopy plugins ${_TARGET_PATH}
+	vcopy product-info.json ${_TARGET_PATH}
+	vcopy build.txt ${_TARGET_PATH}
+
+	ln -sf "/${_TARGET_PATH}/${launcher_path}" "${DESTDIR}/usr/bin/${pkgname}"
+}
+
+CLion-cmake_package() {
+	short_desc+=" - bundled CMake"
+	depends="${sourcepkg}>=${version}_${revision}"
+	noverifyrdeps=yes
+	nostrip=yes
+	noshlibprovides=yes
+	pkg_install() {
+		vmkdir ${_TARGET_PATH}/bin
+		vcopy _bin/cmake ${_TARGET_PATH}/bin
+	}
+}
+
+CLion-gdb_package() {
+	short_desc+=" - bundled GDB"
+	depends="${sourcepkg}>=${version}_${revision}"
+	noverifyrdeps=yes
+	nostrip=yes
+	noshlibprovides=yes
+	pkg_install() {
+		vmkdir ${_TARGET_PATH}/bin
+		vcopy _bin/gdb ${_TARGET_PATH}/bin
+	}
+}
 
-	ln -sf "/${TARGET_PATH}/${launcher_path}" "${DESTDIR}/usr/bin/${pkgname}"
+CLion-lldb_package() {
+	short_desc+=" - bundled LLDB"
+	depends="${sourcepkg}>=${version}_${revision}"
+	noverifyrdeps=yes
+	nostrip=yes
+	noshlibprovides=yes
+	pkg_install() {
+		vmkdir ${_TARGET_PATH}/bin
+		vcopy _bin/lldb ${_TARGET_PATH}/bin
+	}
 }

  parent reply	other threads:[~2022-10-31  8:19 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-15 19:55 [PR PATCH] CLion: update to 2022.1 2asoft
2022-04-15 19:57 ` [PR PATCH] [Updated] " 2asoft
2022-05-13  6:06 ` 2asoft
2022-06-02  5:45 ` [PR PATCH] [Updated] CLion: update to 2022.1.1 2asoft
2022-06-22  7:55 ` [PR PATCH] [Updated] CLion: update to 2022.1.2 2asoft
2022-06-24  6:03 ` 2asoft
2022-07-22  7:00 ` 2asoft
2022-07-29 15:23 ` 2asoft
2022-07-29 15:57 ` 2asoft
2022-08-23  3:45 ` 2asoft
2022-09-09 18:26 ` 2asoft
2022-09-16 20:09 ` 2asoft
2022-09-16 21:41 ` [PR PATCH] [Updated] CLion: update to 2022.2.3 2asoft
2022-10-08  8:44 ` 2asoft
2022-10-08  9:06 ` 2asoft
2022-10-31  8:19 ` 2asoft [this message]
2022-11-10 13:36 ` 2asoft
2022-12-07 18:38 ` 2asoft
2023-01-14  5:43 ` 2asoft
2023-02-10  8:01 ` 2asoft
2023-02-10  8:08 ` 2asoft
2023-03-26 22:17 ` 2asoft
2023-06-25  2:12 ` github-actions
2023-07-10  2:08 ` [PR PATCH] [Closed]: " github-actions

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221031081914.NM2GE8pc7u1R0xYuctovtH5n_IPjIrYVK25alby9omQ@z \
    --to=2asoft@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).