2022-11-03 23:36:32 +00:00
|
|
|
{ lib
|
|
|
|
, fetchFromGitHub
|
|
|
|
, python3
|
|
|
|
, wrapQtAppsHook
|
|
|
|
}:
|
2016-08-02 22:25:41 +00:00
|
|
|
|
2022-03-09 05:30:00 +00:00
|
|
|
# As of 2.1, puddletag has started pinning versions of all dependencies that it
|
|
|
|
# was built against which is an issue as the chances of us having the exact same
|
|
|
|
# versions in nixpkgs are slim to none.
|
|
|
|
#
|
|
|
|
# There is a difference between explicit and implicit version requirements and
|
|
|
|
# we should be able to safely ignore the latter. Therefore use requirements.in
|
|
|
|
# which contains just the explicit version dependencies instead of
|
|
|
|
# requirements.txt.
|
|
|
|
#
|
|
|
|
# Additionally, we do need to override some of the explicit requirements through
|
|
|
|
# `overrideVersions`. While we technically run the risk of breaking something by
|
|
|
|
# ignoring the pinned versions, it's just something we will have to accept
|
|
|
|
# unless we want to vendor those versions.
|
|
|
|
|
|
|
|
|
2022-11-03 23:36:32 +00:00
|
|
|
python3.pkgs.buildPythonApplication rec {
|
2018-06-23 13:27:58 +00:00
|
|
|
pname = "puddletag";
|
2022-07-05 09:18:09 +00:00
|
|
|
version = "2.2.0";
|
2022-11-03 23:36:32 +00:00
|
|
|
format = "setuptools";
|
2016-08-02 22:25:41 +00:00
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
2022-03-09 05:30:00 +00:00
|
|
|
owner = "puddletag";
|
2020-08-29 23:49:32 +00:00
|
|
|
repo = "puddletag";
|
2022-07-05 09:18:09 +00:00
|
|
|
rev = "refs/tags/${version}";
|
|
|
|
hash = "sha256-KaFfpOWI9u2ZC/3kuCLneWOOKSmAaIuHPFHptkKMH/g=";
|
2016-08-02 22:25:41 +00:00
|
|
|
};
|
|
|
|
|
2022-11-03 23:36:32 +00:00
|
|
|
pythonRelaxDeps = true;
|
|
|
|
|
|
|
|
pythonRemoveDeps = [
|
|
|
|
"chromaprint"
|
|
|
|
"pyqt5-qt5"
|
|
|
|
];
|
|
|
|
|
2022-03-09 05:30:00 +00:00
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace setup.py \
|
|
|
|
--replace share/pixmaps share/icons
|
2022-11-03 23:36:32 +00:00
|
|
|
'';
|
2022-03-09 05:30:00 +00:00
|
|
|
|
2022-11-03 23:36:32 +00:00
|
|
|
nativeBuildInputs = [
|
|
|
|
python3.pkgs.pythonRelaxDepsHook
|
|
|
|
wrapQtAppsHook
|
|
|
|
];
|
2020-10-13 06:17:29 +00:00
|
|
|
|
2022-11-03 23:36:32 +00:00
|
|
|
propagatedBuildInputs = with python3.pkgs; [
|
2016-08-02 22:25:41 +00:00
|
|
|
configobj
|
2022-03-09 05:30:00 +00:00
|
|
|
levenshtein
|
|
|
|
lxml
|
2016-08-02 22:25:41 +00:00
|
|
|
mutagen
|
2022-11-03 23:36:32 +00:00
|
|
|
pyacoustid
|
2016-08-02 22:25:41 +00:00
|
|
|
pyparsing
|
2020-08-29 23:49:32 +00:00
|
|
|
pyqt5
|
2022-03-09 05:30:00 +00:00
|
|
|
rapidfuzz
|
|
|
|
];
|
2016-08-02 22:25:41 +00:00
|
|
|
|
2020-10-13 06:17:29 +00:00
|
|
|
preFixup = ''
|
|
|
|
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
|
|
|
|
'';
|
|
|
|
|
|
|
|
doCheck = false; # there are no tests
|
2020-08-29 23:49:32 +00:00
|
|
|
|
2020-10-13 06:17:29 +00:00
|
|
|
dontStrip = true; # we are not generating any binaries
|
2016-08-02 22:25:41 +00:00
|
|
|
|
2021-01-11 07:54:33 +00:00
|
|
|
meta = with lib; {
|
2016-08-02 22:25:41 +00:00
|
|
|
description = "An audio tag editor similar to the Windows program, Mp3tag";
|
2020-08-29 23:49:32 +00:00
|
|
|
homepage = "https://docs.puddletag.net";
|
2022-03-09 05:30:00 +00:00
|
|
|
license = licenses.gpl3Plus;
|
|
|
|
maintainers = with maintainers; [ peterhoeg dschrempf ];
|
2020-08-29 23:49:32 +00:00
|
|
|
platforms = platforms.linux;
|
2016-08-02 22:25:41 +00:00
|
|
|
};
|
|
|
|
}
|