nixpkgs/pkgs/tools/system/datefudge/default.nix
Dmitry Bogatov f538c07f2e
datefudge: work correctly even if GNU date is not in PATH (#94045)
* datefudge: work correctly even if GNU date is not in PATH

Examples in manual assumes advanced features from date(1) like "last
Friday", which only available in GNU coreutils version of date(1)
utility. Without this patch, most examples from datefudge(1) manual will
fail in busybox environment, which is confusing.

* Apply suggestions from code review

* Update pkgs/tools/system/datefudge/default.nix

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2021-11-01 21:15:50 +01:00

45 lines
1.2 KiB
Nix

{ stdenv, lib, fetchgit, fetchpatch, makeWrapper, coreutils }:
stdenv.mkDerivation rec {
pname = "datefudge";
version = "1.24";
src = fetchgit {
url = "https://salsa.debian.org/debian/${pname}.git";
rev = "debian/${version}";
sha256 = "1nh433yx4y4djp0bs6aawqbwk7miq7fsbs9wpjlyh2k9dvil2lrm";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ coreutils ];
postPatch = ''
substituteInPlace Makefile \
--replace "/usr" "/" \
--replace "-o root -g root" ""
substituteInPlace datefudge.sh \
--replace "@LIBDIR@" "$out/lib/"
'';
installFlags = [ "DESTDIR=$(out)" ];
postInstall = ''
chmod +x $out/lib/datefudge/datefudge.so
wrapProgram $out/bin/datefudge --prefix PATH : ${coreutils}/bin
'';
meta = with lib; {
description = "Fake the system date";
longDescription = ''
datefudge is a small utility that pretends that the system time is
different by pre-loading a small library which modifies the time,
gettimeofday and clock_gettime system calls.
'';
homepage = "https://packages.qa.debian.org/d/datefudge.html";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ leenaars ];
};
}