Tarball has unsupported file type (.lib)


I would appreciate support on the following matter.

I am preparing a flake for zephyr sdk. I have the following input.

   zephrysdk= {
    url= "tarball+https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz";
    flake = false;

I am receiving the following error.

error: file ‘zephyr-sdk-0.16.1/aarch64-zephyr-elf/aarch64-zephyr-elf/lib/libg.a’ in tarball has unsupported file type

I am under the impression it is a security feature, nevertheless, I am not quite sure how get around it.

Thank you in advance!

The unsupported file type is hard links, e.g.

hrw-r--r-- root/root         0 2023-05-11 19:34 zephyr-sdk-0.16.1/riscv64-zephyr-elf/riscv64-zephyr-elf/lib/rv32e_zicsr_zifencei/ilp32e/libg.a link to zephyr-sdk-0.16.1/riscv64-zephyr-elf/riscv64-zephyr-elf/lib/rv32e_zicsr_zifencei/ilp32e/libc.a

These are indeed currently unsupported (see unpackTarfileToSink() in tarfile.cc) since the NAR abstraction used by FileSystemObjectSink has no concept of hard links. Could you create an issue about this on Issues · NixOS/nix · GitHub?

Thank you for your prompt response. Issue created as recommended: Support hard links within tar files being used as flake inputs type=tarball · Issue #10819 · NixOS/nix · GitHub