php80.packages.php-parallel-lint: Fix build

One of the main use cases of this program is ensuring that a project
targeting older PHP version does not use syntax that is not available there.

Unfortunately, box is now only available for PHP ≥ 8.1.
And even if we bring it from PHP 8.1 package set, the produced PHAR
will contain syntax incompatible with older PHP versions.

To work around this we either need to disable requirements checks
or force use the default PHAR stub over the box’s one.
And it turns out that php-parallel-linter already does the former,
only we did not have access to the `box.json` file
because it was excluded from the `git archive`.

Let’s fetch the source using Git so that box configuration is available.

Reverts 2db0ddb968
This commit is contained in:
Jan Tojnar 2022-11-13 21:19:25 +01:00
parent b8e83fd7e1
commit 35c91b9630

View file

@ -1,4 +1,4 @@
{ mkDerivation, fetchFromGitHub, makeWrapper, lib, php }:
{ mkDerivation, fetchFromGitHub, makeWrapper, lib, php, php81 }:
let
pname = "php-parallel-lint";
version = "1.3.2";
@ -10,13 +10,17 @@ mkDerivation {
owner = "php-parallel-lint";
repo = "PHP-Parallel-Lint";
rev = "v${version}";
sha256 = "sha256-pTHH19HwqyOj5pSmH7l0JlntNVtMdu4K9Cl+qyrrg9U=";
# `.gitattibutes` exclude `box.json` from the archive produced git.
forceFetchGit = true;
sha256 = "SPP1ynxJad2m5wknGt8z94fW7Ucx8nqLvwZVmlylOgM=";
};
nativeBuildInputs = [
makeWrapper
php.packages.composer
php.packages.box
# box is only available for PHP ≥ 8.1 but the purpose of this tool is to validate
# that project does not use features not available on older PHP versions.
php81.packages.box
];
buildPhase = ''
@ -36,7 +40,6 @@ mkDerivation {
'';
meta = with lib; {
broken = lib.versionOlder php.version "8.1"; # Broken on PHP older than 8.1.
description = "Tool to check syntax of PHP files faster than serial check with fancier output";
license = licenses.bsd2;
homepage = "https://github.com/php-parallel-lint/PHP-Parallel-Lint";