diff --git a/pkgs/by-name/li/libvmaf/package.nix b/pkgs/by-name/li/libvmaf/package.nix index 7b841808b423..b3fc10510f58 100644 --- a/pkgs/by-name/li/libvmaf/package.nix +++ b/pkgs/by-name/li/libvmaf/package.nix @@ -1,5 +1,6 @@ { lib, + buildPackages, stdenv, fetchFromGitHub, ffmpeg-full, @@ -8,7 +9,6 @@ nasm, ninja, testers, - xxd, }: stdenv.mkDerivation (finalAttrs: { @@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { meson ninja nasm - xxd + (buildPackages.callPackage ./xxd.nix { }) ]; postPatch = lib.optionalString stdenv.hostPlatform.isFreeBSD '' diff --git a/pkgs/by-name/li/libvmaf/xxd.nix b/pkgs/by-name/li/libvmaf/xxd.nix new file mode 100644 index 000000000000..d33517f3a042 --- /dev/null +++ b/pkgs/by-name/li/libvmaf/xxd.nix @@ -0,0 +1,20 @@ +# Minimal `xxd --include` replacement for embedding binary files as C arrays. +# Used instead of tinyxxd to avoid ~22k rebuilds via libaom -> ffmpeg -> everything. +{ writeShellScriptBin }: + +writeShellScriptBin "xxd" '' + if [ "$1" != "--include" ]; then + echo "xxd: only --include mode is supported" >&2 + exit 1 + fi + input="$2" + output="$3" + # Match real xxd behavior: derive variable name from the full path + varname=$(echo "$input" | sed 's/[^a-zA-Z0-9_]/_/g') + { + printf 'unsigned char %s[] = {\n' "$varname" + od -An -tx1 -v "$input" | sed 's/ */ /g; s/^ //; s/ $//; s/ /, 0x/g; s/^/ 0x/; s/$/,/' + printf '};\n' + printf 'unsigned int %s_len = %d;\n' "$varname" "$(wc -c < "$input")" + } > "$output" +'' diff --git a/pkgs/by-name/ti/tinyxxd/package.nix b/pkgs/by-name/ti/tinyxxd/package.nix index 9035ae112dcf..afac5a7d510c 100644 --- a/pkgs/by-name/ti/tinyxxd/package.nix +++ b/pkgs/by-name/ti/tinyxxd/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "tinyxxd"; - version = "1.3.11"; + version = "1.3.14"; src = fetchFromGitHub { repo = "tinyxxd"; owner = "xyproto"; rev = "v${finalAttrs.version}"; - hash = "sha256-zM0KRQggDc45eeeZZ6nAI/5sm7NtF1XGucIJV4O1AJs="; + hash = "sha256-iN7i5XtGfvtRX8MA2IWiPsS2PYkmKTrztfvgLtoIq2o="; }; nativeBuildInputs = [ installShellFiles ];