On 04/28/2010 07:00 AM, Daniel Veillard wrote: >> ACK. Given Jim's ACK, and my discussion below, I've pushed 1/2 as-is. I'll wait for further comments and a v2 of my 2/2 patch before pushing it. > BTW since we have auto* experts around, I tend to use the CDPATH > environment variable to make navigation within my tree easier, > but has a tendency to break some of the auto* target, because as a > result the cd command outputs the target directory instead of being > silent. This used to break for example "make dist" in subtle ways. Yeah, that can be an issue. If you like CDPATH (and I do; I use it regularly), I recommend: - do _not_ export it to the environment. Set it as a shell-local variable in .bashrc, and not an environment variable, so that child shells spawned by make don't see it set - consider explicitly putting . in CDPATH, since some shells like older zsh did not follow POSIX rules of implicitly trying . after exhausting CDPATH Meanwhile, there's a couple things to remember about when CDPATH will interfere with cd. 'cd name' and even 'cd name/sub' must produce output if CDPATH assisted in the resolution, but 'cd /abs-name' and 'cd ./anchored-name' must be silent because CDPATH cannot participate in the resolution. So if you are sure name is absolute, you can use 'cd $(name)' without worries; if you are sure it is relative, you can use 'cd ./$(name)' without worries, and if you are unsure, then yes, you have to unset CDPATH first. Please do point out any particular places where we might be using cd on a name that might be relative. The autotools have had bugs in the past, but are hopefully clean right now; but the problem is that you often get uses of cd outside of stuff provided by the autotools. But for my patch, "cd $(srcdir)" is reasonably safe, because even if it is relative, it will normally be anchored ('.' for builddir=srcdir, or some form of '../name' if you build in a subdir or sibling dir, which is the only two forms of VPATH builds that I use). The only case where it would not be anchored is if someone builds in the parent dir, but that is a very unusual build setup. If you are paranoid, though, I could change that to "cd '$(abs_srcdir)'" to avoid the issue even for someone building in the parent dir. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list