Inconsistent directory structure in builds and releases on Linux (other OSes unchecked)
Problem details
Looking only two leafs deep inside release archives shows the following, basic structure for at least x86_64, aarch64, armv7a, i386.
https://ziglang.org/download/0.8.0/zig-linux-x86_64-0.8.0.tar.xz
zig-linux-x86_64-0.8.0/doc/langref.html
zig-linux-x86_64-0.8.0/doc/std/
zig-linux-x86_64-0.8.0/lib/include/
zig-linux-x86_64-0.8.0/lib/libc/
zig-linux-x86_64-0.8.0/lib/libcxx/
zig-linux-x86_64-0.8.0/lib/libcxxabi/
zig-linux-x86_64-0.8.0/lib/libunwind/
zig-linux-x86_64-0.8.0/lib/std/
zig-linux-x86_64-0.8.0/lib/tsan/
zig-linux-x86_64-0.8.0/LICENSE
zig-linux-x86_64-0.8.0/zig
Doing the same for build archives shows several inconsistencies compared to release archives, but also across architectures.
https://ziglang.org/builds/zig-linux-x86_64-0.9.0-dev.197+1f29b75f0.tar.xz
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/docs/langref.html
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/docs/std/
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/lib/include/
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/lib/libc/
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/lib/libcxx/
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/lib/libcxxabi/
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/lib/libunwind/
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/lib/std/
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/lib/tsan/
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/LICENSE
zig-linux-x86_64-0.9.0-dev.197+1f29b75f0/zig
https://ziglang.org/builds/zig-linux-aarch64-0.9.0-dev.197+1f29b75f0.tar.xz
zig-linux-aarch64-0.9.0-dev.197+1f29b75f0/lib/zig/
zig-linux-aarch64-0.9.0-dev.197+1f29b75f0/LICENSE
zig-linux-aarch64-0.9.0-dev.197+1f29b75f0/zig
Problem summary
-
docsdirectory in x86_64 build instead ofdocdirectory in releases - neither
docsnordocin aarch64 build -
lib/zigcontainsinclude, etc., for aarch64 build, but all other archives havelib/include, etc.
These differences make packaging (e.g., in AUR) slightly more annoying and error prone, especially the build archive differences across architectures.
Suggested change
Make all archives (build and release, for all architectures):
- always include a
docdirectory, and not adocsdirectory - always use the
lib/includestructure (I think it's best not to change the established release archive structure)
I'm happy to help with this but I need someone to point me to where the relevant directory structures are currently defined.
Fix reverted in 3b2f0c3eeefa188e57cb1ee0874306f1d3734031