zig icon indicating copy to clipboard operation
zig copied to clipboard

Inconsistent directory structure in builds and releases on Linux (other OSes unchecked)

Open gavinbeatty opened this issue 3 years ago • 1 comments

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 of doc directory in releases
  • neither docs nor doc in aarch64 build
  • lib/zig contains include, etc., for aarch64 build, but all other archives have lib/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 a docs 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.

gavinbeatty avatar Jun 18 '21 18:06 gavinbeatty

Fix reverted in 3b2f0c3eeefa188e57cb1ee0874306f1d3734031

andrewrk avatar Oct 21 '22 20:10 andrewrk