Created attachment 1909475 [details] RPM of the build of pam-1.5.2-13.fc36.i686 Description of problem: Updating the x86_64 system with the 32 bit libraries included fails to update pam-1.5.2-12.fc36 to pam-1.5.2-13.fc36, cause it seems not available. It is possible to update pam-libs, but not pam Version-Release number of selected component (if applicable): 1.5.2-13.fc36 How reproducible: Run dnf update pam Steps to Reproduce: 1. run: dnf update pam Actual results: I get an error message. dnf wants to downgrade pam.x86_64, pam-libs.x86_64 and pam-libs.i686 to version 1.5.2-12 to resolve the issue, but it is not possible to install pam.x86_64 in version 1.5.2-13 Expected results: pam-1.5.2-13.i686 gets installed Additional info: It is possible to build pam-1.5.2-13.i686, when all requirements are fulfilled. When i tried, it did not complain about missing glibc-devel.i686 and libselinux-devel.i686, though they are needed, and tried to start the build, what resulted in a missing pam_sepermit module, what is normal, cause it is built conditionally (as specified in the configure ...). The missing module made the checks in the spec file fail. The interesting question is, why rpmbuild does not detect, that the 2 named devel packages are missing, when building with --target=i686 This is probably the actual problem and an issue of rpm (don't know). Find attached the built RPMs of pam 1.5.2-13.
Created attachment 1909476 [details] the built rpm of pam-devel-1.5.2-13.fc36.i686
Created attachment 1909477 [details] the built rpm of pam-debuginfo-1.5.2-13.fc36.i686
I believe you are getting the expected behaviour. Only 32-bit development rpms are available in the x86_64 repository, which is not the case of the main pam rpm (only pam-devel and pam-libs will be available). If you need the 32-bit pam rpm, then you can download it directly from the buildsystem (https://koji.fedoraproject.org/koji/packageinfo?packageID=222). Running "dnf update --allowerasing pam" should get you to a working state.
I have a similar problem. When I try to upgrade my Fedora 36 system, I get the following complaint: Problem 1: pam-1.5.2-12.fc36.i686 has inferior architecture - cannot install both pam-1.5.2-13.fc36.x86_64 and pam-1.5.2-12.fc36.x86_64 - cannot install the best update candidate for package pam-1.5.2-12.fc36.i686 - cannot install the best update candidate for package pam-1.5.2-12.fc36.x86_64 Problem 2: package libpwquality-1.4.4-7.fc36.i686 requires pam(x86-32), but none of the providers can be installed - package pam-1.5.2-12.fc36.i686 requires pam-libs(x86-32) = 1.5.2-12.fc36, but none of the providers can be installed - cannot install both pam-libs-1.5.2-13.fc36.i686 and pam-libs-1.5.2-12.fc36.i686 - cannot install the best update candidate for package pam-libs-1.5.2-12.fc36.i686 - cannot install the best update candidate for package libpwquality-1.4.4-7.fc36.i686 Problem 3: problem with installed package pam-1.5.2-12.fc36.i686 - package pam-1.5.2-12.fc36.i686 requires pam-libs(x86-32) = 1.5.2-12.fc36, but none of the providers can be installed - pam-libs-1.5.2-12.fc36.i686 has inferior architecture - cannot install both pam-libs-1.5.2-13.fc36.x86_64 and pam-libs-1.5.2-12.fc36.x86_64 - cannot install the best update candidate for package pam-libs-1.5.2-12.fc36.x86_64 ============================================================================================================== Package Architecture Version Repository Size ============================================================================================================== Skipping packages with conflicts: (add '--best --allowerasing' to command line to force their upgrade): pam x86_64 1.5.2-13.fc36 updates 522 k pam-libs i686 1.5.2-13.fc36 updates 61 k pam-libs x86_64 1.5.2-13.fc36 updates 58 k Transaction Summary ============================================================================================================== Skip 3 Packages Nothing to do. Complete! With --allowerasing it becomes: $ LANG=C.UTF-8 sudo dnf upgrade --allowerasing Problem: cannot install the best update candidate for package libpwquality-1.4.4-7.fc36.x86_64 - problem with installed package libpwquality-1.4.4-7.fc36.x86_64 - package libpwquality-1.4.4-7.fc36.x86_64 requires pam(x86-64), but none of the providers can be installed - cannot install the best update candidate for package pam-1.5.2-12.fc36.x86_64 - package libpwquality-1.4.4-7.fc36.i686 requires pam(x86-32), but none of the providers can be installed - pam-1.5.2-12.fc36.i686 has inferior architecture - cannot install both pam-1.5.2-13.fc36.x86_64 and pam-1.5.2-12.fc36.x86_64 - cannot install the best update candidate for package libpwquality-1.4.4-7.fc36.i686 - problem with installed package libpwquality-1.4.4-7.fc36.i686 ============================================================================================================== Package Architecture Version Repository Size ============================================================================================================== Skipping packages with conflicts: (add '--best' to command line to force their upgrade): pam x86_64 1.5.2-13.fc36 updates 522 k Transaction Summary ============================================================================================================== Skip 1 Package Nothing to do. Complete! Adding further --best does not change that: $ LANG=C.UTF-8 sudo dnf upgrade --best --allowerasing Last metadata expiration check: 1:42:46 ago on Thu Sep 15 21:35:13 2022. Error: Problem: cannot install the best update candidate for package libpwquality-1.4.4-7.fc36.x86_64 - problem with installed package libpwquality-1.4.4-7.fc36.x86_64 - package libpwquality-1.4.4-7.fc36.x86_64 requires pam(x86-64), but none of the providers can be installed - cannot install the best update candidate for package pam-1.5.2-12.fc36.x86_64 - package libpwquality-1.4.4-7.fc36.i686 requires pam(x86-32), but none of the providers can be installed - pam-1.5.2-12.fc36.i686 has inferior architecture - cannot install both pam-1.5.2-13.fc36.x86_64 and pam-1.5.2-12.fc36.x86_64 - cannot install the best update candidate for package libpwquality-1.4.4-7.fc36.i686 - problem with installed package libpwquality-1.4.4-7.fc36.i686 (try to add '--skip-broken' to skip uninstallable packages)
Ok, this explains this one step further: $ LANG=C.UTF-8 dnf -C repoquery --whatprovides 'pam(x86-64)' Last metadata expiration check: 1:49:55 ago on Thu Sep 15 21:35:13 2022. pam-0:1.5.2-12.fc36.x86_64 pam-0:1.5.2-13.fc36.x86_64 $ LANG=C.UTF-8 dnf -C repoquery --whatprovides 'pam(x86-32)' Last metadata expiration check: 1:50:12 ago on Thu Sep 15 21:35:13 2022. pam-0:1.5.2-12.fc36.i686 But why Release 12 has both architectures, but 13 only x86_64? The commit for Release 13 does not look related at all [1] (but then, I do not understand multilib at all.) [1]: https://src.fedoraproject.org/rpms/pam/c/715212ba98ef99c22ac6fbf0b9fa83f0e2ffa294?branch=f36
Some further research: pam and libpwquality have a cyclic dependency between them: $ LANG=C.UTF-8 dnf -C repoquery --whatrequires libpwquality | grep pam- pam-0:1.5.2-12.fc36.i686 pam-0:1.5.2-12.fc36.x86_64 pam-0:1.5.2-13.fc36.x86_64 $ LANG=C.UTF-8 dnf -C repoquery --whatrequires pam | grep libpwquality- libpwquality-0:1.4.4-7.fc36.i686 libpwquality-0:1.4.4-7.fc36.x86_64 Is it wrong for libpwquality to do 'Requires: pam%{?_isa}'[1]? [1]: https://src.fedoraproject.org/rpms/libpwquality/blob/f36/f/libpwquality.spec#_30
@Otto Lilfalaakso: Your problem is exacely the issue i reported here. The cyclic dependency is imho no real problem as long as both packages are installed at a time. For now you may download the attached RPM of pam-1.5.2-13.fc36.i686 https://bugzilla.redhat.com/attachment.cgi?id=1909475. What i do not understand (@ Dan Horák), why i should explicitely go to the build system and download the RPM. For a normal user this would not be a realistic scenario. @Package maintainer: Please provide pam-1.5.2-13.fc36.i686 with the normal distribution like is the case for pam-libs-1.5.2-13.fc36 . I don't see, what speaks against this.
The primary problem is in the compose tools that added pam.i686 into the F-36 GA for x86_64, while they should include only devel and libs subpackages (as defined in the multilib policy). It has known issues around the multilib support. The main pam.i686 isn't included in the updates, which seems correct. Or pam.i686 was brought into the GA by the libpwquality as a dependency, but as there is no libpwquality update in F-36 updates, thus pam.i686 isn't identified as required ... Anyway this is nothing the pam maintainer can influence, it's a release engineering issue (issues goes to https://pagure.io/releng/). I am suggesting to install pam.i686 from the buildsystem, because from the original question it's not clear what is the use-case. If you don't make any use of the pam.i686 rpm, then try removing it manually (dnf remove pam.i686) before trying to update the system. Ideally the whole 32-bit x86 support should be made a history ...
I believe https://pagure.io/pungi-fedora/blob/main/f/fedora.conf#_234 and related configs need an update, please open the rel-eng ticket.
Thank you for weighing in, Dan! I created a rel-eng ticket: https://pagure.io/releng/issue/11037 Personally, I have determined that I do not need pam.i686 anymore, so solved this problem with 'dnf remove pam.i686'. Just in case somebody wants to play around with this, here is a reproducer for fully updated Fedora 36: $ sudo dnf install pam.i686 --assumeyes && sudo dnf upgrade
As this has been identified as a rel-eng issue and a ticket has been opened for it I'm closing this bugzilla.