[SSSD] [PATCH] Incorrect *.py[co] files placement

Jakub Hrozek jhrozek at redhat.com
Wed Mar 27 14:15:55 UTC 2013


On Wed, Mar 27, 2013 at 07:32:34AM -0400, Stephen Gallagher wrote:
> >> pure python files moved to noarch package python-sssdconfig. 
> >> patch attached
> >> 
> >> Just one notice. python-sssdconfig contains file 
> >> /usr/lib/python2.7/site-packages/SSSDConfig/ipachangeconf.py but
> >> very simillar file is part of package freeipa-client 
> >> /usr/lib/python2.7/site-packages/ipaclient/ipachangeconf.py
> >> 
> >> SSSDConfig/ipachangeconf.py contains extra class
> >> SSSDChangeConf(IPAChangeConf), but there is a lot of code
> >> duplication.
> >> 
> > 
> > Yes, it was copied from ipachangeconf.py and then modified. It's
> > not currently used, I think, it was used back when we needed to
> > convert the old config format to the new one using the upgrade
> > config script.
> > 
> 
> Actually, no. We originally were using python-iniparse to do the
> actual storing and changing of values, but we later discovered that
> there were some serious limitations with it (specifically, it would
> not maintain ordering of options and comments), so we switched over to
> the FreeIPA one.
> 

git grep ipachangeconf says you are right.

> We really shouldn't be bundling that in two places. The original plan
> was going to be to have SSSD's copy be the official one and let
> FreeIPA consume it. I guess that never happened. We should open a
> ticket and get those two merged back together before they drift further.
> 

OK, I opened https://fedorahosted.org/freeipa/ticket/3532 to reuse
ipachangeconf from ipa (or the other way around).

> 
> > We keep it around in case we needed to munge contents of sssd.conf
> > on upgrades again.
> > 
> >> LS
> >> 
> > 
> >> From 7bac91bb8c577a0da5090e4d7630252e23810a6f Mon Sep 17 00:00:00
> >> 2001 From: Lukas Slebodnik <lslebodn at redhat.com> Date: Tue, 26
> >> Mar 2013 09:51:25 +0100 Subject: [PATCH] Incorrect *.py[co] files
> >> placement
> >> 
> >> Package sssd contains python files. Python files should be
> >> installed in noarch package, therefore all python files from
> >> directory src/config/SSSDConfig was moved to new noarch package
> >> python-sssdconfig.
> >> 
> >> https://fedorahosted.org/sssd/ticket/1839 --- 
> >> contrib/sssd.spec.in | 22 ++++++++++++++++++---- 1 file changed,
> >> 18 insertions(+), 4 deletions(-)
> >> 
> >> diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in index
> >> dd8113c06a4d98456f928883b085f6ba982eb71c..8a92cb55f68c4816f469d467889a1a5ac6fdb266
> >> 100644 --- a/contrib/sssd.spec.in +++ b/contrib/sssd.spec.in @@
> >> -61,6 +61,7 @@ Requires: libtdb >= 1.1.3 Requires:
> >> sssd-client%{?_isa} = %{version}-%{release} Requires: libipa_hbac
> >> = %{version}-%{release} Requires: libsss_idmap =
> >> %{version}-%{release} +Requires: python-sssdconfig =
> >> %{version}-%{release}
> > 
> > I think the name should be something like sssd-configapi, not
> > starting with python-. I think that python- prefix is more often
> > used for 3rd party modules or wrappers, see yum list python-\*
> > 
> 
> Incorrect. The current Fedora packaging guidelines require that all
> packages providing a Python module that are expected to be consumed by
> other projects are supposed to use the python-* prefix. See
> http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Addon_Packages_.28python_modules.29

I see, does this guideline apply only for packages that are usable on
its own (only with python) or python packages in general? I still think
that it would be a strange guideline to require python bindings for
libfoo to be names python-libfoo and not libfoo-python. 

> 
> 
> >> Requires: cyrus-sasl-gssapi %if (0%{?use_systemd} == 1) 
> >> Requires(post): systemd-units systemd-sysv @@ -170,6 +171,15 @@
> >> Also provides several other administrative tools: * sss_seed
> >> which pre-creates a user entry for use in kickstarts *
> >> sss_obfuscate for generating an obfuscated LDAP password
> >> 
> >> +%package -n python-sssdconfig +Summary: SSSD and IPA
> >> configuration file manipulation classes and functions +Group:
> >> Applications/System +License: GPLv3+ +BuildArch: noarch + 
> >> +%description -n python-sssdconfig +Provides python files for
> >> manipulation SSSD and IPA configuration files. +
> > 
> > Does this package stanza allow downgrades? I haven't tested that 
> > scenario but what if you want to downgrade from set that includes 
> > python-sssdconfig to the old package set where the configapi was
> > part of sssd? I think that in that case python-sssdconfig should be
> > removed.
> > 
> > Maybe it should Conflict: with sssd version lower than the one
> > that introduces this subpackage.
> 
> Yeah, downgrades after splitting off subpackages with
> formerly-included functionality are hairy. Conflicts: won't actually
> help, because you can't remove it ahead of time (or you'll remove SSSD
> which depends on it).
> 
> If we make this change, we're making a conscious decision that
> downgrading won't work without manual effort. We'd probably need to
> document that.
> 

We will be splitting the providers into subpackages in 1.10 anyway
(because AD provider is acquiring Samba dependencies we don't want to
keep in general) so we'll likely end up in this situation anyway.

I was more concerned about users who might install packages from
ipa-devel because a bug is resolved there but later might go back to
Fedora packages. But those are probably a real minority (and skilled
users too).

> Downgrades are not generally recommended in Fedora anyway. For other
> distros, it gets a little hairy. We may want to discuss this with the
> yum folks. I think libsolv has some tricks to get around this, but
> we're not using libsolv in Fedora right now.

Other distros might use totally different packaging even in the case
they use RPM at all.



More information about the sssd-devel mailing list