linuxconf all changes logs

linuxconf all changes logs

Change log index

Version 1.13r12

1.13r12 is a mix of enhancement and bug fix releases. The 1.12 and 1.13 version have started the tighter integration with other distributions such as SuSE and Conectiva, reusing most of the work done with RedHat.

This is probably one of the last release in 1.13. 1.14 will target enhancement to the user interface as well as a push in the module technology, notably the availability of stand-alone modules.


Work is continuing on the SuSE module to support more feature of the /etc/rc.config file. Network devices configuration is now supported.

All command line options in one screen

It is now possible to see all command line options, including those of the modules by doing

linuxconf --help

The module API had to be extended so each module can report its own set of command lines. See LINUXCONF_MODULE::usage().

bin-elf package available again

Since 1.10, I did not update the bin-elf binary package, mainly used by Slackware users. I have now the proper setup to produce on a regular basis bin-elf package again.

Inserting a new menu entry in a module main menu

Until now, it was only possible to register a menu entry in some predefined menu of Linuxconf's core. It is now possible to register in module menus. The module must be compliant (two lines must be added to register the insertion point). So far only the dnsconf module has those lines.

See LINUXCONF_MODULE::setmenu() and LINUXCONF_MODULE::domenu(). There are now two versions of those functions.

Because of this change, the binary compatibility of the modules API could not be preserved. This means that all modules must be recompiled. They do not have to be modified though. Install the new linuxconf-devel package before recompiling :-) If you fail to recompile the modules, Linuxconf will prompt you about the incompatibility.

More emacs key-binding in text mode

ctrl-K was added in text mode. It kills the input field from the current cursor position to the end.

New main menu entry: Miscellaneous services

A new entry has been added in the main menu. It does not contain any entry by default. Some module will register there when they are unrelated to networking, user account, file system and the boot mode.

redirect email for a user from the account dialog

The mailconf module has been enhanced. Its co-manager for the user account dialog had the ability to enter email aliases for the user (address pointing to this account). A new field has been added called "Redirect messages to". This allow you to forward email for an account to another email address.

This ability makes the user account dialog more complete in this area. Co-administrator won't need to fiddle with the general email aliases facility (which requires root privileges under Linuxconf) to complete their task.

Treemenu has now new buttons

The treemenu mode was lacking a help button. It now shows the help of the main menu. The treemenu mode is still lacking a way to access contextual help of the various sub-menu though.

Another button was added and this should please a lot of people. It is called "Act/changes". It triggers the "Activate changes" of the "control panel" menu, which is the same process you get when you quit. Using that button, it will be much nicer to do various changes and trigger the activation without leaving from Linuxconf, or without digging to locate the control panel menu.

Updating the DNS out of DHCP information

Since version 1.13r9, it is possible to update the DNS from the DHCP server by using a special command line:

linuxconf --modulemain dhcpd --updatedns

To use this command line, one has to fill the "Update DNS domain" field because DHCP host entry only provide a name, not a name + domain. Once this is done, you can put in a cron job something like this:

if linuxconf --modulemain dhcpd --updatedns
In 1.13r12, we are going a bit further. There is now a checkbox in the dialog, right below the "Update DNS domain" field. It is called "Update DNS from cron". You select this checkbox and a special command "/usr/lib/linuxconf/lib/" is added to root cron. You UN-check it and it is removed. It can't be easier :-)


module uucp

uucp support was part of Linuxconf core for no need reason. It was already designed às a module, but was linked statically. It is now a module, but deliver with the main Linuxconf package.

Bug fixes

Problem while computing the MD55 checksum of

A feature change in the POPEN object done in 1.11 did cause a problem in the computation of the MD5 checksum of Linuxconf computes the checksum right after generating a Later, whenever Linuxconf probes for changes, it generates "in memory" a new and computes its checksum. If the checksum does not match, it knows a new has to be generated. Linuxconf also use this checksum to find out if the current /etc/ was generated by itself (or was not modified by the administrator). Both of these functionalities were broken by this misfeature.

The side effect of the fix is that the next time you will generate a, it will complain that the current one was not generated by Linuxconf, which is probably wrong.

This bug explains why Linuxconf did not catch the various changes people were making in the /etc/mail/mailconf rules.

Rework of some messages to help translators

Translators had a problem with some messages in Linuxconf. Messages related to the Add and Del button were puzzling because they were in fact the combination of two messages. One was fixed and the other followed the context. The end result was not easily translatable for some languages.

All construct like this one were modified so translators will be able to complete their job on this side. They will have to review a couple of message like this one:

Select [Add] to add ... generation under SuSE

The mailconf module was not generating a proper on SuSE. It was generating an improper path for the mqueue directory (which is located in /var/mqueue on SuSE).

Version 1.13r14

1.13r14 is mostly a bug fix release. It starts also a reorganization of the Linuxconf project, mostly the Linuxconf web site. Starting with this change log, the site is going more and more dynamic, making my life much easier. This should allows me to make more releases and provide bug fixes in a timely manner.


Configuring a new network device

When you were configuring a new network device, for which no kernel module is currently loaded, Linuxconf was not activating the networking state. You either had to reboot or manually load the kernel module for Linuxconf to notice. This was only visible on Red Hat (when using the --hint facility) Fixed!

Host routing fixed

Linuxconf was not properly setting host routes. Fixed!

Installing the wrong rpm ...

Some people installed version for redhat-4.x on redhat 5.2. While those version are produced from the same sources, version produced for redhat-5.1 and 5.2 are dealing differently with user accounts: They are using the /usr/sbin/userxxx utilities and PAM.

Unfortunately, an RPM produced for redhat-4.x installed on redhat-5.2 which was supposed to operated correctly, was producing all kinds of strange result. For one, Linuxconf was stopping to update passwd files completely.

Now this is fixed. And Linuxconf spits one notice message to tell you that you have the improper version. But installing the wrong RPM should be armless ... now. way

IP aliases on kernel 2.2

Linuxconf is moving to support kernel 2.2. Not everything is ready yet but IP aliases should work now. There does not seem to be a way to have this as a module and there does not seem to be a way to find out if the kernel does support aliasing.. So for now, Linuxconf relaxes its check and configures the aliases.

More translations

I have received update for Finnish and Swedish

Stuff DNS reverse zone at creation time

When you create a new DNS reverse zone (, the dnsconf module walks all the other zone and preset this new zone. After that dnsconf will maintain the reverse mapping transparently, as it has always done. This is handy as we generally "learn" about those reverse zone well after the DNS is created :-)

Support for netbios-node-type in dhcpd

The dialog has been enhanced to support this new field. A combo box type (text field with helper pop-up) presents the available choices.

Support for SuSE 6.0

The install script in the RPM has been enhanced to deal with SuSE 6.0. They still work on SuSE 5.x. I have not received my SuSE 6.0 package, so for now can't test this. I can't produce SuSE RPM for 6.0 as well.

syncmsg now usable for independent modules

Until now, module developed outside of the Linuxconf tree were not as easy to translate and keep up to date by translators. To get started in a module (say managerpm), one just have to do

make LANG=id syncmsg

The first time, it creates the dictionary file for the language ID. The next time, it will update the file with the changes.

Updating the DNS from the dhcpd server

Netbios names with spaces are valid. Linuxconf turn those spaces into - before updating the DNS, This yields usable DNS names.

Bug fixes

Error message while installing

Linuxconf is called during some package installation (its own installation) and in some condition, reports errors. Until now, Linuxconf was confused not to be able to display the error message interactively (no tty available) and was quitting. It now output those on the error channel and continue operation (if possible).

The HTML demo works again

The demo available at is working again. Have fun!

vdeliver and accentuated chars in aliases

vdeliver was going mad with accentuated character in aliases file. It was looping for ever, sending error mail one after the other. Fixed!

Version 1.13r14.1


Enhancement to the GUI protocol: textarea

A new widget has been defined in the GUI protocol. This is textarea (a simple text editor). So far, linuxconf does not use it. Linuxconf-gui (wxxt-linuxconf) fully support it. gnome-linuxconf has to be fixed. The ncurses mode also has to be completed

Some fixes for debian (file permissions)

Some contrib fixes has been merged. Some other contrib will follow soon

Support for the NFS nolock mount option

This is for the new nolock (in kernel 2.2) NFS mount option.

Bug fixes

Small fix for SuSE install

The had a typo (an == instead of an = sign) in it.

Version 1.13r14.2


PPP over ssh: no need for IPs on client side

The dialout module was requesting the client to provide both IP numbers (locale and remote). This was not needed. So the check was removed. The client can provide the IP numbers as an option in the few cases where providing them on the server is not practical.

pppdialin was not handling the proxyarp ppp option

There is now a check-box for proxyarp both in the pppdialin defaults and for each ppp accounts. The /usr/lib/linuxconf/lib/ppplogin script has been updated as well.

Providing the local IP for each PPP acccount

The pppdialin module has been enhanced to allow a different local IP number for each PPP account if needed. Originally, the local IP was only configurable in the default screen. You can still set it there, but you can override it for specific PPP accounts.

Version 1.13r15

1.13r15 is a collection of bug fixes and little enhancements.


Delete DNS domain from the command line

You can now delete a domain by using the following command

/sbin/dnsconf --deldomain domain

HINFO and RP records now supported in DNS

The dnsconf module has never supported those records and was complaining when one was adding those by hands. It is fixed.

More translations updates

I have received contributions from the French, Swedish, Slovak, Spanish and Portuguese. Keep on the good work.

various fixes for Debian packaging

Various fixes were done to better match debian 2.x permission settings and configuration file paths. This will help the Linuxconf Debian maintainer.

Bug fixes

LILO root device too restrictive

The LILO configuration was too restrictive. The only root device accepted was /dev/fd? (the floppies) or the various partition seen by "fdisk -l". I have added /dev/md* to this list (multiple device and raid)

Missing files for SuSE installation

1.13r14 was missing 2 files needed for the first time install on SuSE (rcsysv-suse6.0 and rcsysv-suse5.0). This should be much better now :-)

Version 1.13r15.1


disk quota for vdomain inboxs

I have added a quota feature for virtual email domain. This is settable per domain (all users sharing the same limit). The default is not limit (0 means no limit). This is enforced in vdeliver. It is not relying on kernel quota feature because generally vdomain users are sharing the same UID space (by default, changeable). It was easier to handle it this way.

This feature can be controlled from the command line when creating a new virtual email domain with the --quota option. See the linuxconf --help to see the syntax. I still have to complete the help about this topic.

Optional [global] directive in /etc/smb.conf

The samba module has been enhanced to support smb.conf files with or without [global] directive. It assumes that all directives at the beginning of the file are owned by the [global] section.

The TXT record now supported in dns zone files

Another record (TXT) is now properly managed by the dnsconf module. While you can edit those records from Linuxconf, you can enter those records if you need in the various zone file.

Version 1.14r1

1.14 will be the basis for the next Red Hat release. It only serves as a common reference. 1.14r1 is has some enhancement and will be the basis for various new projects, including enhancements to the GUI.


More translations

I have received deliveries for Portuguese, Slovak, Norwegian and Swedish

Note that French and Portuguese are completed.

pppdialin is more complete (postlogin config)

The pppdialin module was incomplete. New scripts has been created to fully support the routing and mail delivery configuration. Previously those configuration (ppp accounts) were unmanaged. The following scripts has been added to the distribution:

  • /usr/lib/linuxconf/lib/ppppostlogin
  • /usr/lib/linuxconf/lib/ppppostlogout

Calls to those scripts are inserted in /etc/ppp/ip-up and /etc/ppp/ip-down when you visit the "default PPP parameters" dialog, found at the end of the users account menu (policies area). Each time you do a change in this dialog, pppdialin checks that the ip-up and ip-down scripts are ok.

Note that this added functionality is controlled by a modified /usr/lib/linuxconf/lib/ppplogin and as such is only available to "chat" users (as opposed to PPP accounts using PAP).

Quitting from a dialog using the window manager controls

There was a flaw in the GUI protocol (and the front-ends). When one was clicking on the "close" button (the X on the right side of the window or the close entry in the menu on the left side), Linuxconf was not closing the window.

The protocol has been enhanced so the front-end can specify this action, instead of faking a button. The action "X" is returned and Linuxconf interprets this as an escape from the dialog.

The document doc/guiapi.sgml was updated accordingly.


treemenu initial state

When you install a new Linuxconf, or a new module, the treemenu is rebuilt and the state of the branches is reset. Originally, all the branches for collapsed. Now we do the reverse. Initially, all the branches are opened, so one can see quickly that the menu tree is large and worth investigating.

After the upgrade, the tree works as usual, preserving from one session to the other the state.

Version 1.14r1.1


More french translations

Bug fixes

Changing a user own password using web mode

This was buggy for a long time now. While the password was effectively changed, the HTTP request was never ending.

Version 1.14r2


dnsconf: more support for bind8 features

The following features are now supported (you can set them from the user interface):

  • Access control lists (acls). Thanks Mathieu...
  • option allow-query
  • option allow-transfer
  • option listen-on
  • zone allow-query
  • zone allow-update
  • zone allow-transfer
  • zone also-notify
  • zone notify flag

Further, unknown directives (Unmanaged by Linuxconf) are properly stored and rewritten back. I hope that this module will finally please all bind8 users... Check it out!

New inittab module

A new module has been created to manage the /etc/inittab file. This module is part of the Linuxconf core distribution. The module is fairly limited for now as it allows only to change the default run-level.

The module export an API to allow other module (or the Linuxconf core) to set/get the default run-level.

The first usage for this module is to allow Linuxconf to update the default run-level in the "boot mode/default boot mode" screen. Note that those using the askrunlevel utility (boot time menu) won't see any advantage. Those not using it will get an easy way to switch between graphic and text mode.

New strategy for sysv scripts

Linuxconf has two strategies to deal with System V init scripts. Both strategies are used/needed to deliver reliable activation control (activate changes). One strategy is used when sysv script are Linuxconf aware (such as found in Conectiva and Red-Hat distributions). In this case, Linuxconf blindly obey the sysv script rule. This is the way things should work on all distribution using SysV scripts.

Unfortunately, most distribution do not provide sysv script with information usable by Linuxconf. They are black boxes. Until now Linuxconf was overriding completely various sysv script in those distribution.

Now there is a new strategy that will be put in place in the near future. For each distribution, there is a directory /usr/lib/linuxconf/DIST/sysv. In that directory, we can put file that complement or override if needed the corresponding service in the distribution. Using this strategy, we will be able to better integrate with the distribution. If one day, the distribution decide to be Linuxconf-aware, they will simply fold the information in those files in their own sysv scripts..

Those interest in the enhanced sysv script concept promoted by Linuxconf can read

user accounts: fixing ownership of home directories

Until now, Linuxconf was not helpful when a user account was pointing to a HOME directory with improper ownership. You were not allowed to modify this account until the ownership issue was solved.

Linuxconf now pops a dialog allowing to either one of the following:

  • Do nothing
  • Set the ownership of the directory only
  • Set the ownership of the directory recursively

Note that when one of the last two option is selected, Linuxconf drops all privileges. You must be root to reassign ownership of a home directory.

Bug fixes

basic host information: validating IP numbers

The basic host information was validating the IP numbers without reference to the netmask. This was too restrictive. Now IP numbers are validated and Linuxconf will flag properly usage of the network number and broadcast address as the host IP number.

httpd.conf: better handling of unknown directives

When rewriting the httpd.conf file, Linuxconf was inserting a TAB in front of all directives which it does not manage. Now those directives are rewritten the way they were read.

Setting the keyboard key-map

The feature dialog was buggy. Linuxconf was not using the proper strategy to browse though the various key-maps files. The help list was always empty. Fixed!

Version 1.14r3

1.14r3 is a bug fix release. 1.14r2 has turned out to be the buggiest ever with many unrelated bugs, all related to the same problem. Oddly, none of those bugs ever shows up on my development machine, even if the bug was genuine and relatively simple. Odd!


dnsconf: notify field handling

dnsconf was not handling the notify field properly. You can now set the general behavior in the feature screen. You can edit this for the zone for now, but you can set it manually and your setting will be preserved, including the absence of setting (inherit the default).. Thanks Matthieu!

LILO: more flexible for boot device selection

You can now enter any device you want in the "Install boot sector on" field. If you fail to enter something in the help list, Linuxconf will warn you but accept the input.

status module: /proc/mdstat

The module now report the content of the /proc/mdstat file (software raid).

Bug fixes

dnsconf corrupting SOA records

Because of a bug in misc/ and misc/, the various parameters of the SOA records were reset to 0. This is fixed.

dnsconf: IP allocation range

Because of the same bug related to the SSTRING, dnsconf always reports an invalid range syntax.

IP aliases rejecting ranges

Because of the SSTRING related bug, you could not enter IP range for IP aliases.

mailconf: user aliases

Various problems were fixed there, including the web mode and the gnome-linuxconf segfault.

Version 1.14r3.1

Mostly bug fixes related to kernel 2.2.


dnsconf: setting the notify field for primaries

A new field allows you to set the notify field of a zone to either no, yes or default. When set to default, you inherit the global setting you can already configure with 1.14r3.

IP aliases on kernel 2.2

Linuxconf was not able to probe IP aliases on kernel 2.2, so could not tell if they were already properly configured. On kernel 2.2, there is no limit for IP aliases on a device. On 2.0, there was one, configurable, and Linuxconf was able to reconfigure it on the fly. So the code deals with the two cases.

Routing on kernel 2.2

Linuxconf was not reading the file /proc/net/route properly on kernel 2.2. this file may contain old routes (not up) and this was confusing Linuxconf.

Version 1.14r4

This is a small release so people at Red Hat can synchronize (for rh6.0 release). Little enhancements. This is probably the last in the 1.14 era. 1.14 will be kept for red hat updates. 1.15 will be start soon.


Compilation option for modules

Modules were not compiled using -fPIC, which was a no-no on glibc-2.1. Various rules files were changed. If you develop independent module using the linuxconf-devel package, you simply have to modify your Makefile and define the OBJS macro with .os files instead of .o. This new extension means Object Shared.

Some more stuff in the status module

More files in /proc are visible with this module

Various spell checks

Various corrections to the English text.

Version 1.15

1.15 is the start of a new era... 1.14r4 should be in rh6.0, so I have reserved 1.14 for rh6.0 bug fixes. 1.15 will probably concentrate on everything :-), such as better integration with other distribution using the new sysv strategy in place since 1.14, enhancement to the user interface, more modules, more features, more ....


Few enhancements to the mrtg module

I have added more fields in the dialog, allowing more control over the graphics. I have also added two utilities to monitor memory and CPU usage. You can choose them from the pick list.

Module binary compatibility issues

Various problems were fixed in that area.
  • New dependency in the module RPM.

    The Linuxconf package now provides a pseudo feature called LINUXCONFAPIREVxx where xx is the module API revision number. The current number is 13 and is defined in misc/module.h.

    This revision number exists for a long time, but now is enforced at the package (RPM for now) level. This means that new modules built with linuxconf-devel 1.15 will require this LINUXCONFAPIREV13 capability (so will only install with Linuxconf 1.15 or better).

    Note that the binary compatibility for module (revision 13) has not changed for a while, so you can upgrade to Linuxconf 1.15 and you won't get problem.

    This new strategy will allow you to spot at Linuxconf upgrade time which other packages (other Linuxconf modules) have to be upgraded.

  • A timeout on any error reported at Linuxconf startup time. This means that any error dialog (any dialog in fact) shown by the modules at load time, will go away all by itself.

  • Dialog too wide is gone

    The error reported by the modules (dynamic linker stuff) were too wide and Linuxconf text mode UI was not able to cope with that correctly.

To make it short, you will now be able to see errors that should never happen again...

More translations

I have received contributions for Swedish, Slovak, French, Czech , Spanish and even Chinese (Big5).

Bug fixes

file handle leak

A very old file handle leak was fixed. This was visible when using a large amount of IP aliases and complex firewall rules.

Version 1.15r0.1


/var/log/html_access.log: permissions

Permissions for this file have been changed to 600. Not that sensitive information, but it was possible to know what was accessed by the administrator.

Do not regenerate the sendmail database unless ...

When you install the mailconf module, it won't try to update the various db file unless you have generate once with Linuxconf.

firewall module working with ipchain (kernel 2.2)

This is preliminary. I have reworked the module so it either use the kernel 2.0 way or use the /sbin/ipchain utility. I did not use the ipchain-wrapper. I generate (each time) a script in /var/run/ and execute it. Check the output and test your firewall to make sure the behavior is unchanged.

I have notice one problem with forwarding rules. It seems that the semantic associated with the interface is different. Not sure. I have to check in the kernel code to understand what is happening here.

Again, check it out and retest carefully before committing your firewall to this new version.

rtl8139 added to help list

In basic host configuration, this module was added to the help list.

treemenu in askrunlevel: No activate button

When reconfiguring the workstation in the boot time menu (askrunlevel) there were an activate/change button which make no sens. It is removed now

Bug fixes

pppd idle-disconnect parameter

The dialout module was changed to use the idle parameter instead of the obsolete idle-disconnect parameter. Note that you can always use the "other pppd options" field to enter whatever you want. So if you use an older pppd, you UN-check the box and use this field.

Some parsing problem in /etc/named.conf

The way I was managing the "unknown to Linuxconf yet" directive in /etc/named.conf was inaccurate and causing a segfault.

Version 1.15r0.2

This is a sub-release with many contribution, notably in the dnsconf and apache module. Test it out. Beat it. More contribution are on their way so I know there will be an 1.15r0.3 before a 1.15r1. The later should bring peace in the dns world :-)

Note that I am now using a new strategy for sub-releases. They will be available as source, source RPM and diffs. The idea is that I want developers and experienced tester to jump on those, not everyone. Most people are used to upgrade to the latest binary release, so they will be able to continue.


apache ssl support and scope directives

Marcelo have sent various enhancement to the apache module so it deals better with unknown (to the module) scope directives. Those with complex httpd.conf might want to give a try to this one.

There is also support for apache SSL (mod_ssl) extension. Please comment on them also.

dialog_textbox enhanced

A new class DIALOG_TEXTBOX allows more control on this function. It is used to display various text information (such as the help). We can now have text with more buttons. A primary usage of this rework is the managerpm module which will allow various operations when browsing packages. Coming ....

Many translations

I have received translation update for Spanish and Norsk

rework for secondaries

Mathieu have reworked dnsconf a bit to allow previewing of the secondaries. You can now configure access control for slave zones as well.

More work is needed on the user interface side though.

Version 1.15r0.3

This is another sub-release. It contains the result of many contributions and I feel that things are now shaping up. I will do 1.15r1 shortly if all goes well.

Again this is available as diff, source and SRPMS. Check out for details.


Apache module getting more complete and reliable

Thanks to Marcelo, the apache module is doing more stuff and will more gracefully operate with complex httpd.conf file. Here is a copy of his announce

  • fixed a bug with the unknown directives handling.
  • fixed the bug which unknown directives within blocks was been written out of it.
  • fixed the bug which comments before options and allowoverride was been not written back to the conf file.
  • Removed ignore/remove dialog.
  • added directorymatch, files and filesmatch directive support.
  • created a new menu in the main window to configure files* directives.
  • created a struct shared_ssl with common directives used by classes HTTPD_DOMSSL and HTTPD_SSL, created ssl_setdia to set the dialog for this directives.
  • write to config file only if it was previously readed by parser

dnsconf enhancement

Various enhancements were done to dnsconf since 1.15. A major rework of the zone file management (master and slave) has been done by Mathieu. This allows dnsconf to deal with secondary in the same way internally as primaries, in read-only mode. The visible parts are

  • The secondary menu presents the revision date, as read from the SOA record, like the primaries. This is handy when you want to know if the secondary is up to date.
  • In the secondary dialog, there is an preview button. You can look at the domain definition.
  • There is an update button. This trigger a zone transfer. This is handy when you want to make sure a secondary is up to date.

In the future, you should be able to

  • Browse the various records
  • Switch a secondary (slave) to primary (master)

Inter-module API: status module

The inter-module API (see misc/module_api) has been reworked to make it easier for a client to find out if an API is available. The function xxxx_api_available() exists now for all APIs (where xxxx is the name of the API).

The status module now export a small API to let other module present various reports. The first module to use it is the samba module. It uses it to present the output of the smbstatus command.

At some point, the status module will be changed to do a nicer looking job.

The samba module also insert itself in the status menu so you have access to smbstatus from both menu area (samba and status menu). In the future, other module will behave like this I guess.

samba enhancement

The user interface has been reworked. Various fields have been moved around and the dialogs have been reorganized in section (notebook in GUI mode).

Various fields were added. The printers share editing now works as well as the netlogon. I intend to work much more on samba in the coming weeks. Any big samba user out there. Please review this and let me know. Ask for more...

Version 1.15r1

After the 3 sub-releases, 1.15r1 is simply a full release to allow more people to get in. Not much report were sent from the sub-releases (which fixed many problems with dns and apache configuration). I guess this means things were good...

1.15r1 contains only minor stuff compared to 1.15r0.3


mrtg options

The options field has been turned into a Combo, making it easier to locate the available option (gauge for one).

Bug fixes

usermenu, privilege problems

There was a glitch there. When you setup a user menu, it creates a new privilege (one for each new user menu configuration). You must grant this privilege to the various co-administrator using the menu. You must also grant various privileges so they can effectively do something (pop administrator for example). There is no need to grant the main "Linuxconf access" privilege. This was the bug.

Version 1.15r2

A quickie release to fix a show stopper....


default PPP shell changed

A new Linuxconf installation propose /etc/ppp/ppplogin as the default PPP login shell. This is not that useful since this file has to be created and there is already a good default ppp shell which is /usr/lib/linuxconf/lib/ppplogin. So the default was changed to this one. You can still change it to whatever you need.

This makes things easier for pppdialin users...

Bug fixes

Show stopper bug in inter-module APIs

A small bug was introduced in the 1.15r0 releases. This bug was miss-directing calls originally sent to the inittab module, to the dnsconf module. This one was kind of confused...

On some system (I have seen that on a rh5.0), this prevent proper booting of the machine. this is why 1.15r2 was rushed with so little changes.

Version 1.15r2.1


Apache module: new features

This is Marcelo's work. New menu to tune apache (performance) and configure the various modules. Some enhancement to better handle known part of unknown scope directive. Worth a check, especially for those who could never use the Linuxconf apache module before.

More translation

Notably Spanish

New dialog to enable/disable modules

A new dialog was created. Now you can see all available module (core distribution) and enable/disable it using a simple check box. Module now have a one line description.

Note to translator, a new sub-directory was created: descriptions. It has one sub-directory per language, one file per module. Check it out.

Version 1.15r2.2


User account management: generalization

The user account management is now a little more flexible (its API). This was done create the usersbygroup module. The change a minimal and should be invisible in all other dialogs. The changes simply allow a client code to specify which part of the dialog (user account) must be shown/edit-able. Originally, this limitation was kind of hard coded based on the user account type.

For example, when editing POP accounts, there are no privilege section, the shell is not shown and the group is fixed. The users_edit() function now receive a bitmap (USRACCT_EDIT____ in userconf.h) telling how to handle the dialog.

Bug fixes

dhcpd range statement

The module was not supporting the range syntax with a single IP. It is fixed. The end of the range is now optional.

dhcpd updating the DNS

There was a typo in this area. The improper name was used to query the DNS (the non fully qualified name). I wonder if this may explain the problems reported with this feature (updating the DNS from the DHCP lease file). Those affected may want to check that and report to me.

Version 1.15r2.3

This is a quick quick release. Let me know if there are still problems with dnsconf. I will do 1.15r3 later today (full release with binaries)

Bug fixes

dnsconf: Problems with comments breaking SOA records

There was a problem in the parsing of zone files. The SOA record was not parsed properly and this was creating corruption in the timing section (features part of the dialog).

Version 1.15r3


mailconf: basic sendmail configuration dialog

Some field titles were trimmed a bit and the "Accept mail for domain" message is also trimmed if needed.

Module load order

Linuxconf module were loaded in pretty much any order. This translated to non consistent menu option ordering and was also causing a bug in the treemenu management. Now, they are sorted alphabetically before loading.

status module: disk quota report

You can now review the disk quota per user and group, from the status module menu. Basically show /usr/sbin/repquota output...


More Swedish translation including the new module description feature.

Version 1.15r3.1


messag of the day module

It was not possible to create message with empty lines in the middle

More translations

Spanish updates

status module: disk quota report

