diff options
Diffstat (limited to 'pkgs/development/php-packages/composer/default.nix')
-rw-r--r-- | pkgs/development/php-packages/composer/default.nix | 110 |
1 files changed, 89 insertions, 21 deletions
diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix index 28606fdfa2e27..150d069ca67c7 100644 --- a/pkgs/development/php-packages/composer/default.nix +++ b/pkgs/development/php-packages/composer/default.nix @@ -1,46 +1,114 @@ -{ lib -, callPackage -, fetchFromGitHub -, php -, unzip -, _7zz -, xz -, git -, curl -, cacert -, makeBinaryWrapper +{ + lib, + stdenvNoCC, + fetchFromGitHub, + callPackage, + php, + unzip, + _7zz, + xz, + git, + curl, + cacert, + makeBinaryWrapper, }: -php.buildComposerProject (finalAttrs: { +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "composer"; + version = "2.7.7"; + # Hash used by ../../../build-support/php/pkgs/composer-phar.nix to # use together with the version from this package to keep the # bootstrap phar file up-to-date together with the end user composer # package. - passthru.pharHash = "sha256-/MAv8ES1oE++z/AVjLYEHCXo94rElAmHNv7NK7TzgeQ="; + passthru.pharHash = "sha256-qrlAzVPShaVMUEZYIKIID8txgqS6Hl95Wr+xBBSktL4="; composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix { inherit (finalAttrs) version; inherit (finalAttrs.passthru) pharHash; }; - pname = "composer"; - version = "2.7.3"; - src = fetchFromGitHub { owner = "composer"; repo = "composer"; rev = finalAttrs.version; - hash = "sha256-4cQ/p6lC8qgba/GSKuP2rFc0mZrUc+HuwvBMXnVERoU="; + hash = "sha256-N8el4oyz3ZGIXN2qmpf6Df0SIjuc1GjyuMuQCcR/xN4="; }; nativeBuildInputs = [ makeBinaryWrapper ]; - postInstall = '' + buildInputs = [ php ]; + + vendor = stdenvNoCC.mkDerivation { + pname = "${finalAttrs.pname}-vendor"; + + inherit (finalAttrs) src version; + + nativeBuildInputs = [ + cacert + finalAttrs.composer + ]; + + dontPatchShebangs = true; + doCheck = true; + + buildPhase = '' + runHook preBuild + + composer install --no-dev --no-interaction --no-progress --optimize-autoloader + + runHook postBuild + ''; + + checkPhase = '' + runHook preCheck + + composer validate + + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + + cp -ar . $out/ + + runHook postInstall + ''; + + env = { + COMPOSER_CACHE_DIR = "/dev/null"; + COMPOSER_DISABLE_NETWORK = "0"; + COMPOSER_HTACCESS_PROTECT = "0"; + COMPOSER_MIRROR_PATH_REPOS = "1"; + COMPOSER_ROOT_VERSION = finalAttrs.version; + }; + + outputHashMode = "recursive"; + outputHashAlgo = "sha256"; + outputHash = "sha256-AsuiTDXJs7jN4N/dJr10BT2PH0f6K2CWDvI8zQW5L9c="; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -ar ${finalAttrs.vendor}/* $out/ + chmod +w $out/bin + wrapProgram $out/bin/composer \ - --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]} - ''; + --prefix PATH : ${ + lib.makeBinPath [ + _7zz + curl + git + unzip + xz + ] + } - vendorHash = "sha256-dNNV9fTyGyRoGeDV/vBjn0aMgkaUMsrKQv5AOoiYokQ="; + runHook postInstall + ''; meta = { changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; |