2024-05-13 21:24:10 +00:00
|
|
|
{ callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper
|
|
|
|
, fetchFromGitHub, fetchurl }:
|
2024-05-02 00:46:19 +00:00
|
|
|
|
|
|
|
let
|
|
|
|
buildComposerProjectOverride = finalAttrs: previousAttrs:
|
|
|
|
|
|
|
|
let
|
|
|
|
phpDrv = finalAttrs.php or php;
|
|
|
|
composer = finalAttrs.composer or phpDrv.packages.composer;
|
2024-05-13 21:24:10 +00:00
|
|
|
composer-local-repo-plugin =
|
|
|
|
callPackage ./pkgs/composer-local-repo-plugin.nix { };
|
|
|
|
in {
|
2024-05-02 00:46:19 +00:00
|
|
|
composerLock = previousAttrs.composerLock or null;
|
|
|
|
composerNoDev = previousAttrs.composerNoDev or true;
|
|
|
|
composerNoPlugins = previousAttrs.composerNoPlugins or true;
|
|
|
|
composerNoScripts = previousAttrs.composerNoScripts or true;
|
|
|
|
composerStrictValidation = previousAttrs.composerStrictValidation or true;
|
|
|
|
|
|
|
|
nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
|
|
|
|
composer
|
|
|
|
composer-local-repo-plugin
|
|
|
|
phpDrv
|
|
|
|
phpDrv.composerHooks.composerInstallHook
|
|
|
|
];
|
|
|
|
|
2024-05-13 21:24:10 +00:00
|
|
|
buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ];
|
2024-05-02 00:46:19 +00:00
|
|
|
|
|
|
|
patches = previousAttrs.patches or [ ];
|
|
|
|
strictDeps = previousAttrs.strictDeps or true;
|
|
|
|
|
|
|
|
# Should we keep these empty phases?
|
|
|
|
configurePhase = previousAttrs.configurePhase or ''
|
|
|
|
runHook preConfigure
|
|
|
|
|
|
|
|
runHook postConfigure
|
|
|
|
'';
|
|
|
|
|
|
|
|
buildPhase = previousAttrs.buildPhase or ''
|
|
|
|
runHook preBuild
|
|
|
|
|
|
|
|
runHook postBuild
|
|
|
|
'';
|
|
|
|
|
|
|
|
doCheck = previousAttrs.doCheck or true;
|
|
|
|
checkPhase = previousAttrs.checkPhase or ''
|
|
|
|
runHook preCheck
|
|
|
|
|
|
|
|
runHook postCheck
|
|
|
|
'';
|
|
|
|
|
|
|
|
installPhase = previousAttrs.installPhase or ''
|
|
|
|
runHook preInstall
|
|
|
|
|
|
|
|
runHook postInstall
|
|
|
|
'';
|
|
|
|
|
|
|
|
doInstallCheck = previousAttrs.doInstallCheck or false;
|
|
|
|
installCheckPhase = previousAttrs.installCheckPhase or ''
|
|
|
|
runHook preInstallCheck
|
|
|
|
|
|
|
|
runHook postInstallCheck
|
|
|
|
'';
|
|
|
|
|
|
|
|
composerRepository = phpDrv.mkComposerRepository {
|
|
|
|
inherit composer composer-local-repo-plugin;
|
|
|
|
inherit (finalAttrs) patches pname src vendorHash version;
|
|
|
|
|
|
|
|
composerLock = previousAttrs.composerLock or null;
|
|
|
|
composerNoDev = previousAttrs.composerNoDev or true;
|
|
|
|
composerNoPlugins = previousAttrs.composerNoPlugins or true;
|
|
|
|
composerNoScripts = previousAttrs.composerNoScripts or true;
|
2024-05-13 21:24:10 +00:00
|
|
|
composerStrictValidation =
|
|
|
|
previousAttrs.composerStrictValidation or true;
|
2024-05-02 00:46:19 +00:00
|
|
|
};
|
|
|
|
|
2024-05-13 21:24:10 +00:00
|
|
|
COMPOSER_CACHE_DIR = "/dev/null";
|
|
|
|
COMPOSER_DISABLE_NETWORK = "1";
|
|
|
|
COMPOSER_MIRROR_PATH_REPOS = "1";
|
2024-05-02 00:46:19 +00:00
|
|
|
|
2024-05-13 21:24:10 +00:00
|
|
|
meta = previousAttrs.meta or { } // { platforms = lib.platforms.all; };
|
2024-05-02 00:46:19 +00:00
|
|
|
};
|
2024-05-13 21:24:10 +00:00
|
|
|
in args:
|
|
|
|
(stdenvNoCC.mkDerivation args).overrideAttrs buildComposerProjectOverride
|