]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm.spec
- build both python2 and python3 modules
[packages/rpm.git] / rpm.spec
index 80de62baa976fcbe7b501c4f0c2c8a638d738e76..d59aa28190824d632d797926a229afa4f9968115 100644 (file)
--- a/rpm.spec
+++ b/rpm.spec
@@ -5,7 +5,8 @@
 # Conditional build:
 %bcond_with    static          # build static rpm+rpmi
 %bcond_without apidocs         # don't generate documentation with doxygen
 # Conditional build:
 %bcond_with    static          # build static rpm+rpmi
 %bcond_without apidocs         # don't generate documentation with doxygen
-%bcond_without python          # don't build python bindings
+%bcond_without python2         # don't build python bindings
+%bcond_without python3         # don't build python bindings
 %bcond_without selinux         # build without selinux support
 %bcond_without recommends_tags # build without Recommends tag (bootstrapping)
 %bcond_with    db61            # use DB 6.1 instead of 5.3
 %bcond_without selinux         # build without selinux support
 %bcond_without recommends_tags # build without Recommends tag (bootstrapping)
 %bcond_with    db61            # use DB 6.1 instead of 5.3
@@ -113,9 +114,12 @@ BuildRequires:     lua53-devel >= 5.3.5
 BuildRequires: ossp-uuid-devel
 BuildRequires: patch >= 2.2
 BuildRequires: popt-devel >= %{reqpopt_ver}
 BuildRequires: ossp-uuid-devel
 BuildRequires: patch >= 2.2
 BuildRequires: popt-devel >= %{reqpopt_ver}
-%{?with_python:BuildRequires:  python-devel >= 1:2.3}
+%{?with_python2:BuildRequires: python-devel >= 1:2.3}
+%{?with_python3:BuildRequires: python3-devel}
 BuildRequires: python-modules >= 1:2.3
 BuildRequires: python-modules >= 1:2.3
-%{?with_python:BuildRequires:  rpm-pythonprov}
+%if %{with python2} || %{with python3}
+BuildRequires: rpm-pythonprov
+%endif
 BuildRequires: tcl
 BuildRequires: xz-devel
 BuildRequires: zlib-devel
 BuildRequires: tcl
 BuildRequires: xz-devel
 BuildRequires: zlib-devel
@@ -597,7 +601,7 @@ Requires:   python
 Obsoletes:     rpm-python
 
 %description -n python-rpm
 Obsoletes:     rpm-python
 
 %description -n python-rpm
-The rpm-python package contains a module which permits applications
+The python-rpm package contains a module which permits applications
 written in the Python programming language to use the interface
 supplied by RPM (RPM Package Manager) libraries.
 
 written in the Python programming language to use the interface
 supplied by RPM (RPM Package Manager) libraries.
 
@@ -605,20 +609,51 @@ This package should be installed if you want to develop Python
 programs that will manipulate RPM packages and databases.
 
 %description -n python-rpm -l pl.UTF-8
 programs that will manipulate RPM packages and databases.
 
 %description -n python-rpm -l pl.UTF-8
-Pakiet rpm-python zawiera moduł, który pozwala aplikacjom napisanym w
+Pakiet python-rpm zawiera moduł, który pozwala aplikacjom napisanym w
 Pythonie na używanie interfejsu dostarczanego przez biblioteki RPM-a.
 
 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
 Pythonie programy manipulujące pakietami i bazami danych rpm.
 
 %description -n python-rpm -l pt_BR.UTF-8
 Pythonie na używanie interfejsu dostarczanego przez biblioteki RPM-a.
 
 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
 Pythonie programy manipulujące pakietami i bazami danych rpm.
 
 %description -n python-rpm -l pt_BR.UTF-8
-O pacote rpm-python contém um módulo que permite que aplicações
+O pacote python-rpm contém um módulo que permite que aplicações
 escritas em Python utilizem a interface fornecida pelas bibliotecas
 RPM (RPM Package Manager).
 
 Esse pacote deve ser instalado se você quiser desenvolver programas em
 Python para manipular pacotes e bancos de dados RPM.
 
 escritas em Python utilizem a interface fornecida pelas bibliotecas
 RPM (RPM Package Manager).
 
 Esse pacote deve ser instalado se você quiser desenvolver programas em
 Python para manipular pacotes e bancos de dados RPM.
 
+%package -n python3-rpm
+Summary:       Python 3 interface to RPM library
+Summary(pl.UTF-8):     Interfejs Pythona 3 do biblioteki RPM-a
+Summary(pt_BR.UTF-8):  Módulo Python 3 para aplicativos que manipulam pacotes RPM
+Group:         Development/Languages/Python
+Requires:      %{name} = %{version}-%{release}
+Requires:      python3
+
+%description -n python3-rpm
+The python3-rpm package contains a module which permits applications
+written in the Python 3 programming language to use the interface
+supplied by RPM (RPM Package Manager) libraries.
+
+This package should be installed if you want to develop Python 3
+programs that will manipulate RPM packages and databases.
+
+%description -n python3-rpm -l pl.UTF-8
+Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
+Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki RPM-a.
+
+Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
+Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
+
+%description -n python3-rpm -l pt_BR.UTF-8
+O pacote python3-rpm contém um módulo que permite que aplicações
+escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
+RPM (RPM Package Manager).
+
+Esse pacote deve ser instalado se você quiser desenvolver programas em
+Python 3 para manipular pacotes e bancos de dados RPM.
+
 %package apidocs
 Summary:       RPM API documentation and guides
 Summary(pl.UTF-8):     Documentacja API RPM-a i przewodniki
 %package apidocs
 Summary:       RPM API documentation and guides
 Summary(pl.UTF-8):     Documentacja API RPM-a i przewodniki
