]> git.pld-linux.org Git - packages/qscintilla2.git/blob - qscintilla2.spec
9ac33e5ce0e5599eae63090c6fae3e743f679014
[packages/qscintilla2.git] / qscintilla2.spec
1 # TODO:
2 # - fix building with qscintilla2(-devel) installed, remove BC
3 #   - how to successfully prepend -I../Qt4Qt5 before system qt include in qmake?
4 #
5 # Conditonal build:
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
10
11 %define         scintilla_ver   3.3.6
12 %define         sip_ver         4.19
13 %define         pyqt4_ver       1:4.12.1
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
17 Name:           qscintilla2
18 Version:        2.11.2
19 Release:        6
20 License:        GPL v3
21 Group:          X11/Libraries
22 Source0:        https://www.riverbankcomputing.com/static/Downloads/QScintilla/%{version}/QScintilla_gpl-%{version}.tar.gz
23 # Source0-md5:  2ec4833e790e44698c50ec703f274bab
24 Patch0:         %{name}-internal_build.patch
25 Patch3:         %{name}-outoftree.patch
26 Patch4:         %{name}-qt5.patch
27 Patch5:         py-config.patch
28 Patch6:         python-install.patch
29 Patch7:         sip-check.patch
30 Patch8:         missing-header.patch
31 Patch9:         0011-Fixed-the-Python-signatures-of-the-QsciAPIs-ctors.patch
32 URL:            http://www.riverbankcomputing.co.uk/software/qscintilla/
33 %if %{with python2}
34 BuildRequires:  python-sip-devel >= 2:%{sip_ver}
35 %endif
36 %if %{with python3}
37 BuildRequires:  python3-sip-devel >= 2:%{sip_ver}
38 %endif
39 BuildRequires:  rpm-pythonprov
40 BuildRequires:  rpmbuild(macros) >= 1.558
41 %if %{with qt4}
42 BuildRequires:  QtDesigner-devel >= 4.8
43 BuildRequires:  QtGui-devel >= 4.8
44 BuildRequires:  QtNetwork-devel >= 4.8
45 BuildRequires:  qt4-build >= 4.8
46 BuildRequires:  qt4-qmake >= 4.8
47 BuildRequires:  sip-PyQt4 >= %{pyqt4_ver}
48 %if %{with python2}
49 BuildRequires:  python-PyQt4 >= %{pyqt4_ver}
50 %endif
51 %if %{with python3}
52 BuildRequires:  python3-PyQt4 >= %{pyqt4_ver}
53 %endif
54 %endif
55 %if %{with qt5}
56 BuildRequires:  Qt5Designer-devel >= 5
57 BuildRequires:  Qt5Gui-devel >= 5
58 BuildRequires:  Qt5PrintSupport-devel >= 5
59 BuildRequires:  Qt5UiTools-devel >= 5
60 BuildRequires:  Qt5Widgets-devel >= 5
61 BuildRequires:  qt5-build >= 5
62 BuildRequires:  qt5-qmake >= 5
63 BuildRequires:  sip-PyQt5 >= %{pyqt5_ver}
64 %if %{with python2}
65 BuildRequires:  python-PyQt5 >= %{pyqt5_ver}
66 %endif
67 %if %{with python3}
68 BuildRequires:  python3-PyQt5 >= %{pyqt5_ver}
69 %endif
70 %endif
71 BuildConflicts: qscintilla2-devel < %{version}
72 %{?with_qt4:BuildConflicts:     qscintilla2-qt4-devel < %{version}}
73 %{?with_qt5:BuildConflicts:     qscintilla2-qt5-devel < %{version}}
74 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75
76 %define         _sipfilesdir    %{_datadir}/sip
77
78 %description
79 QScintilla2 is a port to Qt of the Scintilla editing component.
80 This version of QScintilla is based on Scintilla v%{scintilla_ver}.
81
82 %description -l pl.UTF-8
83 QScintilla2 to port komponentu edytora Scintilla dla biblioteki Qt.
84 Ta wersja QScintilli jest oparta na Scintilli %{scintilla_ver}.
85
86 %package apidocs
87 Summary:        QScintilla2 API documentation
88 Summary(pl.UTF-8):      Dokumentacja API biblioteki QScintilla2
89 Group:          Documentation
90 BuildArch:      noarch
91
92 %description apidocs
93 QScintilla2 API documentation.
94
95 %description apidocs -l pl.UTF-8
96 Dokumentacja API biblioteki QScintilla2.
97
98 %package qt4
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
101 Group:          X11/Libraries
102 %ifarch %{x8664} ppc64 s390x sparc64
103 Provides:       libqscintilla2.so.11()(64bit)
104 %else
105 Provides:       libqscintilla2.so.11
106 %endif
107 Obsoletes:      qscintilla2 < 2.8.4
108
109 %description qt4
110 QScintilla2 is a port to Qt of the Scintilla editing component.
111 This version of QScintilla is based on Scintilla v%{scintilla_ver}.
112
113 This package contains the Qt 4 port.
114
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}.
118
119 Ten pakiet zawiera port Qt 4.
120
121 %package qt4-devel
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
128
129 %description qt4-devel
130 This package contains the header files necessary to develop
131 applications using QScintilla2 for Qt 4.
132
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.
136
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
143
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.
147
148 This package contains the Qt 4 version.
149
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
153 Qt.
154
155 Ten pakiet zawiera wersję dla Qt 4.
156
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
163
164 %description -n sip-PyQt4-%{name}
165 Python bindings for the QScintilla2 - SIP development files.
166
167 %description -n sip-PyQt4-%{name} -l pl.UTF-8
168 Wiązania Pythona dla komponentu QScintilla2 - pliki programistyczne
169 SIP.
170
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
178
179 %description -n python-PyQt4-%{name}
180 Python 2 bindings for the QScintilla2 (PyQt4 version).
181
182 %description -n python-PyQt4-%{name} -l pl.UTF-8
183 Wiązania Pythona 2 dla komponentu QScintilla2 (wersja dla PyQt4).
184
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
191
192 %description -n python3-PyQt4-%{name}
193 Python 3 bindings for the QScintilla2 (PyQt4 version).
194
195 %description -n python3-PyQt4-%{name} -l pl.UTF-8
196 Wiązania Pythona 3 dla komponentu QScintilla2 (wersja dla PyQt4).
197
198 %package qt5
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
201 Group:          X11/Libraries
202
203 %description qt5
204 QScintilla2 is a port to Qt of the Scintilla editing component.
205 This version of QScintilla is based on Scintilla v%{scintilla_ver}.
206
207 This package contains the Qt 5 port.
208
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}.
212
213 Ten pakiet zawiera port Qt 5.
214
215 %package qt5-devel
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
222
223 %description qt5-devel
224 This package contains the header files necessary to develop
225 applications using QScintilla2 for Qt 5.
226
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.
230
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
237
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.
241
242 This package contains the Qt 5 version.
243
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
247 Qt.
248
249 Ten pakiet zawiera wersję dla Qt 5.
250
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}
256
257 %description -n sip-PyQt5-%{name}
258 Python bindings for the QScintilla2 - SIP development files.
259
260 %description -n sip-PyQt5-%{name} -l pl.UTF-8
261 Wiązania Pythona dla komponentu QScintilla2 - pliki programistyczne
262 SIP.
263
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
270
271 %description -n python-PyQt5-%{name}
272 Python 2 bindings for the QScintilla2 (PyQt5 version).
273
274 %description -n python-PyQt5-%{name} -l pl.UTF-8
275 Wiązania Pythona 2 dla komponentu QScintilla2 (wersja dla PyQt5).
276
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
283
284 %description -n python3-PyQt5-%{name}
285 Python 3 bindings for the QScintilla2 (PyQt5 version).
286
287 %description -n python3-PyQt5-%{name} -l pl.UTF-8
288 Wiązania Pythona 3 dla komponentu QScintilla2 (wersja dla PyQt5).
289
290 %prep
291 %setup -q -n QScintilla_gpl-%{version}
292 %patch0 -p1
293 %patch3 -p1
294 %patch4 -p1
295 %patch5 -p1
296 %patch6 -p1
297 %patch7 -p1
298 %patch8 -p1
299 %patch9 -p1
300
301 %build
302 for qt in %{?with_qt4:qt4} %{?with_qt5:qt5} ; do
303 install -d build-${qt}/{Qt4Qt5,designer-Qt4Qt5,Python2,Python3}
304 cd build-${qt}/Qt4Qt5
305 qmake-${qt} ../../Qt4Qt5/qscintilla.pro \
306         $(test "$qt" = "qt4" || echo QMAKE_MKSPECS=%{_libdir}/$qt/mkspecs)
307 %{__make}
308 cd ../designer-Qt4Qt5
309 qmake-${qt} ../../designer-Qt4Qt5/designer.pro
310 %{__make}
311 cd ..
312
313 %if %{with python2}
314 cd Python2
315 # setup PATH to get proper qmake
316 # pass --apidir because configure.py default is inconsistent with sources (no /qsci subdir)
317 PATH=%{_libdir}/${qt}/bin:$PATH \
318 %{__python} ../../Python/configure.py \
319         --verbose \
320         --concatenate \
321         --concatenate-split 3 \
322         -n ../../Qt4Qt5 \
323         -o ../Qt4Qt5 \
324         --apidir=%{_datadir}/${qt}/qsci \
325         --pyqt=PyQt${qt#qt}
326 %{__make}
327 cd ..
328 %endif
329 %if %{with python3}
330 cd Python3
331 PATH=%{_libdir}/${qt}/bin:$PATH \
332 %{__python3} ../../Python/configure.py \
333         --verbose \
334         --concatenate \
335         --concatenate-split 3 \
336         -n ../../Qt4Qt5 \
337         -o ../Qt4Qt5 \
338         --apidir=%{_datadir}/${qt}/qsci \
339         --pyqt=PyQt${qt#qt}
340 %{__make}
341 cd ..
342 %endif
343 cd ..
344 done
345
346 %install
347 rm -rf $RPM_BUILD_ROOT
348
349 for qt in %{?with_qt4:qt4} %{?with_qt5:qt5} ; do
350 %{__make} -j1 -C build-${qt}/Qt4Qt5 install \
351         INSTALL_ROOT=$RPM_BUILD_ROOT
352 %{__make} -j1 -C build-${qt}/designer-Qt4Qt5 install \
353         INSTALL_ROOT=$RPM_BUILD_ROOT
354 %if %{with python3}
355 %{__make} -j1 -C build-${qt}/Python3 install \
356         INSTALL_ROOT=$RPM_BUILD_ROOT
357 %endif
358 %if %{with python2}
359 %{__make} -j1 -C build-${qt}/Python2 install \
360         INSTALL_ROOT=$RPM_BUILD_ROOT
361 %endif
362 done
363
364 # unnecessary symlink
365 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libqscintilla2*.so.15.0
366
367 %if %{with qt4}
368 # move Qt4 translations to PLD-specific directory scheme
369 for file in $RPM_BUILD_ROOT%{_datadir}/locale/*.qm
370 do
371         lang=`echo $file | sed -r 's:.*/[a-zA-Z]*_(.*).qm:\1:'`
372         [ "$lang" == "pt_br" ] && lang=pt_BR
373         install -d $RPM_BUILD_ROOT%{_datadir}/locale/$lang/LC_MESSAGES
374         %{__mv} $file $RPM_BUILD_ROOT%{_datadir}/locale/$lang/LC_MESSAGES/qscintilla2.qm
375 done
376 %endif
377
378 %clean
379 rm -rf $RPM_BUILD_ROOT
380
381 %post   qt4 -p /sbin/ldconfig
382 %postun qt4 -p /sbin/ldconfig
383
384 %post   qt5 -p /sbin/ldconfig
385 %postun qt5 -p /sbin/ldconfig
386
387 %files apidocs
388 %defattr(644,root,root,755)
389 %doc doc/{Scintilla,html-Qt4Qt5}
390
391 %if %{with qt4}
392 %files qt4
393 %defattr(644,root,root,755)
394 %doc NEWS README
395 %attr(755,root,root) %{_libdir}/libqscintilla2_qt4.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libqscintilla2_qt4.so.15
397 %lang(cs) %{_datadir}/locale/cs/LC_MESSAGES/qscintilla2.qm
398 %lang(de) %{_datadir}/locale/de/LC_MESSAGES/qscintilla2.qm
399 %lang(es) %{_datadir}/locale/es/LC_MESSAGES/qscintilla2.qm
400 %lang(fr) %{_datadir}/locale/fr/LC_MESSAGES/qscintilla2.qm
401 %lang(pt_BR) %{_datadir}/locale/pt_BR/LC_MESSAGES/qscintilla2.qm
402 %dir %{_datadir}/qt4/qsci
403 %dir %{_datadir}/qt4/qsci/api
404 %dir %{_datadir}/qt4/qsci/api/python
405 %{_datadir}/qt4/qsci/api/python/Python-*.api
406 %{_datadir}/qt4/qsci/api/python/QScintilla2.api
407
408 %files qt4-devel
409 %defattr(644,root,root,755)
410 %attr(755,root,root) %{_libdir}/libqscintilla2_qt4.so
411 %{_includedir}/qt4/Qsci
412 %{_datadir}/qt4/mkspecs/features/qscintilla2.prf
413
414 %files -n QtDesigner-plugin-%{name}
415 %defattr(644,root,root,755)
416 %attr(755,root,root) %{_libdir}/qt4/plugins/designer/libqscintillaplugin.so
417
418 %if %{with python2} || %{with python3}
419 %files -n sip-PyQt4-%{name}
420 %defattr(644,root,root,755)
421 %{_sipfilesdir}/PyQt4/Qsci
422 %endif
423
424 %if %{with python2}
425 %files -n python-PyQt4-%{name}
426 %defattr(644,root,root,755)
427 %attr(755,root,root) %{py_sitedir}/PyQt4/Qsci.so
428 %{py_sitedir}/PyQt4/Qsci.pyi
429 %endif
430
431 %if %{with python3}
432 %files -n python3-PyQt4-%{name}
433 %defattr(644,root,root,755)
434 %attr(755,root,root) %{py3_sitedir}/PyQt4/Qsci.so
435 %{py3_sitedir}/PyQt4/Qsci.pyi
436 %endif
437 %endif
438
439 %if %{with qt5}
440 %files qt5
441 %defattr(644,root,root,755)
442 %doc NEWS README
443 %attr(755,root,root) %{_libdir}/libqscintilla2_qt5.so.*.*.*
444 %attr(755,root,root) %ghost %{_libdir}/libqscintilla2_qt5.so.15
445 %lang(cs) %{_datadir}/qt5/translations/qscintilla_cs.qm
446 %lang(de) %{_datadir}/qt5/translations/qscintilla_de.qm
447 %lang(es) %{_datadir}/qt5/translations/qscintilla_es.qm
448 %lang(fr) %{_datadir}/qt5/translations/qscintilla_fr.qm
449 %lang(pt_BR) %{_datadir}/qt5/translations/qscintilla_pt_br.qm
450 %dir %{_datadir}/qt5/qsci
451 %dir %{_datadir}/qt5/qsci/api
452 %dir %{_datadir}/qt5/qsci/api/python
453 %{_datadir}/qt5/qsci/api/python/Python-*.api
454 %{_datadir}/qt5/qsci/api/python/QScintilla2.api
455
456 %files qt5-devel
457 %defattr(644,root,root,755)
458 %attr(755,root,root) %{_libdir}/libqscintilla2_qt5.so
459 %{_includedir}/qt5/Qsci
460 %{_libdir}/qt5/mkspecs/features/qscintilla2.prf
461
462 %files -n Qt5Designer-plugin-%{name}
463 %defattr(644,root,root,755)
464 %attr(755,root,root) %{_libdir}/qt5/plugins/designer/libqscintillaplugin.so
465
466 %if %{with python2} || %{with python3}
467 %files -n sip-PyQt5-%{name}
468 %defattr(644,root,root,755)
469 %{_sipfilesdir}/PyQt5/Qsci
470 %endif
471
472 %if %{with python2}
473 %files -n python-PyQt5-%{name}
474 %defattr(644,root,root,755)
475 %attr(755,root,root) %{py_sitedir}/PyQt5/Qsci.so
476 %{py_sitedir}/PyQt5/Qsci.pyi
477 %endif
478
479 %if %{with python3}
480 %files -n python3-PyQt5-%{name}
481 %defattr(644,root,root,755)
482 %attr(755,root,root) %{py3_sitedir}/PyQt5/Qsci.so
483 %{py3_sitedir}/PyQt5/Qsci.pyi
484 %endif
485 %endif
This page took 0.113187 seconds and 2 git commands to generate.