biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / servers / photofield / default.nix
blob3c9cf8245022a15e64476949e8457707519ae628
1 { lib
2 , fetchFromGitHub
3 , fetchpatch
4 , buildGoModule
5 , buildNpmPackage
6 , makeWrapper
7 , exiftool
8 , ffmpeg
9 , testers
10 , photofield
13 let
14   version = "0.13.0";
16   src = fetchFromGitHub {
17     owner = "SmilyOrg";
18     repo = "photofield";
19     rev = "refs/tags/v${version}";
20     hash = "sha256-6pJvOn3sN6zfjt2dVZ/xH6pSXM0WgbG7au9tSVUGYys=";
21   };
23   webui = buildNpmPackage {
24     inherit src version;
25     pname = "photofield-ui";
27     sourceRoot = "${src.name}/ui";
29     npmDepsHash = "sha256-trKcNuhRdiabFKMafOLtPg8x1bQHLOif6Hm4k5bTAYc=";
31     installPhase = ''
32       mkdir -p $out/share
33       mv dist $out/share/photofield-ui
34     '';
35   };
38 buildGoModule {
39   pname = "photofield";
40   inherit version src;
42   patches = [
43     # Needed for Go 1.22 build support
44     (fetchpatch {
45       name = "upgrade-pyroscope-go.patch";
46       url = "https://github.com/SmilyOrg/photofield/commit/681dcd48ab4113b0e99fe1a0d3638f0dfe985c05.patch";
47       hash = "sha256-JGb5KAI/SmR1kiiaPoSsAF7G4YWDFXj0K3Gjw0zA3Ro=";
48     })
49   ];
51   vendorHash = "sha256-BnImE4wK2MDO21N5tT9Q9w+NkDpdBCEqUwzuH/xb6fg=";
53   preBuild = ''
54     cp -r ${webui}/share/photofield-ui ui/dist
55   '';
57   ldflags = [
58     "-s"
59     "-w"
60     "-X main.version=${version}"
61     "-X main.builtBy=Nix"
62   ];
64   tags = [ "embedui" ];
66   doCheck = false; # tries to modify filesytem
68   nativeBuildInputs = [ makeWrapper ];
70   postInstall = ''
71     wrapProgram $out/bin/photofield \
72       --prefix PATH : "${lib.makeBinPath [exiftool ffmpeg]}"
73   '';
75   passthru.tests.version = testers.testVersion {
76     package = photofield;
77     command = "photofield -version";
78   };
80   meta = with lib; {
81     description = "Experimental fast photo viewer";
82     homepage = "https://github.com/SmilyOrg/photofield";
83     license = licenses.mit;
84     mainProgram = "photofield";
85     maintainers = with maintainers; [ dit7ya ];
86   };