* 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>
45 lines
1.2 KiB
Nix
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 ];
|
|
};
|
|
}
|