From dd456eab696387996e508d9f2583991fba93fb7b Mon Sep 17 00:00:00 2001 From: Dominik Polakovics Date: Thu, 4 Dec 2025 11:39:08 +0100 Subject: [PATCH] feat: update pyload --- utils/overlays/packages.nix | 1 + utils/pkgs/aia-chaser/default.nix | 32 +++++++++++++++++++ utils/pkgs/pyload-ng/default.nix | 5 +-- .../pkgs/pyload-ng/update.sh | 15 +++++---- 4 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 utils/pkgs/aia-chaser/default.nix rename scripts/update-pyload-hash => utils/pkgs/pyload-ng/update.sh (89%) diff --git a/utils/overlays/packages.nix b/utils/overlays/packages.nix index 5eced50..e3bfebd 100644 --- a/utils/overlays/packages.nix +++ b/utils/overlays/packages.nix @@ -10,6 +10,7 @@ self: super: { # Python packages python3 = super.python3.override { packageOverrides = pself: psuper: { + aia-chaser = pself.callPackage ../pkgs/aia-chaser { }; mini-racer = pself.callPackage ../pkgs/mini-racer.nix { }; }; }; diff --git a/utils/pkgs/aia-chaser/default.nix b/utils/pkgs/aia-chaser/default.nix new file mode 100644 index 0000000..35fece2 --- /dev/null +++ b/utils/pkgs/aia-chaser/default.nix @@ -0,0 +1,32 @@ +{ lib +, buildPythonPackage +, fetchPypi +, cryptography +}: + +buildPythonPackage rec { + pname = "aia-chaser"; + version = "3.3.0"; + format = "wheel"; + + src = fetchPypi { + pname = "aia_chaser"; + inherit version format; + dist = "py3"; + python = "py3"; + hash = "sha256-L0aBV3kfAVI1aJH7VgiiEXzGBSP/HU2zAlahkHeT8hk="; + }; + + dependencies = [ + cryptography + ]; + + pythonImportsCheck = [ "aia_chaser" ]; + + meta = with lib; { + description = "Retrieve missing certificates to complete SSL certificate chains"; + homepage = "https://github.com/dirkjanm/aia-chaser"; + license = licenses.mit; + maintainers = [ ]; + }; +} diff --git a/utils/pkgs/pyload-ng/default.nix b/utils/pkgs/pyload-ng/default.nix index 01003bf..01cd24e 100644 --- a/utils/pkgs/pyload-ng/default.nix +++ b/utils/pkgs/pyload-ng/default.nix @@ -6,8 +6,8 @@ pyload-ng.overridePythonAttrs (oldAttrs: rec { src = fetchFromGitHub { owner = "pyload"; repo = "pyload"; - rev = "3115740a2210fd57b5d050cd0850a0e61ec493ed"; # [DdownloadCom] fix #4537 - hash = "sha256-g1eEeNnr3Axtr+0BJzMcNQomTEX4EsUG1Jxt+huPyoc="; + rev = "71f2700184ee9344dc313d9833ca7a6bb36007db"; # [DdownloadCom] fix #4537 + hash = "sha256-XAa+XbC3kko+zvEMZkPXRoaHAmEFGsNBDxysX+X06Jc="; }; patches = [ @@ -16,6 +16,7 @@ pyload-ng.overridePythonAttrs (oldAttrs: rec { # Add new dependencies required in newer versions propagatedBuildInputs = (oldAttrs.propagatedBuildInputs or []) ++ (with python3Packages; [ + aia-chaser mini-racer packaging pydantic diff --git a/scripts/update-pyload-hash b/utils/pkgs/pyload-ng/update.sh similarity index 89% rename from scripts/update-pyload-hash rename to utils/pkgs/pyload-ng/update.sh index 100ee8b..a780fec 100755 --- a/scripts/update-pyload-hash +++ b/utils/pkgs/pyload-ng/update.sh @@ -7,9 +7,10 @@ GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color -# Script directory -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +# Script and repo directories +cd "$(dirname "${BASH_SOURCE[0]}")" +PKG_DIR="$(pwd)" +REPO_ROOT="$(cd ../../.. && pwd)" # Check if commit SHA is provided if [ $# -ne 1 ]; then @@ -34,7 +35,7 @@ fi echo -e "${GREEN}==> Updating pyload-ng to commit: ${COMMIT_SHA}${NC}" # File to update -PKG_FILE="$REPO_ROOT/utils/pkgs/pyload-ng-updated.nix" +PKG_FILE="$PKG_DIR/default.nix" if [ ! -f "$PKG_FILE" ]; then echo -e "${RED}Error: Package file not found: $PKG_FILE${NC}" @@ -53,7 +54,8 @@ echo " ✓ Updated hash in $PKG_FILE" # Step 3: Build package to discover the correct hash echo -e "${YELLOW}Step 3: Building package to discover hash...${NC}" -BUILD_OUTPUT=$(nix-build --impure -E "with import { overlays = [ (import $REPO_ROOT/utils/overlays/packages.nix) ]; }; callPackage $PKG_FILE { }" 2>&1 || true) +cd "$REPO_ROOT" +BUILD_OUTPUT=$(nix-build --impure -E "with import { overlays = [ (import ./utils/overlays/packages.nix) ]; }; callPackage ./utils/pkgs/pyload-ng { }" 2>&1 || true) # Extract hash from error message HASH=$(echo "$BUILD_OUTPUT" | grep -oP '\s+got:\s+\Ksha256-[A-Za-z0-9+/=]+' | head -1) @@ -74,7 +76,7 @@ echo " ✓ Updated hash in $PKG_FILE" # Step 5: Verify the build succeeds echo -e "${YELLOW}Step 5: Verifying build with correct hash...${NC}" -if nix-build --impure -E "with import { overlays = [ (import $REPO_ROOT/utils/overlays/packages.nix) ]; }; callPackage $PKG_FILE { }" > /dev/null 2>&1; then +if nix-build --impure -E "with import { overlays = [ (import ./utils/overlays/packages.nix) ]; }; callPackage ./utils/pkgs/pyload-ng { }" > /dev/null 2>&1; then echo " ✓ Build verification successful" else echo -e "${RED}Error: Build verification failed${NC}" @@ -83,7 +85,6 @@ fi # Step 6: Test configuration for fw host (which uses pyload) echo -e "${YELLOW}Step 6: Testing fw configuration...${NC}" -cd "$REPO_ROOT" if ./scripts/test-configuration fw > /dev/null 2>&1; then echo " ✓ Configuration test passed" else