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

Stephen Gallagher sgallagh at redhat.com
Wed Mar 27 11:32:34 UTC 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03/27/2013 05:12 AM, Jakub Hrozek wrote:
> On Wed, Mar 27, 2013 at 09:14:31AM +0100, Lukas Slebodnik wrote:
>> On (25/03/13 08:04), Stephen Gallagher wrote:
>>> On Mon 25 Mar 2013 06:42:46 AM EDT, Jakub Hrozek wrote:
>>>> On Mon, Mar 25, 2013 at 08:49:17AM +0100, Lukas Slebodnik
>>>> wrote:
>>>>> On (22/03/13 15:01), Jakub Hrozek wrote:
>>>>>> On Wed, Mar 20, 2013 at 07:05:49PM +0100, Lukas Slebodnik
>>>>>>  wrote:
>>>>>>> Package sssd contains python files. Python files which
>>>>>>> are not packaged in noarch package must be installed in
>>>>>>>  ${python_sitearch} directory and not in
>>>>>>> ${python_sitelib} directory
>>>>>>> 
>>>>>>> Autoconf detected variable $(pyexecdir) is equivalent
>>>>>>> of specfile ${python_sitearch}
>>>>>>> 
>>>>>>> https://fedorahosted.org/sssd/ticket/1839
>>>>>>> 
>>>>>>> LS
>>>>>> 
>>>>>>> -		cd $(builddir)/src/config; $(PYTHON) setup.py build
>>>>>>>  --build-base $(abs_builddir)/src/config install 
>>>>>>> $(DISTSETUPOPTS) --prefix=$(PYTHON_PREFIX) 
>>>>>>> --record=$(abs_builddir)/src/config/.files; \ +		cd 
>>>>>>> $(builddir)/src/config; $(PYTHON) setup.py build 
>>>>>>> --build-base $(abs_builddir)/src/config install 
>>>>>>> $(DISTSETUPOPTS) --prefix=$(PYTHON_PREFIX) 
>>>>>>> --record=$(abs_builddir)/src/config/.filesi
>>>>>> ^^^^^^^^^^^ "filesi" sounds like a typo to me
>>>>>>> --install-purelib=$(pyexecdir); \
>>>>> typo fixed. And I also reformat those lines to become more
>>>>>  readable.
>>>>> 
>>>>> LS
>>>> 
>>>> Ack, RPM build and upgrade went fine. I could also import 
>>>> SSSDConfig with the patch.
>>> 
>>> 
>>> Nack.
>>> 
>>> This patch misses the point of the original bug. Rel-eng was 
>>> complaining that we had python modules contained in an
>>> arch-specific package that were being put on disk in a noarch
>>> location. Rel-eng made the incorrect assumption that this meant
>>> that the modules were actually arch-specific, which they are
>>> not; SSSDConfig is pure-python and safely noarch.
>>> 
>>> The correct solution to this is for us to add a
>>> python-sssdconfig noarch subpackage and Requires: it from the
>>> 'sssd' package (for backwards compatibility).
>> 
>> 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.

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.


> 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


>> 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.

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.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlFS2NIACgkQeiVVYja6o6MqfwCeITW4bTL5aGvcYCctadiujzfz
YZgAoK1RDNWu1efW+B9UybM9DJnhZ4lN
=YgdE
-----END PGP SIGNATURE-----



More information about the sssd-devel mailing list