pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / servers / photofield / default.nix
blob0858765f8caf4acd94d9129f5bd58fba0cd2d610
1 { lib
2 , fetchFromGitHub
3 , buildGo122Module
4 , buildNpmPackage
5 , makeWrapper
6 , exiftool
7 , ffmpeg
8 , testers
9 , photofield
10 , nix-update-script
13 let
14   version = "0.17.0";
16   src = fetchFromGitHub {
17     owner = "SmilyOrg";
18     repo = "photofield";
19     rev = "refs/tags/v${version}";
20     hash = "sha256-GYU0BR5X3s3SGmZEFMyK7m+zUa2i2E9krAbtk8dwPdg=";
21   };
23   webui = buildNpmPackage {
24     inherit src version;
25     pname = "photofield-ui";
27     sourceRoot = "${src.name}/ui";
29     npmDepsHash = "sha256-ULl4wHEo/PP0Y0O5po7eRDd+T/UjkZhQGIj262WFtFU=";
31     installPhase = ''
32       mkdir -p $out/share
33       mv dist $out/share/photofield-ui
34     '';
35   };
38 buildGo122Module {
39   pname = "photofield";
40   inherit version src;
42   vendorHash = "sha256-eN9syG9/QUA8yut3LaeIb+xlaNUvRAFspyqcCHv6oSA=";
44   preBuild = ''
45     cp -r ${webui}/share/photofield-ui ui/dist
46   '';
48   ldflags = [
49     "-s"
50     "-w"
51     "-X main.version=${version}"
52     "-X main.builtBy=Nix"
53   ];
55   tags = [ "embedui" ];
57   doCheck = false; # tries to modify filesytem
59   nativeBuildInputs = [ makeWrapper ];
61   postInstall = ''
62     wrapProgram $out/bin/photofield \
63       --prefix PATH : "${lib.makeBinPath [exiftool ffmpeg]}"
64   '';
66   passthru = {
67     updateScript = nix-update-script { };
68     tests.version = testers.testVersion {
69       package = photofield;
70       command = "photofield -version";
71     };
72   };
74   meta = with lib; {
75     description = "Experimental fast photo viewer";
76     homepage = "https://github.com/SmilyOrg/photofield";
77     license = licenses.mit;
78     mainProgram = "photofield";
79     maintainers = with maintainers; [ dit7ya ];
80   };