[arch-releng] About AIF and Arch Linux

Dieter Plaetinck dieter at plaetinck.be
Fri Jul 27 07:07:02 EDT 2012

On Mon, 23 Jul 2012 11:40:55 +0200
Alexander Rødseth <rodseth at gmail.com> wrote:

> Hello Dieter,
> I see that you've done a lot of good work on AIF and I am sad to see
> it gone from the default Arch ISO. I wish Arch to do well and think
> some sort of installation script/program is in order.
> The things I love about AIF is that the look is really minimalistic
> and nostalgic, that it is easy and quick to navigate with a keyboard
> and that it fits in with the no-compromise and minimalistic approach
> of Arch.
> However, I also wonder, if you were to write AIF from scratch, how
> would you do it?

if i would rewrite it, i'ld do it in python. bash has many limitations which i needed to work around (specifically wrt modules that need to override/inherit stuff, datastructures to describe complicated filesystem arrangements (json, yaml?) and other datastructures to pass data around (lists, dictionaries) would be useful)
that said, you often just want to execute commands directly.  for that, it's hard to beat bash.

> Would it make sense to have auto detection of what
> type of computer it is on?

maybe, a bit. depends on what you mean

> And, would it make sense to have "machine configuration packages" that
> could be search and installed by users, so that setting up an Arch box
> as say, a media server, would be as easy as "aif -S mediaserver"?

a package is not the right thing to use. it's not easy to quickly customize, and you're bound by the limits of what a package can do.
a config file for an installer (like aif) is more appropriate.
also integration with existing tools like ansible, chef or puppet is something worth looking into. (ansible being way easier, and also in python)
augeas is interesting too, though it adds a lot of complexity for only a small gain (maybe if it has a good python api, worth looking into)

being compatible with kickstart configs would be nice too, although kickstart is aimed to be very imperative; aif allows to just define a filesystems structure in plaintext declaritively and it'll do the right thing (and figure out how to roll back if anything fails, although it seems that feature rarely or never got used).  it's hard to match that with what kickstart does.

> I really like the Go programming language and the idea of
> configuration-packages that are declarative. The thought of creating
> AIF2, has struck my mind.

sounds complex. as a user you want to be able to define complicated things, so if you want declarative configs, your format must support many complicated setups, and actually get the system into the configured state.  AIF actually does this for some "basic" things (like filesystem settings), but adding users, configuring software should be done by executing commands and/or editing config files directly.  usually it's easier for both the user and your implementation to make it imperative.

> If possible, I would like to both pick up the AIF-ball, and also
> become an Arch Linux developer. I'm not sure if and how much I would
> have to prove myself for the current crowd of Arch Linux developers
> and trusted users for this to be feasible.
> I do however have a sort of vision for what AIF could become, a few
> years of programming behind me, moderate communication skills, good
> intentions and a healthy dose of "stick to it"-attitude.
> What do you think? Could something positive come of this?


More information about the arch-releng mailing list