-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can p7zip be included in this project? #1
Comments
Thanks for suggestion, Can you suggest a fork to use a the base ? |
Or maybe it's safer to use this base : |
I think https://github.com/3rdpartyrepos/p7zip looks good, since it just imports the latest source (16.02) and apply the CVE patches on top of it. https://salsa.debian.org/debian/p7zip is also good (because you can trust the repo owner/maintainers), but it contains Debian-specific files (e.g. https://salsa.debian.org/debian/p7zip/-/tree/master/debian). |
Well it looks like @pgp know what should be done: https://github.com/3rdpartyrepos/p7zip/commits?author=pgp how can @abandonware/maintainers help ? Any opinion welcome Anyway It's good to have this ticket opened here May I also share this tracker link: ps: @86423355844265459587182778 I am curious about your nickname, can you give me more hints about it :) |
Hi everyone, |
Would @abandonware/maintainers help for cooperative maintenance here, |
I attempted to port the patches from 7-Zip to p7zip, but 16.02→16.03 is already a large diff so I can only give up - I am only an enthusiast and do not have enough knowledge to proceed. Another problem is that p7zip has an alpha-quality (or experimental) GUI. Glad to hear that you are willing to bring the work ahead. Good luck and take care! My nickname is just a randomly generated string :) |
Yes @86423355844265459587182778 , that's exactly what I meant... I'm not really interested in the GUI part, since I use p7zip as dependency for this project of mine, where the GUI code is clearly not even compiled. Moreover, as you said, there are already plenty of good front-ends for handling archives on Unix, so IMHO porting the 7zFM code shouldn't be strictly needed; instead, there are other modifications (like raising the IV size to 128 bits in encrypted 7z-AES archives) that I consider appropriate to be ported in p7zip. |
Almost forgot... @86423355844265459587182778 |
It would be also nice to hear form 7z community which strategy is best? I am also in favor of dropping the GUI. If there is a need to have a repo here please let me know, I can do upstream import too, just tell me to |
In addition to hearing from 7z community, I think we can also contact Igor Pavlov on SourceForge. He said in a post that dates back to 2018:
So I guess Igor knows how to contact p7zip's developer. If @pgp (and possibly other developers) are willing to maintain p7zip, we can ask Igor (and/or p7zip's original maintainers) to point to the new repository instead of the old SourceForge project page. (In my opinion, SourceForge's UI is not really suitable for project maintenance. GitHub, GitLab, BitBucket, etc. are more user-friendly.) |
Well, in the case I start to dedicate myself seriously to the project, I'll continue to perform modifications on the above mentioned repo (3rdpartyrepos/p7zip), or at most move it under my personal repos if it gains visibility; you are welcome to fork it and use it as upstream repo. As for the trustability issue, I already said I have started by the base version 16.02 on sourceforge (you can download it, clone the p7zip 16.02 repo, and perform a diff, and, clearly, I'm not responsible for the auditing of that version itself, I take it as is), and the few commits I've done for adding CVE patches and modifications taken from 7-zip till 16.04, are still easily auditable in my opinion.
And, as for @86423355844265459587182778 questions, I'm obviously not going to put anything on sourceforge, all the future commits will stay here on github, at most they will be mirrored on bitbucket and/or gitlab; and, sure, if I succeed in porting the modifications at least from 16.04 to 17.00, and there will be a consistent user base for testing those modifications, we can safely ask Igor Pavlov to link to the repo from his site. |
Thank you, I'll try to have a look tomorrow and try to build it myself from Linux, OSX and FreeBSD |
Sorry everyone, I forgot to change branch so no wonder why it seems there is no error. I tried my best to eliminate build errors, but now I am stuck at:
Although the code failed to build, it will still be available here in case it can be of any use. |
Hi, from what I've seen in your attempts, you tried to apply the whole diff from 7-Zip 16.04 -> 7-Zip 17.00 in one round, and then try to refine and adjust build errors... |
Can I describe your strategy as the following?
|
Yes, exactly. One more trick to speed things up is: given a modified file A in 7-Zip, if there are a lot of modifications, I diff the version before modification (in this case, A from 16.04) with its corresponding file A' from p7zip current version. If the two files are equal, I try to copy directly the new file, otherwise (it's common in p7zip to find additions consisting of several ifdef blocks) I merge back the differences with Meld. |
Thank you for the tip. After a few trials, I discovered that, if a patch changes the variable type (type conversion?), then it should be set aside first (even if it is a small patch). For example, the patch for
If it is applied, then |
That's one of the main differences of p7zip w.r.t 7-Zip. At the API and filesystem access level, Unix uses variable-length UTF-8 strings by default, Windows generally uses fixed-width wide strings (2 bytes per char on windows) - this reflects in 7-Zip using wide strings and p7zip using normal ones (with variable length). So additional care has to be taken in involved code blocks, and you cannot know it a priori, since, as you said, the difference in the string type used may involve an included file. The main hint to detect this is checking in the 7-Zip variant of the file you are attempting to modify, occurrences of:
|
My side I can import debian or/and arch base (apply their patches) may and then you can try submit patches over it and we try to review them ? would than help ? |
Debian/arch patches (from what I've understood, arch uses the same patchset of debian) have been already merged in the branch in which I'm currently working on (actually, they were the first modification I merged, some months ago).
|
I have created repo from debian base and applied some of their trusty patches : I also applied one patch from arch: https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/p7zip others are touching rar files that debian removed Do we want this rar part ? IMHO sliming down p7zip is a good strategy ps: I am trying to promote this https://twitter.com/RzrFreeFr/status/1243569839886696451 if you can help that would be appreciated |
In the project where I use p7zip (actually, that p7zip version contains some slight modifications w.r.t. to the official one) I enabled rar by default (if I remember correctly, due to licensing issue, rar codec is available only in 7z.so, and not in the fat binary 7za), so I think it should be kept. And again, yes, if you look at the beginning of the commit history I mentioned previously, all those patches hsould have been already applied. |
yes, currently I'm building only the |
anyway, I think it's a good idea to continue merging files with few, trivial modifications, like the one in PR you just posted (just do it in the proper branch, please).. |
Please try to rebase your patches on @abandonware fork imported from debian |
Update: The 7-Zip homepage now lists a new fork of p7zip, szcnick/p7zip. According to the discussion thread, although the new fork has released a "17.01" version, it is not really based on 7-Zip's 17.01. Instead, it is more like p7zip 16.02 + CVE fixes + Additional codecs in 7z archive. |
OK Relate-to: https://purl.org/rzr/flows |
It looks like p7zip is no longer actively maintained:
https://sourceforge.net/projects/p7zip/
The last release is 16.02 while 7-Zip is already at 19.00.
There are CVEs but since the code is not updated, package maintainers of Linux distributions have to include the patch themselves.
Someone asked whether p7zip will be updated, but there is no response.
Although 7-Zip is open source, the source is only released when there is a new version, so instead of being able to see the actual commits (and cherry-pick / port the patch to p7zip), we can only see a large diff which affects hundreds of files.
The text was updated successfully, but these errors were encountered: