blast: fix and enable strictDeps (#366620)
[NixPkgs.git] / pkgs / by-name / fi / firefly-iii / package.nix
blob22b3b9447dde7852e871af2e98e6a6acb43d1e8a
2   lib,
3   fetchFromGitHub,
4   stdenvNoCC,
5   nodejs,
6   fetchNpmDeps,
7   buildPackages,
8   php83,
9   nixosTests,
10   nix-update-script,
11   dataDir ? "/var/lib/firefly-iii",
14 stdenvNoCC.mkDerivation (finalAttrs: {
15   pname = "firefly-iii";
16   version = "6.1.25";
18   src = fetchFromGitHub {
19     owner = "firefly-iii";
20     repo = "firefly-iii";
21     rev = "v${finalAttrs.version}";
22     hash = "sha256-6DZwTk67bKvgB+Zf7aPakrWWYCAjkYggrRiaFKgsMkk=";
23   };
25   buildInputs = [ php83 ];
27   nativeBuildInputs = [
28     nodejs
29     nodejs.python
30     buildPackages.npmHooks.npmConfigHook
31     php83.composerHooks.composerInstallHook
32     php83.packages.composer-local-repo-plugin
33   ];
35   composerNoDev = true;
36   composerNoPlugins = true;
37   composerNoScripts = true;
38   composerStrictValidation = true;
39   strictDeps = true;
41   vendorHash = "sha256-5uUjb5EPcoEBuFbWGb1EIC/U/VaSUsRp09S9COIx25E=";
43   npmDeps = fetchNpmDeps {
44     inherit (finalAttrs) src;
45     name = "${finalAttrs.pname}-npm-deps";
46     hash = "sha256-j49iltvW7xGOCV+FIB4f+ECfQo50U+wTugyaK9JGN3A=";
47   };
49   composerRepository = php83.mkComposerRepository {
50     inherit (finalAttrs)
51       pname
52       src
53       vendorHash
54       version
55       ;
56     composerNoDev = true;
57     composerNoPlugins = true;
58     composerNoScripts = true;
59     composerStrictValidation = true;
60   };
62   preInstall = ''
63     npm run prod --workspace=v1
64     npm run build --workspace=v2
65   '';
67   passthru = {
68     phpPackage = php83;
69     tests = nixosTests.firefly-iii;
70     updateScript = nix-update-script { };
71   };
73   postInstall = ''
74     mv $out/share/php/firefly-iii/* $out/
75     rm -R $out/share $out/storage $out/bootstrap/cache $out/node_modules
76     ln -s ${dataDir}/storage $out/storage
77     ln -s ${dataDir}/cache $out/bootstrap/cache
78   '';
80   meta = {
81     changelog = "https://github.com/firefly-iii/firefly-iii/releases/tag/v${finalAttrs.version}";
82     description = "Firefly III: a personal finances manager";
83     homepage = "https://github.com/firefly-iii/firefly-iii";
84     license = lib.licenses.agpl3Only;
85     maintainers = [
86       lib.maintainers.savyajha
87       lib.maintainers.patrickdag
88     ];
89     hydraPlatforms = lib.platforms.linux; # build hangs on both Darwin platforms, needs investigation
90   };