1 %define product phpstorm
2 Summary: PhpStorm Early Access Program
6 # TODO: figure out what's the licensing and redistribution
8 Group: Development/Tools
9 Source0: https://download-cf.jetbrains.com/webide/PhpStorm-EAP-%{version}.tar.gz
10 # NoSource0-md5: 13033312b3af42135ab71da8a251e9ff
12 Source1: %{product}.desktop
13 Source2: %{product}.py
15 URL: https://www.jetbrains.com/phpstorm/eap/
16 BuildRequires: jpackage-utils
17 BuildRequires: rpm-javaprov
18 BuildRequires: rpmbuild(macros) >= 1.300
20 Requires: jre-X11 >= 1.7
24 Suggests: java-jdbc-mysql
26 Conflicts: java-jdbc-mysql < 5.1.22
27 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
29 # don't strip fsnotifier, it's size is checked for "outdated binary"
30 # https://bugs.archlinux.org/task/34703
31 # 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
32 %define _noautostrip .*/fsnotifier.*
34 # use /usr/lib, 64bit files do not conflict with 32bit files (64 suffix)
35 # this allows to install both arch files and to use 32bit jdk on 64bit os
36 %define _appdir %{_prefix}/lib/%{product}
39 PhpStorm is a lightweight and smart PHP IDE focused on developer
40 productivity that deeply understands your code, provides smart code
41 completion, quick navigation and on-the-fly error checking. It is
42 always ready to help you shape your code, run unit-tests or provide
45 Note: PhpStorm includes all the functionality of WebStorm (HTML/CSS
46 Editor, JavaScript Editor) and adds full-fledged support for PHP.
49 %setup -qn PhpStorm-%{version}
51 # keep only single arch files (don't want to pull 32bit deps by default),
52 # if you want to mix, install rpm from both arch
55 rm bin/libyjpagent-linux64.so
56 rm bin/phpstorm64.vmoptions
57 rm -r lib/libpty/linux/x86_64
61 rm bin/libyjpagent-linux.so
62 rm bin/phpstorm.vmoptions
63 rm -r lib/libpty/linux/x86
67 chmod a+rx bin/*.so bin/fsnotifier* lib/libpty/linux/*/libpty.so
70 # cleanup backups after patching
71 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
74 rm -rf $RPM_BUILD_ROOT
75 install -d $RPM_BUILD_ROOT{%{_appdir},%{_bindir},%{_pixmapsdir},%{_desktopdir}}
76 cp -l build.txt $RPM_BUILD_ROOT/cp-test && l=l && rm -f $RPM_BUILD_ROOT/cp-test
77 cp -a$l bin help lib plugins $RPM_BUILD_ROOT%{_appdir}
78 ln -s %{_pixmapsdir}/%{product}.png $RPM_BUILD_ROOT%{_appdir}/bin
79 cp -p phpstorm.png $RPM_BUILD_ROOT%{_pixmapsdir}/%{product}.png
80 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
81 install -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/pstorm
82 ln -s pstorm $RPM_BUILD_ROOT%{_bindir}/%{product}
85 rm -rf $RPM_BUILD_ROOT
88 %defattr(644,root,root,755)
89 %attr(755,root,root) %{_bindir}/%{product}
90 %attr(755,root,root) %{_bindir}/pstorm
95 %{_appdir}/bin/%{product}*.vmoptions
96 %{_appdir}/bin/%{product}.png
97 %{_appdir}/bin/idea.properties
98 %{_appdir}/bin/log.xml
99 %attr(755,root,root) %{_appdir}/bin/%{product}.sh
100 %attr(755,root,root) %{_appdir}/bin/*.py
101 %attr(755,root,root) %{_appdir}/bin/format.sh
102 %attr(755,root,root) %{_appdir}/bin/fsnotifier*
103 %attr(755,root,root) %{_appdir}/bin/inspect.sh
104 %attr(755,root,root) %{_appdir}/bin/libyjpagent-linux*.so
107 %dir %{_appdir}/lib/libpty
108 %dir %{_appdir}/lib/libpty/linux
109 %dir %{_appdir}/lib/libpty/linux/x86*
110 %attr(755,root,root) %{_appdir}/lib/libpty/linux/x86*/libpty.so
111 %{_desktopdir}/%{product}.desktop
112 %{_pixmapsdir}/%{product}.png