So. I kind of like BOMArchiverHelper.app, the default OS X unzipping utility. However, it has quite a number of limitations. Most other unarchivers on OS X have interfaces that I don't like, or just don't work very well. Also, thanks to Windows' idiotic idea of using the current system encoding for filenames, I have tons of archives from Japan with Shift_JIS filenames, which none of the unarchivers on OS X I've tried will handle properly.
And so I, because I obviously don't have enough to do already, get the idea that I need to write a better unarchiver. Features I think it needs include:
For actual information on the current state of this project, read on!
Version 2.1 is finally fast. The only thing that still bugs is that the windows still goes in the background after opening a file. This is especially annoying with password protected archives as you have to find the windows again to enter the password.
Unarchiver seems to have trouble understanding some .7z files. The ones I have had trouble opening were encode with Compress (which can open the files just fine). File size does not seem to be an issue. A 600MB+ file opens fine, but even small files I have compressed myself do not open. I dont know what flags if any that Compress is passing along to p7zip, but its something that Unarchiver doesnt like. Ive attached a file that also gives an encoding error when attempting to un-7zip
Version 2.1 on 10.6.1
This zip file is about 4GB in the system that I recently zip with Unarchiver. But I found that when the time I tried the extract it, it came out this message. That made me to use the Archive Utility on Mac OS X Snow Leopard.
Anny help will be appreciated.
Thanks for the great work as always.
There is a bug on line 109 of XADArchive.m in -initWithData:delegate:error:
. It says if(!parser)
, but it should be if(parser)
instead. As it is, none of the -initWithData:…
methods work. The same code is repeated, sans bug, in -initWithArchive:entry:delegate:error:
and -initWithFile:delegate:error:
.
These could also be refactored to be wrappers around a method like -initWithHandle:…
to remove the duplication.
Works perfectly on Tiger 10.4.11 PPC to unpack an .EXE file. Thank you!
Works perfectly on Tiger 10.4.11 PowerPC to unpack a non-Zip-format .EXE file. Thank you!
Are you working on DiskDoubler unarchive?
I have some files that will not open with TheUnarchiver,
I can send if you need.
I have been studying it a bit, but I'd need a lot of spare time to actually figure out how it works. Hopefully I will find the time sooner or later, because I really do want to support it fully.
And test case files are always very welcome. There are a couple of algorithms I do not have examples files for.
> And test case files are always very welcome
I have mostly photos (tiff) and Quark files that have been DD'd.
Attached is one of each.
>>676
It seems DiskDoubler has 5 formats AD1 AD2 DD1 DD2 DD3
Would you like a file compressed in each format?
If yes, what type of file? tiff, text...
Actually, I've managed to find that version and make my own examples. However, there are two or three more formats that were used by earlier versions but that can only be unpacked with later versions. Those would be the most useful, but might be very hard to get a hold of.
The Unarchiver seems to have a problem with the Amiga .lzx archives that are using the highest possible compression. The Unarchiver refuses to uncompress such archives. Archives compressed with a lower compression unpack well with The Unarchiver.
I've tested this by making such problematic archives using an Amiga Emulator (I've came across this problem while checking some old archives from my real Amiga 1200) using the last amiga version of lzx that came out:
http://xavprods.free.fr/lzx/
http://aminet.net/package/util/arc/lzx121r1
I was only able to unpack the mentioned archives on my mac by compiling the unlzx source code (from the lzx page or the wiki page below).
http://en.wikipedia.org/wiki/LZX_(algorithm)
I haven't gotten around to updating the LZX code yet, so it still runs on the old libxad code that I am not very familiar with. Sooner or later I hope to change that, though.
It would help a lot if you filed a bug on the bug tracker and attached a sample file or two.
OK, I will do that soon when I'm home.
great work! i can finally unpack my amiga powerpacker files! you're god. hjsplit segmented files (001,002) and dmg files support would make betterzip and iarchiver useless for me. but what more can you ask for?
thanks !WAHa.06x36!
2.2 is released:
http://theunarchiver.googlecode.com/files/TheUnarchiver2.2.zip
Love it, works perfectly. Thank you!
I could do the work to figure out what the dates are and fill them in, or I could work on the actual code. I don't think the dates have very high priority.
I would be nice if in Preferences > File formats there was a button to activate all formats that are NOT supported by the Archive Utility according to its Info.plist (that is, letting Archive Utility handle the formats it thinks it supports, and using The Unarchiver for everything else).
I'm having a strange issue, i'm extracting the files, and when i look at my left over space on the drive it counts down after the extraction, but the output files are no where to be seen.
Where did you configure it to put unpacked files?
I just tried to uncompress a segmented RAR file, but instead of
the numbering goes
WinRAR over in peeceeland handles the segmented archive just fine. TheUnarchiver gets to the end of foo.01.rar and spits the dummy.
Could we please have this growing-more-common segment numbering method in a future release?
(I also second the call for split 001 002 etc files!)
Because of the way it's built, it's not easy to avoid opening files. I wonder if there's some way to increase OPEN_MAX for a process...
static int setOpenmax(rlim_t limit)
{
struct rlimit rl;
int status;
rl.rlim_max = RLIM_INFINITY;
rl.rlim_cur = ( limit < RLIM_INFINITY) ? limit : RLIM_INFINITY ;
if ((status = setrlimit(RLIMIT_NOFILE, &rl)) == -1) {
if (getrlimit(RLIMIT_NOFILE, &rl) == -1)
NSLog(@"getrlimit: NOFILE");
rl.rlim_cur = rl.rlim_max;
if (setrlimit(RLIMIT_NOFILE, &rl) == -1)
NSLog(@"setrlimit: NOFILE");
}
return status;
}
int main(int argc,const char **argv)
{
rlim_t limit = ( OPEN_MAX < RLIM_INFINITY) ? OPEN_MAX : RLIM_INFINITY;
if (setOpenmax( limit ) == -1)
NSLog(@"Failed to change OPEN_MAX");
...continues...
#include ( sys/resource.h ) /* for setrlimit, getrlimit */
#include ( sys/syslimits.h ) /* for OPEN_MAX */
Interesting. I will have a closer look when I get back to work on the next version.
Once I download Filezilla from its website, The Unarchiver decompresses it in a weird manner, which creates "FileZilla_3.3.1_i686-apple-darwin9.app" instead of "FileZilla.app."
The strange file is even not executable, only showing an error message.
While Mac OS X Archive Utility does the job correctly, The Unarchiver keeps the same problem even after some bug fixes and version 2.2 still fumbles.
Please check this out. You can download the Filezilla file in BZ2 format at following link.
That link does not seem to work. It just goes to a download page that does not have that version listed.
http://pqrs.org/macosx/keyremap4macbook/files/KeyRemap4MacBook-5.1.0.pkg.tar.gz did not unarchive properly for me with latest version (2.2). It appeared to work but the resulting file gave an error when opened.
Built-in Leopard archive utility was successful. I'm on 10.5.8
Thanks.
At what point do you get an error? The installer started up fine for me, but I did not try going through with the installation.
Error was right at the start. I see what the problem is now though.
I have "Create a new folder" is set to always. The new folder created appears to be the package (and will launch the installer since packages are folders named *.pkg), but it actually contains the correct package (if that makes sense?).
Perhaps something to check and adjust the names of new folders created in these cases.
Ah, I see. Not sure how exactly to fix that, but yes, something should be done about it.
I like the move archive to trash function and use it most of the time.
Sometimes however I need to open an archive without trashing it (a seeding torrent for example).
It would be nice if there was a way of disabling this on a temporary basis with a modifier key (like the extract to folder)
It would also be nice if the modifiers could be configured in the preferences.
Also, if I bring another window in front of TheUnarchiver during extraction from the finder, there appears to be no easy way of bringing it back to the front without hiding everything else, as there is no application in the dock and it does not appear in the finder window list.
"Sometimes however I need to open an archive without trashing it (a seeding torrent for example).
It would be nice if there was a way of disabling this on a temporary basis with a modifier key (like the extract to folder)" and an option to float the window so it can't be sent to the background.
2. another note, can anyone try decrunch
http://www.twinbirds.com/goattracker/GoatTracker.zip ?
it returns errors on any drive except a fat32 drive i have. if the file is in the fat32 it decrunches well with the unarchiver.
could it be a bug related to a hfs volume?
3. i suggested before but here goes again, hjsplit joiner would be too hard to implement? what about auto-extraction for dmg files like in special move (which i think is a hidden os feature): http://www.fruitz-of-dojo.de/php/download.php4?dlnr=9
thanks and cheers, !WAHa.06x36.
I can confirm that that file doesn't extract here either, I'll look into it.
There's an issue for simple split files here: http://code.google.com/p/theunarchiver/issues/detail?id=221. Does HJSplit just cleanly split files, or does it add any extra wrapping, do you know?
Also, to do DMG properly in The Unarchiver, I'd have to actually implement a full HFS+ reader. It would be nice to have, but is too much work.
thanks for the reply.
about hjsplit, from this page (portuguese)
http://blog.mcsx.net/hjsplit-juntando-arquivos-separados-sem-hj-join/
it says that hjsplits splits files but doesn't use an actual file format, just splits bytes directly in raw mode without any means of cyclic redundancy check to know if the file is intact or was modified (bit flip) when downloading or got corrupted in the hard disk.
what it means i don't know. :\
machacha is opensource and handles hjsplit, maybe you can get the code.
homepage: http://homepage.mac.com/julifos/soft/machacha/index.html
pdf about file formats including hjsplit (from machacha homepage): http://homepage.mac.com/julifos/soft/machacha/specs.pdf
The only thing that still bugs is that the windows still goes in the background after opening a file. This is especially annoying with password protected archives as you have to find the window again to enter the password.
This turns out to be really annoying, but I think I've got it covered now.
All right, let's call this a release:
http://theunarchiver.googlecode.com/files/TheUnarchiver2.3.zip
>>711
WuWi
tested over 100 DiskDoubler files that did NOT previously expand with The Unarchiver
--and--
it works!
Thank you.
I also found a copy of DiskDoubler 3.0.1
Would it be useful to you?
I haven't thought about it much yet. I guess one solution that isn't very good but would work is to just make it possible to manually choose the encoding when entering a password. This would also help for files where the encoding is guessed wrong.
But that requires updates to the UI resources and translations, so I'll wait until I have some other changes to apply too, it's a bit of a bother to get everyone coordinated to do an UI update.
Good to hear!
Can you check if you can make a file with 3.0.1 that will not open in The Unarchiver? If you can, that would be very useful. Try different compression methods and see if one of them doesn't work.
Oki Doki.
Take your time.
It's not important things. : )
>>715
Method A will expand with The Unarchiver
Method B will NOT expand with The Unarchiver
What would you like? Method B file and/or DD301
Both expand with DD301 and DD410
I guess the best would be both! I have an emulator somewhere that might run it but that's a pain to get running.
>>718
ok... I am sending dd301.zip
It has dd301, good Method A and trouble maker Method B
thanks for split file support.
it sucks when i have to keep 2 or 3 apps to do one thing.
Ah yes, method B is indeed method number 2, which is the one I still lack. (Method 5, too, but it's apparently the same as 2 just with another parameter.)
When I have some time to play with reverse engineering again I'll have a look at it. Thanks!
if i hit return after entering the password for an archive (instead of clicking ok) the whole program seems to freeze up. if i open another archive it will show up in the window but i can't do anything with it. if i double click the icon i get no preferences. a blank unarchiver window will just stay in the background and can't be force quit (or regular quit). it happens every time. this is a TERRIBLE bug and if it's been reported i apologize, for i don't have time to read through this thread, but it keeps me from using unarchiver as hitting return after typing is something ingrained in my mind.
Some people have reported similar problems, but I can not reproduce them, and thus can't figure out what is going wrong.
Do you have any haxies or anything similar installed? Do you have a second machine you can test to see if it has the same problem?
>>721
Any idea which version of dd had Method 5?
Nope, not really. Well, 3.0 seems to use 1 and 2, and 4.0 uses 6, 9 and 10, so maybe something in between? Although I noticed some of the other related programs might use other methods. And method 8 seems to be older than many of the others too (and is the same as in Compact Pro), so it's a bit of a mess.
I wanted to alert you to an issue that I ran into with Unarchiver. I tried to download a wireless broadband configuration application (you can get a copy of it here: http://www.clear.com/support/download -- d/l the Mac version 1.03.1031.0).
The problem was that the installation of that application failed. I was on the phone with that company's tech team multiple times and still could not get it to install properly (see attached image).
Then I happened to download it via Safari (which automatically opens zip file with the standard Mac OS X archive utility). Amazingly the installation worked that time.
The problem was related to the fact that I was always unzipping the file using The Unarchiver. And for some reason, TU was corrupting the .app file in the zip.
I thought I would let you know and let you take a look at the zip file in question.
I love TU, but in this one case it really messed me up for days.
Which version were you using? Try 2.3 if you haven't.
Regarding Issue 727 reported by "archecht"
Curiously ! I have done some tests myself (on OSX 10.6.2) and I have observed that if extracted with –
both, Uninstall Script and Install Package, fail to work !
Uninstall Script works but Install Package fails to install !
both, Uninstall Script and Install Package, work !
both, Uninstall Script and Install Package, work !
with the observation that Apple Archive Utility produces an Install Package with different size, if compared with those produced by the rest of the above utilities.
4 tools = 4 different results !?
Very mysterious. At what point exactly does the installer fail if extracted with The Unarchiver? I tried unpacking it, and it started fine but I didn't want to install any unknown software so I didn't go through with it.
Also, did you spot any obvious difference between the extracted contents of the installer?
>>730
my apologies ! because is no big problem
just that permissions were not set correctly by default when extracted with The Unarchiver and Springy !
sorry again ! I was rushed !
pigz is a reimplementation of gzip for multiple procs. Can you pretty please replace the gzip code with pigz?
Answers to some of the questions 728-733...
>>728 I tried version 2.3 of TU, and it stills has this problem (install fails).
>>730 The install fails right at the start of installing any files, so you won't really be installing anything.
TU produces an installer that fails and is 6,939,287 bytes, and Apple Archive Utility produces one that works and is 6,894,913 bytes. Not sure without looking closely what the difference are.
>>735
Hello 'achecht', have you read post 731 ?!
There is no big error ! You just need to fix permissions for all enclosed folders and files ! You can use for this a graphical tool such as 'BatChmod'
Regarding size difference between TU and AU, I do not know why this difference, but both packages works !
First off, many thinks for enabling me to say NO to Stuffit. Second off, I saw some folks had been asking how to compile. I got it to compile on Snow Leopard (10.6.2) with XCode 3.2.1. I initially ran into problems with #include_next
's, but found that by unsetting some of the user settings I could get it to compile. I'm a command line kinda guy, so here's the commands I used to build and install the app in /Applications after downloading TheUnarchiver2.3_src.zip
:
unzip TheUnarchiver2.3_src.zip
cd The\ Unarchiver/The\ Unarchiver
xcodebuild \
SDKROOT_i386= SDKROOT_ppc= SDKROOT_x86_64= \
MACOSX_DEPLOYMENT_TARGET_i386= MACOSX_DEPLOYMENT_TARGET_ppc= MACOSX_DEPLOYMENT_TARGET_x86_64= \
GCC_VERSION_i386= GCC_VERSION_ppc= \
HOME= DSTROOT=/ install
cd ../..
rm -fr The\ Unarchiver
I have a strange problem with The Unarchiver. When I download an .rar file, The UnArchiver automatically tries to unarchive it as soon as the file has completed downloading. I have found no way to shut this off. It is really annoying when downloading a multi *.rar set of files, because it will try to unarchive each part.
I'm using the latest Snow Leopard. Is it possible I have something set in the OS that is doing this to me?
Thanks!
This is a very useful program, thank you.
Very good!
some suggestions :
.HUD interface
.compression (it would be great !!!)
.DMG container
Bye!
>HUD interface
HUD windows have stupid behavior like always on top, so I'm against this. Also I believe that'd force Unarchiver to require Leopard or higher.
>compression
Try out http://www.kekaosx.com/en/
>DMG
Whats wrong with mounting it with OS X?
Not surprisingly, but Unarchiver doesn't care for the practice of concatenating a rar and a jpg.
Just making sure you know, Waha.
A suggestion.
Make it use the finder to "preview" archives w/o extracting them (I guess it would be something like "extract to RAM/temp folder" and then open it, and when the user closes the window, the RAM/temp folder contents gets deleted automatically).
I'm having trouble extract rar files. I'm using the latest version 2.3 and when I try to extract a multipart rar archive I get the following message:
"The contents of the file <filename> can not be extracted with this program."
This is very odd, as I've not really had any problems with rar files before. I have about 100+ rar files that I cannot extract with The Unarchiver :(
If you want me to send you some of the files I can, but it's about 100-200MB.
Thanks
Something is definitely broken in 2.3 with regards to .rar extraction. I downloaded the latest version 3.92 of rar from RARLAB and extracted all 100+ files without any issues.
I hope that this will be resolved in the next version.
Can't do anything without example files that fail.
I told you I can give you a few of the files, but they're large 130MB for two part rar files, i.e. part1 and part2. Tell me how to give them to you and I will.
Also, doesn't The Unarchiver use the rar and unrar command line tools from RARLAB? If so then I don't see why it doesn't work.
Let me know how to give you the two files.
You can try uploading them to some file hosting service and mailing me the URLs, I suppose.
Also, The Unarchiver uses no external tools.
Hey,
is there a possible way, to create an exit, cancel or break up button?
Sometimes, a zip-file will not really unzip, and than the unarchiver hangs! than I have to complete restart my mac, to stop the program!
Would be really nice for this button, because I also cannot close it from everywhere, not in the finder nor in the dock!
Thanks :-)
I'd rather have a copy of any file that does that so I can fix the bug that makes it do that. That really isn't supposed to be possible at all.
Really nice thing. Would love to seem some update mechanism implemented. Unarchiver seems to be ideal solution for mac and I don't want to mix next version when it occurs. Maybe implementing sparkle, as update framework?
A little usability thing with v2.3.
I have "After successfully extracting an archive, Move the archive to the trash" option ON.
When an archive then fails to extract, the error message is displayd and two buttons are present: Stop and Continue.
Clicking 'Stop' closes the program without deleting the archive, but pressing 'Continue' DOES move the archive to the Trash, although the extraction was unsuccessfull!
Is there a way to extract a password protected file with the Unarchiver?
When I try to open the file (in my case a sitx file), goes into the extract mode but in a split second exits, without giving me an option to enter the password before extraction.
Any help will be highly appreciated.
Many thanks.
I'd like to offer yet another vote for Sparkle auto-update support.
Also, I found a dmg that The Unarchiver (2.2 or 2.3, I can't check right now) claimed was corrupt. It's the Carbonite backup installer. Apple's archive utility happily extracted and ran it without error. Is this something you've heard of before? I'll post the archive somewhere if needed.
If I had to bet, I'm guessing it's like Palm's HotSync protocol, where the open source implementation sometimes doesn't work properly because it lacks the bugs of the official software. ;)
Also, WAHa, for the record, you rock.
I would like to provide the Greek localization!
I already know how to localize an application for Mac OS X.
Thank you for this useful application,
George.
hi WAHa.
just for the record, i can't extract these files with the unarchiver but with path finder's built-in stuffit engine, they decrunch fine.
check the files on post 42 to 46 on the following link:
https://bugs.launchpad.net/subdownloader/+bug/245836
cheers.
Put in a quick fix for that. However, you'll need to click the .z01 part and not the .zip part for it to work.
ok thanks.
All right, time for another release. 2.4 is now out:
http://theunarchiver.googlecode.com/files/TheUnarchiver2.4.zip