* [bug#42031] [PATCH] gnu: Add autofs. @ 2020-06-24 15:56 Oleg Pykhalov 2020-06-25 10:12 ` Ludovic Courtès 2020-06-25 12:27 ` Tobias Geerinckx-Rice via Guix-patches via 0 siblings, 2 replies; 5+ messages in thread From: Oleg Pykhalov @ 2020-06-24 15:56 UTC (permalink / raw) To: 42031; +Cc: Oleg Pykhalov * gnu/packages/file-systems.scm (autofs): New variable. --- gnu/packages/file-systems.scm | 77 +++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index dd72152c51..c8d881e542 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages acl) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -57,6 +58,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages rsync) + #:use-module (gnu packages sssd) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) @@ -782,3 +784,78 @@ directory onto a single drive and create FreeDesktop.org Trash specification compatible directories.") (home-page "https://github.com/trapexit/mergerfs-tools") (license license:isc)))) + +(define-public autofs + (package + (name "autofs") + (version "5.1.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://mirrors.edge.kernel.org/pub/linux/daemons/autofs/v" + (version-major version) "/autofs-" version ".tar.xz")) + (sha256 + (base32 + "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx")))) + (build-system gnu-build-system) + (inputs `(("util-linux" ,util-linux) + ("nfs-utils" ,nfs-utils) + ("kmod" ,kmod) + ("e2fsprogs" ,e2fsprogs) + ("sssd" ,sssd) + ("linux-headers" ,linux-libre-headers) + ("libtirpc", libtirpc) + ("binutils" ,binutils) + ("rpcsvc-proto" ,rpcsvc-proto) ;for 'rpcgen' + ("libxml2" ,libxml2))) + (native-inputs + `(("flex" ,flex) + ("bison" ,bison) + ("pkg-config" ,pkg-config))) + (arguments + `(#:tests? #f ; no tests + #:validate-runpath? #f + #:configure-flags '("--enable-force-shutdown" "--with-path=$PATH" + "--enable-ignore-busy") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "exportsssldir" (string-append (assoc-ref inputs "sssd") + "/lib/sssd/modules")) + (setenv "HAVE_SSS_AUTOFS" "1") + (setenv "YACC" (string-append (assoc-ref inputs "bison") + "/bin/yacc")) + (setenv "RANLIB" (string-append (assoc-ref inputs "binutils") + "/bin/ranlib")) + (setenv "RPCGEN" (string-append (assoc-ref inputs "rpcsvc-proto") + "/bin/rpcgen")) + (setenv "LEX" (string-append (assoc-ref inputs "flex") + "/bin/flex")) + (setenv "MOUNT" (string-append (assoc-ref inputs "util-linux") + "/bin/mount")) + (setenv "MOUNT_NFS" (string-append (assoc-ref inputs "nfs-utils") + "/sbin/mount.nfs")) + (setenv "UMOUNT" (string-append (assoc-ref inputs "util-linux") + "/bin/umount")) + (setenv "MODPROBE" (string-append (assoc-ref inputs "kmod") + "/bin/modprobe")) + (setenv "E2FSCK" (string-append (assoc-ref inputs "e2fsprogs") + "/sbin/fsck.ext2")) + (setenv "E3FSCK" (string-append (assoc-ref inputs "e2fsprogs") + "/sbin/fsck.ext3")) + (setenv "E4FSCK" (string-append (assoc-ref inputs "e2fsprogs") + "/sbin/fsck.ext4")) + ;; Allow <rpc/rpc.h> & co. to be found. + (setenv "CPATH" (string-append (assoc-ref inputs "libtirpc") + "/include/tirpc")) + ;; Makefile.rules defines a usable STRIP only without the env var. + (unsetenv "STRIP") + #t))))) + (home-page "https://www.kernel.org/pub/linux/daemons/autofs/") + (synopsis "Kernel-based automounter") + (description "Autofs controls the operation of the automount daemons. The +automount daemons automatically mount filesystems when they are used and +unmount them after a period of inactivity. This is done based on a set of +pre-configured maps.") + (license license:gpl2))) -- 2.26.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#42031] [PATCH] gnu: Add autofs. 2020-06-24 15:56 [bug#42031] [PATCH] gnu: Add autofs Oleg Pykhalov @ 2020-06-25 10:12 ` Ludovic Courtès 2020-06-25 12:27 ` Tobias Geerinckx-Rice via Guix-patches via 1 sibling, 0 replies; 5+ messages in thread From: Ludovic Courtès @ 2020-06-25 10:12 UTC (permalink / raw) To: Oleg Pykhalov, Tobias Geerinckx-Rice; +Cc: 42031 Hey comrades! Since you both submitted a patch adding autofs, I suggest that you review each other’s patch. :-) Ludo’. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#42031] [PATCH] gnu: Add autofs. 2020-06-24 15:56 [bug#42031] [PATCH] gnu: Add autofs Oleg Pykhalov 2020-06-25 10:12 ` Ludovic Courtès @ 2020-06-25 12:27 ` Tobias Geerinckx-Rice via Guix-patches via 2020-06-25 19:59 ` Oleg Pykhalov 1 sibling, 1 reply; 5+ messages in thread From: Tobias Geerinckx-Rice via Guix-patches via @ 2020-06-25 12:27 UTC (permalink / raw) To: Oleg Pykhalov; +Cc: 42031 [-- Attachment #1: Type: text/plain, Size: 7565 bytes --] Oleg, Thank you for the patch! I'm superbly biased[1] but 3 cruel people have insisted we review each others' patches so here you go :-) Oleg told me on #guix that this is basically a straight port from Nix[0]. The Nix package is very… not good? There's nothing worth scavenging. A ‘reviewed’ version of Oleg's patch ends up identical to mine, but without the SASL support. Oleg Pykhalov 写道: > * gnu/packages/file-systems.scm (autofs): New variable. > --- > gnu/packages/file-systems.scm | 77 > +++++++++++++++++++++++++++++++++++ > 1 file changed, 77 insertions(+) > > diff --git a/gnu/packages/file-systems.scm > b/gnu/packages/file-systems.scm > index dd72152c51..c8d881e542 100644 > --- a/gnu/packages/file-systems.scm > +++ b/gnu/packages/file-systems.scm > @@ -36,6 +36,7 @@ > #:use-module (gnu packages acl) > #:use-module (gnu packages attr) > #:use-module (gnu packages autotools) > + #:use-module (gnu packages base) > #:use-module (gnu packages bison) > #:use-module (gnu packages check) > #:use-module (gnu packages compression) > @@ -57,6 +58,7 @@ > #:use-module (gnu packages python-xyz) > #:use-module (gnu packages readline) > #:use-module (gnu packages rsync) > + #:use-module (gnu packages sssd) > #:use-module (gnu packages sqlite) > #:use-module (gnu packages tls) > #:use-module (gnu packages valgrind) > @@ -782,3 +784,78 @@ directory onto a single drive and create > FreeDesktop.org Trash specification > compatible directories.") > (home-page "https://github.com/trapexit/mergerfs-tools") > (license license:isc)))) > + > +(define-public autofs > + (package > + (name "autofs") > + (version "5.1.6") > + (source (origin > + (method url-fetch) > + (uri (string-append > + > "https://mirrors.edge.kernel.org/pub/linux/daemons/autofs/v" > + (version-major version) "/autofs-" version > ".tar.xz")) > + (sha256 > + (base32 > + > "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx")))) > + (build-system gnu-build-system) > + (inputs `(("util-linux" ,util-linux) > + ("nfs-utils" ,nfs-utils) > + ("kmod" ,kmod) > + ("e2fsprogs" ,e2fsprogs) > + ("sssd" ,sssd) > + ("linux-headers" ,linux-libre-headers) > + ("libtirpc", libtirpc) > + ("binutils" ,binutils) > + ("rpcsvc-proto" ,rpcsvc-proto) ;for 'rpcgen' > + ("libxml2" ,libxml2))) Order *inputs alphabetically. rpcsvc-proto should be native. So would binutils, but including it at all is probably a mistake. linux-libre-headers aren't necessary. Nor is kmod. Sometimes, configure scripts check for things just for fun. > + (native-inputs > + `(("flex" ,flex) > + ("bison" ,bison) > + ("pkg-config" ,pkg-config))) > + (arguments > + `(#:tests? #f ; no tests Despite the ‘warning: foo not found, disabling the foo tests’ ./configure warnings I didn't find them either. > + #:validate-runpath? #f This is a sign that something is broken & needs to be fixed, not ignored. > + #:configure-flags '("--enable-force-shutdown" INSTALL describes this as: --enable-force-shutdown This option enables the use of the USR1 signal to force an unconditional unlink umount of all mounts at shutdown. Safety aside, I read that as ‘requires init/service to actually send the signal on shutdown to have any effect’. There's no autofs service that does so yet. I don't have much of an opinion about it. Does anyone think it's useful or unsafe? > "--with-path=$PATH" In Nix, everything between ''fun quotes'' is evaluated by a shell. In Guix, unless ./configure does its own eval somewhere (I didn't check), this just sets the path to (literally) "$PATH". > + "--enable-ignore-busy") > + #:phases > + (modify-phases %standard-phases > + (add-before 'configure 'pre-configure > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (setenv "exportsssldir" (string-append (assoc-ref > inputs "sssd") > + > "/lib/sssd/modules")) > + (setenv "HAVE_SSS_AUTOFS" "1") Pass these as #:configure-flags when possible — it's declarative®. > + (setenv "YACC" (string-append (assoc-ref inputs > "bison") > + "/bin/yacc")) > + (setenv "RANLIB" (string-append (assoc-ref inputs > "binutils") > + "/bin/ranlib")) > + (setenv "RPCGEN" (string-append (assoc-ref inputs > "rpcsvc-proto") > + "/bin/rpcgen")) > + (setenv "LEX" (string-append (assoc-ref inputs > "flex") > + "/bin/flex")) > + (setenv "MOUNT" (string-append (assoc-ref inputs > "util-linux") > + "/bin/mount")) > + (setenv "MOUNT_NFS" (string-append (assoc-ref > inputs "nfs-utils") > + > "/sbin/mount.nfs")) > + (setenv "UMOUNT" (string-append (assoc-ref inputs > "util-linux") > + "/bin/umount")) > + (setenv "MODPROBE" (string-append (assoc-ref > inputs "kmod") > + > "/bin/modprobe")) > + (setenv "E2FSCK" (string-append (assoc-ref inputs > "e2fsprogs") > + > "/sbin/fsck.ext2")) > + (setenv "E3FSCK" (string-append (assoc-ref inputs > "e2fsprogs") > + > "/sbin/fsck.ext3")) > + (setenv "E4FSCK" (string-append (assoc-ref inputs > "e2fsprogs") > + > "/sbin/fsck.ext4")) All of this can be avoided with: + (add-before 'configure 'fix-hard-coded-search-path + (lambda _ + (substitute* "configure" + (("^searchpath=\".*\"") + "searchpath=\"$PATH\"")) + #t)) allowing the configure script to do the work of finding things. > + ;; Allow <rpc/rpc.h> & co. to be found. > + (setenv "CPATH" (string-append (assoc-ref inputs > "libtirpc") > + "/include/tirpc")) > + ;; Makefile.rules defines a usable STRIP only > without the env var. > + (unsetenv "STRIP") > + #t))))) Here too: I don't know if you simply copied these from Nix[0] because they were there, or if you encountered errors without them, but neither should be needed. I suspect STRIP is only needed because of the bogus binutils input above, if at all. > + (home-page > "https://www.kernel.org/pub/linux/daemons/autofs/") > + (synopsis "Kernel-based automounter") Which kernel? ;-) > + (description "Autofs controls the operation of the > automount daemons. The > +automount daemons automatically mount filesystems when they are > used and > +unmount them after a period of inactivity. This is done based > on a set of > +pre-configured maps.") The first sentence describes the autofs *command*. > + (license license:gpl2))) Kind regards, T G-R [0]: https://github.com/NixOS/nixpkgs/blob/84cf00f98031e93f389f1eb93c4a7374a33cc0a9/pkgs/os-specific/linux/autofs/default.nix [1]: https://issues.guix.gnu.org/42033 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#42031] [PATCH] gnu: Add autofs. 2020-06-25 12:27 ` Tobias Geerinckx-Rice via Guix-patches via @ 2020-06-25 19:59 ` Oleg Pykhalov 2020-06-28 9:40 ` bug#42031: " Tobias Geerinckx-Rice via Guix-patches via 0 siblings, 1 reply; 5+ messages in thread From: Oleg Pykhalov @ 2020-06-25 19:59 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: 42031 [-- Attachment #1.1: Type: text/plain, Size: 48 bytes --] Hi, Your patch looks good for me except minor: [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: sddm --] [-- Type: text/x-patch, Size: 467 bytes --] diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 7c3a19305f..0d62e64bf0 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -59,6 +59,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) + #:use-module (gnu packages sssd) #:use-module (gnu packages rsync) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) [-- Attachment #1.3: Type: text/plain, Size: 157 bytes --] I've tested your autofs recipe with my ext4 flash drive and sshfs. Both works great. I think you could go a head with merging your cleaner recipe. Oleg. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply related [flat|nested] 5+ messages in thread
* bug#42031: [PATCH] gnu: Add autofs. 2020-06-25 19:59 ` Oleg Pykhalov @ 2020-06-28 9:40 ` Tobias Geerinckx-Rice via Guix-patches via 0 siblings, 0 replies; 5+ messages in thread From: Tobias Geerinckx-Rice via Guix-patches via @ 2020-06-28 9:40 UTC (permalink / raw) To: Oleg Pykhalov; +Cc: 42031-done [-- Attachment #1: Type: text/plain, Size: 374 bytes --] Oleg, Oleg Pykhalov 写道: > Hi, > > Your patch looks good for me except minor: Thanks! Lost in the git dance. > I've tested your autofs recipe with my ext4 flash drive and > sshfs. Both > works great. I think you could go a head with merging your > cleaner > recipe. Pushed as 5c10200b5499826a2e430a46fdb664d269857278! Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-06-28 9:41 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-06-24 15:56 [bug#42031] [PATCH] gnu: Add autofs Oleg Pykhalov 2020-06-25 10:12 ` Ludovic Courtès 2020-06-25 12:27 ` Tobias Geerinckx-Rice via Guix-patches via 2020-06-25 19:59 ` Oleg Pykhalov 2020-06-28 9:40 ` bug#42031: " Tobias Geerinckx-Rice via Guix-patches via
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.