Bug 1588514

Summary: Cannot upgrade to bacula 9.0.7-3.fc28
Product: [Fedora] Fedora Reporter: Steven A. Falco <stevenfalco>
Component: baculaAssignee: Simone Caronni <negativo17>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 28CC: andreas, jridky, negativo17, phracek, rvokal, stevenfalco
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: bacula-9.0.7-6.fc27 bacula-9.0.7-6.fc28 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-15 14:58:33 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:
Attachments:
Description Flags
The dnf command output is hard to read in the bug description, so here it is as an attachement none

Description Steven A. Falco 2018-06-07 13:14:45 UTC
Description of problem:

When attempting to upgrade bacula, I get:

saf# dnf update --refresh
Last metadata expiration check: 0:00:00 ago on Thu 07 Jun 2018 08:55:36 AM EDT.
Dependencies resolved.

 Problem 1: cannot install the best update candidate for package bacula-director-9.0.6-8.fc28.x86_64
  - nothing provides libbaccats-9.0.7.so()(64bit) needed by bacula-director-9.0.7-3.fc28.x86_64
 Problem 2: cannot install the best update candidate for package bacula-storage-9.0.6-8.fc28.x86_64
  - nothing provides libbaccats-9.0.7.so()(64bit) needed by bacula-storage-9.0.7-3.fc28.x86_64
 Problem 3: package bacula-logwatch-9.0.7-3.fc28.noarch requires bacula-director = 9.0.7-3.fc28, but none of the providers can be installed
  - cannot install the best update candidate for package bacula-logwatch-9.0.6-8.fc28.noarch
  - nothing provides libbaccats-9.0.7.so()(64bit) needed by bacula-director-9.0.7-3.fc28.x86_64
 Problem 4: problem with installed package bacula-storage-9.0.6-8.fc28.x86_64
  - package bacula-storage-9.0.6-8.fc28.x86_64 requires bacula-common(x86-64) = 9.0.6-8.fc28, but none of the providers can be installed
  - cannot install both bacula-common-9.0.7-3.fc28.x86_64 and bacula-common-9.0.6-8.fc28.x86_64
  - cannot install both bacula-common-9.0.6-8.fc28.x86_64 and bacula-common-9.0.7-3.fc28.x86_64
  - cannot install the best update candidate for package bacula-common-9.0.6-8.fc28.x86_64
  - nothing provides libbaccats-9.0.7.so()(64bit) needed by bacula-storage-9.0.7-3.fc28.x86_64
 Problem 5: problem with installed package bacula-director-9.0.6-8.fc28.x86_64
  - package bacula-director-9.0.6-8.fc28.x86_64 requires bacula-libs(x86-64) = 9.0.6-8.fc28, but none of the providers can be installed
  - package bacula-director-9.0.6-8.fc28.x86_64 requires libbac-9.0.6.so()(64bit), but none of the providers can be installed
  - cannot install both bacula-libs-9.0.7-3.fc28.x86_64 and bacula-libs-9.0.6-8.fc28.x86_64
  - cannot install both bacula-libs-9.0.6-8.fc28.x86_64 and bacula-libs-9.0.7-3.fc28.x86_64
  - cannot install the best update candidate for package bacula-libs-9.0.6-8.fc28.x86_64
  - nothing provides libbaccats-9.0.7.so()(64bit) needed by bacula-director-9.0.7-3.fc28.x86_64
 Problem 6: problem with installed package bacula-logwatch-9.0.6-8.fc28.noarch
  - package bacula-logwatch-9.0.6-8.fc28.noarch requires bacula-director = 9.0.6-8.fc28, but none of the providers can be installed
  - package bacula-director-9.0.6-8.fc28.x86_64 requires bacula-libs-sql(x86-64) = 9.0.6-8.fc28, but none of the providers can be installed
  - package bacula-director-9.0.6-8.fc28.x86_64 requires libbaccats-9.0.6.so()(64bit), but none of the providers can be installed
  - cannot install both bacula-libs-sql-9.0.7-3.fc28.x86_64 and bacula-libs-sql-9.0.6-8.fc28.x86_64
  - cannot install both bacula-libs-sql-9.0.6-8.fc28.x86_64 and bacula-libs-sql-9.0.7-3.fc28.x86_64
  - package bacula-logwatch-9.0.7-3.fc28.noarch requires bacula-director = 9.0.7-3.fc28, but none of the providers can be installed
  - cannot install the best update candidate for package bacula-libs-sql-9.0.6-8.fc28.x86_64
  - nothing provides libbaccats-9.0.7.so()(64bit) needed by bacula-director-9.0.7-3.fc28.x86_64
