diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 16dabe152051..50f1c81a0dbb 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -24750,6 +24750,14 @@ githubId = 1552853; name = "Vincent Ambo"; }; + tbaldwin = { + email = "trent.baldwin@proton.me"; + matrix = "@tbaldwin:matrix.org"; + github = "tbaldwin-dev"; + githubId = 220447215; + name = "Trent Baldwin"; + keys = [ { fingerprint = "930C 3A61 F911 1296 7DA5 56D1 665A 9E2A FCDD 68AA"; } ]; + }; tbenst = { email = "nix@tylerbenster.com"; github = "tbenst"; diff --git a/pkgs/by-name/sc/scuba/package.nix b/pkgs/by-name/sc/scuba/package.nix new file mode 100644 index 000000000000..af8b00cfcdda --- /dev/null +++ b/pkgs/by-name/sc/scuba/package.nix @@ -0,0 +1,67 @@ +{ + lib, + pkgsStatic, + fetchFromGitHub, + python3Packages, +}: + +let + version = "2.14.0"; + + src = fetchFromGitHub { + owner = "JonathonReinhart"; + repo = "scuba"; + tag = "v${version}"; + hash = "sha256-AX70js/bvt88zWJlXpuHIeBsBRfAL4qZjuthPFKSnFI="; + }; + + # This must be built statically because scuba will execute unknown docker environments + scubainit = pkgsStatic.rustPlatform.buildRustPackage rec { + pname = "scubainit"; + inherit src version; + + sourceRoot = "${src.name}/scubainit"; + + cargoHash = "sha256-YUYo2B5hzzmDeNiWUC+198Qbz+JPgUJfpAqyPWAXTRA="; + }; +in +python3Packages.buildPythonPackage rec { + pname = "scuba"; + inherit src version; + pyproject = true; + + build-system = with python3Packages; [ + setuptools + ]; + + dependencies = with python3Packages; [ + argcomplete + pyyaml + ]; + + postPatch = '' + # Version detection fails + # Patch in the version instead + substituteInPlace scuba/version.py \ + --replace-fail "__version__ = get_version()" "__version__ = \"${version}\"" + + # Disable calling cargo through the make file + # scubainit has already been built + substituteInPlace setup.py \ + --replace-fail "check_call([\"make\"])" "pass" + ''; + + preBuild = '' + # Link scubainit into the build tree + ln -s ${scubainit}/bin/scubainit scuba/scubainit + ''; + + meta = { + description = "Simple Container-Utilizing Build Apparatus"; + homepage = "https://github.com/JonathonReinhart/scuba"; + changelog = "https://github.com/JonathonReinhart/scuba/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ tbaldwin ]; + mainProgram = "scuba"; + }; +}