Processed: Re: Bug#797161: libprelude2 contains files with different SONAME versioning
Processing control commands: > clone -1 -2 Bug #797161 [src:libprelude] libprelude2 contains files with different SONAME versioning Bug 797161 cloned as bug 855916 > retitle -2 libprelude2: split /etc/prelude and prelude-admin out Bug #855916 [src:libprelude] libprelude2 contains files with different SONAME versioning Changed Bug title to 'libprelude2: split /etc/prelude and prelude-admin out' from 'libprelude2 contains files with different SONAME versioning'. > severity -2 important Bug #855916 [src:libprelude] libprelude2: split /etc/prelude and prelude-admin out Severity set to 'important' from 'serious' > tags -1 pending Bug #797161 [src:libprelude] libprelude2 contains files with different SONAME versioning Added tag(s) pending. > tags 844897 pending Bug #844897 [src:libprelude] libprelude: FTBFS: PreludeEasy.cxx:2452:75: error: 'SWIG_From_long_SS_long' was not declared in this scope Added tag(s) pending. -- 797161: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797161 844897: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=844897 855916: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855916 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
Bug#797161: libprelude2 contains files with different SONAME versioning
Control: clone -1 -2 Control: retitle -2 libprelude2: split /etc/prelude and prelude-admin out Control: severity -2 important Control: tags -1 pending Control: tags 844897 pending I just uploaded an NMU, and I am cloning the part I did not fix into a new bug. On Fri, Aug 28, 2015 at 08:25:36AM +0100, Simon McVittie wrote: > Source: libprelude > Version: 1.0.0-11.4 > Severity: serious > Justification: Policy 8.1, 8.2 > > Policy says > > > The run-time shared library must be placed in a package whose name > > changes whenever the SONAME of the shared library changes > ... > > If you have several shared libraries built from the same source tree, > > you may lump them all together into a single shared library package > > **provided that all of their SONAMEs will always change together**. Be > > aware that this is not normally the case, and if the SONAMEs do not > > change together, upgrading such a merged shared library package will be > > unnecessarily difficult because of file conflicts with the old version > > of the package. When in doubt, always split shared library packages so > > that each binary package installs a single shared library. > > (my emphasis) > > but this is not the case for libprelude2, which contains both libprelude.so.2 > and libpreludecxx.so.0. This makes it unnecessarily difficult to handle > the libstdc++ transition (for which I will open another bug), which as far > as I can see breaks the ABI of libpreludecxx.so.0 but not libprelude.so.2. Fixed in my NMU based on the patch from Andreas Beckmann. > Policy also says > > > If your package contains files whose names do not change with each > > change in the library shared object version, you must not put them in > > the shared library package. Otherwise, several versions of the shared > > library cannot be installed at the same time without filename clashes, > > making upgrades and transitions unnecessarily difficult. > > but libprelude2 contains /etc/prelude, /usr/bin/prelude-admin > and /usr/share/man/man1/prelude-admin.1. This is the contents of the cloned bug. Sorting out prelude-admin is non-trivial: - libprelude2 cannot depend on the package it gets moved to, since this would create a circular dependency - some rdeps of libprelude2 will need a dependency on this new package > Finally, it seems inappropriate for the shared library to include HTML > documentation, which should really be in the -dev package or in a separate > -doc package. Fixed in my NMU. >... > S cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed
Bug#797161: libprelude2 contains files with different SONAME versioning
Followup-For: Bug #797161 Control: tag -1 patch Attached is a patch to factor out a libpreludecpp0 package. I do not intend to NMU. Andreas diff -Nru libprelude-1.0.0/debian/changelog libprelude-1.0.0/debian/changelog --- libprelude-1.0.0/debian/changelog 2015-07-25 13:21:14.0 +0200 +++ libprelude-1.0.0/debian/changelog 2015-09-10 11:52:52.0 +0200 @@ -1,3 +1,10 @@ +libprelude (1.0.0-11.7) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Move libpreludecpp.so.* to a separate package. (Closes: #797161) + + -- Andreas Beckmann Thu, 10 Sep 2015 11:20:08 +0200 + libprelude (1.0.0-11.6) unstable; urgency=low * Non-maintainer upload. diff -Nru libprelude-1.0.0/debian/control libprelude-1.0.0/debian/control --- libprelude-1.0.0/debian/control 2014-08-12 19:55:04.0 +0200 +++ libprelude-1.0.0/debian/control 2015-09-10 11:51:51.0 +0200 @@ -21,7 +21,7 @@ Package: libprelude-dev Section: libdevel Architecture: any -Depends: libprelude2 (= ${binary:Version}), libgnutls28-dev, libgcrypt20-dev, +Depends: libprelude2 (= ${binary:Version}), libpreludecpp0 (= ${binary:Version}), libgnutls28-dev, libgcrypt20-dev, libltdl3-dev, ${misc:Depends} Description: Security Information Management System [ Development files ] Prelude is a Universal "Security Information Management" (SIM) system. @@ -39,7 +39,7 @@ Package: libprelude2 Section: libs Architecture: any -Pre-Depends: multiarch-support +Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Description: Security Information Management System [ Base library ] Prelude is a Universal "Security Information Management" (SIM) system. @@ -54,6 +54,27 @@ . This package contains the Prelude shared library. +Package: libpreludecpp0 +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} +Breaks: libprelude2 (<< 1.0.0-11.7~) +Replaces: libprelude2 (<< 1.0.0-11.7~) +Description: Security Information Management System [ C++ library ] + Prelude is a Universal "Security Information Management" (SIM) system. + Its goals are performance and modularity. It is divided in two main + parts : + - the Prelude sensors, responsible for generating alerts, such as +snort sensor, featuring a signature engine, plugins for +protocol analysis, and intrusion detection plugins, and the Prelude +log monitoring lackey. + - the Prelude report server, collecting data from Prelude sensors, +and generating user-readable reports. + . + This package contains the Prelude C++ shared library. + Package: libprelude2-dbg Section: debug Architecture: any diff -Nru libprelude-1.0.0/debian/libprelude2.install libprelude-1.0.0/debian/libprelude2.install --- libprelude-1.0.0/debian/libprelude2.install 2014-05-25 15:58:53.0 +0200 +++ libprelude-1.0.0/debian/libprelude2.install 2015-09-10 11:50:16.0 +0200 @@ -1,5 +1,5 @@ debian/tmp/etc/prelude/* debian/tmp/usr/bin/prelude-admin debian/tmp/usr/share/man/man1/prelude-admin.1 -debian/tmp/usr/lib/*/lib*.so.* +debian/tmp/usr/lib/*/libprelude.so.* debian/tmp/usr/share/gtk-doc/html/libprelude/* usr/share/doc/libprelude2/html/ diff -Nru libprelude-1.0.0/debian/libpreludecpp0.install libprelude-1.0.0/debian/libpreludecpp0.install --- libprelude-1.0.0/debian/libpreludecpp0.install 1970-01-01 01:00:00.0 +0100 +++ libprelude-1.0.0/debian/libpreludecpp0.install 2015-09-10 11:49:56.0 +0200 @@ -0,0 +1 @@ +debian/tmp/usr/lib/*/libpreludecpp.so.*
Bug#797161: libprelude2 contains files with different SONAME versioning
On Fri, 28 Aug 2015 at 08:25:36 +0100, Simon McVittie wrote: > libprelude needs to go through the NEW queue anyway, for the libstdc++ > transition, so I will probably NMU this at the same time. Looking more closely at libprelude's rdeps, it seems none of them actually link with libpreludecxx.so.0, so a libstdc++ transition[1] is not necessarily required here. So I'm probably not going to NMU this; there are more urgent things to be doing. S [1] https://lists.debian.org/debian-devel-announce/2015/08/msg0.html https://lists.debian.org/debian-devel-announce/2015/08/msg2.html
Bug#797161: libprelude2 contains files with different SONAME versioning
Source: libprelude Version: 1.0.0-11.4 Severity: serious Justification: Policy 8.1, 8.2 Policy says > The run-time shared library must be placed in a package whose name > changes whenever the SONAME of the shared library changes ... > If you have several shared libraries built from the same source tree, > you may lump them all together into a single shared library package > **provided that all of their SONAMEs will always change together**. Be > aware that this is not normally the case, and if the SONAMEs do not > change together, upgrading such a merged shared library package will be > unnecessarily difficult because of file conflicts with the old version > of the package. When in doubt, always split shared library packages so > that each binary package installs a single shared library. (my emphasis) but this is not the case for libprelude2, which contains both libprelude.so.2 and libpreludecxx.so.0. This makes it unnecessarily difficult to handle the libstdc++ transition (for which I will open another bug), which as far as I can see breaks the ABI of libpreludecxx.so.0 but not libprelude.so.2. Policy also says > If your package contains files whose names do not change with each > change in the library shared object version, you must not put them in > the shared library package. Otherwise, several versions of the shared > library cannot be installed at the same time without filename clashes, > making upgrades and transitions unnecessarily difficult. but libprelude2 contains /etc/prelude, /usr/bin/prelude-admin and /usr/share/man/man1/prelude-admin.1. Finally, it seems inappropriate for the shared library to include HTML documentation, which should really be in the -dev package or in a separate -doc package. libprelude needs to go through the NEW queue anyway, for the libstdc++ transition, so I will probably NMU this at the same time. S