Bug 889244

Summary: bacula: unversioned so files directly in _libdir
Product: [Fedora] Fedora Reporter: Stanislav Ochotnicky <sochotni>
Component: baculaAssignee: Simone Caronni <negativo17>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: andreas, fschwarz, gwync, lnykryn, negativo17, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-01-23 16:00:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stanislav Ochotnicky 2012-12-20 15:26:16 UTC
Description of problem:
several bacula subpackages contain unversioned so files directly in _libdir (not in private subdirectory). These libraries belong into -devel subpackage [1]
bacula-libs: /usr/lib64/libbac-5.2.12.so
bacula-libs: /usr/lib64/libbac.so
bacula-libs: /usr/lib64/libbaccfg-5.2.12.so
bacula-libs: /usr/lib64/libbaccfg.so
bacula-libs: /usr/lib64/libbacfind-5.2.12.so
bacula-libs: /usr/lib64/libbacfind.so
bacula-libs: /usr/lib64/libbacpy-5.2.12.so
bacula-libs: /usr/lib64/libbacpy.so
bacula-libs-sql: /usr/lib64/libbaccats-mysql-5.2.12.so
bacula-libs-sql: /usr/lib64/libbaccats-mysql.so
bacula-libs-sql: /usr/lib64/libbaccats-postgresql-5.2.12.so
bacula-libs-sql: /usr/lib64/libbaccats-postgresql.so
bacula-libs-sql: /usr/lib64/libbaccats-sqlite3-5.2.12.so
bacula-libs-sql: /usr/lib64/libbaccats-sqlite3.so
bacula-libs-sql: /usr/lib64/libbacsql-5.2.12.so
bacula-libs-sql: /usr/lib64/libbacsql.so
bacula-client: /usr/lib64/bacula/bpipe-fd.so


[1] http://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages

Comment 1 Simone Caronni 2013-01-09 14:06:46 UTC
Hello,

the Bacula package is a bit peculiar.

1) Bacule pipe plugin

bacula-client: /usr/lib64/bacula/bpipe-fd.so

This is a plugin to be loaded by the Bacula File Daemon, it is loaded exactly like it is packaged. The daemon loads the plugins from that folder without the folder being in the library path.

2) Normal libraries

bacula-libs: /usr/lib64/libbac.so
bacula-libs: /usr/lib64/libbaccfg.so
bacula-libs: /usr/lib64/libbacfind.so
bacula-libs: /usr/lib64/libbacpy.so
bacula-libs-sql: /usr/lib64/libbacsql.so

Yes, this is a bug and those should be removed.

3) Bacula Director library (libbaccats)

bacula-libs-sql: /usr/lib64/libbaccats-mysql-5.2.12.so
bacula-libs-sql: /usr/lib64/libbaccats-mysql.so
bacula-libs-sql: /usr/lib64/libbaccats-postgresql-5.2.12.so
bacula-libs-sql: /usr/lib64/libbaccats-postgresql.so
bacula-libs-sql: /usr/lib64/libbaccats-sqlite3-5.2.12.so
bacula-libs-sql: /usr/lib64/libbaccats-sqlite3.so
bacula-libs-sql: /usr/lib64/libbacsql.so

This is bit of a problem. Some daemons/libraries/programs are linked to the libbaccats-<version>.so library, while the library itself does not exist.

In the build, 3 different libraries are provided, one for each database backend.
Depending on the choice of the user, the alternatives system is set accordingly for the correct library:

# alternatives --config libbaccats.so

There are 3 programs which provide 'libbaccats.so'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib64/libbaccats-mysql.so
 + 2           /usr/lib64/libbaccats-sqlite3.so
*  3           /usr/lib64/libbaccats-postgresql.so

Enter to keep the current selection[+], or type selection number:

Th alternatives choices were originally specified not with libbaccats.so but with libbaccats-<version>.so, but upon an upgrade the choice was corrupted and always pointing at the default alternative.

i.e. the user selected "libbaccats-mysql-5.2.10.so" but with an upgrade to 5.2.11 the user had "libbaccats-postgresql-5.2.11.so" as the default. The only way to preserve the option is to use a name for the alternatives system that does not change between the upgrades.

This has in fact been changed after many users complained that the update broke their setup:

http://pkgs.fedoraproject.org/cgit/bacula.git/commit/?id=f5b13930abef59dab2af299c056ebb5a924da792

Any idea on this?

Regards,
--Simone

Comment 2 Simone Caronni 2013-01-09 14:13:19 UTC
First fix for point 2 in the previous list:

http://pkgs.fedoraproject.org/cgit/bacula.git/commit/?id=8e73d46d46875b0e7579941b9e8378989bc13949

Comment 3 Stanislav Ochotnicky 2013-01-09 15:20:13 UTC
(In reply to comment #1)

> 1) Bacule pipe plugin
> 
> bacula-client: /usr/lib64/bacula/bpipe-fd.so

My bad, private subdir is OK. It was included in the bugreport accidentaly

> 2) Normal libraries
> 
> bacula-libs: /usr/lib64/libbac.so
> bacula-libs: /usr/lib64/libbaccfg.so
> bacula-libs: /usr/lib64/libbacfind.so
> bacula-libs: /usr/lib64/libbacpy.so
> bacula-libs-sql: /usr/lib64/libbacsql.so
> 
> Yes, this is a bug and those should be removed.

Good, glad it wasn't completely bogus.
 
> 3) Bacula Director library (libbaccats)
> Any idea on this?

Not really, it is obviously very specific use case which I missed completely.

All in all I consider commit for 2) to fix all issues that bacula had. Feel free to close as you see apropriate (after backporting to F18 if you want)

Comment 4 Simone Caronni 2013-01-10 10:09:34 UTC
Hello,

since f17/f18/master branches are in sync, I applied it to all packages.

Regards,
--Simone

Comment 5 Fedora Update System 2013-01-10 10:11:20 UTC
bacula-5.2.12-6.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/bacula-5.2.12-6.fc17

Comment 6 Fedora Update System 2013-01-10 10:11:43 UTC
bacula-5.2.12-6.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/bacula-5.2.12-6.fc18

Comment 7 Fedora Update System 2013-01-10 21:28:48 UTC
Package bacula-5.2.12-6.fc18:
* should fix your issue,
* was pushed to the Fedora 18 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing bacula-5.2.12-6.fc18'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-0573/bacula-5.2.12-6.fc18
then log in and leave karma (feedback).

Comment 8 Fedora Update System 2013-01-23 16:00:33 UTC
bacula-5.2.12-6.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 9 Fedora Update System 2013-01-23 16:24:49 UTC
bacula-5.2.12-6.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 10 Fedora Update System 2013-01-28 13:14:29 UTC
bacula-5.0.3-35.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/bacula-5.0.3-35.fc16

Comment 11 Fedora Update System 2013-02-08 02:32:43 UTC
bacula-5.0.3-35.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.