Gentoo Archives: gentoo-dev

From: Donnie Berkholz <dberkholz@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [PATCH] autotools-utils.eclass: punt unnecessary .la files even w/ USE=static-libs.
Date: Mon, 12 Sep 2011 22:11:37
Message-Id: 20110912221049.GC31178@comet
In Reply to: Re: [gentoo-dev] [PATCH] autotools-utils.eclass: punt unnecessary .la files even w/ USE=static-libs. by "Michał Górny"
On 23:58 Mon 12 Sep     , Michał Górny wrote:
> On Mon, 12 Sep 2011 16:00:20 -0500 > Donnie Berkholz <dberkholz@g.o> wrote: > > > local f > > > for f in $(find "${D}" -type f -name '*.la'); do > > > # Keep only .la files with shouldnotlink=yes - > > > likely plugins local shouldnotlink=$(sed -ne > > > '/^shouldnotlink=yes$/p' "${f}") if [[ "$1" == 'all' || -z > > > ${shouldnotlink} ]]; then > > > + if [[ "$1" == 'only-not-required' ]]; then > > > > Is there a case where one of those arguments might be $2 but you'd > > still want to run this? > > Er? What are you referring to?
Two things. 1. This is only reached if shouldnotlink is false. That means it's only the things that you are already assuming are plugins, right? If so, why is this even done? 2. What happens if I call it with `remove_libtool_files all only-not-required`? Nobody ever does any checking of the # of args.
> > I feel like that shouldnotlink thing is really confusing the logic, > > because there's multiple nested tests for different values of $1 in > > here instead of just testing the args once at the top and setting > > variables. > > As mentioned earlier, the code needs to be refactored. First things > first, then we'll rewrite it to be nice and clean. I don't really want > to waste time doing this if we would need to rewrite it for more logic > in the future.
I'd rewrite it once as soon as you get all the reviews and before committing. Rewrites tend to never happen, since it turns out that people have other things to do with their time.
> > > + # remove .la files only when .pc > > > files provide the libs > > > + # already or they don't give any > > > information > > > + ! has $(basename "${f}") > > > ${pc_libs} \ > > > + && [[ -n "$(sed -n > > > \ > > > > The comment says "or" but I see an "and" here. > > Because everything's negated here. Boolean magic :D.
OK, got it. Stop writing confusing logic. =P -- Thanks, Donnie Donnie Berkholz Council Member / Sr. Developer Gentoo Linux Blog: http://dberkholz.com

Replies