repo/gentoo:master commit in: dev-util/pycharm-professional/

"Viorel Munteanu" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1786199605.bcb2f63f7ff019e2adf94ad1abd455fb8531062c.ceamac@gentoo>
commit:     bcb2f63f7ff019e2adf94ad1abd455fb8531062c
Author:     Stefan Cristian B. <stefan.cristian+git <AT> rogentos <DOT> ro>
AuthorDate: Fri Jul 31 09:30:39 2026 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sat Aug  8 14:33:25 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bcb2f63f

dev-util/pycharm-professional: bump 2026.2.0.1

* drop local from skip_remote_files, it was empty by the
  time we got to src_install dostrip
* patchelf libcef.so
* moved the bundled CEF* files into plugins
* we keep jexec, jspawnhelper, cef_server, chrome-sandbox
  to the dir folder
* we are preparing to rename all these ebuilds from
  pycharm-professional to pycharm soon enough.

Signed-off-by: Stefan Cristian B. <stefan.cristian+git <AT> rogentos.ro>
Part-of: https://github.com/gentoo/gentoo/pull/46633
Closes: https://github.com/gentoo/gentoo/pull/46633
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 dev-util/pycharm-professional/Manifest             |   2 +
 .../pycharm-professional-2026.2.0.1.ebuild         | 237 +++++++++++++++++++++
 2 files changed, 239 insertions(+)

diff --git a/dev-util/pycharm-professional/Manifest b/dev-util/pycharm-professional/Manifest
index e01d9a895bfc..65d72de7c73d 100644
--- a/dev-util/pycharm-professional/Manifest
+++ b/dev-util/pycharm-professional/Manifest
@@ -8,3 +8,5 @@ DIST pycharm-professional-2025.3.4-aarch64.tar.gz 1206154154 BLAKE2B 5bf4bd4f274
 DIST pycharm-professional-2025.3.4.tar.gz 1210449696 BLAKE2B 5d14d4c2ae6936a26c26ba4e95aa839f600be4763f1a192b85653774dc9d13b377941b53b982913d9ebe5253071ecc049412688e22aaeb493cb6b0d13f3579e6 SHA512 01f15909445c66c125dcf2e7efe9d6f51ed834034920825a5adc6a8cc15c9bd9941bbd01bf7421a3467668e1ff7bcc22a5d70b2efd0372336e65acc3ddfcd88f
 DIST pycharm-professional-2026.1.4-aarch64.tar.gz 1223027753 BLAKE2B 06e4ce90365705252f6c76721e7e7f1de3b559ea31c402a60412b2f844e2c9ba7bb945bb7e9ad4e5ce23c1ff9720c59abe0d03a4f9bf6db7361d55b53356ebaa SHA512 b4df1679a4535732bd0fcf3cedd0b3ff7553d331b1aba39d1d6899d96e672bad66d42623fc3db1da9728fc14cf3e8b79e8965b6a991af29b12748ec5fe97dc0f
 DIST pycharm-professional-2026.1.4.tar.gz 1228087132 BLAKE2B 41a1875edbdeb5b26118ac2137b7c4bd3d342cb1ec4eba1ee62ea16bf88ad75d39ce6beb87a15caff355ebc85a7497efcfbd9d87400aa346fc41f6f2d79673ea SHA512 d9ee4bd62b6ec40f21bafaafd680a4ecc70f893f3c6113e9f18c643233a199adfd31291b1e869662689c82626a77e3486306b1878f6c81c8860ee49679dd85c0
+DIST pycharm-professional-2026.2.0.1-aarch64.tar.gz 1299403672 BLAKE2B cb132047106707fa7a1fcec71be03b27198a89ba563fb7c3df33bab24336872057b6a3b4e1dd4dba50b41bc74feeab4d0c014cec683635fef4bd25bdb7645aea SHA512 adafc15434a935b67813a1dc78db79a213ebd547e02c8c046f21ee0fdf7f6cd6be4c62a0877d64bb39107e049927fb9ec34a46156771fe86914bd9dd2ff9f694
+DIST pycharm-professional-2026.2.0.1.tar.gz 1276337688 BLAKE2B 064027aef010365c78573ee7eed17cfadaba05a24137d4a8bff4b6dffbcf424a6364d63a27727a437421d981a3e33c64b4a840e6fea6fcfeac1b23460a1ee748 SHA512 71af5a66380396856d51bf8c52e59cad9f49461832ae3fb18381bee36c38d2533b1396277ff8d64b431c825a22e5401ac7c526b35c45b87a882936f819c9d23b

