public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/goland/
Date: Tue, 29 Apr 2025 19:05:01 +0000 (UTC)	[thread overview]
Message-ID: <1745953376.b078d4d4d688c1b7e061510c6f02a10595944186.sam@gentoo> (raw)

commit:     b078d4d4d688c1b7e061510c6f02a10595944186
Author:     Stefan Cristian B. <stefan.cristian+git <AT> rogentos <DOT> ro>
AuthorDate: Tue Apr 29 15:22:17 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Apr 29 19:02:56 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b078d4d4

dev-util/goland: bump 2024.3.5, 2025.1

* On #876295, implemented the solution discussed with @thesamesam to strip
  debug symbols and relocate them in ${EPREFIX}/opt/${P}.
  JetBrains IDEs have almost identical .build-ids, causing conflicts
  To prevent the conflicts, we relocate debug symbols per package.
  The preferred method is stripping with objcopy and using debugedit to
  point to their new /usr/lib/debug/ location.
* Corrected SONAME errors as per #738962 report
* Corrected find command, using a simpler syntax
* Removed useless postrm & postinst functions
* Added inotify recommendation
* Added full wayland support for jvm options
* Replaced objcopy with tc-export OBJCOPY

Bug: https://bugs.gentoo.org/876295
Closes: https://bugs.gentoo.org/948674
Closes: https://bugs.gentoo.org/738962 (obsolete)

Signed-off-by: Stefan Cristian B. <stefan.cristian+git <AT> rogentos.ro>
Part-of: https://github.com/gentoo/gentoo/pull/40265
Closes: https://github.com/gentoo/gentoo/pull/40265
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-util/goland/Manifest               |   4 ++
 dev-util/goland/goland-2024.3.5.ebuild | 110 +++++++++++++++++++++++++++++++++
 dev-util/goland/goland-2025.1.ebuild   | 110 +++++++++++++++++++++++++++++++++
 3 files changed, 224 insertions(+)

diff --git a/dev-util/goland/Manifest b/dev-util/goland/Manifest
index 8386f576b0c8..27130f3db48d 100644
--- a/dev-util/goland/Manifest
+++ b/dev-util/goland/Manifest
@@ -1,2 +1,6 @@
 DIST goland-2022.3.3-aarch64.tar.gz 669196391 BLAKE2B bf19290a73d9a0e268f90420a4aa3962da842fcc59e2323b9631cf6c511fdd48b2663164e15e587fbee6ba0f51650798eb91d41c750a64c2760ceaa2fe74d13f SHA512 b75ef4063adb8e75b8c20b9f762c7b9d5a1614d666cc81ba21e25728a55a2ee83343eabce29bc7f90eab03ec0eeca9ce2c9dba2016330491e9f16313f0087157
 DIST goland-2022.3.3.tar.gz 673567402 BLAKE2B e1771f0890e12e43099d50907aeaa479dedab514f2900cef738e7a9a37314376cf37155e04e55dfeb5e783f6b3f1ebb96f33005d39b8d01404502486adf91416 SHA512 e5a216a2f31698f226bcc58ed5f7c7efd0110f93f001c6de20d2fee25cfd7b816bda59f1f6fda5c0052cfa0d5aa1e089c7f2a7d2a6cedc64a6fd3c7319359030
+DIST goland-2024.3.5-aarch64.tar.gz 1108972234 BLAKE2B 6f9cf2b9d5b61b4608dde0006b282ca929484d2a74a918806efdde032bf8239b23ef00bf46f5c3b33a7cfd77625e5588f474f5524cfed20b9ca14fdf81db252f SHA512 e6acbd595531ee66ed132d4f70df3fa2c3181e126c7570a083df89d87f203789263576f96c496593d311866475c4f845d50e08dd137556bcc26ece810568fa27
+DIST goland-2024.3.5.tar.gz 1109319258 BLAKE2B 03c0f91313f492b2db3cbc139eef866193d17a56f4f20a45a64c7cf9a27f36cd9ebf87c95689cb406dabbe7f147a6802fa27a4eab2b33acb5c732e470b21836b SHA512 40a81c037d29210294920bf6400778104bc20dde37966c6f9305e0003ca546cb582aa4aa1fb74001e6c340d0c25b692dd84f6d3c881381b06fc20ea57842636d
+DIST goland-2025.1-aarch64.tar.gz 1117409123 BLAKE2B 2fa42ac22ce494296eb1404744d30d81d7316c8c887f020b619d57855dafec3b44d02921e085261238ca79373396fdc7c86696bfa7f49413eb6b8d7161cda007 SHA512 e2d0508f443a6f7de9085d40b1e428c3d6a88c9985ecbb5cf3c8d0c1972a98a3e65166e5702a3702da14a15ee74aae97bc3166909e4d408fc5f51d9f6309b81e
+DIST goland-2025.1.tar.gz 1120023437 BLAKE2B 6a7ea2ac5c4bfa3a2bdcd84425ff7045d36d89541d703328fc6247f4a6cebbf7655f39e1d9da97298ae266ae6e53e2391dced3be9c3014afe9a4516dc8d4a8f3 SHA512 4ef5eac89186334ec04cda6c8668b1b4651b0955bbe87d9d80646d9e6f7c547967a628973f8393fd003a1dcf5118013347120552f6f7331ebdb4ecfea6c84ff9

