charmcraft: 3.4.5 -> 3.5.0

This commit is contained in:
Jon Seager
2025-06-03 13:09:25 +01:00
parent ab1efec921
commit 8a5386533f
+17 -42
View File
@@ -1,19 +1,20 @@
{
lib,
git,
gitMinimal,
python3,
fetchFromGitHub,
nix-update-script,
testers,
charmcraft,
cacert,
versionCheckHook,
writableTmpDirAsHomeHook,
}:
let
version = "4.10.0";
python = python3.override {
self = python;
packageOverrides = self: super: {
craft-application = super.craft-application.overridePythonAttrs (old: rec {
version = "4.10.0";
craft-application = super.craft-application.overridePythonAttrs (old: {
inherit version;
src = fetchFromGitHub {
owner = "canonical";
repo = "craft-application";
@@ -21,28 +22,9 @@ let
hash = "sha256-9M49/XQuWwKuQqseleTeZYcrwd/S16lNCljvlVsoXbs=";
};
patches = [ ];
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "setuptools==75.8.0" "setuptools"
substituteInPlace craft_application/git/_git_repo.py \
--replace-fail "/snap/core22/current/etc/ssl/certs" "${cacert}/etc/ssl/certs"
'';
preCheck = ''
export HOME=$(mktemp -d)
# Tests require access to /etc/os-release, which isn't accessible in
# the test environment, so create a fake file, and modify the code
# to look for it.
echo 'ID=nixos' > $HOME/os-release
echo 'NAME=NixOS' >> $HOME/os-release
echo 'VERSION_ID="24.05"' >> $HOME/os-release
substituteInPlace craft_application/util/platforms.py \
--replace-fail "os_utils.OsRelease()" "os_utils.OsRelease(os_release_file='$HOME/os-release')"
substituteInPlace pyproject.toml --replace-fail "setuptools==75.8.0" "setuptools"
substituteInPlace craft_application/git/_git_repo.py --replace-fail "/snap/core22/current/etc/ssl/certs" "${cacert}/etc/ssl/certs"
'';
});
};
@@ -50,7 +32,7 @@ let
in
python.pkgs.buildPythonApplication rec {
pname = "charmcraft";
version = "3.4.6";
version = "3.5.0";
pyproject = true;
@@ -58,7 +40,7 @@ python.pkgs.buildPythonApplication rec {
owner = "canonical";
repo = "charmcraft";
tag = version;
hash = "sha256-i7XhsVmeO3fzAWCQ1v9J/dv4oSdN00svauIColQcj9A=";
hash = "sha256-NIOfjd4r9mDP0x1IpIVJlU+Aza0a17bc3jDxtInrf4A=";
};
postPatch = ''
@@ -113,14 +95,11 @@ python.pkgs.buildPythonApplication rec {
]
++ [
cacert
git
gitMinimal
versionCheckHook
writableTmpDirAsHomeHook
];
preCheck = ''
mkdir -p check-phase
export HOME="$(pwd)/check-phase"
'';
pytestFlagsArray = [ "tests/unit" ];
disabledTests = [
@@ -130,14 +109,10 @@ python.pkgs.buildPythonApplication rec {
"test_read_charm_from_yaml_file_self_contained_success[full-platforms.yaml]"
];
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion {
package = charmcraft;
command = "env SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt HOME=$(mktemp -d) charmcraft --version";
version = "charmcraft ${version}";
};
};
versionCheckProgramArg = "--version";
versionCheckKeepEnvironment = [ "SSL_CERT_FILE" ];
passthru.updateScript = nix-update-script { };
meta = {
mainProgram = "charmcraft";