When displaying disk quota, all fstab entries were shown, including those completely unrelated to disk quota. (NFS mounts, swap).

virtual email domain: delivery

Two enhancements were done in this area.

  • Delivery is now case insensitive, which is the standard.
  • Delivery may match the user full name. This is a new option configurable virtual domain per virtual domain. A user "Jacques Gelinas" will match jacques.gelinas@some_domain.

Bug fixes

Apache clearmodulelist directive

This directives was improperly written in httpd.conf (missing newline).

user account: mail redirection

When deleting a user, his mail redirection (managed by the mailconf module) was not removed from the aliases file.

Version 1.16

1.16 is not that different from 1.15r3. Minor enhancements. See the topic about Red-Hat 6.0 though.


fsconf --updatequota option

the --updatequota option has been added to /sbin/fsconf. It walks all user account and apply configure disk quotas. This function is useful when you add user account manually (without Linuxconf). For example if you use useradd to create a bunch of accounts, those won't have suitable disk quota settings. By doing

       /sbin/fsconf --updatequota

you apply the various defaults (global and group) to these accounts. If you only create new accounts using Linuxconf, then you do not need to use this.

pppdialin: no default local IP

The pppdialin lets you configure the local IP, either in the default configuration, or selectively in each account. If you fail to specify a default pppdialin will select the IP number of the eth0 adaptor. In some special case, you want the client to allocate both IP number (local and remote). You can now specify "none" as the local IP. There is a help list showing that. When you enter none, the /usr/lib/linuxconf/lib/ppplogin script will assume that the client is supplying the local IP.

Red-Hat 6.0 compatibility

Prior to 1.16, my own RPM could not installed properly on rh6.0. The problem was in the packaging, not in the source, as there is very little difference between the Linuxconf supplied by Red Hat and mine (well, 1.14r4 is getting old now :-) ).

There were 2 issues with packaging. The first is that my RPM is built to install on several distribution and it was confused on 6.0. It was installing Linuxconf on 6.0 the same way it was installing on Red-Hat 4.x. Problem.

The second problem made the first much more ... visible, to say the least. In Red Hat Linuxconf 1.14r4, they did a correct enhancement to the RPM. They simply defined /etc/conf.linuxconf as a configuration file. They did it properly, using the noreplace feature.

Unfortunately, my own RPM do not do this. So when you upgrade to say 1.15r3, rpm do the following:

  • 1.14r4 does have a config file /etc/conf.linuxconf
  • 1.15r3 does not have one
  • /etc/conf.linuxconf is not needed anymore, erase it. Hum. No this is a config file, so keep it, but rename it to /etc/conf.linuxconf.rpmsave to show that it is not needed anymore.

So after the upgrade to 1.15r3, you end up with no /etc/conf.linuxconf. If you rename /etc/conf.linuxconf.rpmsave to /etc/conf.linuxconf, things may go better. Failure to do that cause Linuxconf to fail (segfault). Not good.

1.16 now include this config file directive, so upgrading from original redhat 1.14r4 package will go well. Upgrading from my own older package will produce a warning that a the file /etc/conf.linuxconf.rpmnew was created. Rpm does this because it see that the previous Linuxconf package did not have a /etc/conf.linuxconf file, but the new one has one. The noreplace directive tells rpm to keep the current one in place. It creates the rpmnew version to show you that a new file was added to the package, but could not replace an old file on the system.

Anyway, sorry for a long explanation. What does this means to all you rpm users around, and non-redhat rpm users. It means that

  • You can upgrade to 1.16 without worrying.
  • You can't downgrade, unless you manually rename /etc/conf.linuxconf.rpmsave to /etc/conf.linuxconf after the upgrade. If you forget, Linuxconf will tell you (It will segfault).

    Note that this downgrade limitation (problem) will cure all by itself. the problem arises when going from a package which miss and RPM directive about /etc/conf.linuxconf. So downgrading from 1.16r4 to 1.16r3 won't be a problem.

Sorry, I did not find a way out of this. I hope I am not scaring you too much.

samba: security = user, server or share

The security mode could not be configured from Linuxconf. I have added a field for that in the default configuration, so you can pick one of the 3 values: user server share.

Version 1.16r0.1


Apache module: htpasswd edition

This is Marcelo's patch pretty much verbatim.

firewall status

You can now view the IP chains status from the status module.

More Czech translations

Help text. Note for Czech users that the language ID was changed from cz to cs.

More spanish translations

More help files.

Samba helps reworked

The various help screens have be reworked to follow the new layout of the dialogs. These help screens are huge. Using Lynx to view them helps...

Samba module: more features

You can now control more feature of the smb.conf file.

  • The authentication mode field (security=...) was missing the "domain" case
  • You can program the "add user script" and "delete user script". Those field have a help list showing one useful command. Those samba options, combined with the authentication mode set to server or domain, and the password server set to the proper server, allows you to create "administration free" linux boxes. (user account wise).

Viewing help screens with Lynx in text mode

You can now use Lynx to view help screen. Linuxconf help screens are written using SGML-tools, so can be viewed as HTML or plain text. They are much more readable as HTML since you can browse through the structure of the document.

To enable this new feature, you have to visit the "features" dialog and enable the last option. Comments are welcome.

Bug fixes

DHCP to DNS revisited

The facility to update a DNS using the DHCP lease file was buggy. There were two bugs. One with improper parsing of the MAC address (segfault) and the other with improper interpretation of the lease file logic. The later problem was introducing some slowness in the process and also useless updates of the DNS.

Updating a DNS from a large lease file should be quick (a second or two at most). Check it out!

firewalling on kernel 2.2

There were glitches for inputing and outputting rules. Linuxconf was complaining that the kernel could not support those and was not trying to activate anything. Now things should be much better. Go for it and test it!

Version 1.16r1


DHCP module: several ranges per network

The dhcpd module was limiting allocation to a single range (start/end) per net. The DHCP server does not have such a limitation. The module has been enhanced to support as many range per net as needed. There is still a flaw in the user interface. It always propose one more empty range. To add more than one range, you have to accept the dialog and edit again.

forward zone in dnsconf

This feature is now supported. This allows one to selectively support a zone or forward resolution to another DNS.

More translations

this includes translation for the new module selector in French. Updated language are: French, Swedish, Spanish

Some help screens

Some help screens were written for the DHCP module. Thanks again!

User interface command line options

There are few user interface command line options in Linuxconf. They are

  • --text

    Force text mode operation

  • --gui

    Force GUI operation (when disabled from the feature dialog)

  • --mono

    Force monochrome operation when running in text mode

  • --guiproto

    This one is used when Linuxconf is started from the GUI front-end instead of the reverse. This is generally used in the following case

         remadmin --exec ssh some_host linuxconf --guiproto

The big change is that those options are now parsed very early in Linuxconf. This means that the functionality is available everywhere, not just for the main menu. You can now do

      dnsconf --text
      remadmin --exec ssh some_host linuxconf --guiproto 
         --modulemain  apache

Bug fixes

Bug in apache virtual host config

There was a nasty bug in the virtual host configuration as well as the directory options config. You could create new entry fine, but could not update and old one. httpd.conf was simply not updated at all.

Lynx not used in the boot time help screen

The new 1.16r0.1 was introducing a small security hole when you were enabling lynx as the help screen viewer. It was possible to view the help screen of the boot time menu (askrunlevel) with lynx. Being a browser it allows you do view about anything in the system. At boot time (before you are logged), it is run as root. So lynx is now disabled for the specific help screen.

Note that if you try to configure the system from the boot time menu you must supply the root password. So lynx is allowed after that.

Note also that when you run Linuxconf setuid and a normal user is running Linuxconf and then view a help screen, lynx is run as the real user id, so there is no hole here. This was true in 1.16r0.1 (the first one to support lynx).

The fix only affect the boot time menu help screen.

Version 1.16r1.1

Long time since the last update. There was various things, including moving the server to a new location. I also release another package that might become very useful for administrator doing remote management (plug:

I have received numerous patches and I could not review them all. I will :-). Sorry about that.


apache: supporting namevirtualhost

A new field was added: Domain ip address. You set the IP there and then define IP less virtual host sharing this IP.

Boot time menu revisited

The boot time menu (askrunlevel) was reworked to be less intrusive. Instead of a popup, you get a small paragraph like this

Hit any key to enter configuration mode
Hit  to resume the boot process
The boot sequence will resume in 14 seconds

So it does not break the previous output on the screen. If you press any other key than enter, then you have the usual menu.

mailconf: queue management

You can now manage the mail queue (/var/spool/mqueue), view and delete entries from Linuxconf. Comments welcome.

mailconf: generation strategy

The strategy to generate this file was changed. Until now, Linuxconf was proposing the update the file if it was not matching the proposed configuration. this was handy for those relying only on Linuxconf for sendmail configuration, but not so fun for the other: They had no option other than not using mailconf at all.

The new strategy is slightly changed: If was generated by Linuxconf, then the previous strategy apply. If it was not (or was modified, even just a byte), then Linuxconf won't take about it. The only way to get a new from Linuxconf will be interactive when changing configuration in mailconf itself.

mailconf: supports /etc/mail/

Until now, Linuxconf was ignoring that file (old mistake). It now does and will silently migrate old setting to that file. If you edit you sendmail basic configuration and you have set domain aliases there, Linuxconf will remove the settings from /etc/conf.linuxconf and write /etc/mail/ (and will regenerate a that uses it).

Main package smaller

the various module were not stripped in the RPMs. This explain why 1.16r1.1 is a little smaller than the previous one.

raidconf: A new module to manage software raid

This is just a start. I want to help promote software raid on kernel 2.2 as it is pretty exciting. Anyone has a wish list on the topic, or spare hours to work with me on this, you are welcome!

treemenu: smaller tree

When the treemenu is computed, its opens a little smaller, limiting the opened node to the third level. I still have work to do so it can remember its state after a Linuxconf update though.

I believe it is more usable this way.

Bug fixes

chkconfig parsing

Linuxconf now resets the LANG and LC_ALL directives when it calls /sbin/chkconfig so it can more reliably parse its output (for controlling service activity).

dnsconf: ttl fields not optional

The various TTL fields in a domain definition (refresh, retry) can't be empty anymore.

redhat/connectiva: ifcfg-eth0~ file

Backup file (.bak and ending with ~) are ignored in /etc/sysconfig/network-scripts. Linuxconf used to see that as a duplicate configuration.

Version 1.16r1.2


Adding a kernel to LILO

When you add a new kernel that you have compiled, Linuxconf fills the dialog with the information found in /usr/src/linux, but suggest to copy the kernel in /. It now suggests to put it in /boot.

Debian: Various fixes

A module was created for Debian. With it, Linuxconf better supports Debian. User account management is now done through the various useradd/del/mod commands and passwords are handled with PAM.

This release also provides supports for the new strategy allowing Linuxconf to trust the sysv init script. Some extra information is added in /usr/lib/linuxconf/debian/sysv.

dialout: pre connect command

The dialout module now support a pre-connect command. You specify it in the feature area of the dialog. This command is executed before pppd and chat are started. You can use this to call setserial or whatever setup command you need.

Linuxconf waits until the command exits.

mailconf: support for popauth

Linuxconf will generate a suitable if you have a /etc/mail/pophash file. See to get the corresponding utility.

The pophash system solves a real problem for mail server with "moving" users. If you enable relay control, then only users originating from specific networks may use the SMTP server. With this strategy, any user who have successfully connect with the vpop3d server will be allowed in. The script maintain in real time the /etc/mail/pophash database and sendmail uses this db to grant relay or not (plus all the other databases it already uses).

vpop3d has been modified so it provides suitable information through the syslog facility.

Technical documentation updates

The documents and have been updated from the source. I will update them on a regular basis now.

vdeliver: escaping line starting with From

vdeliver was not escaping lines starting with "From ". vpop3d is using the "From " marker to identify the end of a message, so this was confusing it.

vpop3d: uidl support

vpop3d now handle the uidl command. I have barely tested it. Give it a try. I am using the message-id directly as the unique identifier. The RFC just states that I must use something unique. Check it out and let me know.

Bug fixes

Keyboard management on Linux 68k

Linuxconf now properly handle the keyboard maps on Linux 68k.

mailconf: fix relaying rules

I have merged the fix for relaying so that the ORBS stops complaining. Linuxconf will generate a new once you install this release.

Version 1.16r1.3


dnsconf: new command line

I have added a new command line option to dnsconf

/sbin/dnsconf --delsecondary domain

which ... does what it does :-)

SuSe 6.1

I have placed copies of the wxxt package compiled on SuSE 6.1 at

Combined with linuxconf-1.16r1.3, you should have no problem compiling that on SuSE. Note that you may want to install the gdlib package available from

Bug fixes

Compilation problems on distribution without PAM

The new Debian module was causing problems when compiling Linuxconf on distro without PAM.

vpop3d: small fix for uidl

When using the message-id:, I was not using a case insensitive compare.

vpop3d: version changed to 1.007


Version 1.16r1.4



I have received more translations for help files: Spanish, Swedish

vpop3d and uidl

I have found the little bug with vpop3d and uidl. I did tested it with netscape and it happily kept the message on the server. Please test this one out. This is the feature that prevented me from doing a full release. If vpop3d is proven, I will do so.

On the pop/imap side, I have almost completed vdomain support in the imap package (as found on RedHat and few other distro). Once completed you will get vdomain with both pop and imap.

Bug fixes

dnsconf: Finding first available IP

An old limitation of dnsconf was removed. When computing the first available IP (IP allocation space), it was not processing IP reverse mapping zone. So for DNS hosting some reverse zone, but not the corresponding domains, dnsconf was proposing not reliable (the available IP was not so available).

Version 1.16r2


disk quota: using the new widget

Just so you can check that new dialog, both in the user account and in the default settings.

mailconf: max recipient per message

This sendmail 8.9 feature is now available in the feature area.

mailconf: using the new widget

The new widget has been used in the basic configuration for the "message size limit" field and the new "Maximum recipient per message"

ppp dialout: using the new widget

The idle timeout is also using the new widget. 0 means no limit and the widget shows that.,

User interface: New widget check-boxes and value

There were several dialogs with numerical field, where some magic value were expected. For example, when editing disk quota the value -1 mean "inherit" or "use default", while 0 mean "no limit" and any other value is taken as the limit.

I have created a new widget in Linuxconf (function DIALOG::newf_chkm_num) to solve this. The new widget applied to disk quota looks like

title: (o) default ( ) no limit ________

Comment welcome. I was able to apply this to text, web and gui, although the text widget is probably the most intuitive.

vpop3d: proper logging (LOG_MAIL)

vpop3d now produce proper logging using the LOG_MAIL facility. It logs successful and failed attempt, reporting the user and the domain.

Web interface revisited

I have reworked the web interface. It is now a little more compact and may look nicer. I have received a patch to make the whole thing much more configurable and I will apply this in the next release. In the mean time, I think this looks much better. Comment welcome.

Bug fixes

user account: disabling a virtual user account

This was not working at all. Fixed!

Version 1.16r2.1



Korean translation came in (this explains the large diff). More translation for Spanish as well.

vpop3d, calling another pop3 server

vpop3d is now using execvp instead of execv to chain to the native pop3 server. This way, you can simply pass the name of the program instead of the full path. This more closely follow inetd and tcp wrapper behavior.

If the execvp fails, a message is logged (syslog). vpop3d still try to handle the request though.

Bug fixes

firewall module for kernel 2.2

The firewall module was buggy for 2.2 kernel. It was not supporting properly port ranges and enumeration. It also had problems with interfaces. Check this version out.

Version 1.16r2.2


Control service activity

I have enhanced this dialog quite a lot on redhat/conectiva systems. This work should be applicable to other distro rather easily.

This dialog used to be a long list of check-box, allowing one to turn on and off some services. Well it was turning on and off the automatic startup of the service, but could not do much else. It has been changed. It is also more object oriented. In a near future, the same dialog will be use to turn on and off (and do other operation) all services, not just those started by the sysv script. The inetd service could be handled there as well.

The new dialog presents the service, the configuration state (enabled /disabled) and the running state. You select a service and this brings a dialog. It presents

  • The automatic startup configuration. A check-box.
  • The running state
  • A longer description, extracted from the system V init script. (we will need a way to nationalize that)
  • The package providing this service
  • The version of the package.

Note that the package information make use of the managerpm inter-module API. You need managerpm 1.14. If managerpm is not installed, then you get a reminder that the information can't be found.

An interesting part of the dialog is the large set of buttons. You have 3 buttons to start,stop and restart the service manually. I found myself all too often doing "by hand"

    /etc/rc.d/init.d/smb stop/start/...

There is also a button to preview the status of the sysv script (it calls the script with the status option). If managerpm is installed, you have a button called "Pkg info". This allows you to review the package information including the file list. You can even UN-install the package right on the spot.

I even wrote a help screen for it!

GUI enhancements

There are various annoyance with the current GUI and I have started some rework.. For now, I introduce a way to modify dialogs on the fly. Linuxconf used to delete and recreate dialogs every time something was changing. This was causing various problems

  • Dialogs jumping around on the screen every time a new field/entry is added.
  • State information loss (current field focus, state of the scroll bar).

1.16r2.2 improve slightly the GUI protocol and this will show in some dialog such as the "Control service activity". Note that this change will simplify the coding in Linuxconf itself, so it is a good thing.

Basically, the change allows Linuxconf to create a new dialog with the same name as an existing one. This tells the front-end to delete the content of the current dialog and refill with the new content. I have looked at different way to tell the front-end which field to update and so on, but it turned out to be much simpler like this.

Note that for now, this only affects linuxconf-gui. Gnome-linuxconf users won't see a change. The front-end has to supply a preference call "reconfdia" if it supports this feature.

Per user disk quote for virtual email domain

I have added this feature. You set the limit right in the user account under the "Mail settings" tab (where you used to set the aliases and the redirection).

samba: map to guest feature

I have added this feature to the default dialog. This feature is quite useful to allow browsing of the server even if the user does not have a valid login on the server. generation using /etc/mail/mailconf files

Linuxconf now looks in /etc/mail/mailconf directory to find alternative template files only at generation time. It used to look there are startup time and keep the information for the remaining of the session. This was confusing people who were shuffling with template files while Linuxconf was running.

The new chkm_num widget applied to IPX configuration

The IPX configuration dialog was reworked to use the new widget. No more magic 0 values. The widget was extended to support hexadecimal.

Bug fixes

html access on Alpha systems

A small bug was preventing the HTML mode to operate on Alpha systems.

Version 1.16r3


dnsconf: smarter updates

There were two changes there. When you update the basic host information screen, it updates the DNS accordingly. Before 1.16r3 it was updating the DNS even if nothing was changed. You were always getting the "The DNS has been updated" message. Now you get the message (and the updates in the zone files) only if there is a mismatch (something has changed).

If you modify the DNS and change the definition of one name found in the basic host information screen and it becomes incompatible you will be prompt (and will be allowed not to commit the changes).

mailconf vdomain: /etc/skel for vdomain

Linuxconf used to copy the main /etc/skel in the newly created virtual email user account. Now it will use, if available, /vhome/domain/etc/skel.

There should be an option to tell that you do not want a home at all. Currently, you can achieve that in the setting of the popusers group but the change is global and affect also the normal pop user accounts.

module dll version

The external module (module built outside the Linuxconf source tree) were labeled using the version of the linuxconf-devel package used to compiled them. This was inadequate and was creating little confusion for the treemenu. Now, the DLL will be named after the VERSION macro in the Makefile of the module itself.

More buttons in text mode

The text mode UI has been enhanced to support more buttons in dialogs. Now if there are too many buttons, they are split-Ted in two lines. So far, only one dialog required that (control system activity/configure one item).

samba: name resolve order

I have added this field to the default section (in the networking sub-section), The default for that field is "lmhosts, hosts, bind, bcast". When using buggy DNS setup, it is worth removing the hosts entry there.

samba: netlogon share. Problem with logon entries

The netlogon share dialog allows you to setup the logon path, logon drive , logon script and logon home. Unfortunately, those feature are part of the global section in smb.conf, not part of the netlogon share.

I still think it is appropriate to show this information there, so the dialog still shows those fields, but the value are properly recorded in the global section.


I have received various updates for French, Swedish, Deutsch. The Swedish translation now sports a lot of help files.

Bug fixes

/etc/quota.conf: wrong permission settings

The permission for that file were 600 instead of 0600. Odd result :-)

Account policies: archive script

This dialog was mixing the archive script field with the delete script.

wuftpd: signal if anonymous dir missing

When setting a virtual host for wu-ftpd, Linuxconf is copying the basic setup from the main anonymous ftp directory. If this directory is missing, it now complains that it can't proceed. Prior to 1.16r3, it was simply failing silently.

Version 1.16r3.1


modemconf: New module

A small module was added to the core distribution. It allows you to setup your /dev/modem symlink. Auto-detection is missing though. It is enabled by default.

It's a contribution!

Multiple help per dialog

I have added the ability to associate several helps (DIALOG::addhelp() function) to one dialog. This is currently used for the user account dialog. I have added a small help to user privileges and email settings. Now dialog co-manager can define help screens.

When a dialog has several help screens, selecting the help button display a small menu. You pick the help you want.

This feature is not available for the web mode for now.

samba: Deleting a user account

When you delete a user account, the /etc/smbpasswd file is managed accordingly, if the synchronization of SMB passwords from Unix passwords was selected.


More translation work came in, notably Swedish help screens.

Bug fixes

Apache: serveradmin and serveralias solved

The problems reports with the serveradmin and serveralias keyword are solved. Both were fairly old problem. Odd!

dhcpd: Fix for the host-name tag

The value was not properly quoted!

Version 1.16r3.2


A new package: linuxconf-lib

When building the RPM, you get a new package: linuxconf-lib. This package provides the shared object runtime for those who creates stand-alone utilities using the linuxconf-devel kit.

Command line: linuxconf --listconfig

This new option list all configuration files known to Linuxconf. The format reported (sent on standard output) is:

    Path<TAB>Flags<TAB>Sub-system<TAB>[reference path]

  • Path

    This is the effective path of the config file. If you have modified the path, this is the modified path.

  • Flags

    This is a set of letters explaining what Linuxconf is doing with that file. This is explained in the help screen for the "all configuration file dialog.

  • Sub-system

    This is the name of the sub-system owning that file. Sub-system are used for system profile versioning/archiving and multiple machine management (using the netadm module)

  • Reference path

    If the path of the file was modified, we show here the original path. If the path was not modified, then nothing is shown.

dialout: reworked configuration dialog

I have used the new chkm_num widget for few field of the configuration dialog. This is the end of the special magic values meaning "disabled" or "use default value" in this dialog. This was applied to the following fields:

  • idle-time
  • MTU
  • MRU

help screen for the apache module

Some help screens were written for the apache module, mainly the default and performance dialog. Check it out.

Module binary compatibility

Because of a rework of the CONFDB object, I was forced to break the module binary compatibility. This mean that you will have to recompile the external module with linuxconf-devel 1.16r3.2 or above. For the next full release (1.16r4), I will produce new packages for all module in the archive.

redhatppp: support for the wvdial utility

The module now update parts of the /etc/wvdial.conf utility, so can be used as a front-end for wvdial. wvdial is a smart dialing utility that can guess most connection parameter for a PPP session. You just need to provide the phone, account and password and it finds the rest.

Translations: as usual

More Swedish, Slovak.

Use local aliases to pick the operation language

Linuxconf now supports aliases for the LANG variable. Now you can set it to either fr or french to get Linuxconf in french for example.

user account dialog: more help screen

The user account dialog was enhanced to support help screens for the various privilege sections. Few help screen were written to explain those privileges.

web mode: URL encoding

Linuxconf was encoding URLs without the target host name and this was confusing some browsers. Now it extracts the target host name from the HTTP request and produce fully absolute URLs.

Bug fixes

apache: glitch corrupting the httpd.conf file

A bug was fixed. In some condition, the httpd.conf file rewritten by Linuxconf was corrupted.

apache: virtual hosts list using web mode

There was a flaw in the dialog presenting all the virtual hosts. This was affecting only the web mode (Linuxconf web mode). It was preventing the user from selecting properly one host, in some condition.

IP alias probing on kernel 2.2

There is now a new strategy to probe the alias. This won't cause bizarre error messages for those who compiled their kernel with aliasing support.

LILO; quoting of append directive

Linuxconf was not UN-quoting/quoting the directive, yielding an invalid /etc/lilo.conf (You had to put the quotes yourself).

user accounts: creating a group on the fly

This feature was broken. Linuxconf was asking permission to create the new group, but was failing to do so.

Version 1.16r3.3


HTML mode: moving to PNG

Starting with this release, Linuxconf is using the gd toolkit to produce PNG instead of GIFs. GIFs were getting problematic to say the least (licensing). I have upgrade the libgd package at . Pick version 1.7.3 if you wish to recompile Linuxconf.

HTML mode: URL encoding

I have included the patch to produce relative URL that should please all browser and the apache proxy.

Module usermenu: privilege enhancement

A user defined menu has a privilege allowing a normal user to access the menu. The privilege scope can be expand to provide super-user equivalence for every function cover by the menu.

A check box has been added to the definition dialog to enable this new behavior. A help screen was written.

netadm module: debugging for the export protocol

A check-box enable some debugging (sent on stderr) for the export protocol. This protocol is used to publish configuration changes to administration group members.

New linuxconf command line: --version

The command "linuxconf --version" prints Linuxconf revision.

Profile archiving

I have completed the "on demand" archiving. If you visit the dialog "Configure system profile", the first field (a check-box) is finally implemented. The field has been renamed to "Archiving mode". When enabled, archiving is done every time a configuration file is modified (before it is modified in fact).

This should please people doing experimentation with Linuxconf since all version of all configuration files are preserved. What is missing now is a nice front-end to browse the archive.

Profile archiving: /etc/mail/mailconf

