about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/fr/frankenphp/package.nix')
-rw-r--r--nixpkgs/pkgs/by-name/fr/frankenphp/package.nix28
1 files changed, 23 insertions, 5 deletions
diff --git a/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix b/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
index 3bc94389d67f..cfeb35882191 100644
--- a/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
+++ b/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
@@ -5,6 +5,9 @@
 , php
 , testers
 , frankenphp
+, darwin
+, pkg-config
+, makeBinaryWrapper
 , runCommand
 , writeText
 }:
@@ -13,19 +16,22 @@ let
   phpEmbedWithZts = php.override {
     embedSupport = true;
     ztsSupport = true;
+    staticSupport = stdenv.isDarwin;
+    zendSignalsSupport = false;
+    zendMaxExecutionTimersSupport = stdenv.isLinux;
   };
   phpUnwrapped = phpEmbedWithZts.unwrapped;
   phpConfig = "${phpUnwrapped.dev}/bin/php-config";
   pieBuild = stdenv.hostPlatform.isMusl;
 in buildGoModule rec {
   pname = "frankenphp";
-  version = "1.0.0-rc.4";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "dunglas";
     repo = "frankenphp";
     rev = "v${version}";
-    hash = "sha256-4jNCKHt4eYI1BNaonIdS1Eq2OnJwgrU6qWZoiSpeIYk=";
+    hash = "sha256-QgLCcZUDjeEdo8ijUXeubRkLI9DDlMctzHlGSjDCZoc=";
   };
 
   sourceRoot = "source/caddy";
@@ -36,6 +42,7 @@ in buildGoModule rec {
   vendorHash = "sha256-Lgj/pFtSQIgjrycajJ1zNY3ytvArmuk0E3IjsAzsNdM=";
 
   buildInputs = [ phpUnwrapped ] ++ phpUnwrapped.buildInputs;
+  nativeBuildInputs = [ makeBinaryWrapper ] ++ lib.optionals stdenv.isDarwin [ pkg-config darwin.cctools darwin.autoSignDarwinBinariesHook ];
 
   subPackages = [ "frankenphp" ];
 
@@ -52,7 +59,18 @@ in buildGoModule rec {
     export CGO_CFLAGS="$(${phpConfig} --includes)"
     export CGO_LDFLAGS="-DFRANKENPHP_VERSION=${version} \
       $(${phpConfig} --ldflags) \
-      -Wl,--start-group $(${phpConfig} --libs) -Wl,--end-group"
+      $(${phpConfig} --libs)"
+  '' + lib.optionalString stdenv.isDarwin ''
+    # replace hard-code homebrew path
+    substituteInPlace ../frankenphp.go \
+      --replace "-L/opt/homebrew/opt/libiconv/lib" "-L${darwin.libiconv}/lib"
+  '';
+
+  preFixup = ''
+    mkdir -p $out/lib
+    ln -s "${phpEmbedWithZts}/lib/php.ini" "$out/lib/php.ini"
+
+    wrapProgram $out/bin/frankenphp --set-default PHP_INI_SCAN_DIR $out/lib
   '';
 
   doCheck = false;
@@ -82,7 +100,7 @@ in buildGoModule rec {
     homepage = "https://github.com/dunglas/frankenphp";
     license = licenses.mit;
     mainProgram = "frankenphp";
-    maintainers = with maintainers; [ gaelreyrol ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ gaelreyrol shyim ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }