diff options
Diffstat (limited to 'pkgs/tools/system/mcron')
-rw-r--r-- | pkgs/tools/system/mcron/default.nix | 39 | ||||
-rw-r--r-- | pkgs/tools/system/mcron/install-vixie-programs.patch | 23 |
2 files changed, 62 insertions, 0 deletions
diff --git a/pkgs/tools/system/mcron/default.nix b/pkgs/tools/system/mcron/default.nix new file mode 100644 index 00000000000..485df4231ec --- /dev/null +++ b/pkgs/tools/system/mcron/default.nix @@ -0,0 +1,39 @@ +{ fetchurl, lib, stdenv, guile, which, ed, libtool }: + +stdenv.mkDerivation rec { + pname = "mcron"; + version = "1.0.6"; + + src = fetchurl { + url = "mirror://gnu/mcron/mcron-${version}.tar.gz"; + sha256 = "0yvrfzzdy2m7fbqkr61fw01wd9r2jpnbyabxhcsfivgxywknl0fy"; + }; + + patches = [ ./install-vixie-programs.patch ]; + + # don't attempt to chmod +s files in the nix store + postPatch = '' + substituteInPlace makefile.in --replace "rwxs" "rwx" + ''; + + buildInputs = [ guile which ed libtool ]; + + doCheck = true; + + meta = { + description = "Flexible implementation of `cron' in Guile"; + + longDescription = '' + The GNU package mcron (Mellor's cron) is a 100% compatible + replacement for Vixie cron. It is written in pure Guile, and + allows configuration files to be written in scheme (as well as + Vixie's original format) for infinite flexibility in specifying + when jobs should be run. Mcron was written by Dale Mellor. + ''; + + homepage = "https://www.gnu.org/software/mcron/"; + + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/tools/system/mcron/install-vixie-programs.patch b/pkgs/tools/system/mcron/install-vixie-programs.patch new file mode 100644 index 00000000000..d268ecb4a0a --- /dev/null +++ b/pkgs/tools/system/mcron/install-vixie-programs.patch @@ -0,0 +1,23 @@ +This patch allows us to install the Vixie-compatible binaries as +non-root without creating /var/run, etc. + +--- mcron-1.0.6/makefile.in 2010-06-19 20:44:17.000000000 +0200 ++++ mcron-1.0.6/makefile.in 2010-07-04 16:16:25.000000000 +0200 +@@ -1004,15 +1004,11 @@ mcron.c : main.scm crontab.scm makefile. + @rm -f mcron.escaped.scm > /dev/null 2>&1 + + install-exec-hook: +- @if [ "x@NO_VIXIE_CLOBBER@" != "xyes" -a "`id -u`" -eq "0" ]; then \ ++ @if [ "x@NO_VIXIE_CLOBBER@" != "xyes" ]; then \ + rm -f $(fpp)cron$(EXEEXT) > /dev/null 2>&1; \ + $(INSTALL) --mode='u=rwx' mcron$(EXEEXT) $(fpp)cron$(EXEEXT); \ + rm -f $(fpp)crontab$(EXEEXT) > /dev/null 2>&1; \ + $(INSTALL) --mode='u=rwxs,og=rx' mcron$(EXEEXT) $(fpp)crontab$(EXEEXT); \ +- $(INSTALL) -d --mode='u=rwx' $(DESTDIR)/var/cron; \ +- $(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)/var/run; \ +- $(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)@GUILE_SITE@; \ +- $(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)@GUILE_SITE@/mcron; \ + elif [ "x@NO_VIXIE_CLOBBER@" = "xyes" ]; then \ + echo "Not installing Vixie-style programs"; \ + else \ + |