build-support/php: use php.packages.composer-local-repo-plugin

(cherry picked from commit 6bad2e219e)
This commit is contained in:
Pol Dellaiera 2024-05-16 15:11:09 +02:00 committed by github-actions[bot]
parent e754cf78d8
commit a7e222dc6b
5 changed files with 5 additions and 127 deletions

View File

@ -1,5 +1,4 @@
{
callPackage,
nix-update-script,
stdenvNoCC,
lib,
@ -12,8 +11,7 @@ let
let
phpDrv = finalAttrs.php or php;
composer = finalAttrs.composer or phpDrv.packages.composer;
composer-local-repo-plugin = callPackage ../../pkgs/composer-local-repo-plugin.nix { };
composer = finalAttrs.composer or phpDrv.packages.composer-local-repo-plugin;
in
{
composerLock = previousAttrs.composerLock or null;
@ -24,7 +22,6 @@ let
nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
composer
composer-local-repo-plugin
phpDrv
phpDrv.composerHooks.composerInstallHook
];
@ -74,7 +71,7 @@ let
composerRepository =
previousAttrs.composerRepository or (phpDrv.mkComposerRepository {
inherit composer composer-local-repo-plugin;
inherit composer;
inherit (finalAttrs)
patches
pname

View File

@ -1,5 +1,4 @@
{
callPackage,
stdenvNoCC,
lib,
php,
@ -23,8 +22,7 @@ let
let
phpDrv = finalAttrs.php or php;
composer = finalAttrs.composer or phpDrv.packages.composer;
composer-local-repo-plugin = callPackage ../../pkgs/composer-local-repo-plugin.nix { };
composer = finalAttrs.composer or phpDrv.packages.composer-local-repo-plugin;
in
assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument.");
assert (
@ -58,7 +56,6 @@ let
nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
composer
composer-local-repo-plugin
phpDrv
phpDrv.composerHooks.composerRepositoryHook
];

View File

@ -83,7 +83,7 @@ composerInstallBuildHook() {
# Since this file cannot be generated in the composer-repository-hook.sh
# because the file contains hardcoded nix store paths, we generate it here.
composer-local-repo-plugin --no-ansi build-local-repo-lock -m "${composerRepository}" .
composer build-local-repo-lock -m "${composerRepository}" .
echo "Finished composerInstallBuildHook"
}

View File

@ -63,7 +63,7 @@ composerRepositoryBuildHook() {
# Build the local composer repository
# The command 'build-local-repo' is provided by the Composer plugin
# nix-community/composer-local-repo-plugin.
composer-local-repo-plugin --no-ansi build-local-repo-lock ${composerNoDev:+--no-dev} -r repository
composer build-local-repo-lock ${composerNoDev:+--no-dev} -r repository
echo "Finished composerRepositoryBuildHook"
}

View File

@ -1,116 +0,0 @@
{
php,
callPackage,
stdenvNoCC,
lib,
fetchFromGitHub,
makeBinaryWrapper,
}:
let
composer = callPackage ./composer-phar.nix { inherit (php.packages.composer) version pharHash; };
composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: {
pname = "composer-keys";
version = "fa5a62092f33e094073fbda23bbfc7188df3cbc5";
src = fetchFromGitHub {
owner = "composer";
repo = "composer.github.io";
rev = "${finalComposerKeysAttrs.version}";
hash = "sha256-3Sfn71LDG1jHwuEIU8iEnV3k6D6QTX7KVIKVaNSuCVE=";
};
installPhase = ''
runHook preInstall
mkdir -p $out
install releases.pub $out/keys.tags.pub
install snapshots.pub $out/keys.dev.pub
runHook postInstall
'';
});
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "composer-local-repo-plugin";
version = "1.1.0";
src = fetchFromGitHub {
owner = "nix-community";
repo = "composer-local-repo-plugin";
rev = finalAttrs.version;
hash = "sha256-edbn07r/Uc1g0qOuVBZBs6N1bMN5kIfA1b4FCufdw5M=";
};
env = {
COMPOSER_CACHE_DIR = "/dev/null";
COMPOSER_MIRROR_PATH_REPOS = "1";
COMPOSER_HTACCESS_PROTECT = "0";
COMPOSER_DISABLE_NETWORK = "1";
};
nativeBuildInputs = [ makeBinaryWrapper ];
buildInputs = [ composer ];
configurePhase = ''
runHook preConfigure
export COMPOSER_HOME=${placeholder "out"}
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
# Configure composer globally
composer global init --quiet --no-interaction --no-ansi \
--name="nixos/composer" \
--homepage "https://nixos.org/" \
--description "Composer with nix-community/composer-local-repo-plugin" \
--license "MIT"
composer global config --quiet minimum-stability dev
composer global config --quiet prefer-stable true
composer global config --quiet apcu-autoloader false
composer global config --quiet allow-plugins.nix-community/composer-local-repo-plugin true
composer global config --quiet repo.packagist false
composer global config --quiet repo.plugin path $src
# Install the local repository plugin
composer global require --quiet --no-ansi --no-interaction nix-community/composer-local-repo-plugin
runHook postBuild
'';
checkPhase = ''
runHook preCheck
composer global validate --no-ansi
composer global show --no-ansi nix-community/composer-local-repo-plugin
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -ar ${composerKeys}/* $out/
makeWrapper ${composer}/bin/composer $out/bin/composer-local-repo-plugin \
--prefix COMPOSER_HOME : $out
runHook postInstall
'';
meta = {
description = "Composer local repo plugin for Composer";
homepage = "https://github.com/nix-community/composer-local-repo-plugin";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ drupol ];
platforms = lib.platforms.all;
};
})