Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jul 2003 21:41:30 +0300
From:      Maxim Sobolev <sobomax@portaone.com>
To:        Joe Marcus Clarke <marcus@marcuscom.com>
Cc:        portmgr@FreeBSD.org
Subject:   Re: Major flaws of the new make deinstall code
Message-ID:  <20030714184130.GD2875@vega.vega.com>
In-Reply-To: <1058207026.299.60.camel@gyros>
References:  <20030714165358.GC2875@vega.vega.com> <1058207026.299.60.camel@gyros>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 14, 2003 at 02:23:46PM -0400, Joe Marcus Clarke wrote:
> On Mon, 2003-07-14 at 12:53, Maxim Sobolev wrote:
> > Folks,
> > 
> > I've noticed several misbehaviours of the new make deinstall code,
> > particularly:
> > 
> > 1. The new code behaves incorrectly when there are several @cwd
> > statements in the packing list. Particularly, it affects many
> > ports from games category, which usually create files and dirs
> > under /var. For some reason, make deinstall code takes the second
> > @cwd as the prefix of the installed package and obviously mismatch
> > happens. This needs to be corrected ASAP.
> 
> Do you have a specific port in mind?  I don't recall seeing this in
> testing.

This is an in-house port for our product, pkg-plist looks like following:

bin/radlast
bin/radtest
bin/raduse
bin/radwho
bin/radzap
lib/xtradius/perlAAA.soc
sbin/checkrad
sbin/radiusd
@dirrm lib/xtradius
@cwd /var
@exec /bin/mkdir %D/log/radacc > /dev/null 2> /dev/null || /usr/bin/true
@unexec /bin/rmdir %D/log/radacc > /dev/null 2> /dev/null || /usr/bin/true
@unexec if cmp -s %D/db/raddb/clients %D/db/raddb/clients.sample; then rm -f %D/db/raddb/clients; fi
db/raddb/clients.sample
@exec [ -f %B/clients ] || cp %B/%f %B/clients
db/raddb/dictionary
db/raddb/dictionary.ascend
db/raddb/dictionary.cisco
db/raddb/dictionary.compat
db/raddb/dictionary.livingston
db/raddb/dictionary.quintum
db/raddb/dictionary.shiva
db/raddb/dictionary.tunnel
db/raddb/dictionary.usr
db/raddb/dictionary.versanet
db/raddb/dictionary.xtradius
db/raddb/execparams
db/raddb/hints
db/raddb/huntgroups
@unexec if cmp -s %D/db/raddb/naslist %D/db/raddb/naslist.sample; then rm -f %D/db/raddb/naslist; fi
db/raddb/naslist.sample
@exec [ -f %B/naslist ] || cp %B/%f %B/naslist
db/raddb/naspasswd
db/raddb/realms
db/raddb/users
db/raddb/users.xtr
@dirrm db/raddb

For some reason, it picks /var from the installed package as a main
prefix resulting in false positive. I have not checked other ports
with multiple @cwd's though.

> > 2. In general, prefix-safety feature of make deinstall is misdesigned,
> > as it should not reject deinstalling package which has no dependants
> > (i.e. packages that depend on it) regardless of its prefix, as
> > replacing this package with one with a different prefix will not
> > lead to any problems I can think of.
> 
> Replacing a dependency (pkgconfig, for example) with a version in a
> different prefix could have disasterous effects if you're dealing with
> files you expect to exist in a certain location.  In any event, make
> deinstall-all will remove all packages with a given ORIGIN regardless of
> PKGNAME or PREFIX.

I am not talking about "replacing", but about deleting - deleting
package with different prefix should be harmless if no packages
depend on one being deleted.

-Maxim

> 
> Joe
> 
> > 
> > -Maxim
> -- 
> PGP Key : http://www.marcuscom.com/pgp.asc
> 
> 




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