Date: Mon, 14 May 2007 17:29:38 +0200 From: Alexander Leidinger <Alexander@Leidinger.net> To: Dag-Erling =?utf-8?b?U23Dg8K4cmdyYXY=?= <des@des.no> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src Makefile.inc1 Message-ID: <20070514172938.5v4yi78kisokk84s@webmail.leidinger.net> In-Reply-To: <86wszbqxbz.fsf@dwp.des.no> References: <200705131815.l4DIFop9026874@repoman.freebsd.org> <20070514154040.0lofzrgm8kskgog4@webmail.leidinger.net> <86wszbqxbz.fsf@dwp.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Dag-Erling Sm=C3=83=C2=B8rgrav <des@des.no> (from Mon, 14 May 2007 =
=20
16:44:16 +0200):
> Alexander Leidinger <Alexander@Leidinger.net> writes:
>> Dag-Erling Smorgrav <des@FreeBSD.org> writes:
>> > Log:
>> > Greatly speed up {check,delete}-old* by replacing make loops =20
>> with sh loops.
>> How much faster?
>
> A *lot* faster. Makefile loops are extremely slow. The speedup was so
> great that I didn't even bother measuring it.
Thanks for the short evaluation in the other mail. It's a very nice =20
speedup. I didn't expect the for-loop in make to be that slow compared =20
to a shell for-loop.
>> Some review:
>>
>> Why did you remove the echo?
>
> which echo? about schg? it was completely bogus.
Yes. I don't think so, please explain.
> feel free to re-add it, but only if you also add logic to check whether
> the file actually has the schg flag set before running chflags.
In the current code it doesn't make sense, and the wording can be =20
changed to tell that it will remove schg, in case this flag is set. As =20
you did the change and I don't have time to commit such a change when =20
I'm back at home (the place where I can make commits), would you =20
please add the echo again?
>> Why do you redirect stderr of chflags to /dev/null?
>
> because chflags will complain if your /usr is on a file system which
> does not support flags, such as NFS or ZFS.
But it also removes any other failure message. A more sensible =20
approach would be to replace the redirection with a "grep -v".
>> Why did you change the removal logic?
>
> because it was broken; it would always ask twice about files which you
> chose not to delete.
Yes, that's the bug I talked about. But it also did not try the =20
chflags if it was able to delete the file. So the bug is not that =20
chflags prints the message on a FS which does not supports flags, the =20
bug is that the chflags is done when the user doesn't want to remove =20
the file.
See below.
>> The way it was before:
>> - rm (without -i if requested)
>> - if rm fails do a chflags and rm again (bug: if user says no in the
>> interactive mode, the chlags is done regardless)
>> - tell the user about the stuff we do (removing flags)
>> - it aborts on a failure of the second rm (AFAIR)
>>
>> The way it is now:
>> - for every file do a chflags without notifying the user, don't tell
>> about problems
>> - rm (without -i if requested)
>> - bug(?): ${DESTDIR} in the rm line
>
> no, this is intentional, and in fact the original code had it too.
The original code hat it before, but you CD into DESTDIR, so it is not =20
necessary anymore. This may be cosmetics to you, but I did ask myself =20
"Why does des use DESTDIR here?". Sorry that I used "bug", I should =20
have used "overlooked" or something like this. Removing the =20
unnecessary DESTDIR helps other people understand this better.
>> - doesn't abort on rm failure
>
> that was not intentional... I forgot to remove the || true.
>
>> - has the same bug that it chflags even if the user doesn't want to
>> rm the file
>
> yes, but at least it doesn't ask twice.
That's the bug you should fix, and not the part where you quiten the =20
chflags command.
Please fix it the right way, and not by using a workaround.
Bye,
Alexander.
--=20
A hermit is a deserter from the army of humanity.
http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID =3D B0063FE7
http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID =3D 72077137
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070514172938.5v4yi78kisokk84s>
