summaryrefslogtreecommitdiff
path: root/gnu/packages/sync.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/sync.scm')
-rw-r--r--gnu/packages/sync.scm14
1 files changed, 13 insertions, 1 deletions
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 1c80b7978e..ccebe40e9d 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -183,8 +183,20 @@ their folder.
#:test-target "tests"
#:phases
(modify-phases %standard-phases
- ;; No install target.
+ (add-after 'unpack 'search-$PATH-for-binaries
+ ;; lsyncd requires and hard-codes absolute file names to binaries.
+ ;; Make it fall back to searching $PATH for relative file names.
+ (lambda _
+ (substitute* "lsyncd.c"
+ (("execv\\(") "execvp("))
+ (substitute* (list "lsyncd.lua"
+ "default-direct.lua"
+ "default-rsync.lua"
+ "default-rsyncssh.lua")
+ (("(|/usr)/bin/") ""))
+ #t))
(replace 'install
+ ;; No install target.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))