On (05/07/16 13:39), Lukas Slebodnik wrote:
>ehlo,
>
>SSSD python packages were renamed in fedora few months ago.
> python-* -> python2-*
>But we didn't rename packages in upstream spec file and therefore
>upgrade from fedora 24 -> sssd master is not possible.
>
>Attached patch shoudl fix the issue.
>
>BTW here are provides and obsoletes for current master
>  sh$ rpm -qp --provides python-libipa_hbac-1.13.92-0.fc24.x86_64.rpm
>  libipa_hbac-python = 1.13.92-0.fc24
>  python-libipa_hbac = 1.13.92-0.fc24
>  python-libipa_hbac(x86-64) = 1.13.92-0.fc24
>
>  sh$ rpm -qp --obsoletes python-libipa_hbac-1.13.92-0.fc24.x86_64.rpm
>  libipa_hbac-python < 1.12.90
>
>and after renaming
>  sh$ rpm -qp --provides python2-libipa_hbac-1.13.92-0.el6.x86_64.rpm
>  libipa_hbac-python = 1.13.92-0.el6
>  python-libipa_hbac = 1.13.92-0.el6
>  python2-libipa_hbac = 1.13.92-0.el6
>  python2-libipa_hbac(x86-64) = 1.13.92-0.el6
>
>  sh$ rpm -qp --obsoletes python2-libipa_hbac-1.13.92-0.el6.x86_64.rpm
>  libipa_hbac-python < 1.12.90
>  python-libipa_hbac < 1.13.92-0.el6
>

Attached is an updated patch.

http://sssd-ci.duckdns.org/logs-test/job/4/51/summary.html

LS
From e6dc3ae717ddddf88c6887bde75d4f1ed0097d78 Mon Sep 17 00:00:00 2001
From: Lukas Slebodnik <[email protected]>
Date: Wed, 14 Sep 2016 14:31:29 +0200
Subject: [PATCH] SPEC: Rename python packages using macro %python_provide

Fedora and epel contains macro %python_provide
for simpler renaming of python packages. It will generate correct
provides and obsoletes.
---
 contrib/sssd.spec.in | 86 ++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 66 insertions(+), 20 deletions(-)

diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in
index 
1f79ca7cd0a56dc1ab9c951abe11dc216ef3ad03..523416d20dd087fc30eb4d5d8b79bb1e6195c57c
 100644
