nixpkgs/pkgs/tools/package-management/apkg/default.nix
2023-03-09 20:20:12 +01:00

61 lines
1.7 KiB
Nix

{ lib, fetchFromGitLab, python3Packages
, gitMinimal, rpm, dpkg, fakeroot
}:
python3Packages.buildPythonApplication rec {
pname = "apkg";
version = "0.4.0";
src = fetchFromGitLab {
domain = "gitlab.nic.cz";
owner = "packaging";
repo = pname;
rev = "v${version}";
sha256 = "duZz2Kwjgek5pMJTDH8gMZAZ13uFwaIYT5E1brW7I7U=";
};
# TODO: solve this properly. Detection won't work anymore.
postPatch = ''
patch <<-EOF
--- a/setup.py
+++ b/setup.py
@@ -25,1 +25,1 @@
- version=version,
+ version='${version}',
EOF
'';
propagatedBuildInputs = with python3Packages; [
# copy&pasted requirements.txt (almost exactly)
beautifulsoup4 # upstream version detection
blessings # terminal colors
build # apkg distribution
cached-property # @cached_property for python <= 3.7
click # nice CLI framework
distro # current distro detection
jinja2 # templating
packaging # version parsing
requests # HTTP for humans™
setuptools # required by minver
toml # config files
];
makeWrapperArgs = [ # deps for `srcpkg` operation for other distros; could be optional
"--prefix" "PATH" ":" (lib.makeBinPath [ gitMinimal rpm dpkg fakeroot ])
];
nativeCheckInputs = with python3Packages; [ pytest ];
checkPhase = ''
runHook preCheck
py.test # inspiration: .gitlab-ci.yml
runHook postCheck
'';
meta = with lib; {
description = "Upstream packaging automation tool";
homepage = "https://pkg.labs.nic.cz/pages/apkg";
license = licenses.gpl3Plus;
maintainers = [ maintainers.vcunat /* close to upstream */ ];
};
}