2 %define proddir %{product}-IU
3 Summary: IntelliJ IDEA - The Most Intelligent Java IDE
4 Name: intellij-idea-ultimate
7 License: IntelliJ IDEA Commercial
8 Group: Development/Tools
9 Source0: https://download.jetbrains.com/idea/ideaIU-%{version}.tar.gz
10 # NoSource0-md5: 72c14d3fab43f7add5a6b4e8d37b7646
12 Source1: %{product}.desktop
13 Patch0: xdg-paths.patch
14 URL: http://www.jetbrains.org/
15 BuildRequires: desktop-file-utils
16 BuildRequires: rpm-javaprov
17 BuildRequires: rpmbuild(macros) >= 1.752
18 Requires: %{name}-libs = %{version}-%{release}
19 Requires: desktop-file-utils
22 Suggests: %{name}-jre = %{version}-%{release}
24 Suggests: java-jdbc-mysql
27 Conflicts: intellij-idea
28 Conflicts: java-jdbc-mysql < 5.1.22
29 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
31 # disable debuginfo package, not useful
32 %define _enable_debug_packages 0
34 # don't strip fsnotifier, it's size is checked for "outdated binary"
35 # https://bugs.archlinux.org/task/34703
36 # http://git.jetbrains.org/?p=idea/community.git;a=blob;f=platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java;h=004311b96a35df1ffc2c87baba78a8b2a8809f7d;hb=376b939fd6d6ec4c12191a5f90503d9d62c501da#l173
37 %define _noautostrip .*/fsnotifier.*
39 # use /usr/lib, 64bit files do not conflict with 32bit files (64 suffix)
40 # this allows to install both arch files and to use 32bit jdk on 64bit os
41 %define _appdir %{_prefix}/lib/%{proddir}
43 # rpm5 is so damn slow, so i use this for development:
44 %define _noautoreqfiles .*\.jar
46 %define _noautoreq_java ClassDataVersion
48 %define _noautoprovfiles %{_appdir}
49 %define _noautoreq libcef.so libjli.so
52 IntelliJ IDEA is a code-centric IDE focused on developer productivity.
53 The editor deeply understands your code and knows its way around the
54 codebase, makes great suggestions right when you need them, and is
55 always ready to help you shape your code.
58 Summary: Libraries for IntelliJ IDEA
63 Libraries for IntelliJ IDEA.
66 Summary: Bundled JRE recommended for running IntelliJ IDEA
68 Requires: %{name} = %{version}-%{release}
71 Bundled JRE recommended for running IntelliJ IDEA.
78 # keep only single arch files (don't want to pull 32bit deps by default),
79 # if you want to mix, install rpm from both arch
81 rm bin/%{product}64.vmoptions
85 rm bin/%{product}.vmoptions
88 chmod a+rx bin/*.so bin/fsnotifier*
89 mv bin/%{product}.png .
91 # cleanup backups after patching
92 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
94 grep -r '#!.*env bash' -l plugins/Kotlin/kotlinc/bin | xargs %{__sed} -i -e '1 s,#!.*env bash.*,#!/bin/bash,'
95 grep -r '#!.*env python' -l bin | xargs %{__sed} -i -e '1 s,#!.*env python.*,#!%{__python3},'
98 rm -rf $RPM_BUILD_ROOT
99 install -d $RPM_BUILD_ROOT{%{_appdir},%{_bindir},%{_pixmapsdir},%{_desktopdir}}
100 cp -l build.txt $RPM_BUILD_ROOT/cp-test && l=l && rm -f $RPM_BUILD_ROOT/cp-test
101 cp -a$l bin build.txt help lib license plugins $RPM_BUILD_ROOT%{_appdir}
103 cp -a$l jbr $RPM_BUILD_ROOT%{_appdir}
105 cp -p %{product}.png $RPM_BUILD_ROOT%{_pixmapsdir}/%{product}.png
106 ln -s %{_pixmapsdir}/%{product}.png $RPM_BUILD_ROOT%{_appdir}/bin/%{product}.png
107 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}/%{product}.desktop
108 ln -s %{_appdir}/bin/%{product}.sh $RPM_BUILD_ROOT%{_bindir}/%{product}
110 rm -r $RPM_BUILD_ROOT%{_appdir}/lib/pty4j-native/linux/aarch64
112 %ifnarch %{ix86} %{x8664}
113 rm -r $RPM_BUILD_ROOT%{_appdir}/lib/pty4j-native/linux/x86*
115 rm -r $RPM_BUILD_ROOT%{_appdir}/lib/pty4j-native/linux/{mips64el,ppc64le}
117 desktop-file-validate $RPM_BUILD_ROOT%{_desktopdir}/%{product}.desktop
120 rm -rf $RPM_BUILD_ROOT
123 %update_desktop_database
126 %update_desktop_database
128 # base package contains arch specific files
130 %defattr(644,root,root,755)
131 %doc Install-Linux-tar.txt
132 %attr(755,root,root) %{_bindir}/%{product}
134 %{_appdir}/bin/%{product}*.vmoptions
135 %{_appdir}/bin/%{product}.png
136 %{_appdir}/bin/%{product}.properties
137 %{_appdir}/bin/%{product}.svg
138 %{_appdir}/bin/appletviewer.policy
139 %{_appdir}/bin/log.xml
140 %attr(755,root,root) %{_appdir}/bin/%{product}.sh
141 %attr(755,root,root) %{_appdir}/bin/format.sh
142 %attr(755,root,root) %{_appdir}/bin/inspect.sh
143 %attr(755,root,root) %{_appdir}/bin/fsnotifier*
144 %attr(755,root,root) %{_appdir}/bin/ltedit.sh
145 %attr(755,root,root) %{_appdir}/bin/printenv.py
146 %attr(755,root,root) %{_appdir}/bin/restart.py
148 %attr(755,root,root) %{_appdir}/bin/libdbm64.so
150 %{_desktopdir}/%{product}.desktop
151 %{_pixmapsdir}/%{product}.png
153 # this package contains arch independant files
155 %defattr(644,root,root,755)
165 %defattr(644,root,root,755)
167 %dir %{_appdir}/jbr/bin
168 %attr(755,root,root) %{_appdir}/jbr/bin/jaotc
169 %attr(755,root,root) %{_appdir}/jbr/bin/java
170 %attr(755,root,root) %{_appdir}/jbr/bin/javac
171 %attr(755,root,root) %{_appdir}/jbr/bin/jcmd
172 %attr(755,root,root) %{_appdir}/jbr/bin/jdb
173 %attr(755,root,root) %{_appdir}/jbr/bin/jfr
174 %attr(755,root,root) %{_appdir}/jbr/bin/jhsdb
175 %attr(755,root,root) %{_appdir}/jbr/bin/jinfo
176 %attr(755,root,root) %{_appdir}/jbr/bin/jjs
177 %attr(755,root,root) %{_appdir}/jbr/bin/jmap
178 %attr(755,root,root) %{_appdir}/jbr/bin/jps
179 %attr(755,root,root) %{_appdir}/jbr/bin/jrunscript
180 %attr(755,root,root) %{_appdir}/jbr/bin/jstack
181 %attr(755,root,root) %{_appdir}/jbr/bin/jstat
182 %attr(755,root,root) %{_appdir}/jbr/bin/keytool
183 %attr(755,root,root) %{_appdir}/jbr/bin/pack200
184 %attr(755,root,root) %{_appdir}/jbr/bin/rmid
185 %attr(755,root,root) %{_appdir}/jbr/bin/rmiregistry
186 %attr(755,root,root) %{_appdir}/jbr/bin/serialver
187 %attr(755,root,root) %{_appdir}/jbr/bin/unpack200
189 %{_appdir}/jbr/include
191 %dir %{_appdir}/jbr/lib
192 %{_appdir}/jbr/lib/*.pak
193 %attr(755,root,root) %{_appdir}/jbr/lib/*.so
194 %attr(755,root,root) %{_appdir}/jbr/lib/chrome-sandbox
195 %{_appdir}/jbr/lib/classlist
196 %{_appdir}/jbr/lib/ct.sym
197 %{_appdir}/jbr/lib/icudtl.dat
198 %attr(755,root,root) %{_appdir}/jbr/lib/jcef_helper
199 %attr(755,root,root) %{_appdir}/jbr/lib/jexec
200 %{_appdir}/jbr/lib/jrt-fs.jar
201 %attr(755,root,root) %{_appdir}/jbr/lib/jspawnhelper
202 %{_appdir}/jbr/lib/jvm.cfg
203 %{_appdir}/jbr/lib/modules
204 %{_appdir}/jbr/lib/psfont.properties.ja
205 %{_appdir}/jbr/lib/psfontj2d.properties
206 %{_appdir}/jbr/lib/snapshot_blob.bin
207 %{_appdir}/jbr/lib/tzdb.dat
208 %{_appdir}/jbr/lib/v8_context_snapshot.bin
209 %{_appdir}/jbr/lib/fonts
210 %{_appdir}/jbr/lib/jfr
211 %dir %{_appdir}/jbr/lib/jli
212 %attr(755,root,root) %{_appdir}/jbr/lib/jli/*.so
213 %{_appdir}/jbr/lib/locales
214 %{_appdir}/jbr/lib/security
215 %dir %{_appdir}/jbr/lib/server
216 %attr(755,root,root) %{_appdir}/jbr/lib/server/*.so
217 %{_appdir}/jbr/lib/server/Xusage.txt
218 %dir %{_appdir}/jbr/lib/swiftshader
219 %attr(755,root,root) %{_appdir}/jbr/lib/swiftshader/*.so
220 %{_appdir}/jbr/release