scuba: init at 2.14.0 (#424640)

This commit is contained in:
Sandro 2025-07-31 15:26:56 +02:00 committed by GitHub
commit 6d3d07e101
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 75 additions and 0 deletions

View File

@ -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";

View File

@ -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";
};
}