!jngDrdMgndWibPCYsR:nixos.org

Nix PHP

72 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 (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
@hexa:lossy.networkhexayou're welcome12:56:59
@patka_123:matrix.org@patka_123:matrix.org(Feel free to change my PR or comment on it, I don't mind. But I will get to it tomorrow because I'm not close to a pc)12:57:42
@tgerbet:matrix.orgtgerbet Yes we probably should expose something like this for things that are built with buildComposerProject
Looking the phpfpm services declared in nixos/ they would all benefit from it
12:58:37
@hexa:lossy.networkhexaI think making it work and making it pretty can be a two step process12:58:43
@hexa:lossy.networkhexayeah, it is the wild, wild west12:59:15

Show newer messages


Back to Room ListRoom Version: 6