Subject: Re: [vserver] Hashify and exclude
From: Herbert Poetzl <herbert@13thfloor.at>
Date: Sat, 25 Oct 2008 22:30:27 +0200

On Fri, Oct 24, 2008 at 02:41:58PM +0100, Jim Wight wrote:
> On Thu, 2008-10-23 at 21:47 +0200, Daniel Hokka Zakrisson wrote:
> > Also, remember that a specific exclude list will
> > override the default in /usr/lib*/util-vserver/defaults/vunify-exclude,
> > so if you want identical results with just that one file changed, you
> > should base your file on that.
> 
> Ah, that was information I was missing.
> 
> After a bit of trial and error, and using the following 
> 
> +/etc/gconf
> +/etc/gconf/schemas
> /etc/gconf/*
> 
> from the default exclude file as guidance I've found that specifying
> 
> +/var/qmail
> +/var/qmail/bin
> +/var/qmail/bin/sendmail
> /var/*
> 
> - I had to change /var to /var/* - has given me output which indicates
> that /var/qmail/bin/sendmail would be the only additional file to be
> unified.
> 
> Now I'm struggling to get the whole of /var/qmail/bin unified. With the
> sendmail line removed, /var/qmail/bin would be skipped, as it would if
> +/var/qmail/bin/* were specified. What would be the magic to
> get /var/qmail/bin unified? These are the differences I get in both
> cases over the case with the default file alone:
> 
> <   skipping '/var'
> ---
> >   skipping '/var/gdm'
> >   skipping '/var/nis'
> >   skipping '/var/racoon'
> >   skipping '/var/tmp'
> >   skipping '/var/empty'
> >   skipping '/var/local'
> >   skipping '/var/account'
> >   skipping '/var/db'
> >   skipping '/var/www'
> >   skipping '/var/cfengine'
> >   skipping '/var/preserve'
> >   skipping '/var/lib'
> >   skipping '/var/cvs'
> >   skipping '/var/yp'
> >   skipping '/var/run'
> >   skipping '/var/opt'
> >   skipping '/var/log'
> >   skipping '/var/lock'
> >   skipping '/var/mail'
> >   skipping '/var/games'
> >   skipping '/var/qmail/man'
> >   skipping '/var/qmail/boot'
> >   skipping '/var/qmail/alias'
> >   skipping '/var/qmail/bin/qmail-clean'
> >   skipping '/var/qmail/bin/qreceipt'
> >   skipping '/var/qmail/bin/bouncesaying'
> >   skipping '/var/qmail/bin/sendmail'
> >   skipping '/var/qmail/bin/qmail-showctl'
> >   skipping '/var/qmail/bin/qmail-newmrh'
> >   skipping '/var/qmail/bin/splogger'
> >   skipping '/var/qmail/bin/qmail-lspawn'
> >   skipping '/var/qmail/bin/qmail-start'
> >   skipping '/var/qmail/bin/preline'
> >   skipping '/var/qmail/bin/qmail-rspawn'
> >   skipping '/var/qmail/bin/qmail-qmtpd'
> >   skipping '/var/qmail/bin/forward'
> >   skipping '/var/qmail/bin/qmail-popup'
> >   skipping '/var/qmail/bin/maildirmake'
> >   skipping '/var/qmail/bin/qmail-tcpto'
> >   skipping '/var/qmail/bin/qmail-inject'
> >   skipping '/var/qmail/bin/qmail-qmqpd'
> >   skipping '/var/qmail/bin/qail'
> >   skipping '/var/qmail/bin/qmail-queue'
> >   skipping '/var/qmail/bin/qmail-remote'
> >   skipping '/var/qmail/bin/qmail-local'
> >   skipping '/var/qmail/bin/qmail-pw2u'
> >   skipping '/var/qmail/bin/qmail-send'
> >   skipping '/var/qmail/bin/qmail-smtpd'
> >   skipping '/var/qmail/bin/qsmhook'
> >   skipping '/var/qmail/bin/pinq'
> >   skipping '/var/qmail/bin/condredirect'
> >   skipping '/var/qmail/bin/datemail'
> >   skipping '/var/qmail/bin/maildirwatch'
> >   skipping '/var/qmail/bin/qmail-qread'
> >   skipping '/var/qmail/bin/predate'
> >   skipping '/var/qmail/bin/qmail-newu'
> >   skipping '/var/qmail/bin/qmail-getpw'
> >   skipping '/var/qmail/bin/qbiff'
> >   skipping '/var/qmail/bin/qmail-qstat'
> >   skipping '/var/qmail/bin/tcp-env'
> >   skipping '/var/qmail/bin/except'
> >   skipping '/var/qmail/bin/qmail-tcpok'
> >   skipping '/var/qmail/bin/maildir2mbox'
> >   skipping '/var/qmail/bin/qmail-qmqpc'
> >   skipping '/var/qmail/bin/elq'
> >   skipping '/var/qmail/bin/mailsubj'
> >   skipping '/var/qmail/bin/qmail-pop3d'
> >   skipping '/var/qmail/rc'
> >   skipping '/var/qmail/control'
> >   skipping '/var/qmail/users'
> >   skipping '/var/qmail/doc'
> >   skipping '/var/qmail/queue'
> >   skipping '/var/spool'
> >   skipping '/var/cache'
> 
> What is the argument against unifying everything? 

on recente kernels (i.e. in the presence of
CoW Link Breaking), the only case where a
unified file might not work is when some
application checks the file properties and
requires them to have a link count of 1
 
> Files that are the same will be unified, those that aren't 
> won't, and unified files that become different will have 
> their links broken.

true for CoW enabled kernels, but not true
for oder ones, or kernels with CoW disabled

(there you want to avoid files which get
appended to, or configuration files)

HTH,
Herbert

> Jim
>