linuxconf 1.21 changes log

linuxconf 1.21 changes log

previous versions: 1.20r2
Change log index
Linuxconf 1.21 is the sum of various technology coming along together. This should open new doors for Linuxconf.


linuxconf-wrapper: new horizons for Linuxconf

The linuxconf-wrapper utility may open new doors for Linuxconf. It lets you use Linuxconf module in a stand-alone mode, without Linuxconf. This is different from the command line "linuxconf --modulemain module" which is simply a different entry point to Linuxconf.

There are various possible usages:

Module accountbatch: New

The module accountbatch lets you maintain the user account database (/etc/passwd, shadow, smbpasswd) from another database. The module expect a file having the following format:

user-id   group   user-name  shell  password
Each field is separated by a tab. The module accept also the output of a command. From there, you can either add or delete accounts. Accounts found in the file, but not in /etc/passwd will be added. Account already in /etc/passwd won't be affected. Account in /etc/passwd and not present in the file will be deleted. When using deletion, you must specify on which groups the module is authoritative. It won't delete all account not found in the file: Only accounts member of specific group, or with a group id higher than a specified value.

The module has a test button, so you can safely try it and do nothing. Once you have process the file, you can use the module again and it won't do anything, since everything is in sync.

The module allows you to keep several configuration and replay them later (which file or command authoritative on which groups and so on).

Module apache: almost complete rewrite

The module apache has been adapted to the VIEWITEM system. Originally the module was parsing the whole httpd.conf into some internal form and rewriting it, trying to keep comments and so on. the parsing was overly complicated and sometime, not reliable.

Moving to VIEWITEM simplified the module to no end. Further, it has enhanced its abilities:

Give it a try!

Module dhcpd: DHCP to DNS

The DHCP to DNS system was mangling valid netbios name to valid DNS name. A check box lets you reject netbios name not DNS compatible. Further, single character non compliant DNS name (thus mangled to a single - character) are always rejected.

Module dialout: On-boot races

The pppwatch utility is now doing some locking to prevent multiple instance to start for the same PPP configuration. Unlikely to happen in general, but possible...

Module gurus: New

The module gurus has been made possible, thanks to the virtual registry technology implemented by Tim Young. A gurus is a helper, designed to assist the initial configuration of something. A guru may be seen as a set of one field dialog, each one with a big intro and a "next" button (and a back). You often find these systems in installation procedure. They are sometime called wizard.

The Linuxconf gurus are different in various areas. First, because of the virtual registry, the gurus do not have to duplicate any parsing/file update capabilities found in other Linuxconf modules. They can use it just by reading and writing variables. Pretty cool.

Gurus are focusing (or will) on global validations, much more verbose dialog introduction.

The interesting aspect of the gurus module is the framework controlling which dialog is presented. The framework is controlling the path, probing each dialog to know if it is requested or meaningful based on the previous input.

Gurus are not only good for initial configuration. They can walk over and already configured system. They are useful to review configuration step by step.

But the gurus framework stands a bit apart because of one key feature. The "path" to follow is hi-lighted graphically. Think of it as a train station map. While you advance in the dialog,s you move to other station along the map. If a dialog make a path impossible, you will see it (lines become red). If you have not yet visited (information not filled) a dialog, the "station" is presented as an empty circle. If the information was filled, the circle is filled (all blue). If the information is not valid, the "station" is presented as a broken red circle. For example, in the network gurus, if the default gateway is not reachable on the local network, a red station is presented.

This graphical representation might become a key to trouble shoot problems. Gurus may become "the" place to enter as much validation as possible.

You can check some screen shots of the gurus module at

Module printer: various enhancement

May the author step in please :-)


Module binary compatibility

To support the new linuxconf-wrapper, we had to break the module API a little bit. Because of this, we increase the API revision level. This makes all external modules incompatible. They will have to be recompile (and modified slightly). Updates for those should be available in a few days.

So if you try to update Linuxconf (using RPM), it will complain if you are using modules such as userinfo, usersbygroup and so on. The only way to upgrade to 1.21 is to either fix the modules, or un-install them.

The change is really minor. The LINUXCONF_MODULE::execmain function has an extra parameter: bool standalone. It tells if the module is run using linuxconf-wrapper or Linuxconf itself (standalone == true means linuxconf-wrapper).

On demand system profile archiving

The is a flag to turn on configuration file archiving. The archiving is done every time Linuxconf tries to update the file. If RCS is available the cfgarchive is using it. This feature is there for a long time, but was "off" by default. It is now "on" by default. Digging in /etc/linuxconf/archive, one will be able to track all changes made by Linuxconf. A new module is coming (updatemon) which will make use of the archive (and allow you to undo changes).

Bug fixes

Little flaw in crontab editor

The syntax */N was not accepted by the parser. Fixed!