diff options
author | Tobias Geerinckx-Rice <me@tobias.gr> | 2021-07-07 03:44:29 +0200 |
---|---|---|
committer | Tobias Geerinckx-Rice <me@tobias.gr> | 2021-07-07 13:56:17 +0200 |
commit | 1cc4207fa9f19d4d3353159fc17787c59d0807e6 (patch) | |
tree | b02891d0e6064c2affa2b9e420758e7e2d1bb1cd /gnu/packages/file-systems.scm | |
parent | 3fb6c96106df85ba47f8fea34b224071bd75a1b4 (diff) | |
download | guix-1cc4207fa9f19d4d3353159fc17787c59d0807e6.tar.gz |
gnu: Add rewritefs.
* gnu/packages/file-systems.scm (rewritefs): New public variable.
Diffstat (limited to 'gnu/packages/file-systems.scm')
-rw-r--r-- | gnu/packages/file-systems.scm | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index cb77d600c1..aecb9bece9 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -65,6 +65,7 @@ #:use-module (gnu packages nfs) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages openldap) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) @@ -1555,6 +1556,56 @@ local file system using FUSE.") "This package provides Go native bindings for the FUSE kernel module.") (license license:bsd-3))) +(define-public rewritefs + (let ((revision "0") + ;; This is the last commit supporting our fuse@2. + (commit "31e2810b596028a12e49a08664567755f4b387b2")) + (package + (name "rewritefs") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sloonz/rewritefs") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k1aas2bdq2l3a6q3fvmngpakcxiws8qny2w6z7ffngyqxh33fv7")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((srfi srfi-26) + ,@%gnu-build-system-modules) + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:test-target "test" + #:tests? #f ; all require a kernel with FUSE loaded + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-after 'install 'install-examples + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (for-each (cut install-file <> (string-append doc "/examples")) + (find-files "." "^config\\.")))))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("fuse" ,fuse) + ("pcre" ,pcre))) + (home-page "https://github.com/sloonz/rewritefs") + (synopsis "FUSE file system that changes particular file names") + (description + "RewriteFS is a @acronym{FUSE, File system in USEr space} to change the +name of accessed files on the fly based on any number of regular expressions. +It's like the @code{rewrite} action of many Web servers, but for your file +system. For example, it can help keep your home directory tidy by transparently +rewriting the location of configuration files of software that doesn't follow +the XDG directory specification from @file{~/.@var{name}} to +@file{~/.config/@var{name}}.") + (license license:gpl2+)))) + (define-public tmsu (package (name "tmsu") |