]> git.pld-linux.org Git - packages/intellij-idea-ultimate.git/blob - intellij-idea-ultimate.spec
updated jre packaing to make binaries executable
[packages/intellij-idea-ultimate.git] / intellij-idea-ultimate.spec
1 %define         product idea
2 %define         proddir %{product}-IU
3 Summary:        IntelliJ IDEA - The Most Intelligent Java IDE
4 Name:           intellij-idea-ultimate
5 Version:        2021.1
6 Release:        1
7 License:        IntelliJ IDEA Commercial
8 Group:          Development/Tools
9 Source0:        https://download.jetbrains.com/idea/ideaIU-%{version}.tar.gz
10 # NoSource0-md5:        72c14d3fab43f7add5a6b4e8d37b7646
11 NoSource:       0
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
20 Requires:       jre >= 1.8
21 %ifarch %{x8664}
22 Suggests:       %{name}-jre = %{version}-%{release}
23 %endif
24 Suggests:       java-jdbc-mysql
25 Suggests:       jdk >= 1.6
26 Suggests:       open
27 Conflicts:      intellij-idea
28 Conflicts:      java-jdbc-mysql < 5.1.22
29 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
30
31 # disable debuginfo package, not useful
32 %define         _enable_debug_packages  0
33
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.*
38
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}
42
43 # rpm5 is so damn slow, so i use this for development:
44 %define         _noautoreqfiles .*\.jar
45
46 %define         _noautoreq_java         ClassDataVersion
47
48 %define         _noautoprovfiles        %{_appdir}
49 %define         _noautoreq              libcef.so libjli.so
50
51 %description
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.
56
57 %package libs
58 Summary:        Libraries for IntelliJ IDEA
59 Group:          Libraries/Java
60 BuildArch:      noarch
61
62 %description libs
63 Libraries for IntelliJ IDEA.
64
65 %package jre
66 Summary:        Bundled JRE recommended for running IntelliJ IDEA
67 Group:          Libraries/Java
68 Requires:       %{name} = %{version}-%{release}
69
70 %description jre
71 Bundled JRE recommended for running IntelliJ IDEA.
72
73 %prep
74 %setup -qc
75 mv %{proddir}-*/* .
76 %patch0 -p1
77
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
80 %ifarch %{ix86}
81 rm bin/%{product}64.vmoptions
82 rm bin/fsnotifier64
83 %endif
84 %ifarch %{x8664}
85 rm bin/%{product}.vmoptions
86 rm bin/fsnotifier
87 %endif
88 chmod a+rx bin/*.so bin/fsnotifier*
89 mv bin/%{product}.png .
90
91 # cleanup backups after patching
92 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
93
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},'
96
97 %install
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}
102 %ifarch %{x8664}
103 cp -a$l jbr $RPM_BUILD_ROOT%{_appdir}
104 %endif
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}
109 %ifnarch aarch64
110 rm -r $RPM_BUILD_ROOT%{_appdir}/lib/pty4j-native/linux/aarch64
111 %endif
112 %ifnarch %{ix86} %{x8664}
113 rm -r $RPM_BUILD_ROOT%{_appdir}/lib/pty4j-native/linux/x86*
114 %endif
115 rm -r $RPM_BUILD_ROOT%{_appdir}/lib/pty4j-native/linux/{mips64el,ppc64le}
116
117 desktop-file-validate $RPM_BUILD_ROOT%{_desktopdir}/%{product}.desktop
118
119 %clean
120 rm -rf $RPM_BUILD_ROOT
121
122 %post
123 %update_desktop_database
124
125 %postun
126 %update_desktop_database
127
128 # base package contains arch specific files
129 %files
130 %defattr(644,root,root,755)
131 %doc Install-Linux-tar.txt
132 %attr(755,root,root) %{_bindir}/%{product}
133 %dir %{_appdir}/bin
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
147 %ifarch %{x8664}
148 %attr(755,root,root) %{_appdir}/bin/libdbm64.so
149 %endif
150 %{_desktopdir}/%{product}.desktop
151 %{_pixmapsdir}/%{product}.png
152
153 # this package contains arch independant files
154 %files libs
155 %defattr(644,root,root,755)
156 %dir %{_appdir}
157 %{_appdir}/build.txt
158 %{_appdir}/lib
159 %{_appdir}/license
160 %{_appdir}/plugins
161 %{_appdir}/help
162
163 %ifarch %{x8664}
164 %files jre
165 %defattr(644,root,root,755)
166 %dir %{_appdir}/jbr
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
188 %{_appdir}/jbr/conf
189 %{_appdir}/jbr/include
190 %{_appdir}/jbr/legal
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
221 %endif
This page took 0.101475 seconds and 4 git commands to generate.