Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / fi / firefly-iii / package.nix
blob5425fd2da0847b9ac7bd4a0e4811a32c2eb42357
1 { lib
2 , fetchFromGitHub
3 , stdenvNoCC
4 , nodejs
5 , fetchNpmDeps
6 , buildPackages
7 , php83
8 , nixosTests
9 , nix-update-script
10 , dataDir ? "/var/lib/firefly-iii"
13 let
14   pname = "firefly-iii";
15   version = "6.1.19";
16   phpPackage = php83;
17   npmDepsHash = "sha256-/oz0raI0/AV5NamvMWxlUdiQbVsSKHRplsw2/KrMOwg=";
19   src = fetchFromGitHub {
20     owner = "firefly-iii";
21     repo = "firefly-iii";
22     rev = "v${version}";
23     hash = "sha256-SIvYRmCCzQI+qUr5aA78NQLLmO+EPO1ZEL7vcqJ5puw=";
24   };
27 stdenvNoCC.mkDerivation (finalAttrs: {
28   inherit pname src version;
30   buildInputs = [ phpPackage ];
32   nativeBuildInputs = [
33     nodejs
34     nodejs.python
35     buildPackages.npmHooks.npmConfigHook
36     phpPackage.composerHooks.composerInstallHook
37     phpPackage.packages.composer-local-repo-plugin
38   ];
40   composerNoDev = true;
41   composerNoPlugins = true;
42   composerNoScripts = true;
43   composerStrictValidation = true;
44   strictDeps = true;
46   vendorHash = "sha256-qps/dWubCVqqvzgSizJJvx2MUzRZKiMeQCnWz08Ft+E=";
48   npmDeps = fetchNpmDeps {
49     inherit src;
50     name = "${pname}-npm-deps";
51     hash = npmDepsHash;
52   };
54   composerRepository = phpPackage.mkComposerRepository {
55     inherit (finalAttrs)
56       pname
57       src
58       vendorHash
59       version
60       ;
61     composerNoDev = true;
62     composerNoPlugins = true;
63     composerNoScripts = true;
64     composerStrictValidation = true;
65   };
67   preInstall = ''
68     npm run prod --workspace=v1
69     npm run build --workspace=v2
70   '';
72   passthru = {
73     inherit phpPackage;
74     tests = nixosTests.firefly-iii;
75     updateScript = nix-update-script { };
76   };
78   postInstall = ''
79     mv $out/share/php/${pname}/* $out/
80     rm -R $out/share $out/storage $out/bootstrap/cache $out/node_modules
81     ln -s ${dataDir}/storage $out/storage
82     ln -s ${dataDir}/cache $out/bootstrap/cache
83   '';
85   meta = {
86     changelog = "https://github.com/firefly-iii/firefly-iii/releases/tag/v${version}";
87     description = "Firefly III: a personal finances manager";
88     homepage = "https://github.com/firefly-iii/firefly-iii";
89     license = lib.licenses.agpl3Only;
90     maintainers = [ lib.maintainers.savyajha lib.maintainers.patrickdag ];
91   };