!jngDrdMgndWibPCYsR:nixos.org

Nix PHP

74 Members
A room for PHP developers running on Nix21 Servers

Load older messages


SenderMessageTime
17 Mar 2024
@patka_123:matrix.org@patka_123:matrix.org
-  engelsystem = callPackage ../servers/web-apps/engelsystem { php = php81; };
+  engelsystem = callPackage ../servers/web-apps/engelsystem { };
Just for my understanding. Providing the php version outside of the package itself is a historical thing? I find it a bit strange to not just pick the correct version in the package?
11:05:32
@patka_123:matrix.org@patka_123:matrix.org I mean the callPackage with the provided php version. Instead of just getting php82 as an input to the package itself 11:07:01
@tgerbet:matrix.orgtgerbet

Not really, it is still the "usual" approach when it is expected that most of the packages will work fine with the default values (or will at some point in the future)

But yes both work

11:18:33
@patka_123:matrix.org@patka_123:matrix.org Makes sense, thanks! 11:19:47
@patka_123:matrix.org@patka_123:matrix.org https://github.com/NixOS/nixpkgs/pull/296617 11:28:22
@patka_123:matrix.org@patka_123:matrix.org (in the end I ended up with just copying what tgerbet created because that was a nicer way of solving it than what I had) 11:29:14
@patka_123:matrix.org@patka_123:matrix.orgI wonder if I should package Laravel adjacent (ish) stuff like laravel-zero and phpinsights. I personally will not use them, but it's also very little effort to maintain them. Other people do use these tools12:35:06
@drupol:matrix.orgPolIt's fine to package them for sure. Even if I don't use these tools and even if I don't like the Laravel philosophy.12:38:11
@patka_123:matrix.org@patka_123:matrix.orgI even actively discourage people to use it. But it is what it is. Normally packaging stuff that you don't use yourself is kinda discouraged. But I don't mind maintaining it, and dont see myself leaving12:43:20
@patka_123:matrix.org@patka_123:matrix.orgBut hexa is going to tell me differently :p12:43:43
@hexa:lossy.networkhexahah 😄 12:48:09
@hexa:lossy.networkhexathanks for digging into it12:48:14
@hexa:lossy.networkhexaI kinda disagree with using all-packages.nix for overrides most of the time, because stale overrides often get missed12:48:55
@hexa:lossy.networkhexathe file is too unwieldy for anyone to quickly want to check12:49:20
@tgerbet:matrix.orgtgerbetYep12:51:40
@hexa:lossy.networkhexawhat surprises me is that the derivation and module both construct their own php instance12:51:46
@patka_123:matrix.org@patka_123:matrix.org

That was my initial thought seeing it for the first time. But also can get behind the override reason from the docs @tgerbet shared earlier

12:52:12
@hexa:lossy.networkhexa
diff --git a/nixos/modules/services/web-apps/engelsystem.nix b/nixos/modules/services/web-apps/engelsystem.nix
index 669620debce5..343f2e1b7dc1 100644
--- a/nixos/modules/services/web-apps/engelsystem.nix
+++ b/nixos/modules/services/web-apps/engelsystem.nix
@@ -99,7 +99,11 @@ in {
       '';
 
     services.phpfpm.pools.engelsystem = {
-      phpPackage = pkgs.php81;
+      phpPackage = pkgs.php82.buildEnv {
+        extraConfig = ''
+          session.gc_maxlifetime = 604800
+        '';
+      };
       user = "engelsystem";
       settings = {
         "listen.owner" = config.services.nginx.user;
diff --git a/pkgs/servers/web-apps/engelsystem/default.nix b/pkgs/servers/web-apps/engelsystem/default.nix
index 53a33195f610..762b42391dd5 100644
--- a/pkgs/servers/web-apps/engelsystem/default.nix
+++ b/pkgs/servers/web-apps/engelsystem/default.nix
@@ -1,9 +1,10 @@
-{ lib, stdenv, fetchzip, php, writeText, nixosTests }:
+{ lib
+, stdenv
+, fetchzip
+, php82
+, nixosTests
+}:
 
-let
-  phpExt = php.withExtensions
-    ({ enabled, all }: with all; [ filter mysqlnd mysqli pdo pdo_mysql ]);
-in
 stdenv.mkDerivation rec {
   pname = "engelsystem";
   version = "3.5.0";
@@ -13,7 +14,7 @@ stdenv.mkDerivation rec {
     hash = "sha256-RbzAHBZN02u14WaLtq5EOh4XwIdHKvzX7NhDBhn/CaU=";
   };
 
-  buildInputs = [ phpExt ];
+  buildInputs = [ php82 ];
 
   installPhase = ''
     runHook preInstall
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
 
     echo $(command -v php)
     # The patchShebangAuto function always used the php without extensions, so path the shebang manually
-    sed -i -e "1 s|.*|#\!${phpExt}/bin/php|" "$out/share/engelsystem/bin/migrate"
+    sed -i -e "1 s|.*|#\!${lib.getExe php82}|" "$out/share/engelsystem/bin/migrate"
     ln -s "$out/share/engelsystem/bin/migrate" "$out/bin/migrate"
 
     runHook postInstall
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3a906641326c..b7e8a9d81ca9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -25999,7 +25999,7 @@ with pkgs;
 
   dspam = callPackage ../servers/mail/dspam { };
 
-  engelsystem = callPackage ../servers/web-apps/engelsystem { php = php81; };
+  engelsystem = callPackage ../servers/web-apps/engelsystem { };
 
   envoy = callPackage ../servers/http/envoy {
     go = go_1_20;
12:52:19
@hexa:lossy.networkhexathis was that I tried myself12:52:24
@hexa:lossy.networkhexa

kinda because php82 is

let
  base = callPackage ./generic.nix (_args // {
    version = "8.2.17";
    hash = "sha256-GRMWwgMmfZYWC0fSL5VdTcEXk96KXzJ+DCp2J1polOo=";
  });
in
base.withExtensions ({ all, ... }: with all; ([
12:53:01
@hexa:lossy.networkhexaso it does include all extensions already?12:53:12
@hexa:lossy.networkhexa * so it does include alot extensions already?12:53:21
@hexa:lossy.networkhexa * so it does include alot of extensions already?12:53:25
@hexa:lossy.networkhexatrimming it down was an afterthought really12:53:38
@hexa:lossy.networkhexadid I understand that wrong?12:54:01
@hexa:lossy.networkhexaok, I am stupid … my local staged changes do actually work.12:55:09
@tgerbet:matrix.orgtgerbetThey are not all enabled but yes12:55:25
@tgerbet:matrix.orgtgerbetHum in this case it should work out of box12:56:10
@hexa:lossy.networkhexa and instead of constructing it twice, wouldn't it be better to expose and reuse it as engelsystem.php 12:56:22
@patka_123:matrix.org@patka_123:matrix.org
In reply to @hexa:lossy.network
ok, I am stupid … my local staged changes do actually work.

No, not stupid, smart. Because now I had the opportunity to learn a few things I hadn't seen before ^^

It was for the greater good

12:56:41

Show newer messages


Back to Room ListRoom Version: 6