From c100d631369a4279fa99a87b8d9563a8b13d4ab8 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Mon, 24 Oct 2022 19:23:35 +1000 Subject: [PATCH 1/9] navidrome: depend on ffmpeg-headless explicitly --- pkgs/servers/misc/navidrome/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/servers/misc/navidrome/default.nix b/pkgs/servers/misc/navidrome/default.nix index 0833a1ec1a64..8c63b0fb940d 100644 --- a/pkgs/servers/misc/navidrome/default.nix +++ b/pkgs/servers/misc/navidrome/default.nix @@ -4,7 +4,7 @@ , lib , pkg-config , stdenv -, ffmpeg +, ffmpeg-headless , taglib , zlib , makeWrapper @@ -54,7 +54,7 @@ buildGoModule { postFixup = lib.optionalString ffmpegSupport '' wrapProgram $out/bin/navidrome \ - --prefix PATH : ${lib.makeBinPath [ ffmpeg ]} + --prefix PATH : ${lib.makeBinPath [ ffmpeg-headless ]} ''; passthru = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 33565644aa3b..6fd78c323b92 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37934,9 +37934,7 @@ with pkgs; gpio-utils = callPackage ../os-specific/linux/kernel/gpio-utils.nix { }; - navidrome = callPackage ../servers/misc/navidrome { - ffmpeg = ffmpeg-headless; - }; + navidrome = callPackage ../servers/misc/navidrome { }; zalgo = callPackage ../tools/misc/zalgo { }; From e64d154cb0c62a4f544db05b6f37c5adaaebb7f5 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Mon, 24 Oct 2022 19:24:19 +1000 Subject: [PATCH 2/9] unpaper: depend on ffmpeg_5-headless explicitly --- pkgs/tools/graphics/unpaper/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/graphics/unpaper/default.nix b/pkgs/tools/graphics/unpaper/default.nix index 72c63d6cfd2c..b7fe0f6955ca 100644 --- a/pkgs/tools/graphics/unpaper/default.nix +++ b/pkgs/tools/graphics/unpaper/default.nix @@ -12,7 +12,7 @@ # runtime , buildPackages -, ffmpeg_5 +, ffmpeg_5-headless # tests , nixosTests @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - ffmpeg_5 + ffmpeg_5-headless ]; passthru.tests = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6fd78c323b92..97b0e4695d4f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -32496,9 +32496,7 @@ with pkgs; enableX11 = config.unison.enableX11 or true; }; - unpaper = callPackage ../tools/graphics/unpaper { - ffmpeg_5 = ffmpeg_5-headless; - }; + unpaper = callPackage ../tools/graphics/unpaper { }; unison-ucm = callPackage ../development/compilers/unison { }; From c4cea0389b2ece8ffaafe6cd92b0aa6a72fa4309 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Sun, 23 Oct 2022 11:37:54 +1000 Subject: [PATCH 3/9] nixos/no-x-libs: use headless ffmpeg variants --- nixos/modules/config/no-x-libs.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix index 946c9bf38c47..4e1d57cc4835 100644 --- a/nixos/modules/config/no-x-libs.nix +++ b/nixos/modules/config/no-x-libs.nix @@ -30,8 +30,8 @@ with lib; beam = super.beam_nox; cairo = super.cairo.override { x11Support = false; }; dbus = super.dbus.override { x11Support = false; }; - ffmpeg_4 = super.ffmpeg_4.override { sdlSupport = false; vdpauSupport = false; }; - ffmpeg_5 = super.ffmpeg_5.override { sdlSupport = false; vdpauSupport = false; }; + ffmpeg_4 = super.ffmpeg_4-headless; + ffmpeg_5 = super.ffmpeg_5-headless; gobject-introspection = super.gobject-introspection.override { x11Support = false; }; libva = super.libva-minimal; networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; }; From 8a1506d06460138757984ec9ada9c4a60c673e15 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Mon, 24 Oct 2022 19:25:59 +1000 Subject: [PATCH 4/9] ffmpegthumbnailer: switch to ffmpeg-headless --- pkgs/development/libraries/ffmpegthumbnailer/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix index bfe8f80032dd..eb1251987ad9 100644 --- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix +++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix @@ -1,4 +1,4 @@ -{ fetchFromGitHub, lib, stdenv, ffmpeg, cmake, libpng, pkg-config, libjpeg +{ fetchFromGitHub, lib, stdenv, ffmpeg-headless, cmake, libpng, pkg-config, libjpeg }: stdenv.mkDerivation rec { @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ ffmpeg libpng libjpeg ]; + buildInputs = [ ffmpeg-headless libpng libjpeg ]; cmakeFlags = [ "-DENABLE_THUMBNAILER=ON" ]; # https://github.com/dirkvdb/ffmpegthumbnailer/issues/215 From 58211b7b139e6692c4eb53057b5a75b2964433e8 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Tue, 8 Nov 2022 00:13:11 +1000 Subject: [PATCH 5/9] ffmpegthumbnailer: allow build on unix platforms Switching to ffmpeg-headless allows building on Darwin. --- pkgs/development/libraries/ffmpegthumbnailer/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix index eb1251987ad9..381bb7b2984c 100644 --- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix +++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { This thumbnailer was designed to be as fast and lightweight as possible. The only dependencies are ffmpeg and libpng. "; - platforms = platforms.linux; + platforms = platforms.unix; license = licenses.gpl2Plus; maintainers = [ maintainers.jagajaga ]; }; From 0cf541b3dd0bd7dffdeec4b2b93a7655b5549d34 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Mon, 24 Oct 2022 19:28:03 +1000 Subject: [PATCH 6/9] pipewire: use ffmpeg-headless --- pkgs/top-level/all-packages.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 97b0e4695d4f..53f0b5624d9e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15875,12 +15875,10 @@ with pkgs; pipewire = callPackage ../development/libraries/pipewire { # ffmpeg depends on SDL2 which depends on pipewire by default. - # Break the cycle by disabling pipewire support in our ffmpeg. - ffmpeg = ffmpeg.override { - SDL2 = SDL2.override { - pipewireSupport = false; - }; - }; + # Break the cycle by depending on ffmpeg-headless. + # Pipewire only uses libavcodec (via an SPA plugin), which isn't + # affected by the *-headless changes. + ffmpeg = ffmpeg-headless; }; pipewire-media-session = callPackage ../development/libraries/pipewire/media-session.nix {}; From 5900f3205e1632e931bb9d18023db090e02f2055 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Sat, 5 Nov 2022 12:53:03 +1000 Subject: [PATCH 7/9] cyanrip: use ffmpeg-headless --- pkgs/applications/audio/cyanrip/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/cyanrip/default.nix b/pkgs/applications/audio/cyanrip/default.nix index 4f3a5a08af2e..358c769ea07c 100644 --- a/pkgs/applications/audio/cyanrip/default.nix +++ b/pkgs/applications/audio/cyanrip/default.nix @@ -4,7 +4,7 @@ , meson , ninja , pkg-config -, ffmpeg +, ffmpeg-headless , libcdio , libcdio-paranoia , libmusicbrainz5 @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ meson ninja pkg-config ]; - buildInputs = [ ffmpeg libcdio libcdio-paranoia libmusicbrainz5 curl ]; + buildInputs = [ ffmpeg-headless libcdio libcdio-paranoia libmusicbrainz5 curl ]; meta = with lib; { homepage = "https://github.com/cyanreg/cyanrip"; From e7bce809ef956ab9b8cd58976ea511def621b07a Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Sun, 6 Nov 2022 23:24:26 +1000 Subject: [PATCH 8/9] openjfx{11,15,17}: use ffmpeg_4-headless A quick glance at the source shows it only uses libavcodec. --- pkgs/development/compilers/openjdk/openjfx/11.nix | 4 ++-- pkgs/development/compilers/openjdk/openjfx/15.nix | 4 ++-- pkgs/development/compilers/openjdk/openjfx/17.nix | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/compilers/openjdk/openjfx/11.nix b/pkgs/development/compilers/openjdk/openjfx/11.nix index 7a01486e2dd9..f67c18289134 100644 --- a/pkgs/development/compilers/openjdk/openjfx/11.nix +++ b/pkgs/development/compilers/openjdk/openjfx/11.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchurl, writeText, gradle_4, pkg-config, perl, cmake -, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4, python2, ruby +, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-headless, python2, ruby , openjdk11-bootstrap }: let @@ -19,7 +19,7 @@ let sha256 = "1h7qsylr7rnwnbimqjyn3whszp9kv4h3gpicsrb3mradxc9yv194"; }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python2 ruby ]; dontUseCmakeConfigure = true; diff --git a/pkgs/development/compilers/openjdk/openjfx/15.nix b/pkgs/development/compilers/openjdk/openjfx/15.nix index 74f83fdabf1a..4ffe8abd47b9 100644 --- a/pkgs/development/compilers/openjdk/openjfx/15.nix +++ b/pkgs/development/compilers/openjdk/openjfx/15.nix @@ -1,6 +1,6 @@ { stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradle_5 , pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib -, ffmpeg_4, python3, ruby }: +, ffmpeg_4-headless, python3, ruby }: let major = "15"; @@ -21,7 +21,7 @@ let sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1"; }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; dontUseCmakeConfigure = true; diff --git a/pkgs/development/compilers/openjdk/openjfx/17.nix b/pkgs/development/compilers/openjdk/openjfx/17.nix index 734f4d079ef0..1c1fb89ce8e1 100644 --- a/pkgs/development/compilers/openjdk/openjfx/17.nix +++ b/pkgs/development/compilers/openjdk/openjfx/17.nix @@ -1,6 +1,6 @@ { stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless, gradle_7 , pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib -, ffmpeg_4, python3, ruby, icu68 }: +, ffmpeg_4-headless, python3, ruby, icu68 }: let major = "17"; @@ -21,7 +21,7 @@ let sha256 = "sha256-PSiE9KbF/4u9VyBl9PAMLGzKyGFB86/XByeh7vhL6Kw="; }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ]; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless icu68 ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; dontUseCmakeConfigure = true; From 05a5700ae2856f1e6ef827d671a5dc1395acb525 Mon Sep 17 00:00:00 2001 From: Zane van Iperen Date: Mon, 7 Nov 2022 16:47:58 +1000 Subject: [PATCH 9/9] gst_all_1: use ffmpeg-headless gst-libav only uses ffmpeg for its (de)coders and (de)muxers. SDL, pipewire, and whatever is handled separately. Depend on ffmpeg-headless to reduce closure size. --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 53f0b5624d9e..78e5c0527b12 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19193,7 +19193,7 @@ with pkgs; gsettings-qt = libsForQt5.callPackage ../development/libraries/gsettings-qt { }; gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer { - callPackage = newScope (gst_all_1 // { libav = pkgs.ffmpeg; }); + callPackage = newScope (gst_all_1 // { libav = pkgs.ffmpeg-headless; }); inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL VideoToolbox; });