Files in /etc/mail/mailconf (templates for are now archived properly.

virtual user account creation command line

It is now possible to create virtual email user accounts using the command line. The password can't be set from the command line yet. You can add and delete accounts using the following command lines:

    linuxconf --modulemain mailconf --addvuser domain user name
    linuxconf --modulemain mailconf --delvuser domain user

Version 1.16r4


dhcpd: More filtering while updating the DNS

NetBios names are much too permissive for the DNS. I was filtering some special cases, but I found that it was not enough. I have placed much restriction: Any character not alphabetic and not numeric and not a minus sign is turn into a minus sign.

Distribution specific resource files

I have implemented a new scheme for the resource files (*.paths). Originally they were stored in one directory per distribution. The new scheme support differentiation of the distribution releases. Inside the directory /usr/lib/linuxconf/DIST (where DIST is a distribution name), you can have sub-directory which are distribution release numbers. Resource files in those sub-directories will only apply to a specific release while the ones (unless overridden) in the DIST directory apply to all releases.

This solves the dhcpd.leases issue discussed lately with Mandrake and RedHat 6.1. This should help in the future I guess.

samba: domain logons feature

The "domain logons" feature was not supported (visible). There is now a check-box to enable the feature in the netlogon special share setup (although it is a global feature, it fits better there).

samba: Updating SMB passwords from Unix password

This feature was updated. The check-box was turned into a multi-selection field. The value are "not managed", "acct & passwords" and "acct only". The original feature corresponds to "Acct & passwords". This means that Linuxconf takes care of creating and deleting accounts in /etc/smbpasswd and also update the password.

The new option (acct. only) means that Linuxconf maintain the accounts but do not update the password at all. This might be used by people who want to use different password for SMB and Unix. The primary usage though is for people using a single password file (/etc/smbpasswd) with the pam_smbpass PAM module. Using this new option, Linuxconf creates the accounts in /etc/smbpasswd and the PAM module takes care of the password.

While this change adds a functionality, you do not have the update your Samoa configuration. The old check-box maps to the second option.


More Spanish help files (quite a lot indeed)

virtual email domains: Adding users from the command line

The --vpasswd command line was added to the mailconf module. This completes the job to create, delete and set the password of a virtual email account. The command line goes like this:

    linuxconf --modulemain mailconf --vpasswd account

The new password is passed on standard input, so it can't be sniffed by looking at a PS output.


Module binary compatibility

During 1.16r3 development, I had to change the module API slightly and this broke the binary compatibility. This means that all independent modules must be recompiled with against the new linuxconf-devel package.

I have done so for the managerpm, shellmod, mgettyconf, updpass, userinfo and usersbygroup module. I have changed the release number of those module to reflect that:

  • managerpm 1.15
  • mgettyconf 1.7
  • shellmod 1.11
  • updpass 1.3
  • userinfo 1.4
  • usersbygroup 1.2

Bug fixes

/etc/group management

Continuation line was not supported in this file (very old bug, odd). Fixed!

pppdialin: noauth option added to ppplogin

The new pppd is more sensitive. The new /usr/lib/linuxconf/lib/ppplogin script sets the "noauth" option to avoid confusion.

Version 1.16r6

This change log is relative to 1.16r4. There were no change log produced for 1.16r5. The module binary compatibility was changed in 1.16r5, but I forgot to increase the symbol. I did it for 1.16r6. See below.


Building incomplete treemenu

Under some special cases, the treemenu was incomplete. This was happening when some error were discovered while producing the tree (error in some configuration file for example).

The strategy has been reworked a bit to make it more reliable.

Email aliases: redirecting to the same account

An alias may point to the user account with the same name. This is useful to redirect email for an account to both an external address and the account's in-box folder.

Linuxconf was not supporting this properly in the user account dialog.

New help screens in the user account dialogs

Well, that's is. Thanks Carole!

redhatppp module: peerdns feature

A check box was added to control the peerdns feature. This lets the pppd daemon update the /etc/resolv.conf file with the IPs of the provider (DNS).

Some tree menu entries were incomplete

Another fix was done in the tree menu. Many Linuxconf menu are built like this:

   config    something
                something else
                another thing

The original way was not duplicating the first "config" and this created a menu sometime difficult to read (the verb was missing).

The translation are moved to independent packages

New language packages

The translation were getting both larger (more complete) and new language were added (Romanian just came in). So I split-Ted the core package. It only contain English from now on. One separate package exist for the other language. This makes the core package much smaller (almost 2 megs).

You will find the language package at . Use the HTML form at . This form will help you select the proper packages.

Not that the LANG package are platform independent. I have not found a way to produce "noarch" package out of the same source RPM (unless all sub-package are of type "noarch"). This binary compatibility explain why you won't find LANG package along with the core package in the distribution directory.

Hope it will save you some download time and some disk space.

Binary compatibility

I have modified the way the message dictionary are encoded. They are now binary compatible across all platform (SPARC, ALPHA, i386, ...). This has broken the binary compatibility for external module. For this reason, you are forced to upgrade all your module. I have recompiled all the one I maintain, so you just have to grab them from the FTP site. Use the form to locate the last version of each module. Click on the version and you will get to the download page.

virtual email domain: filter program

The administrator can now configure a filter program which is used at delivery time. You can configure one different filter (or with different arguments). The filter is called after the in-box folder has been opened and locked. This is experimental.

virtual email domain: More complete help

The help associated with the definition dialog was incomplete. Few fields were not documented.

Bug fixes

Controlling drop-ins from the "control service activity" menu

The dialog was broken (no way to get out). Fixed!

Enabling sendmail relay control

This feature was causing some error messages in the logs when the file /etc/mail/deny was missing. Linuxconf now generate the proper rules in /etc/

HTML intro page

The move to PNG was not completed in most translation. The start button was broken.

Improper mrtg.cfg parsing

The mrtg module was not parsing the mrtg.cfg properly. This file supports multi-line tags. Fixed!

Version 1.16r6.1


Compilation on SuSE 6.1

I have fixed a small glitch for SuSE 6.1. I just added a -L/usr/X11R6/lib for the link step. From now on, I will produce RPMs for SuSE 6.1 on a steady basis.

Note that you need the libgd and wxxt package from to compile Linuxconf. I have uploaded versions for SuSE 6.1 there.

dnsconf: MX with same priority

A small trick was added to the MX field. If you specify several host on the same line in the dialog, they will get the same priority.

mrtg: New little function to grab information

I have added to little utility to grab some information about the system:

  • /usr/lib/linuxconf/lib/mrtg_processes

    Report the creation rate of new processes and the context switches.

  • /usr/lib/linuxconf/lib/mrtg_nbproc

    Report the number of currently running processes (well, running or sleeping, say existing processes)

Translations: More Norwegian

Lots of help files. Welcome to Ragnar Wisløff!

Bug fixes

dnsconf: time in the SOA records

The various time to live in the SOA records may be encoded in seconds, hour, days and week. Linuxconf was not supporting those suffix properly, turning everything into seconds. Fixed!

Version 1.16r7


Inter module APIs

The concept allows one module to request and API and one provider to provide this API. If no provider is available, then the client module detects that and do something else. This is used in various places in Linuxconf (the dhcpd module uses the dnsconf API to update the DNS).

Until now, only one provider was allowed. It is now possible to have many, The client must be aware of that and will use each provider in sequence.

This was first used for the new firewall module.

Check out for more details.

Module dialout: reworked dialog

The configuration dialog was modified a bit. A new section "scripts" was added and all the script (postconnect, predisconnect) fields were moved there.

The feature section has now a new check-box called "update the firewall rules". Check out the section on the firewall in this change log to understand what it means.

Module dnsconf: syncing basic host information and DNS

Linuxconf normally update the DNS from the information found in the basic host information dialog. This is generally a good thing. Some people have problems with this and wish to present information unrelated to the basic host information. I have added a check-box in the feature dialog to disable this feature. On by default.

Module firewall: various enhancements

The firewall module was modified somewhat. It is still compatible with earlier configuration (well, let me know if it is not :-) ). The work done is opening the door to many more enhancements, hopefully in a short future.

  • The dialog

    • New section

      The dialog has been reworked. It shows in graphic mode. I have added a section called features and moved some stuff from the top of the dialog there.

    • New comment field

      You can now add a single line comment explaining the purpose of a rule.

    • Ordering factor

      The module has an algorithm to order the rules and this works most of the time. It is based on the net-mask, the policy, the interface and so on. A new field called "ordering factor" has been added. This allows you to have a final say on the ordering. The default factor is 50. The is the primary criterion for ordering. Further, the rule list is ordered using this factor when it is displayed.

      In a short future, I will add a concept of pre-cooked solutions for fire-walling and this ordering factor will be used to allow mixing of "generated" and "manual" rules.

    • Bidirectional rules

      By default, Linuxconf generates two IP-chain rules (or more sometime) for each rule entered in Linuxconf. It generates a rule "from -> to" and a rule "to -> from".

      A new check-box (on by default) limit this behavior. When disabled Linuxconf only generates "from -> to".

    • Syn packet

      This feature is not implemented yet, but the dialog has now two new check-boxes. One in the "from" area and one in the "to" area. It controls whether TCP SYN packet are accepted. They have no effect currently.

    • Input interface and output interface

      An input rule deals with "input interface". The other rules (forward and output) deals with the "output interface". To differentiate those case, the field title change between input rules and the others.

  • Logical devices and hosts

    Firewall rules are sometime weak, because the exact interface or host IP number is not known. This is the case with PPP dialout and dialin: One will often use PPP0, guessing that it is the device which will be allocated. This is also the case with "per user" fire-walling.

    We are introducing the concept of logical interface and logical hosts. Where you normally enter a host IP or name you can now enter an logical host and the IP number will be lookup-ed into other Linuxconf modules. The same applies to interfaces.

    A logical host or interface is presented like this:


    For example:


    The firewall module uses the FWINFO_API inter module API to get the information. If the information is not available then the rule is not generated and a message is entered in the log. Each participating module implements this API and supply the information. So far, the dialout and pppdialin module has been enhanced to support it.

    Note that this is the responsibility of those module to trigger the firewall module to install new rules (in the kernel). For example, when a dialout connection is established, the dialout module send a signal to the firewall module and it updates its rules. The dialout module has a check-box just for that.

    The new command lines were added also to allow a third party to enable the new rules.

  • New command line options

    There are the following:

    	linuxconf --modulemain firewall --resetfw
    	linuxconf --modulemain firewall --setfw

    The first disable all rules, the seconds enable the rules.

Module mrtg: New utility

The mrtg module provides various utilities to sample things on the system including the I have written a C++ version to make it more efficicent. It is called mrtg_memory.

pppdialin: new command line option

There were no command line for this module. I just had the following:

linuxconf --modulemain pppdialin --disconnect account

This is an easy way to kill a PPP connection for a given account without having to seach which pppd to terminate.


Module pppdialin: noauth PPP option

This option was removed from the ppplogin script. It seems to confuse pppd somewhat. We are getting back to pre-1.16r6.1 behavior. This was causing problems. More investigation.

Bug fixes

LILO: Partition probing on RedHat 6.1

Lilo configuration (for one) could not extract the list of available partitions. A change was made in the way /sbin/fdisk work and Linuxconf was relying on that. Fixed!

module dhcpd: glitch in probing affecting fire-walling

A little cosmetic glitch was fixed with the dhcpd module. In some case it was reporting an error to Linuxconf, without printing anything. Linuxconf was stopping its probing process. The next module on the list, firewall had no chance to enable its own configuration.

I guess not so many people have seen that. Those who have witness fire-walling rules which are never activated, check it out.

Module dialout: alternate chat script did not work

When using an alternate chat script, the module was not generating any configuration. It was silently failing.

Module treemenu: Button name "Act/Changes"

There was a flaw in text mode and sometime, the button title flipped to "usr1" . Fixed!

Special accounts and supplementary groups

Special accounts do not show the supplementary groups. It is possible to associate special account members (POP, PPP, ...) to some supplementary group. Unfortunately, Linuxconf was not preserving those settings when editing the account. It is now.

Starting services: 15 seconds packed in 1

A bug in 1.16r6 was causing a weird behavior. Linuxconf was starting a service and was claiming immediately that the service was taking too long to start instead of waiting 15 seconds. Fixed!

Version 1.16r8


Module firewall: More command lines

I have added two more command lines for this module:

  • --update

    This is equivalent to --setfw. It was added to make it more consistent with the rest.

  • --status

    This does the same as "linuxconf --status", but only for the firewall.

Module managerpm now part of the core distribution

The managerpm module used to be distributed in a separate package. This module is pretty needed by everyone using RPMs. If you had already the independent module installed, remove it before upgrading to 1.16r8.

New module fetchmailconf

This module was written by Torbjörn Gard <>. Fetchmail users, check it out. The module is automatically enabled if /usr/bin/fetchmail is there.

Partition probing

The fix for partition probing on rh6.1 was temporary. It was scanning a fixed devices set (hda, hdb, ...). It now uses /proc/partitions to find out which devices are available and create the fdisk command line. fdisk is still used to probe partition because some information is missing from /proc/partitions (the partition type for one).

Bug fixes

Control service activity dialog

The dialog to control one service was incomplete and never exited.

firewalling on kernel 2.2

The implicit rules for the loopback were invalid. They were using the IP number of the device instead of the device name. Since kernel 2.2, only device names are accepted.

IP alias updates

There was a fairly old bug with IP aliases on kernel 2.2. When one IP alias definition was changed, Linuxconf would end up changing the alias in a strange way, cycling through the available alias numbers (sort of).

Small fix for archiving of vdomain config files

A bug prevented archiving of vdomain files for vdomain created with fairly old versions of Linuxconf.

User account creation with private group

The group was improperly created. The name of the group was missing. You may want to check uour /etc/group to fix it.

Version 1.16r9


Module mailconf: virtual domain visibility

Until now, you were allowed to see the content of a virtual domain (the account list) even if you did not have the privilege to modify it. This time is over! Now, you see only the vdomain for which you have a privilege. So if you are co-admin for domain a,b and c, you will only see those domain in the list. root will see them all.

Module managerpm: conflict resolution

The module was not checking properly for duplicates (when a package deliver something that is delivered by an already installed package). It detects this situation properly. When such a conflict arise, you are presented with a list of conflicts, showing every package. From this list, you can view the information about one package and even delete the package. If you delete all offending package, the installation/upgrade will continue. You can also select the button "Install anyway" and the install will be performed with the --replacefiles RPM option.

Module pppdialin and fire-walling

I have added a check-box like the one available in the dialout module. The "update firewall rules" check-box will trigger a firewall update at connect and disconnect time. So you can now create per-user fire-walling rules (using pppdialin/account logical device and host in the fire-walling rules).

More help files for the user account management

New help files were written for the crontab management (tasks button) the delete account and the password change. Thanks Carole!

Normal user account visibility

User accounts were visible to anyone who had sufficient privileges to get in Linuxconf (You need at least "may access Linuxconf"). This was not so good as one could potentially find who has privileges.

From now on, you need privilege or root password to enter any user account list.

Bug fixes

/etc/hosts management

Linuxconf was crashing when loading a /etc/hosts file with very long line. It is now more robust, but it is not able to edit such a very long line (they will be truncated). We are talking about very long lines though.

A file open leak

There was a file open leak when dealing with email aliases. There was also a problem with a file handle pool which was too big and was causing problems for the HTML mode (After many user account creations or modifications).

Module dialout and fire-walling

The check-box "update firewall rules" was not effective at De-connection time. So the rules associated with the PPP link were not removed.

Module fetchmailconf: packaging

A little packaging problem made the module non operational.

Module firewall; Not all rules were activated

The new firewall module in 1.16r7 had a glitch. Under many cases it will not enable a rule even if all condition were met.

Version 1.16r10


Module fetchmailconf: more features

A separate announce will be made by the author.

Module firewall: dealing with unknown interfaces

The module was not enabling rules using interface not currently running. It is now friendlier. Note that in many case, using logical device is preferred (dialout/config, pppdialin/account) and more reliable.

Module mailconf: command lines to deal with email aliases

Several new command line options were added to this module. Here they are:

  • linuxconf --modulemain mailconf --setalias alias values ....

    This defines (or redefines) an alias. You provide as many values as needed.

  • linuxconf --modulemain mailconf --setvalias domain alias values ....

    Same thing for virtual email domain

  • linuxconf --modulemain mailconf --unsetalias alias

    Delete an alias definition

  • linuxconf --modulemain mailconf --unsetvalias domain alias

    Same thing for virtual domain

  • linuxconf --modulemain mailconf --unsetalias alias value ...

    Remove some values from one alias definition

  • linuxconf --modulemain mailconf --unsetvalias alias value ...

    Same thing for virtual domains

  • linuxconf --modulemain mailconf --unsetalias - value ...

    Delete some values from all aliases. This is useful when you delete an account and wish to remove it from all aliases.

  • linuxconf --modulemain mailconf --unsetvalias domain - value ...

    Same thing for virtual domains.

I still have to enhace the help files. Comments appreciated!

Module treemenu: Some debugging help

Some people have experienced problem with the treemenu: Linuxconf crashes when it is computing the tree. While this signal a flaw in Linuxconf, it is not easy to track where is located that flaw (Well with a debugger it is quite easy).

Those experiencing the problem are left in the cold. They unset the treemenu module and have to dig in the various dialog to find the offending.

In 1.16r10, the treemenu build is producing a file /var/run/treemenu.log. This file is updated after each menu entry is processed. So if Linuxconf fails in one area, you can tell where just by looking at this file.

Oddly, this treemenu build looks more and more like a crude regression testing.

Bug fixes

basic host information and /etc/conf.modules: Multiple NICs

There was a problem in this dialog (basic host information). It was not properly handling /etc/conf.modules when you have several network adaptors. Now, it merge the I/Os and IRQs.

Originally, one was only specifying the kernel module and the I/Os and IRQs for the first network device. The kernel module is loaded only once for all the adaptor anyway.

The new behavior is more intuitive.

Module dnsconf: parsing ip/subnet

There were two bugs corrected in 1.16r10. Some network definition where not parsed properly. the syntax network/subnet was only accepted in some condition. This has been generalized.

The listen-on global option directive was not parsed properly when the optional port was specified.

Module firewall: status fixed

The status feature was not using ipchain properly.

Version 1.17r1

1.17r1 contains lots of stuff. Not all is visible. 1.17 will target a rework of the user interface. Especially the graphical one.


/etc/fstab: owner option now supported

The owner option was not supported and this was confusing Linuxconf when it was probing the currently mounted file systems. With the CDrom it was always complaining that a re-mount was needed.

Control service activity: generalized

This dialog is now using the new SERVICECTL inter-module API. This means that various modules managing services may register in this dialog. This will create a central place to manage the different services.

GUI: busy mouse cursor

A simple protocol was added. Whenever the front-end send a message to Linuxconf, it turns on it busy mouse icon. When Linuxconf is ready to process more inputs, it send an `Alive` primitive. This seems to work quite well.

GUI: changing the content of a form

This was a severe limitation. The new Setval primitive lets redefine the value of a field or the value of an item of a list. The original work around in Linuxconf was to delete the dialog and create a new one. This was causing all kind of annoying behavior, such as windows dancing around on the screen and lost of the dialog current input field.

