Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Jan 2005 08:12:06 +1100
From:      Edwin Groothuis <edwin@mavetju.org>
To:        Kirill Ponomarew <krion@voodoo.oberon.net>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: HEADS UP: pkg-plist strict enforcement starting
Message-ID:  <20050114211206.GF1175@k7.mavetju>
In-Reply-To: <20050114112918.GF69532@voodoo.oberon.net>
References:  <20050113062739.GA28658@xor.obsecurity.org> <Pine.LNX.4.44.0501131148520.25402-100000@pancho> <20050113180504.GA26064@xor.obsecurity.org> <20050114130404.250d6e26@apircalabu.dsd.ro> <20050114112918.GF69532@voodoo.oberon.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 14, 2005 at 12:29:18PM +0100, Kirill Ponomarew wrote:
> On Fri, Jan 14, 2005 at 01:04:04PM +0200, Adi Pircalabu wrote:
> > > I'm going to be careful about not allowing the "questionable" packages
> > > to fall foul of the pkg-plist checking, until we decide one way or the
> > > other whether they should be considered "broken".
> > 
> > This is a tricky situation from my point of view. I'm following this
> > thread with a lot of interest since I'll be managing a port which CAN
> > NOT honor pkg-plist strict checking. Here are few details:
> > 
> > - The configuration files are created and heavily modified at install
> > time from .dist files, will be modified as needed and should not be
> > deleted at uninstall - the configuration should be kept for a later
> > upgrade. This will definitely break "make install deinstall" on the
> > packages cluster, but the files are required since they must contain
> > information about various modules and plugins of the port, and this
> > information must be written through a daemon started at post-install.
> 
> You can try cmp(1) in pkg-plist to compare configurations files.
> Take a look at ports collection, there are enough examples.

Maybe we need two additional @ commands for pkg-plist:

- @dirrmifempty foo/bar
    does do what "@unexec rmdir %D/foo/bar 2>/dev/null || true" does.

- @rmifdifferent foo/bar foo/baz
    does do what "@unexec cmp %D/foo/bar %D/foo/baz && rm %D/foo/bar" does.

This way we

- have an easy and consistent syntax for a difficult command

- have less chance for errors (forgetting %D, && instead of ||)

Comments?

Edwin

-- 
Edwin Groothuis      |            Personal website: http://www.mavetju.org
edwin@mavetju.org    |          Weblog: http://weblog.barnet.com.au/edwin/



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