mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-08-26 02:05:02 +00:00
kimai: fix bundled assets missing
We were relying on `composerNoScripts = false` to make sure post-install command `assets:install` is run. `assets:install` copies assets from `vendor/` directory into `public/` directory, placing it in appropriate places. However, with commit80bb9aec24("kimai: switch to buildComposerProject2 and tag"), we switched to `buildComposerProject2` which has moved `composer install` step to `composerVendor` derivation. By design, `composerVendor` ignores anything that happens outside `vendor/`, so the assets was not copied into final derivation. So stop relying on `composerNoScripts = false` and run `assets:install` ourselves in `postInstall` step. A side effect of this is that there is another post-install step being skipped (`cache:clear`). However we simply handle caches outside of the derivation (it's handled in the module), so that's not a problem. Fixes: https://github.com/NixOS/nixpkgs/issues/442208 (cherry picked from commit1422ed8801)
This commit is contained in:
committed by
github-actions[bot]
parent
7e297ddff4
commit
5b3a0db487
@@ -17,5 +17,8 @@
|
||||
machine.wait_for_unit("nginx.service")
|
||||
machine.wait_for_open_port(80)
|
||||
machine.succeed("curl -v --location --fail http://localhost/")
|
||||
# Make sure bundled assets are served.
|
||||
# https://github.com/NixOS/nixpkgs/issues/442208
|
||||
machine.succeed("curl -v --location --fail http://localhost/bundles/tabler/tabler.css")
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -41,13 +41,16 @@ php.buildComposerProject2 (finalAttrs: {
|
||||
vendorHash = "sha256-smDAz4RnVEgPcGjsQmN0NC8kWgLw78YFuef9gbajAeQ=";
|
||||
|
||||
composerNoPlugins = false;
|
||||
composerNoScripts = false;
|
||||
|
||||
postInstall = ''
|
||||
# Make available the console utility, as Kimai doesn't list this in
|
||||
# composer.json.
|
||||
mkdir -p "$out"/share/php/kimai "$out"/bin
|
||||
ln -s "$out"/share/php/kimai/bin/console "$out"/bin/console
|
||||
|
||||
# Install bundled assets. This is normally done in the `composer install`
|
||||
# post-install script, but it's being skipped.
|
||||
(cd "$out"/share/php/kimai && php ./bin/console assets:install)
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
|
||||
Reference in New Issue
Block a user