ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / eo / eog / package.nix
blob527b8a6d72cded7f505877398471d17acfd1bdc2
1 { lib
2 , stdenv
3 , fetchurl
4 , meson
5 , ninja
6 , gettext
7 , itstool
8 , pkg-config
9 , libxml2
10 , libjpeg
11 , libpeas
12 , libportal-gtk3
13 , gnome
14 , gtk3
15 , libhandy
16 , glib
17 , gsettings-desktop-schemas
18 , gnome-desktop
19 , lcms2
20 , gdk-pixbuf
21 , exempi
22 , shared-mime-info
23 , wrapGAppsHook3
24 , libjxl
25 , librsvg
26 , webp-pixbuf-loader
27 , libheif
28 , libexif
29 , gobject-introspection
30 , gi-docgen
33 stdenv.mkDerivation rec {
34   pname = "eog";
35   version = "47.0";
37   outputs = [ "out" "dev" "devdoc" ];
39   src = fetchurl {
40     url = "mirror://gnome/sources/eog/${lib.versions.major version}/eog-${version}.tar.xz";
41     hash = "sha256-217b9SJNdRJqe32O5OknKi8wqVMzHVuvbT88DODL3mY=";
42   };
44   patches = [
45     # Fix path to libeog.so in the gir file.
46     # We patch gobject-introspection to hardcode absolute paths but
47     # our Meson patch will only pass the info when install_dir is absolute as well.
48     ./fix-gir-lib-path.patch
49   ];
51   nativeBuildInputs = [
52     meson
53     ninja
54     pkg-config
55     gettext
56     itstool
57     wrapGAppsHook3
58     libxml2 # for xmllint for xml-stripblanks
59     gobject-introspection
60     gi-docgen
61   ];
63   buildInputs = [
64     libjpeg
65     libportal-gtk3
66     gtk3
67     libhandy
68     gdk-pixbuf
69     glib
70     libpeas
71     librsvg
72     lcms2
73     gnome-desktop
74     libexif
75     exempi
76     gsettings-desktop-schemas
77     shared-mime-info
78   ];
80   mesonFlags = [
81     "-Dgtk_doc=true"
82   ];
84   postInstall = ''
85     # Pull in WebP and JXL support for gnome-backgrounds.
86     # In postInstall to run before gappsWrapperArgsHook.
87     export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
88       extraLoaders = [
89         libjxl
90         librsvg
91         webp-pixbuf-loader
92         libheif.out
93       ];
94     }}"
95   '';
97   preFixup = ''
98     gappsWrapperArgs+=(
99       # Thumbnailers
100       --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
101       --prefix XDG_DATA_DIRS : "${libjxl}/share"
102       --prefix XDG_DATA_DIRS : "${librsvg}/share"
103       --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
104     )
105   '';
107   postFixup = ''
108     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
109     moveToOutput "share/doc" "$devdoc"
110   '';
112   passthru = {
113     updateScript = gnome.updateScript {
114       packageName = "eog";
115     };
116   };
118   meta = with lib; {
119     description = "GNOME image viewer";
120     homepage = "https://gitlab.gnome.org/GNOME/eog";
121     changelog = "https://gitlab.gnome.org/GNOME/eog/-/blob/${version}/NEWS?ref_type=tags";
122     license = licenses.gpl2Plus;
123     maintainers = teams.gnome.members;
124     platforms = platforms.unix;
125     mainProgram = "eog";
126   };