diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-12-01 19:00:09 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-12-01 19:00:09 +0100 |
commit | 9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d (patch) | |
tree | 4368f9e4cb2d5b93a956c085337e45cb70f1e331 /nixpkgs/pkgs/by-name/fr | |
parent | a9cbfb6941b47d6f50129e6e36927882392daed7 (diff) | |
parent | 2344fe1da14cb08b0c18743b207995f9b8597915 (diff) | |
download | nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.gz nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.bz2 nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.lz nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.xz nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.zst nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.zip |
Merge https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs/pkgs/by-name/fr')
-rw-r--r-- | nixpkgs/pkgs/by-name/fr/frankenphp/package.nix | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix b/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix new file mode 100644 index 000000000000..ffe66b30279a --- /dev/null +++ b/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix @@ -0,0 +1,88 @@ +{ lib +, stdenv +, buildGoModule +, fetchFromGitHub +, php +, testers +, frankenphp +, runCommand +, writeText +}: + +let + phpEmbedWithZts = php.override { + embedSupport = true; + ztsSupport = true; + }; + phpUnwrapped = phpEmbedWithZts.unwrapped; + phpConfig = "${phpUnwrapped.dev}/bin/php-config"; + pieBuild = stdenv.hostPlatform.isMusl; +in buildGoModule rec { + pname = "frankenphp"; + version = "1.0.0-rc.3"; + + src = fetchFromGitHub { + owner = "dunglas"; + repo = "frankenphp"; + rev = "v${version}"; + hash = "sha256-Al0gCxTb6s41ugX9J8N8lshop9kP3RPGCzlq5etk1RY="; + }; + + sourceRoot = "source/caddy"; + + # frankenphp requires C code that would be removed with `go mod tidy` + # https://github.com/golang/go/issues/26366 + proxyVendor = true; + vendorHash = "sha256-Lgj/pFtSQIgjrycajJ1zNY3ytvArmuk0E3IjsAzsNdM="; + + buildInputs = [ phpUnwrapped ] ++ phpUnwrapped.buildInputs; + + subPackages = [ "frankenphp" ]; + + tags = [ "cgo" "netgo" "ousergo" "static_build" ]; + + ldflags = [ + "-s" + "-w" + "-X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP ${version} PHP ${phpUnwrapped.version} Caddy'" + # pie mode is only available with pkgsMusl, it also automaticaly add -buildmode=pie to $GOFLAGS + ] ++ (lib.optional pieBuild [ "-static-pie" ]); + + preBuild = '' + export CGO_CFLAGS="$(${phpConfig} --includes)" + export CGO_LDFLAGS="-DFRANKENPHP_VERSION=${version} \ + $(${phpConfig} --ldflags) \ + -Wl,--start-group $(${phpConfig} --libs) -Wl,--end-group" + ''; + + doCheck = false; + + passthru = { + php = phpEmbedWithZts; + tests = { + # TODO: real NixOS test with Symfony application + version = testers.testVersion { + inherit version; + package = frankenphp; + command = "frankenphp version"; + }; + phpinfo = runCommand "php-cli-phpinfo" { + phpScript = writeText "phpinfo.php" '' + <?php phpinfo(); + ''; + } '' + ${lib.getExe frankenphp} php-cli $phpScript > $out + ''; + }; + }; + + meta = with lib; { + changelog = "https://github.com/dunglas/frankenphp/releases/tag/v${version}"; + description = "The modern PHP app server"; + homepage = "https://github.com/dunglas/frankenphp"; + license = licenses.mit; + mainProgram = "frankenphp"; + maintainers = with maintainers; [ gaelreyrol ]; + platforms = platforms.linux; + }; +} |