Tuesday, 8 March 2011

lrzip 0.571

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!

6 comments:

  1. Just updated from git and it fails to build...


    g++ -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

    ReplyDelete
  2. Stick to the stable release for now. There will be a lot of flux in the near future as lrzip undergoes a massive rewrite.

    ReplyDelete
  3. Hi Con,

    but 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

    ReplyDelete
  4. 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.

    ReplyDelete
  5. Hi Con,

    no problem. That's why we test it ;) And with feedback the program will be become (hopefully ;-) ) better.

    Thanks sysitos

    ReplyDelete
  6. 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