1 |
commit: 06657c3ba2d9f799484b012e2bb9764e0d06dd2e |
2 |
Author: Mike Pagano <mpagano <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Dec 1 13:13:20 2022 +0000 |
4 |
Commit: Mike Pagano <mpagano <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Dec 1 13:13:20 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=06657c3b |
7 |
|
8 |
dev-util/idea-community: add 2022.3 |
9 |
|
10 |
Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org> |
11 |
|
12 |
dev-util/idea-community/Manifest | 1 + |
13 |
.../idea-community/idea-community-2022.3.ebuild | 138 +++++++++++++++++++++ |
14 |
2 files changed, 139 insertions(+) |
15 |
|
16 |
diff --git a/dev-util/idea-community/Manifest b/dev-util/idea-community/Manifest |
17 |
index 3085cf45eea7..50d23d367b91 100644 |
18 |
--- a/dev-util/idea-community/Manifest |
19 |
+++ b/dev-util/idea-community/Manifest |
20 |
@@ -1 +1,2 @@ |
21 |
DIST idea-community-2022.2.4.tar.gz 862568767 BLAKE2B 4abb509221b4e029d8b0fdd76be98bf26d60cbfe3af79a4c344e1a3c0a62298acc3c43b64dd209090edf330f4c67eb00555032ec64e873a9ac426032312997ea SHA512 0abdab96e092b96f63047cad44bb8146b961b2a237e0cb0f39a1f41a5193b663a54bcaffcc5dbf55f80d9db74822017c919ff8a8203c7fef04690968ea97463a |
22 |
+DIST idea-community-2022.3.tar.gz 947236841 BLAKE2B 94fa1d46366b5131cdecdcabc089e1a2199c9b32b29b4aa7d78696e234ead788a83f70e86dfd4a1e7538d1a6738a966f6d420ab69f62e609f4b35a51a6cb3c71 SHA512 80795d8a48854d9b983efbc3e3b0b47fa5240fd668a17234224a5d8bc092d4a65085a3c2bbd960b37efa81776805a8d1534fa760d45c5a907b132f6c8b3359da |
23 |
|
24 |
diff --git a/dev-util/idea-community/idea-community-2022.3.ebuild b/dev-util/idea-community/idea-community-2022.3.ebuild |
25 |
new file mode 100644 |
26 |
index 000000000000..683d2f5d76de |
27 |
--- /dev/null |
28 |
+++ b/dev-util/idea-community/idea-community-2022.3.ebuild |
29 |
@@ -0,0 +1,138 @@ |
30 |
+# Copyright 1999-2022 Gentoo Authors |
31 |
+# Distributed under the terms of the GNU General Public License v2 |
32 |
+ |
33 |
+EAPI=8 |
34 |
+inherit desktop wrapper |
35 |
+ |
36 |
+DESCRIPTION="A complete toolset for web, mobile and enterprise development" |
37 |
+HOMEPAGE="https://www.jetbrains.com/idea" |
38 |
+SRC_URI="https://download.jetbrains.com/idea/ideaIC-${PV}.tar.gz -> ${P}.tar.gz" |
39 |
+ |
40 |
+LICENSE="Apache-2.0 BSD BSD-2 CC0-1.0 CC-BY-2.5 CDDL-1.1 |
41 |
+ codehaus-classworlds CPL-1.0 EPL-1.0 EPL-2.0 |
42 |
+ GPL-2 GPL-2-with-classpath-exception ISC |
43 |
+ JDOM LGPL-2.1 LGPL-2.1+ LGPL-3-with-linking-exception MIT |
44 |
+ MPL-1.0 MPL-1.1 OFL ZLIB" |
45 |
+ |
46 |
+SLOT="0" |
47 |
+KEYWORDS="~amd64 ~arm64" |
48 |
+ |
49 |
+DEPEND=" |
50 |
+ || ( |
51 |
+ >=dev-java/openjdk-17.0.3_p7-r1:17 |
52 |
+ >=dev-java/openjdk-bin-17.0.3_p7:17 |
53 |
+ )" |
54 |
+ |
55 |
+RDEPEND="${DEPEND} |
56 |
+ sys-libs/glibc |
57 |
+ media-libs/harfbuzz |
58 |
+ dev-java/jansi-native |
59 |
+ dev-libs/libdbusmenu" |
60 |
+ |
61 |
+BDEPEND="dev-util/patchelf" |
62 |
+RESTRICT="splitdebug" |
63 |
+S="${WORKDIR}/idea-IC-${PV}" |
64 |
+ |
65 |
+QA_PREBUILT="opt/${PN}/*" |
66 |
+ |
67 |
+PATCHES=( |
68 |
+ "${FILESDIR}/${PN}-jdk.patch" |
69 |
+) |
70 |
+ |
71 |
+src_unpack() { |
72 |
+ |
73 |
+ default_src_unpack |
74 |
+ if [ ! -d "$S" ]; then |
75 |
+ einfo "Renaming source directory to predictable name..." |
76 |
+ mv $(ls "${WORKDIR}") "idea-IC-${PV}" || die |
77 |
+ fi |
78 |
+} |
79 |
+ |
80 |
+src_prepare() { |
81 |
+ |
82 |
+ default_src_prepare |
83 |
+ |
84 |
+ if use amd64; then |
85 |
+ JRE_DIR=jre64 |
86 |
+ else |
87 |
+ JRE_DIR=jre |
88 |
+ fi |
89 |
+ |
90 |
+ PLUGIN_DIR="${S}/${JRE_DIR}/lib/" |
91 |
+ |
92 |
+ # rm LLDBFrontEnd after licensing questions with Gentoo License Team |
93 |
+ rm -vf "${S}"/plugins/Kotlin/bin/linux/LLDBFrontend |
94 |
+ rm -vf ${PLUGIN_DIR}/libavplugin* |
95 |
+ rm -vf "${S}"/plugins/maven/lib/maven3/lib/jansi-native/*/libjansi* |
96 |
+ rm -vrf "${S}"/lib/pty4j-native/linux/ppc64le |
97 |
+ rm -vf "${S}"/bin/libdbm64* |
98 |
+ rm -vf "${S}"/lib/pty4j-native/linux/mips64el/libpty.so |
99 |
+ rm -vf "${S}"/plugins/cwm-plugin/quiche-native/linux-aarch64/libquiche.so |
100 |
+ |
101 |
+ if [[ -d "${S}"/"${JRE_DIR}" ]]; then |
102 |
+ for file in "${PLUGIN_DIR}"/{libfxplugins.so,libjfxmedia.so} |
103 |
+ do |
104 |
+ if [[ -f "$file" ]]; then |
105 |
+ patchelf --set-rpath '$ORIGIN' $file || die |
106 |
+ fi |
107 |
+ done |
108 |
+ fi |
109 |
+ |
110 |
+ if use arm64; then |
111 |
+ patchelf --replace-needed libc.so libc.so.6 "${S}"/lib/pty4j-native/linux/aarch64/libpty.so || |
112 |
+ die "Unable to patch libpty for libc" |
113 |
+ else |
114 |
+ rm -vf "${S}"/lib/pty4j-native/linux/{aarch64,arm,x86}/libpty.so |
115 |
+ fi |
116 |
+ |
117 |
+ sed -i \ |
118 |
+ -e "\$a\\\\" \ |
119 |
+ -e "\$a#-----------------------------------------------------------------------" \ |
120 |
+ -e "\$a# Disable automatic updates as these are handled through Gentoo's" \ |
121 |
+ -e "\$a# package manager. See bug #704494" \ |
122 |
+ -e "\$a#-----------------------------------------------------------------------" \ |
123 |
+ -e "\$aide.no.platform.update=Gentoo" bin/idea.properties |
124 |
+ |
125 |
+ eapply_user |
126 |
+} |
127 |
+ |
128 |
+src_install() { |
129 |
+ local dir="/opt/${PN}" |
130 |
+ local dst="${D}${dir}" |
131 |
+ |
132 |
+ insinto "${dir}" |
133 |
+ doins -r * |
134 |
+ fperms 755 "${dir}"/bin/{format.sh,idea.sh,inspect.sh,restart.py,fsnotifier} |
135 |
+ if use amd64; then |
136 |
+ JRE_DIR=jre64 |
137 |
+ else |
138 |
+ JRE_DIR=jre |
139 |
+ fi |
140 |
+ |
141 |
+ JRE_BINARIES="jaotc java javapackager jjs jrunscript keytool pack200 rmid rmiregistry unpack200" |
142 |
+ if [[ -d ${JRE_DIR} ]]; then |
143 |
+ for jrebin in $JRE_BINARIES; do |
144 |
+ fperms 755 "${dir}"/"${JRE_DIR}"/bin/"${jrebin}" |
145 |
+ done |
146 |
+ fi |
147 |
+ |
148 |
+ # bundled script is always lowercase, and doesn't have -ultimate, -professional suffix. |
149 |
+ local bundled_script_name="${PN%-*}.sh" |
150 |
+ make_wrapper "${PN}" "${dir}/bin/$bundled_script_name" || die |
151 |
+ |
152 |
+ local pngfile="$(find ${dst}/bin -maxdepth 1 -iname '*.png')" |
153 |
+ newicon $pngfile "${PN}.png" || die "we died" |
154 |
+ |
155 |
+ make_desktop_entry "${PN}" "IntelliJ Idea Community Edition" "${PN}" "Development;IDE;" |
156 |
+ |
157 |
+ # recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit |
158 |
+ mkdir -p "${D}/etc/sysctl.d/" || die |
159 |
+ echo "fs.inotify.max_user_watches = 524288" > "${D}/etc/sysctl.d/30-idea-inotify-watches.conf" || die |
160 |
+ |
161 |
+ # remove bundled harfbuzz |
162 |
+ rm -f "${D}"/lib/libharfbuzz.so || die "Unable to remove bundled harfbuzz" |
163 |
+ |
164 |
+ # remove bundled java |
165 |
+ rm -r ${dst}/jbr || die "Unable to remove bundled java" |
166 |
+ |
167 |
+} |