| 12 Mar 2022 |
Pol | Sorry about the confusion | 22:40:04 |
ramsey | No worries | 22:40:44 |
Pol | Going to turn off the lights here, I'll continue tomorrow | 22:42:11 |
Pol | It's midnight, I need some sleep | 22:42:25 |
ramsey | Good night! | 22:56:37 |
ramsey | So, using php80Extensions.xdebug doesn't automatically add Xdebug to the php.ini file. How would I configure that in default.nix? | 23:01:44 |
ramsey | I honestly have no idea what I'm doing 😆 | 23:13:55 |
ramsey | this hasn't really helped me get set up: https://nixos.org/manual/nixpkgs/stable/#sec-php | 23:14:49 |
ramsey | 'cause clearly this is wrong:
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/bacbfd713b4781a4a82c1f390f8fe21ae3b8b95b.tar.gz") {} }:
php.buildEnv {
extensions = { all, ... }: with all; [ xdebug ];
}
| 23:15:35 |
ramsey | (my default.nix) | 23:15:49 |
Jan Tojnar | In reply to @ramsey:matrix.org
'cause clearly this is wrong:
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/bacbfd713b4781a4a82c1f390f8fe21ae3b8b95b.tar.gz") {} }:
php.buildEnv {
extensions = { all, ... }: with all; [ xdebug ];
}
that should work (though you will also want to keep the enabled) | 23:34:23 |
ramsey | it tells me that it doesn't recognize php as a variable name | 23:34:57 |
Jan Tojnar | oh, right, you need to use pkgs.php | 23:35:20 |
Jan Tojnar | In Nix, like in most programming languages, only variables that are explicitly introduced into scope are available to use | 23:36:06 |
ramsey | I don't know how to include pkgs.php | 23:36:28 |
Jan Tojnar | it should be available inside the function body (since the function takes pkgs as an argument) | 23:37:12 |
Jan Tojnar | * pkgs should be available inside the function body (since the function takes pkgs as an argument) | 23:37:21 |
ramsey | this tutorial doesn't give me any indication of how to include packages: https://nixos.org/guides/dev-environment.html | 23:37:26 |
ramsey | and reading about it here doesn't show me how to add it to my default.nix file: https://search.nixos.org/packages?channel=21.11&show=php&from=0&size=50&sort=relevance&type=packages&query=php | 23:38:00 |
Jan Tojnar | you can do something like:
let
pkgs = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/bacbfd713b4781a4a82c1f390f8fe21ae3b8b95b.tar.gz") {};
in
pkgs.php.buildEnv {
extensions = { all, enabled ... }: enabled ++ (with all; [ xdebug ]);
}
| 23:39:09 |
ramsey | how am I supposed to know that? Is that in a tutorial that I'm missing? | 23:39:44 |
Jan Tojnar | the guide relies on the fact that when default.nix contains a function, nix-shell and nix-build will automatically call it (and since you do not pass the pkgs argument, the default value after the question mark will be used) | 23:40:39 |
Jan Tojnar | many of these guides are too “monkey see, monkey do” but unfortunately, the other alternative is learning Nix syntax and semantics first and then the same for Nixpkgs, which is a very long road | 23:43:50 |
Jan Tojnar | * many of these guides are too “monkey see, monkey do” for my taste. But unfortunately, the other alternative is learning Nix syntax and semantics first and then the same for Nixpkgs, which is a very long road | 23:44:56 |
ramsey | Right. Unfortunately, for me this monkey needs to see more so that I can do more 😉 | 23:45:16 |
Jan Tojnar | I would recommend getting intimately familiar with the syntax section of Nix manual https://nixos.org/manual/nix/stable/expressions/writing-nix-expressions.html | 23:46:26 |
Jan Tojnar | and then either ask about the stuff that is unclear in the guides, or assume it is not important for the task if it is not explained | 23:48:03 |
ramsey | k | 23:48:19 |
Jan Tojnar | In reply to @ramsey:matrix.org So, nix builds its own Phar instead of using the one provided by the maintainers. Interesting. I don't see how this is really relevant in PHP's case, since it's not packaging a binary for the target system. building from source is not just about portability (which is indeed less of an issue with text-based languages like PHP), the primary concern is that the PHAR is opaque, so it is hard to solve issues with it (e.g. apply patches) | 23:52:24 |
ramsey | good point... it can also be environment-specific | 23:53:06 |