It's first version of my port of 7-Zip to Linux.
That port of 7-Zip is similar to p7zip, but it's not identical to p7zip.
Please write here about any bugs and problems with that new Linux version of 7-Zip.
Also you can run the benchmark command to test that 7-Zip is working correctly. And it shows the performance of CPU:
./7zz b "-mm=*" "-mmt=*" -bt > bench.txt
Note that this benchmark command can work tens of minutes.
You can attach here the file with benchmark results bench.txt.
Compiling
These new 7-Zip binaries for Linux were linked (compiled) by GCC without -static switch. And compiled 32-bit executables (x86 and armhf) didn't work on some arm64 and amd64 systems, probably because of missing of some required .so files.
Please write here, if you have some advices how to compile and link binaries that will work in most Linux systems.
🎉
2
👍
9
Last edit: Igor Pavlov 2021-03-10
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is surprising and also great news! Do you plan to publish the source under a permissible license so that Linux distributions can finally replace p7zip?
Thanks!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The license for source code will be same - GNU LGPL.
p7zip has big compiling scripts that are good for linux distributions. But 7-Zip for Linux doesn't use these compiler scripts now.
It's possible to merge 7-Zip code with p7zip compiler scripts.
But I don't work with Linux. So it's difficult for me to maintain all these Linux scripting and packaging things from p7zip.
And developer of p7zip port didn't show any activity last 4-5 years.
🎉
5
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you publish the source code, the community can pick up and create a CMake build system, that can even be used everywhere but still be optional on !Linux.
Last edit: İsmail Dönmez 2021-03-11
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Happy to help with a CMake build system. Would you also be amenable to publish the code on GitHub?
Even if you won't accept pull requests there, having an official GitHub mirror that's updated ever time there's a release would make people's lives a bit easier.
Cheers!
❤️
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I maintain a fork version of p7zip on github. https://github.com/jinfeihan57/p7zip
Many people in the community are very interested in p7zip. I believe once
the source code of 7zip-21.0 is released, and the community will definitely help complete the 7zz Linux build script as soon as possible. https://github.com/jinfeihan57/p7zip/issues/114
👍
2
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes! Thanks so much, Igor. It's so strange-- 7-zip was very much my preferred archive tool for years and years until I switched to Linux. Recently, I have the need for an installer and have been studying 7-zip's SFX implementation for the past several days, and then like magic you drop this at the same moment! Can't wait to try it out.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes! Thanks so much, Igor. It's so strange-- 7-zip was very much my preferred archive tool for years and years until I switched to Linux. Recently, I have the need for an installer and have been studying 7-zip's SFX implementation for the past several days, and then like magic you drop this at the same moment! Can't wait to try it out.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have started developing a project I am calling 'MWALI'. It's an acronym created from Mac+Windows+Android+Linux+iOS. Also Mwali is the Creator God of the Kalanga people of Africa which is cool. The notion is to do what Electron, NW.js, Ionic, etc. do in creating clickable icon apps that feel native, but do it without the bloat. Instead of duplicating all that Chrome code, just use the already installed browser launched in full screen mode. In that regard, it's just like any downloaded web app, but the distinction is I would like to have the ability to create and share such 'web apps' completely without any remote hosting.
I want to be able to bundle the app into a single file that I can email to people and then they can use it with a single click. 7-Zip's self-extracting installer seems perfect for this. It already works to create installer bundles on Windows (obviously), Macs I believe, and has been working on Linux in an unofficial way using old code. Now Igor has made 7-Zip on Linux much more official with this release. ARM64 builds are a thing, and there's some Android experiments I have seen. Iphone/iOS is the one I haven't yet seen 7-Zip working code for, but I bet it's out there somewhere. The full M.W.A.L.I. codebase seems tantalizingly close.
Google obviously sees the need for such a thing with their recent focus on Web Bundles, but it strikes me as odd with their approach of crunching to single HTML file and converting to CBOR. I'd bet good money 7-Zip still makes a smaller archive bundle on the same code than a Web Bundle, and in a more practical way too. Also, naturally Google is putting restrictions on how Web Bundles can be shared, and developers are at the mercy of Google's whims to change things at any moment as usual. I think 7-Zip's awesome compression ability + its installer implementation could blow Google Web Bundles out of the water, and do so in the developer-friendly 7-Zip open source way too.
I have purchased the https://mwali.dev domain and have started building it out as a tool chain resource and hopefully community for building cross-platform apps that can be shared easily. After researching universal SFX installers for a week, I decided 7-Zip is the way to go for this project. Then, out of the blue, Igor drops 7-Zip 21 for Linux! I'm taking it as a good sign the project needs to happen. Thanks so much, Igor, for the gift of 7-Zip!
Last edit: choons 2021-03-11
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello, I am just a starter and, tried to do same as you on my domain. Will it be possible to learn how to do it on new domains? It will be really nice to learn it. Thank you.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
"Please write here, if you have some advices how to compile and link binaries that will work in most Linux systems."
There is no right answer to providing a BINARY that works on most Linux systems.
The thing to do is to provide source and a Makefile that works most everywhere. Get someone to test on old and new versions of Redhat/CentOS and Ubuntu/Debian. Then let the maintainers of the major distros know it's available and THEY will be build the binaries.
Volunteers can contribute the metadata files that tell the distro how to properly build the package.
Having said that, if you compile against OLD versions of the libraries, such as glibc, that will often work for relatively simple orograms like this one which use few libraries*. Libraries on Linux are normally backward compatible, so a binary compiled on an old system will run on a new system, but not the other way around.
simple compared to something like a web browser or graphical word processor.
👍
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
i spoke with justine tunney who has a completely portable runtime system which compiles universal binaries for windows, mac, freebsd and linux, and she would like to help. there's also a way to embed an x86 emulator so that it works on arm64 as well. can you email me and i'll put you both in touch.
warmest,
l.
👍
1
Last edit: Igor Pavlov 2021-03-13
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Igor,
It is not a problem with 7-Zip to Linux, but a huge problem for me on Linux with p7zip archiver. I am looking for an appropriate solution now. Operating system Ubuntu 20.04 with p7zip-full 16.02
Earlier I made a 73 GiB archive with p7zip then the source directories was deleted. Now when I want to restore the 7zip content (ether p7zip or 7-Zip) the error message is the following:
./7zz t /mnt/storage/ITSH.tar.7z
Please create another forum thread about your recovering problem.
Your archive file was truncated by about 2 GB by some unknown reason.
You can find original archive file size in header.
Probably you can recover big part of data.
The recovery procedure is described here: https://www.7-zip.org/recover.html
Try to recover first 100 MB at first.
If it works, try to work with full file. It can be slow to work with big fiels. So you need storage space. You need 7-Zip at Windows or some similar split/combine tools at Linux.
Last edit: Igor Pavlov 2021-04-09
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
7-Zip for Linux (console version) was released.
7-Zip for 64-bit Linux x86-64 (AMD64):
https://7-zip.org/a/7z2101-linux-x64.tar.xz
7-Zip for 64-bit Linux ARM64:
https://7-zip.org/a/7z2101-linux-arm64.tar.xz
7-Zip for 32-bit Linux x86:
https://7-zip.org/a/7z2101-linux-x86.tar.xz
7-Zip for 32-bit Linux armhf:
https://7-zip.org/a/7z2101-linux-arm.tar.xz
It's first version of my port of 7-Zip to Linux.
That port of 7-Zip is similar to p7zip, but it's not identical to p7zip.
Please write here about any bugs and problems with that new Linux version of 7-Zip.
Also you can run the benchmark command to test that 7-Zip is working correctly. And it shows the performance of CPU:
./7zz b "-mm=*" "-mmt=*" -bt > bench.txt
Note that this benchmark command can work tens of minutes.
You can attach here the file with benchmark results
bench.txt
.Compiling
These new 7-Zip binaries for Linux were linked (compiled) by GCC without
-static
switch. And compiled 32-bit executables (x86 and armhf) didn't work on some arm64 and amd64 systems, probably because of missing of some required.so
files.Please write here, if you have some advices how to compile and link binaries that will work in most Linux systems.
Last edit: Igor Pavlov 2021-03-10
Hi Igor,
This is surprising and also great news! Do you plan to publish the source under a permissible license so that Linux distributions can finally replace p7zip?
Thanks!
The license for source code will be same - GNU LGPL.
p7zip has big compiling scripts that are good for linux distributions. But 7-Zip for Linux doesn't use these compiler scripts now.
It's possible to merge 7-Zip code with p7zip compiler scripts.
But I don't work with Linux. So it's difficult for me to maintain all these Linux scripting and packaging things from p7zip.
And developer of p7zip port didn't show any activity last 4-5 years.
If you publish the source code, the community can pick up and create a CMake build system, that can even be used everywhere but still be optional on !Linux.
Last edit: İsmail Dönmez 2021-03-11
Hey Igor,
Thanks for releasing a Linux version!
Happy to help with a CMake build system. Would you also be amenable to publish the code on GitHub?
Even if you won't accept pull requests there, having an official GitHub mirror that's updated ever time there's a release would make people's lives a bit easier.
Cheers!
There's an active fork of p7zip on GitHub. It is the repo some distros, e.g. Arch and NixOS, use to provide p7zip.
I maintain a fork version of p7zip on github. https://github.com/jinfeihan57/p7zip
Many people in the community are very interested in p7zip. I believe once
the source code of 7zip-21.0 is released, and the community will definitely help complete the 7zz Linux build script as soon as possible.
https://github.com/jinfeihan57/p7zip/issues/114
Yes! Thanks so much, Igor. It's so strange-- 7-zip was very much my preferred archive tool for years and years until I switched to Linux. Recently, I have the need for an installer and have been studying 7-zip's SFX implementation for the past several days, and then like magic you drop this at the same moment! Can't wait to try it out.
Yes! Thanks so much, Igor. It's so strange-- 7-zip was very much my preferred archive tool for years and years until I switched to Linux. Recently, I have the need for an installer and have been studying 7-zip's SFX implementation for the past several days, and then like magic you drop this at the same moment! Can't wait to try it out.
I have started developing a project I am calling 'MWALI'. It's an acronym created from Mac+Windows+Android+Linux+iOS. Also Mwali is the Creator God of the Kalanga people of Africa which is cool. The notion is to do what Electron, NW.js, Ionic, etc. do in creating clickable icon apps that feel native, but do it without the bloat. Instead of duplicating all that Chrome code, just use the already installed browser launched in full screen mode. In that regard, it's just like any downloaded web app, but the distinction is I would like to have the ability to create and share such 'web apps' completely without any remote hosting.
I want to be able to bundle the app into a single file that I can email to people and then they can use it with a single click. 7-Zip's self-extracting installer seems perfect for this. It already works to create installer bundles on Windows (obviously), Macs I believe, and has been working on Linux in an unofficial way using old code. Now Igor has made 7-Zip on Linux much more official with this release. ARM64 builds are a thing, and there's some Android experiments I have seen. Iphone/iOS is the one I haven't yet seen 7-Zip working code for, but I bet it's out there somewhere. The full M.W.A.L.I. codebase seems tantalizingly close.
Google obviously sees the need for such a thing with their recent focus on Web Bundles, but it strikes me as odd with their approach of crunching to single HTML file and converting to CBOR. I'd bet good money 7-Zip still makes a smaller archive bundle on the same code than a Web Bundle, and in a more practical way too. Also, naturally Google is putting restrictions on how Web Bundles can be shared, and developers are at the mercy of Google's whims to change things at any moment as usual. I think 7-Zip's awesome compression ability + its installer implementation could blow Google Web Bundles out of the water, and do so in the developer-friendly 7-Zip open source way too.
I have purchased the https://mwali.dev domain and have started building it out as a tool chain resource and hopefully community for building cross-platform apps that can be shared easily. After researching universal SFX installers for a week, I decided 7-Zip is the way to go for this project. Then, out of the blue, Igor drops 7-Zip 21 for Linux! I'm taking it as a good sign the project needs to happen. Thanks so much, Igor, for the gift of 7-Zip!
Last edit: choons 2021-03-11
Hello, I am just a starter and, tried to do same as you on my domain. Will it be possible to learn how to do it on new domains? It will be really nice to learn it. Thank you.
Ubuntu Server 20.04 running in Hyper-V
Thanks for doing this. Here is my benchmark.
Ubuntu 20.04 - AMD Ryzen 7 1800X 8-cores @3.6GHz
"Please write here, if you have some advices how to compile and link binaries that will work in most Linux systems."
There is no right answer to providing a BINARY that works on most Linux systems.
The thing to do is to provide source and a Makefile that works most everywhere. Get someone to test on old and new versions of Redhat/CentOS and Ubuntu/Debian. Then let the maintainers of the major distros know it's available and THEY will be build the binaries.
Volunteers can contribute the metadata files that tell the distro how to properly build the package.
Having said that, if you compile against OLD versions of the libraries, such as glibc, that will often work for relatively simple orograms like this one which use few libraries*. Libraries on Linux are normally backward compatible, so a binary compiled on an old system will run on a new system, but not the other way around.
Ubuntu Server 20.04 - Intel Core i3-4130 CPU @ 3.40GHz
Last edit: Denis Kolesnikov 2021-03-13
Thanks a lot. Here are the benchmark results.
igor, hi,
i spoke with justine tunney who has a completely portable runtime system which compiles universal binaries for windows, mac, freebsd and linux, and she would like to help. there's also a way to embed an x86 emulator so that it works on arm64 as well. can you email me and i'll put you both in touch.
warmest,
l.
Last edit: Igor Pavlov 2021-03-13
Thank you very much Igor.
Ubuntu 20.04 on WSL2 Win 10 64-bit
Last edit: Anonymous 2021-03-13
kubuntu 20.10
AMD Ryzen 7 3800X@no OC
Asus TUF GAMING X570-PLUS
32GB
And I was doing my normal daily basis surfing net with chrome (+10 tabs open).
Gotta do same test from CLI after reboot without login in to GUI....
kubuntu 20.10@RESCUE MODE (same as single user mode?)
AMD Ryzen 7 3800X@no OC
Asus TUF GAMING X570-PLUS
32GB
Hi Igor,
It is not a problem with 7-Zip to Linux, but a huge problem for me on Linux with p7zip archiver. I am looking for an appropriate solution now. Operating system Ubuntu 20.04 with p7zip-full 16.02
Earlier I made a 73 GiB archive with p7zip then the source directories was deleted. Now when I want to restore the 7zip content (ether p7zip or 7-Zip) the error message is the following:
./7zz t /mnt/storage/ITSH.tar.7z
7-Zip (z) 21.01 alpha (x64) : Copyright (c) 1999-2021 Igor Pavlov : 2021-03-09
compiler: 9.3.0 GCC 9.3.0 64-bit locale=en_US.UTF-8 Utf16=on HugeFiles=on CPUs:12 AMD Ryzen 5 2600 Six-Core Processor (800F82),ASM,AES
Scanning the drive for archives:
1 file, 77972111360 bytes (73 GiB)
Testing archive: /mnt/storage/ITSH.tar.7z
ERROR: /mnt/storage/ITSH.tar.7z
/mnt/storage/ITSH.tar.7z
Open ERROR: Cannot open the file as [7z] archive
ERRORS:
Unexpected end of archive
Can't open as archive: 1
Files: 0
Size: 0
Compressed: 0
What shall I do? Who is the p7zip vendor? Who can provide me with appropriate support to restore all archived files? Thank you for your edvise.
Read this:
https://www.7-zip.org/recover.html
Ok, then what could be the source of problem if the Head + End of file looks like:
00000000 37 7A BC AF 27 1C 00 04 E4 2C C4 E3 4D F7 5B A6
00000010 12 00 00 00 42 00 00 00 00 00 00 00 93 F9 AE C7
00000020 E0 E1 EA E0 03 5D 00 24 95 06 8F 92 F5 3E 25 4D
. . . . . . . .
277FFFE0 AC D8 FC 7A B2 68 B3 F6 62 F3 CD C2 CB CA CD F2
277FFFF0 9B 0D 30 53 60 29 F9 B1 7A BD 74 BD 7A BD 18 63
Please create another forum thread about your recovering problem.
Your archive file was truncated by about 2 GB by some unknown reason.
You can find original archive file size in header.
Probably you can recover big part of data.
The recovery procedure is described here:
https://www.7-zip.org/recover.html
Try to recover first 100 MB at first.
If it works, try to work with full file. It can be slow to work with big fiels. So you need storage space. You need 7-Zip at Windows or some similar split/combine tools at Linux.
Last edit: Igor Pavlov 2021-04-09