{
lib,
fetchurl,
fetchpatch,
autoreconfHook,
ncurses,
pcre2,
stdenv,
# Boolean options
withSecure ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "less";
version = "668";
# `less` is provided by the following sources:
# - meta.homepage
# - GitHub: https://github.com/gwsw/less/
# The releases recommended for general consumption are only those from
# homepage, and only those not marked as beta.
src = fetchurl {
url = "https://www.greenwoodsoftware.com/less/less-${finalAttrs.version}.tar.gz";
hash = "sha256-KBn1VWTYbVQqu+yv2C/2HoGaPuyWf6o2zT5o8VlqRLg=";
};
patches = [
(fetchpatch {
# Fix configure parameters --with-secure=no and --without-secure.
url = "https://github.com/gwsw/less/commit/8fff6c56bfc833528b31ebdaee871f65fbe342b1.patch";
hash = "sha256-XV5XufivNWWLGeIpaP04YQPWcxIUKYYEINdT+eEx+WA=";
includes = [
"configure.ac"
];
})
# Need `autoreconfHook` since we patch `configure.ac`.
# TODO: Remove the `configure.ac` patch and `autoreconfHook` next release
nativeBuildInputs = [
autoreconfHook
buildInputs = [
ncurses
pcre2
outputs = [
"out"
"man"
configureFlags = [
"--sysconfdir=/etc" # Look for 'sysless' in /etc
(lib.withFeatureAs true "regex" "pcre2")
(lib.withFeature withSecure "secure")
strictDeps = true;
meta = {
homepage = "https://www.greenwoodsoftware.com/less/";
description = "More advanced file pager than 'more'";
changelog = "https://www.greenwoodsoftware.com/less/news.${finalAttrs.version}.html";
license = lib.licenses.gpl3Plus;
mainProgram = "less";
maintainers = with lib.maintainers; [
AndersonTorres
# not active
dtzWill
platforms = lib.platforms.unix;