Skip to content

Don't depend on ffmpeg-full #271863

@Atemu

Description

@Atemu

Issue description

In the process of cleaning up ffmpeg and merging the ffmpeg and ffmpeg-full derivations, I have decided that uses inside Nixpkgs should use the regular ffmpeg; ffmpeg-full being reserved for advanced users to install themselves due to its significantly larger closure:

# Build with headless deps; excludes dependencies that are only necessary for
# GUI applications. To be used for purposes that don't generally need such
# components and i.e. only depend on libav
, withHeadlessDeps ? ffmpegVariant == "headless" || withSmallDeps
# Dependencies a user might customarily expect from a regular ffmpeg build.
# /All/ packages that depend on ffmpeg and some of its feaures should depend
# on the small variant. Small means the minimal set of features that satisfies
# all dependants in Nixpkgs
, withSmallDeps ? ffmpegVariant == "small" || withFullDeps
# Everything enabled; only guarded behind platform exclusivity or brokeness.
# If you need to depend on ffmpeg-full because ffmpeg is missing some feature
# your package needs, you should enable that feature in regular ffmpeg
# instead.
, withFullDeps ? ffmpegVariant == "full"

However, some packages depended and still depend on ffmpeg-full and I have not touched those. This is about to change. I've compiled a list of packages that I will rip ffmpeg-full out of:

  • liquidsoap
  • corrscope
  • obs-studio
  • vokoscreen
  • ffcast
  • escrotum
  • audiobookshelf
  • audiobookshelf
  • jellyfin-ffmpeg
  • ffmpegthumbnailer
  • handbrake
  • imagination
  • haruna
  • video-trimmer
  • peek
  • restream
  • tone
  • tonelib-gfx
  • tonelib-jam
  • tonelib-zoom
  • tonelib-metal
  • tonelib-noisereducer
  • MIDIVisualizer
  • arcanPackages

Of course, some usages of ffmpeg-full might have good reasons behind them that I'm not aware of.

If you've been pinged, you are a maintainer of one of these packages. Please reply why you need ffmpeg-full or, respectively, why regular ffmepg is not enough for your needs such that we can make it fit your needs.

We might also allow some exceptions for ffmpeg-full usage should you require an ffmpeg feature that comes with a huge closure size.

Please either shoot a reply with the reason or react with a rocket if your package doesn't actually require ffmpeg-full. (Or remove yourself from its maintainers if you no longer intend to maintain it.)

While you're at it, please also check whether your package requires ffmpeg's headed playback/capture support (i.e. xorg, wayland, SDL, pipewire) or whether the headless variant is enough. Except for these headed components, ffmpeg-headless should be the exact same.

Additionally, if your package is pinned to i.e. ffmpeg_4 or ffmpeg_5, please also check whether your package actually still requires the older ABI.

You have one month to reply. After that I'll remove ffmpeg-full usages; whether it breaks your package or not.

Maintainer ping

@AndersonTorres @Anton-Latukha @austinbutler @cpcloud @dali99 @dan4ik605743 @deviant @doronbehar @ehmry @ericdallo @jagajaga @jb55 @jojosch @justinas @jvanbruegge @kashw2 @league @materusPL @MP2E @OPNA2608 @orivej @puffnfresh @rasendubi @sikmir @wmertens

Metadata

Metadata

Assignees

No one assigned

    Labels

    2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: closure sizeThe final size of a derivation, including its dependencies9.needs: community feedbackThis needs feedback from more community members.
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions