diff --git a/pkgs/by-name/vg/vgmtrans/package.nix b/pkgs/by-name/vg/vgmtrans/package.nix new file mode 100644 index 000000000000..8feb722e116f --- /dev/null +++ b/pkgs/by-name/vg/vgmtrans/package.nix @@ -0,0 +1,74 @@ +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch2, + cmake, + ninja, + qt6, + spdlog, + zlib-ng, + minizip-ng, + libbass, + libbassmidi, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "vgmtrans"; + version = "1.2"; + + src = fetchFromGitHub { + owner = "vgmtrans"; + repo = "vgmtrans"; + rev = "refs/tags/v${finalAttrs.version}"; + hash = "sha256-HVC45B1DFThZRkPVrroiay+9ufkOrTMUZoNIuC1CjjM="; + }; + + patches = [ + # https://github.com/vgmtrans/vgmtrans/pull/567 + (fetchpatch2 { + name = "fix-version-string.patch"; + url = "https://github.com/vgmtrans/vgmtrans/commit/5ad8a60a19476d2ae9a7c409b83ab6d5e1ff827f.patch?full_index=1"; + hash = "sha256-I5ykYzj3tUBQ2e3TAnCm5Ry1Hmmi2IVneFQCe5/JV/A="; + }) + ]; + + nativeBuildInputs = [ + cmake + ninja + qt6.wrapQtAppsHook + ]; + + buildInputs = [ + qt6.qtbase + qt6.qtsvg + libbass + libbassmidi + ]; + + preConfigure = '' + rm -r lib/{spdlog,zlib-ng,minizip-ng} + ln -s ${spdlog.src} lib/spdlog + ln -s ${zlib-ng.src} lib/zlib-ng + ln -s ${minizip-ng.src} lib/minizip-ng + ''; + + meta = { + description = "Tool to convert proprietary, sequenced videogame music to industry-standard formats"; + homepage = "https://github.com/vgmtrans/vgmtrans"; + license = with lib.licenses; [ + zlib + libpng + bsd3 # oki_adpcm_state + ]; + # See CMakePresets.json + platforms = [ + "x86_64-linux" + "x86_64-darwin" + "aarch64-darwin" + "x86_64-windows" + "aarch64-windows" + ]; + maintainers = with lib.maintainers; [ pluiedev ]; + mainProgram = "vgmtrans"; + }; +}) diff --git a/pkgs/development/libraries/audio/libbass/default.nix b/pkgs/development/libraries/audio/libbass/default.nix index 2f44827af95f..364ba305d5c1 100644 --- a/pkgs/development/libraries/audio/libbass/default.nix +++ b/pkgs/development/libraries/audio/libbass/default.nix @@ -35,6 +35,19 @@ let hash = "sha256-Hul2ELwnaDV8TDRMDXoFisle31GATDkf3PdkR2K9QTs="; }; + bassmidi = { + h = "bassmidi.h"; + version = "2.4.15.3"; + so = { + i686_linux = "libs/x86/libbassmidi.so"; + x86_64-linux = "libs/x86_64/libbassmidi.so"; + armv7l-linux = "libs/armhf/libbassmidi.so"; + aarch64-linux = "libs/aarch64/libbassmidi.so"; + }; + url = "https://web.archive.org/web/20240501180447/http://www.un4seen.com/files/bassmidi24-linux.zip"; + hash = "sha256-HrF1chhGk32bKN3jwal44Tz/ENGe/zORsrLPeGAv1OE="; + }; + bassmix = { h = "bassmix.h"; version = "2.4.12"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d1d25bbb48da..deabeb6e3bd4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9926,6 +9926,7 @@ with pkgs; libbass = (callPackage ../development/libraries/audio/libbass { }).bass; libbass_fx = (callPackage ../development/libraries/audio/libbass { }).bass_fx; + libbassmidi = (callPackage ../development/libraries/audio/libbass { }).bassmidi; libbassmix = (callPackage ../development/libraries/audio/libbass { }).bassmix; libbluray = callPackage ../development/libraries/libbluray {