Working draft

F53 type-gnu-old-long-name

A header of typeflag N, which some readers take for a long name: a name, or a file?

Reject(draft) A strict parser must reject this archive.

Category
framing
Default policy
rejects it
Files
F53-type-gnu-old-long-name.tar test archive, 3,072 bytes sha256 bd1038f9f51000ca30049d5917620e8f323b898c93bb8215b984881ca7f29122
F53-type-gnu-old-long-name.jsonexpected result
F53-type-gnu-old-long-name.txtannotated blocks
F53-type-gnu-old-long-name.pygenerator script

The case

The archive has a header of typeflag N, in the GNU format, with the name ././@LongLink, whose data is long-name, followed by a NUL, then a file whose header has GNU's magic and the name header-name.

Some readers take typeflag N for a GNU long name, like typeflag L. In POSIX, the typeflags A to Z are reserved for custom implementations, and a reader that does not recognize one extracts the member as a regular file. This case is ambiguous because a reader can take the N header in one of three ways. A reader that takes it for a long name extracts the member as long-name. One that extracts it as a regular file extracts a file @LongLink that contains the name, then header-name. One that skips a type it does not know extracts header-name alone.

Decision point: whether typeflag N is a long name.

Seen in: none of the scanned tarballs.

The archive

Every block of 512 bytes, to scale, with its offset. Hover over a field for its bytes.

F53-type-gnu-old-long-name: every block of the archive0x000000header: unknown type, typeflag Nname [0,100): "././@LongLink" + 87 NULnamemode [100,108): "0000644" + NUL, 644 (octal)uid [108,116): "0000000" + NUL, 0gid [116,124): "0000000" + NUL, 0size [124,136): "00000000012" + NUL, 10mtime [136,148): "00000000000" + NUL, 0chksum [148,156): "011226\0 ", 4758: the unsigned sum of the header, this field as spacestypeflag [156,157): "N", unknown typeflaglinkname [157,257): 100 NULlinknamemagic [257,263): "ustar "version [263,265): " " + NULuname [265,297): 32 NULunamegname [297,329): 32 NULgnamedevmajor [329,337): "0000000" + NUL, 0devminor [337,345): "0000000" + NUL, 0prefix [345,500): 155 NULprefixpad [500,512): 12 NULname "././@LongLink" + 87 NULmagic "ustar "version " " + NUL0x000200data: a name and a NUL10 bytes, then 502 NUL; "long-name" + NUL"long-name" + NUL0x000400header: regular filename [0,100): "header-name" + 89 NULnamemode [100,108): "0000644" + NUL, 644 (octal)uid [108,116): "0000000" + NUL, 0gid [116,124): "0000000" + NUL, 0size [124,136): "00000000014" + NUL, 12mtime [136,148): "00000000000" + NUL, 0chksum [148,156): "011231\0 ", 4761: the unsigned sum of the header, this field as spacestypeflag [156,157): "0", regular filelinkname [157,257): 100 NULlinknamemagic [257,263): "ustar "version [263,265): " " + NULuname [265,297): 32 NULunamegname [297,329): 32 NULgnamedevmajor [329,337): "0000000" + NUL, 0devminor [337,345): "0000000" + NUL, 0prefix [345,500): 155 NULprefixpad [500,512): 12 NULname "header-name" + 89 NULmagic "ustar "version " " + NUL0x000600data12 bytes, then 500 NUL to the end of the block; "which name?\n""which name?\n"0x0008002 zero blocks: the end-of-archive markerbytes 0 to 512 of 1024: 512 NUL0x000a002 zero blocks, continuedbytes 512 to 1024 of 1024: 512 NUL0x000c00end of fileNULprintable ASCIIspacecontrol character, such as a newlinebyte over 0x7fwritten by the case itself
Every block, as text
F53-type-gnu-old-long-name: must reject

A header of typeflag `N`, which some readers take for a long name: a name, or a file?

The archive has a header of typeflag `N`, in the GNU format, with the name `././@LongLink`, whose
data is `long-name`, followed by a NUL, then a file whose header has GNU's magic and the name
`header-name`.

