[Buildroot] [PATCH] core: ensure we use the realpath(3) of DL_DIR

Peter Korsgaard peter at korsgaard.com
Sun Nov 18 18:38:17 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, thanks.

Bye, Peter Korsgaard

More information about the buildroot mailing list