diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix deleted file mode 100644 index 5bf7445d2682..000000000000 --- a/pkgs/applications/audio/bambootracker/default.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ - stdenv, - lib, - fetchFromGitHub, - gitUpdater, - pkg-config, - qmake, - qt5compat ? null, - qtbase, - qttools, - qtwayland, - rtaudio_6, - rtmidi, - wrapQtAppsHook, -}: - -assert lib.versionAtLeast qtbase.version "6.0" -> qt5compat != null; - -stdenv.mkDerivation (finalAttrs: { - pname = "bambootracker"; - version = "0.6.4"; - - src = fetchFromGitHub { - owner = "BambooTracker"; - repo = "BambooTracker"; - rev = "v${finalAttrs.version}"; - fetchSubmodules = true; - hash = "sha256-tFUliKR55iZybNyYIF1FXh8RGf8jKEsGrWBuldB277g="; - }; - - postPatch = lib.optionalString (lib.versionAtLeast qtbase.version "6.0") '' - # Work around lrelease finding in qmake being broken by using pre-Qt5.12 code path - # https://github.com/NixOS/nixpkgs/issues/214765 - substituteInPlace BambooTracker/lang/lang.pri \ - --replace 'equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 12)' 'if(true)' - ''; - - nativeBuildInputs = [ - pkg-config - qmake - qttools - wrapQtAppsHook - ]; - - buildInputs = - [ - qtbase - rtaudio_6 - rtmidi - ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ - qtwayland - ] - ++ lib.optionals (lib.versionAtLeast qtbase.version "6.0") [ - qt5compat - ]; - - qmakeFlags = - [ - "CONFIG+=system_rtaudio" - "CONFIG+=system_rtmidi" - ] - ++ lib.optionals (stdenv.cc.isClang || (lib.versionAtLeast qtbase.version "6.0")) [ - # Clang is extra-strict about some deprecations - # Latest Qt6 deprecated QCheckBox::stateChanged(int) - "CONFIG+=no_warnings_are_errors" - ]; - - postConfigure = "make qmake_all"; - - # Wrapping the inside of the app bundles, avoiding double-wrapping - dontWrapQtApps = stdenv.hostPlatform.isDarwin; - - postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' - mkdir -p $out/Applications - mv $out/{bin,Applications}/BambooTracker.app - ln -s $out/{Applications/BambooTracker.app/Contents/MacOS,bin}/BambooTracker - wrapQtApp $out/Applications/BambooTracker.app/Contents/MacOS/BambooTracker - ''; - - passthru = { - updateScript = gitUpdater { - rev-prefix = "v"; - }; - }; - - meta = with lib; { - description = "Tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers"; - mainProgram = "BambooTracker"; - homepage = "https://bambootracker.github.io/BambooTracker/"; - license = licenses.gpl2Plus; - platforms = platforms.all; - maintainers = with maintainers; [ OPNA2608 ]; - }; -}) diff --git a/pkgs/by-name/ba/bambootracker/package.nix b/pkgs/by-name/ba/bambootracker/package.nix new file mode 100644 index 000000000000..5b96caa3e842 --- /dev/null +++ b/pkgs/by-name/ba/bambootracker/package.nix @@ -0,0 +1,125 @@ +{ + stdenv, + lib, + fetchFromGitHub, + fetchpatch, + gitUpdater, + libsForQt5, + pkg-config, + qt6Packages, + rtaudio_6, + rtmidi, + withQt6 ? false, +}: + +let + qtPackages = if withQt6 then qt6Packages else libsForQt5; +in +stdenv.mkDerivation (finalAttrs: { + pname = "bambootracker" + lib.optionalString withQt6 "-qt6"; + version = "0.6.5"; + + src = fetchFromGitHub { + owner = "BambooTracker"; + repo = "BambooTracker"; + tag = "v${finalAttrs.version}"; + fetchSubmodules = true; + hash = "sha256-WoyOqInOOOIEwsMOc2yoTdh9UhJOvFKE1GfkxOuXDe0="; + }; + + patches = [ + # Remove when version > 0.6.5 + (fetchpatch { + name = "0001-bambootracker-Fix-compiler-warnings.patch"; + url = "https://github.com/BambooTracker/BambooTracker/commit/d670cf8b6113318cd938cf19be76b6b14d3635f1.patch"; + hash = "sha256-yyOMaOYKSc1hbbCL7wjFNPDmX2oMYo10J4hjZJss2zs="; + }) + + # Remove when version > 0.6.5 + (fetchpatch { + name = "0002-bambootracker-Fix-GCC15-compat.patch"; + url = "https://github.com/BambooTracker/BambooTracker/commit/92c0a7d1cfb05d1c6ae9482181c5c378082b772c.patch"; + hash = "sha256-6K0RZD0LevggxFr92LaNmq+eMgOFJgFX60IgAw7tYdM="; + }) + + # Remove when version > 0.6.5 + (fetchpatch { + name = "0003-bambootracker-Drop-unused-property.patch"; + url = "https://github.com/BambooTracker/BambooTracker/commit/de4459f0315f099d3e0a2d20b938ec76285f2d46.patch"; + hash = "sha256-zTh6i+hgQZ3kEid0IzQaR/PsrYlnhplccdlaS5g8FeA="; + }) + ]; + + postPatch = lib.optionalString withQt6 '' + # Work around lrelease finding in qmake being broken by using pre-Qt5.12 code path + # https://github.com/NixOS/nixpkgs/issues/214765 + substituteInPlace BambooTracker/lang/lang.pri \ + --replace 'equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 12)' 'if(true)' + ''; + + nativeBuildInputs = + [ + pkg-config + ] + ++ (with qtPackages; [ + qmake + qttools + wrapQtAppsHook + ]); + + buildInputs = + [ + rtaudio_6 + rtmidi + ] + ++ ( + with qtPackages; + [ + qtbase + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + qtwayland + ] + ++ lib.optionals withQt6 [ + qt5compat + ] + ); + + qmakeFlags = + [ + "CONFIG+=system_rtaudio" + "CONFIG+=system_rtmidi" + ] + ++ lib.optionals stdenv.cc.isClang [ + # Clang is extra-strict about some deprecations + # https://github.com/BambooTracker/BambooTracker/issues/506 + "CONFIG+=no_warnings_are_errors" + ]; + + postConfigure = "make qmake_all"; + + # Wrapping the inside of the app bundles, avoiding double-wrapping + dontWrapQtApps = stdenv.hostPlatform.isDarwin; + + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir -p $out/Applications + mv $out/{bin,Applications}/BambooTracker.app + ln -s $out/{Applications/BambooTracker.app/Contents/MacOS,bin}/BambooTracker + wrapQtApp $out/Applications/BambooTracker.app/Contents/MacOS/BambooTracker + ''; + + passthru = { + updateScript = gitUpdater { + rev-prefix = "v"; + }; + }; + + meta = { + description = "Tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers"; + mainProgram = "BambooTracker"; + homepage = "https://bambootracker.github.io/BambooTracker/"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ OPNA2608 ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dc67398aa221..7f8d2f534cf5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13835,8 +13835,7 @@ with pkgs; av-98 = callPackage ../applications/networking/browsers/av-98 { }; - bambootracker = libsForQt5.callPackage ../applications/audio/bambootracker { }; - bambootracker-qt6 = qt6Packages.callPackage ../applications/audio/bambootracker { }; + bambootracker-qt6 = bambootracker.override { withQt6 = true; }; schismtracker = callPackage ../applications/audio/schismtracker { inherit (darwin.apple_sdk.frameworks) Cocoa;