--- a/contrib/sssd.spec.in
+++ b/contrib/sssd.spec.in
@@ -11,6 +11,42 @@
 %{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from 
distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
 %endif
 
+%{!?python_provide: %global need_python_provide 1}
+%if 0%{?need_python_provide}
+%define python_provide() %{lua:\
+        function string.starts(String,Start)\
+                return string.sub(String,1,string.len(Start))==Start\
+        end\
+        package = rpm.expand("%{?1:%{1}}");\
+        vr = rpm.expand("%{?epoch:%{epoch}:}%{version}-%{release}")
+        if (string.starts(package, "python2-")) then\
+                if (rpm.expand("%{?buildarch}") ~= "noarch") then\
+                        str = "Provides: python-" .. 
string.sub(package,9,string.len(package)) .. "%{?_isa} = " .. vr;\
+                        print(rpm.expand(str));\
+                end\
+                print("\\nProvides: python-");\
+                print(string.sub(package,9,string.len(package)));\
+                print(" = ");\
+                print(vr);\
+                --Obsoleting the previous default python package\
+                if (rpm.expand("%{?buildarch}") ~= "noarch") then\
+                        str = "\\nObsoletes: python-" .. 
string.sub(package,9,string.len(package)) .. "%{?_isa} < " .. vr;\
+                        print(rpm.expand(str));\
+                end\
+                print("\\nObsoletes: python-");\
+                print(string.sub(package,9,string.len(package)));\
+                print(" < ");\
+                print(vr);\
+        elseif (string.starts(package, "python3-")) then\
+                --No unversioned provides as python3 is not default\
+        else\
+                print("%python_provide: ERROR: ");\
+                print(package);\
+                print(" not recognized.");\
+        end\
+}
+%endif
+
 # Fedora and RHEL 6+
 # we don't want to provide private python extension libs
 %define __provides_exclude_from %{python2_sitearch}/.*\.so$
@@ -95,7 +131,7 @@ Requires: sssd-proxy = %{version}-%{release}
 %if (0%{?with_python3} == 1)
 Requires: python3-sssdconfig = %{version}-%{release}
 %else
-Requires: python-sssdconfig = %{version}-%{release}
+Requires: python2-sssdconfig = %{version}-%{release}
 %endif
 
 %global servicename sssd
@@ -253,8 +289,8 @@ Requires: sssd-common = %{version}-%{release}
 Requires: python3-sss = %{version}-%{release}
 Requires: python3-sssdconfig = %{version}-%{release}
 %else
-Requires: python-sss = %{version}-%{release}
-Requires: python-sssdconfig = %{version}-%{release}
+Requires: python2-sss = %{version}-%{release}
+Requires: python2-sssdconfig = %{version}-%{release}
 %endif
 
 %description tools
@@ -267,13 +303,14 @@ Also provides several other administrative tools:
     * sss_obfuscate for generating an obfuscated LDAP password
     * sssctl -- an sssd status and control utility
 
-%package -n python-sssdconfig
+%package -n python2-sssdconfig
 Summary: SSSD and IPA configuration file manipulation classes and functions
 Group: Applications/System
 License: GPLv3+
 BuildArch: noarch
+%{python_provide python2-sssdconfig}
 
-%description -n python-sssdconfig
+%description -n python2-sssdconfig
 Provides python2 files for manipulation SSSD and IPA configuration files.
 
 %if (0%{?with_python3} == 1)
@@ -282,18 +319,20 @@ Summary: SSSD and IPA configuration file manipulation 
classes and functions
 Group: Applications/System
 License: GPLv3+
 BuildArch: noarch
+%{python_provide python3-sssdconfig}
 
 %description -n python3-sssdconfig
 Provides python3 files for manipulation SSSD and IPA configuration files.
 %endif
 
-%package -n python-sss
+%package -n python2-sss
 Summary: Python2 bindings for sssd
 Group: Development/Libraries
 License: LGPLv3+
 Requires: sssd-common = %{version}-%{release}
+%{python_provide python2-sss}
 
-%description -n python-sss
+%description -n python2-sss
 Provides python2 module for manipulating users, groups, and nested groups in
 SSSD when using id_provider = local in /etc/sssd/sssd.conf.
 
@@ -307,6 +346,7 @@ Summary: Python3 bindings for sssd
 Group: Development/Libraries
 License: LGPLv3+
 Requires: sssd-common = %{version}-%{release}
+%{python_provide python3-sss}
 
 %description -n python3-sss
 Provides python3 module for manipulating users, groups, and nested groups in
@@ -317,12 +357,13 @@ Also provides several other useful python3 bindings:
     * class for obfuscation of passwords
 %endif
 
-%package -n python-sss-murmur
+%package -n python2-sss-murmur
 Summary: Python2 bindings for murmur hash function
 Group: Development/Libraries
 License: LGPLv3+
+%{python_provide python2-sss-murmur}
 
-%description -n python-sss-murmur
+%description -n python2-sss-murmur
 Provides python2 module for calculating the murmur hash version 3
 
 %if (0%{?with_python3} == 1)
@@ -330,6 +371,7 @@ Provides python2 module for calculating the murmur hash 
version 3
 Summary: Python3 bindings for murmur hash function
 Group: Development/Libraries
 License: LGPLv3+
+%{python_provide python3-sss-murmur}
 
 %description -n python3-sss-murmur
 Provides python3 module for calculating the murmur hash version 3
@@ -459,16 +501,17 @@ Requires: libipa_hbac = %{version}-%{release}
 %description -n libipa_hbac-devel
 Utility library to validate FreeIPA HBAC rules for authorization requests
 
-%package -n python-libipa_hbac
+%package -n python2-libipa_hbac
 Summary: Python2 bindings for the FreeIPA HBAC Evaluator library
 Group: Development/Libraries
 License: LGPLv3+
 Requires: libipa_hbac = %{version}-%{release}
 Provides: libipa_hbac-python = %{version}-%{release}
 Obsoletes: libipa_hbac-python < 1.12.90
+%{python_provide python2-libipa_hbac}
 
-%description -n python-libipa_hbac
-The python-libipa_hbac contains the bindings so that libipa_hbac can be
+%description -n python2-libipa_hbac
+The python2-libipa_hbac contains the bindings so that libipa_hbac can be
 used by Python applications.
 
 %if (0%{?with_python3} == 1)
@@ -477,6 +520,7 @@ Summary: Python3 bindings for the FreeIPA HBAC Evaluator 
library
 Group: Development/Libraries
 License: LGPLv3+
 Requires: libipa_hbac = %{version}-%{release}
+%{python_provide python3-libipa_hbac}
 
 %description -n python3-libipa_hbac
 The python3-libipa_hbac contains the bindings so that libipa_hbac can be
@@ -502,16 +546,17 @@ Requires: libsss_nss_idmap = %{version}-%{release}
 %description -n libsss_nss_idmap-devel
 Utility library for SID and certificate based lookups
 
-%package -n python-libsss_nss_idmap
+%package -n python2-libsss_nss_idmap
 Summary: Python2 bindings for libsss_nss_idmap
 Group: Development/Libraries
 License: LGPLv3+
 Requires: libsss_nss_idmap = %{version}-%{release}
 Provides: libsss_nss_idmap-python = %{version}-%{release}
 Obsoletes: libsss_nss_idmap-python < 1.12.90
+%{python_provide python2-libsss_nss_idmap}
 
-%description -n python-libsss_nss_idmap
-The python-libsss_nss_idmap contains the bindings so that libsss_nss_idmap can
+%description -n python2-libsss_nss_idmap
+The python2-libsss_nss_idmap contains the bindings so that libsss_nss_idmap can
 be used by Python applications.
 
 %if (0%{?with_python3} == 1)
@@ -520,6 +565,7 @@ Summary: Python3 bindings for libsss_nss_idmap
 Group: Development/Libraries
 License: LGPLv3+
 Requires: libsss_nss_idmap = %{version}-%{release}
+%{python_provide python3-libsss_nss_idmap}
 
 %description -n python3-libsss_nss_idmap
 The python3-libsss_nss_idmap contains the bindings so that libsss_nss_idmap can
@@ -963,7 +1009,7 @@ done
 %{_mandir}/man8/sss_seed.8*
 %{_mandir}/man8/sssctl.8*
 
-%files -n python-sssdconfig -f python2_sssdconfig.lang
+%files -n python2-sssdconfig -f python2_sssdconfig.lang
 %defattr(-,root,root,-)
 %dir %{python2_sitelib}/SSSDConfig
 %{python2_sitelib}/SSSDConfig/*.py*
@@ -977,7 +1023,7 @@ done
 %{python3_sitelib}/SSSDConfig/__pycache__/*.py*
 %endif
 
-%files -n python-sss
+%files -n python2-sss
 %defattr(-,root,root,-)
 %{python2_sitearch}/pysss.so
 
@@ -987,7 +1033,7 @@ done
 %{python3_sitearch}/pysss.so
 %endif
 
-%files -n python-sss-murmur
+%files -n python2-sss-murmur
 %defattr(-,root,root,-)
 %{python2_sitearch}/pysss_murmur.so
 
@@ -1033,7 +1079,7 @@ done
 %{_libdir}/libsss_nss_idmap.so
 %{_libdir}/pkgconfig/sss_nss_idmap.pc
 
-%files -n python-libsss_nss_idmap
+%files -n python2-libsss_nss_idmap
 %defattr(-,root,root,-)
 %{python2_sitearch}/pysss_nss_idmap.so
 
@@ -1043,7 +1089,7 @@ done
 %{python3_sitearch}/pysss_nss_idmap.so
 %endif
 
-%files -n python-libipa_hbac
+%files -n python2-libipa_hbac
 %defattr(-,root,root,-)
 %{python2_sitearch}/pyhbac.so
 
-- 
2.9.3

_______________________________________________
sssd-devel mailing list
[email protected]
https://lists.fedorahosted.org/admin/lists/[email protected]

Reply via email to