1

Derivations/TidalDlNg: Add tidal-dl-ng derivation

This commit is contained in:
2025-07-18 00:25:49 +02:00
parent f31ad834e5
commit 95738f6d9f
3 changed files with 150 additions and 0 deletions

View File

@ -7,4 +7,5 @@
monolisa = pkgs.callPackage ./monolisa {};
msty = pkgs.callPackage ./msty {};
tidal-dl-ng = pkgs.callPackage ./tidal-dl-ng {};
}

View File

@ -0,0 +1,148 @@
# https://github.com/exislow/tidal-dl-ng/issues/472
# https://gist.github.com/xaolanx/4c88d0cbc0dee90764bae767006103f8
{
lib,
stdenv,
pkgs,
}: let
#
# Dependencies
#
requests_2_32_4 = pkgs.python3Packages.requests.overridePythonAttrs (old: {
version = "2.32.4";
src = pkgs.python3Packages.fetchPypi {
inherit (old) pname;
version = "2.32.4";
sha256 = "sha256-J9AxZoLIopg00yZIIAJLYqNpQgg9Usry8UwFkTNtNCI=";
};
patches =
builtins.filter (
p: !pkgs.lib.strings.hasInfix "CVE-2024-47081" (toString p)
)
old.patches;
});
pycryptodome_3_23_0 = pkgs.python3Packages.pycryptodome.overridePythonAttrs (old: {
version = "3.23.0";
src = pkgs.python3Packages.fetchPypi {
inherit (old) pname;
version = "3.23.0";
sha256 = "sha256-RHcAplcYLWAzi6sJ/bJ1GPiFauzYCuTGvd22f/XaRO8=";
};
});
pathvalidate_3_3_1 = pkgs.python3Packages.pathvalidate.overridePythonAttrs (old: {
version = "3.3.1";
src = pkgs.python3Packages.fetchPypi {
inherit (old) pname;
version = "3.3.1";
sha256 = "sha256-sYwHISv+rWJDRbuOHWFBzc8Vo5c2mU6guUA1rSsboXc=";
};
});
typer_0_16_0 = pkgs.python3Packages.typer.overridePythonAttrs (old: {
version = "0.16.0";
src = pkgs.python3Packages.fetchPypi {
inherit (old) pname;
version = "0.16.0";
sha256 = "sha256-rzd/+u4dvjeulEDLTo8RaG6lzk6brgG4SufGO4fx3Ts=";
};
});
tidalDlNg = pkgs.python3Packages.buildPythonApplication rec {
pname = "tidal-dl-ng";
version = "0.26.2";
format = "pyproject";
src = pkgs.fetchFromGitHub {
owner = "exislow";
repo = "tidal-dl-ng";
rev = "v${version}";
sha256 = "sha256-9C7IpLKeR08/nMbePltwGrzIgXfdaVfyOeFQnfCwMKg=";
};
doCheck = false;
catchConflicts = false;
nativeBuildInputs = with pkgs.python3Packages; [poetry-core setuptools];
propagatedBuildInputs = with pkgs.python3Packages; [
requests_2_32_4
coloredlogs
dataclasses-json
m3u8
mpegdash
mutagen
pathvalidate_3_3_1
pycryptodome_3_23_0
python-ffmpeg
rich
tidalapi
toml
typer_0_16_0
pyside6
pyqtdarktheme
];
# pythonOutputDistPhase = ''
# echo "⚠Skipping pythonOutputDistPhase"
# '';
# pythonCatchConflictsPhase = ''
# echo "🛑 Skipping pythonCatchConflictsPhase"
# '';
};
#
# Wrapped applications
#
tidal-dl-ng = pkgs.writeShellApplication {
name = "tdn";
runtimeInputs = [tidalDlNg];
text = ''exec tidal-dl-ng "$@"'';
};
tidal-dl-ng-gui = pkgs.writeShellApplication {
name = "tdng";
runtimeInputs = [
tidalDlNg
pkgs.kdePackages.qtbase
pkgs.kdePackages.qtsvg
];
text = ''
export QT_QPA_PLATFORM=xcb
export QT_PLUGIN_PATH=${pkgs.kdePackages.qtbase}/lib/qt-6/plugins
exec tidal-dl-ng-gui "$@"
'';
};
tidal-dl-ng-gui-desktopfile = pkgs.stdenv.mkDerivation {
pname = "tdng";
version = "0.26.2";
dontUnpack = true;
nativeBuildInputs = [pkgs.makeWrapper];
installPhase = ''
mkdir -p $out/bin
cp ${tidal-dl-ng-gui}/bin/tdng $out/bin/
mkdir -p $out/share/applications
cat > $out/share/applications/tdng.desktop << EOF
[Desktop Entry]
Name=Tidal Downloader NG
Comment=Download music from Tidal
Exec=tdng
Icon=audio-x-generic
Terminal=false
Type=Application
Categories=AudioVideo;Audio;Player;
EOF
'';
};
in
# Combine the outputs into a single package
pkgs.buildEnv {
name = "tidal-dl-ng-env";
paths = [tidal-dl-ng tidal-dl-ng-gui-desktopfile];
}

View File

@ -487,6 +487,7 @@
ferdium
gparted
tidal-hifi
tidal-dl-ng
# Office
wacomtablet # For xournalpp/krita