Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib, stdenvNoCC, fetchFromGitHub, php, phpPackages }: 2 3let 4 version = "2023.01.21"; 5 6 src = fetchFromGitHub { 7 owner = "phpactor"; 8 repo = "phpactor"; 9 rev = version; 10 hash = "sha256-jWZgBEaffjQ5wCStSEe+eIi7BJt6XAQFEjmq5wvW5V8="; 11 }; 12 13 vendor = stdenvNoCC.mkDerivation rec { 14 pname = "phpactor-vendor"; 15 inherit src version; 16 17 18 # See https://github.com/NixOS/nix/issues/6660 19 dontPatchShebangs = true; 20 21 nativeBuildInputs = [ 22 php 23 phpPackages.composer 24 ]; 25 26 buildPhase = '' 27 runHook preBuild 28 29 substituteInPlace composer.json \ 30 --replace '"config": {' '"config": { "autoloader-suffix": "Phpactor",' \ 31 --replace '"name": "phpactor/phpactor",' '"name": "phpactor/phpactor", "version": "${version}",' 32 composer install --no-interaction --optimize-autoloader --no-dev --no-scripts 33 34 runHook postBuild 35 ''; 36 37 installPhase = '' 38 runHook preInstall 39 40 mkdir -p $out 41 cp -ar ./vendor $out/ 42 43 runHook postInstall 44 ''; 45 46 outputHashMode = "recursive"; 47 outputHashAlgo = "sha256"; 48 outputHash = "sha256-7R6nadWFv7A5Hv14D9egsTD/zcKK5uK9LQlHmwtbKdE="; 49 }; 50in 51stdenvNoCC.mkDerivation { 52 pname = "phpactor"; 53 inherit src version; 54 55 buildInputs = [ 56 php 57 ]; 58 59 dontBuild = true; 60 61 installPhase = '' 62 runHook preInstall 63 64 mkdir -p $out/share/php/phpactor $out/bin 65 cp -r . $out/share/php/phpactor 66 cp -r ${vendor}/vendor $out/share/php/phpactor 67 ln -s $out/share/php/phpactor/bin/phpactor $out/bin/phpactor 68 69 runHook postInstall 70 ''; 71 72 meta = { 73 description = "Mainly a PHP Language Server"; 74 homepage = "https://github.com/phpactor/phpactor"; 75 license = lib.licenses.mit; 76 maintainers = lib.teams.php.members ++ [ lib.maintainers.ryantm ]; 77 }; 78 79}