Even more RCNG goodness

Matt Dillon has enhanced the varsym/RCNG system to support the following “states” for various services:

runningThe service is running
failedA start or stop operation failed
disabledThe service is disabled
irrelevantThe server is not needed
configuredThe non-process service has been configured
stoppedThe service has been stopped

He also posted the following:

“Call for volunteers! There are many rc.d/ scripts which do not support ‘stop’. Things like sshd and rwho, for example. It would be great if interested parties could start adding ‘stop’ functionality to the more common services. Submit patch sets to submit@dragonflybsd.org”


From Murray Stokely by way of Matt Dillon; a request for papers about BSD system use to present this summer in Boston:

UseBSD will be a one-day special interest group session hosted as part of the 2004 USENIX Annual Technical Conference in Boston (June 27 – July 2, 2004). The focus of UseBSD, as the name implies, will be on showcasing ways in which creative members of the BSD community are making use of BSD-on the desktop, in embedded applications, in corporate data centers, in computational clusters, in business environments, and more!”

RCNG revs up

Matt Dillon’s updated RCNG in a big way. You can now check the status of, or start, stop, etc. different system services using appropriate single commands like rcstart, rcstop, rcrestart, and so on. varsym -sa will list service status.

The old way had you looking for the appropriate file in /etc/rc.d and issing commands for it, and having to poke throught ps -ax or /var/run/ to see what’s going.

To get this running, do make upgrade_etc in /usr/src/etc, or a regular build/installworld. Also, install /usr/src/sbin/rcrun, and reboot.

2 handy scripts

Matt Dillon posted 2 scripts he finds handy for searching in the source tree. The first one is used on its own, with the argument being the search target:

# /usr/local/bin/search
find . -type f -and -not -name '*.*o' -and -not -name '*.a' -and -not -name '*.kld' | fgrep -v ./compile | xargs egrep "$argv" | egrep -v 'Binary'

And the other script, used to pull files containing the searchterm into an editor like so: ‘vi `pullout searchterms`’

# /usr/local/bin/pullout
/usr/local/bin/search $argv | awk -F : '{ print $1; }' | sort | uniq

IPC finalized and soon complete

Matt Dillon will be finishing up IPC using the model mocked up in libcaps. This will enable functions like getpwuid() as an IPC serviceand out of libc. If I recall correctly, IPC = Inter-Process Communication, as acronyms are a common question lately.

lnc and vx in

Code to add the lnc and vx network drivers from FreeBSD-5 is in, put together by Joerg Sonnenberger. This is part of the PCI compat cleanup, though these just-added drivers just use newbus.

Libcaps update

Libcaps, the library for userland threading, has been updated. Work is still proceeding on fp stave/restore, and some other tasks, including Galen Sampson’s work. Matt Dillon’s commit message sums it up as neatly as possible, so I’ll just paste it:

Major update to libcaps. Implement support for virtual cpus using
rfork_thread() and implement IPIs, per-virtual-cpu globaldata areas,
and per-virtual-cpu LWKT scheduling.

libcaps halfway

Galen Sampson and Matt Dillon have committed the first stage of the userland threading – globaldata structure and thread primitives are connected, and libcaps can lock in a fashion similar to the existing kernel locks.

Temporary port fix

Peter Kadau noted that if you are building a program such as XFree86 and it complains about not being able to find a particular library that you know exists on your system, you can use cpdup to move it (between, for instance, /usr/local/lib and /usr/X11R6/lib).

This is a temporary fix. However, if you are experiencing this right now, it’s probably because of an out-of-date dfports. Delete all packages, update, and reinstall packages, and you should be OK.