Function like DIALOG::reload() are using this primitive if available. The new function DIALOG::set_menuitem is also using it. Note that this change slightly how one can write an edit function to handle a record list: It is simpler. Note that existing code still work, but the new code look like.

	dia.newf_head ("","Name	Surname	Telephone");
	int nof = 0;
	while (1){
		for (int i=0; isurname.get(),p->tel.get());
			dia.set_menuitem (i,p->name.get(),buf);
		// Remove extra fields
		// dia.getnb() includes the header
		while (dia.getnb() > tb.getnb()+1) dia.remove_del (tb.getnb()+1);
		MENU_STATUS code = dia.editmenu ("title","introduction",help_nil

Gradually, various parts of Linuxconf will be reworked to use this strategy.

GUI: dialog type

The MainForm primitive was enhanced with a new parameter. It describes the type of a dialog. This is a word. It can be one of:

  • popup

    This is a dialog, generally small, such as a prompt for a password that must pops in the middle of the screen and requires immediate action.

  • notice

    This is used to display a warning.

  • error

    This is used to display an error message

  • std

    This is a standard dialog

These informations may be used by the front-end to customize the dialog so it more closely follow the user interface style guide of the UI environment.

GUI: Graphical user interface and protocol

Many changes were made to this area, although not everything is immediately visible in Linuxconf. The changes involves mostly some enhancement in the GUI protocol. As a recap, the GUI in Linuxconf is handled by a separate program and a special protocol is used between Linuxconf and the front-end. This protocol was lacking many features. Currently only wxxt-linuxconf (linuxconf-gui package) is implementing these features. They are described in this document.

gnome-linuxconf will follow soon. Note that Linuxconf is still compatible with older front-end.

GUI: new gauge widget

A new gauge widget was added. This is not used in Linuxconf yet. This widget is presented as a numerical field in HTML.

GUI: new setcontext primitive

This is not used in Linuxconf currently, but will be in the next release. This "set context" primitive lets re-parent new dialogs inside existing dialogs. The gnome-linuxconf front-end was implementing a nice hack to re-parent dialogs as page of a note-book object. This was done without much information from the GUI protocol. Using the new set context primitive, the treemenu module is now able to the tree view + notebook layout on its own, without any hacks in the front-end.

This new setcontext primitive is the key for more complex dialog. One usage in Linuxconf will be (beside the tree view + notebook) a switchable log window at the bottom. This log window will be a notebook and will contain various logs

GUI: new slider widget

A new widget was added. A slider. This is not used yet in Linuxconf. Note that the slider is presented as a numerical field in text and HTML mode.

Module firewall: logging added

There is a new check-box for logging. Anytime the rule match, a message is generated by the kernel and ends up in a syslog (generally /var/log/messages). This is typically used with reject or deny rules.

Module inetdconf: New

Thanks to Torbjörn Gard we have now a module to configure /etc/inetd.conf and /etc/services. It is part of the core distribution and enabled by default (unless you do not have a /etc/inetd.conf file).

new diff format, sort of

Starting with 1.17, the diff for Linuxconf available from are delivered in two files: The usual context diff usable with the patch command and a corresponding fcmd file. The fcmd file contains one line commands allowing you to fully synchronized your source tree with the official. It provides information about files to remove and links to perform. A diff can't provide this information.

I will soon upload a new version of the linuxconf-tool package which will deliver a script called fcmd-exec which is fixing a source tree using this file.


As usual, plus more help screen in Swedish.

User account supplemental groups

A single line was available to enter all the supplemental groups. This was not enough. Now as many as needed are added. Further, the groups are sorted.

Bug fixes

IPX: enabling changes

This has never worked on red-hat like distro for a good while. IPX configuration was activated at boot time, but changes later were not applied.

Module dhcpd: updating the DNS

Some invalid characters were still allowed and this was confusing the DNS. Things should be good finally.

Module dialout: PPP tunnel with patched ssh

PPP tunnel using the patched ssh were broken since 1.6r10. The flag was not read properly from the configuration file.

Module dnsconf: include files in named.conf

Include file were supported, but it was broken (Linuxconf was crashing). This is fixed minimally: Linuxconf knows how to read the include files but can't write them back, so everything is merged in /etc/named.conf.

Include file may be organized arbitrarily. Rewriting them exactly is not an easy job.

Module mailconf: Fixed anti-relay

The new anti-relay ruleset is included, patching yet another relay trick.

The default for new installation is now relay control enabled.

Version 1.17r2


Debian: Some packaging fixes

This version contains some packaging fixes for the upcoming Debian releases.

linuxconf-gui: Many enhancements

Since 1.17, linuxconf-gui (wxxt-linuxconf) has been enhanced quite a lot. Many enhancement were made to the GUI protocol. In 1.17r2 Linuxconf is making use of it a lot. Note that Linuxconf is still compatible with gnome-linuxconf (shipped with RedHat and Mandrake).

When Linuxconf detects it is talking to a new linuxconf-gui, it does many things differently. Also note that most of these enhancement will be applied to gnome-linuxconf soon. I am still maintaining wxxt-linuxconf because:

  • I know wxxt fairly well
  • It is easy to have linuxconf-gui on almost any distro while running gnome-linuxconf is a problem on anything before rh-6.0

So what's new on the GUI side

  • Mouse icons changing when linuxconf is processing
  • Lists are updated instead of being redraw/recreate all the time (not all part of linuxconf has been updated though)
  • linuxconf-gui is now looking closer to gnome-linuxconf treemenu hack. While the look is almost the same (a treemenu on the side and a notebook on the right), this is handled under linuxconf control. This shows that the GUI protocol can be used to produce more complex application.

On RedHat and Mandrake system, you have to remove (or rename) gnome-linuxconf to try linuxconf-gui.

Module dhcpd: dhcp to DNS

Some enhancements were made to filter attempt from DHCP users to override a name in the DNS. The new strategy is checking if the name is clashing with a name outside of a DHCP allocation range.

Thanks Hubert!

Module managerpm: some user interface enhancements

Managerpm is making use of the new GUI abilities. When you install or upgrade some modules, you get small popups with gauge showing you the package being manipulated, a little bit like and installer.

Module squid: support for 2.2

The module is now compatible with squid 1 and 2.

Translations: Chinese simple

I can't tell how complete it is though :-)

Web mode: Virtual email domain administration

The page "Special Linuxconf entry points" has been changed. It used to show all the virtual email domains and the co-admin could click on one. Now, there is only a single line. You click on it, you enter a user/password pairs, and you only see the domains you are allowed to administer. This feature was available for the other user interface.

Version 1.17r3


dnsconf: various UI enhancements

Dialog were reworked to take advantage of the latest advances in the Linuxconf user interface toolkit. This generally means less flicker and unneeded redraw in GUI mode.

GUI: treemenu enhancement

The treemenu module is taking advantage of the latest enhancement of the GUI protocol. The tree menu has been split in 3 trees. Each tree is in a separate notebook page, so you can switch between each one easily. The 3 trees are "config", "control", and "status". This should make your life easier.

At this point, gnome-linuxconf has not been enhanced to support this so redhat and mandrake users won't see any difference. To experience the new feature, you have to install linuxconf-gui and uninstall gnome-linuxconf.

inetdconf and fetchmailconf

Various enhancements and bug fix...

Version 1.17r4


Module inetdconf: a new fire-walling system

Check this out. The goal is to create a super-simple firewall ing solution.

Module mailconf: new --generatecf command line

The following command line generate a new

linuxconf --modulemain mailconf --generatecf

THis may be used when you add or remove a virtual email domain using the command line for example.

Module mailconf: new URL to change vuser password

There is a new special URL for IPless virtual email domain users. By pointing their browser to:


they can change their password. The older htmlmod:userpass URL is still operational.

Trimming the user account dialog

The password and account policies dialog was reworked using a note-pad object. It now includes 3 new check-boxes. This check-boxes control the visibility of some user account dialog components. Note that these flags are global and affect all account type. Comments are welcome on this. Here are the flags

  • Show the shadow parameters

    This control the visibility of the params section.

  • May change the HOME directory

    This controls the visibility of the field. Without this field, the administrator can only create account home in the default locations (potentially one default per group)

  • May change the login shell

    This is especially useful when there is a single login shell available. No need to tell the administrator.

virtual email account out of quota

The vdeliver utility now produces a more readable error message when a virtual user in-box is out of disk quota.

Version 1.17r5


Module firewall: support for SYN packets

The dialogs already had check-boxes to control TCP SYN packets, but the code behind them was not implemented. It is now. When the "Accept TCP Syn packet" check-box is not selected for a TCP rules, and the policy is "Accept", then a negative (deny) rule is inserted with the same characteristic.

This check-box only has effect with "Accept" rules. I don't see the point for other policies.

Check it out!

New command line to switch profiles

The command

	linuxconf --selectprofile profile-name

switch to the new profile. It archives and extracts the files differing between to two profiles.

Selecting a profile from LILO

By setting a variable named PROFILE either at the LILO prompt or in the LILO configuration, you can switch to that profile on the fly. While you could already do that at boot time, this new feature allows you to boot in a single step in the good profile. The /sbin/askrunlevel utility must be installed (by default with my RPM) though.

So you do either

LILO boot: linux PROFILE=Office

Or you create various configurations in /etc/lilo.conf. Here is my own /etc/lilo.conf:

boot = /dev/hda
timeout = 50
default = linux
vga = normal
root = /dev/hda6
image = /boot/vmlinuz-2.2.13-7mdk
  label = linux
image = /boot/vmlinuz-2.2.13-7mdk
  label = office
  append = "PROFILE=Office"
image = /boot/vmlinuz-2.2.13-7mdk
  label = home
  append = "PROFILE=Home"

I have 3 configuration in LILO. The default does not select any profile so will boot in the current profile. The two others are switching either to the Home or Office profile.

User account: simpler dialog

The strategy started with 1.17r4 has been continued. In the password and account policies dialog, 2 new check-boxes has been added:

  • May edit disk quotas

    This hides the disk quota area

  • May edit the schedules tasks

    This hides the button

Those check-boxes are only effective for co-administrators. root can still see and edit all fields.


/var/run/treemenu.cache moves in /var/state/linuxconf

This file contains the treemenu structure. It has been moved in /var/state/linuxconf because some distribution delete /var/run at every boot. Cleaning up /var/run once is a while is not a bad idea anyway.

Bug fixes

Module mailconf: enhancement for send receipt

A line was missing in /etc/ and this was causing some problem with null address (<>)

Networking: Disabled devices not managed properly

Linuxconf was kind of confusing on this side. A disabled devices was always considered when probing system state. Linuxconf was reporting some work to do (reload networking configuration) but was not doing anything. Fixed!

Version 1.17r6

Bug fixes

Failing to reconfigure a network adaptor

A bug was introduced lately. After changing the configuration of a network adaptor, Linuxconf was failing to notice and the new configuration was not activated. This was also affecting those using system profile versioning. Fixed!

Module fetchmailconf: Potential segfault

The module could cause a segfault because of a weird relation with the system profile versioning.

Module mailconf: vdomain cleanup

Virtual email domain was not supported. Further, in some case, orphan information were left in /etc/conf.linuxconf. Fixed!

Version 1.17r7


Deleting an account currently in use

Linuxconf now checks if an account is used. If so, you are now allowed to delete it. A error message pops up.

Errors while adding or modifying a user account

As discussed on the list, Linuxconf reports any errors when you add, delete or change a user account (when useradd, usermod and userdel are executed). It shows you the last entry in the Linuxconf logs (/var/log/netconf.log).

Features dialog co-manageable

The user account co-manager technology was applied to the feature dialog. This allows modules to hook some fields in it. Currently, the status module is doing that.

The dialog used to be flat. It is now split-Ted in multiple sections. The GUI maps that to a notebook object.

Linuxconf splash screen, sort of

For a while, I was looking for something to put on the right of the treemenu when there is no dialog displayed (GUI mode). I finally came with an idea. The status module is presenting one screen (one page of the notebook) immediately at startup.

The screen shows different information:

  • The name of the machine (useful when you run several Linuxconf and do remote administration.
  • An icon or picture representing the machine or its function.
  • And various status information such as the uptime, load average, memory and swap usage.

The list will probably grow and the more graphics will be introduced. The screen is updated every 3 seconds.

You can change the icon and you can disable this completely if you do not like it, from the feature dialog.

You need linuxconf-gui though. This won't work with gnome-linuxconf for now.

Bug fixes

HTML mode: Problems with trailing spaces

The HTML mode was failing (500 dialog mismatch) if the original value of one field (text) had some trailing spaces. See this Howto/Faq topic to learn more about this error.

TO solve this, spaces are encoded as &nbsp; and decoded back when the form is submitted.

Version 1.17r8


another user account dialog trimming

Another check-box was added to the "account and password policies". You can control the visibility of the account expiration date separately from the shadow parameter.

Linuxconf sysv service name

The linuxconf system V init script was renamed to linuxconf-setup, This was done to differentiate from the linuxconf inetd service (HTML mode) and to make it clearer that it is not a daemon, but a pseudo service doing some settings.

linuxconf-gui enhancements

I am working a lot on the GUI front-end (this was the goal of 1.17). Some basic capabilities are being added to the GUI protocol. In 1.17r8, a drawing context feature has been added and it allows some variation in the presentation. This shows in the spash/status screen. The host name is shown using a larger font.

I expect linuxconf-gui to evolve in various direction. 1.17r9 will have a menu bar for example. The status module will start to use those enhancement to produce fancy graphics for example.

1.17r9 will have a help menu with an "About Linuxconf" entry. If one has good ideas about the layout it should have, feel free to send them along.

Module wuftpd: Reworked interface

The graphical interface was reworked in a notebook.

A check-box was added to control anonymous access.

Bug fixes

dnsconf was crashing with some invalid named.conf

/etc/named.conf with unbalanced braces were causing troubles. Fixed!

linuxconf-gui crashing

A flaw was fixed. It was crashing once in a while in unrelated dialogs. This bug appeared lately though.

Module samba: Server identification

Linuxconf was updating the wrong field in /etc/smb.conf. It now manages the "server string" entry instead of the "comment" one.

Version 1.17r9


About Linuxconf screen

The help on the menu bar has now an "About Linuxconf" entry. It is showing:

  • The Linuxconf version currently running.

  • The author of the currently active modules. This is done by sending a message to every module (The message is simply "about"). I have modified the module fetchmailconf and inetdconf. The other module were primarily written by me. Author of other modules may want to put this feature in their module so people can acknowledge their work.

  • A long list of contributors taken from the whodo.html page on the web site.

Anyway, this is a start. If you have some ideas for a more suitable "About screen", let me know!

GUI: Drawing context

Until now, the GUI front-end was only able to manage and display standard widget and could not display anything fancier, such as graphics, and text with various fonts and colors.

The GUI protocol now support various drawing primitives as well as drawing context features such as font, brush and pen selection.

Currently, it is only used by the status module, to a limited extent and the "About" screen. I expect to invest a lot more in the status module in graphical mode.

GUI: Menu bar in linuxconf-gui

The GUI protocol has been enhanced further, Front-end may have menu-bars. So far, it has only been implemented in linuxconf-gui and the treemenu module is using it (if supported by the front-end).

Now Linuxconf sports a different look. It includes a help menu with various options, including an "About Linuxconf". The button at the bottom of the tree menu have been replaced by a pull down menu featuring various entries, including a new "quit no check" option, which quit immediately without probing for any changes.

You can see a screen shot of the new linuxconf-gui at

Note that linuxconf-gui is featuring other gadgets and is fairly different from gnome-linuxconf. You may want to check it out (install linuxconf-gui and UN-install gnome-linuxconf). Once the GUI protocol is completed, those enhancements will be moved to gnome-linuxconf as well.

Module samba: remote browse sync

The "remote browse sync" global feature was not visible. Fixed!

Module status: splash screen

The initial dialog displayed by the status module (when running linuxconf-gui and the treemenu module) includes the status of all disk partition. A gauge shows the usage level of the partition and the size is displayed at the end. This makes this screen quite complete to have a feel for the health of the server.

Module treemenu: Help on context

With the tree menu, we have lost something: The ability to access the various helps of the intermediate menus. This new feature should hopefully fix this. You click on the "help/on topic" option in the menu bar and then on one option of the tree menu and you get the corresponding help.


Some more Swedish translations (help files) and a new Russian translator.

User account: validating user ID

The user ID was not validated. Now a check is done to insure it lies between 0 and 65535.

Bug fixes

Enabling routing on RedHat 6.2

The routing is now controlled in the file /etc/sysctl.conf instead of /etc/sysconfig/network. Linuxconf now manage this file if running on RedHat 6.2.

Module inetdconf: firewall and 192.168.X.0 network

The module was not managing class C private network 192.168.X.0 properly. One side effect was that it was not enabling the masquerading for other network than

Version 1.17r10


Module pppdialin: Bug fix in ppplogin

The /usr/lib/linuxconf/lib/ppplogin was not setting properly the DNSs sent to the client. Only one of the two was sent.

The paplogin script was not supporting the feature of pppdialin and has been enhanced. Still PAP connection can't use all the feature but at least, they can use the proper defaults set by the module. This includes:

  • DNS addresses
  • Idle timeout
  • Maximum connection
  • Default remote IP

Bug fixes

Module inetdconf: glitch while fiddling with wait/nowait

The module was improperly rewriting the /etc/inetd.conf, switching wait for nowait (or the reverse) in some situation. Fixed!

Version 1.18

Ok we moved to 1.18. 1.17 introduced enhancements in the GUI protocol. 1.18 will continue on this, mostly spreading the new capabilities in various modules.


Enhanced documentation on the user interface toolkit

Check out the document It has been enhanced and now provides various examples. Those examples are extracted from working code in dialog/ Stuff covered includes:

  • User interface threads
  • Inter dialog communication
  • Timers
  • Presenting records

HTTP timeout fixed

The HTTP timeout was expressed in minutes, but converted in micro-seconds needlessly. Now, they are convert in seconds, so you can enter a very very large number if you need it.

Module inetdconf: Fire-walling reworked

The scripts produced are now in /etc/heimdall instead of /usr/lib/linuxconf/lib. Heimdall is the name of the project at sourceforge. Anyway, various bug fixes. They author may want to post an announce. This is inetdconf 1.7.

Module shellmod: merged in the core distribution

More people are creating shellmod module and utilities and found it annoying that it was not universally available (shellmod) on any Linuxconf/Linux box. I simplify their packaging.

If you already installed the shellmod RPM installed, remove it before upgrading to Linuxconf 1.18.

Module shellmod: various enhancements

Various enhancements were done to shellmod since its last release as an independent module. These includes:

  • New widgets: sliders and gauges.

  • Support the show primitive to draw a dialog without stopping (unlike edit)

  • Support for user defined buttons right from the edit show and editmenu primitive.

Module syslogconf: New

This modules provides a limited functionality to configure /etc/syslog.conf but (I hope) a very exciting (but incomplete) functionality to browse the various system log file.

At the point, you can pick a log file and walk from the end. The "tail -f" mode is not working yet. Once completed, you will be able to freeze/unfreeze the view.

The interesting feature is the filtering ability. You select a line and a pop-up shows up. The dialog allows you to filter on various information:

  • Start and end date (not complete yet)

  • Process name (you can track several process)

  • You can track all message from a given process using its PID.

  • Message produced by child processes of the tracked PID (Not complete)

  • Any sub-string in the messages

Once you have setup a filter, you are given a new view (The GUI shows a new window) and both view are independent. You can even define a sub-sub-view with some more filtering.

Ultimately, you won't be force to the command line using tail + more + grep to find your way in system log files.

I have other ideas for this module. These should be available next week. They include

  • Inter-module APIs: One module will be able to trigger a specific view with filtering. For example, the dialout module will trigger a view of /var/log/messages for pppd and chat processes.

    Another API will allow the syslogconf module to request help from other module to interpret some lines. This would introduce some more filtering on message type, importance level and so on. Only the relate administration module can evaluate the importance of a given message, syslogconf being completely generic.

    Anyway, comment welcome on that one

  • Contextual popup menu.

    When you will select a line of the log file, a POPUP menu appears. It will allow you to do:

    • Send arbitrary signals to the process (or kill it)
    • Get information about the package owning that process using available inter-module API for example as found in the "control service activity" dialog.
    • Stop/restart the corresponding service.

Consulting system logs was one reason we are leaving and reentering Linuxconf, so I feel it is a big step. Comments and ideas are welcome.

New package: linuxconf-util

I have created a new package. It will contain various stand-alone utilities. They are in a separate package because they are linked against liblinuxconf which is itself in the package linuxconf-lib, so I could not place those in the core.

Given they are optional anyway...

Currently, it only contain the shellmod utility. It is the runtime used for stand-alone shellmod module. A shellmod module can be run either inside Linuxconf, or as a normal utility.

The download web page was modified.

Record list in text mode: Fixed

Now record list can scroll horizontally in text mode. This is convenient. There was a long standing bug in this area. Some records were too large and improperly truncated. They were screwing the presentation in text mode. Finally fixed.

Translations: Russian is getting in

Well, it says it all!

Bug fixes

Mounting an un-mounting file systems

Failure were not reported at all. Now any failure jumps you in the log file so you can see all the messages.

Quit button on help screen for gnome-linuxconf

Current version of gnome-linuxconf do not support button-less dialogs. I have re-introduce the "quit" button on help screens when running with gnome-linuxconf.

A fix exist, but a new, more complete, version of gnome-linuxconf is coming, so this little fix won't force everyone to rush for an update.

Version 1.18r1


Module fetchmailconf: Some updates

The author may want to do a separate announcement.

Module inetdconf: few updates

The author may wish to send a separate announcement. It mostly support more command line to enable/disable inetd service and check if they are properly installed.

It also link the inetd configuration of a service to managerpm so you can get more information on a service from the package.

At some point, it should be possible install a missing service from there.

Per distribution, per distribution version support files

We already have a functionality to provide per distribution and even per distribution/version resource files. This was not enough. For example, in RedHat 6.1, they moved /etc/dhcpd.leases to /var/state/dhcp/dhcpd.leases (like most distro in fact). So in Linuxconf we had a directory /usr/lib/linuxconf/redhat and in that directory we had a 6.1 directory providing overrides for the changed path.

Now 6.2 is out and it has obviously the same path. So we are trapped into adding a 6.2 sub-directory has well. Not to good and annoying. The solution is to reverse the logic. Put the resource file for the latest RedHat version in /usr/lib/linuxconf/redhat and provide override for older version. At least, we know they are not changing anymore.

Doing this, we will end up with tons of sub-directory. So we introduce per-major version sub-directory. So for a version X.Y of a distribution, Linuxconf now checks in /usr/lib/linuxconf/DIST/X.Y. If it does not exist is looks in /usr/lib/linuxconf/DIST/X and then in /usr/lib/linuxconf/DIST.

So for RedHat, we have now the following sub-directory: 4 5 and 6.0.

Reviewed help files

Thanks to Terry Baker, many little enhancements were made to the English help files.

UI: More French and Swedish translations


UI: New textarea widget working in text mode

Thanks to Gustavo Niemeyer, we have now a working textarea widget in text mode. Here is some information about it.

The textarea widget is special as it spans several lines. Further it may be used to edit text larger than the display. Key usage for text editor are a little incompatible with the key bindings for normal text mode dialogs. Using a text editor, one will happily use TAB, DOWN, UP, PAGE DOWN, PAGE UP and so on. Those keys are currently used for field to field navigation.

Graphical interface normally reserve the TAB key to jump from one field to the other. Linuxconf uses the TAB key in text mode to jump from the dialog area to the button area. Using the GUI strategy would not work very well: Having to "tab" your way to the "Accept" button of a 20 lines dialog is simply unacceptable. Oddly the GUI standard is not acceptable either, but the mouse is saving the day here.

The textarea widget in text mode is somewhat modal. In field mode the normal behavior or field navigation keys (TAB, DOWN, UP, ...) is preserved. You must enter a white space on the field to trigger the edit mode. While in edit mode, all field navigation keys behave as one expect in a text editor. Hitting escape twice will bring you back to field navigation mode.

Here are some key bindings specific to the textarea edit mode. They can be used along normal key binding and are especially useful when the terminal emulation you are using is ineffective (like some broken telnet software)

  • ctrl-P: Move one line up. Like the UP arrow.
  • ctrl-N: Move one line down. Like the DOWN arrow.
  • ctrl-K: Erase from the cursor to the end of the line. The erased text is preserved in the yank buffer.
  • ctrl-Y: Insert the yank buffer at the current position.

UI: per field help dialog

It is now possible to write custom dialogs and attach them to a specific field. It works a little like combo field with a help list. In text mode you hit ctrl-X, in GUI, you hit the ... button on the right side of the field. This trigger a dialog allowing easier selection of the value, when all possible value can't be presented in a list.

You can see a sample code for this in dialog/ Check the sample_helpdia function.

So far, Linuxconf is not using it, but it will come.

Bug fixes

Group edition: member list

the member field is now presented using several lines, as needed.

/etc/group is not rewritten using to break long lines.

Module netadm: few fixes

Two bugs were fixed there. It was complaining needlessly about a missing conf.linuxconf when publishing a tree. It was also crashing when entering administration group edition while already editing and administration tree.

The date & time dialog

A very old bug was fixed there. It properly present the time zone and allows you to change it.

Version 1.18r2


Module inetdconf: link to managerpm

When editing a service, you can view the package owning this service. You must have managerpm enabled though.

Module modemconf: modem detection

The module has now a "detect" button to probe the modem. Cool!

Bug fixes

Various UI bugs

In text mode, the button were not properly drawn, which was miss-leading.

Linuxconf was crashing when a mandatory field was not filled.

linuxconf-gui was crashing when the content of a notebook was not larger than the tab title.

vdomain: testalldomain script fixed

This script was still relying on /etc/named.boot. It now supports both /etc/named.boot and /etc/named.conf (dns configuration file).

Version 1.18r3


Linuxconf-gui: horizontal scroll bar

The new linuxconf-gui will put horizontal scroll-bar on wide dialog as needed.

Bug fixes

Linuxconf segfault on RedHat 6.0

A bug introduced in 1.18r1 was affecting RedHat 6.0 only. It was related to the per-distribution/per-major version resource files. Linuxconf was segfaulting early at startup.

Module apache: Bug with the Files directive

The Files directive was not properly parsed. This was visible on RedHat 6.2 httpd.conf for example. Fixed. Note that I am currently rewriting the apache module, so if you have other griefs, wait for the new releases.

Version 1.18r4


Showing the current profile

The status screen (when using linuxconf-gui) shows the current system profile. The treemenu interface in text mode also presents this information.

Bug fixes

Fix for conectiva system V init script

Under conectiva, the control system activity dialog was not working properly. It was not showing the sysv services.

Module modemconf: Affecting IP aliases

The modemconf module was closing file handle 0 and 1. This was breaking the --hint command line option. The visible side effect was that IP aliases were not enabled anymore and network configuration change were never activated.

This bug exist since 1.18r2.

Version 1.18r5


Building Linuxconf RPM without being root

Various little changes were made to the Makefile and few scripts to build RPM as a normal user.

linuxconf-gui: re-sizable windows

The GUI was not supporting window resize at all. It is not complete but already some dialog (or dialog layouts in fact) works properly.

Module ircdconf: new

This module configure the IRC server. A separate announce will follow (by the author)

Module opensshd: new

This configure the openSSH (secure shell server). A separate announce will follow by the author.

Module printer: new

This is a new module, compatible with RedHat printtool. The author will probably do a separate announce.

Version 1.18r6


Group member of another group

A small experimental feature was introduced in the group (account management) definition. It is now possible to have a group member of another group (itself, potentially member of other groups).

You specify a group (instead of a user account) by pre-pending the @ character.

This feature (group member of another group) is not widely available in Unix/Linux, but ease administration of general departmental server. This enhancement was made as part of a new project nt2linux available at .

Very little has been published about this project. And to make use of the feature (assigning a group as member of another), you need other component beside Linuxconf. Hopefully available this week.

Module fixes: printer, ircdconf, opensshd

The new modules introduced in 1.18r5 were enhanced and fixed in various ways. Mostly user interfaces quirks.

Module kernelconf: new

This module, hooked in the misc. services sub-menu, lets you configure various kernel parameters, such as the maximum number of open files and inodes.

Module status: various enhancements

The status window available with linuxconf-gui in treemenu mode now contains the number of open files.

The module has a menu to present currently loaded kernel modules.

The PCI information is now presented using the "/sbin/lspci -v" command on kernel 2.2 and above. Much more readable than /proc/pci.

System profile definition

The system profile definition dialog was enhanced. For each sub-system field, there is a help button (on the right side). It presents the configuration files member of that sub-system. It will help you sort out the purpose of the various sub-systems.

Bug fixes

linuxconf-gui: window resizing

Some dialogs were simply huge in 1.18r5, The "auto-vertical" scroll bar was not enabled in some cases.

Profile archiving; IP aliases

The IP aliases were not archived on RedHat, Mandrake and Conectiva. They are now archived as part of the stationid sub-system (along with the other network devices such as ethernet).

System profile: effectiveness of a new definition

The modification made to the definition of the active profile were not effective until the next Linuxconf session. FIxed!

Various bug in 1.18r5 rpm

The changes in 1.18r5 to support non-root rpm build, introduced few packaging problems. First, /bin/linuxconf was not installed setuid root, so co-administrators were left in the cold. And help files were not included in the package.

vpop3d was not filling the

vpop3d was not properly filling the X-POP3-Rcpt header. It was always filling it with the hostname of the server, instead of using the proper virtual domain.

Version 1.18r7


500 Dialog mismatch

This error message is now more explicit. It reports which fields are out of sync (changed by somebody else while you were editing the dialog).

Some users have reported strange dialog mismatch errors. Hopefully this enhancement will help us track the problem (with some dialogs).

Module dnsconf: Support for $ttl directive

The module now understand the $ttl directive in zone file. You can set it from the zone creation/edition dialog in the feature section.


More Swedish and Finish translations

Bug fixes

Module mailconf: Some anti-spam fix in rule-sets

The check_rcpt section of was enhanced to filter some quoted addresses.

Module managerpm: Dialog not hiding

In GUI mode, some pop-up dialog were not removed properly and were stealing the show.

Packaging: The RPM can be rebuilt as a normal user

There were a flaw in 1.18r6 and the permissions of various files in the RPM were not assigned properly (to root). Some defattr were missing here and there for the sub-packages.

Version 1.18r8



Major updates for Spanish, Portuguese and Finish.

Bug fixes

vpop3d: command top fixed

The "top" pop-3 command was not too kind when 0 lines were requested. It was sending the whole mail. Some clients such as outlook request the mail header this way (top message_number 0). Fixed!

Version 1.18r9

Bug fixes

Bug in vpop3d: null message

A glitch was introduced in vpop3d (in linuxconf 1.18r8). A fix in the "top" pop-3 command result is a bad side effect. The retr command was not sending any line of the message. Only the header was sent. So if you have installed 1.18r8, update immediately to 1.18r9. If you have using vdomain and vpop3d, your vdomain user may loose email data. (they will receive empty email).

Version 1.19


A new feature: The virtual registry

The virtual registry is a fairly important component, It will be useful to module writers and system administrators. It was contributed by Tim Young (

The virtual registry is a simple and unified interface to various information managed by Linuxconf. This interface is usable from the command line and from any module. The main features of the virtual registry are:

  • Simple to use. Setting a value or extracting a value is easy.
  • Simple to publish entries in the registry. In general, it costs roughly one line of C++ code to publish any information managed by one Linuxconf dialog.
  • Bound to the user interface, so inherit most of its validations.

The virtual registry was created to simplify the design of gurus modules. The gurus are helper used to perform an administration tasks from scratch. Gurus are generally extremely verbose dialogs connected sequentially. Once they have collect information about the task to perform, they generally write here and there in various configuration files. Using the virtual registry, they will leverage the abilities already found in other module (to manipulate those configuration files).

You can find some documentation about the virtual registry and some sample code

A new module called vregistry included in the core distribution provides a command line interface to the registry. Here are some examples:

	# List all variable managed by the registry
	/sbin/vregistry --list
	# Retrieve the workgroup setting in /etc/smb.conf
	/sbin/vregistry --get samba.workgroup
	# Change it
	/sbin/vregistry --list samba.workgroup MYGROUP
	# disable the samba share "data"
	/sbin/vregistry --set 0

The module is not enable by default. Enable it and there you go.

DIALOG::gui_passthrough() enhanced

The DIALOG::gui_passthrough() offers a way to tap directly in the GUI protocol to enhance the presentation. Using gui_passthrough directly was annoying, so some helper function were created:

  • DIALOG::gui_dispolast()

    Control the placement of the previous GUI element.

  • DIALOG::gui_end()

    Send a End directive.

  • DIALOG::gui_group()

    Define a group surrounding fields.

  • DIALOG::gui_label()

    Define a label.

You will find more information at

GUI protocol enhancement

The GUI protocol has been enhanced to support popup menus. Linuxconf is not making use of those yet. It's coming though. The primitives were already defined but not implemented in linuxconf-gui. You will find sample code in dialog/

Managing system V runlevels on RedHat

The RedHat module allows you to configure the run-levels where a service will run. This feature is part of the "Control service activity" dialog. You already could enable or disable a service from there. The dialog now includes a second notebook tab to select the run-levels.

Also, the services configuration is now properly archived/extracted as part of the system profile versioning.

Module firewall: adding some masquerading modules

The firewall module allowed you to load various masquerading modules. Unfortunately, the list was uncompleted. Fixed!

Module wuftpd: various timeout added

The basic configuration dialog lets you specify various timeouts.

Bug fixes

Bug in filtered records list

Linuxconf provides a generic interface to manage long record list. You can enter a search prefix and you get a limited view. Unfortunately, there was a bug in this area and this was affecting many dialogs, here and there in Linuxconf. If you have seen segmentation fault after adding or editing a record in a list (dns entry for example) then try 1.19. It might solve many problems.

Module dhcpd: DHCP to DNS

Some filtering were missing when updating the DNS from the dhcpd.leases file. This was leading to either invalid hosts being added to the DNS or some dancing around (the DNS was always updated even if nothing had changed).

Module samba: /etc/smb.conf corrupted

I have finally nailed a nasty bug in the samba module. In one specific case, it was trashing /etc/smb.conf and Linuxconf was segfaulting. The problem was occurring when several dialogs of the module were accessed at once, using the GUI.

Module syslogconf: segfault while filtering

A glitch was fixed while using the filter feature (browsing the logs).

vdeliver: File creation mode

The mail folder in the virtual email domain were created with the wrong permissions bit. Changed from 0600 to 0660.

Version 1.19r1


"Are you sure" dialogs default to no in text mode

This is finally implemented. The dialog_yesno accept a new parameter selecting the default button. The xconf_delok and friend now request "no" as the default.

Conectiva: control service activity and sysv

The enhancement made for RedHat in 1.19 (editing the system V runlevels) are now available for Conectiva as well.

Module dnsconf: reloading instead of restart

On some distributions, Linuxconf issues itself the reload or restart for various services. For named, Linuxconf used to stop and start it. It now sends a signal. Please test this (on SuSE for one).

Module dnsconf: support for ! in named.conf

The negation (! character) is now supported in named.conf lists.

More Portuguese translations


Bug fixes

HTML mode broken since 1.19

Most record lists were unusable in 1.19. The entries were not selectable.

Module redhatppp: stupid mode spelling error

Linuxconf was entering "Stupide mode" instead of "Stupid mode".

Segfault in control service activity, French

The dialog was getting to large because the French buttons are fairly verbose (read large). This was breaking a limit and Linuxconf was failing in text mode (when accessing a sysv service).

Version 1.19r2


Module mailconf: support for RealTime Blackhole List (RBL)

There is now a check-box in the basic sendmail configuration (off by default). Once enabled, it insert the proper rules in to support the RBL. Check out

The RBL is a way to reduce SPAM.

Module syslogconf: more feature while browsing the logs

When you select on log line, you get a POPUP menu. From there you can:

  • Send a signal (kill) to the related process
  • Build a filtered view using information from that line (you had this facility before, it was the only option available).
  • Review the package description associated with this process. the module managerpm must be enable to have this information. Reviewing the system logs and jumping back and forth between the log and the RPM description should allow new administrators to learn a bit about what is going on.

More translations: Slovak and French


New module: isapnpconf

This module probe and configure Plug & Play devices. Check it out!

Popup menus in GUI mode

Popup menu are now available. They are used in the syslogconf module, They work like ordinary menu (as seen by the programmer) except you use DIALOG_MENUPOPUP instead of DIALGG_MENU.

There is an example in dialog/

Bug fixes

Installation on slack-ware

A glitch in the packaging was causing improper installation of the /etc/rc.d/rc.m file. It was missing the execution bit. Not fun!


Setting the timezone on older distributions

The new scheme introduced few release ago to set /etc/localtime was breaking some (old?) distributions. Some distro are setting /etc/localtime as a symlink, pointing in /usr/share/.... Linuxconf was overwriting this link, so in fact, overwriting the file in /usr/share.

Linuxconf now delete /etc/localtime before overwriting it.

Text mode UI segfault

There were some problem with dialog too wide. The code is more robust in this area an will truncate things properly.

Version 1.20


Change to the CONFIG_FILE::fopen function

This function is used all over the place in Linuxconf. It used to return a FILE pointer. It now returns a FILE_CFG *. In general, this means that every module using that (every module probably) has to be reworked.

FILE_CFG pointer are used like FILE *, using stdio-like function (fprintf, fputs, .... and so on). They can be embedded in SSTREAM_FILE_CFG object as well.

If you look at the patch for 1.20, you will find that pretty much every module was affected, although the change is always the same.

Oddly, the source compatibility for old module is affected, but not the binary compatibility. Odd.

This change opens up new ability for Linuxconf. Pretty much all configuration file handling is done using CONFIG_FILE objects and CONFIG_FILE::fopen(). CONFIG_FILEs are at the heart of other things as well, such as the multi-machine management (the netadm module), and the system profile versioning. The previous API was missing a single watch point to operate when the file update is complete: At fclose time.

The new API, solve this (using the new fclose(FILE_CFG*) function). The first usage (not yet in 1.20) will be a log window showing you every file updated by Linuxconf. This update window will offers various abilities:

  • Preview a diff of the new file compare with the old one.
  • Accept or reject the change. So if you do not like the way Linuxconf is modifying a file, you can reject the change.
  • Browse the history of the file in the archive.
  • Any idea welcome..

HTML mode: intro screen

€The introduction page shows the host name at the top. Linuxconf parse the introweb.html page and replace the $(HOSTNAME) sequence by the host name of the server. Translator may want to use this in their own introweb.src pages.

linuxconf-gui: various enhancements

There were various little problems in linuxconf-gui. Some problems with records presentation and current line selection.

Module mailconf: max users per vdomain

You can limit the maximum users in a virtual email domain, from the dialog used to configure a vdomain. Once set, a co-administrator won't be able to add more users.

quote management in user account

The user account dialog was modified a little bit to present the quota for various partition as a sub-notebook object. This should make the dialog more usable for people with many partition under file quota control.

Support for ext2 label in fsconf

You can specify a mount point in /etc/fstab either using the block device (/dev/hda1 for example) or the label of the partition, using the LABEL=name syntax. Linuxconf now understand this syntax and also show you all the labels in the help list when you select a partition.


lilo.conf parsing

Parsing of the keyword was case sensitive. From the documentation it is not clear if lilo.conf directives are case insensitive. It seems to be the case though. So Linuxconf ignore the case from now on.

Bug fixes

Module dnsconf: parsing of chaos, hs and hesiod keyword

The zone class in named.conf was not properly parsed.

Version 1.20r1


Activating changes: some explanation

Whenever you quit from Linuxconf, it does some integrity check. If anything is out of sync, it display a little menu allowing you to preview the task to perform and do it.

This dialog was changed. There is no "preview" option again. The preview screen has been folded in the little menu. So you see immediately the task to perform. From there, you can either "quit" from Linuxconf without doing anything, "do it" and "back to Linuxconf".

The task list is now enhanced, showing some comment in bold explaining why a given task need to be perform. It will tell you that this configuration file has changed, so we must restart a given service. Or it will tell you that the service is not running, so we have to start it. And so on.

This feature "Linuxconf explains itself" was requested on the list not long ago. I would appreciate comments about the implementation.

GUI: missing icons

I have added some missing icons in the GUI. I have received some contributions as well.

LILO: map directive

The map directive was not processed. Linuxconf was reading and writing it, but it was not interpreting it. People seldom change this, so this had little effect.

Linuxconf uses the revision date of that file (generally /boot/map) compared with the revision date of /etc/lilo.conf and all other files referenced by lilo.conf, such as kernel images and initial ram disks.

As part of the "Linuxconf explains itself" feature, Linuxconf reports which file is newer than the map file.

Module dnsconf: adding comments to zone

For every zone, you can enter 4 lines. They are stored in /etc/conf.linuxconf. Those lines are:

  • Administrator
  • General comment
  • Renewal date
  • Registrar

Module netadm: export transport protocol

The export transport command is no more hard coded. You can specify a different one for each administration group. Further, for every administration group member, you can override the command. It will be remember from one session to the other.

A help list provides a list of known commands. You can enter whatever you want as a command. the string %h is replaced by the host name of the group member.

New widget: DIALOG::newf_chkm_str

This is like newf_chkm_num, but with a string. It allows you to create field like this

Value	(o) default (o) none __________

Bug fixes

Module dnsconf: data class

Some data class were not supported in /etc/named.conf. Now in, chaos, hesiod and hs are managed.

(ed. note: A little note. 1.20r1 has a glitch there, do not use it for dns. Use 1.20r2)

Version 1.20r2

Bug fixes

Module dnsconf: bug while creating a new zone

A bug was introduced in 1.20r1 (support for data class chaos and friends). At zone (domain) creation time, an uninitialized variable is causing some garbage in /etc/named.conf. Ultimately, Linuxconf may crash while rewriting the file, producing a truncated file. 1.20r2 fixes this!

Version 1.21

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:

  • Personal modules

    Linuxconf is a system administration utility. As such, it takes care of "root" stuff and does not deal with user preferences. Some modules could be useful to end user as well as system administrator. For example, the fetchmailconf module may be use by root to configure the system wide fetchmail configuration, while one user may use it to configure his personal .fetchmailrc.

    Having the ability to reuse a module this way, may expand the usefulness of some module. The LINUXCONF_MODULE::execmain function was modified to pass an extra "standalone" flag, so a module may adjust itself potentially changing some options.

  • Using Linuxconf modules on other Unices

    Linuxconf is a fairly large project and so far, little attempts has been made to port it to different Unices. It touches so many aspect of system configuration, well...

    Porting linuxconf-wrapper and linuxconf-devel to other Unices is fairly easy. Then porting various modules should be straight forward.

    The end result would be module reusing various abilities of Linuxconf engine and sharing a common look and feel. The module would also work both in text and graphical mode as well.

    Run this way, module are truly stand-alone. They do not talk with each others. They are on par with other legacy admin tools...

    Nevertheless, this might be an interesting avenue for developer seeking one toolkit to produce an admin component for all the unices out there.

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:

  • The module now edit in place the information. The file is not re-ordered as before.

  • Include directive are support and the module is able to edit the information in any of them. If you create a virtualhost in an include file itself include in another one, Linuxconf will be able to handle you virtualhost section on the spot.

  • Include files are archived and extracted (system profile versioning) along with httpd.conf.

  • While include files are supported, Linuxconf has no special understanding about them. It is able to edit information and preserve their layout, but it has no clue which one is supposed to handle new virtualhost directives for example. As such, new sections are added at the end of httpd.conf.

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!

Version 1.21r1


Dialog "not listening" in GUI mode

There were no visual way to identify a dialog ready and waiting for input from a dialog just sitting there, waiting for another dialog to be completed. Some users were getting confused, were clicking on the buttons (and were getting visual feedback), but nothing was happening.

The GUI protocol was extended with a new directive: Listen. The directive expects two arguments: The first is the path of the form and the second is either 0 or 1. A one means the dialog is "listening". A 0 means it is not listening. The GUI front-end may do whatever it wants with a 0 to make the state of the dialog more visible.

Linuxconf-gui locks the dialog. Clicking on it has no effect. The dialog is frozen. Further, the mouse icon associated with the dialog is different.

Hopefully, this will make the user interface less confusing.

A front-end supporting this feature must announce it in the "prefer" command sent to Linuxconf at the start of the session. The keyword is "listen".

No change is required in the various modules. The GUI toolkit always knows implicitly if a dialog is ready or not.

Module accountbatch: more features

There is now a help screen for this module. It describes among other things the file format it expects. There is also a new check-box. While updating the account database (/etc/passwd). you can update the password of existing accounts. This might be useful for schools wanting to reset all password at session start to a known one.

The module has now a progress dialog, with up to three gauges. One shows the creation process (new accounts), another the deletion and the last one, the password update process.

Module gurus: A help screen

The module has now a help screen describing the general concept of the interface.

New icons

Conectiva has contributed new icons. There are still many missing though ...

Quit and Cancel buttons

Using Quit and Cancel for some dialog was somewhat confusing. In some case, Quit and Cancel (MENU_QUIT and MENU_CANCEL) is presented as "Dismiss"..

Resources file for Red-Hat 7.0

Red-Hat 7.0 has few changes which impact Linuxconf. They renamed /etc/conf.modules to /etc/modules.conf. Little stuff like that. Linuxconf 1.21 has to resources to deal with those differences, yet keep compatibility with older Red-Hat releases.

Translations: French, Portuguese and Spanish

Version 1.21r2


DIALOG::newf_clist: A new widget

This is a new "column list". It is only available in GUI mode. It is a generalization of the DIALOG_RECORDS, as it allows one to create dialogs with several clist in it.

It will have to be adapted to text and HTML mode. On the other end, multi-list dialogs are probably weird in anything but GUI mode.

Well maybe no. The clist widget may be combined with other field not just other list. So it is work in progress.

Module mailconf: edit aliases

The dialog has been reworked. The Add button has been removed and replaced by a "Grow form" button inside the dialog. This button adds extra fields as need to the dialog. The Add button was doing the same thing, but it was not obvious (what was added).

The help screen has been fixed.

Module printer: many enhancements

The module now defines one privileges per queue. So you can name co-administrator. They are allowed to control the queue. They can stop printing, queuing, restart the daemon and remove jobs.

The big option menu was turned into a popup (in GUI mode). The queue list now present the queue name, queuing status, printing status and the number of job in the spool. Further, the list is updated every 3 seconds, so you can see how things are going.

THe old printconf module has been deleted from the source tree.

Module syslogconf: log viewer enhancements

The log viewer has been enhanced, especially in GUI mode. The large textual button on the right side have been replaced by small icons. The width of the windows had problem. It is presented with a fixed width with an horizontal scrollbar.

A new check-box was added to control the "follow mode". Normally the log viewer works like "tail -f" and follow the growth of the log file. With this check-box, you can lock the view. There is still a bug with the check-box handling so the feature is disabled. Just to say it is coming.

The popup menu has now a new entry: Control service. Using various inter-module apis (PACKAGE_API and SERVICECTL_API), the module can walk its way from a process id (extracted from the log) to the service control and package information. From there, you can restart or stop the service, or disable it or even un-install it. Not bad for a module clue-less about system V init script.

All transparent to the administrator. Cool! Try it out!

New DEVCONF_API inter-module API.

This new api allows one module to request some hardware probing, done by other modules. Several module may implement this api. For now only the modemconf module implement it to auto-detect modems.

So far, the only clients are the dialout module and the gurus.

Translation: Hungarian partly done

And few other updates

Bug fixes

Module managerpm: Improper dependency checking

The module was improperly handling dependencies with version tag. It was complaining about missing dependencies needlessly.

Virtual registry and arrays

The virtual registry allows one to set some variables inside records. For example, one can change the phone number of his dialout connection, by updating the variable "" where "internet" is the dialog configuration name..

Unfortunately, some information can't be update one variable per variable, but must be updated in a single sweep. For example, if you try to set only the phone number of a new dialout configuration you will end up with an incomplete configuration and the update will be rejected (The vregistry sits right on the user interface with all its validation).

The vregistry was fixed to cope with that. When setting several variable from the same record, it caches all the values and does a single commit.

The main user of this is the gurus module. It is now possible to walk you network configuration, from the LAN to the PPP configuration. It will create/edit the "internet" dialout configuration.

Version 1.21r3


Module dialout and redhatppp: hidden password

The password field in the PPP configuration was not hidden. This was done on purpose so people can easily review their ISP configuration. Well, too many people disliked it, so we changed it. Now the password field is present in hidden mode with an extra confirmation field.

When you edit a configuration, if you fail to enter a new password, the old is preserved.

Module dnsconf: new --newsecondary command line

The --delsecondary was there, but the reverse was missing!

Module dnsconf: template domain

In the feature dialog, you can specify the name of the default or template domain. This domain (it has to exist in the DNS) will be used when creating a new domain. The module used to compute default values but could not guess stuff like secondaries and backup MXs.

Now, when you create a new domain, it will copy many settings from the template zone if defined. This affect the interactive and command line mode.

The following command line still work:

	/sbin/dnsconf --newdomain new_domain template_domain

but if you omit the template_domain argument, then the one specified in the features dialog will be used. This should ease your work a bit.

Module dnsconf: update zone files as needed

The module used to write back zone file every time a change was made anywhere. So zone file were needlessly rewritten back and named was sending a update to every secondary for nothing.

Now a zone is updated only if it was changed.

Module mailconf: vdomain locking

As discussed on the list, there are now two new check-box in the vdomain configuration:

  • Incoming mails are rejected
  • Users can't retrieve their messages

These check-box allows one to lock partly or completely a virtual domain email service. This can be used when migrating a vdomain from one server to another, without stopping the mail service for other domain.

vdeliver and vpop3d were fixed to support this. vimap will have to learn about this little trickery. Quite easy to adapt.


More Hungarian and Swedish delivery.

Bug fixes

HTML mode: Spaces in button text

Spaces were not properly supported in button titles. Now they are encoded and properly formatted.

Probing network configuration on SuSE

The kernel behave a little differently on SuSE and Linuxconf was failing when probing the network configuration. It was fixed by used a more general probing scheme, which works everywhere.

This was test on SuSE 6.4. Linuxconf compiles out of the box on it.

Version 1.21r4


Module mailconf: noexpn and novrfy

You can control these options using two check-box. By default noexpn and novrfy are on. The logic of the check-boxes is inverted. With them, you enable expn and verify. Both check-boxes are off by default.

I have reworked the presentation of the mailconf basic configuration dialog and also the help screen, which was dating to say the least.

Module modemconf: More precise gauge

While probing for a modem, the gauge showing the status of the probe more closely represent the amount of work to do.

Module wineconf: New

Thanks to Daniel Mealha Cabrita (, we have a brand new module to configure wine, the windows emulator (

Translations: More Spanish and Portuguese

Including more help files in accountbatch and gurus.

Bug fixes

Module dhcpd: parsing problem with ranges

IP ranges made of a single IP are valid, but were not properly parsed in dhcpd.conf. Also a subnet without any range definition is valid and Linuxconf was poking on it.

Module dhcpd: Updating the DNS

The update DNS feature was broken since a few release. All updates were discarded.

Module dnsconf: segfault while creating a domain

The new template domain feature introduced in 1.21r3 broke a few things and it was not possible to create a new domain interactively.

Version 1.21r5


Building module using TLMP

The script has been enhanced. Near the end, it asks if you want to generate a module in C++ or using TLMP. The new module tcptool was built this way.

Module inetdconf: firewall and FTP

The ftp-data port was not managed properly when the FTP service was enabled. Now both are logically linked. You enable the FTP port, you get ftp-data for free.

Module motd: Using a textarea widget

This module now use a textarea widget instead of a bunch of text lines.

Module syslogconf: /sbin/viewlog alias

The package now install the symbolic link /sbin/viewlog, pointing to /bin/linuxconf. /sbin/viewlog accept a single parameter: The path of a log file. So you can do:

	/sbin/viewlog /var/log/messages

Which is a nice enhancement over "tail -f".

Module syslogconf: tail mode

The module may run in "follow" mode (like "tail -f"). In this mode, it follow the growth of the log file. A button presents a red or green icon to show the operation mode. You can toggle the mode any time. If you start to browse (hit the page up button), it turn off the follow mode.

There are still issues with the HTML mode for this module.

Module tcptool: new

This is a module used to test and experiment with text based TCP services. The module remembers several configuration (host, port and a comment).

Once you connect to a service, you are presented with a dialog with three area:

  • The command field.

    You enter a string in that field and press the "Send" button. The line is sent to the service.

  • 12 user defined buttons.

    For each button, you set the button label and the string which will be sent. The buttons configuration is preserved by service.

  • The bottom is a scroll-able history. It shows what was sent and received to and from the service. You can click on any lines and it will sent again to the service. Clicking a line using the second mouse button, copy it in the command field. From there, you can edit it and send the result.

This module is an experiment. I suggest you give it a try. Point it to your SMTP server, and send the "help" command. Then try to send me an email from there. You might guess after that what the S in SMTP stand for :-)

Or test your email vdomains with it. Comments and suggestions welcome.

New icons for the GUI

Thanks to the nice folks at Conectiva, we have now nicer icons.

Translations: French, Portuguese and Spanish


Bug fixes

Module mailconf: little problems with relay and spam dialogs

The dialogs were not preserving the comments and were badly refreshing.

Module pppdialin: noauth in ppplogin script

The noauth option was implied with older pppd, not anymore. So the script was fixed to force this option.

Version 1.21r6


Module amandaconf: New

A new module was created by Daniel Mealha Cabrita <> to configure the backup system Amanda. Check it out.

Module firewall: redirecting to internal hosts

The inputing rules have been enhanced so one can redirect form traffic and send it to some hosts. It is using the ip_masq_mfw kernel module. A new field was added to the form. Before, one could only intercept traffic and redirect it to some local service on the firewall. Now, the extra field allows you to redirect to another machine.

This should simplify the old "redir" setup since you do everything from the same dialog. It allows arbitrary traffic redirection, not just TCP. Check it out. Not tested much though.

Module grubconf: new

Thanks to Gustavo Niemeyer <>. we have now a module to configure Grub. Grub is an alternative to the LILO boot loader.

Module kernelconf

The module uses the sysctl utility and /etc/sysctl.conf file to handle kernel tuning.

You can also tune the maximum share memory size.

Module liloconf: moved from the core

LILO configuration used to be in Linuxconf core. It is now a module called liloconf. It does the same thing as before.

Module printer

The module was enhanced. From modules/printer/ source:

  • LPRng support
  • PPA drivers properly supported.

Module tcptool: little enhancements

Some enhancement were made to the interface. Some dialogs are now popups. The service may be specified either by name of numerically.

More icons from Conectiva

Conectiva folks have sent more icons. Enjoy!

RedHat 7.0: Some packaging issues

The packaging has been fixed to support RedHat 7.0. Here are the details:

  • Previous Linuxconf RPMs were fighting to insert linuxconf in /etc/inetd.conf even if the file was missing (Which is the case on rh 7.0 since xinetd is used).

    Note that Linuxconf web mode still does not work on rh 7.0 because of a problem with wait services in xinetd.

  • A file /etc/xinetd.d/linuxconf-web is provided.

  • RedHat has moved /bin/linuxconf to /sbin/linuxconf in their packaging. I provide a link in /sbin pointing to /bin/linuxconf for compatibility.

  • The per-distribution file permissions has been enhanced to support per distribution per version since little things changed in RedHat 7.0.

I intend to continue to compile on a RedHat 6.0 box to provide a package for RedHat 6.x and 7.0. and TLMP

The can produce either normal C++ or TLMP linuxconf modules.


More Hungarian, Spanish, and Portuguese

Bug fixes

Module dnsconf: case insensitive

Some string compare were done case sensitive and named.conf is case insensitive.

Module squid: cache_dir directive

The module was not supporting the new cache_dir directive found in squid 2.3. It does now.

Version 1.21r7


Install packages on demand

A little functionality was added in various places in Linuxconf. When Linuxconf enters some area (say the POP user accounts), it sends a message to the distribution dependent module like this:

	module_requestpkg ("popserver");

"popserver" is a generic name for the package handling the POP protocol. The distribution dependent module (Currently, this is only implemented for Red-Hat), translate this name to the corresponding package and checks if it is installed (popserver is imap on Red-Hat systems).

If the package is not installed (the check is done using managerpm) it asks the user if he wants to install it. If yes, managerpm is called again and takes care of prompting for the CDrom and also solve all dependencies related to this package.

This test is done a single time, so if you answered "no", you won't be bother again (You may have installed a competing POP solution for example).

So far, the call has been installed for popserver, dhcpserver, dnsserver and nfsserver. This correspond to the package which are generally not installed by default.

linuxconf-wrapper now usable

linuxconf-wrapper (part of the linuxconf-util package) is now usable. The fsbrowser module can be used with it. linuxconf-wrapper is a way to use module in a stand-alone mode. When used this way, a module may behave differently. One goal is to create module usable by the system administrator and normal users. When run through linuxconf-wrapper, a module has no privilege.

The fsbrowser module is now installed as a symlink (in /usr/bin) pointing to linuxconf-wrapper. This way, one can use fsbrowser without knowing about linuxconf-wrapper.

Module printer: test dialog

The module let you send ASCII and Postscript page to test the printer configuration. Thanks to Daniel Mealha Cabrita from Conectiva Linux.

Module treemenu: quitting

When using the treemenu module, you can quit from Linuxconf using the window manager X button (at the top right of the window). Originally this command was translated to "check for changes and quit". Now it translate to "Quit no check".

More icons

More icons were done by Conectiva Linux.


Updates for Spanish and Portuguese. Thanks to Conectiva Linux.

Bug fixes

Module mailconf: managing the queue

The module was a little restrictive about message ID length and some were truncated.

Module redhat: support - in chkconfig

The "control system activity" was a little confused with a - in the chkconfig directive of a sysv init script. This dash means the service should not be enable by default at installation time. In this case Linuxconf proposes default runlevel 3,4 and 5. This explains why Linuxconf could not enable the NFS service for one.

Version 1.21r8


Activation change dialog

The dismiss button in the "activation changes" dialog was changed to "do nothing".

guiapi documentation

The documentation for the GUI protocol (between linuxconf and the GUI front-end) was updated. You can find it at .

Module dnsconf: more validation

The module does some sanity check on the value of the "directory" directive to make sure it exists. Bad thing was happening if this was not the case.


More Hungarian, translations!

userconf command line

The --deluser command line option was enhanced so you can control the processing of the user home and in-box data. The command line may be used like this:

	userconf --deluser userid --archive
	userconf --deluser userid --deldata
	userconf --deluser userid --keepdata

The default is still to archive the data.

Bug fixes

Bug in the GUI with complex form with notebook

In 1.21r7, a bug was introduced in notebook handling. The user account dialog was affected for one. Fixed!

Module apache: overrides

The overrides check-boxes were initialized to on by default, which was wrong (Apache defaults to no override at all).

Module samba: updating an SMB account

An error message was uselessly produced while updating the SMB account after creating a new account from the command line (userconf --adduser).

Version 1.22


Module amandaconf: More help screens

Thanks to Conectiva Linux, more and more help screens are written!

Module aptconf: new

aptconf is a configurator for the apt utility. apt was originally developped for Debian to help manage DEB package. apt can transfer and install package and resolve the dependancies (potentially downloading needed package).

apt was adapted to support RPMs by Conectiva Linux. aptconf was written by Gustavo Niemeyer <>.

Module dhcpd: fixes dhcpd.leases path on rh7

dhcpd.leases moved (again :-) ). The resources file were adjusted to comply with Red-Hat 7.

Module dialout: the connect button

The connect button was changed for "connection". Instead of only triggering a connection, it brings a query to either turn on or off the connection depending on its current state. Prior to 1.22, you could only turn on the connection from this dialog.

Number of PID files and processname in a sysv script

Enhanced system V init script, as found on some distro (Conectiva, RedHat,Mandrake) are specifying various tags such as processname and pidfile. These tags let Linuxconf probe the various service, finding out if they are "current" (compared with their configuration files).

The number of processnames and pidfiles was limited to 10. It was raised to 50 and more sanity check was added.


More Portuguese, Spanish and hungarian translations.


GUI protocol changed

Some enhancement were made to the GUI protocol to make it more general and more efficient. It was not possible to keep compatibility so I crank the protocol revision level by one. The outcome is that you need to update your GUI front-end (linuxconf-gui). Older front-end will be rejected. Note that gnome-linuxconf is now activly maintained and has all the modification needed. An updated RPM is coming.

Bug fixes

Module dnsconf: two update in a row

The enhanced made to only update the zone file which were effectively changed triggered a bug-let where subsequent changes were not saved to file. Fixed!

Module printer: few fixes and enhancements

Various bug fixes were done. Printer with alias names (in /etc/printcap) are properly supported while sending test pages. Some glitches were fixed in the filter selection. The queue manager was fixed to support LPRng as well.

quota and LABEL

There were other issues with disk quota and file systems labels (LABEL= in /etc/fstab). This should fix the last problems in this area on Red-Hat 7.0.


Linuxconf was not passing this environment variable to the front-end (Linuxconf is passing a very limited environment to every command it execute to avoid potential security problems). The XAUTHORITY variable was discarded. This was causing problem where the front-end could not connect to the X server. I think it is a new feature in XFree 4.

Version 1.23


Configuration file archive: enhanced command line

There were several linuxconf command line options to deal with the archive. All those command options were expecting one or more sub-system name. It was not possible to deal with one file. Further to retrieve one file in the archive, one had to locate its sub-system name (using linuxconf --listconfig) and then dig in /etc/linuxconf/archive.

Now we can use file names or sub-system names. File names are always specified using an absolute path (starting with a /). This is how linuxconf tells apart request for a sub-system or a file.

The affected linuxconf command line options are:

  • --archive
  • --diff
  • --extract
  • --history

Documentation: new man pages

We finally wrote some man pages for Linuxconf and few Linuxconf modules and components. Here is the list:

  • accountbatch.8
  • askrunlevel.8
  • dialout.8
  • linuxconf.8
  • netconf.8
  • remadmin.1
  • userconf.8
  • vregistry.8

Give it a look. You may learn a few things...

GUI protocol modification

We are working to enhance the GUI front-ends (wxxt-linuxconf and gnome-linuxconf). While doing so, we are cleaning the GUI protocol. We have changed the protocol in an incompatible way. So you must also upgrade linuxconf-gui. A new version of gnome-linuxconf will be packages soon.

One modification to the protocol is solving the off-screen appearance of Linuxconf in treemenu mode. It now pops up full size instead of appearing in several steps.

libmodule guruengine: new

The framework code driving the gurus has been moved from the gurus module into its own libmodule: guruengine. This allows module to provide various gurus, while sharing the same look & feel (and most of the code handling that).

To learn more about the guruengine, check out . This document provide many examples.

libmodules: New functionality for modules

We needed a way to share some code between modules. Currently the only way was to put this code in the core. This was not so good especially if only few modules needed to share the code.

The libmodule concept solves this. A libmodule is just a bunch of subroutine and classes bundle together as a shared object. They are located in the libmodules sub-directory of linuxconf source distribution. Once a libmodule is create, it can be used fairly easily by any other module. It simply has to

  • Create a file module.dep (for module xterminals, there is a file xterminals.dep). In that file, just enter the name of the libmodule needed by this module. Just the name, no extension, no path. This file tells the module loader that some libmodule are needed and they are loaded first. If you fail to create this file, your module won't load at all and Linuxconf will report some errors.

  • Include some file from the module and use it. In general, modules being located in the modules/module-name sub-directory and libmodules in libmodules/lib-module-name, you include it like this:

    	#include "../../libmodules/module-name/module-name.h"

For now, the only libmodule available is the guruengine module. More on this in the change log.

linuxconf --help

"linuxconf --help" always shows up in text mode. There was little point in using the GUI for this. Further, those having problems with the GUI (for various reasons) were not able to see the help (well, there is a man page now).

Module amandaconf: Some updates

This includes bug fixes and user interfaces enhancements.

Module dhcpd: dhcp to dns

The module has been extended to support extra lease files. It is now possible to use the command line to merge lease files coming from other dhcp server. The new command line goes like this: --domain --leasefile a_file

Module ircdconf: ui enhancements

Various little enhancements, especially to lists presentation.

Module mgettyconf: merged in the core

This module used to be distributed as an independent package. It is now in the core package. Those using it will have to un-install the rpm before updating Linuxconf. The module was not changed beside the packaging issue.

Module mouseconf: new

This is a new module used to configure the mouse on a workstation. The module interact with gpm, X and kudzu. This is still a prototype and some fixes are needed for distribution not supporting those components. Further, the module deals only with XFree 4 configuration files.

The module was written by Daniel Mealha Cabrita from Conectiva Linux.

Module pamconf: new

This module configures various parameters of the PAM system (plug-gable authentication modules). You will find this module under the "user accounts/policies/PAM configurator" menu.

The module can configure the various files in /etc/pam.d. Further is also configures the parameter files for the following PAM modules:

  • pam_securetty
  • pam_access
  • pam_limits
  • pam_time
  • pam_console

The module was written by Daniel Mealha Cabrita from Conectiva Linux.

Module postfixconf: new

This is an alternative to the mailconf module. It configures the postfix mail server. Check it out. All the help screens are written.

The module was written by Cristiano Otto Von Trompczynski from Conectiva Linux.

Module printer

The module does few more things for LPRng (use lpd_bounce on remote queue for one). Also it better supports printer definition with name aliases.

Module redhatppp: fire-walling support

The module now participate in the fwinfo inter-module api. It is possible to write fire-wall rules using logical host and device using the redhatppp/config syntax. Using that, creating firewall with dynamic IP configuration is possible.

Module updatemon: new

This module will probably please many people, especially those not trusting administration tools. This module is enabled by default, but more visible in treemenu mode.

It consists of two components for now:

  • The "Update files" window
  • The "interactive update" window

The update files window

With updatemon, every time Linuxconf updates one configuration file one line is added to the "update files" window, at the bottom of the treemenu framework. The line shows the time and the path of the file. This way, you know which files are modified by Linuxconf.

But it does not stop there :-)

You can click on files in the "update files" window and you get a popup menu. It contains the following options:

  • Show updates history

    Every time Linuxconf update a configuration file, it preserves the original version in an archive, using the RCS system, if available. Linuxconf has been doing that for some time now. This is the basis for "system profile versioning" btw.

    This menu option request the list of all versions for this file in the archive. Version are presented with the most recent on top. A version is presented with a revision number (allocated by RCS) and a date.

    Clicking on a version allows you to compare it (using diff) with the current file or to edit it. If you edit it and save, it will replace the current copy.

  • Show differences

    A popup presents the difference, using the diff utility between the new version of the file and the previous (The last one archived).

    Using this, you will have a good idea of the modifications Linuxconf has made to a file.

  • Extract last version

    This picks the last version in the archive and overwrite the current one. This can be seen as a glocal undo.

    Edit the file

    The current version of the file is presented in a text editor. You are on your own.

The interactive updates window

While experimenting with a new module or a tricky configuration you may want to control step by step the configuration file updates. When you turn on the "interactive updates", a large popup shows. It has the following fields:

  • Configuration file

    This is the path of the file being update.

  • Proposed update

    This is the path of a temporary file containing the new version of the file.

  • A button: edit

    This buttons let you edit the temporary file.

  • Differences

    This presents the differences (using the diff command) between the temporary file and the current configuration file.

At the bottom, you have two buttons: Accept changes and reject changes. The first tells Linuxconf to continue the update. The original file (which has already been archived) is renamed with a .OLD extension and the temporary file is moved in place.

Selecting "reject changes" aborts the update operation. The temporary file is left in place if you want to review it later.

Module wineconf: ui updates

Some little enhancements were made to list handling.

New section in the Main menu: peripherals

This section will receive the various module configuring hardware. So far, the modemconf module has been moved there. More module should show up pretty soon.

The id of this menu is MENU_HARDWARE. The and shellmod utilities have been modified accordingly.

treemenu mode: help screens

The help pull down menu is now co-manage by modules. They can register their own help pages (and sub-menu) in it. So far, the syslogconf (system logs), status (the status window on the right) and the updatemon provides helps for their own contributions in the menu-bar.

virtual registry: more player

The NFS configuration may be controlled from the virtual registry. The same applies to the DHCP server.


Module binary compatibility

Some changes were made in the various APIs and it was not possible to keep binary compatibility. Independent modules will have to be recompiled. Source compatibility has been preserved. So only a recompilation is needed. RPM users won't be able to upgrade to this version unless you upgrade the externals module as well.

There is a problem with source rpms though. Just recompiling the source rpm is not enough. Inside the rpm SPEC file, the dependency for LINUXCONFAPIREVXX is hard coded. So while recompiling the source rpm with a inuxconf-devel 1.23 will produce a compatible module, rpm will continue to claim that it is incompatible.

This was caused by a bug in the way the SPEC file was created. The solution is simply to pick the source (module-x.n.src.tar.gz, untar it, cd in the source directory and do

	make buildrpm

This will create an RPM file and the new source RPM will only have to be recompile to match binary compatibility with any linuxconf version. It can even be recompiled against an older linuxconf-devel if needed.

Bug fixes

/etc/fstab: keyword auto

The keyword auto was not supported (since it is the default). The keyword noauto was supported though.

Module dnsconf: few fixes

The # character was not parsed properly in named.conf. When creating a new zone, the dot was not added in some fields.

Module fetchmailconf

The /root/.fetchmailrc was not updated properly.

Tree menu and shellmod modules

Before Linuxconf 1.23, the tree menu was not rebuilt properly when a new shellmod module was installed or updated.

Version 1.23r1


GUI protocol

The document was enhanced to cover drawing contexts and drawing primitives.

Module printer: enhancements

You can specify the spool directory if needed. The network authorization menu only appears when running with old BSD lpr package since it is not needed with LPRng.

Module pythonmod: new

This is a full binding for the Python language. It allows module written in python to interface with Linuxconf. You have access to the following objects


I am probably missing some. There is little documentation about it, you you will find a sample in linuxconf/modules/pythonmod/examples.

Thanks to Gustavo Niemeyer ( from Conectiva Linux.

Module treemenu: switchable per UI mode

In the feature dialog, there is now a tab for the treemenu module. you find there a check-box for text mode and gui. You can tell if the treemenu mode is available on a per UI mode basis. Some like the treemenu mode in graphical mode, but not in text mode. Now you have the choice.

Module updatemon: diff option

Using the feature dialog, you can control the options passed to the diff command. By default, it is -c, but you may prefer to view diff files using other format.

Virtual registry: more variables

All fields of a samba share are not publish using the virtual registry. Many field of the account & policies dialog are also published (under acctpolicies.XXXX). You can also control some setting of group (accounts) such as the default home, the default permissions and the create-home flag.

Bug fixes

linuxconf-gui: help popup not always working

A flaw was introduced in 1.23. Some time, the help screen for a field won't show. A variable was not initialized properly.

Version 1.23r2


Module usersbygroup: Moved in the core package

The independent module usersbygroup has been moved into the core package. This is general, and far too many people were ignoring its use.

The module allows one to assign co-administrators for certain user groups. You can also assign some tasks doable by the co-administrators on the user accounts member of those groups. A very useful solution for schools and offices.

Module xterminals

The module has been collecting dust for sometime. It has been reworked a lot lately. It is used to configure the xterminal toolkit (see for details.

The new module should ease the configuration of a server to serve X terminals. Using an extensive guru, you are walked through all the steps to prepare a server. These steps include:

  • NFS server
  • DHCP
  • Font server
  • Login manager (xdm,kdm and gdm)
  • NIS

For each services, it checks the configuration, the package installation and the service activity. You can see a screenshot of the guru here .

Modules kbdconf, Xkbdconf and mouseconf

These are new modules to configure the keyboard and mouse. The modules rely on various libraries including xml, so they are not compiled on all distro.

Virtual registry: more variables

You can deal with /etc/fstab using the virtual registry. This includes pretty much every flag. The variables are fstab-nfs.XXX and fstab-local.XXX. For example, you can switch the readonly flag for the mount point /data like this

	vregistry --set fstab-local.readonly./data 1

Variables were also added to handle the NIS configuration. They are nis.domain and nis.server.

Bug fixes

Module dnsconf: keyword key

The "key" keyword was not supported in the access control specifications.

Module managerpm: rpmlib dependencies

The module was not supporting the rpmlib(feature) construct. It was reporting improper failed dependencies on those, causing problems for package installation and update. The problems were visible only on RedHat 7.

Version 1.24


/var/named/sec permissions

In newer distributions, named is run as user named, not root anymore. The dnsconf module creates secondaries in /var/named/sec. This directory was owned by root. It will be owned by named.named from now on. On older distribution, Linuxconf will still create it as root.root though.

Module dnsconf: sorting

Domains and secondaries are always sorted in the interface, but the order in named.conf is not changed.

Module firewall. Logical devices and addresses

The firewall module already had the ability to query other modules to translate a logical name (key1/key2) into either an IP address (or interface address). This was used by the dialout,redhatppp and pppdialin modules. This is useful to establish firewall rules when the exact IP address is not known.

The fwinfo api was changed to accomodate a new module: userfirewall. Now a module may provide several IP/netmask for one query. The firewall module will generate one rule for each IP/netmask pair, as needed.

The userfirewall module will be announced shortly.

Module mailconf: auth timeout

You can control this parameter. You put the timeout you want or you disable the AUTH request.

Module RPMs

When you create a module outside Linuxconf source tree, you can easily create an RPM for it, just by doing:

	make buildrpm

For a module called foo, this was creating an RPM called foo-version...rpm. Now, without modifying your Makefile with linuxconf-devel 1.24 and up this will create an RPM called linuxconf-foo-version...rpm. This will make Linuxconf modules more easily visible.


More Hungarian stuff!

Virtual registry: more stuff

The linuxconf network access dialog can be used with the virtual registry as well.

Version 1.24r2


GUI front-end: Java re-birth

The Java front-end, forgotten for years, has been revamped. It is not working completely yet, but progress was done. Anyone want to help me on this ?

Guruengine enhancements

The guru map is now click-able. You click on an area and you jump right there if allowed. No need to hit next 10 time to get to proper dialog.

Also, while you move over the map, the node titles are displayed in the upper left corner.

Module isapnpconf: Various enhancements and bug fixes

Module printer: bug fix and enhancements

The module presents the information window as a stand-alone one instead of folded in the treemenu layout.

A bug was fixed when creating a printer queue with a different name than the suggested one.

Module pythonmod: More binding (user interface)

The module is getting more complete, especially on the user interface side (DIALOG class)

Module report: new

This is a new module written by Conectiva Linux. It produces a report on screen and optionally in a text file, of various information about your computer. This includes a lot of stuff found in /proc. The should help support people getting some details about your computer.

Module xterminals: review server guru

This module has been reworked and debugged quite a lot. We are actively working on a new xterminal kit and the xterminals Linuxconf module will be the work-horse for configuration.

Treemenu mode: icons

Now small icons, thanks to Conectiva Linux, are displayed in treemenu mode. This is supported both by linuxconf-gui and gnome-linuxconf (a new version will be released this week).

Bug fixes

Editing crontab in HTML mode

A glitch was fixed in the crontab editor. It was always presenting the first entry in HTML mode.

fixperm and /var/named/sec

In 1.24, the suggested permissions for /var/named/sec was changed for RedHat 7 from root.root to named.named. Unfortunately, if the bind package is not installed, the named user and group do not exist. Linuxconf was complaining. Now the process was changed. the user and group are resolved only if the fixperm entry is needed (/var/named/sec do exist for example).

Version 1.24r4


GUI splash screen

Thanks to the new gnome-linuxconf, Linuxconf has now a splash screen in GUI mode. Contributed by Conectiva Linux. Cute!

Module dhcpd: More validations

The module not only validate IP numbers, but always check for proper netmask (the network number is compatible with the netmask) and also IP ranges.

Module dnsconf: reverse for sub-nets

The module now implement a scheme to delegate sub-net reverse mapping. This is new and experimental. When you create a reverse zone,there is an extra field to enter the sub-net. You enter the last digit of the network address and the number of significant bit. From there, Linuxconf will know how/when to update this reverse zone.

For example, if you have the sub-net you would enter:

	Network number: 192.168.1
	Subnet x/y         : 64/26

The zone created will be called 64/ The owner of the zone will have to set a bunch of cnames to point his DNS to yours.

Module drbdconf: new

This is a new module to configure the drbd server (sort of network block device server

Module heartbeatconf: new

This module contributed by Conectiva Linux is used to configure the heartbeat server. This is used in high availability servers where the heartbeat server is used to tell which node of the cluster are alive.

Module kernelconf: vregistry support

I have added a bunch of virtual registry variable to control most features managed by kernelconf.

Module mailconf: support for Amavis

You can now specify Amavis as the delivery agent. Amavis is a mail scanner used to filter (out I guess) virus and stuff like that.

Module pslaveconf: new

This is contributed by Conectiva Linux. This configure the portslave server.


French, Portuguese, Spanish and Slovak updates.

Version 1.24r5


Menus reworked

various menus and modules have been moved to get a more consistent layout.

Module firewall: port redirection to another host

The help screen has been enhanced and the functionality tested. You need the ipmasqadm utility to make use of that.

Module printer: various cleanups

The module was reworked so we can do a gurus for it without by reusing most of the code.

Module pythonmod

It is getting more complete. It provides access to more Linuxconf APIs. This includes access to the virtual registry so a python module can peek and poke in various other modules.

Module radiusconf: new

Module tcptool

The command line in session mode sends its content whenever you hit enter. You do not have to click on Send all the time. This only works in GUI mode for now.

Translation updates

Spanish, Slovak and Portuguese. Many help screens enhanced/translated.

Bug fixes

Control service activity

When you were deleting a package from this dialog, the list was not redrawn properly.

misc GUI bugs

Various little things were fixed:

  • Record list were not showing the "current" record properly.
  • The help screens did not show a dismiss button and this was causing various problems with window manager without a little X quit button.
  • When too many independent dialog (threads) were opened, it was not possible to close the last one. Now you get a message that you can't open more windows, but you can still operate properly the already opened one.
  • linuxconf-gui process the TAB key differently in text-area field. It enter a TAB instead of jumping to the next field.

Version 1.24r6


Helper utilities to restart services

The program /usr/lib/linuxconf/lib/sendmail-check and samba-check has been written. They should be used in system init script to make them reliable. Currently, if you do some changes in sendmail configuration or samba, Linuxconf can't tell reliably if those services have to be restarted or not (wasting time of the admin).

I have written to FAQ entry to explain how they should be installed. Check out

inuxconf --silent

This new command line option turn off the various report sent on the screen when Linuxconf executes a command. You use it like other UI option (before all other).

Module status: process tree

The processes are now presented with a pstree like look in GUI mode. In the other UI mode, the output of the pstree command is used. In GUI the tree is interactive and you can send various signal to the processes. Also, you can get package information about a given process. So if you wonder what is this xxx process running, you can get the information right from here, kill it and then un-install the package, all from a central place. This is using inter-module communication obviously :-)

Version 1.24r8


Information about modules

There are quite a few module in Linuxconf now. We continue to add new one. Unfortunately, far too many users ignore what Linuxconf can do for them. We have create a new web page at . this page presents much more information about one module, show screen shots. This is the place where once should go to learn more about a module.

The pages are maintained using a WEB form by the module author. Please contact me ( so I can setup the access.

Configuration tools generally help in the configuration process, but in general Linuxconf modules goes beyond this and most user ignore the advance features (privileges, APIS, command line, co-managers and so on).

Comments welcome!

Module dhcpd: inter-module API

This is the start of an inter-module API. For now, it allows you to query and manage the lease file. It is currently used by the xterminals module. Using this API, it can learn the IP number currently assign to a terminal and can release the IP number when the terminal configuration is deleted.

Module dnsconf: edit the ttl field

The module has been reworked a bit so you can set the ttl on various records. This include the A, MX and NS records. The dialogs have been enhanced to present this extra field in various place. It is optional.

Module dnsconf: many MX and NS record

The was only allowing 3 NS and MX records. Well, it was supporting more, but passed this limit, you were not able to add using Linuxconf. You were able to edit the 4 you had already, but not to add a fifth one for example. now Linuxconf insure there is an extra empty field at the end of the form.

Module mailconf: some publicity

The produced by Linuxconf now "announce" Linuxconf as its version instead of the original x.y.z version string inherited by the original template we started with.

Module managerpm: the --update command line

You can use managerpm to do an visual update of many package. This is useful when you run script in GUI mode and want to see what is going on. The command line is:

	linuxconf --modulemain managerpm --update \
		[ rpm options ] packages ....

You get a nice little dialog with progress bars.

Module status: better presentation

The module status presents various information about your system. It generally does this by retrieving the content of a file in /proc or the output of a command. The content was simply thrown as raw text. In HTML mode, for one, the output was barely readable. I have enhanced the module so most of the reports are now presented as properly formatted table, in all UI mode.

There are still few issues which will be covered in the next release (I already have the fix ...)

Module xterminals: various enhancement

While not complete, the module is now showing interesting features. The goal is not only to help configure X terminals, but also to help manages the users and the resources used by the X terminals.

Some work was done in the management. you can now tell if a terminal is alive, which IP it has. The next step will be the management of the processes hook to this terminal (this is coming).


Updates for French.

Various APIs enhancements

The SSTRING object now properly handle the modified flags. This flag is (was) testable with the member function was_modified() and manageable by the rstmodified() and setmodified() function. Now the setfrom(), append() and friend also update this flag.

The function DIALOG::auto_newline() was added to control the auto-layout mode. Using this function will ease complex dialog layout since you can toggle between auto-layout (single column layout) and manual one (You are not forced to use DIALOG::newline over and over now)

Bug fixes

Module dnsconf: time to live bug

The time to live in zone file was not properly supported. It was only handling numeric value and was confused by the letter suffix (D for day, H for hour, ...). This is fixed.

System profile/archiving

A bug was fixed where some file were archived but never extracted. For example, while it was possible to extract the whole DNS configuration by doing

	linuxconf --extract dnsserv

It was not possible to extract a single zone file. Fixed! This solves also the problem with configuration file defined using the addon/dropin mechanism.

Version 1.24r9


Module dnsconf: classless reverse mapping, take 2

The solution to support classless IP reverse mapping delegation was not flexible enough and was not working in some case (though it follows the latest RFC). It was using sub-nets. Now it is using range, so it is much more flexible. Consider this work in progress.

When you create a new reverse zone, you can enter a range using the x-y syntax. that's it. From now on, Linuxconf will update the the zone if the IP number fits in that range. The zone will be named

for a a.b.c network.

Module mailconf: privacy options

I have added several "privacy" options (SMTP protocol features in fact). These include:

  • etrn
  • verb
  • restrictrun
  • restrictmailq
  • goaway
  • noreceipts

I put a check-box for each. I also reworked the dialog to place options together under a new tab called "SMTP features".

Module mailconf: reworked menu

The menu was originally organized in 2 sections. I have created a new one for virtual email domains features and another to control various things (manage the mail queue and generate

Module nisconf: new

I have moved the code to configure the NIS domain and server from Linuxconf core, so it can be disable on systems without NIS. I have added also some inter-module messaging abilities. This module reacts to the various user account management messages and update the NIS database. It does that by executing the /usr/lib/linuxconf/lib/nisconf_update utility (which does "cd /var/yp && make").

You can turn off this automatic update right in the NIS configuration dialog.

Module printer

You can select the default printer when using LPRng.

Presenting text in HTML mode

Now, formatted text from the status module is presented enclosed with <pre> tags. This produces a more readable results.

Translations: Portuguese and Spanish updates

As usual :-)

Bug fixes

module mailconf: long aliases

Two bugs were fixed with long aliases. Now you can create distribution list as long as needed. A bug was fixed in vdeliver and the other in the mailconf module,

Version 1.25

This is a small release relative to 1.24r9 to allow some developers to synchronize.


GUI: dialog introduction

The introduction text of a dialog was not changeable in GUI mode. It is now. Nothing is changed in the DIALOG API. Just a functionality was added. You need the latest linuxconf-gui (1.25) or gnome-linuxconf 0.67 (to be released shortly).

Module dnsconf: interactive updates from network config

The DNS was automatically updated from the basic network configuration. In general, this was a good thing, Now it is interactive with a yes/no box.

Module pythonmod: virtual registry support

The module was already providing access to the virtual registry. It is now shaping up so it can participate in the registry (publish variables). This is work in progress though.

Module wineconf: Users configuration

The module originally only supported the system wide configuration. It can now handle the users private configuration.

Version 1.25r2


Change user password with PAM

There was a flaw in the way the PAM library was used to let a user change his password. The end result was that password policies were not enforce, only reported as warning.

The change make the dialog a little more obvious.

HTML mode: Some enhancement

It is now possible to program the HEAD section of all pages from the control/linuxconf management/miscellaneous dialog. You enter there whatever you want to appear between the <HEAD> and </HEAD> tags. Apparently useful to tailor the look using cascading style sheets.

The dialog history, at the top is now presented a little differently using some colors. Further, the long title of the first menu is trimmed.


Hungarian updates.

Bug fixes

Disk quota and LABEL=/xx in /etc/fstab

There were a bug in this area preventing Linuxconf to update the disk quota of a user when LABEL were used in /etc/fstab.

Module dhcpd: Wrong validations

In the subnet definition, the module was not accepting an empty second range.

Module managerpm: parsing invalid rpm

While browsing un-installed package, the module has some problems when some rpm in the list were invalid. It was ending up presenting the wrong one.

Module wineconf: packaging issue

In the previous release, the wineconf module was not usable because of a packaging flaw related to the message directory. Fixed. The solution was simply to run "make msg" in the wineconf directory and recompile...

Version 1.25r3


/etc/group with very long member list

The code has been enhanced, using fgets_long to cope with very long member list in /etc/group. Not that most groupadd utility out there will happily destroy you /etc/group if you have a large member list (several kbytes line).

class DIALOG enhancements

There is a new function DIALOG::newf_ipnum. It is used to edit an IP number. This should avoid the various IP number validation here and there in modules. It accepts an empty input as well unless the DIALOG::last_noempty() was called.

Module dnsconf: allow-recursion supported

It is possible to handle this topic. It controls who can use your named server to request information it does not already know.

Module marsconf: new

This is a new module contributed by Conectiva Linux. It configures the Mars netware clone server.

Module xterminals: creating the boot floppy

The dialog to create the boot floppy provides more options. It lets you specify the IP of the terminal, the gateway and the NFS server. You can also provide the netmask. You need the xtermkit 2.4 to make use of this.

Multi-user enhancements

Linuxconf has never been multi-user. In general, when several co-administrator were using Linuxconf at once, it was with the web interface. In this case, Linuxconf was handling this properly since a single process is serving all HTTP users. Further, in HTTP mode the dialog are carrying some state information allowing Linuxconf to deal with inconsistencies: Two co-admin can`t overwrite each other work.

In text and GUI mode, there were no provision. A new facility has been created to cope with that and provide multi-user locking. It is easy to add this to a module, to provide the level of locking (granularity) needed. This is handled by the new class CONTEXT_LOCK. It works like this

	CONTEXT_LOCK l ("key");
	if (l.isok()){
		// Ok, you can perform the task

Check out for more details.

Bug fixes

Bug in record list with filter

There was a bug in record list when the filter popup was used. If a record was added, it was crashing the dialog.

Disk quota and partition label

There was another bug preventing Linuxconf from updating the disk quota for a user account. The bug was visible only when a disk label was used in /etc/fstab.

Module aptconf: bug fixes

Conectiva Linux sent me some bug fixes in the parser.

Module dnsconf: classless delegation

There were some bugs in the newly added classless reverse zone delegation. The NS records were not properly handled.

Module liloconf: selecting the default kernel

There were a glitch when selecting the default boot kernel configuration. In GUI mode, the accept button was not performing any tasks. In Text mode, everything was fine.

Module mailconf: virtual account disk quota

There was a bug in the vdeliver utility. User disk quota were improperly handled. The minimum between user quota and global domain wide setting was used. This was kind of defeating the per user quota feature. Fixed!

Now, the per user quota is used if available. If not, the domain limit is used.

Module managerpm: listing package files

There was a cosmetic bug while listing files owned by a package. Some extra newlines were confusing the GUI and corrupting the text mode display. Further, some differences between RPM 3 and 4 were not handled properly.

Version 1.25r5


/etc/fstab: more features

Linuxconf handles differently the "dev" and "dev=xxx" parameter in /etc/fstab. The later is used by supermount, while the first case implies the dev/nodev feature controlling device file handling.

Also the kudzu option (new in redhat 7.1) is properly handled when figuring if a file system is properly mounted.

fsconf: a man page

A man page was written for fsconf, which is a Linuxconf alias to handle file system configuration.

fsconf: new command line to set disk quota

Two new command line were add to configure disk quota. In general this is seldom used since user and group quota are automatically inherited when you create a new user account. It is more complete nevertheless. Check the fsconf man page for details.

Gurus: new helper function

In dialog nodes, you can use the seticon function to specify an icon which will show on the left of the introduction message. You can also use the "attention()" helper function which simply calls the seticon() function with the "notice" icon. The attention() function has been used all over in the new xterminals module.

IA64 supports

Few patches went in to make sure Linuxconf works well on the new Intel IA64 architecture.

Module firewall: various enhancement

First, the help screen has been reworked a lot. It has been kind of forgotten for too long.

Various enhancements were made to the module:

  • The ipchain module is loaded as needed on kernel 2.4.

  • You can specify any IP protocol, not just icmp, udp, and tcp. The list is taken from /etc/protocols (using getprotoent() in fact).

  • You can specify several entries in the "Host or network" field, separated with commas. This way, you can specify rules like "from : x,y,z to a,b,c". Before, you would have to specify nine different rules to covers all the combinations.

  • You can use the power of ipchain to map firewall rules to different chains. This can speed up your firewall incredibly if you have a lots of rules (We have clocked 300megabits/second through a firewall with 130,000 rules, yeeehaaaa).

    This new facility allows you to map a given rule by interface,protocol,source,source port, destination, destination port. You can also map by source and destination sub-net. By specifying two mappings, Linuxconf will create all needed chains and generate the dispatch rules.

    This new feature is really useful for large firewall, and especially for users of the userfirewall module (which maps users and groups to firewall rules).

Also, not really an enhancement, but support for kernel 2.0 fire-walling was dropped.

Module inetdconf: xinetd supports

The module now supports both xinetd and inetd configuration files. This shows in the "control service activity" where you can now control and configure xinetd services as well.

Module mailconf: probing network interfaces

You can control the "probe interface" feature. This basically tells sendmail to check all network interface and perform a reverse lookup on each. This creates an alias list for the server. In general, this feature is not needed, so you can turn it off as needed. With earlier mailconf version, the feature could not be controlled and was on by default.

Module printer: per distributions permissions

The module now creates print-filter configuration scripts using per distribution permissions. This was made general enough so other module may use the same trick. It uses the resources system (*.paths file) to map a logical permission to a real one. CONFIG_FILE object now accept permissions in both forms.

Module pythonmod: various enhancements

The module includes more binding to Linuxconf UI. This includes access to the DIALOG::new_button() and DIALOG::newf_str()

Module wineconf: stand-alone mode

The wineconf module may be used either inside Linuxconf, or in stand-alone mode. When you execute /usr/bin/wineconf (and linuxconf-utils is installed) the module execute without any privilege and configure the wine user configuration, not the system wide configuration.

wineconf is the first module to benefit from that. So now, this module is both a end-user tool and a system tool.

UI: new icons

Thanks to Conectiva Linux for few more.

Bug fixes

Module ircdconf: a small fix

The module was improperly parsing its configuration file. It could crash in many cases.

Module mailconf: amavis mailer

The amavis mailer was improperly supported.

Module redhat: Control service activity

The module was improperly parsing the output of the /sbin/chkconfig utility and was showing bogus entries for xinetd services. They are now properly ignored since the inetdconf module properly handles them and contribute to the "control service activity" dialog.

Version 1.25r6


Module firewall: some enhancements

The help screen have been enhanced. Instead of a single one, there are 3 explaining more the context.

Negation is supported in the from and to field. You can enter addresses in the form


Still other negations are possible (on the protocol and interface) and will be added in future release.

The chain dispatch mechanism has been enhanced. A new check-box controls how the firewall rules are updated in the kernel. The default mode is to wipe the kernel rules and put new one in place. With the "update the kernel gracefully" check-box enabled, only the relevant chains are updates. This produces faster updates and avoid opening holes while the firewall is changing. This is necessary with the userfirewall module, which can change the firewall rules several times per minutes.

Module mailconf: authwarnings

A check-box lets your control this feature.

Module wineconf: new wine files format

The module was adapted by Conectiva Linux to support some changes in Wine configuration files.


Some french updates

Bug fixes

libmodule guruengine

The gurusteps component was not working properly when 6 steps were specified. It was only showing the first one.

Module mailconf: fixes for amavis filter

The TAB was missing in the template file. This was producing an invalid

Module xterminals: Run-time installation

The first entry of the module menu was not working because of a flaw in the guruengine libmodule.

Version 1.25r7


Control-C in text mode

The user interface now handle control-C. It uses to ignore it and Linuxconf was killed. This was never a problem and was heavily used by experienced Linuxconf users, instead of escaping out of the various menu and dialogs.

Now, control-C does escape from dialogs, so you can control-C out of Linuxconf is a controlled way and each dialog may reacts to it if needed. A dialog just has to wait for the "dialog_controlc" PRIVATE_MESSAGE using the DIALOG::waitfor() function.

A dialog not waiting for this message will receive MENU_ESCAPE while a dialog waiting for it will receive MENU_MESSAGE and will be able to test for this specific message.

The treemenu module makes use of this enhancement. When you "control-c" out of Linuxconf, it preserves the tree state and current line. It does that also if you "quit" using the quit button. When you get back to Linuxconf, you end up positioned exactly where you were in the previous session.

Inserting fields in a dialog

Originally, it was not possible to insert new fields in a running dialog. The new function DIALOG::set_nextfield(int) controls where the next field will be placed in the dialog. Here is a sample

	DIALOG dia;
	SSTRING f1,f2,f3,other;
	dia.newf_str ("Field 1",f1);
	dia.newf_str ("Field 2",f2);
	dia.newf_title ("","new fields go here");
	int insert_pos = dia.getnb();
	int original_pos = insert_pos;
	dia.newf_title ("","Other fields");
	dia.newf_str ("last field",f3);
	dia.setbutinfo (MENU_USR1,"more fields","more fields");
	dia.setbutinfo (MENU_USR2,"remove fields","remove fields");
	int nof = 0;
	while (1){
	    MENU_STATUS code = dia.edit ("insert fields"
	        ,"You can insert and remove fields",help_nil
	    if (code == MENU_ESCAPE || code == MENU_CANCEL){
	    }else if (code == MENU_USR1){
	        dia.set_nextfield (insert_pos++);
	        // We are using the same edit variable, this is a sample only
	        dia.newf_str ("Another field",other);
	    }else if (code == MENU_USR2){
	        if (insert_pos > original_pos){
	            dia.remove_del (--insert_pos);
	    }else if (code == MENU_ACCEPT){

Module dialout: --disconnect --all

The module has a new command line allowing it to disconnect all PPP active connection.

linuxconf --modulemain dialout --disconnect --all

Module firewall: various enhancements

You can use the ! character in various places to mean "not". You can use it in the protocol and from/to field as well as the interface field. You could use it in the "other ports" field.

Module liloconf: Adding a kernel you compiled

When adding a kernel you just compiled, the module is parsing /usr/src/linux/Makefile to extract the kernel version. It was not picking the "extra" field. It does now so the suggest kernel version better match the kernel (and the /lib/modules/kernel-version path).

Module mailconf: Accept email for the host

By default, the module was generating a so email to the host was accepted. A check-box lets you control that. For example some servers are only handling virtual email domain and you do not want to accept email for the server itself at all.

Module printer: search dialog when too many printers

The printer list dialog was modified slightly so a search prefix is presented when the list grows to some limit (60 by default). The list should be sorted ideally...

Module samba: preexec close

Two new check-boxes have been added to control the "pre-exec close" and "root pre-exec close" feature. When a pre-exec script fails (and return an error code), the check-box controls if the connection should end or not.

Module treemenu: handle control-C

As explained in the UI enhancement, the module handles control-C and preserved the exact state of the tree (open/close nodes, window scroll position, current line).

Module xterminals: visualuntar utility

A new utility called visualuntar has been created. It is kind of general purpose. It is used to untar file and present graphically a progress bar. It works in text and GUI mode. It is part of the linuxconf-util package.

The TLMP components in Linuxconf

The various TLMP components in Linuxconf are now documented. You can find the doc at


Several Italian updates from the folks at

Bug fixes

Disk quota with kernel 2.4

Linuxconf now checks for the files quota.user/ on kernel 2.2 and aquota.user and on kernel 2.4. There are still some issues with disk quota and Linuxconf on kernel 2.4 though.

Module dnsconf: updating the DNS from the host configuration

The module has done that for a long time, but in some case it was claiming to update the DNS even if there were no domains matching the host configuration. Fixed!

Module mailconf: amavis mailer template

The template file for amavis mailer was broken (spaces instead of tabs). Fixed!

Records list screen corruption in text mode

Wide records list were not properly presented in text mode and the display was corrupted. Fixed!

Setting file permissions

Linuxconf has to ability to enforce file permission on a per distribution per version basis, the editor used to override these settings was not supporting the "per version" part properly, making it impossible to change some permissions.

Version 1.26


GUI: bitmap format

Originally, the GUI only supported Xpm bitmaps. Linuxconf has been enhanced to transparently translate jpeg to xpm as needed. So it is now possible to provide images in jpeg format. Later, this ability to display jpeg or xpm will be moved to the GUI front-end.

GUI: Enhancements/work in progress of the record list

Much work, although still not visible, have been done on the record list in GUI mode to allow various features: column sorting and record visual attributes. Work is still need to make column sorting generally available in Linuxconf without re-coding.

GUI: more mini-icons

Conectiva Linux sent me more mini icons. Thanks!

linuxconf --services

This is a short cut to the linuxconf/control/control service activity dialog.

Mandrake 8 support

Mandrake 8 has been reviewed to make sure the packaging is compatible.

Module gurus: network configuration

When configuring the PPP dialout, the account password is asked twice and validated. Contributed by Conectiva Linux.

Module mailconf: complex routing

When entering an IP number for a mail gateway, the module will insert the square bracket ([ and ]) requires by sendmail if missing.

Module mailconf: more SMTP features

The parameters queuewarn and queuereturn may be configured by Linuxconf.

Module mailconf: virtual domain delivery

The vdeliver utility was changed in two ways. It now creates its temporary files in /var/spool/vdeliver and those files are deleted immediately after being created. The new directory is created on the fly with permissions root.root,0600.

By deleting the temporary file immediately, even if vdeliver exits abnormally, the file is gone.

Module postfixconf

The dialog for the spam control have been reworked. Contributed by Conectiva Linux.

Module shellmod: some more commands

The settype command has been added to control the presentation of the dialog. For now the only accepted value is "DIATYPE_POPUP".

The command remove_all has been added. This allow one to delete all field from the current dialog and generate a new configuration.

Module wineconf: Configuration file parsing

The escaping (using backslash) is properly handled in the configuration file. Contributed by Conectiva Linux.


Conectiva Linux sent me updates for Spanish and Portuguese.

Bug fixes

/etc/fstab: fs type supermount

The pseudo file-system supermount is managed properly along with its special options.

Module apache: SSL management fix

The SSL management/parsing was changed so SSL statements are properly inserted inside the IfModule mod_ssl.c section. Contributed by Conectiva Linux.

Module dhcpd: sorting the lease file

The sorting of the lease file was improperly done. This was affecting the dhcp2dns feature. Sometime, old leases were sent to the DNS instead of new ones.

Web mode: Security flaw

There is a serious security flaw in Linuxconf since around 1.25. It affects only users with the web mode enabled and the flaw is only exploit-able from hosts authorized to use the web interface.

So, if you don't know what is the web mode or have never configured your server to use it, there is no problem. (http://your_server:98)

If you are using it and allows some "less" trusted users to use it then upgrading to 1.26 is mandatory or disable web mode from Linuxconf/networking/misc/linuxconf network access: Unselect the first check-box.

Version 1.26r1


Module accountbatch: command line option

The accountbatch module is used to add/remove/modify user accounts from an ASCII file. There were initially no command line to trigger an update. There is now. All features available from the dialog are now available from the command line. The man page has been updated.

The option --update has been added and it has many sub-options.

    --update [--test] [--silent] [--file path] [--group groupname ]
             [--grouplow gid ] [--add ] [--del ] [--mod ]
             [--archive ] [--delfiles ]

Module shellmod: vregistry support

It is now possible to use the virtual registry from a shellmod script. This allow easy access to various setting in Linuxconf without having to understand the underlying file formats. There are 3 new commands:

  • vreg_get registry_variable shell_variable

    This retrieves a variable from the virtual registry and place it in the shell variable. The shell variable will be assigned when vreg_do is called.

  • vreg_set variable value

    Set a registry variable to a given value.

  • vreg_do

    This commands triggers the requests. It is not "echoed" but is a shell function. It is like the dispatch function already available.

Here is an example:

       # Getting some values from /etc/samba/smb.conf
       # The values will be stored in $workgroup and $winsserver
        echo vreg_get samba.workgroup workgroup
        echo vreg_get samba.winsserver winsserver
        qecho notice "workgroup is $workgroup, wins is $winsserver"
        # Changing the values
        qecho vreg_set samba.workgroup MYGROUP
        qecho vreg_set samba.winsserver ""

A man page was also written for the module.

Module xterminals: support for xtermkit 2.6

The module has been enhanced to support xtermkit 2.6. Notably xtermkit now may be installed from Redhat 7.1 and Mandrake 8.0 CD.

nfsconf: new module

The NFS server configuration was moved from the core to its own module, nfsconf. This is part of the project to make Linuxconf 100% modular. No new functionality, just that it is now a module.

Version 1.26r2


Changing the host name

When you change the host name, linuxconf offers you to make the change effective immediately and also suggest to reboot the computer since many services adjust their configuration based on the host name. The dialog offers to reboot immediately if you want.

Linuxconf on slackware 7.x and 8

The packaging was reworked to support slackware. From now on I have the setup to produce binaries for every releases. Thanks to Sam Steele.

Module accountbatch: virtual registry

Configuration of the module may be done using the virtual registry.

Module dnsconf: more command lines

The module has now the --unsetmx, --unsetns and --unsetcname command line option, to make it more complete.

Module dnsconf: zone transfer

The module now support the bind 9 style (using rndc) as well as the other named-xfer program.

Module printer: virtual registry

The module now support the virtual registry, thanks to Tim Young.

Module samba: create and directory mask

Those two features were missing. Fixed!

Module vregistry: --getvalue option

The module used to retrieve variables as "var=value". This was not that useful when doing shell programming. The --getvalue command line option was added. Unlike --get, --getvalue only prints the value and not the variable name and equal sign.

Module wuftpd: help files and logs

Some help screens were written and you can now view the various transfer logs (even in real time). You can also view a report done by the xferstats utility.

Virtual registry and records

The virtual registry had already a way to handle record variable (samba.share_available.share-name=1), but was lacking a way to express relationship between a variable and a key. For example, when using the vregistry module, the following command was producing

	/sbin/vregistry --list

The * was meaning that an key was need to properly select a record to update. Unfortunately, the virtual registry was not rich enough to tell which variable. It is now. The above example now produces:

	/sbin/vregistry --list

The key variable may be queried so automated operation like this are possible.

	for share in `/sbin/vregistry --getvalue samba.shares`
		/sbin/vregistry --set samba.share_available.$share 0

This example would disable all share on a server.

Also the way vregistry variable are registered is simplified. It was already simple, it's even better :-) Most module have been updated. the old way was kept for compatibility.

Bug fixes

Module liloconf: unsettling prompt

The module was not handling the prompt keyword properly. It was defaulting to on. It was not possible to turn of LILO prompt.

Module xterminals

When setting the networking, the module was using the current network setup instead of the configuration. It was not possible to use the module during the server installation since it was not using the proper network configuration.

Updating smbpasswd on some distro

The samba module was not called at the proper time and was failing to update the SMB password (because the account was not created yet). This was visible on distro where Linuxconf is not yet using PAM to update password. Fixed!

Version 1.26r3


IP alias with name

IP alias are generally assigned to network devices using numbers (eth0:0 eth0:1 and so on). One can also use name (eth0:s1). Linuxconf fully manage the IP aliases: It will add the missing one and remove the un-needed ones. Some package (the vserver package for one) sets and unsets IP aliases on the fly and Linuxconf has no way to tell if it is authoritative. A solution was introduced. Linuxconf only manage aliases with numeric prefix. It ignores the other.

Module shellmod: one privilege per module

For each shellmod module, a privilege is created. It may be assign to any co-administrator, one by one. Originally, only root was allowed to execute a shellmod module. The module is also receiving the variable REALUSER, so it knows who is the operator.

Virtual email domains: vdeliver enhancements

Two enhancements were made to vdeliver: auto-responder and vacation supports. Both are now built-in. For now, Linuxconf does not offer any way to configure those features. This is coming.

The auto-responder feature allows dummy email address to be connected to some content, sent whenever a message is received for this address. For example, for a vdomain called one can create a file called /var/spool/vmail/files/ and this file will be sent whenever someone send a message to This pseudo user prices does not have to be created in the account database. The file just have to exist. Note that this file has precedence over accounts and aliases.

The vacation is handle using roughly the same logic. For user joe member of the domain, if you create a file /var/spool/vmail/files/ it will be sent to the sender whenever a mail is received. Bulk messages and mail-daemon related are omitted.

Also, a file called /var/spool/vmail/files/ is maintained. It is used to record the fact that an email was sent to a sender once, so we won't send the vacation message over and over to the same person.

Please test this and submit comments. Once settle, we will had the administration tool allowing users to change their vacation message themselves.

Bug fixes

Module apache: check-box fields

The fields presented with a check-box (on/off values) were not parsed properly. They were always presented in the "off" position. They were properly written back though.

Module dnsconf: secondary zone with many primaries

The dnsconf module was limiting secondary zones to 4 primaries. There is no limit now.

Module firewall: protocol field

The protocol field was limited to 10 characters. Some entries in /etc/protocols are larger than that.

Stalling while executing a command

In some condition, Linuxconf was doing a time-out when executing a sub-command. A pop-up window was showing, telling us the command was taking too long to complete. A bug existed for some time where Linuxconf was missing the end of execution of the command, and falsely claiming it was taking too long. Fixed!

vpop3d and the mbox command

The mbox command was removed completely from vpop3d. It was not useful and was introducing some security flaws.

Version 1.26r4


Configuration files and symbolic links

Linuxconf normally renames a configuration file to a .OLD version and write back a new copy, so you can track easily what was changed and potentially undo it.

Sometime, you want to move configuration files in other areas and setup symbolic links to point the original location to the new one. Linuxconf now follow the symbolic links and rename the target file with the extension .OLD and write the new one there. So your symbolic link strategy is preserved.

Module inittab: naming runlevels

The inittab module is generic, so can't name runlevel properly. It is now using some hooks in the distribution dependent module to get the name of the various runlevels.

Module printer: using the virtual registry

Thanks to Tim Young, we can now use the virtual registry to add, configure and delete printer queue definition.

Bug fixes

Adding a user: failing to request the password

A bug was introduced lately. When you were adding a new user account Linuxconf, sometime, was failing to request the password.

Changing the host name

In 1.26r3, Linuxconf was prompting you if you were changing the host name of the server. You were allowed to make the change immediate and/or reboot the machine. Unfortunately, if you were rebooting the machine, the changes were not saved on disk (so you were rebooting for nothing). Fixed!

the reboot is necessary to make sure all services have taken notice of the new host name.

Version 1.26r5


dhcp2dns script and bind 9

The script was fixed to trigger a reload of the dns configuration with bind 9 on redhat systems.

guruengine: the allfine method

Sometime a guru has a step where it specifies that all is fine. It just inform the user that a setting has been validated and all is fine. the allfine() method is used to present a nice icon. There were already the notice() method to present an icon telling that something is wrong.

Module accountbatch: Some enhancements

The module expects a file with 5 fields to create/maintain accounts. the fields are: user id, name, group, shell, password. In most case this information is not readily available. For example, many accountbatch user are getting their file from a school registry. They get only the userid and the name. The rest is missing, but can be often supplied as constant. A simple script fits the bill. This is nevertheless annoying. So the module was enhanced to accept various file format and supply default for missing field.

A section has been added to the dialog and for each field, we can specify the column in the input file. Or we can say it is missing in the file and supply the default value.

For the password field, we can request auto-generation of the passwords. If selected, the passwords are generated using random values and the report is produced at the end to collect the passwords generated.

A new button "preview" was added to preview the file content after applying the proper parsing. So you can tell if the module properly understand your file and supplies the proper defaults.

Module mailconf: vdomains and vregistry

the virtual registry may be used to configure vdomains. You can do

	# Get the available variable
	/sbin/vregistry --list | grep vdomain
	# Retrieve the fallback destination
	/sbin/vregistry --get
	# Set the domain wide inbox disk quota
	/sbin/vregistry --set 10000

Module managerpm: updating packages

The interactive status window was not showing the update status at all since rpm 4. A different strategy has been used to parse rpm progress.

Module pythonmod: Support for python 2.2

Thanks to Conectiva, the module support python 2.2

Module shellmod: newf_info

The newf_info directive was missing from the protocol. It allows one to enter fixed data in a dialog.

Module syslogconf: adding files

The module was not complete. The add button now works so you can have new files to /etc/syslog.conf

Module xterminal: Support for xtermkit 2.8

The module supports installation using mandrake 8.1 or redhat 7.2. It also support installation of the 2.4 modular kernel.


The rpm I am supplying do work on redhat 7.2 and mandrake 8.1 without any extra packages.

S390 IBM mainframe

A little patch was sent by Conectiva for proper keyboard configuration.

Support for mdk 8.1

Some resource file were adjusted to work on mdk 8.1

Bug fixes

module pppdialin: script ppplogin

The script had a bug preventing post-connection script to be executed.

virtual email domains: vdeliver bug

Since 1.26r3, vdeliver had a bug and was unreliable. This is fixed and make the new auto-responder and vacation feature reliable.

Version 1.27


Handling email vdomain user accounts

The virtual registry was enhanced a bit to allow virtual email domain manipulation. We already had the user.enable,gecos,home, shell and uid variable to handle the main domain. Now it is possible to use the same variable to handle virtual email domain accounts. For example, to change the name of user joe in domain you do

	/sbin/vregistry --set "his name"

Bug fixes

/etc/fstab handling

The tmpfs file system is understood. Labels on raid device are also understood properly.

Module managerpm

The module was generating new password even if it was not needed. Those password were not used, but the module nevertheless was presenting a report about those generated modules.

The module is doing more validations prior to performing the task: Check if all groups exists for one.

Module managerpm: too many rpms

When too many RPMs were handled, some buffer were allocated too small and the content, truncated. This was causing strange problems. Some time it was complaining a file was missing when in fact, it was there. Fixed!

vpop3d: some glitches

The list command was returning an error if the in-box file was missing, instead of simply returning no messages. This was not standard. Fixed!

The parsing of the header was case sensitive (which was wrong) and it was failing to locate the return address of a message properly.

Version 1.27r3


Module xterminals

The file /etc/kde/kdm/kdmrc is now managed and modified when you enable the graphical login for X terminals.

user accounts: no @ allowed

A user account can't have a @ character anymore. This is confusing email programs anyway.

Bug fixes

Module managerpm: deleting package

The rpm --percent option was used when deleting package and this is not supported by rpm. Removed!

Package linuxconf-util

This package was not usable without Linuxconf itself because it was lacking some files. It is now usable without Linuxconf. The package linuxconf-lib is still needed.

Version 1.27r4


Module dhcpd: ddns-update-style

The directive "ddns-update-style ad-hoc" is entered in the configuration file. Contributed by Conectiva Linux.

Module redhatppp: conditional use of wvdial

The module has now a check-box to control usage of the wvdial system (modem auto-everything...). Contributed by Conectiva Linux.

Module updatemon: Action log

Another pane was added at the bottom of the GUI window. It is called action and present a view of the Linuxconf logs (all actions performed by Linuxconf). A nice way to learn how things are working.

Module updatemon: updated files

The bottom used to show the list of updated file for the current Linuxconf session. It now displays the 500 last updates. This is stored in the file /var/log/filesupd.log. The file is maintained/truncated so it never grow too large.

This feature is fully multi-user. If another Linuxconf session updates a file, one line will be added in every running Linuxconf.

A new column was added: admin. This shows the real user id (the name) of the administrator who performed the update.

Bug fixes

Compilation rules for Alpha

Linuxconf was not building properly on Alpha system. Fixed. Contributed by Conectiva Linux.

linuxconf-lib: ncurses

The dll requires ncurses to operate, but the object was not linked using ncurses. This was forcing all application linked to liblinuxconf to be linked also to ncurses. Fixed!

Module firewall: vlan devices

The module was doing some validation for network devices but was rejecting vlan devices (eth0.vlan_number). Fixed!

System profile versioning

The cfgarchive script had a little bug and a dead-lock was possible while extracting large configuration files (cfgarchive was waiting and Linuxconf was waiting forever).

Version 1.27r5

The most important/critical feature of this new releases is the change in virtual email domains to support MD5 passwords. See the change log below.


GUI enhancements

Some changes were done to benefit from (rather old) enhancements done in the GUI front-end. This affects the various record list.

The GUI has the ability to properly align (left,right,center) columns.

The GUI has also click-able heading, providing an intuitive (and common) interface to sort a table using any column.

The change has been done in various modules (presented separately in this change log. The user account dialog still has to be changed.

You need linuxconf-gui to benefit from these changes.

mailconf: virtual email domain and MD5 passwords

The module was change to crypt new password using MD5 instead of the old (less secure/robust) UNIX crypt. No change were need in vpop3d itself. The glibc crypt function supports both the old and new MD5 format.

From now on, when a user, or administrator set a password, it will be crypt-ed using MD5 (the same format found in /etc/shadow). Older crypt-ed password will still work.

vimap was not tested. Please check it all. Since vpop3d did not need any change, things should be fine ... :-)

This change provides better password crypt. The previous format was only using the first 8 characters of the password. Also you can move accounts from the main domain to vdomain without reentering the passwords.

Module firewall

GUI column sorting was applied to rule list.

A column named "redir" was added near the end. It contains an X if the rule is a redirection.

Module printer

GUI column sorting was applied to the queue management.

Module updatemon

The module had a security flaw (since 1.27r4) allowing co-administrator to view some configuration file without having proper privileges. You must be root (or know the root password) to browse and make use of the "update files" pane.

A little box button has been added to the updated files pane to pop a larger window. Since 1.27r4, this window collects the last 500 updates and keeps them permanently on disk. Using a larger window is easier to track the changes.

GUI column sorting was applied to the update files pane.

Module wuftpd

GUI column sorting was applied to the various transfer logs browsers.

Module xterminals

GUI column sorting was applied to X terminal management.

Version 1.28


Module dhcpd: show leases

The dialog used to browse the leases has been enhanced to use column sorting.

Module redhat: IP aliases

Some changes to support IP aliases in 7.3. Aliases ranges still have problems though.

Module samba: ldap support

A new section was added to the samba default configuration. It helps setup the required LDAP fields and LDAP secret. Other smb.conf fields were added to better control file permission (inherit permission).

Module samba: setting the SMB password

It is possible to browse the user list and change the SMB password directly from the samba module.

Bug fixes

Module apache: quoted value

Some quoted values were not parsed properly from httpd.conf. Fixed!

Module mailconf: anti relay rules

There were a glitch allowing relay using specially format address ( notice the trailing @). The new Linuxconf generate a plugging that hole.

Version 1.28r1


HTML mode: error messages and notices

Error messages and notices are better presented with a suitable icon.

linuxconf --extract

The "linuxconf --extract" command line has been enhanced. You can specify the target directory for the extraction. By default, configuration files are extracted from the RCS archive right relative to /, overwriting the original in place. Using --to, you can specify a different root. For example, you do:

	# This pushes the current /etc/resolv.conf in the archive
	linuxconf --archive /etc/resolv.conf
	# This extracts the latest version to its standard location
	linuxconf --extract /etc/resolv.conf
	# This extracts to a different root
	linuxconf --extract --to /tmp /etc/resolv.conf
	# The file /tmp/etc/resolv.conf will be created

The Linuxconf man page was updated.

Module drbdconf

This modules, contributed by Conectiva Linux has been enhanced to support new configuration file format.

Module mailconf: ORDB support

The old RBL (Relay Black Hole) support was removed and replaced by the ORDB. ORDB perform the same task (rejects email coming from known open relay) and is a free service.

Module mailconf: vacation web page for vdomains

A web page was created to let end users handle their vacation configuration themselves. User just point their browser to http://your_server:98/htmlmod:vacation:. From there, they can enable/disable the vacation service for their email account. They can also enter a suitable message.

Module pythonmod: newf_list support

Conectiva Linux contributed "newf_list" support to pythonmod (allow writing Linuxconf modules in python).

Module samba: user validation and PDC feature

Many fields in samba configuration requires users and groups list. Linuxconf was not doing any validation. It does now.

The "domain admin group" feature was added to the default configuration dialog.

New package: linuxconf-X

The main Linuxconf package does not require any X11 library to operate. Some module in it do need some support. They were moved into a different package called linuxconf-X. It contains so far 3 modules: Xkbdconf, mouseconf and kbdconf. This way, Linuxconf rpm may be installed on server with no X11 libraries.

Bug fixes

Module managerpm

The module had some problem parsing RPM information. In some case a whole module escaped from its list. Fixed!

Version 1.28r2


Module dnsconf: more validations

When entering IP numbers, more validation are done. Also, if you have defined some "IP allocation spaces", the IP numbers are checked to see if they fit in one of the ranges. A warning is issued if not. The idea is to uncover some potential errors (You typed a valid IP, but in a wrong IP network for example).

Module samba: more share features

The feature "hide dot files" and "hide files" are now available in the dialog. The first is a check-box to instruct samba to hide files starting with dots (normally hidden under Linux shells). The second allows you to enter a list of files and directories to hide. They are hidden from samba users, but accessible.

Module vregistry: triggering a dialog

It is possible to trigger the dialog corresponding to a vregistry variable. For example, doing

	/sbin/vregistry --rundialog samba.workgroup

trigger the dialog where you can set the samba workgroup. It allows one to trigger various areas in Linuxconf directly. The goal of this feature is to assist in multiple machine management. It will be possible to trigger the same dialog on many machine at once and perform various global operation on them.

Virtual registry: more variables

You can now handle the "Linuxconf features" dialog using the virtual registry. All the variables start with the lnxmisc. prefix.

The "date & time" dialog is also controlled by the virtual registry. All variables start with the datetime prefix.

Bug fixes

Text mode color mode broken

In 1.28r1, a rework in ncurses handling broked the text mode color mode. It also produced a very different mono mode. While fixing the bug, the monochrome mode was changed to remove most of the reverse.

Version 1.28r3


Module dnsconf: virtual registry enhancement

The domain definition dialog is now available using the virtual registry. You can now do things like

	/sbin/vregistry --set primary.ns1.some_domain

Or you can change major updates using little scripting

	for domain in `vregistry --getvalue`
		/sbin/vregistry --set primary.ns1.$domain

vdeliver: time-out detection

Under strange/unknown cases, vdeliver may hang while talking to sendmail. There is now a one minute time-out on those cases and the error is logged.


No more .OLD file in /etc/sysconfig/network-scripts

Linuxconf produces backup when updating configuration files. This confuses RedHat scripts when parsing the /etc/sysconfig/network-scripts files (IP aliases for one). So Linuxconf is not doing that anymore for those files. A new CONFIG_FILE flag CONFIGF_NOOLD was added to control this behavior.

Bug fixes

Module vregistry: --rundialog

The --rundialog option was not working (doing nothing) for ordinary (non record) registry variables. Fixed!

Version 1.28r4

Bug fixes

Local security exploit

1.28r4 contains a fix for a local security exploit. A local exploit requires a shell on the computer. Web mode is not a problem. To solve the problem, either update to 1.28r4 or turn off the setuid bit on Linuxconf

	chmod u-s /bin/linuxconf

The rest of the change log will follow

Version 1.29


gcc 3.2 support

Conectiva Linux contributed the little patch to compile Linuxconf using gcc 3.2 (stricter C++).

Inter module messaging

Modules may send various messages to other modules. These messages are some kind of text broadcast, received by every module. It was getting harder and harder to find out which module was sending what. So the API was enhanced a bit. Now instead of sending simple text message, the API provides the MESSAGE_DEF object. You define the object and then use it to send message using module_sendmessage(). MESSAGE_DEF expects a name and a list of argument (and description) used when sending the message.

From the command line, one can learn about all those message and see how his module may react. The following command print the messages, the modules sending them and the arguments description for each.

	linuxconf --showmsgs

Module firewall: iptable support

The module now output iptable commands instead of ipchains on kernel 2.4. No new capabilities were added to the module beside that. Firewalls built using Linuxconf and ipchains should work as before using iptables. There is one big difference though. iptables uses the INPUT, FORWARD and OUTPUT chains very differently.

  • ipchains always uses all the chains for any packet, except when the packet originate from the machine.
  • iptables uses the FORWARD chain only for packet going through the machine. It uses the INPUT chains for packet targeted at the machine and it uses the OUTPUT chains for packet sent by the machine (not forwarded).
This may affect some router configuration for sure. Please review.

Now, if you do not have time to review this, there is a check-box in the feature section of the "firewall defaults" dialog. It is called "Use IP chains even on kernel 2.4"

Module mailconf: queue management

The queue management is now enhanced. You can sort the various columns (in GUI mode) and you can tag several message and delete them all at once. You use the mouse third button to tag the messages.

Module mailconf: vacation support in user accounts

When editing virtual email user accounts, you have access to the vacation configuration facility for that user. This is the same dialog available in web mode (http://your_server:98/htmlmod:vacation:) for the user, now available to the administrator (or co-administrator).

Sponsored by Eric Wood.

Module xterminals: DISPLAYMANAGER

RedHat 8.0 may be configured independently for the default desktop (KDE or GNOME for example) and the display manager to use (kdm from the KDE project, gdm from the GNOME project). In previous releases, the default desktop was selecting everything. The module has now two fields to select both independently.

Bug fixes

Module dhcpd: parsing ddns-update-style

The module was not parsing this line properly.

Module dnsconf: TTL parsing

There was a flaw when parsing TTLs (time to live) and the SOA records refresh times when the minute suffix was used (M). The other (H for hours, W for weeks and D for days) were properly supported. Linuxconf was properly encoding the suffix, but not properly parsing it back. Minutes were changes to seconds... You may want to review your SOA records (domain definition, features, ...).

Module nisconf: updating the database as needed

The module had the ability to update the NIS database whenever some modification were made to user accounts (using Linuxconf). There were various cases where the module failed to notice and this was leaving the NIS database out of date. When groups were modified and when a user was changing his password (using the web form), the NIS database was left unchanged.

Module printer: queue management

The queue managemant was improperly parsing the output of the lpq command. It was not presenting print job information properly and sometime, not at all.

Version 1.29r1


Module dnsconf: using the virtual registry

The module has been enhanced to support the virtual registry. You can use it to configure and populate DNS domains. You use the variables primary.*.domain and dnsconf.*.host to manage the DNS.

The module had already extensive command lines. But the virtual registry offers a fine grain approach allowing you to setup more stuff from the command line. Here are few example:

  • Retrieving the list of domains currently configured

    /sbin/vregistry --getvalue

  • Creating a new domain

    /sbin/vregistry --set \ \ \ \

module inetdconf: xinetd interface keyword

The module was using the interface keyword instead of bind. The keyword has been deprecated in the last xinetd release so this was creating incompatible configuration files.

The module was not using the CONFIG_FILE object when updating files in /etc/xinetd.d. Those file were not archived when updated. So it was not possible to:

  • View what Linuxconf was doing on those files.
  • Review the RCS archive.
  • Undo a change by extracting the last archived version.

There is another flaw which will be fixed in the next release. The module do not support the disable keyword as people expect. It encodes in the file /etc/xinetd.conf, using the disabled keyword the list of disabled services. This is kind of incompatible with the way people are using xinetd server now. This will be changed in 1.29r2.

Module mailconf: aliases co-administrator

Co-administrator may handle email aliases now. But they can't alter the field "filter program" or "list file". Only root is allowed to do that. Co-administrator could use those facility to grab more privileges...

The aliases may be modified for virtual email domains from the web interface. Enter web mode and visit the "special entries" link to find out.

Module xterminals: RedHat 8.0

The module supports the creation of xterminals runtime using RedHat 8.0 CD. It requires a new version of the xtermkit (coming soon).

Virtual email domain co-administrator

You can assign a special co-administrator password to a virtual email domain. You simply turn a check-box on in the vdomain creation dialog and enter the password. This password is not related to any user account (real or virtual), but to a pseudo administrator called admin@the-domain. So if you create a new vdomain called and turn the check-box on and assign a password, then the co-administrator may enter to administer the virtual email domain.

This is a nice way to delegate vdomain administration to the vdomain user/owner/customer without having to create a real user account.

Sponsored by Eric Wood!

Virtual email domain: fallback and aliases enhancements

When defining a fallback destination, you can use the | character to instruct vdeliver to pipe the message through a command

	| some command

The command may be defined using the following tokens:

  • %d: the target domain
  • %f: the sender email
  • %u: the user id.

A sample command has been created: /usr/lib/linuxconf/lib/sendsmtp. It performs SMTP message delivery without any domain/MX resolution.

This token replacement is also done in aliases pointing to a command (filter program).


Linuxconf network access moved

The "Linuxconf network access" dialog has been moved to Linuxconf/control/linuxconf management area.

Version 1.29r3


HELP_CONTEXT: new feature

The HELP_CONTEXT object make the various help screens more visible. It records one help screen and make it available to all sub-dialog down the stack (sort of). A module would use that to setup a reference to its main help screen. When a user hit the help button, a pop-up let him choose the help screen directly associated to the topic at hand or any related ones down the sub-menus path.

This feature was used in a central place in Linuxconf. Whenever a module X is entered, a HELP_CONTEXT object is defined, referencing the help screen about_X. Those help screens will be used to present the various features of a module. So far, only about_dnsconf was written.

This will help solve one major issue with Linuxconf (and large project in general): Users have a hard way knowing what is available for a given module.

the about_module helps should be short and cover the major topics of a module. The following feature should be covered:

  • Do the module have privileges (co-administrator).
  • Command line options
  • Virtual registry support
  • Inter-module API
  • Special/Useful features >li>Special key bindings

Module dnsconf: more virtual registry

The module now export all the access control stuff to the virtual registry. Also, secondary are fully configurable using the vregistry as well.

User account management

Some work was done to help the new version of the ldapconf module. The change are not apparent. Give it a try anyway. The new ldapconf module has the ability to take over user account management. So if you know how to manage accounts using Linuxconf, you know how to do it with LDAP. The new ldapconf has been enhanced to support large user base (40k accounts) efficiently.

Bug fixes

fsconf: quota command line

The command line was not supporting the LABEL= feature in /etc/fstab properly and was reporting some errors improperly.

Linuxconf do not depend on linuxconf-lib

In 1.29r1, there was a packaging bug where a utility part of linuxconf-util ended in Linuxconf core package. This utility requires liblinuxconf (in linuxconf-lib package) to operate. So linuxconf 1.29r1 core package required linuxconf-lib. Fixed!

Module inetdconf: disable=yes support in xinetd.d files

The module was not setting the disable=yes/no line properly in the /etc/xinetd.d/ files. It was instead configuring the information in /etc/xinetd.conf. This was confusing. Also, the various files in /etc/xinetd.d were not archived when modified (CONFIG_FILE objects were not used properly).

Linuxconf now report the proper setting in "control service activity".

text mode text-area widget

The widget was broken and was corrupting the screen. The widget is now used in the email vdomain user account dialog, to setup the vacation message.

Version 1.30


about_module help screens

New help screens were written to cover some highlights of the various modules. Currently, one is written for dnsconf, treemenu and Linuxconf

Module apache: include directive with wild-cards

Apache 2.0 support an include directive with wild-cards. For example on rh8.0, you have:

	include conf.d/*.conf

Now Linuxconf understand this, resolves the wild-cards and loads the various files.

Module mailconf: listen address and port

It is now possible to control the sendmail listening address and TCP port.

Module treemenu: text mode enhancements

In text mode, the left and right arrow may be used to provide quicker move in the treemenu. The left arrow close the current branch. You do not have to move up to reach the upper menu and then use enter to close it (this still work though). For example if you are located deep down in the tree menu, you just to hit the left arrow few times to reach the "config" top level menu.

The right arrow opens a closed menu, but tries to position the cursor on the line you were when you used the left arrow to close the menu.

Using both keys allows you to visit various areas in the tree menu very quickly. Give it a try.

A help screen was written and is always available while using the treemenu in text mode.

Module vacation: number of addresses in db

The interface now tell you how many addresses are recorded in the vacation DB and it is possible to edit the list directly. This feature is available both to administrators and to end users.


Module binary compatibility

Some changes were done and we could not keep binary compatibility (source compatibility was kept). So you will need to recompile the modules for 1.30. Most modules on were recompiled and published. Note that if you try to upgrade to 1.30 and you have external module installed, you will be told that LINUXCONFAPIREV18 is need by those packages. Linuxconf 1.30 provides LINUXCONFAPIREV19 instead of LINUXCONFAPIREV18.

Bug fixes

HTML mode: numeric input

The numeric fields were limited to 10 characters. This was not enough for long numbers and was causing problems with the user account management (in 1.29r3, the filter was changed to support 32 bits UIDs).

Module kernelconf: 32 bit unsigned settings

The module was improperly handling these large number so it was impossible to configure say the shmmax parameter above 2Gigs.

Module mailconf: adding aliases

The "add" button was missing in this dialog. No way to add aliases when previewing the list. The button was only available in the filter selection.

Version 1.30r1


/etc/PROFILE: new

Linuxconf write the file /etc/PROFILE with the content of the PROFILE environment variable, passed to the kernel at boot time. This allows scripts to check the current profile easily. The file contains:

	export PROFILE=value

so it can easily be sourced in a shell script.

Bug fixes

HTML mode: security flaw

In 1.30, Linuxconf does not require a password to enter and visit many areas. You still needed a password to change things though. So it should not be used in web mode. Either downgrade to 1.29r3 or pick 1.30r1.

Version 1.30r2


Archiving of /etc/conf.linuxconf

/etc/conf.linuxconf is made in several sections. They are archived individually following the sub-system they belong. But they were not archived "on the fly" when they were modified. Only when an explicit archiving request was triggered from the command line or the control panel.

Now, this is done as they are modified. This allows one to undo some configuration later.

Control service activity

The GUI now has sortable columns, so you can easily put together active/inactive services when reviewing a server.

Module accountbatch: LDAP and extra fields

When you setup an LDAP database for user accounts, you often wish to enter more information about users: department number, The accountbatch module is using the inter-module API acctextra to learn about extra fields to supply to LDAP (Currently, only the ldapconf module implements this API).

The module accountbatch is able to parse the input file and assigns the extra fields to LDAP using the API.

Module accountbatch: smarter parsing

The module is used to create/maintain user accounts from a text file (usually produce by another database). The module can parse a text file and extract fields (userid, gecos, password,...) in various position on text line. It can now combine and format them. For example, if you have some numeric ID referencing a user, you can prefix it with a letter: a#2 will put a a prefix in front of the second field of the line.

It can also be used to combine two fields. For example, you may have the name and the surname as different fields in the input file and used them to setup the gecos field.

Module kernelconf: semaphores

The module has been enhanced to control the 4 parameters limiting the system V IPC semaphores. They are notably used by Apache. You may have to configure that if you are running several copies of Apache for example. Virtual private server users may reach the default limit of the kernel.

Module samba: more smb.conf fields

The following fields may be managed by the module now:

In global section:

  • bind interfaces only
  • character set

In homes section

  • veto files

userconf --adduser command line

The --adduser command line was expecting 4 arguments: userid, group, name, and shell. You can supply the home directory optionally now.

Bug fixes

Module samba: users and groups validation

When doing users and groups validation, the module was not supporting quote to protect user id and group with embedded spaces. Fixed!

virtual email domain: vdeliver and aliases

Since the enhancement to fall-back (using % replacement tokens), there was a flaw. It was not working if the fall-back was pointing to an alias.

Version 1.30r3


Module samba: veto files in global section

A little rework of the various dialogs was done and the veto files directive is now available in the global section as well as the share section.

Progress dialog when building the tree menu

A new dialog pops up when the tree menu is created. It presents each sub-menu as they are visited. On slow machines, this shows a little more what is going on. Also if a module hang for any reason, we have a clue.

Bug fixes

Segfault after initial installation

Linuxconf 1.30 and above had a flaw. A new installation, they were always failing (segfault) immediatly. This strange bug was related to the on-demand archiving of /etc/conf.linuxconf introduced in 1.30. To keep it simple, linuxconf maintains in /etc/conf.linuxconf the last language used. If there is a change, linuxconf takes note in /etc/conf.linuxconf, and this triggers the archiving. Unfortunatly, this is done very early at linuxconf startup and before the various messages dictionaries are loaded, so linuxconf ends up manipulating a NULL message pointer. Boom.

1.30r3 has very little beside this fix, but this was a killer for new installation. People having linuxconf for some time did not experienced this problem.

Version 1.31


Module dialout: more vregistry support

The module was only exporting few variables, so it was barely possible to configure a PPP setup from the virtual registry. Also, it was not possible to change the password. In interactive mode, the user is asked to type the password twice, but this feature is meaningless in virtual registry mode. The test for second password equality is skipped in this mode.

Module mailconf: /etc/mail/sendmail.ct

/etc/mail/sendmail.ct generally contains the list of trust users (users allowed to fake the return address, such as mailing list operators).

The mailconf module does not handle this file, but if it exists, it generates a using it.

Module status: lsof front end

The module presents the list of currently opened files. You can browse and setup filters. This is work in progress.

Module usersbygroup: adding users

The module has a new privilege. You can grant separately the ability to manage user accounts in some groups and the ability to add accounts in those groups.

For each group, you can set/unset a check-box to enable account creation. The check-box has precedence over the privilege.

Bug fixes

Module mailconf: alias co-manager

When editing a user account, there is a section driven by the mailconf module. It allows you to redirect email for this user to another destination and it allows you to register this user in various aliases (mailing lists).

The module was doing some sanity check and had a flaw. For example, it was checking if you were simply attempting to redirect the user emails to ... the user, which was pointless. Pointless unless you redirect it somewhere else. It is valid to redirect email for user Joe another place ( and still deliver it in the local mailbox. This is done by entering "joe

In some case, the module was confused and was rejecting your entry claiming that you were simply redirecting email to itself.

Anyway: fixed!

Module mailconf: vacation

The vacation was complaining in some condition if the vacation message was missing.

When creating a new account with a vacation text, the file was created with the wrong name.

There were also some spelling errors.

Text UI: screen trashed after help

When you visited the help selection menu and cancel, the screen was all broken. Fixed!

Version 1.31r1


Automatic password generation

A new feature let you plug a password generator, to help administrator find good, yet easy to remember password. When you configure the "account and policies" dialog, you can enter a command line of a password generator (such as apg). When setting a password, Linuxconf will propose a choice of passwords. You can either:

  • Pick one of the suggested password. It will be installed.
  • Trigger another round to get better/nicer passwords
  • Or go manually to enter the password yourself.

For now, the feature does not work in HTML mode (so it it bypassed). At some point, the feature will be available to users so they can pick a good new password instead of "fighting PAM" until it accepts the new password.

A sample password generator is supplied with Linuxconf. It uses /dev/urandom to generate a somewhat ASCII password. But the apg project generates far more usable passwords.

Module accountbatch: deleting old configs

The module did not provide a way to delete old configuration. Now it does.

Module mailconf: /etc/mail/trusted_users

The module was already checking /etc/mail/trusted_users when generating If the file existed, the module was generating a compatible Now the module uses the file to store the trusted users. It was previously storing this information in /etc/conf.linuxconf.

The module auto-magically move old configuration (stored in /etc/conf.linuxconf) to /etc/mail/trusted_users when you change the configuration. There is no migration tool needed.

Bug fixes

IP aliases ranges on RedHat 9

Linuxconf was confused by the new configuration file for IP aliases ranges. Now they are ignored. In the next release, they will be supported.

Version 1.31r3


HTML password form

By supplying a file /etc/passwd.htmlintro and a file /etc/passwd.htmlend (or a file /etc/vmail/htmlintro.VDOMAIN and /etc/vmail/htmlend.VDOMAIN) one can modify the HTML presentation. The files were used to generate part of the dialog. Now they are used to generate pretty much everything including the head and body section. Only the input fields definition are handled by Linuxconf.

Further, those files are used for all steps of the password change session, not only for the first page.

This gives you a better control to enhance the look and provide more information. Now, adjust you page as the new behavior is different enough.

Module accountbatch and LDAP

The module works with the ldapconf module to help populate the LDAP database, not only with basic user account stuff, but with user defined information. The module was able to create new accounts with extra information, but was unable to update existing accounts.

Further, the module was not able to update existing account under control. Now you can specify field by field, which one will be updated.

Module mailconf: procmail for virtual accounts

This enhancement was submitted to the list a while ago. It lets vdeliver used procmail on incoming mail if there is a .procmailrc in the recipient home directory. The patch was modified slightly: procmail will be used either if there is a .procmailrc in the home directory or if there is a file /etc/vmail/domain.procmailrc. So you can turn on procmail recipe's domain per domain without being forced to have .procmailrc for each user.

Also, the control files used by procmail were moved from /etc to /etc/vmail.

Check this out!

Bug fixes

Module accountbatch in text mode

The module had many problems in text mode. Sometime the display was completely broken. Oddly, this was not a problem with the module per see. The problem was in the UI toolkit. The module was simply pushing some limits a bit.

But it was only affecting accountbatch...

Version 1.32


Disk quota and various RedHat releases

Linuxconf (diskquotaconf now) is using the quotactl API to manage disk quotas. Unfortunately, this API has evolved in the past year. Supporting all the APIs is kind of a mess because there is no easy way to tell which APIs is supported by the running kernel. The quotatool project solved this by using various tricky tests (The quota utilities in RedHat do almost the same, but are confused by later "Linus" kernels).

Using the stuff from quotatool, Linuxconf now adapt on the fly to the various kernels out there.

There is still a catch though. There is no way to probe a kernel to learn its API revision unless disk quota is already active in the kernel (quotaon has been used on a device). This has a negative side effect: There is no way to set disk quota with a Linus kernel on a RedHat system unless you use a patched quota package. I have done that.

Using the new QUOTA_IFACE environment variable, you can force the tools to use the API you want. For example, to initialize user quota on partition /data for a Linus kernel, you do

	QUOTA_IFACE=vfsold quotacheck -c -u /data

The supported values are: generic vfsv0 vfsold

I have uploaded quota-3.06-9env.src.rpm at .

Enabling module from the UI

The dialog used to enable module has been enhanced. A button is available at the end of each line. This buttons present the "about_module" help screen, so you can learn what does the module.

Module accountbatch: supplementary groups

The module let you configure the supplementary groups of a user. (and this works in combination with the ldapconf module).

Module diskquotaconf: new

I have moved the disk quota functionality in Linuxconf core into a module. The user interface was redone (a little) using the user account co-manager framework. This means that the core Linuxconf (userconf in fact) does not know anything about quota anymore.

I have created help pages to explain the various quota (user quotas, group quotas and group member default user quotas).

Now that the functionality is a module, one may disable it. This was a drawback of the previous version. While using Linuxconf to manage quota is certainly a winner, because of the inheritance mechanism (You set the defaults at the device and group level and just override the user with special needs), it was preventing the use of competing strategies. Now, you just disable the module.

The module is enabled by default by the package if /etc/quota.conf exists.

Bug fixes

Module diskquotaconf: quotacheck -c

When the file aquota.user (group) or quota.user (group) was missing the quotacheck was executed, but without the -c command line option. Newer quotacheck utility requires this option to create the file.

Module mailconf: updating sendmail.ct

The module now preserve the comment in sendmail.ct as well as the ordering.

Version 1.32r1


Fedora core 1

Fedora core 1 is now supported and a binary is specially built for it. They are found under

Module diskquotaconf: configuring users and groups

In the user account dialog (and group), the admin now see the current disk usage for the user. He also see the inherited limit a user would get unless the admin override the settings.

Module diskquotaconf: report

A browser was created to review user and group quotas. This browser let you see (in GUI mode) which users are over quota by using a color scheme. Orange means over soft limit, red, over hard limit. The report presents the users group by group. Group members are folded and clicking on a line open up the group list. Columns are sortable etc....

You will find this new report in the status area.

Module diskquotaconf: running quotacheck

When running quotacheck on the root partition, the option -m is used because quotacheck can't remount / read-only.

Version 1.33


Module diskquotaconf

The module now uses repquota to extract quota instead of the kernel API. This has some advantages. It allows Linuxconf to operate on new disk quota format without too much worrying about the kernel interfaces. It also allows Linuxconf to operate on disk quota of remove machine (by replacing repquota and friends with stubs).

Module firewall: reporting error

When the module was applying firewall rules, it was sometime generating errors difficult to related to actual lines in the dialog. This is so because one configuration line may literally explode into many (with modules like userfirewall). Now the error message are easier to understand.

Module mailconf: milter to identify vmail users

The milter (mail filter) has been created to let sendmail properly identify vdomain users right at the "rcpt to" stage. Without the milter sendmail can't tell anything about vdomain users and will happily accept email message to any users. Later, when trying to deliver to the vdomain, it learns the user do not exist and reject the message.

With this milter enabled (and configured to use it), sendmail checks with the milter to learn if the user exist (or an alias). If not, the mail is rejected immediately.

If the vdomain has a fallback destination configured, the milter let the mail go.

An init script called vdomaincheck is delivered to start/stop the milter.

Module mailconf: single URL for password modification

A new dialog was created to let vdomain users change their password. Previously, you needed on URL per vdomain. This still work. But now the URL


gives access to a form requesting the email address (not just the user id). From the email address, the form operates on the proper vdomain.

Module mailconf: supporting milter

It is now possible to configure milter (minimally) from mailconf. You define the milter, the socket and the flags...

Module mailconf: vdeliver

vdeliver now properly return errors from filters.

Work in progress: new GUI front-end

The current GUI is based on wxXt toolkit, which is old and not maintained anymore. The new GUI is based on wxGTK, which is well and alive. I have spent some time on this new GUI ( in linuxconf/diawxgtk). It is not completely done yet, but things are coming along.

Bug fixes

HTML mode: dialog state mismatch

A very old bug was fixed in this area. It was fairly easy to trigger the infamous "dialog state mismatch" screen. It should be fixed now. Check it out.

Here is how this works. When someone edit a page in Linuxconf using the HTML interface, Linuxconf sends HTML fields to the browser. It sends visible and hidden fields. The hidden fields contain the current status of the form. When the user hit "accept", the hidden fields are sent back. Linuxconf compares the hidden values with the current value in the configuration file being edited. If they do not match, it means another user has edited the same record. Linuxconf then reject the new input since it was based on information now outdated by the second user. Not doing so would be some information would be lost. For example

  • User Jack wants to modify a record
  • Linuxconf sends a form to Jack contains the current information about this record.
  • While jack edit the record (and drink a few coffee maybe), user Joe comes in and edit the same record. Joe is a little faster and commit (press accept) before Jack.
  • Jack is back and performs few changes in the form and hit accept.
  • Now the hidden value in the form do not match the current state on the server. Jack input are rejected. Without this feature, Jack would have overwritten Joe's input without knowing.

Triggering the bug was relatively easy. Access a form in Linuxconf and fill it with some errors. Linuxconf will warn about the error and let you correct it. When you hit accept, there is a good chance you see the "dialog mismatch" message.

Anyway, should be all right now.

Version 1.33r1

Bug fixes

Module mailconf: vmilter case insensitive

The new vmilter introduced in 1.33 was not checking email address properly (it was case sensitive). Fixed!

Packaging problem with 1.33

The "make clean" target was incomplete and was leaving behind some binaries in the source distribution. Those binaries were not properly rebuilt for the various distribution. This was producing RPMs you could not install easily. Fixed!

Version 1.33r2


firewall module: rule list

The policy has been add to the rule list. It is easier to find reject/accept rules now. With the new text mode sortable columns widget, it is even easier.

Mailconf module: aliases

Aliases are presented using a sortable columns widget. More information are presented in the list.

Mailconf module: Complex user routing

The complex user routing has been enhanced. The rule list use a sortable columns dialog and shows more information. A new priority field gives you control over the ordering of the rules.

Mailconf module: vmilter

The vdomaincheck milter now return a meaningful error code if the user (or alias) do not exist. Much better than "command reject".

RedHat enterprise 3

This distribution is now supported. It is using the same binaries as fedora core 1.

Text user interface: sortable columns

For some time, the GUI had sortable columns in many lists. The widget has been enhanced to support text mode as well. You can use the keys + and - to select a different sort column in a list. The selected column is show in reverse video (the column title). You can also use the space bar to reverse the sort. For now there is no visible flag telling if the sort if ascending or descending.

This affects many dialogs in Linuxconf.

Bug fixes

Mailconf module: white spaced in aliases

The module will reject spaces in aliases and email address. This is not valid anyway.

Version 1.33r3


User account with sortable columns

The user accounts are now displayed using a widget supporting sortable columns (GUI and text mode).

Bug fixes

Module mailconf: milter and full name

The vmilter was not checking for the user full name (this is configured domain by domain). So a valid email using the full name syntax ( was rejected. Fixed!

Module mailconf: syntax for milter

When generating a with multiple milter, Linuxconf does not use the proper syntax (a comma was missing). Fixed!

Version 1.33r4


Date and time dialog

The dialog was reworked in multiple page, so it is easier to navigate in GUI mode.

mailconf vmilter: mode debug

A debug mode was added to the milter. You have the option -d to turn some debugging messages and option -a to tell the milter to accept everything. Using option -a, you can safely turn on the milter to spy what it is doing without rejecting any mail.

mailconf vmilter: support for DSN

For some reason, the DSN protocol information is passed to the milter. Not sure why. This was confusing the milter as this is of no use. It now ignore the NOTIFY= and ORCPT= arguments.

Bug fixes

Linuxconf 1.33r3 can't add users

The user interface changes in Linuxconf 1.33r3 was incomplete (sortable columns). It was not possible to add new accounts anymore. Fixed!

Version 1.33r6


fsconf: handling loop-back mount

The fstab manager was enhanced to support the loop mount option. The support is done both in the user interface and while validating a file system if properly mounted.

There is a check-box to select the loop option and a field to enter a loop device (for completeness).

fsconf: sortable columns in fstab

The UI was changed to use the new widget allowed sortable columns while displaying file system entries in /etc/fstab

Module accountbatch: various enhancements

The module has been enhanced to allow either disabling or deleting user accounts.

when deleting accounts, the module may execute a command ( authorization command) to learn the list of account it is allowed to delete. Normally, the module will delete/disable accounts on which it is authoritative (member of some groups only). But many tests accounts are created manually and the module can't tell them apart. Now you can write a script reading its standard input and producing on standard output the list of account ok for deletion.

When filling the "operate only on groups" field, you can enter simply a start ("*"). This means accountbatch is authoritative on all groups appearing in the input file. This is useful when the input file contains lots of users in different groups.

The dialog was a bit confusing. You had the test button to run a simulation and get the list of account added,updated, deleted or disabled. And you had the accept button performing the task for real. This button was replace with a "run" button place near the "test" button.

When using the command line to perform account creations or updates you can use the --config option to load one configuration. So you inherit all the parsing information stored with the configuration. Later you can still use the --file or --group (or any other option) to override the stored configuration settings.

User account management: expiration date

In the account list, we see now a new column called "expire". It shows the expiration date of an account. Disabled account are indeed expired account. Since the column is sortable, you can quickly locate which ones are disabled.

vdeliver, procmail and vacation

vdeliver used to execute its vacation routine prior to call procmail or deliver the message itself. Now procmail may decide to discard the message, so the vacation message is not appropriate.

Now it checks if procmail succeeded. It will only perform the vacation task if procmail succeeded.

We added a little feature with that. If procmail produce the exit code 1, the vacation message won't be performed, but vdeliver will return success to sendmail. This allows you to silently drop message. Thanks to Eric Wood for the suggestion and testing.

Bug fixes

Module mailconf: vacation text too large

There was a bug in the HTML interface when validating large text (textarea widget) input. It was limited to 1000 characters. Input larger were rejected (dialog sync mismatch).

Not really a mailconf bug, but it was affected by the UI toolkit bug.

Version 1.34


fsconf: fsck priority

When specifying fsck priority in fstab, a value of 0 means you do not want fsck on this partition/volume. Now the UI presents the field differently to depict this. You have a check-box to specify "no fsck" and a field to enter the priority.

Module accountbatch: various enhancements

Various enhancements were made over 1.33r6:

  • Speed enhancement, especially when dealing with large account databases. It was tested with 40k accounts.
  • The report showing what will be/was changed now include exactly what was change. For each information, you see the old and new value. When updating tons of accounts, it is good to figure out what is going on (and validate your input file somewhat).

  • A new field "log file" let you enter the path of a file collecting all reports detailing changes done by accountbatch.

  • When performing an update, accountbatch was doing some validation and was producing interactive error message for each problem found. Further, it was stopping the processing there.

    Now, it collects all errors and presents a single message at the end of the add/update sequence. If there is one error found, the deletion/disable task is skipped.

  • When you view the status report, you can save it in a file.

User account management: optimization

The user account management have been reworked (internally) to better cope with lots of accounts. Private index have been added to the object to speed searching. This has two effects

  • It makes the accountbatch much much faster when dealing with thousands of accounts.
  • It breaks binary compatibility for old modules. As such I have change the MODULEAPI revision from 19 to 20. This means old module will have to be recompiled. No source changes required. (New modules have been uploaded to the ftp site for this reason).

Bug fixes

Fedora core 2 packaging

A single package is built for both Fedora core 1 and 2. Unfortunately libdb was changed in Fedora core 2 to version 4.2 (and fedora core 1 deliver 4.1). The package is now linked statically with libdb so it installs properly on both distributions.

Module mailconf: creating new vdomain in web mode

The was a field not initialized when creating a new vdomain. This was causing a "dialog mismatch" error in HTML mode. Because of that it was not possible to create new vdomain using the web.

Version 1.34r2


linuxconf-util: printfds

This is a new utility working like lsof. It prints the opened file and network sockets for one for all processes. For network TCP sockets, it prints the IP/ports settings.

Module accountbatch: preserving the update fields

The module allows you to selectively update account fields. You check/un-check the various fields you want to update (gecos, home, ...). Previously the setting had to be entered prior to run accountbatch. Now the setting is saved with the configuration.

Module dhcp

The module was enhanced to support the filename attribute needed for network booting.

Module diskquotaconf: --playcmd option

The --playcmd option is use to configure the kernel from a file produced by diskquotaconf (potentially written on another computer). Previously --playcmd needed a file name as an argument. Now it also accepts the - argument to mean "read from standard input".

Module mailconf: double bounce

The module let you configure sendmail doublebounce option. You can redirect double bounce to the destination you want, disable it or redirect to /dev/null.

Virtual email domains: vacation start/stop

The vdeliver utility performs the vacation tasks. It performs this tasks for a given user if the DB file exist and there is a vacation message (The DB file collects the address who have received the vacation message so far). Now the DB file may also contains a start and stop date for the vacation service. One may setup a vacation message in advance. Currently there is no user interface to handle this. The format in the file is simply a line

	#date: start_date end_date

The dates are encoded using international convention yyyy/mm/dd.

The old behavior is preserved (A db file without #date: means the vacation processing must be done).

x64 architecture

Minor details were changed to allow compilation and operation on an X64 (opteron,athlon64,...) computer. Note that you can install a 32 bits version of Linuxconf anyway.

Bug fixes

userconf: creating home with LDAP

When used with ldapconf, userconf was failing to create the home directory.

Version 1.34r3


Changing a user account id

Using the vregistry, one may rename a user account (changing the login name) like this:

	vregistry --set user.login.ID new-ID

Note that this works as well for vdomain email users, like this:

	vregistry --set user.login.ID/vdomain new-ID


Accountbatch: duplicate records

The module used to signal duplicates in input file and stop processing. Now it process only the first occurrence and signal the duplicates as warning in the result log. This save some time while processing large account sets.

pseudo-tty creation

The old pseudo-tty files are not needed in /dev. Linuxconf does not enforce their presence anymore.

Bug fixes

Module status: empty results

In some case (especially with linux-vservers), the status module was failing to parse some results properly (and was crashing).

Module tcptool: compilation problem

The module was not compiling properly if linuxconf-devel was not already installed (which is generally the case since linuxconf-devel is part of the linuxconf source).