@@ -692,7 +727,8 @@ CPPFLAGS="-I/usr/include/lua53 %{rpmcppflags}"
        WITH_PERL_VERSION=no \
        __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
        __GPG=%{_bindir}/gpg \
        WITH_PERL_VERSION=no \
        __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
        __GPG=%{_bindir}/gpg \
-       %{?with_python:PYTHON=python%{py_ver}} \
+       %{?with_python3:PYTHON=python3} \
+       %{!?with_python3:%{?with_python2:PYTHON=python2}} \
        --disable-silent-rules \
        --enable-shared \
        --enable-static \
        --disable-silent-rules \
        --enable-shared \
        --enable-static \
@@ -704,7 +740,9 @@ CPPFLAGS="-I/usr/include/lua53 %{rpmcppflags}"
        --with-acl \
        --with-audit \
        --with-archive \
        --with-acl \
        --with-audit \
        --with-archive \
-       %{?with_python:--enable-python} \
+%if %{with python2} || %{with python3}
+       --enable-python \
+%endif
        --with-selinux=%{!?with_selinux:no}%{?with_selinux:yes} \
        --with-vendor=pld
 
        --with-selinux=%{!?with_selinux:no}%{?with_selinux:yes} \
        --with-vendor=pld
 
@@ -728,6 +766,17 @@ if tools/rpmdb_reset -V 2>&1 | grep "t match library version"; then
        exit 1
 fi
 
        exit 1
 fi
 
+%if %{with python2}
+cd python
+%py_build
+cd ..
+%endif
+
+%if %{with python3}
+cd python
+%py3_build
+%endif
+
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
@@ -810,14 +859,9 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Obsoletename
 touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Providename
 touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Requirename
 
 touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Providename
 touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Requirename
 
-cp -p tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/bin
-cp -p tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/bin
-#install %{SOURCE29} $RPM_BUILD_ROOT%{_rpmlibdir}/bin/dbupgrade.sh
-
-# create macro loading wrappers for backward compatibility
-for m in gstreamer java mono perl php python; do
-       echo "%%{load:%{_rpmlibdir}/macros.d/$m}" >$RPM_BUILD_ROOT%{_rpmlibdir}/macros.$m
-done
+cp -p tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/
+cp -p tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/
+cp -p %{SOURCE29} $RPM_BUILD_ROOT%{_rpmlibdir}/dbupgrade.sh
 
 # move rpm to /bin
 mv $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
 
 # move rpm to /bin
 mv $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
@@ -827,11 +871,21 @@ for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
        ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
 done
 
        ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
 done
 
