zig
zig copied to clipboard
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
-
docs
directory in x86_64 build instead ofdoc
directory in releases - neither
docs
nordoc
in aarch64 build -
lib/zig
containsinclude
, 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
doc
directory, and not adocs
directory - always use the
lib/include
structure (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