Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jun 2010 14:22:32 -0700
From:      Garrett Cooper <yanefbsd@gmail.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: RFC: etcupdate tool in base?
Message-ID:  <AANLkTikREfDupHi3mnCdUdwXt015KorPvbVGqxwW4MkC@mail.gmail.com>
In-Reply-To: <201006101346.59824.jhb@freebsd.org>
References:  <201006101346.59824.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 10, 2010 at 10:46 AM, John Baldwin <jhb@freebsd.org> wrote:
> I've had several folks ask me recently about importing etcupdate
> (http://www.FreeBSD.org/~jhb/etcupdate) into the base system as an altern=
ate
> tool for updating /etc during upgrades. =A0Do folks have any strong objec=
tions
> to doing so? =A0More details about how it works and an HTML version of th=
e
> manpage can be found at the URL above.

Finally got around to looking at this.

Some comments:

1. Script doesn't check to see whether or not it has write access (and
doesn't catch some errors):

$ etcupdate
mkdir: /var/db/etcupdate: Permission denied
/usr/sbin/etcupdate: cannot create /var/db/etcupdate/log: No such file
or directory

Eventually it stops though, so maybe it's not really a big issue...

2. Some messages are a bit misleading:

$ etcupdate
/usr/sbin/etcupdate: cannot create /var/db/etcupdate/log: Permission denied
$ ls -l /var/db/etcupdate/log
-rw-r--r--  1 root  wheel  0 Jun 14 14:06 /var/db/etcupdate/log
$ whoami
garrcoop

3. Workflow comments.

i. Ok... I know I'm doing a downgrade, but what now?

$ sudo etcupdate
No previous tree to compare against, a sane comparison is not possible.

ii. Did a bit more reading, and I think that `etcupdate build' is what
I want... but it wasn't happy when I did that:

$ sudo etcupdate build
Missing required tarball.

usage: etcupdate [-nBF] [-d workdir] [-r | -s source | -t tarball] [-A patt=
erns]
                 [-D destdir] [-I patterns] [-L logfile] [-M options]
       etcupdate build [-B] [-d workdir] [-s source] [-L logfile] [-M optio=
ns]
                 <tarball>
       etcupdate diff [-d workdir] [-D destdir] [-I patterns] [-L logfile]
       etcupdate extract [-B] [-d workdir] [-s source | -t tarball] [-L log=
file]
                 [-M options]
       etcupdate resolve [-d workdir] [-D destdir] [-L logfile]
       etcupdate status [-d workdir]

So uh... ok? Manpage and usage were a bit confusing (but not too bad).
After I fixed my arguments, here's what I came up with:

$ sudo etcupdate build -s /data/scratch/src/stable/8/
/root/etcupdate-stable8.tbz
$ sudo etcupdate extract -t /root/etcupdate-stable8.tbz
$

Wait -- what happened...? What's going on isn't overly apparent from
running extract. It's nice having clean utilities, but I'm not used to
the etcupdate workflow, so having some verbosity would be helpful :D.

Thanks,
-Garrett



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikREfDupHi3mnCdUdwXt015KorPvbVGqxwW4MkC>