-%if %{with python}
-%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
-%py_comp $RPM_BUILD_ROOT%{py_sitedir}
+%if %{with python2}
+# Remove anything that rpm make install might put there
+%{__rm} -rf $RPM_BUILD_ROOT%{py_sitedir}
+cd python
+%py_install
+%py_postclean
+cd ..
+%endif
 
 
-%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,py}
+%if %{with python3}
+# Remove anything that rpm make install might put there
+%{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
+cd python
+%py3_install
+cd ..
 %endif
 
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
 %endif
 
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
@@ -854,7 +908,7 @@ fi
 
 %posttrans
 if [ -e /var/lib/rpm/Packages ] && \
 
 %posttrans
 if [ -e /var/lib/rpm/Packages ] && \
-               ! %{_rpmlibdir}/bin/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
+               ! %{_rpmlibdir}/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
        if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
                        /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
                echo
        if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
                        /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
                echo
@@ -865,7 +919,7 @@ if [ -e /var/lib/rpm/Packages ] && \
        echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
        echo 'you should ignore it and restart poldek'
        echo
        echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
        echo 'you should ignore it and restart poldek'
        echo
-       %{_rpmlibdir}/bin/dbupgrade.sh
+       %{_rpmlibdir}/dbupgrade.sh
 fi
 
 %triggerpostun -- %{name} < 4.4.9-44
 fi
 
 %triggerpostun -- %{name} < 4.4.9-44
@@ -944,12 +998,9 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 
 %attr(755,root,root) %{_rpmlibdir}/hrmib-cache
 
 
 %attr(755,root,root) %{_rpmlibdir}/hrmib-cache
 
-%dir %{_rpmlibdir}/bin
-#%attr(755,root,root) %{_rpmlibdir}/bin/dbconvert
-#%attr(755,root,root) %{_rpmlibdir}/bin/dbupgrade.sh
-#%attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_checkversion
-#%attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_reset
-#%attr(755,root,root) %{_rpmlibdir}/bin/rpmdbchk
+%attr(755,root,root) %{_rpmlibdir}/dbupgrade.sh
+%attr(755,root,root) %{_rpmlibdir}/rpmdb_checkversion
+%attr(755,root,root) %{_rpmlibdir}/rpmdb_reset
 
 %files base
 %defattr(644,root,root,755)
 
 %files base
 %defattr(644,root,root,755)
@@ -1043,13 +1094,22 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 #%{_rpmlibdir}/macros.d/selinux
 #%{_rpmlibdir}/macros.d/tcl
 #%{_rpmlibdir}/macros.rpmbuild
 #%{_rpmlibdir}/macros.d/selinux
 #%{_rpmlibdir}/macros.d/tcl
 #%{_rpmlibdir}/macros.rpmbuild
-# compat wrappers
-%{_rpmlibdir}/macros.gstreamer
-%{_rpmlibdir}/macros.java
-%{_rpmlibdir}/macros.mono
-%{_rpmlibdir}/macros.perl
-%{_rpmlibdir}/macros.php
-%{_rpmlibdir}/macros.python
+
+%dir %{_rpmlibdir}/fileattrs
+%{_rpmlibdir}/fileattrs/debuginfo.attr
+%{_rpmlibdir}/fileattrs/desktop.attr
+%{_rpmlibdir}/fileattrs/elf.attr
+%{_rpmlibdir}/fileattrs/font.attr
+%{_rpmlibdir}/fileattrs/libtool.attr
+%{_rpmlibdir}/fileattrs/metainfo.attr
+%{_rpmlibdir}/fileattrs/ocaml.attr
+%{_rpmlibdir}/fileattrs/perl.attr
+%{_rpmlibdir}/fileattrs/perllib.attr
+%{_rpmlibdir}/fileattrs/php.attr
+%{_rpmlibdir}/fileattrs/pkgconfig.attr
+%{_rpmlibdir}/fileattrs/python.attr
+%{_rpmlibdir}/fileattrs/pythondist.attr
+%{_rpmlibdir}/fileattrs/script.attr
 
 %attr(755,root,root) %{_bindir}/gendiff
 %attr(755,root,root) %{_bindir}/rpmbuild
 
 %attr(755,root,root) %{_bindir}/gendiff
 %attr(755,root,root) %{_bindir}/rpmbuild
@@ -1088,12 +1148,23 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 %attr(755,root,root) %{_rpmlibdir}/php.req
 %attr(755,root,root) %{_rpmlibdir}/php.req.php
 
 %attr(755,root,root) %{_rpmlibdir}/php.req
 %attr(755,root,root) %{_rpmlibdir}/php.req.php
 
-%if %{with python}
+%if %{with python2}
 %files -n python-rpm
 %defattr(644,root,root,755)
 %dir %{py_sitedir}/rpm
 %attr(755,root,root) %{py_sitedir}/rpm/*.so
 %{py_sitedir}/rpm/*.py[co]
 %files -n python-rpm
 %defattr(644,root,root,755)
 %dir %{py_sitedir}/rpm
 %attr(755,root,root) %{py_sitedir}/rpm/*.so
 %{py_sitedir}/rpm/*.py[co]
+%{py_sitedir}/rpm-%{version}-py*.egg-info
+%endif
+
+%if %{with python3}
+%files -n python3-rpm
+%defattr(644,root,root,755)
+%dir %{py3_sitedir}/rpm
+%attr(755,root,root) %{py3_sitedir}/rpm/*.so
+%{py3_sitedir}/rpm/*.py
+%{py3_sitedir}/rpm-%{version}-py*.egg-info
+%{py3_sitedir}/rpm/__pycache__
 %endif
 
 %if %{with apidocs}
 %endif
 
 %if %{with apidocs}
@@ -1129,20 +1200,6 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 %attr(755,root,root) %{_rpmlibdir}/script.req
 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
 
 %attr(755,root,root) %{_rpmlibdir}/script.req
 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
 
-%{_rpmlibdir}/fileattrs/debuginfo.attr
-%{_rpmlibdir}/fileattrs/desktop.attr
-%{_rpmlibdir}/fileattrs/elf.attr
-%{_rpmlibdir}/fileattrs/font.attr
-%{_rpmlibdir}/fileattrs/libtool.attr
-%{_rpmlibdir}/fileattrs/metainfo.attr
-%{_rpmlibdir}/fileattrs/ocaml.attr
-%{_rpmlibdir}/fileattrs/perl.attr
-%{_rpmlibdir}/fileattrs/perllib.attr
-%{_rpmlibdir}/fileattrs/php.attr
-%{_rpmlibdir}/fileattrs/pkgconfig.attr
-%{_rpmlibdir}/fileattrs/python.attr
-%{_rpmlibdir}/fileattrs/pythondist.attr
-%{_rpmlibdir}/fileattrs/script.attr
 
 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
 
 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
This page took 0.03423 seconds and 4 git commands to generate.