diff --git a/pkgs/tools/package-management/apkg/default.nix b/pkgs/tools/package-management/apkg/default.nix new file mode 100644 index 000000000000..9f187724666d --- /dev/null +++ b/pkgs/tools/package-management/apkg/default.nix @@ -0,0 +1,49 @@ +{ 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="; + }; + + 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 ]) + ]; + + checkInputs = 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 */ ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7655a18823c5..ab4f7974df76 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15244,6 +15244,8 @@ with pkgs; anybadge = with python3Packages; toPythonApplication anybadge; + apkg = callPackage ../tools/package-management/apkg { }; + augeas = callPackage ../tools/system/augeas { }; autoadb = callPackage ../misc/autoadb { };