diff mbox series

[bug#52927] gnu: tup: Update to 0.7.11.

Message ID BYAPR05MB4023E89D154C436187282039C5479@BYAPR05MB4023.namprd05.prod.outlook.com
State New
Headers show
Series [bug#52927] gnu: tup: Update to 0.7.11. | expand

Commit Message

Morgan Smith Jan. 1, 2022, 4:14 a.m. UTC
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:

> 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:

> 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(-)

Comments

Morgan Smith Jan. 1, 2022, 6:56 p.m. UTC | #1
Morgan.J.Smith@outlook.com writes:
>> 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.

> fusermount3: mount failed: Operation not permitted
diff mbox series

Patch

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
   (package
     (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"))
               (sha256
                (base32
-                "0gnd2598xqgwihdkfkx7qn0q6p4n7npam1fy83mp7s04zwj99syc"))
+                "1157qfnhjakm3h07y7h38lrjw5650gkif34k30bnrsypmwl5xyzb"))
               (patches (search-patches "tup-unbundle-dependencies.patch"))
               (modules '((guix build utils)))
               (snippet
@@ -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)
+                 (format #t "CONFIG_TUP_USE_SYSTEM_SQLITE=y\nCONFIG_TUP_SERVER=fuse~%")))))
          (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")