Bug 1588514 - Cannot upgrade to bacula 9.0.7-3.fc28
Summary: Cannot upgrade to bacula 9.0.7-3.fc28
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: bacula
Version: 28
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Simone Caronni
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-06-07 13:14 UTC by Steven A. Falco
Modified: 2018-06-15 15:51 UTC (History)
6 users (show)

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:
Clone Of:
Environment:
Last Closed: 2018-06-15 14:58:33 UTC
Type: Bug


Attachments (Terms of Use)
The dnf command output is hard to read in the bug description, so here it is as an attachement (4.07 KB, text/plain)
2018-06-07 13:17 UTC, Steven A. Falco
no flags Details

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.


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