atom feed4 messages in org.freebsd.freebsd-archRe: Configuration management
FromSent OnAttachments
Mike MakonnenJun 19, 2002 3:15 am 
Sheldon HearnJun 19, 2002 4:40 am 
Hiroharu TamaruJun 19, 2002 12:02 pm.Other, .Other, .Other, 1 more
Terry LambertJun 19, 2002 12:20 pm 
Subject:Re: Configuration management
From:Hiroharu Tamaru (tam@myn.rcast.u-tokyo.ac.jp)
Date:Jun 19, 2002 12:02:19 pm
List:org.freebsd.freebsd-arch
Attachments:
bootstrap-etc-cvs - 3k
clean-etc-distrib-check - 0.6k
clean-etc-distrib - 0.8k
recover.modes - 0.1k

Hi,

At Wed, 19 Jun 2002 03:15:33 -0700, Mike Makonnen wrote:

I am of a different opinion. I happen to like plain-text configuration files. The problem is not that we need an easier way to _edit_ the files, but rather we need a better way to manage all those files and the changes we make to them. For example, I have a haphazard collection of rcs files

I totally agree. In fact I have been using cvs for this task since FreeBSD 2.2.x days. I track -stable every several months. As the buildworld Makefiles evolve, things has become easier, and never harder. I am not using mergemaster at all in the process (no offense here too; I just adopted a way without it before it appeared). I have always found the "cvs diff" abilty invaluable.

For what it's worth, I will attach my helper scripts (mainly for bootstraping the repository on a newly installed machine) to give you an idea. It's not fully automated nor complete nor clean, but has served me quite well for a long time. These is no script for automating updates; I type them manually following my memo:

# cvsup the source, then

cd /usr/src make -j4 buildworld < /dev/null >& build.2001.02.02 & make -j4 buildkernel < /dev/null >& kernel.2001.02.02 &

cd /w/4src rm -rf config mkdir config cd /usr/src/etc make distrib-dirs distribution DESTDIR=/w/4src/config

cd /w/4src/config /w/4src/tools/clean-etc-distrib-check | less /w/4src/tools/clean-etc-distrib

cvs -d /var/cvs import -m "import after cvsup" config FreeBSD_core
RELENG_4_20010202

suspend

cd ~ mkdir cvstmp chmod go-rwx cvstmp cd cvstmp cvs -d /var/cvs co -jFreeBSD_core:yesterday -jFreeBSD_core config

....

cd ~/cvstmp/config/ cvs diff -u

cvs commit -m "merged after cvsup"

fg

cd /usr/src make installworld < /dev/null >& install.2001.02.02 & make installkernel < /dev/null >>& install.2001.02.02 & cd / cvs update

cd /dev ./MAKEDEV all

shutdown -r +1

Oh, by the way, on my machines, the following links exist: /usr/src -> /w/4src/src /usr/obj -> /w/4src/i386 or /w/4src/alpha and I have /w/4src/config as the teporary install space for /etc stuff and /w/4src/tools for the scripts I have.

/w is nfs mounted all around the place and the clients simple use what the build machine has built here.

The repository is at /var/cvs with the module name "config"

The clean-etc-distrib stuff was mainly for the very old days when "make distribution" installed binary programs in /w/4src/config/ . I was too lazy to update my scripts.