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>