[arch-projects] [netcfg] Call for testers: netctl

Jouke Witteveen j.witteveen at gmail.com
Sat Dec 29 06:50:51 EST 2012


Dear all,

For little over a year now, I have maintained netcfg. In doing so I
have encountered three major problems.
1. Despite best efforts, the code and control flow of netcfg remain
rather messy.
2. Usage of netcfg has many corner cases.
3. Some wheels are invented by both systemd and netcfg, but it is not
easy to have netcfg make use of systemd.

In order to deal with these issues I have forked netcfg. In the end,
it turned out to be more of a rewrite. The result[1] I have called
netctl. The main purpose of netctl is to provide profile-based
networking in a systemd environment. Here are some of the changes with
respect to netcfg.
a. Variables in profiles are CamelCase instead of UPPER_CASE to mimic
systemd services.
b. All configuration files are gone, configuration is done through the
netctl utility, which interfaces systemd's systemctl.
c. The only non-trivial usage that is provided is automatic
configuration through ifplugd or wpa_actiond, formerly known as
net-auto-wire{d,less}, now known as netctl-ifplugd and netctl-auto.

Some of the bugs that are fixed:
d. Bind to network interfaces during boot, thus preventing the lack of
a connection after boot recently encountered by owners of slow
hardware.
e. Allow more complex nameserver setups by using resolvconf (openresv).

Transition should not be hard. At any rate the three new man pages
netctl(1), netctl.profile(5), and netctl.special(7) should answer all
questions. Here is a basic outline of the changes required:
- Rename variables in the profiles in /etc/network.d/ and unquote some
of their values (mainly Interface=).
- Run `netctl enable <profile>` for every profile in the old NETWORKS
array. 'last' doesn't work this way, see netcfg.special(7).
- Use `netctl list`/`netctl start <profile>` instead of `netcfg-menu`,
wifi-menu remains available.

As half of the total code base has been removed and almost every line
in the other half has been touched, I expect some easy-to-fix bugs to
be introduced. Therefore I need testers. Please test netctl:
I. $ git clone git://github.com/joukewitteveen/netctl.git
II. $ cd netctl; make pkgbuild
III. copy netctl-*.tar.xz and PKGBUILD to an empty directory
IV. run makepkg in that directory
V. install (using `pacman -U`) the resulting package.

During the 0.x series, I am not afraid of breaking compatibility. If
all goes well, I would like to replace netcfg with netctl starting
with a 1.0 release. I know many people don't like the idea of dropping
netcfg or netcfg compatibility, but I think the situation of netctl is
far easier to maintain. Personally, I don't see much future in netcfg
besides an optional compatibility layer on top of netctl.

Thanks to all testers!
- Jouke

[1] https://github.com/joukewitteveen/netctl


More information about the arch-projects mailing list