Overall fedora-review test results.

Michael Schwendt mschwendt at gmail.com
Thu Aug 22 17:21:02 UTC 2013


On Thu, 22 Aug 2013 18:10:12 +0200, Alec Leamas wrote:

> > Funny! I'm interested in hearing more about these,
> >
> >    | 347 CheckStaticLibs
> >    |        Static libs not in a -static package. Most are haskell packages
> >    |        which have an exception not handled by f-r. There are more, though.
> >
> > since  http://mschwendt.fedorapeople.org/staticbugstat.html  is an ongoing
> > project. So far, I exclude Haskell and OCaml packages, Tcl/Tk stub libs,
> > flex-static, and the fake shared libs in binutils-devel (they are .so
> > GNU ld scripts that link with the static libs instead).
> 
> You have certainly better excludes than f-r. The packages failing f-r is 
> on http://ur1.ca/f5znn

Thanks!

Here's a guess. Many are on that list, because f-r doesn't implement the
static lib packaging guidelines correctly yet. Example, for isomd5sum
it tells:

  - Static libraries in -static subpackage, if present.
    Note: Archive *.a files found in isomd5sum-devel
    See: http://fedoraproject.org/wiki/Packaging/Guidelines#StaticLibraries

Actually, a subsection of those guidelines applies instead, because the FPC
has not made -static subpackages a MUST:

  https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries_2
  |
  | 2. Static libraries only. When a package only provides static
  | libraries you can place all the static library files in the *-devel
  | subpackage. When doing this you also must have a virtual Provide for
  | the *-static package:

That's the case:

$ rpmls -p isomd5sum-devel-1.0.11-2.fc20.x86_64.rpm 
-rw-r--r--  /usr/include/libcheckisomd5.h
-rw-r--r--  /usr/include/libimplantisomd5.h
-rw-r--r--  /usr/lib64/libcheckisomd5.a
-rw-r--r--  /usr/lib64/libimplantisomd5.a

$ rpm -qp --provides isomd5sum-devel-1.0.11-2.fc20.x86_64.rpm 
isomd5sum-devel = 1:1.0.11-2.fc20
isomd5sum-devel(x86-64) = 1:1.0.11-2.fc20
isomd5sum-static = 1:1.0.11-2.fc20
         ^^^^^^^
         (!)

$ rpmls -p isomd5sum-1.0.11-2.fc20.x86_64.rpm 
-rwxr-xr-x  /usr/bin/checkisomd5
-rwxr-xr-x  /usr/bin/implantisomd5
drwxr-xr-x  /usr/share/doc/isomd5sum
-rw-r--r--  /usr/share/doc/isomd5sum/COPYING
-rw-r--r--  /usr/share/man/man1/checkisomd5.1.gz
-rw-r--r--  /usr/share/man/man1/implantisomd5.1.gz


Of course, these guidelines bear a risk. One can "BuildRequires: isomd5sum-devel"
and unwittingly have a build use the static libs. It would be better, if one
had to build-require a separate -static subpackage before this static-only
lib could be linked with. Tracking usage of a separate -static package is
a lot easier than examininig koji build logs in an attempt at finding out
whether a static lib is linked with.


More information about the devel mailing list