diff --git a/pkgs/build-support/php/build-composer-project.nix b/pkgs/build-support/php/build-composer-project.nix index a56720b801b8..b0be330205fa 100644 --- a/pkgs/build-support/php/build-composer-project.nix +++ b/pkgs/build-support/php/build-composer-project.nix @@ -6,7 +6,7 @@ let let phpDrv = finalAttrs.php or php; composer = finalAttrs.composer or phpDrv.packages.composer; - composer-local-repo-plugin = callPackage ./composer-local-repo-plugin.nix { }; + composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; composerLock = finalAttrs.composerLock or null; in { diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix index 95681104e234..86362f151f09 100644 --- a/pkgs/build-support/php/build-composer-repository.nix +++ b/pkgs/build-support/php/build-composer-repository.nix @@ -19,7 +19,7 @@ let let phpDrv = finalAttrs.php or php; composer = finalAttrs.composer or phpDrv.packages.composer; - composer-local-repo-plugin = callPackage ./composer-local-repo-plugin.nix { }; + composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; in assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument."); assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); diff --git a/pkgs/build-support/php/composer-local-repo-plugin.nix b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix similarity index 97% rename from pkgs/build-support/php/composer-local-repo-plugin.nix rename to pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix index 3e918689088d..67edbf1f44f9 100644 --- a/pkgs/build-support/php/composer-local-repo-plugin.nix +++ b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix @@ -1,7 +1,7 @@ { callPackage, stdenvNoCC, lib, fetchFromGitHub, makeBinaryWrapper }: let - composer = callPackage ../../development/tools/misc/composer { }; + composer = callPackage ./composer-phar.nix { }; composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: { pname = "composer-keys"; diff --git a/pkgs/build-support/php/pkgs/composer-phar.nix b/pkgs/build-support/php/pkgs/composer-phar.nix new file mode 100644 index 000000000000..41cba03f4f5d --- /dev/null +++ b/pkgs/build-support/php/pkgs/composer-phar.nix @@ -0,0 +1,48 @@ +{ + _7zz + , cacert + , curl + , fetchurl + , git + , lib + , makeBinaryWrapper + , php + , stdenvNoCC + , unzip + , xz +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "composer-phar"; + version = "2.6.2"; + + src = fetchurl { + url = "https://github.com/composer/composer/releases/download/${finalAttrs.version}/composer.phar"; + hash = "sha256-iMhNSlP88cJ9Z2Lh1da3DVfG3J0uIxT9Cdv4a/YeGu8="; + }; + + dontUnpack = true; + + nativeBuildInputs = [ makeBinaryWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + install -D $src $out/libexec/composer/composer.phar + makeWrapper ${php}/bin/php $out/bin/composer \ + --add-flags "$out/libexec/composer/composer.phar" \ + --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]} + + runHook postInstall + ''; + + meta = { + changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; + description = "Dependency Manager for PHP, shipped from the PHAR file"; + homepage = "https://getcomposer.org/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ drupol ]; + platforms = lib.platforms.all; + }; +}) diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix index a1459bb2d253..2dce4b8e93df 100644 --- a/pkgs/development/php-packages/composer/default.nix +++ b/pkgs/development/php-packages/composer/default.nix @@ -1,7 +1,7 @@ { lib, callPackage, fetchFromGitHub, php, unzip, _7zz, xz, git, curl, cacert, makeBinaryWrapper }: php.buildComposerProject (finalAttrs: { - composer = callPackage ../../tools/misc/composer { }; + composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix { }; pname = "composer"; version = "2.6.2";