nixpkgs/pkgs/os-specific/linux/fbterm/default.nix
Bernardo Meurer 812b738e2c
fbterm: update and use debian-maintained version
Since upstream has been abandoned for years, let's use the source that's
currently maintained by Debian devs.

This also incorporates patches used by the Arch Linux packaging of
fbterm, and cleans up the derivation
2023-04-18 15:23:33 -03:00

100 lines
2.7 KiB
Nix

{ stdenv
, autoreconfHook
, fetchFromGitLab
, fetchpatch
, fetchurl
, fontconfig
, freetype
, gpm
, lib
, ncurses
, pkg-config
}:
stdenv.mkDerivation rec {
version = "1.7-2";
pname = "fbterm";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "debian";
repo = pname;
rev = "debian/${version}";
hash = "sha256-vRUZgFpA1IkzkLzl7ImT+Yff5XqjFbUlkHmj/hd7XDE=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
ncurses
];
buildInputs = [
gpm
freetype
fontconfig
ncurses
];
# preConfigure = ''
# sed -e '/ifdef SYS_signalfd/atypedef long long loff_t;' -i src/fbterm.cpp
# sed -e '/install-exec-hook:/,/^[^\t]/{d}; /.NOEXPORT/iinstall-exec-hook:\
# ' -i src/Makefile.in
# export HOME=$PWD;
# export NIX_LDFLAGS="$NIX_LDFLAGS -lfreetype"
# '';
preInstall = ''
export HOME=$PWD
'';
postInstall =
let
fbtermrc = fetchurl {
url = "https://aur.archlinux.org/cgit/aur.git/plain/fbtermrc?h=fbterm";
hash = "sha256-zNIfi2ZjEGc5PLdOIirKGTXESb5Wm5XBAI1sfHa31LY=";
};
in
''
mkdir -p "$out/share/terminfo"
tic -a -v2 -o"$out/share/terminfo" terminfo/fbterm
mkdir -p "$out/etc/fbterm"
cp "${fbtermrc}" "$out/etc/fbterm"
'';
# Patches from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=fbterm
patches = [
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/fbconfig.patch?h=fbterm";
hash = "sha256-skCdUqyMkkqxS1YUI7cofsfnNNo3SL/qe4WEIXlhm/s=";
})
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/color_palette.patch?h=fbterm";
hash = "sha256-SkWxzfapyBTtMpTXkiFHRAw8/uXw7cAWwg5Q3TqWlk8=";
})
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/fbterm.patch?h=fbterm";
hash = "sha256-XNHBTGQGeaQPip2XgcKlr123VDwils2pnyiGqkBGhzU=";
})
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-Fix-build-with-gcc-6.patch?h=fbterm";
hash = "sha256-3d3zBvr5upICVVkd6tn63IhuB0sF67f62aKnf8KvOwg=";
})
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_ftbfs_crosscompile.patch?h=fbterm";
hash = "sha256-jv/FSG6dHR0jKjPXQIfqsvpiT/XYzwv/VwuV+qUSovM=";
})
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_ftbfs_epoll.patch?h=fbterm";
hash = "sha256-wkhfG0uY/5ZApcXTERkaKqz5IDpnilxUEcxull4645A=";
})
];
meta = with lib; {
description = "Framebuffer terminal emulator";
homepage = "https://salsa.debian.org/debian/fbterm";
maintainers = with maintainers; [ lovesegfault raskin ];
license = licenses.gpl2;
platforms = platforms.linux;
};
}