nixpkgs/pkgs/tools/system/cron/default.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

48 lines
1.5 KiB
Nix

{lib, stdenv, fetchurl, vim, sendmailPath ? "/usr/sbin/sendmail"}:
stdenv.mkDerivation {
name = "cron-4.1";
src = fetchurl {
url = "ftp://ftp.isc.org/isc/cron/cron_4.1.shar";
sha256 = "16n3dras4b1jh7g958nz1k54pl9pg5fwb3fvjln8z67varvq6if4";
};
unpackCmd = "(mkdir cron && cd cron && sh $curSrc)";
hardeningEnable = [ "pie" ];
preBuild = ''
# do not set sticky bit in /nix/store
substituteInPlace Makefile --replace ' -o root' ' ' --replace 111 755 --replace 4755 0755
# do not strip during install, broken on cross and we'll do ourselves as needed
substituteInPlace Makefile --replace ' -s cron' ' cron'
makeFlags="DESTROOT=$out CC=$CC"
# We want to ignore the $glibc/include/paths.h definition of
# sendmail path.
# Also set a usable default PATH (#16518).
cat >> pathnames.h <<__EOT__
#undef _PATH_SENDMAIL
#define _PATH_SENDMAIL "${sendmailPath}"
#undef _PATH_VI
#define _PATH_VI "${vim}/bin/vim"
#undef _PATH_DEFPATH
#define _PATH_DEFPATH "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin"
__EOT__
# Implicit saved uids do not work here due to way NixOS uses setuid wrappers
# (#16518).
echo "#undef HAVE_SAVED_UIDS" >> externs.h
'';
preInstall = "mkdir -p $out/bin $out/sbin $out/share/man/man1 $out/share/man/man5 $out/share/man/man8";
meta = with lib; {
description = "Daemon for running commands at specific times (Vixie Cron)";
license = licenses.bsd0;
platforms = with platforms; linux ++ darwin;
};
}