Bug 2157776

Summary: non-suid pacakge missing obsolete singularity metadata
Product: [Fedora] Fedora EPEL Reporter: Stuart Anderson <anderson>
Component: apptainerAssignee: Dave Dykstra <dwd>
Status: CLOSED NOTABUG QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: epel8CC: dwd, go-sig
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-01-03 23:41:54 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stuart Anderson 2023-01-02 21:28:33 UTC
Description of problem:

obsolete singularity was removed from the non-suid apptainer package metadata which breaks package dependencies on systems that do not install the apptainer-suid package and have legacy packages still dependent on singularity.

Version-Release number of selected component (if applicable):

1.4.1-2

How reproducible:

100%

Steps to Reproduce:
1. yum update on a system with apptainer-1.4.1-1 (but not apptainer-suid) and any package that depends on singularity.

Actual results:

root@ldas-pcdev8 ~]# yum update
Last metadata expiration check: 1:53:08 ago on Mon 02 Jan 2023 10:47:36 AM PST.
Error: 
 Problem: package igwn-batch-execute-20220520-1.el8.noarch requires singularity, but none of the providers can be installed
  - cannot install both apptainer-1.1.4-2.el8.x86_64 and apptainer-1.1.4-1.el8.x86_64
  - cannot install the best update candidate for package igwn-batch-execute-20220520-1.el8.noarch
  - cannot install the best update candidate for package apptainer-1.1.4-1.el8.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)


Expected results:

apptainer-1.4.1-1 package updated to apptainer-1.4.1-2

Comment 1 Stuart Anderson 2023-01-02 21:39:47 UTC
My bad. I now see in the Changelog that this was a deliberate metadata change since 1.1.4-2 is now incompatible with singularity.

Comment 2 Stuart Anderson 2023-01-02 21:42:40 UTC
However, given this incompatibility should the new package still provide /usr/bin/singularity?

Comment 3 Dave Dykstra 2023-01-03 18:15:17 UTC
Hi Stuart,

The apptainer package should definitely still provide /usr/bin/singularity, since almost all of the functionality is seamlessly the same, especially when unprivileged user namespaces are enabled (which is default on EL8 and greater).

I think the main issue you ran across is the removal of "Provides: singularity" even from the apptainer-suid package.  I am planning on soon requesting permission to add that back, to the apptainer-suid package, after a few more pending PRs are merged. 

Meanwhile, I suggest you update your package to require apptainer or apptainer-suid, whichever one makes the most sense for your use case.  Starting with rpm 4.13 (not available in EL7) you can use the "or" keyword to require different possible packages: https://rpm-software-management.github.io/rpm/manual/boolean_dependencies.html

Dave

Comment 4 Dave Dykstra 2023-01-03 18:25:51 UTC
I think the changelog entry misled you -- it doesn't say that apptainer is incompatible with singularity, it says "due to incompatibilities".  There are some differences, and the EPEL Steering Committee and I had a disagreement over whether or not it was "compatible enough".  Moving the "Obsoletes: singularity" to the apptainer-suid package addressed the majority of the differences, and there are pending PRs to address the remaining differences. The committee recommended that I bring the request to add back the Provides to the Fedora Engineering Engineering Steering Committee after the changes are done.

Comment 5 Stuart Anderson 2023-01-03 20:45:10 UTC
Thanks for the explanation. We are going to push ahead and change our EL8 package dependencies from singularity to apptainer as we do not want to use apptainer-suid, so as far as I am concerned you can close this ticket unless it is helpful for you and the steering committee.