diff --git a/dev-util/pycharm-professional/pycharm-professional-2026.2.0.1.ebuild b/dev-util/pycharm-professional/pycharm-professional-2026.2.0.1.ebuild
new file mode 100644
index 000000000000..5aa1f0d82aea
--- /dev/null
+++ b/dev-util/pycharm-professional/pycharm-professional-2026.2.0.1.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop readme.gentoo-r1 toolchain-funcs wrapper xdg
+
+DESCRIPTION="Intelligent Python IDE with unique code assistance and analysis"
+
+# NOTE upstream release info
+# https://data.services.jetbrains.com/products?code=PCP,PCC&release.type=release
+# https://data.services.jetbrains.com/products?code=PCP,PCC&release.type=release&fields=name,releases
+
+HOMEPAGE="https://www.jetbrains.com/pycharm/"
+SRC_URI="
+	amd64? (
+		https://download.jetbrains.com/python/${P}.tar.gz
+	)
+	arm64? (
+		https://download.jetbrains.com/python/${P}-aarch64.tar.gz
+	)
+	x86? (
+		https://download.jetbrains.com/python/${P}.tar.gz
+	)
+"
+
+if [[ ${PN} == *-professional ]]; then
+	S="${WORKDIR}/${PN/%-professional/}-${PV}"
+	LICENSE="|| ( JetBrains-business JetBrains-classroom JetBrains-educational JetBrains-individual )
+	Apache-2.0 BSD BSD-2 CC0-1.0 CC-BY-2.5 CC-BY-3.0 CC-BY-4.0 CPL-1.0 CDDL CDDL-1.1 EPL-1.0 EPL-2.0
+	GPL-2 GPL-2-with-classpath-exception ISC JDOM LGPL-2.1 LGPL-3 MIT MPL-1.1 MPL-2.0 OFL-1.1
+	PYTHON Unicode-DFS-2016 Unlicense UPL-1.0 ZLIB"
+else
+	LICENSE="|| ( JetBrains-business JetBrains-classroom JetBrains-educational JetBrains-individual )
+	Apache-2.0 BSD BSD-2 CC0-1.0 CC-BY-2.5 CC-BY-3.0 CPL-1.0 CDDL-1.1 EPL-1.0 GPL-2
+	GPL-2-with-classpath-exception ISC JDOM JSON LGPL-2+ LGPL-2.1 LGPL-3 MIT MPL-1.1 MPL-2.0
+	OFL-1.1 UPL-1.0 ZLIB"
+fi
+
+SLOT="0/2026"
+KEYWORDS="-* ~amd64 ~arm64 ~x86"
+IUSE="+bundled-jdk"
+
+if [[ ${PN} == *-professional ]]; then
+	IUSE+=" +bundled-xvfb"
+fi
+
+BDEPEND="dev-util/debugedit
+	dev-util/patchelf
+"
+
+# NOTE
+#  The remote-dev-server present in pycharm-professional contains most of the
+#  libraries need for the bundled jdk. These are not in the RUNPATH of the jdk.
+#  So the dependencies are actually needed.
+RDEPEND="
+	!bundled-jdk? (
+		>=virtual/jre-17:*
+	)
+	bundled-jdk? (
+		app-accessibility/at-spi2-core:2
+		dev-libs/expat
+		dev-libs/glib:2
+		dev-libs/nspr
+		dev-libs/nss
+		dev-libs/wayland
+		media-libs/alsa-lib
+		media-libs/freetype
+		media-libs/mesa
+		net-print/cups
+		sys-apps/dbus
+		virtual/zlib:=
+		x11-libs/cairo
+		x11-libs/libX11
+		x11-libs/libXcomposite
+		x11-libs/libXcursor
+		x11-libs/libXdamage
+		x11-libs/libXext
+		x11-libs/libXfixes
+		x11-libs/libXi
+		x11-libs/libXrandr
+		x11-libs/libXrender
+		x11-libs/libXtst
+		x11-libs/libXxf86vm
+		x11-libs/libdrm
+		x11-libs/libxcb
+		x11-libs/libxkbcommon
+		x11-libs/pango
+	)
+"
+
+if [[ ${PN} == *-professional ]]; then
+RDEPEND+="
+	bundled-xvfb? (
+		dev-libs/libpcre2
+		sys-libs/pam
+		sys-process/audit
+	)
+	!bundled-xvfb? (
+		x11-base/xorg-server[xvfb]
+	)
+"
+fi
+
+QA_PREBUILT="opt/${PN}/*"
+
+src_prepare() {
+	tc-export OBJCOPY
+	default
+
+	rm -v "${S}"/help/ReferenceCardForMac.pdf || die
+	rm -v "${S}"/plugins/python-ce/helpers/pydev/_pydevd_{bundle,frame_eval}/*{darwin,win32}* || die
+
+	if ! use amd64; then
+		rm -v  "${S}"/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_amd64.so || die
+		if [[ -d "${S}"/lib/async-profiler/ ]]; then
+			rm -v  "${S}"/lib/async-profiler/amd64/libasyncProfiler.so || die
+		fi
+	fi
+	if ! use arm64; then
+		rm -v  "${S}"/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_aarch64.so || die
+		if [[ -d "${S}"/lib/async-profiler/ ]]; then
+			rm -v  "${S}"/lib/async-profiler/aarch64/libasyncProfiler.so || die
+		fi
+	fi
+	if ! use x86; then
+		rm -v  "${S}"/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_x86.so || die
+	fi
+
+	sed -i \
+		-e "\$a\\\\" \
+		-e "\$a#-----------------------------------------------------------------------" \
+		-e "\$a# Disable automatic updates as these are handled through Gentoo's" \
+		-e "\$a# package manager. See bug #704494" \
+		-e "\$a#-----------------------------------------------------------------------" \
+		-e "\$aide.no.platform.update=Gentoo" bin/idea.properties
+
+	# excepting files from different architectures that should be kept for remote plugins
+	if ! use arm64; then
+		skip_remote_files=(
+			"plugins/platform-ijent-impl/ijent-aarch64-unknown-linux-musl-release"
+			"plugins/platform-ijent-bundledBinaries/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"
+		)
+	elif ! use amd64 ; then
+		skip_remote_files=(
+			"plugins/platform-ijent-impl/ijent-x86_64-unknown-linux-musl-release"
+			"plugins/platform-ijent-bundledBinaries/ijent-x86_64-unknown-linux-musl-release"
+			"plugins/clion-radler/DotFiles/linux-musl-x64/jb_zip_unarchiver"
+			"plugins/clion-radler/DotFiles/linux-x86/jb_zip_unarchiver"
+			"plugins/clion-radler/DotFiles/linux-musl-x86/jb_zip_unarchiver"
+			"plugins/gateway-plugin/lib/remote-dev-workers/remote-dev-worker-linux-x64"
+		)
+	fi
+	# 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_remote_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' "plugins/jcef-plugin/jcef/"{libjcef.so,libcef.so,jcef_helper} || die
+
+	if use bundled-jdk; then
+		patchelf --set-rpath '$ORIGIN/../lib' "jbr/bin/"* || die
+		patchelf --set-rpath '$ORIGIN:$ORIGIN/server' jbr/lib/lib*.so* || die
+	else
+		rm -r "jbr" || die
+	fi
+
+	if [[ ${PN} == *-professional ]]; then
+		if use bundled-xvfb; then
+			patchelf --set-rpath '$ORIGIN/../lib' "${S}"/plugins/remote-dev-server/selfcontained/bin/{Xvfb,xkbcomp} || die
+			patchelf --set-rpath '$ORIGIN' "${S}"/plugins/remote-dev-server/selfcontained/lib/lib*.so* || die
+		else
+			rm -vr "${S}"/plugins/remote-dev-server/selfcontained || die
+			sed '/export REMOTE_DEV_SERVER_IS_NATIVE_LAUNCHER/a export REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=1' \
+			  -i bin/remote-dev-server.sh || die
+		fi
+	fi
+}
+
+src_configure() {
+	:;
+}
+
+src_compile() {
+	:;
+}
+
+src_install() {
+	local DIR="/opt/${PN}"
+	local JRE_DIR="jbr"
+
+	insinto "${DIR}"
+	doins -r ./*
+
+	fperms 755 "${DIR}"/bin/{format.sh,fsnotifier,inspect.sh,jetbrains_client.sh,ltedit.sh,pycharm,pycharm.sh,restarter}
+
+	if use bundled-jdk; then
+		fperms 755 "${DIR}/${JRE_DIR}"/bin/{java,javac,javadoc,jcmd,jdb,jfr,jhsdb,jinfo,jmap,jps,jrunscript,jstack,jstat,jwebserver,keytool,rmiregistry,serialver}
+		fperms 755 "${DIR}"/"${JRE_DIR}"/lib/{jexec,jspawnhelper}
+	fi
+
+	fperms 755 "${DIR}"/plugins/jcef-plugin/jcef/{cef_server,chrome-sandbox,jcef_helper}
+
+	if [[ ${PN} == *-professional ]]; then
+		if use bundled-xvfb; then
+			fperms 755 "${DIR}"/plugins/remote-dev-server/selfcontained/bin/{Xvfb,xkbcomp}
+		fi
+		fperms 755 "${DIR}" "${DIR}"/bin/remote-dev-server{,.sh}
+	fi
+
+	# we have to strip files that are not related to the current architecture
+	dostrip -x "${skip_remote_files[@]/#//opt/${PN}/}"
+
+	make_wrapper "${PN}" "${DIR}/bin/pycharm"
+	newicon "bin/${PN/%-*/}.png" "${PN}.png"
+	make_desktop_entry "${PN}" "${PN}" "${PN}"
+
+	readme.gentoo_create_doc
+
+	# recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
+	dodir /usr/lib/sysctl.d
+	cat > "${ED}/usr/lib/sysctl.d/30-${PN}-inotify-watches.conf" <<-EOF || die
+		fs.inotify.max_user_watches = 524288
+	EOF
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.