nixpkgs/pkgs/by-name/ge/geeqie/package.nix
Silvan Mosberger 4f0dadbf38 treewide: format all inactive Nix files
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.

Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.

A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.

This commit was automatically created and can be verified using

    nix-build a08b3a4d19.tar.gz \
      --argstr baseRev b32a094368
    result/bin/apply-formatting $NIXPKGS_PATH
2024-12-10 20:26:33 +01:00

190 lines
3.9 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
meson,
ninja,
xxd,
gettext,
intltool,
gtk3,
lcms2,
exiv2,
libchamplain,
clutter-gtk,
ffmpegthumbnailer,
fbida,
libarchive,
djvulibre,
libheif,
openjpeg,
libjxl,
libraw,
lua5_3,
poppler,
gspell,
libtiff,
libwebp,
gphoto2,
imagemagick,
yad,
exiftool,
zenity,
libnotify,
wrapGAppsHook3,
fetchpatch,
doxygen,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "geeqie";
version = "2.5";
src = fetchFromGitHub {
owner = "BestImageViewer";
repo = "geeqie";
rev = "v${version}";
hash = "sha256-k2FXj2ZKZzB5XpCcWzEv7Q1ozATfU3221XKcOFdWOGU=";
};
patches = [
# Remove changelog from menu
(fetchpatch {
url = "https://salsa.debian.org/debian/geeqie/-/raw/debian/master/debian/patches/Remove-changelog-from-menu-item.patch";
hash = "sha256-0awKKTLg/gUZhmwluVbHCOqssog9SneFOaUtG89q0go=";
})
];
postPatch = ''
patchShebangs .
'';
nativeBuildInputs = [
pkg-config
gettext
intltool
wrapGAppsHook3
doxygen
meson
ninja
xxd
];
buildInputs = [
gtk3
lcms2
exiv2
libchamplain
clutter-gtk
ffmpegthumbnailer
fbida
libarchive
djvulibre
libheif
openjpeg
libjxl
libraw
lua5_3
poppler
gspell
libtiff
libwebp
];
postInstall = ''
# Allow geeqie to find exiv2 and exiftran, necessary to
# losslessly rotate JPEG images.
# Requires exiftran (fbida package) and exiv2.
sed -i $out/lib/geeqie/geeqie-rotate \
-e '1 a export PATH=${
lib.makeBinPath [
exiv2
fbida
]
}:$PATH'
# Zenity and yad are used in some scripts for reporting errors.
# Allow change quality of image.
# Requires imagemagick and yad.
sed -i $out/lib/geeqie/geeqie-resize-image \
-e '1 a export PATH=${
lib.makeBinPath [
imagemagick
yad
]
}:$PATH'
# Allow to crop image.
# Requires imagemagick, exiv2 and exiftool.
sed -i $out/lib/geeqie/geeqie-image-crop \
-e '1 a export PATH=${
lib.makeBinPath [
imagemagick
exiv2
exiftool
zenity
]
}:$PATH'
# Requires gphoto2 and libnotify
sed -i $out/lib/geeqie/geeqie-tethered-photography \
-e '1 a export PATH=${
lib.makeBinPath [
gphoto2
zenity
libnotify
]
}:$PATH'
# Import images from camera.
# Requires gphoto2.
sed -i $out/lib/geeqie/geeqie-camera-import \
-e '1 a export PATH=${
lib.makeBinPath [
gphoto2
zenity
]
}:$PATH'
# Export jpeg from raw file.
# Requires exiv2, exiftool and lcms2.
sed -i $out/lib/geeqie/geeqie-export-jpeg \
-e '1 a export PATH=${
lib.makeBinPath [
zenity
exiv2
exiftool
lcms2
]
}:$PATH'
'';
enableParallelBuilding = true;
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Lightweight GTK based image viewer";
mainProgram = "geeqie";
longDescription = ''
Geeqie is a lightweight GTK based image viewer for Unix like
operating systems. It features: EXIF, IPTC and XMP metadata
browsing and editing interoperability; easy integration with other
software; geeqie works on files and directories, there is no need to
import images; fast preview for many raw image formats; tools for
image comparison, sorting and managing photo collection. Geeqie was
initially based on GQview.
'';
license = licenses.gpl2Plus;
homepage = "https://www.geeqie.org/";
maintainers = with maintainers; [
pSub
markus1189
];
platforms = platforms.gnu ++ platforms.linux;
};
}