[opensuse-packaging] python modules as noarch
Fellow python packagers, here's something i've been working on during and post-hackweek, and that is adopting some of Fedora's modifications so that we can build pure python modules as noarch. At the moment, this is enabled in OBS project devel:languages:python:Factory (and the corresponding "bleeding_edge_python" repositories in devel:languages:python) and used successfully in python-setuptools package. I'll be submitting to Factory shortly and i'd love to have this feature in 11.2. But be aware, this might (and will) break things. == Short how-to == is now in Python Packaging guidelines on the wiki: http://en.opensuse.org/Packaging/Python#Noarch_modules Please review your python modules. In many cases, it's enough to put "BuildArch: noarch" into the spec file. (Of course, don't do that now. Once the modified python is accepted into Factory, i'll post another mail.) == Technical details == The modified python now keeps "purelib" at /usr/lib/python2.6, and "platlib" at /usr/lib(64)/python2.6. So this modification is only meaningful on 64bits anyway, 32bits are not affected at all. In addition to this, /usr/lib/python2.6{,/site-packages} is now created and owned by python-base, regardless of platform, and added to python's search path automagically. Platform-dependent search path comes up first, so in case you installed the 32bit and 64bit versions of the same C module, the 64bit version is found and used first. == Troubleshooting / Possible breakage == 32bit side is completely unaffected, all the paths are the same. Platform-dependent modules are not affected too. They still install everything into /usr/lib64 on 64bits. So let's discuss pure python modules on 64bits, shall we? Packages using --record-rpm for keeping filelist should be (and are) working fine with the new python. They will just install into /usr/lib on all platforms. If not changed to noarch, it will make installing 32bit and 64bit versions alongside each other impossible - but on the other hand, you don't need to do it anyway. Packages keeping their own filelists in spec files will break - distutils/setuptools will install into purelib directory, but %py_sitelib macro is pointing into platlib. Such packages need to be changed - either by using --record-rpm, or if that is not possible, using the new macros adopted from Fedora. %python_sitelib points to /usr/lib/python2.6/site-packages %python_sitearch is /usr/lib64/python2.6/site-packages (same thing as %py_sitelib, actually). I'm not aware of any other possible problems besides the file list issue. (apart from the obvious "there's no guarantee that byte-compiled files will stay platform-independent") regards m. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Am Montag 03 August 2009 schrieb Jan Matejek:
Fellow python packagers,
here's something i've been working on during and post-hackweek, and that is adopting some of Fedora's modifications so that we can build pure python modules as noarch.
At the moment, this is enabled in OBS project devel:languages:python:Factory (and the corresponding "bleeding_edge_python" repositories in devel:languages:python) and used successfully in python-setuptools package. I'll be submitting to Factory shortly and i'd love to have this feature in 11.2. But be aware, this might (and will) break things.
Then why do you submit the package after the feature deadline? I'm against such "let's break more packages" features after the deadline. Greetings, Stephan -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Dne 5.8.2009 13:30, Stephan Kulow napsal(a):
Am Montag 03 August 2009 schrieb Jan Matejek:
Fellow python packagers,
here's something i've been working on during and post-hackweek, and that is adopting some of Fedora's modifications so that we can build pure python modules as noarch.
At the moment, this is enabled in OBS project devel:languages:python:Factory (and the corresponding "bleeding_edge_python" repositories in devel:languages:python) and used successfully in python-setuptools package. I'll be submitting to Factory shortly and i'd love to have this feature in 11.2. But be aware, this might (and will) break things.
Then why do you submit the package after the feature deadline? I'm against such "let's break more packages" features after the deadline.
Sorry about that. I needed to finish some tests, and since my submit to BETA was never accepted (beta is dead by now, i understand?), i didn't want to submit until everything was successfully rebuilt in OBS. Anyway, if you reject the change now, that's OK - i'll revert the change and redo it first thing after 11.2 release. But please accept or reject it ASAP, so that i can either start fixing the breakage or stop worrying about it. regards m.
Greetings, Stephan
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Am Mittwoch 05 August 2009 schrieb Jan Matejek:
Anyway, if you reject the change now, that's OK - i'll revert the change and redo it first thing after 11.2 release. But please accept or reject it ASAP, so that i can either start fixing the breakage or stop worrying about it.
So you're saying it's only a file list fix and you will work on it to get the packages correctly submitted quickly? If so, fine with me. But I want to see that done mid next week or we're doomed. If it's just that easy fix, it shouldn't be a problem. Greetings, Stephan -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Dne 6.8.2009 14:50, Stephan Kulow napsal(a):
Am Mittwoch 05 August 2009 schrieb Jan Matejek:
Anyway, if you reject the change now, that's OK - i'll revert the change and redo it first thing after 11.2 release. But please accept or reject it ASAP, so that i can either start fixing the breakage or stop worrying about it.
So you're saying it's only a file list fix and you will work on it to get the packages correctly submitted quickly?
Yes.
If so, fine with me. But I want to see that done mid next week or we're doomed. If it's just that easy fix, it shouldn't be a problem.
Okay. Also, if a bigger issue with the new setup arises, it's easy enough to revert to known good state. regards m.
Greetings, Stephan
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Jan Matejek wrote:
Such packages need to be changed - either by using --record-rpm, or if that is not possible, using the new macros adopted from Fedora. %python_sitelib points to /usr/lib/python2.6/site-packages %python_sitearch is /usr/lib64/python2.6/site-packages (same thing as %py_sitelib, actually).
Simply put, these 3 macros should be used in python packages' spec files from now on (once the new python is checked in to Factory): * %python_sitelib (for noarch packages) * %python_sitearch (for arch dependent packages) * %python_version (usually not needed) They will get merged into upstream RPM eventually: http://rpm.org/ticket/83 -- Best Regards / S pozdravom, Pavol RUSNAK SUSE LINUX, s.r.o openSUSE Community Multiplier Team Lihovarska 1060/12 PGP 0xA6917144 19000 Praha 9, CR prusnak[at]suse.cz http://www.suse.cz -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Dear Jan, Am Montag, 3. August 2009 schrieb Jan Matejek:
Packages keeping their own filelists in spec files will break - distutils/setuptools will install into purelib directory, but %py_sitelib macro is pointing into platlib. Such packages need to be changed - either by using --record-rpm, or if that is not possible, using the new macros adopted from Fedora. %python_sitelib points to /usr/lib/python2.6/site-packages %python_sitearch is /usr/lib64/python2.6/site-packages (same thing as %py_sitelib, actually).
I've been bitten by this now: home:frispete:branches:devel:languages:python home:frispete:branches:KDE:KDE4:Factory:Desktop and what I dislike from this fact is that this needs ugly conditionals for factory. Much better would have been: add these macros to all distros we care about, then we could have been using these macros everywhere.. Could somebody give me an hint, how this conditional look like? %if 0%suse_factory ... %endif ??? Pete -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Am Samstag, 8. August 2009 schrieb Hans-Peter Jansen:
Dear Jan,
Am Montag, 3. August 2009 schrieb Jan Matejek:
Packages keeping their own filelists in spec files will break - distutils/setuptools will install into purelib directory, but %py_sitelib macro is pointing into platlib. Such packages need to be changed - either by using --record-rpm, or if that is not possible, using the new macros adopted from Fedora. %python_sitelib points to /usr/lib/python2.6/site-packages %python_sitearch is /usr/lib64/python2.6/site-packages (same thing as %py_sitelib, actually).
I've been bitten by this now:
home:frispete:branches:devel:languages:python home:frispete:branches:KDE:KDE4:Factory:Desktop
and what I dislike from this fact is that this needs ugly conditionals for factory.
Much better would have been: add these macros to all distros we care about, then we could have been using these macros everywhere..
Could somebody give me an hint, how this conditional look like?
%if 0%suse_factory ... %endif
Okay, now I do use a construct like this: %{py_requires} %if 0%suse_version > 1110 BuildArch: noarch %define py_sitedir %python_sitelib %endif Unfortunately, rpmlint thinks, this is not such a great idea: python-logilab-common.src:32: W: invalid-suse-version-check 1110 The specfile contains a comparison of %suse_version against a suse release that does not exist. Please double check. Anybody with an advice here? Pete -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
At Sat, 8 Aug 2009 15:42:35 +0200, Hans-Peter Jansen wrote:
Am Samstag, 8. August 2009 schrieb Hans-Peter Jansen:
Dear Jan,
Am Montag, 3. August 2009 schrieb Jan Matejek:
Packages keeping their own filelists in spec files will break - distutils/setuptools will install into purelib directory, but %py_sitelib macro is pointing into platlib. Such packages need to be changed - either by using --record-rpm, or if that is not possible, using the new macros adopted from Fedora. %python_sitelib points to /usr/lib/python2.6/site-packages %python_sitearch is /usr/lib64/python2.6/site-packages (same thing as %py_sitelib, actually).
I've been bitten by this now:
home:frispete:branches:devel:languages:python home:frispete:branches:KDE:KDE4:Factory:Desktop
and what I dislike from this fact is that this needs ugly conditionals for factory.
Much better would have been: add these macros to all distros we care about, then we could have been using these macros everywhere..
Could somebody give me an hint, how this conditional look like?
%if 0%suse_factory ... %endif
Okay, now I do use a construct like this:
%{py_requires} %if 0%suse_version > 1110 BuildArch: noarch %define py_sitedir %python_sitelib %endif
Unfortunately, rpmlint thinks, this is not such a great idea:
python-logilab-common.src:32: W: invalid-suse-version-check 1110 The specfile contains a comparison of %suse_version against a suse release that does not exist. Please double check.
Anybody with an advice here?
Is the warning still there even if you remove 0 from '%if 0%suse_version...' line? Takashi -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Am Montag, 10. August 2009 schrieb Takashi Iwai:
At Sat, 8 Aug 2009 15:42:35 +0200,
Hans-Peter Jansen wrote:
Am Samstag, 8. August 2009 schrieb Hans-Peter Jansen:
Dear Jan,
Am Montag, 3. August 2009 schrieb Jan Matejek:
Packages keeping their own filelists in spec files will break - distutils/setuptools will install into purelib directory, but %py_sitelib macro is pointing into platlib. Such packages need to be changed - either by using --record-rpm, or if that is not possible, using the new macros adopted from Fedora. %python_sitelib points to /usr/lib/python2.6/site-packages %python_sitearch is /usr/lib64/python2.6/site-packages (same thing as %py_sitelib, actually).
I've been bitten by this now:
home:frispete:branches:devel:languages:python home:frispete:branches:KDE:KDE4:Factory:Desktop
and what I dislike from this fact is that this needs ugly conditionals for factory.
Much better would have been: add these macros to all distros we care about, then we could have been using these macros everywhere..
Could somebody give me an hint, how this conditional look like?
%if 0%suse_factory ... %endif
Okay, now I do use a construct like this:
%{py_requires} %if 0%suse_version > 1110 BuildArch: noarch %define py_sitedir %python_sitelib %endif
Unfortunately, rpmlint thinks, this is not such a great idea:
python-logilab-common.src:32: W: invalid-suse-version-check 1110 The specfile contains a comparison of %suse_version against a suse release that does not exist. Please double check.
Anybody with an advice here?
Is the warning still there even if you remove 0 from '%if 0%suse_version...' line?
Sorry, didn't checked, since there are other problems lurking. Watch this thread... I've turned the check around for now, since coolo started using the new macros without providing compatibility code for the older builds... %if %suse_version <= 1110 #define the new macros for the old distributions %endif Now my python packages build again. Pete -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Hans-Peter Jansen wrote:
Sorry, didn't checked, since there are other problems lurking. Watch this thread...
I've turned the check around for now, since coolo started using the new macros without providing compatibility code for the older builds...
%if %suse_version <= 1110 #define the new macros for the old distributions %endif
I think that's the correct approach. The macro definitions are available here: http://rpm.org/ticket/83 . But instead of patching thousands of python packages all over the OBS, can't we add the definitions into prjconf of openSUSE:{10.3,11.0,11.1} and SLE:{10,11}? What do you think?
Now my python packages build again.
Pete
-- Best Regards / S pozdravom, Pavol RUSNAK SUSE LINUX, s.r.o openSUSE Community Multiplier Team Lihovarska 1060/12 PGP 0xA6917144 19000 Praha 9, CR prusnak[at]suse.cz http://www.suse.cz -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Le mardi 11 août 2009, à 14:32 +0200, Pavol Rusnak a écrit :
Hans-Peter Jansen wrote:
Sorry, didn't checked, since there are other problems lurking. Watch this thread...
I've turned the check around for now, since coolo started using the new macros without providing compatibility code for the older builds...
%if %suse_version <= 1110 #define the new macros for the old distributions %endif
I think that's the correct approach. The macro definitions are available here: http://rpm.org/ticket/83 . But instead of patching thousands of python packages all over the OBS, can't we add the definitions into prjconf of openSUSE:{10.3,11.0,11.1} and SLE:{10,11}? What do you think?
It means that somebody building the package outside of the build service will see a failure, so not perfect :/ Vincent -- Les gens heureux ne sont pas pressés. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Vincent Untz wrote:
Le mardi 11 août 2009, à 14:32 +0200, Pavol Rusnak a écrit :
Sorry, didn't checked, since there are other problems lurking. Watch this thread...
I've turned the check around for now, since coolo started using the new macros without providing compatibility code for the older builds...
%if %suse_version <= 1110 #define the new macros for the old distributions %endif I think that's the correct approach. The macro definitions are available here: http://rpm.org/ticket/83 . But instead of patching thousands of
Hans-Peter Jansen wrote: python packages all over the OBS, can't we add the definitions into prjconf of openSUSE:{10.3,11.0,11.1} and SLE:{10,11}? What do you think?
It means that somebody building the package outside of the build service will see a failure, so not perfect :/
Right :-( So the correct way how to handle this situation is to use this at the beginning of the each spec: %if 0%{?suse_version} < 1120 %define python_sitelib %py_sitedir %define python_sitearch %py_sitedir %endif (not needed macro could be omitted). Do all agree?
Vincent
-- Best Regards / S pozdravom, Pavol RUSNAK SUSE LINUX, s.r.o openSUSE Community Multiplier Team Lihovarska 1060/12 PGP 0xA6917144 19000 Praha 9, CR prusnak[at]suse.cz http://www.suse.cz -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
[Intentionally NOT word wrapped - Sorry for those, who suffer from this] Am Montag, 3. August 2009 schrieb Jan Matejek:
Packages using --record-rpm for keeping filelist should be (and are) working fine with the new python. They will just install into /usr/lib on all platforms. If not changed to noarch, it will make installing 32bit and 64bit versions alongside each other impossible - but on the other hand, you don't need to do it anyway.
There's something wrong with this. "Both" archs are affected, since i586 shouldn't be affected from this at all, I show it here. The exactly same behavior holds true for x86_64. The spec contains this: %{py_requires} %if %suse_version <= 1110 %define python_sitelib %py_sitedir %else BuildArch: noarch %endif This seems necessary, because the INSTALLED_FILES miss some files. Just the interesting excerpts shown: Building python-logilab-common for project 'home:frispete:branches:devel:languages:python' repository 'openSUSE_Factory' arch 'i586' + cd logilab-common-0.43.0 + python setup.py install --prefix=/usr --record-rpm=INSTALLED_FILES --root=/var/tmp/python-logilab-common-0.43.0-build writing list of installed files to 'INSTALLED_FILES' Processing files: python-logilab-common-0.43.0-12.1 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.34560 + umask 022 + cd /usr/src/packages/BUILD + cd logilab-common-0.43.0 + DOCDIR=/var/tmp/python-logilab-common-0.43.0-build/usr/share/doc/packages/python-logilab-common + export DOCDIR + rm -rf /var/tmp/python-logilab-common-0.43.0-build/usr/share/doc/packages/python-logilab-common + /bin/mkdir -p /var/tmp/python-logilab-common-0.43.0-build/usr/share/doc/packages/python-logilab-common + cp -pr ChangeLog README /var/tmp/python-logilab-common-0.43.0-build/usr/share/doc/packages/python-logilab-common + exit 0 warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/__init__.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/__init__.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/__init__.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/__init__.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module2.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module2.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/noendingnewline.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/noendingnewline.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/nonregr.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/nonregr.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/module.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/module.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/module2.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/module2.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/noendingnewline.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/noendingnewline.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/nonregr.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/nonregr.pyc Finding Provides: /usr/lib/rpm/find-provides python-logilab-common Finding Requires: /usr/lib/rpm/find-requires python-logilab-common Finding Supplements: /usr/lib/rpm/find-supplements python-logilab-common Requires(rpmlib): rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 Requires: /usr/bin/python Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/python-logilab-common-0.43.0-build Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/python-logilab-common-0.43.0-build Wrote: /usr/src/packages/SRPMS/python-logilab-common-0.43.0-12.1.src.rpm Wrote: /usr/src/packages/RPMS/noarch/python-logilab-common-0.43.0-12.1.noarch.rpm RPMLINT report: =============== python-logilab-common.noarch: W: files-duplicate /usr/lib/python2.6/site-packages/logilab/common/test/data/subdir_differ_dir/subdir/toto.txt /usr/lib/python2.6/site-packages/logilab/common/test/data/reference_dir/subdir/toto.txt: /usr/lib/python2.6/site-packages/logilab/common/test/data/same_dir/subdir/toto.txt: /usr/lib/python2.6/site-packages/logilab/common/test/data/file_differ_dir/subdir/toto.txt python-logilab-common.noarch: W: files-duplicate /usr/lib/python2.6/site-packages/logilab/common/test/data/same_dir/README /usr/lib/python2.6/site-packages/logilab/common/test/data/reference_dir/README: /usr/lib/python2.6/site-packages/logilab/common/test/data/subdir_differ_dir/README: /usr/lib/python2.6/site-packages/logilab/common/test/data/file_differ_dir/README: /usr/lib/python2.6/site-packages/logilab/common/test/data/content_differ_dir/README python-logilab-common.noarch: W: files-duplicate /usr/lib/python2.6/site-packages/logilab/common/test/data/MyPyPa-0.1.0-py2.5.egg /usr/lib/python2.6/site-packages/logilab/common/test/data/MyPyPa-0.1.0-py2.5.zip python-logilab-common.noarch: W: files-duplicate /usr/lib/python2.6/site-packages/logilab/common/test/data/content_differ_dir/subdir/coin /usr/lib/python2.6/site-packages/logilab/common/test/data/same_dir/subdir/coin: /usr/lib/python2.6/site-packages/logilab/common/test/data/subdir_differ_dir/subdir/coin: /usr/lib/python2.6/site-packages/logilab/common/test/data/reference_dir/subdir/coin python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/subdir_differ_dir/NOTHING python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/normal_file.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/newlines.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/sub/doc.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/write_protected_file.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/sub/momo.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module2.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/normal_file.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/spam.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/file_differ_dir/subdirtwo/Hello python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/test.ini python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/nonregr.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/file_differ_dir/NOTHING python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/content_differ_dir/NOTHING python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/test2.msg python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/write_protected_file.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/same_dir/NOTHING python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/test1.msg python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/foo.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/noendingnewline.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/reference_dir/NOTHING 2 packages and 0 specfiles checked; 0 errors, 26 warnings. Pete -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Dne 10.8.2009 22:14, Hans-Peter Jansen napsal(a):
[Intentionally NOT word wrapped - Sorry for those, who suffer from this]
Am Montag, 3. August 2009 schrieb Jan Matejek:
Packages using --record-rpm for keeping filelist should be (and are) working fine with the new python. They will just install into /usr/lib on all platforms. If not changed to noarch, it will make installing 32bit and 64bit versions alongside each other impossible - but on the other hand, you don't need to do it anyway.
There's something wrong with this. "Both" archs are affected, since i586 shouldn't be affected from this at all, I show it here. The exactly same behavior holds true for x86_64.
Both archs seem to be affected, because noarch is built on 64bits, where %py_sitedir is /usr/lib64 and so the filelist is broken.
This seems necessary, because the INSTALLED_FILES miss some files.
That's either a bug in --record-rpm (i'll investigate) or in the package's install script. This bug became visible because of the change, but it was there before - warnings about files listed twice appear even in old distributions. rpmlint's warnings are completely unrelated.
Just the interesting excerpts shown:
Building python-logilab-common for project 'home:frispete:branches:devel:languages:python' repository 'openSUSE_Factory' arch 'i586'
+ cd logilab-common-0.43.0 + python setup.py install --prefix=/usr --record-rpm=INSTALLED_FILES --root=/var/tmp/python-logilab-common-0.43.0-build
writing list of installed files to 'INSTALLED_FILES'
Processing files: python-logilab-common-0.43.0-12.1 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.34560 + umask 022 + cd /usr/src/packages/BUILD + cd logilab-common-0.43.0 + DOCDIR=/var/tmp/python-logilab-common-0.43.0-build/usr/share/doc/packages/python-logilab-common + export DOCDIR + rm -rf /var/tmp/python-logilab-common-0.43.0-build/usr/share/doc/packages/python-logilab-common + /bin/mkdir -p /var/tmp/python-logilab-common-0.43.0-build/usr/share/doc/packages/python-logilab-common + cp -pr ChangeLog README /var/tmp/python-logilab-common-0.43.0-build/usr/share/doc/packages/python-logilab-common + exit 0 warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/__init__.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/__init__.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/__init__.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/__init__.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module2.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module2.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/noendingnewline.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/noendingnewline.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/nonregr.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/nonregr.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/module.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/module.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/module2.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/module2.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/noendingnewline.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/noendingnewline.pyc warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/nonregr.py warning: File listed twice: /usr/lib/python2.6/site-packages/logilab/common/test/data/nonregr.pyc Finding Provides: /usr/lib/rpm/find-provides python-logilab-common Finding Requires: /usr/lib/rpm/find-requires python-logilab-common Finding Supplements: /usr/lib/rpm/find-supplements python-logilab-common Requires(rpmlib): rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 Requires: /usr/bin/python Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/python-logilab-common-0.43.0-build Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/python-logilab-common-0.43.0-build Wrote: /usr/src/packages/SRPMS/python-logilab-common-0.43.0-12.1.src.rpm Wrote: /usr/src/packages/RPMS/noarch/python-logilab-common-0.43.0-12.1.noarch.rpm
RPMLINT report: =============== python-logilab-common.noarch: W: files-duplicate /usr/lib/python2.6/site-packages/logilab/common/test/data/subdir_differ_dir/subdir/toto.txt /usr/lib/python2.6/site-packages/logilab/common/test/data/reference_dir/subdir/toto.txt: /usr/lib/python2.6/site-packages/logilab/common/test/data/same_dir/subdir/toto.txt: /usr/lib/python2.6/site-packages/logilab/common/test/data/file_differ_dir/subdir/toto.txt python-logilab-common.noarch: W: files-duplicate /usr/lib/python2.6/site-packages/logilab/common/test/data/same_dir/README /usr/lib/python2.6/site-packages/logilab/common/test/data/reference_dir/README: /usr/lib/python2.6/site-packages/logilab/common/test/data/subdir_differ_dir/README: /usr/lib/python2.6/site-packages/logilab/common/test/data/file_differ_dir/README: /usr/lib/python2.6/site-packages/logilab/common/test/data/content_differ_dir/README python-logilab-common.noarch: W: files-duplicate /usr/lib/python2.6/site-packages/logilab/common/test/data/MyPyPa-0.1.0-py2.5.egg /usr/lib/python2.6/site-packages/logilab/common/test/data/MyPyPa-0.1.0-py2.5.zip python-logilab-common.noarch: W: files-duplicate /usr/lib/python2.6/site-packages/logilab/common/test/data/content_differ_dir/subdir/coin /usr/lib/python2.6/site-packages/logilab/common/test/data/same_dir/subdir/coin: /usr/lib/python2.6/site-packages/logilab/common/test/data/subdir_differ_dir/subdir/coin: /usr/lib/python2.6/site-packages/logilab/common/test/data/reference_dir/subdir/coin python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/subdir_differ_dir/NOTHING python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/normal_file.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/newlines.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/sub/doc.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/write_protected_file.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/sub/momo.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/module2.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/normal_file.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/spam.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/file_differ_dir/subdirtwo/Hello python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/test.ini python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/nonregr.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/file_differ_dir/NOTHING python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/content_differ_dir/NOTHING python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/test2.msg python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/write_protected_file.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/same_dir/NOTHING python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/test1.msg python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/foo.txt python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/find_test/noendingnewline.py python-logilab-common.noarch: W: zero-length /usr/lib/python2.6/site-packages/logilab/common/test/data/reference_dir/NOTHING 2 packages and 0 specfiles checked; 0 errors, 26 warnings.
Pete
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
participants (6)
-
Hans-Peter Jansen
-
Jan Matejek
-
Pavol Rusnak
-
Stephan Kulow
-
Takashi Iwai
-
Vincent Untz