Some readers take typeflag `N` for a GNU long name, like typeflag `L`. In POSIX, the typeflags `A`
to `Z` are reserved for custom implementations, and a reader that does not recognize
one extracts the member as a regular file. This case is ambiguous because a reader
can take the `N` header in one of three ways. A reader that takes it for a long name extracts the
member as `long-name`. One that extracts it as a regular file extracts a file `@LongLink` that
contains the name, then `header-name`. One that skips a type it does not know extracts `header-name`
alone.

Decision point: whether typeflag `N` is a long name.
Seen in: none of the scanned tarballs.
See also: F16, an unknown typeflag with a size, and N33, a Solaris extended header.

0x000000  header: unknown type, typeflag N
          name     [  0,100)  "././@LongLink" + 87 NUL
          mode     [100,108)  "0000644" + NUL  644 (octal)
          uid      [108,116)  "0000000" + NUL  0
          gid      [116,124)  "0000000" + NUL  0
          size     [124,136)  "00000000012" + NUL  10
          mtime    [136,148)  "00000000000" + NUL  0
          chksum   [148,156)  "011226\0 "  4758: the unsigned sum of the header, this field as spaces
          typeflag [156,157)  "N"  unknown typeflag
          linkname [157,257)  100 NUL
          magic    [257,263)  "ustar "
          version  [263,265)  " " + NUL
          uname    [265,297)  32 NUL
          gname    [297,329)  32 NUL
          devmajor [329,337)  "0000000" + NUL  0
          devminor [337,345)  "0000000" + NUL  0
          prefix   [345,500)  155 NUL
          pad      [500,512)  12 NUL
0x000200  data: a name and a NUL
          10 bytes, then 502 NUL
          "long-name" + NUL
0x000400  header: regular file
          name     [  0,100)  "header-name" + 89 NUL
          mode     [100,108)  "0000644" + NUL  644 (octal)
          uid      [108,116)  "0000000" + NUL  0
          gid      [116,124)  "0000000" + NUL  0
          size     [124,136)  "00000000014" + NUL  12
          mtime    [136,148)  "00000000000" + NUL  0
          chksum   [148,156)  "011231\0 "  4761: the unsigned sum of the header, this field as spaces
          typeflag [156,157)  "0"  regular file
          linkname [157,257)  100 NUL
          magic    [257,263)  "ustar "
          version  [263,265)  " " + NUL
          uname    [265,297)  32 NUL
          gname    [297,329)  32 NUL
          devmajor [329,337)  "0000000" + NUL  0
          devminor [337,345)  "0000000" + NUL  0
          prefix   [345,500)  155 NUL
          pad      [500,512)  12 NUL
0x000600  data
          12 bytes, then 500 NUL to the end of the block
          "which name?\n"
0x000800  2 zero blocks: the end-of-archive marker
0x000c00  end of file
Every byte, as a hex dump

As xxd writes it: xxd -r makes the archive of it.

00000000: 2e2f 2e2f 404c 6f6e 674c 696e 6b00 0000  ././@LongLink...
00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000060: 0000 0000 3030 3030 3634 3400 3030 3030  ....0000644.0000
00000070: 3030 3000 3030 3030 3030 3000 3030 3030  000.0000000.0000
00000080: 3030 3030 3031 3200 3030 3030 3030 3030  0000012.00000000
00000090: 3030 3000 3031 3132 3236 0020 4e00 0000  000.011226. N...
000000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000100: 0075 7374 6172 2020 0000 0000 0000 0000  .ustar  ........
00000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000140: 0000 0000 0000 0000 0030 3030 3030 3030  .........0000000
00000150: 0030 3030 3030 3030 0000 0000 0000 0000  .0000000........
00000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000200: 6c6f 6e67 2d6e 616d 6500 0000 0000 0000  long-name.......
00000210: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000220: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000230: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000240: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000250: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000260: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000270: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000280: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000290: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000300: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000310: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000320: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000330: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000340: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000350: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000360: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000370: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000380: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000390: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000400: 6865 6164 6572 2d6e 616d 6500 0000 0000  header-name.....
00000410: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000420: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000430: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000440: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000450: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000460: 0000 0000 3030 3030 3634 3400 3030 3030  ....0000644.0000
00000470: 3030 3000 3030 3030 3030 3000 3030 3030  000.0000000.0000
00000480: 3030 3030 3031 3400 3030 3030 3030 3030  0000014.00000000
00000490: 3030 3000 3031 3132 3331 0020 3000 0000  000.011231. 0...
000004a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000500: 0075 7374 6172 2020 0000 0000 0000 0000  .ustar  ........
00000510: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000520: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000530: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000540: 0000 0000 0000 0000 0030 3030 3030 3030  .........0000000
00000550: 0030 3030 3030 3030 0000 0000 0000 0000  .0000000........
00000560: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000570: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000580: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000590: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000600: 7768 6963 6820 6e61 6d65 3f0a 0000 0000  which name?.....
00000610: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000620: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000630: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000640: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000650: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000660: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000670: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000680: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000690: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000700: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000710: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000720: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000730: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000740: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000750: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000760: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000770: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000780: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000790: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000800: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000810: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000820: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000830: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000840: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000850: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000860: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000870: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000880: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000890: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000900: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000910: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000920: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000930: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000940: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000950: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000960: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000970: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000980: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000990: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000aa0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ab0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ac0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ad0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ae0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000af0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ba0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000be0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bf0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

