1 |
1 |
# Copyright 1999-2022 Gentoo Authors
|
2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
3 |
3 |
|
4 |
|
EAPI=7
|
|
4 |
EAPI=8
|
5 |
5 |
|
6 |
|
inherit desktop readme.gentoo-r1 wrapper xdg-utils
|
|
6 |
inherit desktop readme.gentoo-r1 wrapper
|
7 |
7 |
|
|
8 |
MY_PN=${PN/-professional/}
|
8 |
9 |
DESCRIPTION="Intelligent Python IDE with unique code assistance and analysis"
|
9 |
10 |
HOMEPAGE="https://www.jetbrains.com/pycharm/"
|
10 |
11 |
SRC_URI="https://download.jetbrains.com/python/${P}.tar.gz"
|
|
12 |
S="${WORKDIR}/${MY_PN}-${PV}"
|
11 |
13 |
|
12 |
14 |
LICENSE="PyCharm_Academic PyCharm_Classroom PyCharm PyCharm_OpenSource PyCharm_Preview"
|
13 |
15 |
SLOT="0"
|
14 |
|
KEYWORDS="amd64 x86"
|
|
16 |
KEYWORDS="~amd64 ~x86"
|
15 |
17 |
IUSE="+bundled-jdk"
|
16 |
|
|
17 |
|
BDEPEND="dev-util/patchelf"
|
|
18 |
RESTRICT="mirror"
|
18 |
19 |
|
19 |
20 |
RDEPEND="!bundled-jdk? ( >=virtual/jre-1.8 )
|
20 |
|
app-arch/brotli
|
21 |
|
app-arch/zstd
|
22 |
|
app-crypt/p11-kit
|
23 |
|
dev-libs/fribidi
|
24 |
|
dev-libs/glib
|
25 |
|
dev-libs/json-c
|
26 |
|
dev-libs/libbsd
|
27 |
|
dev-libs/libdbusmenu
|
28 |
|
dev-libs/nss
|
29 |
21 |
dev-python/pip
|
30 |
22 |
media-fonts/dejavu
|
31 |
|
media-gfx/graphite2
|
|
23 |
|| (
|
|
24 |
>=app-accessibility/at-spi2-core-2.46.0:2
|
|
25 |
( app-accessibility/at-spi2-atk dev-libs/atk )
|
|
26 |
)
|
|
27 |
dev-libs/expat
|
|
28 |
dev-libs/glib:2
|
|
29 |
dev-libs/nspr
|
|
30 |
dev-libs/nss
|
32 |
31 |
media-libs/alsa-lib
|
33 |
|
media-libs/fontconfig
|
34 |
|
media-libs/freetype:2=
|
35 |
|
media-libs/harfbuzz
|
36 |
|
media-libs/libglvnd
|
37 |
|
media-libs/libpng:0=
|
38 |
|
net-libs/gnutls
|
|
32 |
media-libs/freetype
|
|
33 |
media-libs/mesa[gbm(+)]
|
39 |
34 |
net-print/cups
|
40 |
35 |
sys-apps/dbus
|
41 |
|
sys-libs/libcap
|
42 |
36 |
sys-libs/zlib
|
43 |
|
virtual/jpeg:0=
|
|
37 |
x11-libs/libdrm
|
44 |
38 |
x11-libs/libX11
|
45 |
39 |
x11-libs/libxcb
|
|
40 |
x11-libs/libXcomposite
|
|
41 |
x11-libs/libXcursor
|
|
42 |
x11-libs/libXdamage
|
46 |
43 |
x11-libs/libXext
|
|
44 |
x11-libs/libXfixes
|
47 |
45 |
x11-libs/libXi
|
|
46 |
x11-libs/libxkbcommon
|
48 |
47 |
x11-libs/libXrandr
|
49 |
48 |
x11-libs/libXrender
|
|
49 |
x11-libs/libxshmfence
|
50 |
50 |
x11-libs/libXtst
|
51 |
|
x11-libs/pango
|
|
51 |
x11-libs/libXxf86vm
|
52 |
52 |
"
|
|
53 |
BDEPEND="dev-util/patchelf"
|
53 |
54 |
|
54 |
|
RESTRICT="mirror"
|
55 |
|
|
56 |
|
QA_PREBUILT="opt/${P}/*"
|
57 |
|
|
58 |
|
MY_PN=${PN/-professional/}
|
59 |
|
S="${WORKDIR}/${MY_PN}-${PV}"
|
|
55 |
QA_PREBUILT="opt/${PN}/*"
|
60 |
56 |
|
61 |
57 |
src_prepare() {
|
62 |
58 |
default
|
|
59 |
local remove_me=(
|
|
60 |
help/ReferenceCardForMac.pdf
|
|
61 |
lib/pty4j-native/linux/aarch64
|
|
62 |
lib/pty4j-native/linux/arm
|
|
63 |
lib/pty4j-native/linux/mips64el
|
|
64 |
lib/pty4j-native/linux/ppc64le
|
|
65 |
lib/pty4j-native/linux/$(usex amd64 x86 x86_64)
|
|
66 |
plugins/remote-dev-server/selfcontained
|
|
67 |
plugins/performanceTesting/bin/libyjpagent.so
|
|
68 |
plugins/performanceTesting/bin/*.dll
|
|
69 |
plugins/performanceTesting/bin/libyjpagent.dylib
|
|
70 |
plugins/python/helpers/pydev/pydevd_attach_to_process/attach_linux_x86.so
|
|
71 |
plugins/wsl-fs-helper
|
|
72 |
)
|
63 |
73 |
|
64 |
|
rm -vf "${S}"/help/ReferenceCardForMac.pdf || die
|
65 |
|
|
66 |
|
rm -vf "${S}"/bin/fsnotifier || die
|
67 |
|
rm -vf "${S}"/bin/phpstorm.vmoptions || die
|
68 |
|
|
69 |
|
rm -vf "${S}"/plugins/performanceTesting/bin/libyjpagent.so || die
|
70 |
|
rm -vf "${S}"/plugins/performanceTesting/bin/*.dll || die
|
71 |
|
rm -vf "${S}"/plugins/performanceTesting/bin/libyjpagent.dylib || die
|
72 |
|
rm -vrf "${S}"/lib/pty4j-native/linux/{aarch64,mips64el,ppc64le,x86} || die
|
73 |
|
rm -vf "${S}"/plugins/python-ce/helpers/pydev/pydevd_attach_to_process/attach_linux_x86.so
|
|
74 |
rm -rv "${remove_me[@]}" || die
|
74 |
75 |
|
75 |
76 |
sed -i \
|
76 |
77 |
-e "\$a\\\\" \
|
... | ... | |
78 |
79 |
-e "\$a# Disable automatic updates as these are handled through Gentoo's" \
|
79 |
80 |
-e "\$a# package manager. See bug #704494" \
|
80 |
81 |
-e "\$a#-----------------------------------------------------------------------" \
|
81 |
|
-e "\$aide.no.platform.update=Gentoo" bin/idea.properties
|
|
82 |
-e "\$aide.no.platform.update=Gentoo" \
|
|
83 |
bin/idea.properties || die
|
82 |
84 |
|
83 |
|
for file in "jbr/lib/"/{libjcef.so,jcef_helper}
|
84 |
|
do
|
85 |
|
if [[ -f "${file}" ]]; then
|
|
85 |
local file
|
|
86 |
for file in jbr/lib/{libjcef.so,jcef_helper}; do
|
|
87 |
if [[ -f ${file} ]]; then
|
86 |
88 |
patchelf --set-rpath '$ORIGIN' ${file} || die
|
87 |
89 |
fi
|
88 |
90 |
done
|
89 |
91 |
}
|
90 |
92 |
|
91 |
93 |
src_install() {
|
92 |
|
local DIR="/opt/${PN}"
|
93 |
|
local JRE_DIR="jbr"
|
|
94 |
local dir="/opt/${PN}"
|
|
95 |
local jre_dir="jbr"
|
94 |
96 |
|
95 |
|
insinto ${DIR}
|
|
97 |
insinto ${dir}
|
96 |
98 |
doins -r *
|
97 |
99 |
|
98 |
100 |
if ! use bundled-jdk; then
|
99 |
|
rm -r "${JRE_DIR}" || die
|
|
101 |
rm -r "${jre_dir}" || die
|
100 |
102 |
fi
|
101 |
103 |
|
102 |
|
fperms 755 "${DIR}"/bin/{format.sh,fsnotifier64,inspect.sh,ltedit.sh,pycharm.sh,printenv.py,restart.py}
|
|
104 |
fperms 755 ${dir}/bin/{format.sh,fsnotifier,inspect.sh,ltedit.sh,printenv.py,pycharm.sh,restart.py}
|
103 |
105 |
|
104 |
|
fperms 755 "${DIR}"/"${JRE_DIR}"/bin/{jaotc,java,javac,jcmd,jdb,jfr,jhsdb,jjs,jmap,jps,jrunscript,jstack,jstat,keytool,pack200,rmid,rmiregistry,serialver,unpack200}
|
105 |
|
fperms 755 "${DIR}"/"${JRE_DIR}"/lib/{chrome-sandbox,jcef_helper,jexec,jspawnhelper}
|
|
106 |
fperms 755 ${dir}/${jre_dir}/bin/{jaotc,java,javac,jcmd,jdb,jfr,jhsdb,jinfo,jjs,jmap,jps,jrunscript,jstack,jstat,keytool,pack200,rmid,rmiregistry,serialver,unpack200}
|
|
107 |
fperms 755 ${dir}/${jre_dir}/lib/{chrome-sandbox,jcef_helper,jexec,jspawnhelper}
|
106 |
108 |
|
107 |
|
make_wrapper "${PN}" "${DIR}/bin/pycharm.sh"
|
|
109 |
make_wrapper ${PN} ${dir}/bin/pycharm.sh
|
108 |
110 |
newicon bin/${MY_PN}.png ${PN}.png
|
109 |
111 |
make_desktop_entry ${PN} ${PN} ${PN}
|
110 |
112 |
|
111 |
113 |
readme.gentoo_create_doc
|
112 |
114 |
|
113 |
115 |
# recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
|
114 |
|
dodir /etc/sysctl.d/
|
115 |
|
echo "fs.inotify.max_user_watches = 524288" > "${D}/etc/sysctl.d/30-idea-inotify-watches.conf" || die
|
|
116 |
insinto /usr/lib/sysctl.d
|
|
117 |
newins - 30-idea-inotify-watches.conf <<<"fs.inotify.max_user_watches = 524288"
|
116 |
118 |
}
|
117 |
119 |
|
118 |
120 |
pkg_postinst() {
|
119 |
|
xdg_icon_cache_update
|
120 |
|
}
|
121 |
|
|
122 |
|
pkg_postrm() {
|
123 |
|
xdg_icon_cache_update
|
|
121 |
readme.gentoo_print_elog
|
124 |
122 |
}
|