Bug 1105110 - libraries don't belong into lz4-devel
Summary: libraries don't belong into lz4-devel
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: lz4
Version: 20
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: pjp
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1104942 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-06-05 12:07 UTC by Harald Reindl
Modified: 2014-06-24 13:06 UTC (History)
3 users (show)

Fixed In Version: lz4-r117-3.fc20
Clone Of:
Environment:
Last Closed: 2014-06-24 01:57:19 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Harald Reindl 2014-06-05 12:07:06 UTC
what's that?

the for dependencies pulled "liblz4.so" hardly belongs into lz4-devel

[root@flow:~]$ rpm -q --filesbypkg lz4-devel
lz4-devel /usr/include/lz4.h
lz4-devel /usr/include/lz4hc.h
lz4-devel /usr/lib/liblz4.a
lz4-devel /usr/lib/liblz4.so
lz4-devel /usr/lib/liblz4.so.1
lz4-devel /usr/lib/liblz4.so.1.0.0
lz4-devel /usr/share/doc/lz4-devel
lz4-devel /usr/share/doc/lz4-devel/LICENSE
lz4-devel /usr/share/doc/lz4-devel/NEWS

[root@flow:~]$ rpm -q --filesbypkg lz4
lz4 /usr/bin/lz4
lz4 /usr/bin/lz4c
lz4 /usr/bin/lz4cat
lz4 /usr/share/doc/lz4
lz4 /usr/share/doc/lz4/COPYING
lz4 /usr/share/doc/lz4/NEWS
lz4 /usr/share/man/man1/lz4.1.gz

Comment 1 pjp 2014-06-06 17:29:25 UTC
  Hello Herald,

Thank you for reporting this issue.

