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