What implementations make of it

In the outcome column, ✅ means that the implementation follows the default policy.

implementationversionoutcomewhat it makes of it
GNU tartar (GNU tar) 1.35⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
bsdtarbsdtar 3.8.11 - libarchive 3.8.11⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
BusyBox tarBusyBox v1.38.0, defconfig✅ rejectserror: tar: unknown typeflag: 0x4e
7-Zip7-Zip (z) 26.05 (x64)⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
Python tarfile, filter=data, as in pipCPython 3.15.2✅ rejectserror: SpecialFileError: '././@LongLink' is a special file
Python tarfile, filter=tarCPython 3.15.2⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
Python tarfile, filter=fully_trustedCPython 3.15.2⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
node-tartar 7.5.22⚠️ acceptstree B: long-name (12 B, a578eb49)
node-tar, stricttar 7.5.22⚠️ acceptstree B: long-name (12 B, a578eb49)
tar-fstar-fs 3.1.3, on tar-stream 3.2.2⚠️ acceptstree B: long-name (12 B, a578eb49)
Java Commons CompressCommons Compress 1.28.0, Expander, on Java 27.0.1.0.2⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
.NET System.Formats.TarSystem.Formats.Tar of .NET 10.0.14, ExtractToDirectory✅ rejectserror: InvalidOperationException: Entry type 'RenamedOrSymlinked' not supported for extraction.
PHP PharData, as in ComposerPharData of PHP 8.5.12, as Composer's TarDownloader calls it⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
Go containerd archive.Applycontainerd v2.4.2, archive.Apply, of go1.27.3✅ rejectserror: unhandled tar header type 78
Rust tartar 0.4.46, unpack⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
Rust astral-tokio-tarastral-tokio-tar 0.7.1, unpack⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
Rust tar-codec, as in uvtar-codec 0.0.16, with the policies of uv 0.13✅ rejectserror: at byte 0: unsupported tar typeflag 78
RubyGemsRubyGems 4.0.20 of Ruby 4.0.9, extract_tar_gz⚠️ acceptstree C: header-name (12 B, a578eb49)
R untar, internalutils::untar of R 4.6.2, tar = "internal"✅ rejectserror: unsupported entry type ‘N’
Perl Archive::TarArchive::Tar 3.12 of Perl v5.44.0⚠️ acceptstree A: @LongLink (10 B, 7dc95644), header-name (12 B, a578eb49)
Haskell tartar 0.7.2.0, extract, of GHC 9.14⚠️ acceptstree C: header-name (12 B, a578eb49)
Julia Tar.jlTar 1.10.0 of Julia 1.13.3✅ rejectserror: unsupported entry type Tar.Header("././@LongLink", :N, 0o644, 10, "")
live-bootstrap untarmescc-tools-extra a151c245e512, as live-bootstrap pins it✅ rejectserror: unable to create long symlink
live-bootstrap untar, --non-strictmescc-tools-extra a151c245e512, as live-bootstrap pins it✅ rejectserror: non-strict mode enabled, preparing for chaos unable to create long symlink

Prevalence in release tarballs

The table below shows how many release tarballs have the features of this test case.

ecosystemtarballswith itshare
Spack37,5530none
nixpkgs18,9900none
Guix10,1680none
PyPI10,0000none
crates.io5,0000none
RubyGems5,0000none
live-bootstrap1710none
total (distinct)82,5860none

See also