From 573a26daa316959f23ba697b13bd81234aeed99f Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Fri, 23 Apr 2021 16:47:48 +0200 Subject: [PATCH] - build also python3-* packages; common part of -devel in -common-devel, .pc files renamed to pyside-pyVER.pc --- python-PySide.spec | 135 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 129 insertions(+), 6 deletions(-) diff --git a/python-PySide.spec b/python-PySide.spec index e0c2582..ca8c5b4 100644 --- a/python-PySide.spec +++ b/python-PySide.spec @@ -1,9 +1,10 @@ -# TODO: python3 version? %define qt_ver 4.8 %define pyside_ver 1.2.4 # # Conditional build: %bcond_with apidocs # build API documentation (needs Qt sources) +%bcond_without python2 # CPython 2.x module +%bcond_without python3 # CPython 3.x module # Summary: PySide - Python bindings for the Qt 4 toolkit Summary(pl.UTF-8): PySide - wiązania Pythona do toolkitu Qt 4 @@ -37,7 +38,8 @@ BuildRequires: cmake >= 2.6 BuildRequires: phonon-devel BuildRequires: rpm-pythonprov BuildRequires: rpmbuild(macros) >= 1.605 -BuildRequires: shiboken-python2 >= %{pyside_ver} +%{?with_python2:BuildRequires: shiboken-python2 >= %{pyside_ver}} +%{?with_python3:BuildRequires: shiboken-python3 >= %{pyside_ver}} %if %{with apidocs} BuildRequires: graphviz BuildRequires: qt4-build @@ -46,6 +48,8 @@ BuildRequires: sphinx-pdg %endif BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define py3_soabi %(%{__python3} -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"));') + %description PySide project provides LGPL-licensed Python bindings for the Qt. It also includes complete toolchain for rapidly generating bindings for @@ -53,6 +57,8 @@ any Qt-based C++ class hierarchies. PySide Qt bindings allow both free open source and proprietary software development and ultimately aim to support Qt platforms. +This package contains Python 2 bindings. + %description -l pl.UTF-8 Projekt PySide udostępnia na licencji LGPL wiązania Pythona dla tookitu Qt. Zawiera także pełny zestaw narzędzi do szybkiego @@ -60,39 +66,114 @@ generowania wiązań dla dowolnej hierarchii klas C++ opartych na Qt. Wiązania Qt PySide pozwalają na tworzenie zarówno wolnodostępnego, jak i własnościowego oprogramowania i mają na celu wsparcie platform Qt. +Ten pakiet zawiera wiązania Pythona 2. + %package devel Summary: Development files for PySide bindings Summary(pl.UTF-8): Pliki programistyczne dla wiązań PySide Group: Development/Libraries Requires: %{name} = %{version}-%{release} +Requires: %{name}-common-devel = %{version}-%{release} Requires: shiboken-python2 >= %{pyside_ver} %description devel -Development files for PySide bindings. +Development files for PySide bindings for Python 2. %description devel -l pl.UTF-8 -Pliki programistyczne dla wiązań PySide. +Pliki programistyczne dla wiązań PySide dla Pythona 2. + +%package common-devel +Summary: Common development files for PySide bindings +Summary(pl.UTF-8): Wspólne pliki programistyczne dla wiązań PySide +Group: Development/Libraries +Conflicts: python-PySide-devel < 4.8_1.2.4-1 + +%description common-devel +Development files for PySide bindings, common for Python 2 and 3. + +%description common-devel -l pl.UTF-8 +Pliki programistyczne dla wiązań PySide, wspólne dla Pythona 2 i 3. + +%package -n python3-PySide +Summary: PySide - Python bindings for the Qt 4 toolkit +Summary(pl.UTF-8): PySide - wiązania Pythona do toolkitu Qt 4 +Group: Libraries/Python + +%description -n python3-PySide +PySide project provides LGPL-licensed Python bindings for the Qt. It +also includes complete toolchain for rapidly generating bindings for +any Qt-based C++ class hierarchies. PySide Qt bindings allow both free +open source and proprietary software development and ultimately aim to +support Qt platforms. + +This package contains Python 3 bindings. + +%description -n python3-PySide -l pl.UTF-8 +Projekt PySide udostępnia na licencji LGPL wiązania Pythona dla +tookitu Qt. Zawiera także pełny zestaw narzędzi do szybkiego +generowania wiązań dla dowolnej hierarchii klas C++ opartych na Qt. +Wiązania Qt PySide pozwalają na tworzenie zarówno wolnodostępnego, jak +i własnościowego oprogramowania i mają na celu wsparcie platform Qt. + +Ten pakiet zawiera wiązania Pythona 3. + +%package -n python3-PySide-devel +Summary: Development files for PySide bindings +Summary(pl.UTF-8): Pliki programistyczne dla wiązań PySide +Group: Development/Libraries +Requires: %{name}-common-devel = %{version}-%{release} +Requires: python3-PySide = %{version}-%{release} +Requires: shiboken-python3 >= %{pyside_ver} + +%description -n python3-PySide-devel +Development files for PySide bindings for Python 3. + +%description -n python3-PySide-devel -l pl.UTF-8 +Pliki programistyczne dla wiązań PySide dla Pythona 3. %prep %setup -q -n PySide-%{pyside_ver} %build +%if %{with python2} install -d build cd build %cmake .. %{__make} cd .. +%endif + +%if %{with python3} +install -d build-py3 +cd build-py3 +%cmake .. \ + -DPYTHON_SUFFIX=.%{py3_soabi} +%endif %install rm -rf $RPM_BUILD_ROOT +%if %{with python2} %{__make} -C build install \ DESTDIR=$RPM_BUILD_ROOT +%{__mv} $RPM_BUILD_ROOT%{_pkgconfigdir}/{pyside,pyside-py%{py_ver}}.pc + %py_comp $RPM_BUILD_ROOT%{py_sitedir}/PySide %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}/PySide %py_postclean +%endif + +%if %{with python3} +%{__make} -C build-py3 install \ + DESTDIR=$RPM_BUILD_ROOT + +%{__mv} $RPM_BUILD_ROOT%{_pkgconfigdir}/{pyside,pyside-py%{py3_ver}}.pc + +%py3_comp $RPM_BUILD_ROOT%{py3_sitedir}/PySide +%py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}/PySide +%endif %clean rm -rf $RPM_BUILD_ROOT @@ -100,6 +181,7 @@ rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig +%if %{with python2} %files %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libpyside-python%{py_ver}.so.*.*.* @@ -128,8 +210,49 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libpyside-python%{py_ver}.so +%{_pkgconfigdir}/pyside-py%{py_ver}.pc +%{_libdir}/cmake/PySide-%{pyside_ver}/PySideConfig-python%{py_ver}.cmake +%endif + +%files common-devel +%defattr(644,root,root,755) %{_includedir}/PySide %dir %{_datadir}/PySide %{_datadir}/PySide/typesystems -%{_pkgconfigdir}/pyside.pc -%{_libdir}/cmake/PySide-%{pyside_ver} +%dir %{_libdir}/cmake/PySide-%{pyside_ver} +%{_libdir}/cmake/PySide-%{pyside_ver}/PySideConfig.cmake +%{_libdir}/cmake/PySide-%{pyside_ver}/PySideConfigVersion.cmake + +%if %{with python3} +%files -n python3-PySide +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libpyside.%{py3_soabi}.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libpyside.%{py3_soabi}.so.1.2 +%dir %{py3_sitedir}/PySide +%attr(755,root,root) %{py3_sitedir}/PySide/QtCore.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtDeclarative.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtGui.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtHelp.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtMultimedia.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtNetwork.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtOpenGL.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtScript.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtScriptTools.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtSql.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtSvg.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtTest.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtUiTools.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtWebKit.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtXml.so +%attr(755,root,root) %{py3_sitedir}/PySide/QtXmlPatterns.so +%attr(755,root,root) %{py3_sitedir}/PySide/phonon.so +%{py3_sitedir}/PySide/__init__.py +%{py3_sitedir}/PySide/_utils.py +%{py3_sitedir}/PySide/__pycache__ + +%files -n python3-PySide-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libpyside.%{py3_soabi}.so +%{_pkgconfigdir}/pyside-py%{py3_ver}.pc +%{_libdir}/cmake/PySide-%{pyside_ver}/PySideConfig.%{py3_soabi}.cmake +%endif -- 2.44.0