On Mon, Apr 19, 2021 at 08:47:08PM -0400, Leo Famulari wrote: > On Mon, Apr 19, 2021 at 10:30:13PM +0200, Simon Streit wrote: > > I just tried again, and called mount as: > > --8<---------------cut here---------------start------------->8--- > > /run/setuid-programs/mount -t <URL> ~/test/ > > --8<---------------cut here---------------end--------------->8--- > > where URL is my remote URL share trying to mount it to local test dir, > > where it fails with: > > --8<---------------cut here---------------start------------->8--- > > /run/current-system/profile/sbin/mount.davfs: program is not setuid root > > --8<---------------cut here---------------end--------------->8--- > > So, '/run/setuid-programs/mount' is somehow resolving to > '/run/current-system/profile/sbin/mount.davfs'? > > The executables in /run/setuid-programs are not supposed to be links. >
From the ./configure script in davfs2: Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> LIBS libraries to pass to the linker, e.g. -l<library> CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CPP C preprocessor dav_user if invoked by root, mount.davfs runs as this user [davfs2] dav_group the group, the mount.davfs daemon belongs to [davfs2] ssbindir where mount will search for mount-helpers [/sbin] dav_localstatedir directory to store pid-files in [/var/run] dav_syscachedir cache directory [/var/cache] LINGUAS select languages for messages and documentation I've attached a diff against guix and also a davfs.scm for building just the modified davfs2. Can you try building it with `guix build -f davfs.scm` and then use the mount.davfs from there to try mounting your davfs mountpoint? -- Efraim Flashner <efr...@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index d970fe7198..13da2a54b4 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -212,7 +212,7 @@ another location, similar to @command{mount --bind}. It can be used for: (list "--sysconfdir=/etc" ; so man pages & binaries contain /etc (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/" ,name "-" ,version) - (string-append "ssbindir=" (assoc-ref %outputs "out") "/sbin") + "ssbindir=/run/setuid-programs" ;; The default ‘davfs2’ user and group don't exist on most systems. "dav_user=nobody" "dav_group=nogroup") @@ -226,6 +226,11 @@ another location, similar to @command{mount --bind}. It can be used for: _ prefix suffix) (string-append prefix suffix))) #t)) + (add-after 'unpack 'dont-install-to-/run/setuid-programs + (lambda _ + (substitute* "src/Makefile.in" + (("ssbindir") "sbindir")) + #t)) (add-after 'unpack 'patch-file-names (lambda _ ;; Don't auto-load the FUSE kernel module. That's up to root.
(use-modules (guix packages) (guix utils) (gnu packages file-systems)) (package (inherit davfs2) (name (package-name davfs2)) (version (package-version davfs2)) (arguments (substitute-keyword-arguments (package-arguments davfs2) ((#:configure-flags cf) `(list "--sysconfdir=/etc" ; so man pages & binaries contain /etc (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/" ,name "-" ,version) "ssbindir=/run/setuid-programs" ;; The default ‘davfs2’ user and group don't exist on most systems. "dav_user=nobody" "dav_group=nogroup")) ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'dont-install-to-/run/setuid-programs (lambda _ (substitute* "src/Makefile.in" (("ssbindir") "sbindir")) #t)))))))
signature.asc
Description: PGP signature