From f50949a327495be99107ed32c1dbf4e65cf73fee Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Mon, 30 Mar 2026 22:54:48 +0200 Subject: [PATCH 1/7] gst-thumbnailers: add package test --- pkgs/by-name/gs/gst-thumbnailers/package.nix | 5 +++ pkgs/by-name/gs/gst-thumbnailers/tests.nix | 46 ++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 pkgs/by-name/gs/gst-thumbnailers/tests.nix diff --git a/pkgs/by-name/gs/gst-thumbnailers/package.nix b/pkgs/by-name/gs/gst-thumbnailers/package.nix index 2ae9a3cd9b18..618a06b4b513 100644 --- a/pkgs/by-name/gs/gst-thumbnailers/package.nix +++ b/pkgs/by-name/gs/gst-thumbnailers/package.nix @@ -13,6 +13,7 @@ fontconfig, libglycin, glycin-loaders, + callPackage, }: stdenv.mkDerivation (finalAttrs: { @@ -52,6 +53,10 @@ stdenv.mkDerivation (finalAttrs: { glycin-loaders ]; + passthru = { + tests.thumbnailers = callPackage ./tests.nix { }; + }; + meta = { description = "Generate thumbnailer for video and audio files"; homepage = "https://gitlab.gnome.org/GNOME/gst-thumbnailers"; diff --git a/pkgs/by-name/gs/gst-thumbnailers/tests.nix b/pkgs/by-name/gs/gst-thumbnailers/tests.nix new file mode 100644 index 000000000000..f66fd6bf764d --- /dev/null +++ b/pkgs/by-name/gs/gst-thumbnailers/tests.nix @@ -0,0 +1,46 @@ +{ + stdenv, + gst-thumbnailers, + shared-mime-info, + writableTmpDirAsHomeHook, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "gst-thumbnailers-test"; + inherit (gst-thumbnailers) version src; + + sourceRoot = "${finalAttrs.src.name}/tests"; + + nativeBuildInputs = [ + # fontconfig tries to write to `~/.cache/fontconfig` + writableTmpDirAsHomeHook + ]; + + # Fix incorrectly detected MIME types + preBuild = '' + export XDG_DATA_DIRS=${shared-mime-info}/share:$XDG_DATA_DIRS + ''; + + buildPhase = '' + runHook preBuild + + mkdir -p $out + + for file in *.{flac,mp3,mkv,webm}; do + case "$file" in + *.flac|*.mp3) thumbnailer=gst-audio-thumbnailer ;; + *.mkv|*.webm) thumbnailer=gst-video-thumbnailer ;; + esac + + for size in 128 256 512 1024; do + input="file://$(realpath "$file")" + output="$out/$(basename "$file")-$size.png" + + ${gst-thumbnailers}/bin/$thumbnailer -i "$input" -o "$output" -s $size + file -E "$output" + done + done + + runHook postBuild + ''; +}) From dff7ff2b9916d71ce187da193e38419cfe6e9aaa Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Mon, 30 Mar 2026 23:13:45 +0200 Subject: [PATCH 2/7] gst-thumbnailers: add update script --- pkgs/by-name/gs/gst-thumbnailers/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/gs/gst-thumbnailers/package.nix b/pkgs/by-name/gs/gst-thumbnailers/package.nix index 618a06b4b513..266193a811be 100644 --- a/pkgs/by-name/gs/gst-thumbnailers/package.nix +++ b/pkgs/by-name/gs/gst-thumbnailers/package.nix @@ -14,6 +14,7 @@ libglycin, glycin-loaders, callPackage, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { @@ -55,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { tests.thumbnailers = callPackage ./tests.nix { }; + updateScript = nix-update-script { }; }; meta = { From db021660632aaecc8997667512b6513b732a8d8c Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Mon, 30 Mar 2026 23:21:22 +0200 Subject: [PATCH 3/7] gst-thumbnailers: 1.0.alpha.1 -> 1.0.0 Changelog: https://gitlab.gnome.org/GNOME/gst-thumbnailers/-/blob/1.0.0/NEWS Diff: https://gitlab.gnome.org/GNOME/gst-thumbnailers/-/compare/1.0.alpha.1...1.0.0 --- pkgs/by-name/gs/gst-thumbnailers/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gs/gst-thumbnailers/package.nix b/pkgs/by-name/gs/gst-thumbnailers/package.nix index 266193a811be..a3376f2d35b3 100644 --- a/pkgs/by-name/gs/gst-thumbnailers/package.nix +++ b/pkgs/by-name/gs/gst-thumbnailers/package.nix @@ -19,19 +19,19 @@ stdenv.mkDerivation (finalAttrs: { pname = "gst-thumbnailers"; - version = "1.0.alpha.1"; + version = "1.0.0"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "GNOME"; repo = "gst-thumbnailers"; tag = finalAttrs.version; - hash = "sha256-LOdD8ECSK+QuXkE8jjIg5IfZSQ5FcIi3hmZ2vAaaBKI="; + hash = "sha256-QxOdjtPnX4ulGsenASQzKJckbIqfSU7FeR+iW1ZL878="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-PIqEEijKe+wsX6idqoIB591h1Yj4mixwXDKDN4caO9I="; + hash = "sha256-irXwoGGcVeZza02Ob5HTkeTBD3PaXmfJ4vuqXk9BadA="; }; nativeBuildInputs = [ From 29c3f2456404342d3d8dd8141dd971ec5f97b03e Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Mon, 30 Mar 2026 23:23:22 +0200 Subject: [PATCH 4/7] gst-thumbnailers: add `meta.changelog` --- pkgs/by-name/gs/gst-thumbnailers/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/gs/gst-thumbnailers/package.nix b/pkgs/by-name/gs/gst-thumbnailers/package.nix index a3376f2d35b3..c277efb99c37 100644 --- a/pkgs/by-name/gs/gst-thumbnailers/package.nix +++ b/pkgs/by-name/gs/gst-thumbnailers/package.nix @@ -62,6 +62,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "Generate thumbnailer for video and audio files"; homepage = "https://gitlab.gnome.org/GNOME/gst-thumbnailers"; + changelog = "https://gitlab.gnome.org/GNOME/gst-thumbnailers/-/blob/${finalAttrs.src.tag}/NEWS"; license = lib.licenses.gpl3Plus; maintainers = [ lib.maintainers.aleksana ]; platforms = lib.platforms.linux; From a52450cd56e4469d2338117c50ff33b2c5619a7a Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Tue, 31 Mar 2026 00:13:58 +0200 Subject: [PATCH 5/7] gst-thumbnailers: enable tests --- pkgs/by-name/gs/gst-thumbnailers/package.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkgs/by-name/gs/gst-thumbnailers/package.nix b/pkgs/by-name/gs/gst-thumbnailers/package.nix index c277efb99c37..0d185e6ea486 100644 --- a/pkgs/by-name/gs/gst-thumbnailers/package.nix +++ b/pkgs/by-name/gs/gst-thumbnailers/package.nix @@ -13,6 +13,8 @@ fontconfig, libglycin, glycin-loaders, + writableTmpDirAsHomeHook, + shared-mime-info, callPackage, nix-update-script, }: @@ -54,6 +56,21 @@ stdenv.mkDerivation (finalAttrs: { glycin-loaders ]; + doCheck = true; + + nativeCheckInputs = [ + # fontconfig tries to write to `~/.cache/fontconfig` + writableTmpDirAsHomeHook + ]; + + # Fix missing glycin loaders (glycin-loaders) and incorrectly detected + # MIME types (shared-mime-info). + preCheck = '' + export XDG_DATA_DIRS=${glycin-loaders}/share:${shared-mime-info}/share:$XDG_DATA_DIRS + ''; + + mesonCheckFlags = [ "-v" ]; + passthru = { tests.thumbnailers = callPackage ./tests.nix { }; updateScript = nix-update-script { }; From 3f68b39364f2f5e732b60d73e960b04ba19ac835 Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Tue, 31 Mar 2026 00:28:46 +0200 Subject: [PATCH 6/7] gst-thumbnailers: add thunze to maintainers --- pkgs/by-name/gs/gst-thumbnailers/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/gs/gst-thumbnailers/package.nix b/pkgs/by-name/gs/gst-thumbnailers/package.nix index 0d185e6ea486..4b77b6526bbe 100644 --- a/pkgs/by-name/gs/gst-thumbnailers/package.nix +++ b/pkgs/by-name/gs/gst-thumbnailers/package.nix @@ -81,7 +81,10 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://gitlab.gnome.org/GNOME/gst-thumbnailers"; changelog = "https://gitlab.gnome.org/GNOME/gst-thumbnailers/-/blob/${finalAttrs.src.tag}/NEWS"; license = lib.licenses.gpl3Plus; - maintainers = [ lib.maintainers.aleksana ]; + maintainers = with lib.maintainers; [ + aleksana + thunze + ]; platforms = lib.platforms.linux; }; }) From 142919df8ee4d4c86008982e64e5c503891faeb5 Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Sat, 18 Apr 2026 17:58:34 +0200 Subject: [PATCH 7/7] gst-thumbnailers: enable `strictDeps` and `__structuredAttrs` --- pkgs/by-name/gs/gst-thumbnailers/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/gs/gst-thumbnailers/package.nix b/pkgs/by-name/gs/gst-thumbnailers/package.nix index 4b77b6526bbe..939c0567e5e3 100644 --- a/pkgs/by-name/gs/gst-thumbnailers/package.nix +++ b/pkgs/by-name/gs/gst-thumbnailers/package.nix @@ -56,6 +56,9 @@ stdenv.mkDerivation (finalAttrs: { glycin-loaders ]; + strictDeps = true; + __structuredAttrs = true; + doCheck = true; nativeCheckInputs = [