On Mon, Nov 8, 2021 at 11:51 AM Andreas Schneider asn@redhat.com wrote:
On Monday, November 8, 2021 10:55:32 AM CET Dominik 'Rathann' Mierzejewski wrote:
On Monday, 08 November 2021 at 10:12, Andreas Schneider wrote:
Hi,
there are several packages in the distribution which require FFMPEG (libavformat, libavcodec, etc.), one of them being chromium. The package could
be created in a way that you can easily replace it with a version
from rpmfusion to get to the full encoder/decoder set including H264 etc.
This is working fine with openSUSE and packages from Packman.
https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-4 https://pmbs.links2linux.org/package/show/Essentials/A_tw-ffmpeg
The Packman version always has a higher release version than the one in the
distribution.
I'm interested in this, as I try to package electron for Fedora. The big problem is the included ffmpeg. With openSUSE I can just use the system ffmpeg, with Fedora I have to do some source code voodoo which I really would
like to avoid.
Maintaining such package would require keeping watch for any new files you'd need to include and going through legal review each time you do.
Did you take a look how they solved it at SUSE?
You have list for encoder and decoders which are allowed to be built. So if a new encoder or decoder would be added, it would just not be built. You will just always end up with the same set of encoders/decoders with every update.
Packman uses the exact same package as openSUSE and all it does it to enable all encoders and decoders.
All packages requiring ffmpeg can just always be built against the system version.
It should be less legal work, as you have to check just one package and not several which might include it as third_party source code.
IMO it's much less work to just maintain everything that depends on FFmpeg in RPM Fusion.
If you're determined, however, you could start with what Chromium does: https://src.fedoraproject.org/rpms/chromium/blob/rawhide/f/clean_ffmpeg.sh
How is it less work if you need to clean ffmpeg source codes in several projects which include it instead of just linking the system one? It is more prone to errors to remove sources and you have to track it instead of just having a fixed decoder/encoder set you build.
It's not the point that it's easier.
If I understand correctly, any official ffmpeg package distributed by Fedora would not be allowed to contain even the *source code* for patent-encumbered or redistribution-limited codecs in its source package (because those sources are redistributed too). So the only way to achieve that would be to use "clean" tarballs - and a hardcoded list of "allowed codecs to build" alone is not enough to satisfy that requirement.
Fabio