Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 564527 - F-13 build of python3 package does not have a "Requires: libpython3.1.so.1.0" (external find-requires script?)
Summary: F-13 build of python3 package does not have a "Requires: libpython3.1.so.1.0"...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: redhat-rpm-config
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Panu Matilainen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 555624 564616 564674 565023 565177 565196 566419
TreeView+ depends on / blocked
 
Reported: 2010-02-13 01:04 UTC by Dave Malcolm
Modified: 2010-02-18 20:02 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-02-15 11:57:56 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Dave Malcolm 2010-02-13 01:04:42 UTC
Description of problem:
I expected the python3 core package to have an autogenerated dependency on libpython3.1.so.1.0, which would have been satisfied by the python3-libs subpackage.

However, in our F-13 builds of python3, the python3 core package does not have this dep:
[root@rawhide ~]# rpm -q python3
python3-3.1.1-25.fc13.i686
[root@rawhide ~]# rpm -qR python3
rpmlib(VersionedDependencies) <= 3.0.3-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
/bin/sh  
/usr/bin/python3.1  
rpmlib(PayloadIsXz) <= 5.2-1

Looking at the build log:
http://kojipkgs.fedoraproject.org/packages/python3/3.1.1/25.fc13/data/logs/i686/build.log

I see this fragment:
--------
Processing files: python3-3.1.1-25.fc13.i686
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.BgOxWu
+ umask 022
+ cd /builddir/build/BUILD
+ cd Python-3.1.1
+ DOCDIR=/builddir/build/BUILDROOT/python3-3.1.1-25.fc13.i386/usr/share/doc/python3-3.1.1
+ export DOCDIR
+ rm -rf /builddir/build/BUILDROOT/python3-3.1.1-25.fc13.i386/usr/share/doc/python3-3.1.1
+ /bin/mkdir -p /builddir/build/BUILDROOT/python3-3.1.1-25.fc13.i386/usr/share/doc/python3-3.1.1
+ cp -pr LICENSE README /builddir/build/BUILDROOT/python3-3.1.1-25.fc13.i386/usr/share/doc/python3-3.1.1
+ exit 0
Finding  Provides: /builddir/build/SOURCES/find-provides-without-python-sonames.sh
objdump: /builddir/build/BUILDROOT/python3-3.1.1-25.fc13.i386/usr/lib/python3.1/distutils/command/wininst-9.0-amd64.exe: File format not recognized
Finding  Requires: /usr/lib/rpm/redhat/find-requires
Provides: python(abi) = 3.1
Requires(rpmlib): rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires: /bin/sh /usr/bin/python3.1
--------

Looks like /usr/lib/rpm/redhat/find-requires didn't pick up the requirement of /usr/bin/python3 upon libpython3.1.so.1.0

Note that the specfile has:
Source1: find-provides-without-python-sonames.sh
%global _use_internal_dependency_generator 0
%global __find_provides %{SOURCE1}

so perhaps the old external dep generator isn't working properly.

On a rawhide box, if I run:
  # echo /usr/bin/python* | /usr/lib/rpm/redhat/find-requires
the only output I get is:
  /usr/bin/python2.6

I get no output (am I correctly remembering how to invoke this?); I was expecting it to look at the ELF files, read the NEEDED metadata, and output a "Requires" on those SO-names.

The ELF file does have this data:
[root@rawhide ~]# eu-readelf -d /usr/bin/python3 | grep NEEDED
  NEEDED            Shared library: [libpython3.1.so.1.0]
  NEEDED            Shared library: [libpthread.so.0]
  NEEDED            Shared library: [libdl.so.2]
  NEEDED            Shared library: [libutil.so.1]
  NEEDED            Shared library: [libm.so.6]
  NEEDED            Shared library: [libc.so.6]


