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 40709f4b49739..d8bfca7c348fb 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.6"; + # 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-BJuODtnyZNdwoFEIWM/7w1QBUQdZ7cmnhLOlxuAgvKw="; + passthru.pharHash = "sha256-KdyaGe8zU12wYbMRgLKoM6fPjSz0FFszovg1BId7ugg="; composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix { inherit (finalAttrs) version; inherit (finalAttrs.passthru) pharHash; }; - pname = "composer"; - version = "2.7.2"; - src = fetchFromGitHub { owner = "composer"; repo = "composer"; rev = finalAttrs.version; - hash = "sha256-Rev3OW1G+LVgJmHLwuV5u0s7F7lKrvtI43eS7y9SAYA="; + hash = "sha256-LZwg3PR3zl07Nb6MS8oKkRfjLgqtT/c4sfUOzWE4S+U="; }; 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-AyX57oV5Jf8U4B9tEl+b2Rnt/Igu7ockEap0wfN9b2Q="; + }; + + 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-JLMhjOradyo64mPNos0qtM5bTnAYTRvSWnFUQrLQNjw="; + runHook postInstall + ''; meta = { changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; |