2 # - fix building with qscintilla2(-devel) installed, remove BC
3 # - how to successfully prepend -I../Qt4Qt5 before system qt include in qmake?
6 %bcond_without python2 # CPython 2.x module
7 %bcond_without python3 # CPython 3.x module
8 %bcond_without qt4 # Qt4 library and modules
9 %bcond_without qt5 # Qt5 library and modules
11 %define scintilla_ver 3.3.6
13 %define pyqt4_ver 4.12
14 %define pyqt5_ver 5.7.1
15 Summary: QScintilla2 - a port to Qt of the Scintilla editing component
16 Summary(pl.UTF-8): QScintilla2 - port komponentu edytora Scintilla dla biblioteki Qt
22 Source0: http://downloads.sourceforge.net/pyqt/QScintilla-gpl-%{version}.tar.gz
23 # Source0-md5: 38e6248cb970adf6d05aea7d94f1288e
24 Patch0: %{name}-internal_build.patch
25 Patch1: %{name}-multiqt.patch
26 Patch2: %{name}-make.patch
27 Patch3: %{name}-outoftree.patch
28 Patch4: %{name}-qt5.patch
29 Patch5: %{name}-link.patch
30 Patch6: python-install.patch
31 URL: http://www.riverbankcomputing.co.uk/software/qscintilla/
33 BuildRequires: python-sip-devel >= 2:%{sip_ver}
36 BuildRequires: python3-sip-devel >= 2:%{sip_ver}
38 BuildRequires: rpm-pythonprov
39 BuildRequires: rpmbuild(macros) >= 1.558
41 BuildRequires: QtDesigner-devel >= 4.8
42 BuildRequires: QtGui-devel >= 4.8
43 BuildRequires: qt4-build >= 4.8
44 BuildRequires: qt4-qmake >= 4.8
45 BuildRequires: sip-PyQt4 >= %{pyqt4_ver}
47 BuildRequires: python-PyQt4 >= %{pyqt4_ver}
50 BuildRequires: python3-PyQt4 >= %{pyqt4_ver}
54 BuildRequires: Qt5Designer-devel >= 5
55 BuildRequires: Qt5Gui-devel >= 5
56 BuildRequires: Qt5PrintSupport-devel >= 5
57 BuildRequires: Qt5UiTools-devel >= 5
58 BuildRequires: Qt5Widgets-devel >= 5
59 BuildRequires: qt5-build >= 5
60 BuildRequires: qt5-qmake >= 5
61 BuildRequires: sip-PyQt5 >= %{pyqt5_ver}
63 BuildRequires: python-PyQt5 >= %{pyqt5_ver}
66 BuildRequires: python3-PyQt5 >= %{pyqt5_ver}
69 BuildConflicts: qscintilla2-devel < %{version}
70 %{?with_qt4:BuildConflicts: qscintilla2-qt4-devel < %{version}}
71 %{?with_qt5:BuildConflicts: qscintilla2-qt5-devel < %{version}}
72 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
74 %define _sipfilesdir %{_datadir}/sip
77 QScintilla2 is a port to Qt of the Scintilla editing component.
78 This version of QScintilla is based on Scintilla v%{scintilla_ver}.
80 %description -l pl.UTF-8
81 QScintilla2 to port komponentu edytora Scintilla dla biblioteki Qt.
82 Ta wersja QScintilli jest oparta na Scintilli %{scintilla_ver}.
85 Summary: QScintilla2 API documentation
86 Summary(pl.UTF-8): Dokumentacja API biblioteki QScintilla2
88 %if "%{_rpmversion}" >= "5"
93 QScintilla2 API documentation.
95 %description apidocs -l pl.UTF-8
96 Dokumentacja API biblioteki QScintilla2.
99 Summary: QScintilla2 - a port to Qt 4 of the Scintilla editing component
100 Summary(pl.UTF-8): QScintilla2 - port komponentu edytora Scintilla dla biblioteki Qt 4
102 %ifarch %{x8664} ppc64 s390x sparc64
103 Provides: libqscintilla2.so.11()(64bit)
105 Provides: libqscintilla2.so.11
107 Obsoletes: qscintilla2 < 2.8.4
110 QScintilla2 is a port to Qt of the Scintilla editing component.
111 This version of QScintilla is based on Scintilla v%{scintilla_ver}.
113 This package contains the Qt 4 port.
115 %description qt4 -l pl.UTF-8
116 QScintilla2 to port komponentu edytora Scintilla dla biblioteki Qt.
117 Ta wersja QScintilli jest oparta na Scintilli %{scintilla_ver}.
119 Ten pakiet zawiera port Qt 4.
122 Summary: Development files for the QScintilla2 Qt 4 library
123 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki QScintilla2 dla Qt 4
124 Group: X11/Development/Libraries
125 Requires: %{name}-qt4 = %{version}-%{release}
126 Requires: QtGui-devel >= 4
127 Obsoletes: qscintilla2-devel < 2.8.4
129 %description qt4-devel
130 This package contains the header files necessary to develop
131 applications using QScintilla2 for Qt 4.
133 %description qt4-devel -l pl.UTF-8
134 Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia programów z
135 użyciem komponentu QScintilla2 dla Qt 4.
137 %package -n QtDesigner-plugin-%{name}
138 Summary: QScintilla2 plugin for Qt Designer
139 Summary(pl.UTF-8): Wtyczka QScintilla2 dla Qt Designera
140 Group: X11/Development/Libraries
141 Requires: %{name}-qt4 = %{version}-%{release}
142 Requires: QtDesigner >= 4
144 %description -n QtDesigner-plugin-%{name}
145 QScintilla2 plugin for Qt Designer that allows QScintilla instances
146 to be included in GUI designs just like any other Qt widget.
148 This package contains the Qt 4 version.
150 %description -n QtDesigner-plugin-%{name} -l pl.UTF-8
151 Wtyczka WScintilla2 dla Qt Designera pozwalająca na włączanie
152 instancji QScintilli w projekty GUI w ten sam sposób, co inne widgety
155 Ten pakiet zawiera wersję dla Qt 4.
157 %package -n sip-PyQt4-%{name}
158 Summary: Python bindings for the QScintilla2 - SIP development files
159 Summary(pl.UTF-8): Wiązania Pythona dla komponentu QScintilla2 - pliki programistyczne SIP
160 Group: Development/Languages/Python
161 Requires: sip-PyQt4 >= %{pyqt4_ver}
162 Obsoletes: python-qscintilla2-devel < 2.8.4
164 %description -n sip-PyQt4-%{name}
165 Python bindings for the QScintilla2 - SIP development files.
167 %description -n sip-PyQt4-%{name} -l pl.UTF-8
168 Wiązania Pythona dla komponentu QScintilla2 - pliki programistyczne
171 %package -n python-PyQt4-%{name}
172 Summary: Python 2 bindings for the QScintilla2 (PyQt4 version)
173 Summary(pl.UTF-8): Wiązania Pythona 2 dla komponentu QScintilla2 (wersja dla PyQt4)
174 Group: Libraries/Python
175 Requires: %{name}-qt4 = %{version}-%{release}
176 %requires_ge python-PyQt4
177 Obsoletes: python-qscintilla2 < 2.8.4
179 %description -n python-PyQt4-%{name}
180 Python 2 bindings for the QScintilla2 (PyQt4 version).
182 %description -n python-PyQt4-%{name} -l pl.UTF-8
183 Wiązania Pythona 2 dla komponentu QScintilla2 (wersja dla PyQt4).
185 %package -n python3-PyQt4-%{name}
186 Summary: Python 3 bindings for the QScintilla2 (PyQt4 version)
187 Summary(pl.UTF-8): Wiązania Pythona 3 dla komponentu QScintilla2 (wersja dla PyQt4)
188 Group: Libraries/Python
189 Requires: %{name}-qt4 = %{version}-%{release}
190 %requires_ge python3-PyQt4
192 %description -n python3-PyQt4-%{name}
193 Python 3 bindings for the QScintilla2 (PyQt4 version).
195 %description -n python3-PyQt4-%{name} -l pl.UTF-8
196 Wiązania Pythona 3 dla komponentu QScintilla2 (wersja dla PyQt4).
199 Summary: QScintilla2 - a port to Qt 5 of the Scintilla editing component
200 Summary(pl.UTF-8): QScintilla2 - port komponentu edytora Scintilla dla biblioteki Qt 5
204 QScintilla2 is a port to Qt of the Scintilla editing component.
205 This version of QScintilla is based on Scintilla v%{scintilla_ver}.
207 This package contains the Qt 5 port.
209 %description qt5 -l pl.UTF-8
210 QScintilla2 to port komponentu edytora Scintilla dla biblioteki Qt.
211 Ta wersja QScintilli jest oparta na Scintilli %{scintilla_ver}.
213 Ten pakiet zawiera port Qt 5.
216 Summary: Development files for the QScintilla2 Qt 5 library
217 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki QScintilla2 dla Qt 5
218 Group: X11/Development/Libraries
219 Requires: %{name}-qt5 = %{version}-%{release}
220 Requires: Qt5Gui-devel >= 5
221 Obsoletes: qscintilla2-devel < 2.8.4
223 %description qt5-devel
224 This package contains the header files necessary to develop
225 applications using QScintilla2 for Qt 5.
227 %description qt5-devel -l pl.UTF-8
228 Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia programów z
229 użyciem komponentu QScintilla2 dla Qt 5.
231 %package -n Qt5Designer-plugin-%{name}
232 Summary: QScintilla2 plugin for Qt Designer
233 Summary(pl.UTF-8): Wtyczka QScintilla2 dla Qt Designera
234 Group: X11/Development/Libraries
235 Requires: %{name}-qt5 = %{version}-%{release}
236 Requires: Qt5Designer >= 5
238 %description -n Qt5Designer-plugin-%{name}
239 QScintilla2 plugin for Qt Designer that allows QScintilla instances
240 to be included in GUI designs just like any other Qt widget.
242 This package contains the Qt 5 version.
244 %description -n Qt5Designer-plugin-%{name} -l pl.UTF-8
245 Wtyczka WScintilla2 dla Qt Designera pozwalająca na włączanie
246 instancji QScintilli w projekty GUI w ten sam sposób, co inne widgety
249 Ten pakiet zawiera wersję dla Qt 5.
251 %package -n sip-PyQt5-%{name}
252 Summary: Python bindings for the QScintilla2 - SIP development files
253 Summary(pl.UTF-8): Wiązania Pythona dla komponentu QScintilla2 - pliki programistyczne SIP
254 Group: Development/Languages/Python
255 Requires: sip-PyQt5 >= %{pyqt5_ver}
257 %description -n sip-PyQt5-%{name}
258 Python bindings for the QScintilla2 - SIP development files.
260 %description -n sip-PyQt5-%{name} -l pl.UTF-8
261 Wiązania Pythona dla komponentu QScintilla2 - pliki programistyczne
264 %package -n python-PyQt5-%{name}
265 Summary: Python 2 bindings for the QScintilla2 (PyQt5 version)
266 Summary(pl.UTF-8): Wiązania Pythona 2 dla komponentu QScintilla2 (wersja dla PyQt5)
267 Group: Libraries/Python
268 Requires: %{name}-qt5 = %{version}-%{release}
269 %requires_ge python-PyQt5
271 %description -n python-PyQt5-%{name}
272 Python 2 bindings for the QScintilla2 (PyQt5 version).
274 %description -n python-PyQt5-%{name} -l pl.UTF-8
275 Wiązania Pythona 2 dla komponentu QScintilla2 (wersja dla PyQt5).
277 %package -n python3-PyQt5-%{name}
278 Summary: Python 3 bindings for the QScintilla2 (PyQt5 version)
279 Summary(pl.UTF-8): Wiązania Pythona 3 dla komponentu QScintilla2 (wersja dla PyQt5)
280 Group: Libraries/Python
281 Requires: %{name}-qt5 = %{version}-%{release}
282 %requires_ge python3-PyQt5
284 %description -n python3-PyQt5-%{name}
285 Python 3 bindings for the QScintilla2 (PyQt5 version).
287 %description -n python3-PyQt5-%{name} -l pl.UTF-8
288 Wiązania Pythona 3 dla komponentu QScintilla2 (wersja dla PyQt5).
291 %setup -q -n QScintilla-gpl-%{version}
301 for qt in %{?with_qt4:qt4} %{?with_qt5:qt5} ; do
302 install -d build-${qt}/{Qt4Qt5,designer-Qt4Qt5,Python2,Python3}
303 cd build-${qt}/Qt4Qt5
304 qmake-${qt} ../../Qt4Qt5/qscintilla.pro \
305 $(test "$qt" = "qt4" || echo QMAKE_MKSPECS=%{_libdir}/$qt/mkspecs)
307 cd ../designer-Qt4Qt5
308 qmake-${qt} ../../designer-Qt4Qt5/designer.pro
314 # setup PATH to get proper qmake
315 # pass --apidir because configure.py default is inconsistent with sources (no /qsci subdir)
316 PATH=%{_libdir}/${qt}/bin:$PATH \
317 %{__python} ../../Python/configure.py \
322 --apidir=%{_datadir}/${qt}/qsci \
329 PATH=%{_libdir}/${qt}/bin:$PATH \
330 %{__python3} ../../Python/configure.py \
335 --apidir=%{_datadir}/${qt}/qsci \
344 rm -rf $RPM_BUILD_ROOT
346 for qt in %{?with_qt4:qt4} %{?with_qt5:qt5} ; do
347 %{__make} -C build-${qt}/Qt4Qt5 install \
348 INSTALL_ROOT=$RPM_BUILD_ROOT
349 %{__make} -C build-${qt}/designer-Qt4Qt5 install \
350 INSTALL_ROOT=$RPM_BUILD_ROOT
352 %{__make} -C build-${qt}/Python3 install \
353 INSTALL_ROOT=$RPM_BUILD_ROOT
356 %{__make} -C build-${qt}/Python2 install \
357 INSTALL_ROOT=$RPM_BUILD_ROOT
361 # unnecessary symlink
362 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libqscintilla2*.so.12.0
365 # move Qt4 translations to PLD-specific directory scheme
366 for file in $RPM_BUILD_ROOT%{_datadir}/locale/*.qm
368 lang=`echo $file | sed -r 's:.*/[a-zA-Z]*_(.*).qm:\1:'`
369 [ "$lang" == "pt_br" ] && lang=pt_BR
370 install -d $RPM_BUILD_ROOT%{_datadir}/locale/$lang/LC_MESSAGES
371 %{__mv} $file $RPM_BUILD_ROOT%{_datadir}/locale/$lang/LC_MESSAGES/qscintilla2.qm
374 # compatibility symlinks
375 ln -sf $(basename $RPM_BUILD_ROOT%{_libdir}/libqscintilla2-qt4.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libqscintilla2.so.11
376 ln -sf $(basename $RPM_BUILD_ROOT%{_libdir}/libqscintilla2-qt4.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libqscintilla2.so
380 rm -rf $RPM_BUILD_ROOT
382 %post qt4 -p /sbin/ldconfig
383 %postun qt4 -p /sbin/ldconfig
385 %post qt5 -p /sbin/ldconfig
386 %postun qt5 -p /sbin/ldconfig
389 %defattr(644,root,root,755)
390 %doc doc/{Scintilla,html-Qt4Qt5}
394 %defattr(644,root,root,755)
396 %attr(755,root,root) %{_libdir}/libqscintilla2-qt4.so.*.*.*
397 %attr(755,root,root) %ghost %{_libdir}/libqscintilla2-qt4.so.12
398 # compatibility symlink
399 %attr(755,root,root) %{_libdir}/libqscintilla2.so.11
400 %lang(cs) %{_datadir}/locale/cs/LC_MESSAGES/qscintilla2.qm
401 %lang(de) %{_datadir}/locale/de/LC_MESSAGES/qscintilla2.qm
402 %lang(es) %{_datadir}/locale/es/LC_MESSAGES/qscintilla2.qm
403 %lang(fr) %{_datadir}/locale/fr/LC_MESSAGES/qscintilla2.qm
404 %lang(pt_BR) %{_datadir}/locale/pt_BR/LC_MESSAGES/qscintilla2.qm
405 %dir %{_datadir}/qt4/qsci
406 %dir %{_datadir}/qt4/qsci/api
407 %dir %{_datadir}/qt4/qsci/api/python
408 %{_datadir}/qt4/qsci/api/python/Python-*.api
409 %{_datadir}/qt4/qsci/api/python/QScintilla2.api
412 %defattr(644,root,root,755)
413 %attr(755,root,root) %{_libdir}/libqscintilla2-qt4.so
414 # compatibility symlink
415 %attr(755,root,root) %{_libdir}/libqscintilla2.so
416 %{_includedir}/qt4/Qsci
417 %{_datadir}/qt4/mkspecs/features/qscintilla2.prf
419 %files -n QtDesigner-plugin-%{name}
420 %defattr(644,root,root,755)
421 %attr(755,root,root) %{_libdir}/qt4/plugins/designer/libqscintillaplugin.so
423 %files -n sip-PyQt4-%{name}
424 %defattr(644,root,root,755)
425 %{_sipfilesdir}/PyQt4/Qsci
428 %files -n python-PyQt4-%{name}
429 %defattr(644,root,root,755)
430 %attr(755,root,root) %{py_sitedir}/PyQt4/Qsci.so
434 %files -n python3-PyQt4-%{name}
435 %defattr(644,root,root,755)
436 %attr(755,root,root) %{py3_sitedir}/PyQt4/Qsci.so
442 %defattr(644,root,root,755)
444 %attr(755,root,root) %{_libdir}/libqscintilla2-qt5.so.*.*.*
445 %attr(755,root,root) %ghost %{_libdir}/libqscintilla2-qt5.so.12
446 %lang(cs) %{_datadir}/qt5/translations/qscintilla_cs.qm
447 %lang(de) %{_datadir}/qt5/translations/qscintilla_de.qm
448 %lang(es) %{_datadir}/qt5/translations/qscintilla_es.qm
449 %lang(fr) %{_datadir}/qt5/translations/qscintilla_fr.qm
450 %lang(pt_BR) %{_datadir}/qt5/translations/qscintilla_pt_br.qm
451 %dir %{_datadir}/qt5/qsci
452 %dir %{_datadir}/qt5/qsci/api
453 %dir %{_datadir}/qt5/qsci/api/python
454 %{_datadir}/qt5/qsci/api/python/Python-*.api
455 %{_datadir}/qt5/qsci/api/python/QScintilla2.api
458 %defattr(644,root,root,755)
459 %attr(755,root,root) %{_libdir}/libqscintilla2-qt5.so
460 %{_includedir}/qt5/Qsci
461 %{_libdir}/qt5/mkspecs/features/qscintilla2.prf
463 %files -n Qt5Designer-plugin-%{name}
464 %defattr(644,root,root,755)
465 %attr(755,root,root) %{_libdir}/qt5/plugins/designer/libqscintillaplugin.so
467 %files -n sip-PyQt5-%{name}
468 %defattr(644,root,root,755)
469 %{_sipfilesdir}/PyQt5/Qsci
472 %files -n python-PyQt5-%{name}
473 %defattr(644,root,root,755)
474 %attr(755,root,root) %{py_sitedir}/PyQt5/Qsci.so
478 %files -n python3-PyQt5-%{name}
479 %defattr(644,root,root,755)
480 %attr(755,root,root) %{py3_sitedir}/PyQt5/Qsci.so