crystal-lang / distribution-scripts

40 stars 24 forks source link

Extra leading `./` in some release tarballs #252

Open HertzDevil opened 1 year ago

HertzDevil commented 1 year ago

Using 1.9.0 as an example, the files inside crystal-1.9.0-1-linux-x86_64-bundled.tar.gz and crystal-1.9.0-docs.tar.gz have an extra leading ./, whereas crystal-1.9.0-1-linux-x86_64.tar.gz and crystal-1.9.0-1-darwin-universal.tar.gz don't:

$ tar tf crystal-1.9.0-1-linux-x86_64-bundled.tar.gz | head
./
./crystal-1.9.0-1/
./crystal-1.9.0-1/lib/
./crystal-1.9.0-1/lib/crystal/
./crystal-1.9.0-1/lib/crystal/libgc.a
./crystal-1.9.0-1/lib/crystal/libevent_pthreads.a
./crystal-1.9.0-1/lib/crystal/lib/
./crystal-1.9.0-1/lib/crystal/libevent.a
./crystal-1.9.0-1/lib/crystal/libpcre2-8.a
./crystal-1.9.0-1/lib/crystal/bin
$ tar tf crystal-1.9.0-docs.tar.gz | head
./crystal-1.9.0-docs/
./crystal-1.9.0-docs/Signal.html
./crystal-1.9.0-docs/Crypto/
./crystal-1.9.0-docs/Crypto/Blowfish.html
./crystal-1.9.0-docs/Crypto/Bcrypt/
./crystal-1.9.0-docs/Crypto/Bcrypt/Error.html
./crystal-1.9.0-docs/Crypto/Bcrypt/Password.html
./crystal-1.9.0-docs/Crypto/Bcrypt.html
./crystal-1.9.0-docs/Crypto/Subtle.html
./crystal-1.9.0-docs/OptionParser.html
$ tar tf crystal-1.9.0-1-linux-x86_64.tar.gz | head
crystal-1.9.0-1/
crystal-1.9.0-1/lib/
crystal-1.9.0-1/lib/crystal/
crystal-1.9.0-1/lib/crystal/libgc.a
crystal-1.9.0-1/lib/crystal/lib
crystal-1.9.0-1/lib/crystal/bin
crystal-1.9.0-1/bin/
crystal-1.9.0-1/bin/shards
crystal-1.9.0-1/bin/crystal
crystal-1.9.0-1/share/
$ tar tf ../../Downloads/crystal-1.9.0-1-darwin-universal.tar.gz | head
crystal-1.9.0-1/
crystal-1.9.0-1/bin/
crystal-1.9.0-1/LICENSES/
crystal-1.9.0-1/etc/
crystal-1.9.0-1/samples/
crystal-1.9.0-1/embedded/
crystal-1.9.0-1/license-cache/
crystal-1.9.0-1/src/
crystal-1.9.0-1/src/benchmark/
crystal-1.9.0-1/src/number.cr

The ./ is rather confusing, because one has to pass --strip-components=2 to tar instead of --strip-components=1 to extract files into the current directory, even though physically there is only one subdirectory. Those ./s should be stripped.