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 via email to