nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 141 lines 3.0 kB view raw
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})