ip7z / 7zip

7-Zip
883 stars 80 forks source link

source tarball doesn't create a top-level directory #45

Open rofl0r opened 4 months ago

rofl0r commented 4 months ago

the convention for source tarballs is that they extract to a directory with the same name as the tarball, without the tar.whatever extension:

zlib-1.2.3.tar.gz -> zlib-1.2.3

so 7z2407-src.tar.xz should extract to 7z2407-src

in my distro are 1467 packages, and only 7zip and 3 others are misbehaving in this regard.

rofl0r commented 4 months ago

to clarify, this doesn't mean that you should change the existing 7z2407-src.tar.xz, but it would be nice if this could be done for future releases. thanks.

ip7z commented 4 months ago

Maybe it's usual scheme. But that scheme is not simplest. Version number is not property of source code. Version number is just external label.

For example, if only one file from 10000 files was changed in new version, you can extract new archive over previous folder, and that changed file will be updated.

Also it's simpler to add required prefix like zlib-1.2.3 when you extract archive, than remove unrequired path directory prefix during extraction.

rofl0r commented 4 months ago

that may be true, but did you ever extract an archive before listing its contents, expecting it to create a top-level directory, but instead you cluttered your working directory with lots of loose files that you had to delete manually ? to me it happened various times, and it was pretty annoying every single time. if you dont want to put a version number in there, at least the archive should have a basedir, e.g. "7z-src" or whatever.

cieplutki commented 3 months ago

There is more of it, like no building script, nor readme* of any kind in main repo directory, nor in any logically named either.

Me think that dev comes from windows world and doesn't care about simplicity, Unix philosophy nor logic, despite doing very logically minded work. And that despite the fact how many bugs had been found by Linux users of p7zip and 7zip. So appealing to that is likely not going to work.


* there is Readme in DOC/readme.txt but it's literally one line. There is a licence, which would normally go to licence.txt and 'how to compile' which normally go to INSTALL. But that's a detail.