[arch-dev-public] dropping mkinitcpio-nfs-utils

Dave Reisner d at falconindy.com
Wed Jul 6 11:58:00 UTC 2016

On Mon, Jul 04, 2016 at 08:12:42PM -0300, Gerardo Exequiel Pozzi via arch-dev-public wrote:
> On 07/04/16 14:16, Dave Reisner wrote:
> > Hi all,
> > 
> > I'd like to drop mkinitcpio-nfs-utils from the repos. I suspect (but
> > would be happy to be proven wrong) that nobody uses this package. It's
> > based on code extracted from klibc which, while still a somewhat active
> > project, is lacking sorely in features in the network stack and NFS
> > itself (supporting only nfs3).
> > 
> > If someone were interested in reviving this in the future, I'd suspect
> > that it would be best to start from the ground up with a systemd-based
> > initramfs, using nfs-utils and systemd-networkd. The best part of this
> > deal would be that someone who actually uses this setup would then be
> > maintaining the code!
> > 
> > Any objections?
> > 
> > d
> > 
> Yes, used in archiso.
> Will be great if posible to migrate to pure systemd, but it does not
> provide such functionality and flexibility (cmdline params).
> Three years ago, I proposed a feature request in systemd, for some
> related things, but nobody was interested [#1].
> [#1]
> https://lists.freedesktop.org/archives/systemd-devel/2013-July/012397.html

Well, it seems rather unfair that we attempt to treat the kernel command
line as environment. Any resemblance to shell environment variables is
merely a coincidence, IMO, as it's much closer to command line arguments
to an ordinary userspace program (hence the proc filename 'cmdline').

With that in mind, it doesn't really seem suitable to push this upstream
to systemd as it would need to make arbitrary decisions about what to do
with data in cmdline which isn't exportable through the shell. Should it
sanitize these (and would it do this by replacement or just dropping the
invalid data)? Assign arbitrary values to bare words? Drop them
entirely? I think it's rather app-specific as to how this is handled,
since the data which is invalid to the shell may very well not be
invalid elsewhere.

With that in mind, would it be useful if I were to refactor the cmdline
parsing logic in mkinitcpio to make it reusable? I went ahead and wrote
some unit tests against the existing parser (findings a number of bugs)
and then rewrote it to do exactly this:


Now you can do something like:

  cmdline_item_callback() {
    local key=$1 value=$2

    case $key in

  . ./init_functions
  process_cmdline 'cmdline_item_callback'

Perhaps you could use this to write out something suitable as an
EnvironmentFile which ArchISO could source and use in its units.

Let me know what you think,

More information about the arch-dev-public mailing list