Open everstarone opened 1 year ago
IIUC, targets for symlinks must exist on Windows before they can be created. (That is different, e.g., on Linux.) That sometimes causes unpacking a tarball to fail if it contains symlinks and it is unpacked in the "wrong" order. It sometimes helps to unpack a tarball twice.
The complete tar-file content is processed and fully unpacked!
But the qemu tar file creates links to standard linux resources which may be used by linux specific make targets.
As @mmuetzel already stated:
targets for symlinks must exist on Windows before they can be created
tar emits a warning and doesn't exit with return code 0. This is expected for tar: warn, if anything unexpected happens.
In my opinion possible solutions are
I don't think the situation needs an additional package:
/opt
(which is optional).Better report this warning to the edk2 project, if you really need this cosmetics;
[2] Running Android games on Windows 10/11 using QEMU+Hyper-V+virglrenderer+Bliss OS [3] https://github.com/tianocore/edk2/commit/459eba01480e14ed15ddb88b515a921c34ee1b0b
@PHdrr commented yesterday:
Could you try with
bsdtar
?
On my MSYS2 it warns about the same:
x qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/
x qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/X11GraphicsWindow.c
x qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/PosixFileSystem.c
x qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/X11IncludeHack: Can't create 'qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/X11IncludeHack': No such file or directory
x qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/Pthreads.c
x qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/X64/
x qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/X64/Gasket.S
x qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/X64/SwitchStack.S
... Plus, it gives me other warnings:
...
x qemu-7.2.0/meson/test cases/frameworks/24 libgcrypt/
x qemu-7.2.0/meson/test cases/frameworks/24 libgcrypt/meson.build
x qemu-7.2.0/meson/test cases/frameworks/24 libgcrypt/libgcrypt_prog.c
x qemu-7.2.0/meson/test cases/frameworks/24 libgcrypt/test.json
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/meson.build
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/libboost_python.so.0.3.0: Can't create 'qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/libboost_python.so.0.3.0': No such file or directory
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/libboost_regex.so.0.3.0: Can't create 'qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/libboost_regex.so.0.3.0': No such file or directory
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/boost_python-vc142-mt-gd-x64-0_3.lib: Can't create 'qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/boost_python-vc142-mt-gd-x64-0_3.lib': No such file or directory
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/boost_regex-vc142-mt-gd-x64-0_3.lib: Can't create 'qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/boost_regex-vc142-mt-gd-x64-0_3.lib': No such file or directory
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/boost_regex-vc142-mt-gd-x32-0_3.lib: Can't create 'qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/boost_regex-vc142-mt-gd-x32-0_3.lib': No such file or directory
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/boost_python-vc142-mt-gd-x32-0_3.lib: Can't create 'qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/boost_python-vc142-mt-gd-x32-0_3.lib': No such file or directory
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/Cellar/
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/Cellar/boost-python/
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/Cellar/boost-python/0.3.0/
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/Cellar/boost-python/0.3.0/lib/
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/Cellar/boost-python/0.3.0/lib/libboost_python.so.0.3.0
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/Cellar/boost-python/0.3.0/lib/boost_python-vc142-mt-gd-x64-0_3.lib
x qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/Cellar/boost-python/0.3.0/lib/boost_python-vc142-mt-gd-x32-0_3.lib
...
x qemu-7.2.0/subprojects/libvhost-user/libvhost-user.h
x qemu-7.2.0/subprojects/libvhost-user/include/
x qemu-7.2.0/subprojects/libvhost-user/include/atomic.h
x qemu-7.2.0/subprojects/libvhost-user/include/compiler.h
x qemu-7.2.0/subprojects/libvhost-user/libvhost-user-glib.h
x qemu-7.2.0/qemu.nsi
bsdtar: Error exit delayed from previous errors.
... saying:
Can't create 'qemu-7.2.0/meson/test cases/frameworks/35 boost symlinks/boost/lib/<...>.lib': No such file or directory
While GNU tar is fine with that:
This might be actually a bug/issue in MSYS2 or bsdtar. Just not related to the original post.
Description / Steps to reproduce the issue
Performing : $ tar xvJf qemu-7.2.0.tar.xz
Results with this error and exits.
tar: qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/X11IncludeHack: Cannot create symlink to ‘/opt/X11/include’: No such file or directory tar: Exiting with failure status due to previous errors
Expected behavior
Should unpack fully
Actual behavior
Results with this error and exits.
tar: qemu-7.2.0/roms/edk2/EmulatorPkg/Unix/Host/X11IncludeHack: Cannot create symlink to ‘/opt/X11/include’: No such file or directory tar: Exiting with failure status due to previous errors
Verification
Windows Version
Win 11 Pro - Version 10.0.22621 Build 22621
MINGW environments affected
Are you willing to submit a PR?
No response