# Conditional build:
%bcond_without python2 # CPython 2.x modules
%bcond_without python3 # CPython 3.x modules
+%bcond_without pyqt4 # PyQt4.sip module
+%bcond_without pyqt5 # PyQt5.sip module
Summary: Python bindings generator for C++ class libraries
Summary(pl.UTF-8): Generator powiązań Pythona z bibliotekami klas C++
Name: sip
-Version: 4.19.14
+Version: 4.19.24
Release: 1
Epoch: 2
License: SIP (redistributable, see LICENSE) or GPL v2 or GPL v3
Group: Development/Languages/Python
-Source0: https://www.riverbankcomputing.com/static/Downloads/sip/%{name}-%{version}.tar.gz
-# Source0-md5: bba62b2ea7e16193c7dfcfadb8dd0d05
+Source0: https://www.riverbankcomputing.com/static/Downloads/sip/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 595e9ad6bb0a4b3a6ea92c163a05d19c
URL: http://www.riverbankcomputing.com/software/sip/
BuildRequires: libstdc++-devel
BuildRequires: python-devel >= 1:2.3
plików ze specyfikacjami klas. Ten pakiet zawiera bibliotekę Pythona 2
potrzebną do uruchomienia wszystkich wygenerowanych powiązań.
+%package -n python-sip-devel
+Summary: Python 2 development files needed to build bindings using SIP
+Summary(pl.UTF-8): Pliki programistyczne Pythona 2 potrzebne do budowania wiązań przy użyciu SIP-a
+Group: Development/Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: python-devel >= 1:2.3
+
+%description -n python-sip-devel
+Python 2 development files needed to build bindings for C++ classes
+using SIP.
+
+%description -n python-sip-devel -l pl.UTF-8
+Pliki programistyczne Pythona 2 potrzebne do budowania wiązań dla klas
+C++ przy użyciu SIP-a.
+
+%package -n python-PyQt4-sip
+Summary: Python 2 module needed by SIP generated bindings for PyQt4
+Summary(pl.UTF-8): Moduł Pythona 2 wymagany przez wiązania wygenerowane przez SIP dla PyQt4
+Group: Libraries/Python
+Requires: python-libs
+
+%description -n python-PyQt4-sip
+SIP generates Python bindings for C++ class libraries from a set of
+class specification files. This package includes Python 2 runtime
+library needed by all generated bindings for PyQt4.
+
+%description -n python-PyQt4-sip -l pl.UTF-8
+SIP generuje powiązania Pythona z bibliotekami klas C++ ze zbioru
+plików ze specyfikacjami klas. Ten pakiet zawiera bibliotekę Pythona 2
+potrzebną do uruchomienia wszystkich wygenerowanych wiązań dla PyQt4.
+
+%package -n python-PyQt4-sip-devel
+Summary: Python 2 development files needed to build bindings for PyQt4 using SIP
+Summary(pl.UTF-8): Pliki programistyczne Pythona 2 potrzebne do budowania wiązań dla PyQt4 przy użyciu SIP-a
+Group: Development/Libraries
+Requires: python-PyQt4-sip = %{epoch}:%{version}-%{release}
+Requires: python-sip-devel = %{epoch}:%{version}-%{release}
+
+%description -n python-PyQt4-sip-devel
+Python 2 development files needed to build bindings for C++ classes
+for PyQt4 using SIP.
+
+%description -n python-PyQt4-sip-devel -l pl.UTF-8
+Pliki programistyczne Pythona 2 potrzebne do budowania wiązań dla klas
+C++ dla PyQt4 przy użyciu SIP-a.
+
%package -n python-PyQt5-sip
-Summary: Python 2 module needed by SIP generated bindings
-Summary(pl.UTF-8): Moduł Pythona 2 wymagany przez wiązania wygenerowane przez SIP
+Summary: Python 2 module needed by SIP generated bindings for PyQt5
+Summary(pl.UTF-8): Moduł Pythona 2 wymagany przez wiązania wygenerowane przez SIP dla PyQt5
Group: Libraries/Python
Requires: python-libs
%description -n python-PyQt5-sip
SIP generates Python bindings for C++ class libraries from a set of
class specification files. This package includes Python 2 runtime
-library needed by all generated bindings.
-
-PyQt5 private copy.
+library needed by all generated bindings for PyQt5.
%description -n python-PyQt5-sip -l pl.UTF-8
SIP generuje powiązania Pythona z bibliotekami klas C++ ze zbioru
plików ze specyfikacjami klas. Ten pakiet zawiera bibliotekę Pythona 2
-potrzebną do uruchomienia wszystkich wygenerowanych powiązań.
-
-Prywatna kopia PyQt5.
+potrzebną do uruchomienia wszystkich wygenerowanych wiązań dla PyQt5.
-%package -n python-sip-devel
-Summary: Python 2 development files needed to build bindings using SIP
-Summary(pl.UTF-8): Pliki programistyczne Pythona 2 potrzebne do budowania wiązań przy użyciu SIP-a
+%package -n python-PyQt5-sip-devel
+Summary: Python 2 development files needed to build bindings for PyQt5 using SIP
+Summary(pl.UTF-8): Pliki programistyczne Pythona 2 potrzebne do budowania wiązań dla PyQt5 przy użyciu SIP-a
Group: Development/Libraries
-Requires: %{name} = %{epoch}:%{version}-%{release}
-Requires: python-sip = %{epoch}:%{version}-%{release}
Requires: python-PyQt5-sip = %{epoch}:%{version}-%{release}
-Requires: python-devel >= 1:2.3
+Requires: python-sip-devel = %{epoch}:%{version}-%{release}
-%description -n python-sip-devel
+%description -n python-PyQt5-sip-devel
Python 2 development files needed to build bindings for C++ classes
-using SIP.
+for PyQt5 using SIP.
-%description -n python-sip-devel -l pl.UTF-8
+%description -n python-PyQt5-sip-devel -l pl.UTF-8
Pliki programistyczne Pythona 2 potrzebne do budowania wiązań dla klas
-C++ przy użyciu SIP-a.
+C++ dla PyQt5 przy użyciu SIP-a.
%package -n python3-sip
Summary: Python 3 module needed by SIP generated bindings
plików ze specyfikacjami klas. Ten pakiet zawiera bibliotekę Pythona 3
potrzebną do uruchomienia wszystkich wygenerowanych powiązań.
+%package -n python3-sip-devel
+Summary: Python 3 development files needed to build bindings using SIP
+Summary(pl.UTF-8): Pliki programistyczne Pythona 3 potrzebne do budowania wiązań przy użyciu SIP-a
+Group: Development/Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: python3-sip = %{epoch}:%{version}-%{release}
+Requires: python3-devel >= 1:3.2
+
+%description -n python3-sip-devel
+Python 3 development files needed to build bindings for C++ classes
+using SIP.
+
+%description -n python3-sip-devel -l pl.UTF-8
+Pliki programistyczne Pythona 3 potrzebne do budowania wiązań dla klas
+C++ przy użyciu SIP-a.
+
+%package -n python3-PyQt4-sip
+Summary: Python 3 module needed by SIP generated bindings for PyQt4
+Summary(pl.UTF-8): Moduł Pythona 3 wymagany przez wiązania wygenerowane przez SIP dla PyQt4
+Group: Libraries/Python
+Requires: python3-libs
+
+%description -n python3-PyQt4-sip
+SIP generates Python bindings for C++ class libraries from a set of
+class specification files. This package includes Python 2 runtime
+library needed by all generated bindings for PyQt4.
+
+%description -n python3-PyQt4-sip -l pl.UTF-8
+SIP generuje powiązania Pythona z bibliotekami klas C++ ze zbioru
+plików ze specyfikacjami klas. Ten pakiet zawiera bibliotekę Pythona 2
+potrzebną do uruchomienia wszystkich wygenerowanych wiązań dla PyQt4.
+
+%package -n python3-PyQt4-sip-devel
+Summary: Python 3 development files needed to build bindings for PyQt4 using SIP
+Summary(pl.UTF-8): Pliki programistyczne Pythona 3 potrzebne do budowania wiązań dla PyQt4 przy użyciu SIP-a
+Group: Development/Libraries
+Requires: python3-PyQt4-sip = %{epoch}:%{version}-%{release}
+Requires: python3-sip-devel = %{epoch}:%{version}-%{release}
+
+%description -n python3-PyQt4-sip-devel
+Python 3 development files needed to build bindings for C++ classes
+for PyQt4 using SIP.
+
+%description -n python3-PyQt4-sip-devel -l pl.UTF-8
+Pliki programistyczne Pythona 3 potrzebne do budowania wiązań dla klas
+C++ dla PyQt4 przy użyciu SIP-a.
+
%package -n python3-PyQt5-sip
-Summary: Python 3 module needed by SIP generated bindings
-Summary(pl.UTF-8): Moduł Pythona 3 wymagany przez wiązania wygenerowane przez SIP
+Summary: Python 3 module needed by SIP generated bindings for PyQt5
+Summary(pl.UTF-8): Moduł Pythona 3 wymagany przez wiązania wygenerowane przez SIP dla PyQt5
Group: Libraries/Python
Requires: python3-libs
%description -n python3-PyQt5-sip
SIP generates Python bindings for C++ class libraries from a set of
-class specification files. This package includes Python 3 runtime
-library needed by all generated bindings.
-
-PyQt5 private copy.
+class specification files. This package includes Python 2 runtime
+library needed by all generated bindings for PyQt5.
%description -n python3-PyQt5-sip -l pl.UTF-8
SIP generuje powiązania Pythona z bibliotekami klas C++ ze zbioru
-plików ze specyfikacjami klas. Ten pakiet zawiera bibliotekę Pythona 3
-potrzebną do uruchomienia wszystkich wygenerowanych powiązań.
-
-Prywatna kopia PyQt5.
+plików ze specyfikacjami klas. Ten pakiet zawiera bibliotekę Pythona 2
+potrzebną do uruchomienia wszystkich wygenerowanych wiązań dla PyQt5.
-%package -n python3-sip-devel
-Summary: Python 3 development files needed to build bindings using SIP
-Summary(pl.UTF-8): Pliki programistyczne Pythona 3 potrzebne do budowania wiązań przy użyciu SIP-a
+%package -n python3-PyQt5-sip-devel
+Summary: Python 3 development files needed to build bindings for PyQt5 using SIP
+Summary(pl.UTF-8): Pliki programistyczne Pythona 3 potrzebne do budowania wiązań dla PyQt5 przy użyciu SIP-a
Group: Development/Libraries
-Requires: %{name} = %{epoch}:%{version}-%{release}
-Requires: python3-sip = %{epoch}:%{version}-%{release}
Requires: python3-PyQt5-sip = %{epoch}:%{version}-%{release}
-Requires: python3-devel >= 1:3.2
+Requires: python3-sip-devel = %{epoch}:%{version}-%{release}
-%description -n python3-sip-devel
+%description -n python3-PyQt5-sip-devel
Python 3 development files needed to build bindings for C++ classes
-using SIP.
+for PyQt5 using SIP.
-%description -n python3-sip-devel -l pl.UTF-8
+%description -n python3-PyQt5-sip-devel -l pl.UTF-8
Pliki programistyczne Pythona 3 potrzebne do budowania wiązań dla klas
-C++ przy użyciu SIP-a.
+C++ dla PyQt5 przy użyciu SIP-a.
%prep
%setup -q
%{__make}
cd ..
-install -d build-py2-PyQt5
-cd build-py2-PyQt5
+%if %{with pyqt4} || %{with pyqt5}
+for mod in %{?with_pyqt4:PyQt4} %{?with_pyqt5:PyQt5} ; do
+install -d build-py2-${mod}
+cd build-py2-${mod}
%{__python} ../configure.py \
- --sip-module=PyQt5.sip \
- -b %{_bindir} \
+ --sip-module=${mod}.sip \
+ --no-dist-info \
+ --no-tools \
-e %{py_incdir} \
-v %{_sipfilesdir} \
-d %{py_sitedir} \
%{__make}
cd ..
+done
+%endif
%endif
%if %{with python3}
%{__make}
cd ..
-install -d build-py3-PyQt5
-cd build-py3-PyQt5
+%if %{with pyqt4} || %{with pyqt5}
+for mod in %{?with_pyqt4:PyQt4} %{?with_pyqt5:PyQt5} ; do
+install -d build-py3-${mod}
+cd build-py3-${mod}
%{__python3} ../configure.py \
- --sip-module=PyQt5.sip \
- -b %{_bindir} \
+ --sip-module=${mod}.sip \
+ --no-dist-info \
+ --no-tools \
-e %{py3_incdir} \
-v %{_sipfilesdir} \
-d %{py3_sitedir} \
%{__make}
cd ..
+done
+%endif
%endif
%install
%{__make} -C build-py2 install \
DESTDIR=$RPM_BUILD_ROOT
-%{__make} -C build-py2-PyQt5 install \
+%if %{with pyqt4} || %{with pyqt5}
+for mod in %{?with_pyqt4:PyQt4} %{?with_pyqt5:PyQt5} ; do
+%{__make} -C build-py2-${mod} install \
DESTDIR=$RPM_BUILD_ROOT
+# ensure content is the same and hardlink
+cmp $RPM_BUILD_ROOT%{py_sitedir}/sip.pyi $RPM_BUILD_ROOT%{py_sitedir}/${mod}/sip.pyi
+ln -f $RPM_BUILD_ROOT%{py_sitedir}/sip.pyi $RPM_BUILD_ROOT%{py_sitedir}/${mod}/sip.pyi
+done
+%endif
+
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
+%{__rm} -r $RPM_BUILD_ROOT%{py_sitedir}/sip-%{version}.dist-info
%endif
%if %{with python3}
%{__make} -C build-py3 install \
DESTDIR=$RPM_BUILD_ROOT
-%{__make} -C build-py3-PyQt5 install \
+%if %{with pyqt4} || %{with pyqt5}
+for mod in %{?with_pyqt4:PyQt4} %{?with_pyqt5:PyQt5} ; do
+%{__make} -C build-py3-${mod} install \
DESTDIR=$RPM_BUILD_ROOT
+# ensure content is the same and hardlink
+cmp $RPM_BUILD_ROOT%{py3_sitedir}/sip.pyi $RPM_BUILD_ROOT%{py3_sitedir}/${mod}/sip.pyi
+ln -f $RPM_BUILD_ROOT%{py3_sitedir}/sip.pyi $RPM_BUILD_ROOT%{py3_sitedir}/${mod}/sip.pyi
+done
+%endif
+
%py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
%py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
+%{__rm} -r $RPM_BUILD_ROOT%{py3_sitedir}/sip-%{version}.dist-info
%endif
%clean
%defattr(644,root,root,755)
%attr(755,root,root) %{py_sitedir}/sip.so
-%files -n python-PyQt5-sip
-%defattr(644,root,root,755)
-%dir %{py_sitedir}/PyQt5
-%attr(755,root,root) %{py_sitedir}/PyQt5/sip.so
-
%files -n python-sip-devel
%defattr(644,root,root,755)
%{py_sitedir}/sipconfig.py
%{py_sitedir}/sipdistutils.py
%{py_sitedir}/sipdistutils.py[co]
%{py_sitedir}/sip.pyi
-%{py_sitedir}/PyQt5/sip.pyi
%{py_incdir}/sip.h
+
+%if %{with pyqt4}
+%files -n python-PyQt4-sip
+%defattr(644,root,root,755)
+%dir %{py_sitedir}/PyQt4
+%attr(755,root,root) %{py_sitedir}/PyQt4/sip.so
+
+%files -n python-PyQt4-sip-devel
+%defattr(644,root,root,755)
+%{py_sitedir}/PyQt4/sip.pyi
+%endif
+
+%if %{with pyqt5}
+%files -n python-PyQt5-sip
+%defattr(644,root,root,755)
+%dir %{py_sitedir}/PyQt5
+%attr(755,root,root) %{py_sitedir}/PyQt5/sip.so
+
+%files -n python-PyQt5-sip-devel
+%defattr(644,root,root,755)
+%{py_sitedir}/PyQt5/sip.pyi
+%endif
%endif
%if %{with python3}
%defattr(644,root,root,755)
%attr(755,root,root) %{py3_sitedir}/sip.so
-%files -n python3-PyQt5-sip
-%defattr(644,root,root,755)
-%dir %{py3_sitedir}/PyQt5
-%attr(755,root,root) %{py3_sitedir}/PyQt5/sip.so
-
%files -n python3-sip-devel
%defattr(644,root,root,755)
%{py3_sitedir}/sipconfig.py
%{py3_sitedir}/__pycache__/sipconfig.cpython-*.py[co]
%{py3_sitedir}/__pycache__/sipdistutils.cpython-*.py[co]
%{py3_sitedir}/sip.pyi
-%{py3_sitedir}/PyQt5/sip.pyi
%{py3_incdir}/sip.h
+
+%if %{with pyqt4}
+%files -n python3-PyQt4-sip
+%defattr(644,root,root,755)
+%dir %{py3_sitedir}/PyQt4
+%attr(755,root,root) %{py3_sitedir}/PyQt4/sip.so
+
+%files -n python3-PyQt4-sip-devel
+%defattr(644,root,root,755)
+%{py3_sitedir}/PyQt4/sip.pyi
+%endif
+
+%if %{with pyqt5}
+%files -n python3-PyQt5-sip
+%defattr(644,root,root,755)
+%dir %{py3_sitedir}/PyQt5
+%attr(755,root,root) %{py3_sitedir}/PyQt5/sip.so
+
+%files -n python3-PyQt5-sip-devel
+%defattr(644,root,root,755)
+%{py3_sitedir}/PyQt5/sip.pyi
+%endif
%endif