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.
Created attachment 1448714 [details] The dnf command output is hard to read in the bug description, so here it is as an attachement
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.
bacula-9.0.7-4.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-5156ca7a45
bacula-9.0.7-4.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-98ccf382ee
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.
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.
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
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?
bacula-9.0.7-6.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-eb96865a46
bacula-9.0.7-6.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-f4cc6b44a5
The -6 build fixes the problem. You can close this bug.
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
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
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.
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.