#1184 Packages using dlopen to open libraries in non-Fedora repos
Opened 2 years ago by imcinerney. Modified 2 years ago

I recently had a PR to enable the ffmpeg support in Audacity (https://src.fedoraproject.org/rpms/audacity/pull-request/4) because it is a dlopen-based support and will look for the library at runtime and load it that way only if available. In this case, the version of ffmpeg that is required is still the old ffmpeg4 version, so it is only satisfiable using the RPMfusion (i.e. non-fedora) repo.

This would seem to be against the packaging guidelines to me, since it introduces a runtime dependency on a non-fedora repo for the part of the software to function. Specifically, it would seem to be against:

All package dependencies (build-time or runtime, regular, weak or otherwise) MUST ALWAYS be satisfiable within the official Fedora repositories.

The submitter of the PR claims this is already done in other packages and is therefore allowed, but to me, this doesn't seem to match what that guideline is saying. I would like for the packaging committee to clarify if this sort of "optional runtime dependency" must also be included in a fedora repo, or if it is allowed to live in non-fedora repos.

(a further complication to this is the fact that ffmpeg-free is now in fedora repos, but that is only ffmpeg5 not ffmpeg4, and Audacity only supports ffmpeg4 so the version in the fedora repos is not currently compatible with Audacity).


I recently had a PR to enable the ffmpeg support in Audacity

The submitter of the PR claims this is already done in other packages and is therefore allowed, but to me, this doesn't seem to match what that guideline is saying. I would like for the packaging committee to clarify if this sort of "optional runtime dependency" must also be included in a fedora repo, or if it is allowed to live in non-fedora repos.

Firefox has used dlopen for many years before ffmpeg was included in the fedora repo.

In the quoted section, "dependencies" refers to RPM dependencies. Everything that is required, recommended, suggested, etc. via RPM tags or automatically discovered dependencies must be satisfiable within the standard Fedora repositories. If a package wants to check for the presense of some other piece of software and do something additional when that software exists, then that's not what we could call a dependency and in most cases would not be an issue. It's almost certainly not OK to start flashing dialogs saying things like "Important functionality not available; turn on RPMFusion repositories and install Xffmpeg to eliminate this message" or something like that, but merely adding a menu option allowing additional format conversions when a full ffmpeg is installed is fine.

As always when dancing around the line here, we must say that the real restrictions on mentioning RPMFusion here are imposed upon Fedora (and thus this committee) by the lawyers and thus if you do have questions about exactly how far you can go in relation to conections to RPMFusion, you need to head over to the fedora-legal list.

The obvious question (to me) to ask here is why not fix Audacity to work with ffmpeg 5, which is what we already ship in Fedora?

The obvious question (to me) to ask here is why not fix Audacity to work with ffmpeg 5, which is what we already ship in Fedora?

That is an upstream issue to fix.
The only question that matters on this ticket is whether enabling dlopen ffmpeg support breaches the packaging guidelines.

As long as the dependency isn't declared anywhere in the packaging, then it's considered no different than loading plugins and is fine.

This has been confirmed to me on multiple separate occasions as part of working on a number of packages, including ffmpeg in Fedora itself.

Login to comment on this ticket.

Metadata