Interesting. I think the more common approach is just to compile a native tar with Yocto and add it with EXTRANATIVEPATH (iirc), like suggested here: https://stackoverflow.com/a/43109887
Regards //Ernst Den fre 28 okt. 2022 kl 01:14 skrev Bernhard Rosenkränzer via lists.openembedded.org <[email protected]>: > From: Bernhard Rosenkränzer <[email protected]> > > base.bbclass currently symlinks the first copy of tar on the PATH > to hosttools. > > If that copy of tar isn't GNU tar (some Linux distributions use > libarchive tar for the fact that it can handle zip files etc. as > well; some others probably use busybox or toybox tar for space > issues), the build fails early on because path.py uses --xattrs > and --xattrs-include > > With this patch, base.bbclass checks if tar supports --xattrs-include, > and checks for gtar if the first tar found doesn't support it. > > Signed-off-by: Bernhard Rosenkränzer <[email protected]> > --- > meta/classes-global/base.bbclass | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/meta/classes-global/base.bbclass > b/meta/classes-global/base.bbclass > index 8203f54519..b6391501ca 100644 > --- a/meta/classes-global/base.bbclass > +++ b/meta/classes-global/base.bbclass > @@ -135,6 +135,16 @@ def setup_hosttools_dir(dest, toolsvar, d, > fatal=True): > if os.path.islink(desttool): > os.unlink(desttool) > srctool = bb.utils.which(path, tool, executable=True) > + # copytree() uses tar options such as --xattrs and > + # --xattrs-include that are currently specific to GNU tar. > + # If the first tar in PATH is libarchive tar or busybox/toybox > + # tar, GNU tar may well be available as gtar. > + if (tool == "tar"): > + import subprocess > + if not b'--xattrs-include' in > subprocess.check_output([srctool, '--help']): > + gtar = bb.utils.which(path, "gtar", executable=True) > + if gtar: > + srctool = gtar > # gcc/g++ may link to ccache on some hosts, e.g., > # /usr/local/bin/ccache/gcc -> /usr/bin/ccache, then > which(gcc) > # would return /usr/local/bin/ccache/gcc, but what we need is > -- > 2.38.1 > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#172236): https://lists.openembedded.org/g/openembedded-core/message/172236 Mute This Topic: https://lists.openembedded.org/mt/94616037/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
