stachenov/quazip

minizip supports bzip (if activated when compiling). Why doesn't quazip support bzip?

brunoais opened this issue · 17 comments

Minizip supports bzip (if activated when compiling).
Why doesn't quazip support bzip?

It would be helpful for my project to use quazip to open bzip files. It would allow me to have smaller files without much tinkering.

Interesting. But what this support actually means? If I’m reading the code correctly, it’s about using bzip2 to compress individual entries of regular ZIP files, not about supporting *.bz2 files. Is this what you’re actually aiming at? Then it could be easily done by including a build-time flag and maybe some minor adjustments to QuaZip code.

bzip2 to compress individual entries of regular ZIP files, not about supporting *.bz2 files. Is this what you’re actually aiming at?

Yes. Zip archive with bzip compressed files.

Then it could be easily done by including a build-time flag and maybe some minor adjustments to QuaZip code.

I wonder if I have enough know-how of quazip to do that... Any suggestions? I might be able to do it.

Not yet, but I’ll look into that.

Not yet, but I’ll look into that.

(just making sure) Still no info?

I’m kind of busy lately, changing job and relocating to another country. I don’t expect any free time until September, but thanks for reminding anyway, I may be able to set aside a few hours someday.

If you can just give me pointers on where to look at, I may be able to do it myself and then you do some touching up.

Otherwise, I'll wait for September. It's not that far away 🙂

Well, the actual implementation requires little to no work at all. QuaZipFile already accepts a method argument, and you can just pass Z_BZIP2ED there, and it should work out of the box, assuming minizip is compiled with bzip2 support, which is where the tricky part is.

As far as I can see, all you have to do is to define HAVE_BZIP2 during compilation. You can try doing it manually, and then it’ll probably just magically work. Oh, but you obviously also have to link to the bzip2 library.

But in order to do it properly, CMake support is needed. CMakeLists.txt should look for bzip2, and if it’s found, define HAVE_BZIP2 and add bzip2 as a dependency. This shouldn’t be that hard either, but will require some googling.

Noted. Thank you. I'll try that course of action!

@stachenov I hope my PR #150 helps but I can't get tests to work correctly.
Do you have time to look at it and finish it?

Yes, I've been a bit busy with my relocation lately, but finally sort of settled down and in fact was just thinking it's about time to get back to GitHub. Will try to do it by next weekend.

Awesome!
I don't know if I can do much more to help than I did but if you need sth I may be able to help, just @ me!

Didn't quite have time this weekend, but I didn't forget about this either. Hope I can finally get to it on the next weekend then.

@stachenov
Hey. I suppose this is done now.
Is there any ETA for the new release with this version?
Unfortunately, I can't use the updated version until a release is done.
Thanks for understanding.

Hi, thanks for pinging me on this. Cypriot laziness is really getting me :-) Will try to do it by this weekend, should be easy enough.

Perfect! Thank you!

Finally done. Barely found a free minute to do it. I initially planned to make using stdio optional, but I really don't have much time lately. At least it works. Guess that'll have to wait.

Thank you!