silx: 2.1.1 -> 2.1.2 (#361612)
[NixPkgs.git] / pkgs / by-name / gl / glycin-loaders / package.nix
blob80ea584a6389f358cd9b149c1a812c0e3be1698c
1 { stdenv
2 , lib
3 , fetchurl
4 , substituteAll
5 , bubblewrap
6 , cairo
7 , cargo
8 , git
9 , gnome
10 , gtk4
11 , lcms2
12 , libheif
13 , libjxl
14 , librsvg
15 , libseccomp
16 , libxml2
17 , meson
18 , ninja
19 , pkg-config
20 , rustc
21 , rustPlatform
24 stdenv.mkDerivation (finalAttrs: {
25   pname = "glycin-loaders";
26   version = "1.1.1";
28   src = fetchurl {
29     url = "mirror://gnome/sources/glycin/${lib.versions.majorMinor finalAttrs.version}/glycin-${finalAttrs.version}.tar.xz";
30     hash = "sha256-Vg7kIWfB7SKCZhjmHYPkkUDbW/R6Zam6js4s1z0qSqg=";
31   };
33   patches = [
34     # Fix paths in glycin library.
35     # Not actually needed for this package since we are only building loaders
36     # and this patch is relevant just to apps that use the loaders
37     # but apply it here to ensure the patch continues to apply.
38     finalAttrs.passthru.glycinPathsPatch
39   ];
41   nativeBuildInputs = [
42     cargo
43     git
44     meson
45     ninja
46     pkg-config
47     rustc
48     rustPlatform.bindgenHook # for libheif-sys
49   ];
51   buildInputs = [
52     gtk4 # for GdkTexture
53     cairo
54     lcms2
55     libheif
56     libxml2 # for librsvg crate
57     librsvg
58     libseccomp
59     libjxl
60   ];
62   mesonFlags = [
63     "-Dglycin-loaders=true"
64     "-Dlibglycin=false"
65     "-Dvapi=false"
66   ];
68   passthru = {
69     updateScript = gnome.updateScript {
70       attrPath = "glycin-loaders";
71       packageName = "glycin";
72     };
74     glycinPathsPatch = substituteAll {
75       src = ./fix-glycin-paths.patch;
76       bwrap = "${bubblewrap}/bin/bwrap";
77     };
78   };
80   meta = with lib; {
81     description = "Glycin loaders for several formats";
82     homepage = "https://gitlab.gnome.org/sophie-h/glycin";
83     maintainers = teams.gnome.members;
84     license = with licenses; [ mpl20 /* or */ lgpl21Plus ];
85     platforms = platforms.linux;
86   };