I would echo comments of others on here that using a Docker container to compile would help with managing dependencies. You could use something like an Alpine container to help create static binaries. Once the source is released an OpenBuildService workflow could be used to create packages for different distributions and if there are still dependencies you'd like to deal with in a distribution-agnostic way you could use an AppImage to alleviate those.
Feel free to send me a message if you want more details, I have experience with cross-distribution build systems and packaging.
First of all, thank you a lot for the new direct linux port!
Would it be possible to build 7-zip for Linux with an older gcc compiler and not rely on >= CXXABI_1.3.8. since there are still supported Linux systems that do not have these C++ ABIs by "default". I think a gcc-4.8 would be good enough. Thank you a lot.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
A hint if you want to provide Linux binaries: build them on old distros. I think it was mentioned before, simple Linux binaries built on old distros normally run on newer ones too, but often not the other way around.
Your binary was linked against libgcc, libstdc++ and glibc, so no fancy dependencies there. If you can't run the 32 bit version on a 64 bit distro that means this distro has no multilib support installed.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
any chance to see a Linux (and macOS) GUI like the one for Windows?
These days there are many good cross-platform toolkits around, that use a Windows only library for the GUI is a real pity.
GTK, QT or WxWindgets are much used, and use a compatible license.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've just successfully compiled a statically-linked binary of 7zip 21.02 alpha on Alpine Linux using both Clang and GCC - as well as UASM for the assembler. I will link the Dockerfile I used soon, so other people can see what I have done.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Another thing - it would be easier for distribution maintainers if the source code was distributed either in a VCS or as a tar.gz file. It is just that otherwise you need 7-zip to compile 7-zip - you see the issue :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It is a pity that there is no such possibility, because 7z compresses data better and decompresses it faster than xz (tar+xz).
I definitely wanted 7z. It is strange that it lacks this one of the main features, which can be widely used in combination with other utilities.
Thanks for the answer.
Last edit: adeniz 2021-06-13
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Amazing news! I'll gladly help porting it to macOS.
Hi Igor,
here some feedback comes from my laptop 'Compressionette':
https://github.com/facebook/zstd/issues/2551#issuecomment-808213083
Hi Igor,
can you add a hash column for
7z l archive.7z
?For windows and linux version.
Thank you
Amazing to see Linux support! Excited to see all the great performance improvements over the past 5 years of 7zip development!
5.4.0-1041-azure #43~18.04.1-Ubuntu (Hyper-V)
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Linux Mint 20.1 on 5.8.0-48-generic
Last edit: Danie de Jager 2021-04-09
(ignore the double, my net's being a pain in the ass)
Last edit: Colin Crowley 2021-04-16
Linux Mint 19.3 x86_64 on 5.4.0-71-generic
Intel i5-7300HQ (4) @ 3.500GHz
Uploading my benchmarks,
Xubuntu 20.04.2 LTS, kernel 5.4.0-71-generic
Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
I would echo comments of others on here that using a Docker container to compile would help with managing dependencies. You could use something like an Alpine container to help create static binaries. Once the source is released an OpenBuildService workflow could be used to create packages for different distributions and if there are still dependencies you'd like to deal with in a distribution-agnostic way you could use an AppImage to alleviate those.
Feel free to send me a message if you want more details, I have experience with cross-distribution build systems and packaging.
Last edit: Obi-w00t 2021-04-19
Hi, thanks for developing this great tool.
Here the bench.txt.
AMD Ryzen 3200G, Linux Mint 20.1 / Kernel 5.8.0-50
greets
Last edit: shadow73 2021-04-20
Hi, Igor
Intel Core i7-8750H, Linux Mint 20 / Kernel 5.10.0-051000-generic
Any news on when the source of 7zz will be released?
Regards
First of all, thank you a lot for the new direct linux port!
Would it be possible to build 7-zip for Linux with an older gcc compiler and not rely on >= CXXABI_1.3.8. since there are still supported Linux systems that do not have these C++ ABIs by "default". I think a gcc-4.8 would be good enough. Thank you a lot.
If the binary used musl and was statically linked that would resolve that issue, right?
Hi Igor,
Do you have plans to provide a binary for FreeBSD too?
Dan
Thanks for the Linux version!
A hint if you want to provide Linux binaries: build them on old distros. I think it was mentioned before, simple Linux binaries built on old distros normally run on newer ones too, but often not the other way around.
Your binary was linked against libgcc, libstdc++ and glibc, so no fancy dependencies there. If you can't run the 32 bit version on a 64 bit distro that means this distro has no multilib support installed.
any chance to see a Linux (and macOS) GUI like the one for Windows?
These days there are many good cross-platform toolkits around, that use a Windows only library for the GUI is a real pity.
GTK, QT or WxWindgets are much used, and use a compatible license.
It's difficult for me.
Maybe it's simpler to use windows version of 7-Zip GUI via wine?
It does not have to be perfect (in my opinion) . Some examples, help, ideas :
simplest, which helps you to insert paths and filenames in the command line : https://ostechnix.com/drag-and-drop-files-and-folders-in-terminal-to-print-their-absolute-path/
SpaceFM implementation, Archive Handlers :
Another implementation : https://www.pling.com/p/998333
Translated with www.DeepL.com/Translator (free version)
I've just successfully compiled a statically-linked binary of 7zip 21.02 alpha on Alpine Linux using both Clang and GCC - as well as UASM for the assembler. I will link the Dockerfile I used soon, so other people can see what I have done.
Another thing - it would be easier for distribution maintainers if the source code was distributed either in a VCS or as a tar.gz file. It is just that otherwise you need 7-zip to compile 7-zip - you see the issue :)
Hello.
Is it possible to read data from stdin?
There is a merged FILE from N files.
For example:
Merge files into FILE:
Then extract contents of file3 (archive.txz) from stdin:
And content of file3 was successfully extracted.
But:
Then extract contents of file3 (archive.7z) from stdin:
Last edit: adeniz 2021-06-13
7z format doesn't support it.
You can use xz format instead in 7-Zip.
It is a pity that there is no such possibility, because 7z compresses data better and decompresses it faster than xz (tar+xz).
I definitely wanted 7z. It is strange that it lacks this one of the main features, which can be widely used in combination with other utilities.
Thanks for the answer.
Last edit: adeniz 2021-06-13
I think it's because 7-Zip is developed mostly for Windows GUI users, while you are referring tools developed originally for Unix/Linux CLI.
As soon as Igor publish the sources, you will be able to patch them to add features you want.
7-Zip supports fast compression/decompression for xz format.
So you can 7-zip for xz instead of default xz utils.
7-Zip supports fast compression/decompression for xz format.
So you can 7-zip for xz instead of default xz utils.