================================================================================
 Package                Arch          Version              Repository      Size
================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 bacula-common          x86_64        9.0.7-3.fc28         updates         36 k
 bacula-libs            x86_64        9.0.7-3.fc28         updates        501 k
 bacula-libs-sql        x86_64        9.0.7-3.fc28         updates        119 k
Skipping packages with broken dependencies:
 bacula-director        x86_64        9.0.7-3.fc28         updates        400 k
 bacula-logwatch        noarch        9.0.7-3.fc28         updates         29 k
 bacula-storage         x86_64        9.0.7-3.fc28         updates        185 k

Transaction Summary
================================================================================
Skip  6 Packages

Nothing to do.
Complete!


Version-Release number of selected component (if applicable): 9.0.7-3.fc28


How reproducible: 100%


Steps to Reproduce:
1. dnf update --refresh

Actual results: see above


Expected results: normal upgrade


Additional info:

With the previous (9.0.6-8.fc28) release of bacula, the command:

rpm -q --whatprovides 'libbaccats-9.0.6.so()(64bit)'

gives:

bacula-libs-sql-9.0.6-8.fc28.x86_64

However, if I remove bacula 9.0.6-8.fc28 from my system and just install bacula's libraries (bacula-libs-9.0.7-3.fc28.x86_64.rpm and bacula-libs-sql-9.0.7-3.fc28.x86_64.rpm), then trying the command:

rpm -q --whatprovides 'libbaccats-9.0.7.so()(64bit)'

gives:

no package provides libbaccats-9.0.7.so()(64bit)

Thus, it appears that the bacula-libs-sql-9.0.7-3.fc28.x86_64.rpm doesn't provide libbaccats-9.0.7.so()(64bit).

To further illustrate the problem, here are the --provides for both the good 9.0.6-8.fc28 version and the broken 9.0.7-3.fc28 versions:

saf$ rpm -q --provides bacula-libs-sql-9.0.6-8.fc28.x86_64.rpm
bacula-libs-mysql = 9.0.6-8.fc28
bacula-libs-postgresql = 9.0.6-8.fc28
bacula-libs-sql = 9.0.6-8.fc28
bacula-libs-sql(x86-64) = 9.0.6-8.fc28
bacula-libs-sqlite = 9.0.6-8.fc28
libbaccats-9.0.6.so()(64bit)
libbacsql-9.0.6.so()(64bit)

saf$ rpm -q --provides bacula-libs-sql-9.0.7-3.fc28.x86_64.rpm
bacula-libs-mysql = 9.0.7-3.fc28
bacula-libs-postgresql = 9.0.7-3.fc28
bacula-libs-sql = 9.0.7-3.fc28
bacula-libs-sql(x86-64) = 9.0.7-3.fc28
bacula-libs-sqlite = 9.0.7-3.fc28
libbaccats-mysql-9.0.7.so()(64bit)
libbaccats-postgresql-9.0.7.so()(64bit)
libbaccats-sqlite3-9.0.7.so()(64bit)
libbacsql-9.0.7.so()(64bit)

Notice that the 9.0.6-8.fc28 version provides libbaccats, but the 9.0.7-3.fc28 version provides libbaccats-mysql, libbaccats-postgresql, and libbaccats-sqlite3 instead.

Comment 1 Steven A. Falco 2018-06-07 13:17:34 UTC
Created attachment 1448714 [details]
The dnf command output is hard to read in the bug description, so here it is as an attachement

Comment 2 Simone Caronni 2018-06-11 10:40:11 UTC
This is due to the fact that bacula provides a requirement for the main binaries on libbaccats.so, and nothing provides as the various variations provide libbacats-mysql.so, libbaccats-postgresql.so and libbaccats-sqlite.so.

Then the main binary loads it through a symlink. The upstream patch that was included upstream for getting the correct soname was rejected in a rebase long time ago. Now it does not work cleanly anymore with the recent rpm build changes.

Comment 3 Fedora Update System 2018-06-11 12:03:42 UTC
bacula-9.0.7-4.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-5156ca7a45

Comment 4 Fedora Update System 2018-06-11 12:04:00 UTC
bacula-9.0.7-4.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-98ccf382ee

