Bug 2213765

Summary: RPM transaction conflicts between nss-3.90.0-1.fc39.x86_64 and nspr-devel-4.35.0-6.fc39.x86_64
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: nssAssignee: Bob Relyea <rrelyea>
Status: CLOSED COMPLETED QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 39CC: crypto-team, fkrenzel, kai-engert-fedora, rrelyea
Target Milestone: ---Keywords: Regression, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-16 08:33:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Miro Hrončok 2023-06-09 09:08:27 UTC
There are some file conflicts when I try to install nss-devel and nspr-devel. This happens when building e.g. vinagre or qt-virt-manager in Rawhide.

Reproducible: Always

Steps to Reproduce:
1. mock -r fedora-rawhide-x86_64 init
2. mock -r fedora-rawhide-x86_64 --enablerepo=local install nss-devel nspr-devel
Actual Results:  
Error: Transaction test error:
  file /usr/share/man/man1/setup-nsssysinit.1.gz conflicts between attempted installs of nss-sysinit-3.90.0-1.fc39.x86_64 and nspr-devel-4.35.0-6.fc39.x86_64
  file /usr/share/man/man5/cert9.db.5.gz conflicts between attempted installs of nss-3.90.0-1.fc39.x86_64 and nspr-devel-4.35.0-6.fc39.x86_64
  file /usr/share/man/man5/key4.db.5.gz conflicts between attempted installs of nss-3.90.0-1.fc39.x86_64 and nspr-devel-4.35.0-6.fc39.x86_64
  file /usr/share/man/man5/pkcs11.txt.5.gz conflicts between attempted installs of nss-3.90.0-1.fc39.x86_64 and nspr-devel-4.35.0-6.fc39.x86_64
  file /usr/share/man/man1/nss-config.1.gz conflicts between attempted installs of nss-devel-3.90.0-1.fc39.x86_64 and nspr-devel-4.35.0-6.fc39.x86_64



Expected Results:  
Packages insatlled.

Comment 1 Miro Hrončok 2023-06-09 09:24:10 UTC
Note that actually disabling the mirrored repository works:

$ mock -r fedora-rawhide-x86_64 --disablerepo='*' --enablerepo=local install nss-devel nspr-devel
...
Installed:
 ...
 nspr-devel-4.35.0-1.fc39.x86_64
 nspr-4.35.0-1.fc39.x86_64
 nss-devel-3.90.0-1.fc39.x86_64
 nss-softokn-devel-3.90.0-1.fc39.x86_64
 nss-softokn-freebl-devel-3.90.0-1.fc39.x86_64
 nss-softokn-freebl-3.90.0-1.fc39.x86_64
 nss-softokn-3.90.0-1.fc39.x86_64
 nss-sysinit-3.90.0-1.fc39.x86_64
 nss-util-devel-3.90.0-1.fc39.x86_64
 nss-util-3.90.0-1.fc39.x86_64
 nss-3.90.0-1.fc39.x86_64
 ...

The problem seems to be that nspr-devel is downgraded and not upgraded in the recent build. So mock sees the "higher version-release" (but older) build from the mirrored repository.


There are 2 fixes needed here:

 - explicit Conflict and/or versioned Requires need to be added to avoid the implicit file conflict
 - the Release of the nspr subpackages should be maintained explicitly and only reset to 1%{?dist} when the version actually inclreases

Comment 2 Miro Hrončok 2023-06-09 09:26:19 UTC
As far as the actual conflicts go, I am not sure this is actually intended:

  %files -n nspr-devel
  ...
  %{_mandir}/man*/*

Why would nspr-devel contain all the mapages?

Comment 3 Frantisek Krenzelok 2023-06-09 11:36:11 UTC
Hi Miro,

Thanks for reporting this!
The mistake was caused by me, I am working on a fix

Comment 4 Frantisek Krenzelok 2023-06-12 08:19:38 UTC
The new build is complete, I have tested according to reproducibility steps and it successfully installed the packages.
@mhr Could you please also check to make sure.

Comment 5 Miro Hrončok 2023-06-12 08:45:02 UTC
nspr packages are now 4.35.0-8.fc39 which fixes the immediate problem.

However, why are all the manual pages duplicated in nspr-devel?

  %files -n nspr-devel
  ...
  %{_mandir}/man*/*

Comment 6 Frantisek Krenzelok 2023-06-12 09:20:02 UTC
@

Comment 7 Bob Relyea 2023-06-12 18:26:20 UTC
Sigh. looks like a mistake when NSS and NSPR packages were merged.

We'll need to explicitly name the  man pages for each package (unless there's a way to generate a list programmatically when we 'install' them). We install them by hand IIRC because the upstream makefiles don't really have 'make install'.

Comment 8 Bob Relyea 2023-06-12 18:38:15 UTC
OK, I looks like NSS is correctly explicitly grabbing it's man pages. NSPR only has one man page, so we should explicitly grab it. Look's like I only fixed it in RHEL-9, which is correct now:

%doc %{_mandir}/man1/nspr-config.*

Comment 9 Fedora Release Engineering 2023-08-16 08:10:26 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle.
Changing version to 39.

Comment 10 Frantisek Krenzelok 2023-08-16 08:33:28 UTC
The doc pages have been fixed in fedora supported versions.