nakijun / peazip

Automatically exported from code.google.com/p/peazip
2 stars 0 forks source link

Change .rar backend to The Unarchiver #77

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
The Unarchiver is a small library that is able to extract many archives, 
including, crucially, RARv3. It's available under the LGPL 2.1, and runs under 
Linux, Mac and Windows (though the author's own GUI is only for Mac, which 
doesn't matter for this as I'm only asking to hook PeaZip into it). 

Hopefully, with the availability of a FOSS RARv3 extractor, the bits on 
proprietary code can be removed and PeaZip can finally get into Debian!

Link to the Unarchiver: http://code.google.com/p/theunarchiver/

Original issue reported on code.google.com by vascofal...@gmail.com on 26 May 2011 at 7:47

GoogleCodeExporter commented 9 years ago
Hi, The Unarchiver is a great software, I know and appreciate it.
PeaZip backend for handling RAR format is Igor Pavlov's 7z, and its port p7zip 
on *x systems.
I chose it because of good performances, stability, feature completeness, very 
good syntax, and because it handles most of the mainstream archive formats, so 
allowing me to reduce the number of dependencies on third parts component to 
test, to keep updated and to distribute with the software package, in order 
either to reduce the weight of the package - and to speed up development and 
debugging as fewer different backend syntax are supported.

The code for extracting RAR files was entirely rewritten by Igor Pavlov and 
released under LGPL, but RAR is a proprietary format and any work supporting 
its format specifications must, as explicit said in the RAR license by the 
original author of the format specifications Eugene Roshal, provide the 
additional clause of not being reverse engineered for creation of RAR files.
Any third party work, either the one from 7-Zip or form The Unarchiver, to have 
the right of using proprietary RAR file format specifications in order to 
provide a working extractor, must bring this additional clause with it, or at 
least it is what is required in RAR license - licensing is a very complex field 
and if and how this rule can be enforced, and if a software with this 
additional clause can still be considered Free Software is still matter of 
debate.
The consensus (at least on SourceForge, that would otherwise not allow to 
publish non-free software on its servers) is that 7-Zip's unrar code is Free 
Software, anyway since this rules comes from the very file format 
specifications of RAR (that both implementations use) 7-Zip's unrar and The 
Unarchiver's unrar must be considered equally free or (non free).