Comment 5 Steven A. Falco 2018-06-11 12:41:57 UTC
I tried bacula-9.0.7-4.fc28 but it still has problems.  Specifically, while it installs, it won't run.  /var/log/messages shows why:

/usr/sbin/bacula-dir: error while loading shared libraries: libbaccats-9.0.7.so: cannot open shared object file: No such file or directory

When I look in /usr/lib64, I see:

saf# ll /usr/lib64/libbaccats*
-rwxr-xr-x 1 root root 36296 Jun 11 07:02 /usr/lib64/libbaccats.so*
-rwxr-xr-x 1 root root 24096 Jun 11 07:02 /usr/lib64/libbaccats-sqlite3.so*
-rwxr-xr-x 1 root root 24096 Jun 11 07:02 /usr/lib64/libbaccats-sqlite3-9.0.7.so*
-rwxr-xr-x 1 root root 36296 Jun 11 07:02 /usr/lib64/libbaccats-postgresql.so*
-rwxr-xr-x 1 root root 36296 Jun 11 07:02 /usr/lib64/libbaccats-postgresql-9.0.7.so*
-rwxr-xr-x 1 root root 28136 Jun 11 07:02 /usr/lib64/libbaccats-mysql.so*
-rwxr-xr-x 1 root root 28136 Jun 11 07:02 /usr/lib64/libbaccats-mysql-9.0.7.so*

As you can see, there is no library libbaccats-9.0.7.so so bacula-dir won't run.

I can work around it by doing:

saf# cd /usr/lib64
saf# ln -s libbaccats-postgresql-9.0.7.so libbaccats-9.0.7.so

There might be a way to work around it with the "alternatives" command, but since it now would have to contain the version number, we'd have to re-run alternatives on every update.  I don't think that is acceptable.

Comment 6 Steven A. Falco 2018-06-11 13:47:57 UTC
It looks like upstream solves this problem a different way in their community edition.  They build separate packages for the different databases:

bacula-mysql-9.0.8-1.fc27.x86_64.rpm

bacula-postgresql-9.0.8-1.fc27.x86_64.rpm

That way, the whole "alternatives" mechanism becomes unnecessary, and the symlink would not be needed.  Perhaps that would be a better solution for Fedora also.

Comment 7 Fedora Update System 2018-06-11 14:53:11 UTC
bacula-9.0.7-4.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-5156ca7a45

Comment 8 Steven A. Falco 2018-06-11 15:05:06 UTC
I still cannot get this to work.  I tried completely removing bacula and reinstalling.  I still get the error:

/usr/sbin/bacula-dir: error while loading shared libraries: libbaccats-9.0.7.so: cannot open shared object file: No such file or directory

The link is _not_ created by the command:

alternatives --set libbaccats.so /usr/lib64/libbaccats-postgresql.so

All that command does is to set up:

libbaccats.so -> /etc/alternatives/libbaccats.so

It does not set up libbaccats-9.0.7.so, which is what bacula-dir requires:

saf# ldd /usr/sbin/bacula-dir | grep libbaccats
        libbaccats-9.0.7.so => not found

The only way I've found to work around the error is to manually create the link:

cd /usr/lib64
ln -s libbaccats.so libbaccats-9.0.7.so

Then the library is satisfied:

saf# ldd /usr/sbin/bacula-dir | grep libbaccats
        libbaccats-9.0.7.so => /lib64/libbaccats-9.0.7.so (0x00007f570fa6a000)

Is there some other command that I am missing for creating the link to libbaccats-9.0.7.so?

Comment 9 Fedora Update System 2018-06-14 05:04:05 UTC
bacula-9.0.7-6.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-eb96865a46

Comment 10 Fedora Update System 2018-06-14 05:04:19 UTC
bacula-9.0.7-6.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-f4cc6b44a5

Comment 11 Steven A. Falco 2018-06-14 12:44:44 UTC
The -6 build fixes the problem.  You can close this bug.

Comment 12 Fedora Update System 2018-06-14 18:23:09 UTC
bacula-9.0.7-6.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-eb96865a46

Comment 13 Fedora Update System 2018-06-14 20:24:02 UTC
bacula-9.0.7-6.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-f4cc6b44a5

Comment 14 Fedora Update System 2018-06-15 14:58:33 UTC
bacula-9.0.7-6.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2018-06-15 15:51:28 UTC
bacula-9.0.7-6.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.