summary refs log tree commit diff
path: root/pkgs/tools/system/mcron
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-05-31 09:59:33 +0000
committerAlyssa Ross <hi@alyssa.is>2022-05-31 09:59:57 +0000
commit9ff36293d1e428cd7bf03e8d4b03611b6d361c28 (patch)
tree1ab51a42b868c55b83f6ccdb80371b9888739dd9 /pkgs/tools/system/mcron
parent1c4fcd0d4b0541e674ee56ace1053e23e562cc80 (diff)
parentddc3c396a51918043bb0faa6f676abd9562be62c (diff)
downloadnixpkgs-archive.tar
nixpkgs-archive.tar.gz
nixpkgs-archive.tar.bz2
nixpkgs-archive.tar.lz
nixpkgs-archive.tar.xz
nixpkgs-archive.tar.zst
nixpkgs-archive.zip
Last good Nixpkgs for Weston+nouveau? archive
I came this commit hash to terwiz[m] on IRC, who is trying to figure out
what the last version of Spectrum that worked on their NUC with Nvidia
graphics is.
Diffstat (limited to 'pkgs/tools/system/mcron')
-rw-r--r--pkgs/tools/system/mcron/default.nix39
-rw-r--r--pkgs/tools/system/mcron/install-vixie-programs.patch23
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 \
+