depot/third_party/nixpkgs/pkgs/by-name/eo/eog/package.nix

134 lines
2.6 KiB
Nix

{
lib,
stdenv,
fetchurl,
meson,
ninja,
gettext,
itstool,
pkg-config,
libxml2,
libjpeg,
libpeas,
libportal-gtk3,
gnome,
gtk3,
libhandy,
glib,
gsettings-desktop-schemas,
gnome-desktop,
lcms2,
gdk-pixbuf,
exempi,
shared-mime-info,
wrapGAppsHook3,
libjxl,
librsvg,
webp-pixbuf-loader,
libheif,
libexif,
gobject-introspection,
gi-docgen,
}:
stdenv.mkDerivation rec {
pname = "eog";
version = "47.0";
outputs = [
"out"
"dev"
"devdoc"
];
src = fetchurl {
url = "mirror://gnome/sources/eog/${lib.versions.major version}/eog-${version}.tar.xz";
hash = "sha256-217b9SJNdRJqe32O5OknKi8wqVMzHVuvbT88DODL3mY=";
};
patches = [
# Fix path to libeog.so in the gir file.
# We patch gobject-introspection to hardcode absolute paths but
# our Meson patch will only pass the info when install_dir is absolute as well.
./fix-gir-lib-path.patch
];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
itstool
wrapGAppsHook3
libxml2 # for xmllint for xml-stripblanks
gobject-introspection
gi-docgen
];
buildInputs = [
libjpeg
libportal-gtk3
gtk3
libhandy
gdk-pixbuf
glib
libpeas
librsvg
lcms2
gnome-desktop
libexif
exempi
gsettings-desktop-schemas
shared-mime-info
];
mesonFlags = [
"-Dgtk_doc=true"
];
postInstall = ''
# Pull in WebP and JXL support for gnome-backgrounds.
# In postInstall to run before gappsWrapperArgsHook.
export GDK_PIXBUF_MODULE_FILE="${
gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
extraLoaders = [
libjxl
librsvg
webp-pixbuf-loader
libheif.out
];
}
}"
'';
preFixup = ''
gappsWrapperArgs+=(
# Thumbnailers
--prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
--prefix XDG_DATA_DIRS : "${libjxl}/share"
--prefix XDG_DATA_DIRS : "${librsvg}/share"
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
)
'';
postFixup = ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
moveToOutput "share/doc" "$devdoc"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = "eog";
};
};
meta = with lib; {
description = "GNOME image viewer";
homepage = "https://gitlab.gnome.org/GNOME/eog";
changelog = "https://gitlab.gnome.org/GNOME/eog/-/blob/${version}/NEWS?ref_type=tags";
license = licenses.gpl2Plus;
maintainers = teams.gnome.members;
platforms = platforms.unix;
mainProgram = "eog";
};
}