18 Aug 2024 |
| @genghiz:talk.go7box.xyz | 19:03:37 |
20 Aug 2024 |
| fsagbuya joined the room. | 08:58:03 |
fsagbuya | Hi. Is there a good way to extend a certain package with a php extension using buildComposerProject ? I managed to do that by making the following changes:
git diff pkgs/by-name/fl/flarum/package.nix
diff --git a/pkgs/by-name/fl/flarum/package.nix b/pkgs/by-name/fl/flarum/package.nix
index ee38394cd1a5..f37d7349bc06 100644
--- a/pkgs/by-name/fl/flarum/package.nix
+++ b/pkgs/by-name/fl/flarum/package.nix
@@ -14,9 +14,18 @@ php.buildComposerProject (finalAttrs: {
hash = "sha256-kigUZpiHTM24XSz33VQYdeulG1YI5s/M02V7xue72VM=";
};
+ postPatch = ''
+ substituteInPlace composer.json \
+ --replace '"flarum/core": "^1.8"' \
+ '"flarum/core": "^1.8",
+ "fof/polls": "*",
+ "fof/subscribed": "*",
+ "fof/upload": "*"'
+ '';
+
composerLock = ./composer.lock;
composerStrictValidation = false;
- vendorHash = "sha256-gQkjuatItw93JhI7FVfg5hYxkC1gsRQ3c2C2+MhI/Jg=";
+ vendorHash = "sha256-GUyBQ9uv6i99ICz4AaV1okmXdVF6TebBX6OQtUaXwJw=";
meta = with lib; {
changelog = "https://github.com/flarum/framework/blob/main/CHANGELOG.md";
However, I'm not sure if this is the proper way. Is there an extension management system for php packages similar to what's available for vscode ?
| 09:05:28 |
fsagbuya | * Hi. Is there a good way to extend a certain package with a php extension using buildComposerProject ? I managed to do that by making the following changes:
git diff pkgs/by-name/fl/flarum/package.nix
diff --git a/pkgs/by-name/fl/flarum/package.nix b/pkgs/by-name/fl/flarum/package.nix
index ee38394cd1a5..f37d7349bc06 100644
--- a/pkgs/by-name/fl/flarum/package.nix
+++ b/pkgs/by-name/fl/flarum/package.nix
@@ -14,9 +14,18 @@ php.buildComposerProject (finalAttrs: {
hash = "sha256-kigUZpiHTM24XSz33VQYdeulG1YI5s/M02V7xue72VM=";
};
+ postPatch = ''
+ substituteInPlace composer.json \
+ --replace '"flarum/core": "^1.8"' \
+ '"flarum/core": "^1.8",
+ "fof/polls": "*",
+ "fof/subscribed": "*",
+ "fof/upload": "*"'
+ '';
+
composerLock = ./composer.lock;
composerStrictValidation = false;
- vendorHash = "sha256-gQkjuatItw93JhI7FVfg5hYxkC1gsRQ3c2C2+MhI/Jg=";
+ vendorHash = "sha256-GUyBQ9uv6i99ICz4AaV1okmXdVF6TebBX6OQtUaXwJw=";
meta = with lib; {
changelog = "https://github.com/flarum/framework/blob/main/CHANGELOG.md";
However, I'm not sure if this is the proper way. Is there an extension management system for php packages similar to what's available for vscode ?
| 09:05:57 |
fsagbuya | * Hi. Is there a good way to extend a certain package with a php extension using buildComposerProject ? I managed to do that by making the following changes:
diff --git a/pkgs/by-name/fl/flarum/package.nix b/pkgs/by-name/fl/flarum/package.nix
index ee38394cd1a5..f37d7349bc06 100644
--- a/pkgs/by-name/fl/flarum/package.nix
+++ b/pkgs/by-name/fl/flarum/package.nix
@@ -14,9 +14,18 @@ php.buildComposerProject (finalAttrs: {
hash = "sha256-kigUZpiHTM24XSz33VQYdeulG1YI5s/M02V7xue72VM=";
};
+ postPatch = ''
+ substituteInPlace composer.json \
+ --replace '"flarum/core": "^1.8"' \
+ '"flarum/core": "^1.8",
+ "fof/polls": "*",
+ "fof/subscribed": "*",
+ "fof/upload": "*"'
+ '';
+
composerLock = ./composer.lock;
composerStrictValidation = false;
- vendorHash = "sha256-gQkjuatItw93JhI7FVfg5hYxkC1gsRQ3c2C2+MhI/Jg=";
+ vendorHash = "sha256-GUyBQ9uv6i99ICz4AaV1okmXdVF6TebBX6OQtUaXwJw=";
meta = with lib; {
changelog = "https://github.com/flarum/framework/blob/main/CHANGELOG.md";
However, I'm not sure if this is the proper way. Is there an extension management system for php packages similar to what's available for vscode ?
| 09:06:13 |
Pol | I think this is the way to go. Either that or a .patch . | 09:14:53 |
Pol | Isn't this supposed to be fixed upstream? | 09:15:20 |
fsagbuya | The upstream package is only the base installation; however, these are good extensions to add for the Flarum package, and that is how we used it. I only added this in my local nixpkgs because some users may not want to enable it. I can push these packages if it's alright. Although, I'm thinking there might be a way to make this optional. | 09:19:34 |
fsagbuya | In reply to @drupol:matrix.org I think this is the way to go. Either that or a .patch . an optional .patch is a good idea too | 09:22:51 |
Pol | composer doesn't have, like python, a way to compose groups of dependencies. | 09:41:45 |
Pol | So I guess using a patch is the way to go. | 09:41:53 |
Pol | I think the buildComposerProject2 will help this. | 09:42:06 |
Pol | https://github.com/NixOS/nixpkgs/pull/308059 | 09:42:39 |
fsagbuya | In reply to @drupol:matrix.org So I guess using a patch is the way to go. Will try to add an optional patch upstream for the meantime until the buildComposerProject2 is merged. Thanks! | 09:46:18 |
Pol | especially this: https://github.com/NixOS/nixpkgs/pull/308059/files#diff-bead697169711cba8bf1ffc5a302d4dbe3f7d72513c9043cd431aba2c885885bR41 | 09:47:25 |
piotrkwiecinski | I reckon we should merge https://github.com/NixOS/nixpkgs/pull/308059 | 14:13:32 |
piotrkwiecinski | and start using it in the wild | 14:13:42 |
piotrkwiecinski | we can always improve it in the future | 14:14:20 |
Pol | Done :) | 16:40:21 |
Pol | Champagne! | 16:43:03 |
Pol | You're motivated piotrkwiecinski ! | 17:53:13 |
Pol | You were waiting that new builder since quite a while | 17:53:30 |
piotrkwiecinski | I'll migrate a couple more tomorrow. I have a boring 1h meeting. I'll kill 2 birds with 1 stone | 17:54:55 |
Pol | Okay :) | 17:55:09 |
piotrkwiecinski | I'm slowly fixing php builds | 17:55:44 |
piotrkwiecinski | 68 pass, 40 to go | 17:55:59 |
Pol | Thank you once again!!! | 18:05:10 |
Pol | piotrkwiecinski: Looks like the issue is in the autoloader generation in Composer... | 21:32:05 |
Pol |  Download image.png | 21:32:10 |
21 Aug 2024 |
fsagbuya | In reply to @drupol:matrix.org Done :) Cheers! Will try this soon to replace the changes in this PR: https://github.com/NixOS/nixpkgs/pull/336044, likely when it's already available in the unstable branch. | 02:19:50 |