diff --git a/dev-util/goland/goland-2024.3.5.ebuild b/dev-util/goland/goland-2024.3.5.ebuild
new file mode 100644
index 000000000000..b7ccbfbe65a7
--- /dev/null
+++ b/dev-util/goland/goland-2024.3.5.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop wrapper toolchain-funcs
+
+DESCRIPTION="Golang IDE by JetBrains"
+HOMEPAGE="https://www.jetbrains.com/go/"
+SRC_URI="
+	amd64? ( https://download.jetbrains.com/go/${P}.tar.gz )
+	arm64? ( https://download.jetbrains.com/go/${P}-aarch64.tar.gz )
+"
+S="${WORKDIR}/GoLand-${PV}"
+LICENSE="|| ( JetBrains-business JetBrains-classroom JetBrains-educational JetBrains-individual )
+	Apache-2.0
+	BSD
+	CC0-1.0
+	CDDL
+	CDDL-1.1
+	EPL-1.0
+	GPL-2
+	GPL-2-with-classpath-exception
+	ISC
+	LGPL-2.1
+	LGPL-3
+	MIT
+	MPL-1.1
+	OFL-1.1
+	ZLIB
+"
+SLOT="0/2024"
+KEYWORDS="~amd64 ~arm64"
+IUSE="wayland"
+
+RESTRICT="bindist mirror"
+QA_PREBUILT="opt/${P}/*"
+
+BDEPEND="
+	dev-util/debugedit
+	dev-util/patchelf
+"
+RDEPEND="
+	>=virtual/jre-17:*
+	dev-lang/go
+	dev-libs/wayland
+	sys-libs/pam
+	sys-process/audit
+"
+
+src_prepare() {
+	tc-export OBJCOPY
+	default
+
+	local remove_me=(
+		lib/async-profiler/aarch64
+		plugins/go-plugin/lib/dlv/linuxarm/dlv
+		plugins/go-plugin/lib/dlv/linuxarmmusl/dlv
+	)
+
+	rm -rv "${remove_me[@]}" || die
+
+	# excepting files that should be kept for remote plugins
+	local skip_nonx86_files=(
+		"./plugins/platform-ijent-impl/ijent-aarch64-unknown-linux-musl-release"
+		"./plugins/clion-radler/DotFiles/linux-musl-arm64/jb_zip_unarchiver"
+		"./plugins/clion-radler/DotFiles/linux-arm/jb_zip_unarchiver"
+		"./plugins/clion-radler/DotFiles/linux-musl-arm/jb_zip_unarchiver"
+		"./plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-arm64"
+	)
+	# removing debug symbols and relocating debug files as per #876295
+	# we're escaping all the files that contain $() in their name
+	# as they should not be executed
+	find . -type f ! -name '*$(*)*' -print0 | while IFS= read -r -d '' file; do
+		for skip in "${skip_nonx86_files[@]}"; do
+			[[ ${file} == "${skip}" ]] && continue 2
+		done
+		if file "${file}" | grep -qE "ELF (32|64)-bit"; then
+			${OBJCOPY} --remove-section .note.gnu.build-id "${file}" || die
+			debugedit -b "${EPREFIX}/opt/${PN}" -d "/usr/lib/debug" -i "${file}" || die
+		fi
+	done
+
+	patchelf --set-rpath '$ORIGIN' "jbr/lib/libjcef.so" || die
+	patchelf --set-rpath '$ORIGIN' "jbr/lib/jcef_helper" || die
+
+	# As per https://blog.jetbrains.com/platform/2024/07/wayland-support-preview-in-2024-2/ for full wayland support
+	if use wayland; then
+		echo "-Dawt.toolkit.name=WLToolkit" >> bin/webstorm64.vmoptions || die
+	fi
+}
+
+src_install() {
+	local dir="/opt/${P}"
+
+	insinto "${dir}"
+	doins -r *
+	fperms 755 "${dir}"/bin/{format.sh,goland.sh,inspect.sh,ltedit.sh,remote-dev-server.sh,restarter,fsnotifier}
+	fperms 755 "${dir}"/jbr/bin/{java,javac,javadoc,jcmd,jdb,jfr,jhsdb,jinfo,jmap,jps,jrunscript,jstack,jstat,keytool,rmiregistry,serialver}
+	fperms 755 "${dir}"/jbr/lib/{chrome-sandbox,jcef_helper,jexec,jspawnhelper}
+	fperms 755 "${dir}"/plugins/go-plugin/lib/dlv/linux/dlv
+
+	make_wrapper "${PN}" "${dir}/bin/${PN}.sh"
+	newicon "bin/${PN}.png" "${PN}.png"
+	make_desktop_entry "${PN}" "Goland ${PV}" "${PN}" "Development;IDE;"
+
+	# recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
+	insinto /usr/lib/sysctl.d
+	newins - 30-"${PN}"-inotify-watches.conf <<<"fs.inotify.max_user_watches = 524288"
+}

diff --git a/dev-util/goland/goland-2025.1.ebuild b/dev-util/goland/goland-2025.1.ebuild
new file mode 100644
index 000000000000..601ed1c0cfed
--- /dev/null
+++ b/dev-util/goland/goland-2025.1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop wrapper toolchain-funcs
+
+DESCRIPTION="Golang IDE by JetBrains"
+HOMEPAGE="https://www.jetbrains.com/go/"
+SRC_URI="
+	amd64? ( https://download.jetbrains.com/go/${P}.tar.gz )
+	arm64? ( https://download.jetbrains.com/go/${P}-aarch64.tar.gz )
+"
+S="${WORKDIR}/GoLand-${PV}"
+LICENSE="|| ( JetBrains-business JetBrains-classroom JetBrains-educational JetBrains-individual )
+	Apache-2.0
+	BSD
+	CC0-1.0
+	CDDL
+	CDDL-1.1
+	EPL-1.0
+	GPL-2
+	GPL-2-with-classpath-exception
+	ISC
+	LGPL-2.1
+	LGPL-3
+	MIT
+	MPL-1.1
+	OFL-1.1
+	ZLIB
+"
+SLOT="0/2025"
+KEYWORDS="~amd64 ~arm64"
+IUSE="wayland"
+
+RESTRICT="bindist mirror"
+QA_PREBUILT="opt/${P}/*"
+
+BDEPEND="
+	dev-util/debugedit
+	dev-util/patchelf
+"
+RDEPEND="
+	>=virtual/jre-17:*
+	dev-lang/go
+	dev-libs/wayland
+	sys-libs/pam
+	sys-process/audit
+"
+
+src_prepare() {
+	tc-export OBJCOPY
+	default
+
+	local remove_me=(
+		lib/async-profiler/aarch64
+		plugins/go-plugin/lib/dlv/linuxarm/dlv
+		plugins/go-plugin/lib/dlv/linuxarmmusl/dlv
+	)
+
+	rm -rv "${remove_me[@]}" || die
+
+	# excepting files that should be kept for remote plugins
+	local skip_nonx86_files=(
+		"./plugins/platform-ijent-impl/ijent-aarch64-unknown-linux-musl-release"
+		"./plugins/clion-radler/DotFiles/linux-musl-arm64/jb_zip_unarchiver"
+		"./plugins/clion-radler/DotFiles/linux-arm/jb_zip_unarchiver"
+		"./plugins/clion-radler/DotFiles/linux-musl-arm/jb_zip_unarchiver"
+		"./plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-arm64"
+	)
+	# removing debug symbols and relocating debug files as per #876295
+	# we're escaping all the files that contain $() in their name
+	# as they should not be executed
+	find . -type f ! -name '*$(*)*' -print0 | while IFS= read -r -d '' file; do
+		for skip in "${skip_nonx86_files[@]}"; do
+			[[ ${file} == "${skip}" ]] && continue 2
+		done
+		if file "${file}" | grep -qE "ELF (32|64)-bit"; then
+			${OBJCOPY} --remove-section .note.gnu.build-id "${file}" || die
+			debugedit -b "${EPREFIX}/opt/${PN}" -d "/usr/lib/debug" -i "${file}" || die
+		fi
+	done
+
+	patchelf --set-rpath '$ORIGIN' "jbr/lib/libjcef.so" || die
+	patchelf --set-rpath '$ORIGIN' "jbr/lib/jcef_helper" || die
+
+	# As per https://blog.jetbrains.com/platform/2024/07/wayland-support-preview-in-2024-2/ for full wayland support
+	if use wayland; then
+		echo "-Dawt.toolkit.name=WLToolkit" >> bin/webstorm64.vmoptions || die
+	fi
+}
+
+src_install() {
+	local dir="/opt/${P}"
+
+	insinto "${dir}"
+	doins -r *
+	fperms 755 "${dir}"/bin/{format.sh,goland.sh,inspect.sh,ltedit.sh,remote-dev-server.sh,restarter,fsnotifier}
+	fperms 755 "${dir}"/jbr/bin/{java,javac,javadoc,jcmd,jdb,jfr,jhsdb,jinfo,jmap,jps,jrunscript,jstack,jstat,keytool,rmiregistry,serialver}
+	fperms 755 "${dir}"/jbr/lib/{chrome-sandbox,jcef_helper,jexec,jspawnhelper}
+	fperms 755 "${dir}"/plugins/go-plugin/lib/dlv/linux/dlv
+
+	make_wrapper "${PN}" "${dir}/bin/${PN}.sh"
+	newicon "bin/${PN}.png" "${PN}.png"
+	make_desktop_entry "${PN}" "Goland ${PV}" "${PN}" "Development;IDE;"
+
+	# recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
+	insinto /usr/lib/sysctl.d
+	newins - 30-"${PN}"-inotify-watches.conf <<<"fs.inotify.max_user_watches = 524288"
+}


             reply	other threads:[~2025-04-29 19:05 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-29 19:05 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-10-09  6:24 [gentoo-commits] repo/gentoo:master commit in: dev-util/goland/ Viorel Munteanu
2025-09-26  8:49 Arthur Zamarin
2025-09-25  7:02 Viorel Munteanu
2025-08-10 14:18 Viorel Munteanu
2025-08-10 14:18 Viorel Munteanu
2025-07-17 11:43 Viorel Munteanu
2025-07-17 11:43 Viorel Munteanu
2025-07-12 16:14 Sam James
2025-07-12 12:41 Arthur Zamarin
2025-06-24  1:18 Sam James
2025-06-24  1:18 Sam James
2025-06-23  0:21 Sam James
2025-06-08 12:24 Viorel Munteanu
2025-04-29 19:05 Sam James
2025-02-22  9:38 Ulrich Müller
2024-05-13 17:33 Ulrich Müller
2024-05-13 16:11 Ulrich Müller
2023-03-23 19:09 Jason A. Donenfeld
2022-10-08 20:01 Sam James
2022-03-17  3:50 Jason A. Donenfeld
2021-12-14 23:47 Jason A. Donenfeld
2021-08-08 13:22 Jason A. Donenfeld
2021-06-13 17:11 Jason A. Donenfeld
2021-05-10 17:07 Jason A. Donenfeld
2021-02-08 15:09 Jason A. Donenfeld
2021-02-08 15:06 Jason A. Donenfeld
2020-12-18 18:28 Jason A. Donenfeld
2020-12-18 18:18 Jason A. Donenfeld
2020-11-17 17:23 Jason A. Donenfeld
2020-06-07  4:32 Jason A. Donenfeld
2020-04-05  7:01 Jason A. Donenfeld
2020-03-14  3:26 Jason A. Donenfeld
2019-12-10 18:11 Jason A. Donenfeld
2019-12-05 20:01 Jason A. Donenfeld
2019-12-05 19:59 Jason A. Donenfeld
2019-09-13  7:10 Michał Górny
2019-05-21  8:53 Jason A. Donenfeld
2019-05-14  9:25 Jason A. Donenfeld
2019-02-28  3:07 Jason A. Donenfeld
2019-01-27 15:13 Pacho Ramos
2018-07-30 21:56 Manuel Rüger
2018-07-05 11:34 Manuel Rüger
2018-06-27 11:49 Manuel Rüger
2018-06-02 12:50 Manuel Rüger
2018-06-02 12:28 Manuel Rüger
2018-05-14 17:12 Manuel Rüger
2018-05-14 17:12 Manuel Rüger
2018-04-16 14:25 Manuel Rüger
2018-03-30 17:25 Manuel Rüger
2018-03-27 11:18 Manuel Rüger
2018-03-27 11:18 Manuel Rüger
2018-02-14 22:56 Manuel Rüger
2018-02-14 22:56 Manuel Rüger
2018-01-15 13:18 Manuel Rüger
2018-01-15 13:18 Manuel Rüger
2017-12-01 14:35 Manuel Rüger
2017-11-03 14:48 Manuel Rüger

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=1745953376.b078d4d4d688c1b7e061510c6f02a10595944186.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.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