On an F-12 box, the script _does_ emit these lines:
[david@F-12 ~]$ echo /usr/bin/python* | /usr/lib/rpm/redhat/find-requires
/usr/bin/python2.6
/usr/bin/python3
/usr/bin/python3.1
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libdl.so.2
libm.so.6
libpthread.so.0
libpython2.6.so.1.0
libpython3.1.so.1.0
libutil.so.1

Version-Release number of selected component (if applicable):
Still seen with python3-3.1.1-25.fc13

Not seen on local rebuilds of the SRPM upon my F-12 box, though; these have the requirement.

Additional info:
First seen by Jonathan Dieter when trying to rebuild python-deltarpm with python3 support: bug 555624 showed these build failures:
http://koji.fedoraproject.org/koji/getfile?taskID=1973985&name=build.log
http://koji.fedoraproject.org/koji/getfile?taskID=1973986&name=build.log
which contain this log line:
  /usr/bin/python3.1: error while loading shared libraries: libpython3.1.so.1.0: cannot open shared object file: No such file or directory

Looking at the corresponding "root.log" files for those tasks, I see that the python3 package is installed, but not python3-libs:

Installing:
 bzip2-devel      x86_64    1.0.5-6.fc12                         build    244 k
 popt-devel       x86_64    1.13-6.fc12                          build    324 k
 python-devel     x86_64    2.6.4-18.fc13                        build    160 k
 python3-devel    x86_64    3.1.1-24.fc13                        build    135 k
 rpm-devel        x86_64    4.8.0-9.fc13                         build     86 k
 xz-devel         x86_64    4.999.9-0.1.beta.20091007git.fc13    build     38 k
 zlib-devel       x86_64    1.2.3-23.fc12                        build     39 k
Installing for dependencies:
 expat            x86_64    2.0.1-10.fc13                        build     75 k
 file-devel       x86_64    5.04-3.fc13                          build     22 k
 libffi           x86_64    3.0.9-1.fc13                         build     24 k
 python           x86_64    2.6.4-18.fc13                        build    4.8 M
 python-libs      x86_64    2.6.4-18.fc13                        build    615 k
 python3          x86_64    3.1.1-24.fc13                        build    4.4 M

Comment 1 Panu Matilainen 2010-02-15 11:41:29 UTC
Ugh... the fix for this has been carried as a patch in the redhat-rpm-config Fedora package, and was supposed to have been in "upstream" redhat-rpm-config-9.1.0 tarball but somehow somewhere it's gone missing. Will fix shortly.

Comment 2 Panu Matilainen 2010-02-15 11:57:56 UTC
Fixed in redhat-rpm-config-9.1.0-3.fc13, but obviously python3 needs a rebuild for this.

Comment 3 Thomas Spura 2010-02-15 14:16:45 UTC
rebuild of python3 done:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1988164

new fragment (compare to comment #0):
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.QqDGCM
+ umask 022
+ cd /builddir/build/BUILD
+ cd Python-3.1.1
+ DOCDIR=/builddir/build/BUILDROOT/python3-3.1.1-26.fc13.x86_64/usr/share/doc/python3-3.1.1
+ export DOCDIR
+ rm -rf /builddir/build/BUILDROOT/python3-3.1.1-26.fc13.x86_64/usr/share/doc/python3-3.1.1
+ /bin/mkdir -p /builddir/build/BUILDROOT/python3-3.1.1-26.fc13.x86_64/usr/share/doc/python3-3.1.1
+ cp -pr LICENSE README /builddir/build/BUILDROOT/python3-3.1.1-26.fc13.x86_64/usr/share/doc/python3-3.1.1
+ exit 0
Finding  Provides: /builddir/build/SOURCES/find-provides-without-python-sonames.sh
Finding  Requires: /usr/lib/rpm/redhat/find-requires
Provides: python(abi) = 3.1 [...]
Requires(rpmlib): rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires: /bin/sh /usr/bin/python3.1 [...] libpython3.1.so.1.0()(64bit) [...]


Note You need to log in before you can comment on or make changes to this bug.