From e2ef45840ffeab38ece8cf31b025bd20d24af1d3 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sun, 17 May 2026 18:51:43 +0200 Subject: [PATCH 1/3] libmt32emu: Add passthru.updateScript --- pkgs/by-name/li/libmt32emu/package.nix | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/pkgs/by-name/li/libmt32emu/package.nix b/pkgs/by-name/li/libmt32emu/package.nix index 9de77adc2e7c..10f5b9ed3a8c 100644 --- a/pkgs/by-name/li/libmt32emu/package.nix +++ b/pkgs/by-name/li/libmt32emu/package.nix @@ -2,6 +2,10 @@ lib, stdenv, fetchFromGitHub, + gitUpdater, + nix, + writeShellApplication, + _experimental-update-script-combinators, cmake, }: @@ -36,6 +40,58 @@ stdenv.mkDerivation (finalAttrs: { --replace "$dev/$dev/" "$dev/" ''; + passthru = { + # Otherwise x.y.z in version != x_y_z in tag, and bump to same version is attempted + unfixVersionScript = writeShellApplication { + name = "unfix-libmt32emu-version"; + + runtimeInputs = [ + nix + ]; + + text = '' + export UPDATE_NIX_ATTR_PATH="''${UPDATE_NIX_ATTR_PATH:-libmt32emu}" + + preUpdateScriptVersion="$(nix-instantiate . --eval --strict -A "$UPDATE_NIX_ATTR_PATH.version" | cut -d'"' -f2)" + unfixedVersion="''${preUpdateScriptVersion//\./_}" + + pkgFile="$(nix-instantiate --eval -E "with import ./. {}; (builtins.unsafeGetAttrPos \"version\" $UPDATE_NIX_ATTR_PATH).file" | cut -d'"' -f2)" + + sed -i -e "s/version = \"$preUpdateScriptVersion\"/version = \"$unfixedVersion\"/g" "$pkgFile" + ''; + }; + + updateTagScript = gitUpdater { + rev-prefix = "libmt32emu_"; + }; + + # gitUpdater lacks an option for modifying new tag + fixVersionScript = writeShellApplication { + name = "fix-libmt32emu-version"; + + runtimeInputs = [ + nix + ]; + + text = '' + export UPDATE_NIX_ATTR_PATH="''${UPDATE_NIX_ATTR_PATH:-libmt32emu}" + + postUpdateScriptVersion="$(nix-instantiate . --eval --strict -A "$UPDATE_NIX_ATTR_PATH.version" | cut -d'"' -f2)" + fixedVersion="''${postUpdateScriptVersion//_/.}" + + pkgFile="$(nix-instantiate --eval -E "with import ./. {}; (builtins.unsafeGetAttrPos \"version\" $UPDATE_NIX_ATTR_PATH).file" | cut -d'"' -f2)" + + sed -i -e "s/version = \"$postUpdateScriptVersion\"/version = \"$fixedVersion\"/g" "$pkgFile" + ''; + }; + + updateScript = _experimental-update-script-combinators.sequence [ + (lib.getExe finalAttrs.passthru.unfixVersionScript) + (finalAttrs.passthru.updateTagScript.command) + (lib.getExe finalAttrs.passthru.fixVersionScript) + ]; + }; + meta = { homepage = "https://munt.sourceforge.net/"; description = "Library to emulate Roland MT-32, CM-32L, CM-64 and LAPC-I devices"; From 848e23064f80c709045580e0be5dac425af26d5f Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sun, 17 May 2026 18:57:58 +0200 Subject: [PATCH 2/3] mt32emu-qt: Add passthru.updateScript --- pkgs/by-name/mt/mt32emu-qt/package.nix | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/pkgs/by-name/mt/mt32emu-qt/package.nix b/pkgs/by-name/mt/mt32emu-qt/package.nix index 135f8e7431b1..28285a92ea1b 100644 --- a/pkgs/by-name/mt/mt32emu-qt/package.nix +++ b/pkgs/by-name/mt/mt32emu-qt/package.nix @@ -2,6 +2,10 @@ lib, stdenv, fetchFromGitHub, + gitUpdater, + nix, + writeShellApplication, + _experimental-update-script-combinators, alsa-lib, cmake, libpulseaudio, @@ -70,6 +74,58 @@ stdenv.mkDerivation (finalAttrs: { ln -s $out/{Applications/mt32emu-qt.app/Contents/MacOS,bin}/mt32emu-qt ''; + passthru = { + # Otherwise x.y.z in version != x_y_z in tag, and bump to same version is attempted + unfixVersionScript = writeShellApplication { + name = "unfix-mt32emu-qt-version"; + + runtimeInputs = [ + nix + ]; + + text = '' + export UPDATE_NIX_ATTR_PATH="''${UPDATE_NIX_ATTR_PATH:-mt32emu-qt}" + + preUpdateScriptVersion="$(nix-instantiate . --eval --strict -A "$UPDATE_NIX_ATTR_PATH.version" | cut -d'"' -f2)" + unfixedVersion="''${preUpdateScriptVersion//\./_}" + + pkgFile="$(nix-instantiate --eval -E "with import ./. {}; (builtins.unsafeGetAttrPos \"version\" $UPDATE_NIX_ATTR_PATH).file" | cut -d'"' -f2)" + + sed -i -e "s/version = \"$preUpdateScriptVersion\"/version = \"$unfixedVersion\"/g" "$pkgFile" + ''; + }; + + updateTagScript = gitUpdater { + rev-prefix = "mt32emu_qt_"; + }; + + # gitUpdater lacks an option for modifying new tag + fixVersionScript = writeShellApplication { + name = "fix-mt32emu-qt-version"; + + runtimeInputs = [ + nix + ]; + + text = '' + export UPDATE_NIX_ATTR_PATH="''${UPDATE_NIX_ATTR_PATH:-mt32emu-qt}" + + postUpdateScriptVersion="$(nix-instantiate . --eval --strict -A "$UPDATE_NIX_ATTR_PATH.version" | cut -d'"' -f2)" + fixedVersion="''${postUpdateScriptVersion//_/.}" + + pkgFile="$(nix-instantiate --eval -E "with import ./. {}; (builtins.unsafeGetAttrPos \"version\" $UPDATE_NIX_ATTR_PATH).file" | cut -d'"' -f2)" + + sed -i -e "s/version = \"$postUpdateScriptVersion\"/version = \"$fixedVersion\"/g" "$pkgFile" + ''; + }; + + updateScript = _experimental-update-script-combinators.sequence [ + (lib.getExe finalAttrs.passthru.unfixVersionScript) + (finalAttrs.passthru.updateTagScript.command) + (lib.getExe finalAttrs.passthru.fixVersionScript) + ]; + }; + meta = { homepage = "https://munt.sourceforge.net/"; description = "Synthesizer application built on Qt and libmt32emu"; From fb72c5797ac8051281f5a9ad59e070baef539eb2 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sun, 17 May 2026 19:02:02 +0200 Subject: [PATCH 3/3] mt32emu-smf2wav: Add passthru.updateScript --- pkgs/by-name/mt/mt32emu-smf2wav/package.nix | 56 +++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/pkgs/by-name/mt/mt32emu-smf2wav/package.nix b/pkgs/by-name/mt/mt32emu-smf2wav/package.nix index 5fc711ccc164..5ed8a569792c 100644 --- a/pkgs/by-name/mt/mt32emu-smf2wav/package.nix +++ b/pkgs/by-name/mt/mt32emu-smf2wav/package.nix @@ -2,6 +2,10 @@ lib, stdenv, fetchFromGitHub, + gitUpdater, + nix, + writeShellApplication, + _experimental-update-script-combinators, cmake, glib, libmt32emu, @@ -50,6 +54,58 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "munt_WITH_MT32EMU_SMF2WAV" true) ]; + passthru = { + # Otherwise x.y.z in version != x_y_z in tag, and bump to same version is attempted + unfixVersionScript = writeShellApplication { + name = "unfix-mt32emu-smf2wav-version"; + + runtimeInputs = [ + nix + ]; + + text = '' + export UPDATE_NIX_ATTR_PATH="''${UPDATE_NIX_ATTR_PATH:-mt32emu-smf2wav}" + + preUpdateScriptVersion="$(nix-instantiate . --eval --strict -A "$UPDATE_NIX_ATTR_PATH.version" | cut -d'"' -f2)" + unfixedVersion="''${preUpdateScriptVersion//\./_}" + + pkgFile="$(nix-instantiate --eval -E "with import ./. {}; (builtins.unsafeGetAttrPos \"version\" $UPDATE_NIX_ATTR_PATH).file" | cut -d'"' -f2)" + + sed -i -e "s/version = \"$preUpdateScriptVersion\"/version = \"$unfixedVersion\"/g" "$pkgFile" + ''; + }; + + updateTagScript = gitUpdater { + rev-prefix = "mt32emu_smf2wav_"; + }; + + # gitUpdater lacks an option for modifying new tag + fixVersionScript = writeShellApplication { + name = "fix-mt32emu-smf2wav-version"; + + runtimeInputs = [ + nix + ]; + + text = '' + export UPDATE_NIX_ATTR_PATH="''${UPDATE_NIX_ATTR_PATH:-mt32emu-smf2wav}" + + postUpdateScriptVersion="$(nix-instantiate . --eval --strict -A "$UPDATE_NIX_ATTR_PATH.version" | cut -d'"' -f2)" + fixedVersion="''${postUpdateScriptVersion//_/.}" + + pkgFile="$(nix-instantiate --eval -E "with import ./. {}; (builtins.unsafeGetAttrPos \"version\" $UPDATE_NIX_ATTR_PATH).file" | cut -d'"' -f2)" + + sed -i -e "s/version = \"$postUpdateScriptVersion\"/version = \"$fixedVersion\"/g" "$pkgFile" + ''; + }; + + updateScript = _experimental-update-script-combinators.sequence [ + (lib.getExe finalAttrs.passthru.unfixVersionScript) + (finalAttrs.passthru.updateTagScript.command) + (lib.getExe finalAttrs.passthru.fixVersionScript) + ]; + }; + meta = { homepage = "https://munt.sourceforge.net/"; description = "Produces a WAVE file from a Standard MIDI file (SMF)";