Bug 2208474

Summary: update-alternatives lint checks not in line with Fedora packaging guidelines
Product: [Fedora] Fedora Reporter: Xavier Delaruelle <xavier.delaruelle>
Component: rpmlintAssignee: Tom "spot" Callaway <spotrh>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: 39CC: j, spotrh, tmz, twoerner
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 Xavier Delaruelle 2023-05-19 08:24:11 UTC
When linting (through fedpkg) a package I maintain (environment-modules), I recently obtain errors that were not reported previously:

* alternative-link-missing
* alternative-generic-name-not-symlink

I cannot describe when these new errors appeared unfortunately. What I can say for sure:

* I did not get these alternative errors when building and testing the package in May 2022
* The update-alternative setup in the spec file I work on has not changed since a long time
* Now I want to build and test the package I obtain these 2 new errors.

Now looking at these 2 error explanations, it asks to reference the /etc/alternatives/<name> symlink in the %file section of the spec package.

I have checked the Fedora packaging guidelines (https://docs.fedoraproject.org/en-US/packaging-guidelines/Alternatives/) and these errors reported by rpmlint are not in line with Fedora guidelines. I have checked other Fedora packages and they still follow the distribution packaging guidelines.

Looking at rpmlint code (https://github.com/rpm-software-management/rpmlint/commit/62cb4fb1dac50d385f9c22a6f2a5aad965dc622a), it seems it also support openSUSE guidelines (https://en.opensuse.org/openSUSE:Packaging_Multiple_Version_guidelines). These openSUSE guidelines seem to be in line with rpmlint reports.

So from my understanding, either:
* rpmlint should be adapted for Fedora to cope with Fedora packaging guidelines
* Fedora packaging guidelines should be updated to reflect the new error reports

Reproducible: Always

Steps to Reproduce:
1. dnf install fedpkg
2. git clone ssh://<login>@pkgs.fedoraproject.org/rpms/environment-modules
3. cd environment-modules
4. fedpkg mockbuild
5. fedpkg lint


Actual Results:  
$ fedpkg lint
Mockbuild results directory found. Linting mockbuild results.
============================================================================================== rpmlint session starts =============================================================================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.10/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/home/user/devel/environment-modules/environment-modules.rpmlintrc')]
checks: 31, packages: 3

environment-modules.x86_64: W: package-with-huge-docs 73%
environment-modules.x86_64: I: package supports update-alternatives
environment-modules.x86_64: W: no-manual-page-for-binary envml
environment-modules.x86_64: W: files-duplicate /usr/share/Modules/init/ksh-functions/module /usr/share/Modules/init/ksh:/usr/share/Modules/init/ksh-functions/ml
environment-modules.x86_64: W: dangerous-command-in-%post rm
environment-modules.x86_64: E: alternative-link-missing /etc/alternatives/modules.csh
environment-modules.x86_64: E: alternative-link-missing /etc/alternatives/modulecmd
environment-modules.x86_64: E: alternative-link-missing /etc/alternatives/modules.sh
environment-modules.x86_64: E: alternative-generic-name-not-symlink /etc/profile.d/modules.csh
environment-modules.x86_64: E: alternative-generic-name-not-symlink /usr/bin/modulecmd
environment-modules.x86_64: E: alternative-generic-name-not-symlink /etc/profile.d/modules.sh
=============================================================== 2 packages and 1 specfiles checked; 6 errors, 4 warnings, 6 badness; has taken 0.4 s ==============================================================
Could not execute lint: Failed to execute command.

Expected Results:  
I would expect not to get the "E: alternative-link-missing" and "E: alternative-generic-name-not-symlink" errors

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