[PATCH] gnu: tup: Update to 0.7.11.

  • Done
  • quality assurance status badge
One participant
  • Morgan.J.Smith
Submitted by
Morgan.J.Smith wrote on 1 Jan 2022 05:14
(address . guix-patches@gnu.org)(name . Morgan Smith)(address . Morgan.J.Smith@outlook.com)
From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/build-tools.scm (tup): Update to 0.7.11.
[phases]<configure,build>: Force it to use fuse instead of fuse3

There is probably a cleaner way to do that format thingy. I just can't be asked to figure that out right now, sorry. This package gave me to much grief to go the extra mile :P

Wanted to play with this as it seems cool but I kept getting this error when running it:

Toggle quote (3 lines)
> setpgid: Operation not permitted
> tup error: Unable to set process group for tup's subprocesses.

So then I updated it to 0.7.11 (changed fuse to fuse-3), built it just fine, and got this error instead when running it:

Toggle quote (2 lines)
> fuse: failed to exec fusermount3: No such file or directory

I tried pretty hard to fix it but I couldn't figure it out. It's pretty darn cryptic. I can't figure out where it's trying to call it from. So I just built it with fuse instead of fuse3 and now everything works great. No errors at all.

gnu/packages/build-tools.scm | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 9d3fd5171e..1838e9ce7a 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -409,14 +409,14 @@ (define-public premake5
(define-public tup
(name "tup")
- (version "0.7.9")
+ (version "0.7.11")
(source (origin
(method url-fetch)
(uri (string-append "http://gittup.org/tup/releases/tup-v"
version ".tar.gz"))
- "0gnd2598xqgwihdkfkx7qn0q6p4n7npam1fy83mp7s04zwj99syc"))
+ "1157qfnhjakm3h07y7h38lrjw5650gkif34k30bnrsypmwl5xyzb"))
(patches (search-patches "tup-unbundle-dependencies.patch"))
(modules '((guix build utils)))
@@ -439,12 +439,13 @@ (define-public tup
(("`git describe`") ,version))
(with-output-to-file "tup.config"
(lambda _
- (format #t "CONFIG_TUP_USE_SYSTEM_SQLITE=y~%")))
- #t))
+ ;; Use fuse instead of fuse3 (won't run with fuse3 for some reason)
(delete 'check)
(replace 'build
(lambda _
;; Based on bootstrap-nofuse.sh, but with a detour to patch-shebang.
+ (setenv "TUP_SERVER" "fuse") ;; Use fuse instead of fuse3
(invoke "./build.sh")
(invoke "./build/tup" "init")
(invoke "./build/tup" "generate" "--verbose" "build-nofuse.sh")
Morgan Smith wrote on 1 Jan 2022 19:56
(address . 52927@debbugs.gnu.org)
Morgan.J.Smith@outlook.com writes:
Toggle quote (2 lines)
>> fuse: failed to exec fusermount3: No such file or directory

Well it has been a year so I thought I'd come back to this. I figured
it out. It needs to run fusermount from /run/setuid-programs because it
needs those permissions I guess. So running this program depends on the
user's system configuration which I don't think is a good thing (and
probably translates badly on foreign distros.)

If I could get someone more knowledgeable then me to weigh in here that
would be great because I have no clue how to proceed.

If I install fuse-3 alongside tup built with fuse-3 then I get the
following error. If fuse-3 is installed as a setuid program it works
perfectly. The only reason everything currently works is because we
install fuse by default as a setuid program.

Toggle quote (1 lines)
> fusermount3: mount failed: Operation not permitted
Morgan Smith wrote on 14 Jun 20:48 +0200
control message for bug #52927
(address . control@debbugs.gnu.org)
close 52927

Was fixed by commit 9c1697020912ac24ff6be7eb6591314fdb74fc07