I had set out to do some major surgery to lrzip to make it work better with STDIN/STDOUT and not use physical temporary files at all. However, as I mentioned in my last blog post, my approach of using shared memory as files was a failure as it only really worked on linux. So after much angst, I decided to simply put together all the minor bugfixes that I had accumulated and bring out a new version. So here is a mainly small bugfix release lrzip version 0.571:
lrzip on freshmeat
On a related note I chanced upon this article recently which compared compression tools:
best-linux-compression-tool-8-utilities-tested
tl:dr lrzip wins
Suffice to say that lrzip did pretty well, despite them using a much older version that predates any of the multi-threading enhancements!
Just updated from git and it fails to build...
ReplyDeleteg++ -o lrzip main.o rzip.o runzip.o stream.o util.o 7zCrc.o zpipe.o Threads.o LzFind.o LzFindMt.o LzmaDec.o LzmaEnc.o LzmaLib.o -llzo2 -lbz2 -lz -lm -lpthread
rzip.o: In function `rzip_fd':
/usr/src/lrzip/rzip.c:744: undefined reference to `md5_init_ctx'
rzip.o: In function `rzip_chunk':
/usr/src/lrzip/rzip.c:590: undefined reference to `md5_process_bytes'
/usr/src/lrzip/rzip.c:611: undefined reference to `md5_process_bytes'
rzip.o: In function `rzip_fd':
/usr/src/lrzip/rzip.c:941: undefined reference to `md5_finish_ctx'
runzip.o: In function `unzip_match':
/usr/src/lrzip/runzip.c:130: undefined reference to `md5_process_bytes'
runzip.o: In function `unzip_literal':
/usr/src/lrzip/runzip.c:88: undefined reference to `md5_process_bytes'
runzip.o: In function `runzip_fd':
/usr/src/lrzip/runzip.c:258: undefined reference to `md5_finish_ctx'
/usr/src/lrzip/runzip.c:292: undefined reference to `md5_stream'
/usr/src/lrzip/runzip.c:242: undefined reference to `md5_init_ctx'
collect2: ld returned 1 exit status
make: *** [lrzip] Error 1
Stick to the stable release for now. There will be a lot of flux in the near future as lrzip undergoes a massive rewrite.
ReplyDeleteHi Con,
ReplyDeletebut there is no disadvantage to use the "pipe enabled" version from the git stdinout branch in linux until your big rewrite is done?
Tanks sysitos
Please don't use the stdinout branch as the file format is being dramatically changed and that one produced different files that will not be compatible in the future. Sorry I had no choice but to do this.
ReplyDeleteHi Con,
ReplyDeleteno problem. That's why we test it ;) And with feedback the program will be become (hopefully ;-) ) better.
Thanks sysitos
Yes indeed, and I'm very grateful for your testing! The master branch now has compression to stdout without a temporary file. There's a hell of a lot more work to go before a new release though. Try ./autogen.sh first before you try to build it.
ReplyDelete