Subject: [bug#76740] Comments

From: Andreas Enge <[email-masked]>
Date: Wed, 2 Apr 2025 01:27:19 +0200

Hello,

thanks for the patch!

The reason that all ffmpeg versions get rebuilt is, I think, that you do
not only update the package source of ffmpeg@7, but also change one of
its phases; so the inheriting packages will also have this changed
phase. Is this needed?

If yes, one solution should be to copy-paste the corresponding field to
ffmpeg@6 before changing it in ffmpeg@7, and maybe let the other ffmpeg
variants then inherit from ffmpeg@6.

As for switching the standard ffmpeg version from 6 to 7, it mainly
takes work to try out which packages still build and which do not.

After having just done something similar with hdf5, I would suggest the
following approach:
- Make sure that all direct dependents of ffmpeg@6 and ffmpeg@7 build
  with "guix build -P1 ...". If this is not the case, repair these
  packages or file removal requests.
- Once all dependents build, do the renaming of ffmpeg-7 to ffmpeg,
  of ffmpeg to ffmpeg-6, and replace all occurring inputs ffmpeg-7,
  while keeping all inputs ffmpeg - this operates the update.
- Then run "./pre-inst-env guix build -P 1 ffmpeg"; for the depending
  packages that do not build, put ffmpeg-6 into its inputs.

Once all direct dependents build, it is time to let QA build out
all packages.

Another idea if you are looking for work :) is to try to get rid of
older ffmpeg versions by checking if their dependents build (if not,
they should be updated or removed) or can be updated to use newer
versions.

Andreas