tauon: 7.9.0 -> 8.0.1 (#405753)
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
diff --git a/src/tauon/__main__.py b/src/tauon/__main__.py
|
||||
index 04691586..e48afa02 100755
|
||||
--- a/src/tauon/__main__.py
|
||||
+++ b/src/tauon/__main__.py
|
||||
@@ -115,8 +115,8 @@ def transfer_args_and_exit() -> None:
|
||||
if "--no-start" in sys.argv:
|
||||
transfer_args_and_exit()
|
||||
|
||||
-# If we're installed, use home data locations
|
||||
-install_mode = bool(str(install_directory).startswith(("/opt/", "/usr/", "/app/", "/snap/")) or sys.platform in ("darwin", "win32"))
|
||||
+# Nixpkgs install, use home data dirs.
|
||||
+install_mode = True
|
||||
|
||||
# Assume that it's a classic Linux install, use standard paths
|
||||
if str(install_directory).startswith("/usr/") and Path("/usr/share/TauonMusicBox").is_dir():
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchPypi,
|
||||
kissfft,
|
||||
miniaudio,
|
||||
pkg-config,
|
||||
@@ -16,6 +17,7 @@
|
||||
librsvg,
|
||||
libsamplerate,
|
||||
libvorbis,
|
||||
xorg,
|
||||
mpg123,
|
||||
opusfile,
|
||||
pango,
|
||||
@@ -26,16 +28,32 @@
|
||||
withDiscordRPC ? true,
|
||||
}:
|
||||
|
||||
let
|
||||
# fork of pypresence, to be reverted if/when there's an upstream release
|
||||
lynxpresence = python3Packages.buildPythonPackage rec {
|
||||
pname = "lynxpresence";
|
||||
version = "4.4.1";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-y/KboyhEGs9RvyKayEIQu2+WaiQNOdsHDl1/pEoqEkQ=";
|
||||
};
|
||||
|
||||
doCheck = false; # tests require internet connection
|
||||
pythonImportsCheck = [ "lynxpresence" ];
|
||||
};
|
||||
in
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "tauon";
|
||||
version = "7.9.0";
|
||||
version = "8.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Taiko2k";
|
||||
repo = "Tauon";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-6aEUniLoE5Qtfht3OAe+zvC9yZwjH+KpskmjGowDuuU=";
|
||||
hash = "sha256-m94/zdlJu/u/dchIXhqB47bkl6Uej2hVr8R6RNg8Vaw=";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
@@ -46,16 +64,16 @@ python3Packages.buildPythonApplication rec {
|
||||
ln -s ${miniaudio.src} source/src/phazor/miniaudio
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/tauon/__main__.py \
|
||||
--replace-fail 'install_mode = False' 'install_mode = True'
|
||||
patches = [
|
||||
./install_mode_true.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/tauon/t_modules/t_phazor.py \
|
||||
--replace-fail 'base_path = Path(pctl.install_directory).parent.parent / "build"' 'base_path = Path("${placeholder "out"}/${python3Packages.python.sitePackages}")'
|
||||
'';
|
||||
|
||||
pythonRemoveDeps = [
|
||||
"pysdl2-dll"
|
||||
"opencc"
|
||||
"tekore"
|
||||
];
|
||||
@@ -105,23 +123,26 @@ python3Packages.buildPythonApplication rec {
|
||||
pychromecast
|
||||
pylast
|
||||
pygobject3
|
||||
pysdl2
|
||||
pysdl3
|
||||
requests
|
||||
send2trash
|
||||
setproctitle
|
||||
tidalapi
|
||||
]
|
||||
++ lib.optional withDiscordRPC pypresence
|
||||
++ lib.optional withDiscordRPC lynxpresence
|
||||
++ lib.optional stdenv.hostPlatform.isLinux pulsectl;
|
||||
|
||||
makeWrapperArgs = [
|
||||
"--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}"
|
||||
"--prefix LD_LIBRARY_PATH : ${
|
||||
lib.makeLibraryPath [
|
||||
game-music-emu
|
||||
libopenmpt
|
||||
pulseaudio
|
||||
]
|
||||
lib.makeLibraryPath (
|
||||
[
|
||||
game-music-emu
|
||||
libopenmpt
|
||||
pulseaudio
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isLinux xorg.libXcursor
|
||||
)
|
||||
}"
|
||||
"--prefix PYTHONPATH : $out/share/tauon"
|
||||
"--set GI_TYPELIB_PATH $GI_TYPELIB_PATH"
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
fetchFromGitHub,
|
||||
python,
|
||||
buildPythonPackage,
|
||||
setuptools-scm,
|
||||
packaging,
|
||||
aiohttp,
|
||||
requests,
|
||||
|
||||
# native dependencies
|
||||
sdl3,
|
||||
sdl3-ttf,
|
||||
sdl3-image,
|
||||
}:
|
||||
|
||||
let
|
||||
dochash =
|
||||
if stdenv.hostPlatform.isLinux then
|
||||
"sha256-+1zLd308zL+m68kLMeOWWxT0wYDgCd6g9cc2hEtaeUs="
|
||||
else if stdenv.hostPlatform.isDarwin then
|
||||
"sha256-2uB9+ABgv5O376LyHb0ShGjM4LHYzMRMxk/k+1LBmv0="
|
||||
else if stdenv.hostPlatform.isWindows then
|
||||
"sha256-46bQSPYctycizf2GXichd5V74LjxwIAPhBmklXAJ/Jg="
|
||||
else
|
||||
throw "PySDL3 does not support ${stdenv.hostPlatform.uname.system}";
|
||||
lib_ext = stdenv.hostPlatform.extensions.sharedLibrary;
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "pysdl3";
|
||||
version = "0.9.8b1";
|
||||
pyproject = true;
|
||||
|
||||
pythonImportsCheck = [ "sdl3" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Aermoss";
|
||||
repo = "PySDL3";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-FVUCcqKTq6qdNkYHTYFiUxt2HIaNC5LK0BEUfz8Mue8=";
|
||||
};
|
||||
|
||||
docfile = fetchurl {
|
||||
url = "https://github.com/Aermoss/PySDL3/releases/download/v${version}/${stdenv.hostPlatform.uname.system}-Docs.py";
|
||||
hash = "${dochash}";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
cp ${docfile} source/sdl3/__doc__.py
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir $out/${python.sitePackages}/sdl3/bin
|
||||
ln -s ${sdl3}/lib/libSDL3${lib_ext} -t $out/${python.sitePackages}/sdl3/bin
|
||||
ln -s ${sdl3-ttf}/lib/libSDL3_ttf${lib_ext} -t $out/${python.sitePackages}/sdl3/bin
|
||||
ln -s ${sdl3-image}/lib/libSDL3_image${lib_ext} -t $out/${python.sitePackages}/sdl3/bin
|
||||
'';
|
||||
|
||||
build-system = [
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
sdl3
|
||||
sdl3-ttf
|
||||
sdl3-image
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
packaging
|
||||
aiohttp
|
||||
requests
|
||||
];
|
||||
|
||||
# PySDL3 tries to update both itself and SDL binaries at runtime. This hook
|
||||
# sets some env variables to tell it not to do that.
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
env = {
|
||||
SDL_VIDEODRIVER = "dummy";
|
||||
SDL_AUDIODRIVER = "dummy";
|
||||
SDL_RENDER_DRIVER = "software";
|
||||
PYTHONFAULTHANDLER = "1";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Pure Python wrapper for SDL3";
|
||||
homepage = "https://github.com/Aermoss/PySDL3";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ jansol ];
|
||||
platforms = [
|
||||
"aarch64-linux"
|
||||
"x86_64-linux"
|
||||
"aarch64-windows"
|
||||
"x86_64-windows"
|
||||
"aarch64-darwin"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
# See also
|
||||
# https://pysdl3.readthedocs.io/en/latest/install.html#the-environment-variable-method
|
||||
|
||||
# Don't check Pypi for new PySDL3 releases at runtime
|
||||
export SDL_CHECK_VERSION=0
|
||||
# Don't try to download SDL binaries at runtime
|
||||
export SDL_DOWNLOAD_BINARIES=0
|
||||
# Nixpkgs does not provide a metadata.json. Instead we want PySDL3 to find the
|
||||
# SDL libraries we symlink into its site-packages
|
||||
export SDL_DISABLE_METADATA=1
|
||||
@@ -13370,6 +13370,8 @@ self: super: with self; {
|
||||
|
||||
pysdl2 = callPackage ../development/python-modules/pysdl2 { };
|
||||
|
||||
pysdl3 = callPackage ../development/python-modules/pysdl3 { };
|
||||
|
||||
pysearpc = toPythonModule (pkgs.libsearpc.override { python3 = self.python; });
|
||||
|
||||
pysecretsocks = callPackage ../development/python-modules/pysecretsocks { };
|
||||
|
||||
Reference in New Issue
Block a user