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: http://download.jetbrains.com/idea/ideaIU-%{version}.tar.gz
10 # NoSource0-md5: 295d92ac0f5e42e6c3727379dfd58b48
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.596
18 Requires: %{name}-libs = %{version}-%{release}
19 Requires: desktop-file-utils
22 Suggests: %{name}-jre = %{version}-%{release}
24 Suggests: java-jdbc-mysql
28 Conflicts: intellij-idea
29 Conflicts: java-jdbc-mysql < 5.1.22
30 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
32 # disable debuginfo package, not useful
33 %define _enable_debug_packages 0
35 # don't strip fsnotifier, it's size is checked for "outdated binary"
36 # https://bugs.archlinux.org/task/34703
37 # 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
38 %define _noautostrip .*/fsnotifier.*
40 # use /usr/lib, 64bit files do not conflict with 32bit files (64 suffix)
41 # this allows to install both arch files and to use 32bit jdk on 64bit os
42 %define _appdir %{_prefix}/lib/%{proddir}
44 # rpm5 is so damn slow, so i use this for development:
45 %define _noautoreqfiles .*\.jar
47 %define _noautoreq_java ClassDataVersion
50 IntelliJ IDEA is a code-centric IDE focused on developer productivity.
51 The editor deeply understands your code and knows its way around the
52 codebase, makes great suggestions right when you need them, and is
53 always ready to help you shape your code.
56 Summary: Libraries for IntelliJ IDEA
58 %if "%{_rpmversion}" >= "5"
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.*,#!%{__python},'
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/jdb
172 %attr(755,root,root) %{_appdir}/jbr/bin/jfr
173 %attr(755,root,root) %{_appdir}/jbr/bin/jhsdb
174 %attr(755,root,root) %{_appdir}/jbr/bin/jjs
175 %attr(755,root,root) %{_appdir}/jbr/bin/jrunscript
176 %attr(755,root,root) %{_appdir}/jbr/bin/keytool
177 %attr(755,root,root) %{_appdir}/jbr/bin/pack200
178 %attr(755,root,root) %{_appdir}/jbr/bin/rmid
179 %attr(755,root,root) %{_appdir}/jbr/bin/rmiregistry
180 %attr(755,root,root) %{_appdir}/jbr/bin/serialver
181 %attr(755,root,root) %{_appdir}/jbr/bin/unpack200
183 %{_appdir}/jbr/include
186 %{_appdir}/jbr/release