As for the RARv3 support, can you please specify what part of RARv3 
specifications 7z/p7zip's unrar code is not able to handle?
As for what I know it added support to RARv3 many years ago (i.e. during 2002 I 
can see some resolved bugs about RARv3 on 7-Zip's tracker on SourceForge)

Original comment by giorgio.tani.software@gmail.com on 26 May 2011 at 8:28

GoogleCodeExporter commented 9 years ago
By the way, the *x version of unrar code (in p7zip) was, for those ongoing 
concerns about its status as Free Software, separated on a standalone .so, so 
it can be removed as the user / packager wishes.

Original comment by giorgio.tani.software@gmail.com on 26 May 2011 at 8:32

GoogleCodeExporter commented 9 years ago
Cf this release by the FSF: 
http://www.fsf.org/blogs/licensing/free-rarv3-extraction

If the RAR code is obtained through clean room reverse engineering, rather than 
from using Roshal's code, then it can be released under any license the author 
chooses. I assume that's how The Unarchiver's rar implementation came about. 

I mentioned RARv3 because until now, if you wanted to extract rar files, you 
either had to use the unrar-free utility, which did not support RARv3, or go 
with the proprietary unrar with Roshal's code you mentioned. So technically, I 
don't feel there is anything wrong with 7z's implementation; it's just not 
FOSS. 

I admit I didn't browse through The Unarchiver code to look for the specific 
license header for that rar implementation, and if you happen to know that The 
Unarchiver's .rar implementation is also under Roshal's proprietary license, 
then my bad, but I was going on the FSF's release. I guess I should have 
mentioned that in my first post!

Original comment by vascofal...@gmail.com on 26 May 2011 at 9:19

GoogleCodeExporter commented 9 years ago
RAR license states 
http://www.win-rar.com/index.php?id=24&kb=1&kb_article_id=27
"9. You may not use, copy, emulate, clone, rent, lease, sell, modify,
decompile, disassemble, otherwise reverse engineer, or transfer
the licensed program, or any subset of the licensed program, except
as provided for in this agreement. Any such unauthorized use shall
result in immediate and automatic termination of this license and
may result in criminal and/or civil prosecution."
So it is not even clear if a reverse engineering of any of the original RAR 
codebase can be considered legitimate for any purpose - while the same license 
says using the UNRAR specifications is fine unless you try to build a RAR 
compressor.

Anyway, as I said before, copyright is a complex matter and it is not easy to 
understand what clauses can an author legitimately put on a proprietary 
software, and what makes a software free software.
Copyright laws can differ widely on different countries, and anyway FSF, OSI 
and other notable subject's views on copyright and copyleft topics can vary a 
lot too.

SourceForge consider 7z/p7zip Free Software: SF only allows on their server 
software that is released under OSI compliant licenses, so they either consider 
the Pavlov's unrar code compliant with OSI definition of Open Source or we must 
think they didn't noticed such an issue with a software that is in their top 
ten since a decade, that would be absurd.

Original comment by giorgio.tani.software@gmail.com on 26 May 2011 at 9:49

GoogleCodeExporter commented 9 years ago
As I see this topic was quoted and linked on third party blogs and websites, 
I'll clarify better my opinion - anyway the premise is that I'm not, in any 
way, an expert on copyright laws.

The Unarchiver is a great piece of software, so it is 7-Zip.
I'm glad those software are open rather than closed.

RAR is still a great archive format, even if it was superseeded in compression 
ratio and speed by other formats like .7z and FreeArc's .arc (that is really 
astounding in terms of compression/speed ratio), it is still a one of the best 
general puropose compressors, and having good error correction and strong 
encryption makes it one of the best formats around.
But the primary reason RAR support is crucial for free software community is 
that it is extremely popular, and while generally the free software community 
recommends against relying on closed formats (so generally does not endorse 
creation of RAR files), being able to open RAR files (possibly to convert them 
in an open format) is a just too important feature the free software community 
cannot miss.
I'm not glad it is closed, but it simply too important to be ignored.

All the problem here comes from the closed license of RAR: I have deep respect 
for the great work RAR author did, but all those issues are one more reason to 
believe in copyleft, that's why I chose to work with (and to release my work 
as) Open Source.

Original comment by giorgio.tani.software@gmail.com on 27 May 2011 at 1:56

GoogleCodeExporter commented 9 years ago
Hi,
I think you cited the WinRAR/RAR license text that covers WinRAR/RAR 
implementations ("the licensed program, or any subset of the licensed 
program"), and this has nothing to do with The Unarchiver, an independent RAR3 
implementation. 
7-zip unrar code is currently licensed under GPL + unrar restrictions because 
is based on Alexander Roshal's unrar original code. See 
http://www.7-zip.org/license.txt

Original comment by gotru...@gmail.com on 2 Aug 2011 at 12:00

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
For what it's worth, The Unarchive was recently accepted into Debian Main. I 
think this should clear any doubts at whether it's really a free implementation 
or not. See here: http://packages.debian.org/sid/theunarchiver

Original comment by vascofal...@gmail.com on 5 Oct 2011 at 3:53

GoogleCodeExporter commented 9 years ago
I'd tend to agree with the argument that cleanroom engineering is a valid, 
legal way to achieve interoperability (in this case, extracting a file that 
e.g. WinRAR created). Any licenses for the file format are then invalid - you 
don't make use of other people's code and IP law (in e.g. US, Europe) grants 
you exceptions to achieve interoperability (see e.g. 
http://en.wikipedia.org/wiki/Clean_room_design)

If The Unarchiver is based on cleanroom engineering, I'd suggest considering 
switching to it, especially if Debian - who is notoriously strict about IP 
issues - has accepted it.

Original comment by reiniero...@gmail.com on 28 May 2013 at 8:12