summary refs log tree commit diff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2021-06-24 00:20:53 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2021-06-24 00:31:53 +0200
commit26a04f70fa7a3f3f661ba185d9266218eddab9b1 (patch)
tree6f1e8ad922e5ad950316d3f30d1a135909d86727
parentb87f5645b8a1e6bc1efbf3eed9ac3ccc98af1b55 (diff)
downloadguix-26a04f70fa7a3f3f661ba185d9266218eddab9b1.tar.gz
gnu: Add cachefilesd-inotify.
* gnu/packages/file-systems.scm (cachefilesd-inotify): New public
variable.
-rw-r--r--gnu/packages/file-systems.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index e2335b8a86..fabcc10d50 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -200,6 +200,53 @@ another location, similar to @command{mount --bind}.  It can be used for:
 @end itemize ")
     (license license:gpl2+)))
 
+(define-public cachefilesd-inotify
+  (package
+    (name "cachefilesd-inotify")
+    (version "0.11.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/tomalok/cachefilesd-inotify")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0qkrpz69ql6fb3fwh0l35hhf9znnqyxhgv5fzd1gl2a2kz13rq5a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             ;; The Makefile doesn't support prefix= or similar.
+             (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+             "MANDIR=/share/man")
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))         ; no configure script
+    (home-page "https://gitlab.com/tomalok/cachefilesd-inotify")
+    (synopsis
+     "CacheFiles file system cache management daemon (using @code{inotify})")
+    (description
+     "This package provides the user space component of CacheFiles, a caching
+back end that uses a directory on a locally mounted file system (such as ext4)
+as a cache to speed up (by reducing) access to a slower file system and make it
+appear more reliable.
+
+The cached file system is often a network file system such as NFS or CIFS, but
+can also be a local file system like ISO 9660 on a slow optical drive.
+
+CacheFiles itself is part of the kernel but relies on this user space
+@command{cachefilesd} daemon to perform maintenance tasks like culling and
+reaping stale nodes.  Only one such daemon can be running at a time, and
+communicates with the kernel through the @file{/dev/cachefiles} character
+device.
+
+This version modifies David Howells original cachefilesd---which appears
+unmaintained---to use the @code{inotify} API instead of the deprecated
+@code{dnotify} to monitor file changes.")
+    (license license:gpl2+)))
+
 (define-public davfs2
   (package
     (name "davfs2")