{
lib,
stdenv,
fetchurl,
fetchpatch,
libtool,
bison,
groff,
ghostscript,
gettext,
acl,
libcap,
lsof,
}:
stdenv.mkDerivation rec {
pname = "explain";
version = "1.4";
src = fetchurl {
url = "mirror://sourceforge/libexplain/libexplain-${version}.tar.gz";
hash = "sha256-KIY7ZezMdJNOI3ysQTZMs8GALDbJ4jGO0EF0YP7oP4A=";
};
patches =
let
debian-src = "https://sources.debian.org/data/main";
debian-ver = "${version}.D001-12";
debian-patch =
fname: hash:
fetchpatch {
name = fname;
url = "${debian-src}/libe/libexplain/${debian-ver}/debian/patches/${fname}";
hash = hash;
in
[
(debian-patch "sanitize-bison.patch" "sha256-gU6JG32j2yIOwehZTUSvIr4TSDdlg+p1U3bhfZHMEDY=")
(debian-patch "03_fsflags-4.5.patch" "sha256-ML7Qvf85vEBp+iwm6PSosMAn/frYdEOSHRToEggmR8M=")
(debian-patch "linux5.11.patch" "sha256-N7WwnTfwOxBfIiKntcFOqHTH9r2gd7NMEzic7szzR+Y=")
(debian-patch "termiox-no-more-exists-since-kernel-5.12.patch" "sha256-cocgEYKoDMDnGk9VNQDtgoVxMGnnNpdae0hzgUlacOw=")
(debian-patch "gcc-10.patch" "sha256-YNcYGyOOqPUuwpUpXGcR7zsWbepVg8SAqcVKlxENSQk=")
];
nativeBuildInputs = [
libtool
bison
groff
ghostscript
gettext
buildInputs = [
acl
libcap
lsof
outputs = [
"bin"
"dev"
"out"
"man"
"doc"
meta = with lib; {
description = "Library and utility to explain system call errors";
mainProgram = "explain";
homepage = "https://libexplain.sourceforge.net";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ McSinyx ];
platforms = platforms.unix;
# never built on aarch64-linux since first introduction in nixpkgs
broken = stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64;
}