(In reply to Harald Reindl from comment #0)
> what's that?
> the for dependencies pulled "liblz4.so" hardly belongs into lz4-devel

  Why? I see lot of -devel packages which install .so files.

Comment 2 Fedora Update System 2014-06-07 04:04:05 UTC
lz4-r117-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/lz4-r117-1.fc19

Comment 3 Fedora Update System 2014-06-07 04:04:15 UTC
lz4-r117-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/lz4-r117-1.fc20

Comment 4 Michael Cronenworth 2014-06-07 05:06:19 UTC
*** Bug 1104942 has been marked as a duplicate of this bug. ***

Comment 5 Michael Cronenworth 2014-06-07 05:08:50 UTC
@pjp, this is not fixed with the new update.

Please do not ship static libraries since a shared library is created:
https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries

Only the versioned shared library should be present in the base package. Unversioned shared libraries belong in -devel:
https://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages

Comment 6 Fedora Update System 2014-06-07 10:52:05 UTC
lz4-r117-2.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/lz4-r117-2.fc20

Comment 7 Fedora Update System 2014-06-07 10:52:15 UTC
lz4-r117-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/lz4-r117-2.fc19

Comment 8 Michael Cronenworth 2014-06-07 11:38:59 UTC
@pjp, this is not fixed with the new update.

Only the versioned shared library should be present in the base package. Unversioned shared libraries belong in -devel:
https://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages

If you need help understanding this just ask.

Comment 9 pjp 2014-06-07 11:57:22 UTC
   Hello Michael,

(In reply to Michael Cronenworth from comment #8)
> If you need help understanding this just ask.

   /usr/lib/liblz4.so -> liblz4.so.1.0.0
   /usr/lib/liblz4.so.1 -> liblz4.so.1.0.0
   /usr/lib/liblz4.so.1.0.0

There is only one versioned library file 'liblz4.so.1.0.0', while other two are symbolic links to this file. IIUC, the guidelines say that unversioned files, ie. liblz4.so it this case, needs to go into -devel package, but since it is a symbolic link, it is included in the base package.

Comment 10 Harald Reindl 2014-06-07 14:27:12 UTC
that symbolic links are pretty a common case for *any* library package 
simply because you link against libgmime-2.6 and not gmime 2.6.20 because otherwise any minor update would need a rebuild of all packages using the library  

the shared libraries never belong to the devel package - no idea what is that complicated to understand - the devel package contains files which are only needed to compile and link other software against your package and whenever you can't uninstall a devel-package on a customer machine or it is pulled as dependecy for non-developers it's a package bug

[harry@srv-rhsoft:~]$ rpm -q --filesbypkg libzdb
libzdb                    /usr/lib64/libzdb.so.11
libzdb                    /usr/lib64/libzdb.so.11.0.0

[harry@srv-rhsoft:~]$ rpm -q --filesbypkg gmime
gmime                     /usr/lib64/libgmime-2.6.so.0
gmime                     /usr/lib64/libgmime-2.6.so.0.620.0

Comment 11 pjp 2014-06-08 02:14:54 UTC
   Hello Herald,

(In reply to Harald Reindl from comment #10)
> the shared libraries never belong to the devel package - no idea what is
> that complicated to understand - the devel package contains files which are
> only needed to compile and link other software against your package and
> whenever you can't uninstall a devel-package on a customer machine or it is
> pulled as dependecy for non-developers it's a package bug

   And the bug is fixed in the latest update above, right?

Comment 12 Michael Cronenworth 2014-06-08 03:03:16 UTC
(In reply to pjp from comment #9)
>    /usr/lib/liblz4.so -> liblz4.so.1.0.0

Symbolic link or not, this file belongs in the -devel package.

Comment 13 Harald Reindl 2014-06-08 09:37:05 UTC
@Michael Cronenworth: i personally don't care what belongs where, squashfs-tools now pulls lz4-devel which is wrong 

look at the initial bugreport - the lz4 package is not vital because itself depends on lz4-devel which must not happen, otherwise it makes no sense to clutter the rpmdb with two packages - period


Jun 05 14:01:25 Installed: libidn2-0.8-5.fc20.x86_64
Jun 05 14:01:25 Installed: lz4-r116-1.fc20.x86_64
Jun 05 14:01:25 Installed: lz4-devel-r116-1.fc20.x86_64
Jun 05 14:01:26 Updated: squashfs-tools-4.3-4.fc20.x86_64

Comment 14 Fedora Update System 2014-06-10 02:59:38 UTC
Package lz4-r117-2.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing lz4-r117-2.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-7148/lz4-r117-2.fc20
then log in and leave karma (feedback).

Comment 15 Fedora Update System 2014-06-14 12:46:45 UTC
lz4-r117-3.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/lz4-r117-3.fc20

Comment 16 Fedora Update System 2014-06-14 12:46:58 UTC
lz4-r117-3.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/lz4-r117-3.fc19

Comment 17 Japheth Cleaver 2014-06-23 21:04:32 UTC
Seems like there are a few issues here. It would probably be preferable to split the package up similar to how the xz tools are split.

[]$ rpm -qa | grep xz | sort | xargs rpm -qi | grep -e Name -e Group -e Summary

Name        : xz                           Relocations: (not relocatable)
Group       : Applications/File             Source RPM: 
Summary     : LZMA compression utilities

Name        : xz-debuginfo                 Relocations: (not relocatable)
Group       : Development/Debug             Source RPM: 
Summary     : Debug information for package xz

Name        : xz-devel                     Relocations: (not relocatable)
Group       : Development/Libraries         Source RPM:
Summary     : Devel libraries & headers for liblzma

Name        : xz-libs                      Relocations: (not relocatable)
Group       : System Environment/Libraries   Source RPM:
Summary     : Libraries for decoding LZMA compression


With the caveat that the .a file should be in a lz4-static subpackage.

Additionally, this is showing up in /usr/lib/ even on x86_64 systems. It seems like these should be in %{_libdir} instead of %{_prefix}/lib

Comment 18 Michael Cronenworth 2014-06-23 21:21:11 UTC
@pjp,

-%{_usr}/lib/liblz4.so.1*
-%{_usr}/lib/liblz4.so
+%{_libdir}/liblz4.so.1*
+%{_libdir}/liblz4.so

http://fedoraproject.org/wiki/Packaging:Guidelines#Macros

Comment 19 Fedora Update System 2014-06-24 01:57:19 UTC
lz4-r117-3.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 20 Fedora Update System 2014-06-24 01:58:04 UTC
lz4-r117-3.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 21 pjp 2014-06-24 08:47:57 UTC
(In reply to Japheth Cleaver from comment #17)
> With the caveat that the .a file should be in a lz4-static subpackage.

  Static(.a) library is not installed in lz4 package, as it is discouraged by the packaging guidelines.
 
> Additionally, this is showing up in /usr/lib/ even on x86_64 systems. It
> seems like these should be in %{_libdir} instead of %{_prefix}/lib

  That is a known issue, upstream Makefile installs files under /usr/lib. I've informed the upstream developer about it to.

Comment 22 pjp 2014-06-24 08:50:34 UTC
(In reply to Michael Cronenworth from comment #18)
> -%{_usr}/lib/liblz4.so.1*
> -%{_usr}/lib/liblz4.so
> +%{_libdir}/liblz4.so.1*
> +%{_libdir}/liblz4.so

  Upstream Makefile installs files under /usr/lib, so the %{_libdir} does not work on x86_64 machines. I've informed the upstream developer about it. Hopefully we'll see ./configure or such script in future releases.

Comment 23 Michael Cronenworth 2014-06-24 13:06:38 UTC
(In reply to pjp from comment #22)
>   Upstream Makefile installs files under /usr/lib, so the %{_libdir} does
> not work on x86_64 machines. I've informed the upstream developer about it.
> Hopefully we'll see ./configure or such script in future releases.

The issue violates Fedora packaging guidelines and it is a trivial issue so it needs to be fixed sooner rather then later. You could either patch the Makefile (and submit upstream) or move the files in the spec.


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