2 # - __pycache__ for python3-PyQt5-uic
3 # - Fix /usr/local/lib64/python3.6/site-packages/PyQt5/*.pyi files.
5 %bcond_without python2 # CPython 2.x modules
6 %bcond_without python3 # CPython 3.x modules
9 # minimal required sip version
10 %define sip_ver 2:4.16.6
11 # last qt version covered by these bindings (minimal required is currently 5.0.0)
12 # %define qt_ver %{version}
16 Summary: Python 2 bindings for the Qt5 toolkit
17 Summary(pl.UTF-8): Wiązania Pythona 2 do toolkitu Qt5
18 Name: python-%{module}
22 Group: Libraries/Python
23 # Source0: http://downloads.sourceforge.net/pyqt/PyQt-gpl-%{version}.tar.gz
24 # https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.7.1/PyQt5_gpl-5.7.1.tar.gz
25 Source0: https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.7.1/PyQt5_gpl-%{version}.tar.gz
26 # Source0-md5: b3171b67c74aa63a3cd2f386660c898b
27 # Source0: http://downloads.sourceforge.net/pyqt/PyQt-gpl-%{version}.tar.gz
28 URL: http://www.riverbankcomputing.com/software/pyqt/
29 # most of BR comes from configure.py
30 BuildRequires: Qt5Bluetooth-devel >= %{qt_ver}
31 BuildRequires: Qt5Core-devel >= %{qt_ver}
32 BuildRequires: Qt5DBus-devel >= %{qt_ver}
33 BuildRequires: Qt5Designer-devel >= %{qt_ver}
34 BuildRequires: Qt5Enginio-devel >= %{qt_ver}
35 BuildRequires: Qt5Gui-devel >= %{qt_ver}
36 BuildRequires: Qt5Help-devel >= %{qt_ver}
37 BuildRequires: Qt5Location-devel >= %{qt_ver}
38 BuildRequires: Qt5Multimedia-devel >= %{qt_ver}
39 BuildRequires: Qt5MultimediaWidgets-devel >= %{qt_ver}
40 BuildRequires: Qt5Network-devel >= %{qt_ver}
41 BuildRequires: Qt5Nfc-devel >= %{qt_ver}
42 BuildRequires: Qt5OpenGL-devel >= %{qt_ver}
43 BuildRequires: Qt5Positioning-devel >= %{qt_ver}
44 BuildRequires: Qt5PrintSupport-devel >= %{qt_ver}
45 BuildRequires: Qt5Qml-devel >= %{qt_ver}
46 BuildRequires: Qt5Quick-devel >= %{qt_ver}
47 BuildRequires: Qt5Sensors-devel >= %{qt_ver}
48 BuildRequires: Qt5SerialPort-devel >= %{qt_ver}
49 BuildRequires: Qt5Sql-devel >= %{qt_ver}
50 BuildRequires: Qt5Svg-devel >= %{qt_ver}
51 BuildRequires: Qt5Test-devel >= %{qt_ver}
52 BuildRequires: Qt5WebChannel-devel >= %{qt_ver}
53 # TODO (when we succeed to build qtwebengine)
54 #BuildRequires: Qt5WebEngine-devel >= %{qt_ver}
55 BuildRequires: Qt5WebKit-devel >= %{qt_ver}
56 BuildRequires: Qt5WebSockets-devel >= %{qt_ver}
57 BuildRequires: Qt5Widgets-devel >= %{qt_ver}
58 BuildRequires: Qt5X11Extras-devel >= %{qt_ver}
59 BuildRequires: Qt5Xml-devel >= %{qt_ver}
60 BuildRequires: Qt5XmlPatterns-devel >= %{qt_ver}
61 BuildRequires: dbus-devel >= 1
62 BuildRequires: pkgconfig
63 BuildRequires: python-dbus-devel >= 0.80
64 BuildRequires: python-sip-devel >= %{sip_ver}
65 BuildRequires: python3-dbus >= 0.80
66 BuildRequires: python3-sip-devel >= %{sip_ver}
67 BuildRequires: qt5-build >= %{qt_ver}
68 BuildRequires: qt5-qmake >= %{qt_ver}
69 BuildRequires: rpm-pythonprov
70 BuildRequires: rpmbuild(macros) >= 1.219
71 %pyrequires_eq python-libs
72 Requires: python-dbus >= 0.80
73 Requires: python-sip >= %{sip_ver}
74 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76 %define _sipfilesdir %{_datadir}/sip
79 PyQt5 is a set of Python bindings for the Qt5 toolkit. The bindings
80 are implemented as a set of Python modules: Enginio, Qt, QtBluetooth,
81 QtCore, QtDBus, QtDesigner, QtGui, QtHelp, QtLocation, QtMultimedia,
82 QtMultimediaWidgets, QtNetwork, QtNfc, QtOpenGL, QtPositioning,
83 QtPrintSupport, QtQml, QtQuick, QtQuickWidgets, QtSensors,
84 QtSerialPort, QtSql, QtSvg, QtTest, QtWebChannel, QtWebKit,
85 QtWebKitWidgets, QtWebSockets, QtX11Extras and QtXmlPatterns.
87 This package contains Python 2 modules.
89 %description -l pl.UTF-8
90 PyQt5 to zbiór dowiązań do Qt5 dla Pythona. Dowiązania zostały
91 zaimplementowane jako moduły Pythona: Enginio, Qt, QtBluetooth,
92 QtCore, QtDBus, QtDesigner, QtGui, QtHelp, QtLocation, QtMultimedia,
93 QtMultimediaWidgets, QtNetwork, QtNfc, QtOpenGL, QtPositioning,
94 QtPrintSupport, QtQml, QtQuick, QtQuickWidgets, QtSensors,
95 QtSerialPort, QtSql, QtSvg, QtTest, QtWebChannel, QtWebKit,
96 QtWebKitWidgets, QtWebSockets, QtX11Extras oraz QtXmlPatterns.
98 Ten pakiet zawiera moduły Pythona 2.
101 Summary: pyuic5 development tool for Python 2
102 Summary(pl.UTF-8): Narzędzie programistyczne pyuic5 dla Pythona 2
103 Group: Development/Tools
104 Requires: %{name} = %{version}-%{release}
107 pyuic5 development tool for Python 2.
109 %description uic -l pl.UTF-8
110 Narzędzie programistyczne pyuic5 dla Pythona 2.
112 %package -n python3-PyQt5
113 Summary: Python 3 bindings for the Qt5 toolkit
114 Summary(pl.UTF-8): Wiązania Pythona 3 do toolkitu Qt5
115 Group: Libraries/Python
116 Requires: python3-libs
117 Requires: python3-dbus >= 0.80
118 Requires: python3-sip >= %{sip_ver}
120 %description -n python3-PyQt5
121 PyQt5 is a set of Python bindings for the Qt5 toolkit. The bindings
122 are implemented as a set of Python modules: Enginio, Qt, QtBluetooth,
123 QtCore, QtDBus, QtDesigner, QtGui, QtHelp, QtLocation, QtMultimedia,
124 QtMultimediaWidgets, QtNetwork, QtNfc, QtOpenGL, QtPositioning,
125 QtPrintSupport, QtQml, QtQuick, QtQuickWidgets, QtSensors,
126 QtSerialPort, QtSql, QtSvg, QtTest, QtWebChannel, QtWebKit,
127 QtWebKitWidgets, QtWebSockets, QtX11Extras and QtXmlPatterns.
129 This package contains Python 3 modules.
131 %description -n python3-PyQt5 -l pl.UTF-8
132 PyQt5 to zbiór dowiązań do Qt5 dla Pythona. Dowiązania zostały
133 zaimplementowane jako moduły Pythona: Enginio, Qt, QtBluetooth,
134 QtCore, QtDBus, QtDesigner, QtGui, QtHelp, QtLocation, QtMultimedia,
135 QtMultimediaWidgets, QtNetwork, QtNfc, QtOpenGL, QtPositioning,
136 QtPrintSupport, QtQml, QtQuick, QtQuickWidgets, QtSensors,
137 QtSerialPort, QtSql, QtSvg, QtTest, QtWebChannel, QtWebKit,
138 QtWebKitWidgets, QtWebSockets, QtX11Extras oraz QtXmlPatterns.
140 Ten pakiet zawiera moduły Pythona 3.
142 %package -n python3-PyQt5-uic
143 Summary: pyuic5 development tool for Python 3
144 Summary(pl.UTF-8): Narzędzie programistyczne pyuic5 dla Pythona 3
145 Group: Development/Tools
146 Requires: python3-PyQt5 = %{version}-%{release}
148 %description -n python3-PyQt5-uic
149 pyuic5 development tool for Python 3.
151 %description -n python3-PyQt5-uic -l pl.UTF-8
152 Narzędzie programistyczne pyuic5 dla Pythona 3.
155 Summary: PyQt5 development tools
156 Summary(pl.UTF-8): Narzędzia programistyczne PyQt5
157 Group: Development/Tools
158 Requires: Qt5Core >= %{qt_ver}
159 Requires: Qt5Xml >= %{qt_ver}
161 %description devel-tools
162 PyQt5 development tools: pylupdate5, pyrcc5.
164 Note: this package doesn't depend on Python version.
166 %description devel-tools -l pl.UTF-8
167 Narzędzia programistyczne PyQt5: pylupdate5, pyrcc5.
169 Uwaga: ten pakiet nie jest zależny od wersji Pythona.
172 Summary: Examples for PyQt5
173 Summary(pl.UTF-8): Przykłady do PyQt5
174 Group: Libraries/Python
175 Requires: %{name} = %{version}-%{release}
177 %description examples
178 Examples code demonstrating how to use the Python bindings for Qt5.
180 %description examples -l pl.UTF-8
181 Przykładowy kod demonstrujący jak używać PyQt5.
183 %package -n sip-PyQt5
184 Summary: SIP files needed to build other bindings based on Qt5
185 Summary(pl.UTF-8): Pliki SIP potrzebne do budowania innych wiązań opartych na Qt5
186 Group: Development/Languages/Python
187 Requires: sip >= %{sip_ver}
188 Obsoletes: python-PyQt5-devel < 5.3.2-4
190 %description -n sip-PyQt5
191 SIP files needed to build other bindings for C++ classes that inherit
192 from any of the Qt5 classes (e.g. KDE or your own).
194 %description -n sip-PyQt5 -l pl.UTF-8
195 Pliki SIP potrzebne do budowania innych wiązań do klas C++
196 dziedziczących z dowolnej klasy Qt5 (np. KDE lub własnych).
198 %package -n Qt5Designer-plugin-pyqt5
199 Summary: Qt5 Designer plugin for Python plugins with widgets
200 Summary(pl.UTF-8): Wtyczka Qt5 Designera dla wtyczek Pythona zawierających widgety
201 # can build only for one python version
203 Requires: %{name} = %{version}-%{release}
205 Requires: python3-PyQt5 = %{version}-%{release}
208 %description -n Qt5Designer-plugin-pyqt5
209 This is the Qt5 Designer plugin that collects all the Python plugins
210 it can find as a widget collection to Designer.
212 %description -n Qt5Designer-plugin-pyqt5 -l pl.UTF-8
213 Ten pakiet zawiera wtyczkę Qt5 Designera zbierającą wszystkie wtyczki
214 Pythona, które jest w stanie znaleźć, jako zestaw widgetów dla
217 %package -n qscintilla2-%{module}-api
218 Summary: PyQt5 API file for QScintilla
219 Summary(pl.UTF-8): Plik API PyQt5 dla QScintilli
220 Group: Libraries/Python
221 Requires: qscintilla2-qt5 >= 2.2-2
223 %description -n qscintilla2-%{module}-api
224 PyQt5 API file can be used by the QScintilla editor component to
225 enable the use of auto-completion and call tips when editing PyQt5
228 %description -n qscintilla2-%{module}-api -l pl.UTF-8
229 Plik API PyQt5 może być używany przez komponent edytora QScintilla aby
230 umożliwić automatyczne dopełnianie i podpowiedzi przy modyfikowaniu
231 kodu wykorzystującego PyQt5.
234 %setup -q -n PyQt5_gpl-%{version}
240 %{__python} ../configure.py \
248 -q "%{_bindir}/qmake-qt5" \
249 -v %{_sipfilesdir}/%{module} \
250 LIBDIR_QT="%{_libdir}" \
261 %{__python3} ../configure.py \
269 -q "%{_bindir}/qmake-qt5" \
270 -v %{_sipfilesdir}/%{module} \
271 LIBDIR_QT="%{_libdir}" \
280 rm -rf $RPM_BUILD_ROOT
281 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
284 %{__make} -C build-py3 install \
285 DESTDIR=$RPM_BUILD_ROOT \
286 INSTALL_ROOT=$RPM_BUILD_ROOT
288 %{__mv} $RPM_BUILD_ROOT%{_bindir}/pyuic5{,-3}
292 %{__make} -C build-py2 install \
293 DESTDIR=$RPM_BUILD_ROOT \
294 INSTALL_ROOT=$RPM_BUILD_ROOT
296 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
297 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
299 # don't use py_postclean, leave *.py in %{py_sitedir}/PyQt4/uic/widget-plugins
300 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/PyQt5/*.py
301 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/PyQt5/uic/*.py
302 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/PyQt5/uic/Compiler/*.py
303 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/PyQt5/uic/Loader/*.py
304 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/PyQt5/uic/port_v2/*.py
305 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/PyQt5/uic/port_v3/*.py
308 cp -R examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
311 rm -rf $RPM_BUILD_ROOT
315 %defattr(644,root,root,755)
317 %dir %{_libdir}/qt5/plugins/PyQt5
318 %attr(755,root,root) %{_libdir}/qt5/plugins/PyQt5/libpyqt5qmlplugin.so
319 %dir %{py_sitedir}/PyQt5
320 %attr(755,root,root) %{py_sitedir}/PyQt5/Enginio.so
321 %attr(755,root,root) %{py_sitedir}/PyQt5/pylupdate.so
322 %attr(755,root,root) %{py_sitedir}/PyQt5/pyrcc.so
323 %attr(755,root,root) %{py_sitedir}/PyQt5/Qt.so
324 %attr(755,root,root) %{py_sitedir}/PyQt5/QtBluetooth.so
325 %attr(755,root,root) %{py_sitedir}/PyQt5/QtCore.so
326 %attr(755,root,root) %{py_sitedir}/PyQt5/QtDBus.so
327 %attr(755,root,root) %{py_sitedir}/PyQt5/QtDesigner.so
328 %attr(755,root,root) %{py_sitedir}/PyQt5/QtGui.so
329 %attr(755,root,root) %{py_sitedir}/PyQt5/QtHelp.so
330 %attr(755,root,root) %{py_sitedir}/PyQt5/QtLocation.so
331 %attr(755,root,root) %{py_sitedir}/PyQt5/QtMultimedia.so
332 %attr(755,root,root) %{py_sitedir}/PyQt5/QtMultimediaWidgets.so
333 %attr(755,root,root) %{py_sitedir}/PyQt5/QtNetwork.so
334 %attr(755,root,root) %{py_sitedir}/PyQt5/QtNfc.so
335 %attr(755,root,root) %{py_sitedir}/PyQt5/QtOpenGL.so
336 %attr(755,root,root) %{py_sitedir}/PyQt5/QtPositioning.so
337 %attr(755,root,root) %{py_sitedir}/PyQt5/QtPrintSupport.so
338 %attr(755,root,root) %{py_sitedir}/PyQt5/QtQml.so
339 %attr(755,root,root) %{py_sitedir}/PyQt5/QtQuick.so
340 %attr(755,root,root) %{py_sitedir}/PyQt5/QtQuickWidgets.so
341 %attr(755,root,root) %{py_sitedir}/PyQt5/QtSensors.so
342 %attr(755,root,root) %{py_sitedir}/PyQt5/QtSerialPort.so
343 %attr(755,root,root) %{py_sitedir}/PyQt5/QtSql.so
344 %attr(755,root,root) %{py_sitedir}/PyQt5/QtSvg.so
345 %attr(755,root,root) %{py_sitedir}/PyQt5/QtTest.so
346 %attr(755,root,root) %{py_sitedir}/PyQt5/QtWebChannel.so
347 %attr(755,root,root) %{py_sitedir}/PyQt5/QtWebKit.so
348 %attr(755,root,root) %{py_sitedir}/PyQt5/QtWebKitWidgets.so
349 %attr(755,root,root) %{py_sitedir}/PyQt5/QtWebSockets.so
350 %attr(755,root,root) %{py_sitedir}/PyQt5/QtWidgets.so
351 %attr(755,root,root) %{py_sitedir}/PyQt5/QtX11Extras.so
352 %attr(755,root,root) %{py_sitedir}/PyQt5/QtXml.so
353 %attr(755,root,root) %{py_sitedir}/PyQt5/QtXmlPatterns.so
354 %attr(755,root,root) %{py_sitedir}/PyQt5/_QOpenGLFunctions_2_0.so
355 %attr(755,root,root) %{py_sitedir}/PyQt5/_QOpenGLFunctions_2_1.so
356 %attr(755,root,root) %{py_sitedir}/PyQt5/_QOpenGLFunctions_4_1_Core.so
357 %{py_sitedir}/PyQt5/__init__.py[co]
358 %{py_sitedir}/PyQt5/pyrcc_main.py[co]
359 %{py_sitedir}/PyQt5/pylupdate_main.py[co]
360 %attr(755,root,root) %{py_sitedir}/dbus/mainloop/pyqt5.so
363 %defattr(644,root,root,755)
364 %attr(755,root,root) %{_bindir}/pyuic5
365 %{py_sitedir}/PyQt5/uic
369 %files -n python3-PyQt5
370 %defattr(644,root,root,755)
371 %if %{without python2}
372 # if not building python2 module, this plugin is built in python3 version
373 %dir %{_libdir}/qt5/plugins/PyQt5
374 %attr(755,root,root) %{_libdir}/qt5/plugins/PyQt5/libpyqt5qmlplugin.so
376 %dir %{py3_sitedir}/PyQt5
377 %attr(755,root,root) %{py3_sitedir}/PyQt5/Enginio.so
378 %attr(755,root,root) %{py3_sitedir}/PyQt5/pylupdate.so
379 %attr(755,root,root) %{py3_sitedir}/PyQt5/pyrcc.so
380 %attr(755,root,root) %{py3_sitedir}/PyQt5/Qt.so
381 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtBluetooth.so
382 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtCore.so
383 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtDBus.so
384 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtDesigner.so
385 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtGui.so
386 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtHelp.so
387 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtLocation.so
388 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtMultimedia.so
389 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtMultimediaWidgets.so
390 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtNetwork.so
391 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtNfc.so
392 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtOpenGL.so
393 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtPositioning.so
394 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtPrintSupport.so
395 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtQml.so
396 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtQuick.so
397 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtQuickWidgets.so
398 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtSensors.so
399 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtSerialPort.so
400 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtSql.so
401 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtSvg.so
402 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtTest.so
403 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtWebChannel.so
404 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtWebKit.so
405 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtWebKitWidgets.so
406 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtWebSockets.so
407 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtWidgets.so
408 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtX11Extras.so
409 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtXml.so
410 %attr(755,root,root) %{py3_sitedir}/PyQt5/QtXmlPatterns.so
411 %attr(755,root,root) %{py3_sitedir}/PyQt5/_QOpenGLFunctions_2_0.so
412 %attr(755,root,root) %{py3_sitedir}/PyQt5/_QOpenGLFunctions_2_1.so
413 %attr(755,root,root) %{py3_sitedir}/PyQt5/_QOpenGLFunctions_4_1_Core.so
414 %{py3_sitedir}/PyQt5/__init__.py
415 %{py3_sitedir}/PyQt5/pylupdate_main.py
416 %{py3_sitedir}/PyQt5/pyrcc_main.py
417 %attr(755,root,root) %{py3_sitedir}/dbus/mainloop/pyqt5.so
419 %files -n python3-PyQt5-uic
420 %defattr(644,root,root,755)
421 %attr(755,root,root) %{_bindir}/pyuic5-3
422 %{py3_sitedir}/PyQt5/uic
426 %defattr(644,root,root,755)
427 %attr(755,root,root) %{_bindir}/pylupdate5
428 %attr(755,root,root) %{_bindir}/pyrcc5
431 %defattr(644,root,root,755)
432 %{_examplesdir}/%{name}-%{version}
435 %defattr(644,root,root,755)
436 %{_sipfilesdir}/PyQt5
438 %files -n Qt5Designer-plugin-pyqt5
439 %defattr(644,root,root,755)
440 %attr(755,root,root) %{_libdir}/qt5/plugins/designer/libpyqt5.so
442 %files -n qscintilla2-%{module}-api
443 %defattr(644,root,root,755)
444 %{_datadir}/qt5/qsci/api/python/PyQt5.api