[Buildroot] [PATCH] core: ensure we use the realpath(3) of DL_DIR
peter at korsgaard.com
Mon Nov 26 16:15:06 UTC 2018
>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:
> When $(TOPDIR)/dl is a symlink, checking out git submodules can fail,
> as reported by Michael in #11086.
> To reproduce a similarly-related mis-behaviour:
> $ mkdir -p foo/bar foo/buz
> $ cd foo/bar
> $ ln -s ../buz meh
> $ cd meh
> $ cd ../../foo
> The last command should not succeed, because, relative to meh, there is
> no ../../foo directory; we would expect it to be ../../../foo, instead.
> But since meh is a symlink to a directory, then a relative path from that
> symlink is interpreted as relative to the derefrenced directory, i.e.
> from buz in this case.
> But where this gine even werider, is that, if the last command is
> replaced by:
> $ cd ../../../foo
> then it still works, too.
> And that is the root of Michael's issue: the dl directory in Buildroot's
> TOPDIR is a symlink to a similarly-named directory one directory higher,
> which then confuses relative paths, which gets especially and noticeably
> bad for git submodules.
> Avoid this strangeness, and just use so-called "physical" path, i.e. a
> path where all symlinks to directories have been dereferenced.
> Fixes: #11086
> Reported-by: Michael Nosthoff <posted at heine.so>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Michael Nosthoff <posted at heine.so>
Committed to 2018.02.x and 2018.08.x, thanks.
Bye, Peter Korsgaard
More information about the buildroot