[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#77106] [PATCH 0/1] Add autofs-service-type
From: |
Ian Eure |
Subject: |
[bug#77106] [PATCH 0/1] Add autofs-service-type |
Date: |
Tue, 18 Mar 2025 17:14:20 -0700 |
This is a draft of a system service to manage autofs, the lack of which has
been an impediment to my daily-driver experience with Guix. It’s in working
status, but incomplete (missing documentation) and may need other
adjustments. I’m seeking feedback now, so I don’t waste time writing
documentation for a moving target.
What it does:
- Lets you declaratively configure autofs in your operating-system.
- Computes requirements based on the configuration, ex. if you have all local
mounts, no requirements are added, but if you configure NFS mounts, it
requires networking and rpc.statd services.
- Supports direct mounts and indirect maps.
- Flexibly supports any filesystem and mount options.
- Creates mountpoints on service activation.
- Most important of all, Works On My Machine.
What it lacks:
- Support for many autofs options, ex. verbose logging, "timeout for caching
failed key lookups," a handful of others. I’ll add these in later
versions of the patch.
- Support for options per indirect map, ex no/browse, timeout, etc. I can add
these if desired, but it’s somewhat annoying to do so.
- Support for autofs maps other than the "file" type. Autofs supports many
map formats, including esoteric things like maps stored in hesiod, nis, yp,
ldap, etc. Most of these require fairly involved configuration, and are
difficult to validate -- I don’t run hesiod or LDAP -- so I’ve omited them.
The "file" type covers the majority of usecases. It’s possible to extend
this patch to support them, should someone be motivated to do so.
- Documentation. I want the code to be firmed up more before writing this.
There are also some descriptions that need expanding.
Areas which could use attention:
- I’m not completely happy with how the config serializer works, for example,
the `name' argument is mostly not used. I’m not sure if the model for this
is a poor fit for my usecase or if I’m using it wrong. Feedback appreciated
here.
- I opted to use a loose configuration setup for mount options, where they’re
specified as arbitrary lists. Options in the form `'(noatime (remount . ro)
(wsize . 8192))' result in `noatime,remount=ro,wsize=8192'. While I think
it might be nice to have fully explicit options, this would require very
large configuration records, one per supported filesystem. I decided the
cost-benefit wasn’t there.
I considered reusing the `file-system' record from (gnu system
file-systems), but it’s a poor match for this usecase, as it includes many
irrelevant fields.
- The name. I went with autofs-service-type to match the package, but
"automount" is the name of the actual binary, and they’re used fairly
interchangeably. It `provides' both autofs and automount.
- Autofs itself doesn’t let you specify a configuration file and hardcodes the
path to it (/etc/autofs.conf). Currently, the service doesn’t create one at
all (it specifies the supported arguments on the command line), so autofs
complains about that. I could add config file support if desired, but on a
scale from One to Jazzed about it, I am Not Jazzed.
Ian Eure (1):
gnu: Add autofs-service-type.
gnu/services/nfs.scm | 305 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 299 insertions(+), 6 deletions(-)
--
2.48.1
- [bug#77106] [PATCH 0/1] Add autofs-service-type,
Ian Eure <=