imv: 4.5.0 -> 5.0.0, modernize (#461037)

This commit is contained in:
Michele Guerini Rocco
2025-11-13 13:36:09 +00:00
committed by GitHub
+30 -28
View File
@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromSourcehut,
fetchpatch,
asciidoc,
cmocka,
docbook_xsl,
@@ -10,7 +9,7 @@
meson,
ninja,
pkg-config,
icu75,
icu,
pango,
inih,
withWindowSystem ? if stdenv.hostPlatform.isLinux then "all" else "x11",
@@ -18,7 +17,9 @@
libxkbcommon,
libGLU,
wayland,
wayland-protocols,
withBackends ? [
"farbfeld"
"libjxl"
"libtiff"
"libjpeg"
@@ -26,6 +27,9 @@
"librsvg"
"libheif"
"libnsgif"
"libnsbmp"
"libwebp"
"qoi"
],
libtiff,
libjpeg_turbo,
@@ -34,6 +38,10 @@
librsvg,
libnsgif,
libheif,
libnsbmp,
libwebp,
qoi,
wayland-scanner,
}:
let
@@ -44,7 +52,11 @@ let
xorg.libxcb
xorg.libX11
];
wayland = [ wayland ];
wayland = [
wayland
wayland-scanner
wayland-protocols
];
};
backends = {
@@ -55,9 +67,12 @@ let
libheif
libjxl
libnsgif
libnsbmp
libwebp
qoi
;
farbfeld = null; # builtin
libjpeg = libjpeg_turbo;
freeimage = throw "freeimage backend not supported";
};
backendFlags = map (
@@ -72,9 +87,9 @@ assert builtins.all (
b: lib.assertOneOf "each backend" b (builtins.attrNames backends)
) withBackends;
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "imv";
version = "4.5.0";
version = "5.0.0";
outputs = [
"out"
"man"
@@ -83,8 +98,8 @@ stdenv.mkDerivation rec {
src = fetchFromSourcehut {
owner = "~exec64";
repo = "imv";
rev = "v${version}";
sha256 = "sha256-aJ2EXgsS0WUTxMqC1Q+uOWLG8BeuwAyXPmJB/9/NCCU=";
tag = "v${finalAttrs.version}";
hash = "sha256-sOlWSv1GqdYzooTvcJjXxJI3pwWWJnlUpbGZgUAFYm0=";
};
mesonFlags = [
@@ -107,7 +122,7 @@ stdenv.mkDerivation rec {
buildInputs = [
cmocka
icu75
icu
libxkbcommon
pango
inih
@@ -115,19 +130,6 @@ stdenv.mkDerivation rec {
++ windowSystems."${withWindowSystem}"
++ map (b: backends."${b}") withBackends;
patches = [
(fetchpatch {
# https://lists.sr.ht/~exec64/imv-devel/patches/55937
name = "update libnsgif backend";
url = "https://lists.sr.ht/~exec64/imv-devel/%3C20241113012702.30521-2-reallyjohnreed@gmail.com%3E/raw";
hash = "sha256-/OQeDfIkPtJIIZwL8jYVRy0B7LSBi9/NvAdPoDm851k=";
})
];
postInstall = ''
install -Dm644 ../files/imv.desktop $out/share/applications/
'';
postFixup = lib.optionalString (withWindowSystem == "all") ''
# The `bin/imv` script assumes imv-wayland or imv-x11 in PATH,
# so we have to fix those to the binaries we installed into the /nix/store
@@ -139,16 +141,16 @@ stdenv.mkDerivation rec {
doCheck = true;
meta = with lib; {
meta = {
description = "Command line image viewer for tiling window managers";
homepage = "https://sr.ht/~exec64/imv/";
license = licenses.mit;
maintainers = with maintainers; [
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
rnhmjoj
markus1189
];
platforms = platforms.all;
badPlatforms = platforms.darwin;
platforms = lib.platforms.all;
badPlatforms = lib.platforms.darwin;
mainProgram = "imv";
};
}
})