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