chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / lo / loupe / package.nix
blob19b3d5b48614436586c87f5b608c920a4c07d4f8
1 { stdenv
2 , lib
3 , fetchurl
4 , cargo
5 , desktop-file-utils
6 , itstool
7 , meson
8 , ninja
9 , pkg-config
10 , jq
11 , moreutils
12 , rustc
13 , wrapGAppsHook4
14 , gtk4
15 , lcms2
16 , libadwaita
17 , libgweather
18 , libseccomp
19 , glycin-loaders
20 , gnome
23 stdenv.mkDerivation (finalAttrs: {
24   pname = "loupe";
25   version = "46.2";
27   src = fetchurl {
28     url = "mirror://gnome/sources/loupe/${lib.versions.major finalAttrs.version}/loupe-${finalAttrs.version}.tar.xz";
29     hash = "sha256-OhWj+c+PiJp+ZC45AimfeSGKkAHAjFY3TgWRT/71qzA=";
30   };
32   patches = [
33     # Fix paths in glycin library
34     glycin-loaders.passthru.glycinPathsPatch
35   ];
37   nativeBuildInputs = [
38     cargo
39     desktop-file-utils
40     itstool
41     meson
42     ninja
43     pkg-config
44     jq
45     moreutils
46     rustc
47     wrapGAppsHook4
48   ];
50   buildInputs = [
51     gtk4
52     lcms2
53     libadwaita
54     libgweather
55     libseccomp
56   ];
58   postPatch = ''
59     # Replace hash of file we patch in vendored glycin.
60     jq \
61       --arg hash "$(sha256sum vendor/glycin/src/sandbox.rs | cut -d' ' -f 1)" \
62       '.files."src/sandbox.rs" = $hash' \
63       vendor/glycin/.cargo-checksum.json \
64       | sponge vendor/glycin/.cargo-checksum.json
65   '';
67   preFixup = ''
68     # Needed for the glycin crate to find loaders.
69     # https://gitlab.gnome.org/sophie-h/glycin/-/blob/0.1.beta.2/glycin/src/config.rs#L44
70     gappsWrapperArgs+=(
71       --prefix XDG_DATA_DIRS : "${glycin-loaders}/share"
72     )
73   '';
75   passthru.updateScript = gnome.updateScript {
76     packageName = "loupe";
77   };
79   meta = with lib; {
80     homepage = "https://gitlab.gnome.org/GNOME/loupe";
81     changelog = "https://gitlab.gnome.org/GNOME/loupe/-/blob/${finalAttrs.version}/NEWS?ref_type=tags";
82     description = "Simple image viewer application written with GTK4 and Rust";
83     license = licenses.gpl3Plus;
84     maintainers = with maintainers; [ jk ] ++ teams.gnome.members;
85     platforms = platforms.unix;
86     mainProgram = "loupe";
87   };