On 12/29/12 at 12:50pm, Jouke Witteveen wrote:
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
Seems pretty neat. So far almost all functions seem to work. Though I have come across an issue with netctl-auto. I cannot seem to store a profile. I use # netctl store [PROFILE] and the result is simply the help/usage. I checked with "list" and still not active (no *). Ergo, starting netctl-auto with: # netctl-auto start wlan0 has no action. Though enabling and starting the services using "netctl enable" works perfectly. So far, things look pretty awesome. I really like this interface, as it does indeed integrate well with systemd. Regards, -- Curtis Shimamoto sugar.and.scruffy@gmail.com