diff options
author | Yureka <yuka@yuka.dev> | 2023-10-04 13:42:47 +0200 |
---|---|---|
committer | Yureka <yuka@yuka.dev> | 2023-10-04 15:12:08 +0200 |
commit | dd104a90a83013c6c0e7b87efe0340c8576dc133 (patch) | |
tree | 9a73711831c68c75cdc29036a431c42ccacea329 /pkgs/build-support | |
parent | 7d2c531f28619151bcd3e34c358c84f6eb03ae73 (diff) | |
download | nixpkgs-dd104a90a83013c6c0e7b87efe0340c8576dc133.tar nixpkgs-dd104a90a83013c6c0e7b87efe0340c8576dc133.tar.gz nixpkgs-dd104a90a83013c6c0e7b87efe0340c8576dc133.tar.bz2 nixpkgs-dd104a90a83013c6c0e7b87efe0340c8576dc133.tar.lz nixpkgs-dd104a90a83013c6c0e7b87efe0340c8576dc133.tar.xz nixpkgs-dd104a90a83013c6c0e7b87efe0340c8576dc133.tar.zst nixpkgs-dd104a90a83013c6c0e7b87efe0340c8576dc133.zip |
php.buildComposerProject: warn about outdated vendorHash
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/php/hooks/composer-install-hook.sh | 17 | ||||
-rw-r--r-- | pkgs/build-support/php/hooks/default.nix | 10 |
2 files changed, 25 insertions, 2 deletions
diff --git a/pkgs/build-support/php/hooks/composer-install-hook.sh b/pkgs/build-support/php/hooks/composer-install-hook.sh index 86e0006f6ee..4aa9e631c14 100644 --- a/pkgs/build-support/php/hooks/composer-install-hook.sh +++ b/pkgs/build-support/php/hooks/composer-install-hook.sh @@ -26,6 +26,23 @@ composerInstallConfigureHook() { exit 1 fi + echo "Validating consistency between composer.lock and ${composerRepository}/composer.lock" + if ! @diff@ composer.lock "${composerRepository}/composer.lock"; then + echo + echo "ERROR: vendorHash is out of date" + echo + echo "composer.lock is not the same in $composerRepository" + echo + echo "To fix the issue:" + echo '1. Set vendorHash to an empty string: `vendorHash = "";`' + echo '2. Build the derivation and wait for it to fail with a hash mismatch' + echo '3. Copy the "got: sha256-..." value back into the vendorHash field' + echo ' You should have: vendorHash = "sha256-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=";' + echo + + exit 1 + fi + chmod +w composer.json composer.lock echo "Finished composerInstallConfigureHook" diff --git a/pkgs/build-support/php/hooks/default.nix b/pkgs/build-support/php/hooks/default.nix index 5ff69a87786..c19bc757581 100644 --- a/pkgs/build-support/php/hooks/default.nix +++ b/pkgs/build-support/php/hooks/default.nix @@ -1,9 +1,11 @@ -{ makeSetupHook +{ lib +, makeSetupHook , jq , moreutils , makeBinaryWrapper , php , cacert +, buildPackages }: { @@ -18,6 +20,10 @@ { name = "composer-install-hook.sh"; propagatedBuildInputs = [ jq makeBinaryWrapper moreutils php cacert ]; - substitutions = { }; + substitutions = { + # Specify the stdenv's `diff` by abspath to ensure that the user's build + # inputs do not cause us to find the wrong `diff`. + diff = "${lib.getBin buildPackages.diffutils}/bin/diff"; + }; } ./composer-install-hook.sh; } |