Well, after a far too long development cycle, The Unarchiver 2.0 is starting to come together. The reason for the massive delay is that huge parts of the internals have been rewritten to make it easier to program and extend. The old libxad is mostly gone except for old formats, and new Objective-C based code handles most normal formats.
Of course, that kind of huge rewrite will have introduced a lot of new bugs, and I really need some help testing it to shake those bugs out. So if you want to help out, you should grab it and try to use it on any files you can find, and report to me if it doesn't work as expected, preferably with the files that cause problems included.
The latest version can be found here:
http://code.google.com/p/theunarchiver/downloads/list
Obviously you should be aware that this may cause all kinds of problems, so be prepared to downgrade in that case.
Further information in later posts. Try to read the thread before reporting bugs!
The current version is 2.0, alpha 1: http://theunarchiver.googlecode.com/files/TheUnarchiver2.0alpha1.zip
This version contains only changes to the internal engine, and no changes at all to the interface! Old bugs on the bug tracker about the interface have not been fixed yet, so no need to re-report those. If something that USED to work doesn't work any more, though, I want to hear about it.
New things in 2.0 alpha 1:
At some point I should write a guide to how to write code to support new formats, if anyone else wants to contribute. First I need to get the whole thing working reliably, though. If you're interested, ask me in mail or on IRC or something. It's been designed to make it as easy and painless as possible to implement new formats, though, so if there's something you'd like to try, you should give it a go!
Oh, also, the bug tracker is here:
http://code.google.com/p/theunarchiver/issues/list
Filing reports there makes it less likely that I forget about them, for anthing more complicated.
Some more additions I forgot the first time:
That does sound very interesting. PAQ has been pretty useless before, but that could change that.
Unfortunately, though, the example code is GPL and thus not really compatible. It'd have to be implemented from scratch.
Alpha 2 released:
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0alpha2.zip
>>8
yeah, someone really needs to write a free decompressor for it.
maybe i'll do that sometime this summer.
Alpha 3:
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0alpha3.zip
The NSLock bug (http://wakaba.c3.cx/sup/kareha.pl/1151796773/492) seems to be fixed in 2.0 Alpha 3. If you want to further investigate this issue, here is the archive I used, which triggered the problem in 1.6.1 (http://vim-latex.sourceforge.net/download/latexSuite20060325.tar.gz)
Or you could simply make two versions of libxad: One licensed in GPL and includes support for ZPAQ and another licensed in LGPL and does not link to the ZPAQ library.
That's funny, it should still be there, as I haven't touched the interface code much at all yet, and that's where that bug is.
>>14
it's better to write a free version from scratch than to distribute free code under a non-free license.
>>17
http://www.charvolant.org/~doug/gpl/html/index.html
proprietary licenses are not free licenses.
Disk Doubler 3.0 archives get extracted properly with this, making it the only OS X application that is able to extract these files. Good job.
Will test other archives I have lying around.
I am, by the way, interested in any and all information about the algorithms used in later versions of DiskDoubler (3.7 and 4.0, I think?). Those are not yet supported, but I would very much like to support them.
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0alpha4.zip
I'd really like to hear how well this works with encrypted and large RAR files, by the way. I only got one confused bug report on the tracker that can't be reproduced. Has anybody tried this, especially on files that didn't use to work?
% dd if=/dev/urandom of=random bs=1024 count=2048Then opening any archive.partX.rar segfaults The Unarchiver.
% rar a archive -v512m random
Oh, nevermind. It got fixed in alpha2 and I didn't notice.
Great to see passworded rars finally working!
I have no idea whether it might cause issues, but have you considered, when unarchiving a bunch of archives at the same time, to remember the first password provided by the user for the duration of the unarchiving session, and attempt to use the same password on subsequent protected archives? It would save some time sticking around pasting 20 times the same password for some usage scenarios.
I guess there should be an "apply to all" checkbox for the password, too.
Rars with password keep failing to extract...
Which exact version? And once again, I can do nothing about it without some example files.
version: 2.0 alpha 4
Are you sure it's not actually running an old version you still have left? Also, I still need those files.
I downloaded yesterday... :S
I tried it on 3 movies I downloaded from www.rapidsharemovies.org
Checked again.. The version is 2.0 alpha 4...
still failing to extract password protected rar files
Give me some specific files to test. I can't read your mind and guess what you have downloaded.
I can not untar a big tar package (about 12G) with The unarchiver v1.6.1 or v2.0 alpha 5. This tar file was creative in Windows System by 7zip or Winrar and some file names in the package was encoded by "zh_CN.gbk".
The Unarchiver v1.6.1 can extract part of the tar file (about 2.2G) with right file name encoding, but it report the rest of files are incomplete. But actually, The Gnu tar and other application like Suffix expander can extract all files, but got wrong encoding.
The Unarchiver v2.0 a5 just hang at "preparing to extract" and will not go further.
I wounder could this be a bug ?
Thanks.
Really huge archives with lots of files are probably not going to work in the current Unarchiver. I've got some ideas about fixing this but it'll probably have to wait until later.
Thanks for quick reply. I'm very glad to here you have ideas about that. :) For me only the Unarchiver can cope with the archives with non-utf8 encoding files. Thanks again!
2.0 might handle it if you just wait long enough for it to scan the whole file. It might use a whole lot of memory for it, though.
All right, fixed it so that thing extracts. It takes forever, though, not sure if that's expected or not.
PS RAR is a horrible, horrible format.
Well, I think it's time to upgrade this to a beta release:
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0beta1.zip
What's needed now is for people to try out the UI and the new options, as well as the old ones, to see that everything works as it should, or to report any fixes I forgot about.
>> 41
Thanks for the Tips, I have tried the Archiver 2.0 beta1 to extract my 12G tar file. After a long time preparing, it crashed.
I think the tar file is too large for my memory of my laptop.
If necessary, I can send you the error report. Thanks.
Finally PS RAR files can be extracted! Thank U!!!!
Just one thing: could u add an option to never create a new folder for the extracted files?
Thanks again!!!
Probably not, it would require figuring out how to deal with colliding filenames which I rather wouldn't do.
I am just wondering if xar support is simply implemented using libxar and whether bsd flags, resource forks and extended attributes can be preserved when extracted using The Unarchiver, since the main design goal of xar is to preserve all metadata.
It is implemented from scratch. Resource forks are handled, but no other extended attributes. Implementing this correctly is a bit of a pain since the xar format is essentially undocumented.
Also, if you want support for more xar features, supply some files that use them so I can try to figure out how they work.
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0beta2.zip
The GUI is now feature-frozen for v2.0, so that I can start trying to collect translations. Only going to be fixing bugs and doing internal improvements until after 2.0.
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0beta3.zip
Oh, and for the old Amiga fans, I made the .adf parser work again so you can extract the files on a fastfilesystem .adf file, and also made the libxad DMS code unpack .dms files to .adf (although it seems a bit buggy).
I am wondering if it would be possible for libxad to link to libxar for handling xar, because libxar has been verified to handle EA, resource forks and more obscure metadata such as BSD flags correctly. I don't think there is any licensing issues with libxar. Reverse engineering is also much more likely to introduce bugs compared to the native implementation.
>>50
The author of this HFS metadata test suite (http://www.n8gray.org/blog/2007/04/27/introducing-backup-bouncer/) tested against xar svn (fix later released in xar 1.5.1) and found it to handle all known HFS metadata correctly. You can simply use this suite to generate sample archives and verify how much metadata is preserved. It would be interesting to see if the Unarchiver's zip, tar, cpio and pax implementations are capable of restoring whatever metadata that's actually preserved by the archiving program.
No, probably not. I'll want an example file for that.
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0beta4.zip
The backup-bouncer suite I mentioned earlier will generate a source disk image contains files with all types (and combinations) of HFS metadata (EA, resource forks, BSD flags, Finder comments etc.). You can use whatever archive utility you want to archive the generated files and then extract the archive using the unarchiver to a destination disk image, also generated by the test suite. You can then run the bbouncer program to verify the files.
For real world (and non-trivial) usage of extended attributes, you can download Skim.app, which uses EA to store its annotations. The chflags utility (included in OS X) can be used to change the BSD flags of a file.
I will try to send three files:
1) the 7za compressed file
2) screenshot of the .7z file and the extracted folder icon with a "-"
3) screenshot of "Get Info..." of the extracted folder
4) the 7za compression log
Safari failed to send a file
Now try Firefox
2) screenshot of the .7z file and the extracted folder icon with a "-"
3) screenshot of "Get Info..." of the extracted folder
7-Zip (A) 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=utf8,Utf16=on,HugeFiles=on,1 CPU)
Scanning
Creating archive /Users/Bee/Documents/vim-20090730.152209.7z
Compressing vim/example-rc/gvimrc
Compressing vim/README
Compressing vim/_vim/doc/tags
Compressing vim/_gvimrc
Compressing vim/_notes
Compressing vim/_profile
Compressing vim/_vimrc
Compressing vim/cp-bee.sh
Compressing vim/rc-restore.sh
Compressing vim/test.sh
Compressing vim/_rc-cp.sh
Compressing vim/vim-notes/20080401 dot-vimrc.txt
Compressing vim/_vim/doc/DrawIt.txt
Compressing vim/Emacs key bindings.txt
Compressing vim/_vim/doc/manpageview.txt
Compressing vim/vim-notes/opt.txt
Compressing vim/sed1liners.txt
Compressing vim/vim-notes/vim-notes.txt
Compressing vim/vim-notes/vimcmd.txt
Compressing vim/_vimrc-removed.txt
Compressing vim/_vim/spell/en.utf-8.add
Compressing vim/_vim/autoload/.DS_Store
Compressing vim/_vim/plugin/.DS_Store
Compressing vim/_vim/after/.DS_Store
Compressing vim/_vim/.DS_Store
Compressing vim/_vim/spell/.DS_Store
Compressing vim/_vim/plugin~/.DS_Store
Compressing vim/vim-notes/.DS_Store
Compressing vim/.DS_Store
Compressing vim/_vim/.netrwhist
Compressing vim/_vim/spell/en.utf-8.add.spl
Compressing vim/_vim/autoload~/DrawIt.vim
Compressing vim/_vim/plugin~/DrawItPlugin.vim
Compressing vim/_vim/filetype.vim
Compressing vim/_vim/after/syntax/forth.vim
Compressing vim/_vim/syntax/info.vim
Compressing vim/_vim/syntax/man.vim
Compressing vim/_vim/syntax/mankey.vim
Compressing vim/_vim/autoload/manpageview.vim
Compressing vim/_vim/plugin/manpageviewPlugin.vim
Compressing vim/_vim/syntax/manphp.vim
Compressing vim/_vim/plugin/plutil.vim
Compressing vim/_vim/plugin/textutil.vim
Compressing vim/_vim/.VimballRecord
Everything is Ok
ok, Firefox would send files.
Can you fix it so Safari 4.0.2 will send a file?
Safari can send the textbox.
TheUnarchiver2.0beta4
Same result with beta4:
Ownership & Permissions
No Access
this is what permissions look like in terminal:
d----w---- 18 Bee Bee - 612 Jul 29 22:13 vim/
Found the bug, thanks. It was just a typo in the 7zip permissions code. Should work in the next version.
Thank you! for TheUnarchiver.
I see in your post >>63-69, I searched this site and did not find how to do that. How do you do that and is it useful?
I answered my own question!
Just by typing those in it becomes an active link!
There's also a problem with un-7z-ing folders.
Process starts, but no folder is created.
You're going to have to be more specific, and also supply some example files.
The problem occurs with 7-zip files made with 7zX 1.7.1 (Compression Level Ultra, no password, no other settings) for MacOSX.
If files are compressed in a folder (folder is compressed), the Unarchiver (2.0 beta 4) cannot uncompress the folder, but 7zX can.
With the Unarchiver, the process starts, but no folder is created.
Free files uncompress properly but have the above mentioned permissions error (User has no read or write privileges).
I'm not sure if this is a problem with 7zX or the Unarchiver.
Test file: http://www.mediafire.com/?ydjgz2k2zgn
This is just the same problem with permissions, which is fixed in the development version.
Would be nice if 2.0 also could support the XZ-format (.xz, .tar.xz, .txz), successor of the LZMA-utils <http://tukaani.org/xz/>. While still marked as beta it's already supportet by gnu tar 1.22 and AFAIK XZ-utils are backwards compatible with LZMA-utils and could replace the lzma part.
It'll probably be supported, but more likely in 2.1 than 2.0. The XZ format is apparently kind of an overengineered mess and would take some work to support.
(Also, what happened to the other formats that adopted the format while it was still called LZMA-utils, like RPM 5 and XAR? Is the finished XZ format still compatible with those files? Or is there some intermediate version that I'd need to support too?)
xar 1.6 supports lzma as well as xz. Didn't ever use RPM5. As I read the docs, the xz-format itself is officially stable. Don't know how to implement support for new formats in TUnA, just thougt it could be as easy as replacing liblzma from LZMA-utils with the version from XZ-utils and add the xz extensions to info.plist...
If it's a heavier task to implement, don't hurry. Can easily be solved using Terminal.
I use as few external libraries as possible, most things are implemented from scratch. Most libraries don't fit the programming model the XADMaster framework uses anyway.
Anyway, the problem is that there are two formats called ".lzma" - the one implemented by the old LZMA-utils, and the new one implemented only by beta LZMA-utils, which was then turned into XZ. However, several formats seem to have adopted the beta LZMA-utils format, and now I don't know if that is the same as what XZ ended up being or not.
To make it more confusing, it seems XAR supported BOTH the old and new LZMA formats under the same name, so does it now have a THIRD lzma format with a new name?
From xar --help output:
--compression Specifies the compression type to use.
Valid values: none, gzip, bzip2, lzma, xz
Default: gzip
Don't know internals about the differences in formats/encoders but you could ask directly in the lzma/xz-utils forum:
http://sourceforge.net/forum/forum.php?forum_id=708858
I can only say, I use the xz-utils here and never had an issue with unpacking any lzma-file.
All right, this seems to be good enough for a real release now, so it's time for a release candidate. If nobody reports any more bugs for this version, or submits any more translations, it will be relabeled and officially released as 2.0 in a couple of days.
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0RC.zip
TheUnarchiver rocks, great work! Can you add (or is it already there) a way to choose the destination for one archive? Like by default extract to the same folder but if it is open with option held down then ask for the destination?
Can one day TheUnarchiver became The(Un)Archiver, by adding the possibility to compress files, maybe just really supporting a open format like 7z or xar?
>>72 is fixed.
I downloaded the compiled binary for 7za and also downloaded the source.
The source folder has some tests, some of which The Unarchiver 2.0 RC fails.
7za will extract all, including the password protected files.
password="qwerty"
Are these known issues?
p7zip 9.04.dmg
kMDItemWhereFroms = (
"http://web.me.com/krmathis/applications/p7zip%209.04.dmg",
"http://web.me.com/krmathis/"
p7zip_9.04_src_all.tar.bz2
kMDItemWhereFroms = (
"http://softlayer.dl.sourceforge.net/project/p7zip/p7zip/9.04/p7zip_9.04_src_all.tar.bz2",
"http://sourceforge.net/projects/p7zip/files/p7zip/9.04/p7zip_9.04_src_all.tar.bz2/download"
Tests done with The Unarchiver 2.0 RC:
The Unarchiver 2.0 RC does NOT expand:
7za.exe.lzma86
7za.exe.xz
7za433_7zip_lzma_crypto.7z
7za433_7zip_lzma2_bcj2.7z
7za433_7zip_lzma2_crypto.7z
7za433_7zip_lzma2.7z
The Unarchiver 2.0 RC expands ok:
7za.exe.lzma
7za.exe.lzma_eos
7za433_7zip_bzip2.7z
7za433_7zip_lzma_bcj2.7z
7za433_7zip_lzma.7z
7za433_7zip_ppmd_bcj2.7z
7za433_7zip_ppmd.7z
7za433_tar.tar
I could find only two .sitx files on my Mac and both extracted with The Unarchiver 2.0 RC. I re-compressed them as .zip Now no more .sitx files!
> Can one day TheUnarchiver became The(Un)Archiver
I hope not.
Unarchiving and archiving are two mostly unrelated tasks, and I don't think it's a good idea to combine both in one app.
I do have some ideas for an archiver, but it would involve some pretty crazy ideas which would take a lot of work to turn into reality, so it may never happen.
(Also, neither 7-zip nor XAR are particularly open formats. Neither is has a proper spec published, and are only defined through source code - mostly uncommented and hard to read in the case of 7-zip. Zip is far more open than either of those.)
Well, the first attempt at a release candidate failed. Let's try again!
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0RC2.zip
All right, 2.0 is now released.
http://theunarchiver.googlecode.com/files/TheUnarchiver2.0.zip
This thread is now over, and any further discussion can return to the main thread at http://wakaba.c3.cx/sup/kareha.pl/1151796773/.