commit
2eb4426baa
3 changed files with 174 additions and 0 deletions
|
@ -4976,6 +4976,12 @@
|
||||||
githubId = 424946;
|
githubId = 424946;
|
||||||
name = "James Earl Douglas";
|
name = "James Earl Douglas";
|
||||||
};
|
};
|
||||||
|
EBADBEEF = {
|
||||||
|
name = "EBADBEEF";
|
||||||
|
email = "errno@ebadf.com";
|
||||||
|
github = "EBADBEEF";
|
||||||
|
githubId = 4167946;
|
||||||
|
};
|
||||||
ebbertd = {
|
ebbertd = {
|
||||||
email = "daniel@ebbert.nrw";
|
email = "daniel@ebbert.nrw";
|
||||||
github = "ebbertd";
|
github = "ebbertd";
|
||||||
|
|
20
pkgs/by-name/zx/zxtune/disable_updates.patch
Normal file
20
pkgs/by-name/zx/zxtune/disable_updates.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- ./apps/zxtune-qt/ui/desktop/mainwindow.cpp.orig 2023-11-03 10:58:54.073651511 -0700
|
||||||
|
+++ ./apps/zxtune-qt/ui/desktop/mainwindow.cpp 2023-11-03 10:59:08.900608850 -0700
|
||||||
|
@@ -106,14 +106,9 @@
|
||||||
|
Require(connect(actionReportBug, &QAction::triggered, this, &DesktopMainWindowImpl::ReportIssue));
|
||||||
|
Require(connect(actionAboutQt, &QAction::triggered, this, &DesktopMainWindowImpl::ShowAboutQt));
|
||||||
|
Require(connect(actionPreferences, &QAction::triggered, this, &DesktopMainWindowImpl::ShowPreferences));
|
||||||
|
- if (Update::CheckOperation* op = Update::CheckOperation::Create(*this))
|
||||||
|
- {
|
||||||
|
- Require(connect(actionCheckUpdates, &QAction::triggered, op, &Update::CheckOperation::Execute));
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- actionCheckUpdates->setEnabled(false);
|
||||||
|
- }
|
||||||
|
+
|
||||||
|
+ // Nix: disable update checks completely
|
||||||
|
+ actionCheckUpdates->setEnabled(false);
|
||||||
|
|
||||||
|
Require(connect(Controls, &PlaybackControls::OnPrevious, MultiPlaylist, &Playlist::UI::ContainerView::Prev));
|
||||||
|
Require(connect(Controls, &PlaybackControls::OnNext, MultiPlaylist, &Playlist::UI::ContainerView::Next));
|
148
pkgs/by-name/zx/zxtune/package.nix
Normal file
148
pkgs/by-name/zx/zxtune/package.nix
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromBitbucket
|
||||||
|
, nix-update-script
|
||||||
|
, boost
|
||||||
|
, zlib
|
||||||
|
# File backends (for decoding and encoding)
|
||||||
|
, withMp3 ? true
|
||||||
|
, lame
|
||||||
|
, withOgg ? true
|
||||||
|
, libvorbis
|
||||||
|
, withFlac ? true
|
||||||
|
, flac
|
||||||
|
# Audio backends (for playback)
|
||||||
|
, withOpenal ? false
|
||||||
|
, openal
|
||||||
|
, withSDL ? false
|
||||||
|
, SDL
|
||||||
|
, withOss ? false
|
||||||
|
, withAlsa ? stdenv.hostPlatform.isLinux
|
||||||
|
, alsa-lib
|
||||||
|
, withPulse ? stdenv.hostPlatform.isLinux
|
||||||
|
, libpulseaudio
|
||||||
|
# GUI audio player
|
||||||
|
, withQt ? true
|
||||||
|
, qt5
|
||||||
|
, zip
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
dlopenBuildInputs = []
|
||||||
|
++ lib.optional withMp3 lame
|
||||||
|
++ lib.optional withOgg libvorbis
|
||||||
|
++ lib.optional withFlac flac
|
||||||
|
++ lib.optional withOpenal openal
|
||||||
|
++ lib.optional withSDL SDL
|
||||||
|
++ lib.optional withAlsa alsa-lib
|
||||||
|
++ lib.optional withPulse libpulseaudio;
|
||||||
|
supportWayland = (!stdenv.hostPlatform.isDarwin);
|
||||||
|
platformName = "linux";
|
||||||
|
staticBuildInputs = [ boost zlib ]
|
||||||
|
++ lib.optional withQt (if (supportWayland) then qt5.qtwayland else qt5.qtbase);
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "zxtune";
|
||||||
|
version = "5055";
|
||||||
|
|
||||||
|
outputs = [ "out" ];
|
||||||
|
|
||||||
|
src = fetchFromBitbucket {
|
||||||
|
owner = "zxtune";
|
||||||
|
repo = "zxtune";
|
||||||
|
rev = "r${version}";
|
||||||
|
hash = "sha256-ABXGbzjdsPUuQnwZQOho4s2xRSDGzbZdA6/hCkBb7zE=";
|
||||||
|
};
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script {
|
||||||
|
extraArgs = [ "--version-regex" "r([0-9]+)" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = lib.optionals withQt [ zip qt5.wrapQtAppsHook ];
|
||||||
|
|
||||||
|
buildInputs = staticBuildInputs ++ dlopenBuildInputs;
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./disable_updates.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
# Fix use of old OpenAL header path
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace src/sound/backends/gates/openal_api.h \
|
||||||
|
--replace "#include <OpenAL/" "#include <AL/"
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = let
|
||||||
|
setOptionalSupport = name: var:
|
||||||
|
"support_${name}=" + (if (var) then "1" else "");
|
||||||
|
makeOptsCommon = [
|
||||||
|
''-j$NIX_BUILD_CORES''
|
||||||
|
''root.version=${src.rev}''
|
||||||
|
''system.zlib=1''
|
||||||
|
''platform=${platformName}''
|
||||||
|
''includes.dirs.${platformName}="${lib.makeSearchPathOutput "dev" "include" buildInputs}"''
|
||||||
|
''libraries.dirs.${platformName}="${lib.makeLibraryPath staticBuildInputs}"''
|
||||||
|
''ld_flags="-Wl,-rpath=\"${lib.makeLibraryPath dlopenBuildInputs}\""''
|
||||||
|
(setOptionalSupport "mp3" withMp3)
|
||||||
|
(setOptionalSupport "ogg" withOgg)
|
||||||
|
(setOptionalSupport "flac" withFlac)
|
||||||
|
(setOptionalSupport "openal" withOpenal)
|
||||||
|
(setOptionalSupport "sdl" withSDL)
|
||||||
|
(setOptionalSupport "oss" withOss)
|
||||||
|
(setOptionalSupport "alsa" withAlsa)
|
||||||
|
(setOptionalSupport "pulseaudio" withPulse)
|
||||||
|
];
|
||||||
|
makeOptsQt = [
|
||||||
|
''tools.uic=${qt5.qtbase.dev}/bin/uic''
|
||||||
|
''tools.moc=${qt5.qtbase.dev}/bin/moc''
|
||||||
|
''tools.rcc=${qt5.qtbase.dev}/bin/rcc''
|
||||||
|
];
|
||||||
|
in ''
|
||||||
|
runHook preBuild
|
||||||
|
make ${builtins.toString makeOptsCommon} -C apps/xtractor
|
||||||
|
make ${builtins.toString makeOptsCommon} -C apps/zxtune123
|
||||||
|
'' + lib.optionalString withQt ''
|
||||||
|
make ${builtins.toString (makeOptsCommon ++ makeOptsQt)} -C apps/zxtune-qt
|
||||||
|
'' + ''
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Libs from dlopenBuildInputs are found with dlopen. Do not shrink rpath. Can
|
||||||
|
# check output of 'out/bin/zxtune123 --list-backends' to verify all plugins
|
||||||
|
# load ("Status: Available" or "Status: Failed to load dynamic library...").
|
||||||
|
dontPatchELF = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
install -Dm755 bin/linux/release/xtractor -t $out/bin
|
||||||
|
install -Dm755 bin/linux/release/zxtune123 -t $out/bin
|
||||||
|
'' + lib.optionalString withQt ''
|
||||||
|
install -Dm755 bin/linux/release/zxtune-qt -t $out/bin
|
||||||
|
'' + ''
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Only wrap the gui
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
preFixup = lib.optionalString withQt ''
|
||||||
|
wrapQtApp "$out/bin/zxtune-qt"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Crossplatform chiptunes player";
|
||||||
|
longDescription = ''
|
||||||
|
Chiptune music player with truly extensive format support. Supported
|
||||||
|
formats/chips include AY/YM, ZX Spectrum, PC, Amiga, Atari, Acorn, Philips
|
||||||
|
SAA1099, MOS6581 (Commodore 64), NES, SNES, GameBoy, Atari, TurboGrafX,
|
||||||
|
Nintendo DS, Sega Master System, and more. Powered by vgmstream, OpenMPT,
|
||||||
|
sidplay, and many other libraries.
|
||||||
|
'';
|
||||||
|
homepage = "https://zxtune.bitbucket.io/";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
# zxtune supports mac and windows, but more work will be needed to
|
||||||
|
# integrate with the custom make system (see platformName above)
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ EBADBEEF ];
|
||||||
|
mainProgram = if withQt then "zxtune-qt" else "zxtune123";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue