�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!usr/bin/bzip2000075500000111560152525043420007107 0ustar00ELF>`%@@8 @@@@hhss || | P (|(| (|  DDStd Ptdkkk,,QtdRtd|| | /lib64/ld-linux-x86-64.so.2GNUGNUGNU Wfp>Ւ#@^=8@ 8:BE|qX9K q2)f6 "0x ) ~=Rwj\8 "D>` Q E` libbz2.so.1_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTableBZ2_bzReadGetUnusedBZ2_bzlibVersionBZ2_bzWriteClose64BZ2_bzReadCloseBZ2_bzReadOpenBZ2_bzWriteBZ2_bzWriteOpenBZ2_bzReadlibc.so.6fflushfchmodexitstrncmpperrorsignalstrncpy__stack_chk_failstdinrewindisattyfgetcstrlenungetcstrstr__errno_location__fprintf_chkfchownstdoutfputcmemcpyfclosemallocremove__lxstat64__xstat64__ctype_b_locgetenvstderrfilenofwritefreadutimefdopen__cxa_finalizefopen64__strcat_chkstrcmpstrerror__libc_start_mainferrorfree_edata__bss_start_endGLIBC_2.3GLIBC_2.14GLIBC_2.4GLIBC_2.2.5GLIBC_2.3.4ii V`ii kui uti | @&| & |  | R( R0 R8 R@ QH RP RX R        1 4 7@~ H~ P~ X~ `~ h~ p~ x~ ~  ~  ~  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~      !  "( #0 $8 %@ &H 'P (X )` *h +p ,x - . / 0 2 3 4 5 6HH9m HtH5jk %kk hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/%eh D%]h D%Uh D%Mh D%Eh D%=h D%5h D%-h D%%h D%h D%h D% h D%h D%g D%g D%g D%g D%g D%g D%g D%g D%g D%g D%g D%g D%g D%g D%g D%g D%}g D%ug D%mg D%eg D%]g D%Ug D%Mg D%Eg D%=g D%5g D%-g D%%g D%g D%g D% g D%g D%f D%f D%f DAWAVAUATU SHH5QHdH%(HD$1HNp HH

EfC(IuHh EHl MHl MHl MH u H8@ 1Ht MEA$t MgHl UH~l CHll 1HZl HHl  H6l H$l Hl Hl }Hg 8~ Hg EA$?kHk A<$_A$Ho zH,$HL531D:-uoH$k H׃'HmH5HULHu1H$HL3L3L-3f.A$H[HL;LL LLt LLuEf LLuEvfDLH=3uHbr GH52LL2L2uvEH5n2H#HH5\2H HH5I2HHH52HHH5W2L9L2L2tZH5=2LL1L1XHi [zHi :A$]Hi &1g%H m 8tHh 8VH$Ht#fH;HkHtOHHDHuHT$dH3%(Hh H[]A\A]A^A_H`h 8tHph 8uHKh 8A<$A<$H$L50Hu.s:-u@uSHg H׃'H[HHLHu1ֻE1Ho tZH$HA*}-u EHdg HH[Ht"H+H5/HuE11Ho 8cH52H5!H5EbAqH5/LLz/L|/tpH5/LzH5/LcH5/LLL+/L-/HKf HZf rA$H5s/L9H5z.LL.L.MH,n Hp.HHV\ H81Hn H8%{1d%L9.L;.H5.L8tFH5.L%t3H5.LL-L-uOH9e VHom MHEHH[ H81L-L-H5$.LL-L-uHd H5-LoLN-LP-jHN` H[ pH= 8HUHbd 8HPd 8Hl HDHHZ H81@1I^HHPTL*H _*H=HJZ H=Z HZ H9tHZ Ht H=Z H5Z H)HHH?HHtHY HtfD=UZ u+UH=Y Ht H=U yd-Z ]wATIUHSHH!%tLDHSHDډHH)H19|HcHcLH)H|u[]A\ff.SH5)sHtH[ff.@SHt Hމ1҉[ff.fPXH=+HHX H Hb 88ATUSHdH%(H$1Ha 8tHH-a }t'Ha DE~Ha A9fDHa ;~8\Hi 8tHi 8tH5e HH-Ya L%Za }H!a H8HtLLOH]i H+HHW H81#H1i D)HeW H RHj,VH81IY^L%h H-2W Hk+1I $H}I $H}1H~+tI $H}1Ls` H+RI $H}1H+7^Hsh MHt*HHV H81PXH+HH+h HHaV H81DHH+HH)V H81HSHIؾ[HHU H-H81cAUAATUS1HHdH%(HD$81Ht$L\$IHl$MLUHI1DAEIAAU)M9uڃ0CA $>uKHI9uHIHcH AKHIH9uHD$8dH3%(uHH[]A\A]ÐI`HU H=1HPHT Lb^ Hc2H ob H815DUSHHgf HXf HHT ;H8t/H51H-] }u$;t6H21];t }t-ʿPXH'9HHe HHT H81sHt] 8u ]fDPXH8HHe IHHS H81 H!] 8u  SHS H9H-e H81H H;H\ 8u US5S "uS 5S [*DAWAVAUATUSHH $H(dH%(H$1HI%LH\ Ld$8LLDHW H\ D\$8IEHW 8@H$RfDHHٺHI(E~DHLLDT$8EH tLT$0HD$,1LHl$(HMIL\$H=3 Zf.H!O H0<{3HLX HN H=FH/DAWAVAUATUSHH $HH $HXdH%(H$H'1ID$$AHD$$DL$$L$H$HD$(Hl$HD$Ld$0HW MLHHQS nHHt$AfLHH}D$t܃H $HT$HHL$PT$$Ht$(1J HATHPH9uHHXT$ DL$$ELVDL$$@H|$ HHXR D$ Hc7HcH>HL #H=3H@1H$H'dH3%(uHX'[]A\A]A^A_DHyL L98tL,AHV 8uiHiL H= H1sH^ LY HHH$L H81HL #H=}2H]HK -H=#2H31LuGLHt:HP 8HK H=%HH=.3H=w ff.fAWAVAUATUSHH $HH $HhdH%(H$X'1IHHD$4>L.D$ HD$4DL$4Lt$,HD$HD$8Hl$@HD$L$HS MLLHO IHL$,D$ fHLLL$,u~HcHپHHlD$,tHT$HL$LLT$,T$4Ht$81J fDHAHPH9uLLD$,DL$4EL+DL$4DH[ 8H|$0L3D$, IH3HcH>fHH L9(tLHH H9tH1|$ tHpR 8oH$X'dH34%(8Hh'[]A\A]A^A_ÐLVfDHL麈 LI@E~IcHپHHLXtLH-H H9]tHLHWHH9]t`HqH2Q HHL H8HG H=5HHP H1Y LU H.HHTG H81^HX H-HHG H81HP ;udvH=H=H_P ;tH-X HF H-H8HM1*H};t;tVaff.UHHSHHH=wHHtƅH[]H7F AHH-H81HO 88GATIUHSHHu ,@HHSHuL1HCH[]A\fDFHHtEHLH@GxHHcHtHEHSLHH[]A\4@AVE1AUATAUHHS$HHLD+EHfDHD+IDA uEDHDA u HLcuAIcH5J IN1ODDlHD,0HPH9u>H}LHED+EY[]A\A]A^E18H(H=M dH%(HD$1HE HH$HE HD$&uHD$dH3%(u H(HH5Q H~D uHVfDHH5rQ dH%(H$1HuD$%=H$dH3 %(uHĨ6fDU1SHH=L Rt%H5TljHHtHH[]1HH[]@!HH[]ATUSHP H؋H!ʁ tH-5L A€DHHuHD@HH)9\afHB AH0uH؋H!ʁ t€DHHHD@HH))A9~[]A\ff.AWAVAUATUSHHL5S H-yK dH%(H$81AEHHL%rO HLGL-@K H1L3HA L\$L HMV8~MH4(IHP HfHL%vL 1LLH=EH H59EH=HH H5LAENfHP }AhHG A8H#> H8HMC HH=p^fH5H= L(H= LH,H-^O H= Hx&1HMH;HMH;H&I1HF 8"fHA= H=HHN MHuH1x 8tMH$IHN HH< H817H4F DEyfHF 8tH8N MH$HHd< H81H N ML E H$HH)< H81$fH$L;u$DHEgEfDH=YE 3f.KH E A8_LOfAH MH HDHH$PHM HHM; H81HD AXAYDEHL IؾH#HH; H8HL MH"Ht8TLMD H)$IHoL HH: H81ML"D8MHE"IHL HHQ: H81HHC 0H=6 @AUATUHSHHqC dH%(H$1HK HH=\C H5g PHH-JG H"H`9 H;HL%> A$~/L-X9 H1H I}AI}HB HHbA$~"H9 H= HRfH$dH3%(HĨ[]A\A]H-aF HI;HH8D$%=@l}H5HHHX8IHw!IHI HD;4H= +HE  fH-E H5 HZ3H-I H7 H 1HMH;HMH;H I1H@ s8IHIHI HH67 H81H@ 0.@HH IHHH6 H8^H=ff.@AWAVAUATUSH8L=dH L-@ dH%(H$(1AAEHH!H-D H0hH6 Ls L#HLOHL9uAEP$t_H=@H-C HHfHH\? HT H5HAE[FfDHq5 L H_5 HHH: ~-L5a5 H1HI>KI>L5> HLAIA}I`AH$(dH3%(H8[]A\A]A^A_H5MH)IaHHM?80HIIHOF HH4 H81H H= QDHH-A HH== H5pAEvfH5HqIH3 HH|eMw@8dIHIHE HH3 H81'H$= DEfSH5HHD$%=@AE)HD ;L%< Lt;LCAE;AEHY< 8!HD MIHTH@CH< A8Hwf.AEH*H$H{uw$DHE~gAHAIHRHDHHPHC HH1 H81bH_; ^_DE9AEfDH-iC H1 Hc1HMH;HMH;HI1H: IDH- C HB1 H1HMH;HMH;1H8IMSLFHB MHwHH0 H8[8ILB: HIHdB HH0 H81MuH9 8H/B IHHH[0 H81HB IH>HH=@HAWIAVIAUAATL%, UH-, SL)HHt1LLDAHH9uH[]A\A]A^A_ff.HHrb no data compressed. test:bzReadGetUnused %s: %s: file ends unexpectedly test:unexpected errordecompress:bzReadGetUnuseddecompress:unexpected errorwbuncompress: bad modes (stdin)(stdout).outuncompress: bad srcMode %s: done %s: %s is not a bzip2 file. testf: bad modes (none)%s: Can't open input %s: %s. testf: bad srcModeok .bz2BZIP2BZIP--unzipUNZIPz2catZ2CATzcatZCAT%s: Bad flag `%s' --stdout--decompress--compress--force--test--keep--small--quiet--version--license--exponential--repetitive-best--repetitive-fast--fast--best--verbose--help.tar.bz.tbz2.tbzbzip2: I'm not configured correctly for this platform! I require Int32, Int16 and Char to have sizes of 4, 2 and 1 bytes to run properly, and they don't. Probably you can fix this by defining them correctly, and recompiling. Bye! %s: Deleting output file %s, if it exists. %s: WARNING: deletion of output file (apparently) failed. %s: WARNING: deletion of output file suppressed %s: since input file no longer exists. Output file %s: `%s' may be incomplete. %s: I suggest doing an integrity test (bzip2 -tv) of it. %s: WARNING: some files have not been processed: %s: %d specified on command line, %d not processed yet. %s: Control-C or similar caught, quitting. bzip2, a block-sorting file compressor. Version %s. Copyright (C) 1996-2010 by Julian Seward. This program is free software; you can redistribute it and/or modify it under the terms set out in the LICENSE file, which is included in the bzip2-1.0.6 source distribution. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details. bzip2, a block-sorting file compressor. Version %s. usage: %s [flags and input files in any order] -h --help print this message -d --decompress force decompression -z --compress force compression -k --keep keep (don't delete) input files -f --force overwrite existing output files -t --test test compressed file integrity -c --stdout output to standard out -q --quiet suppress noncritical error messages -v --verbose be verbose (a 2nd -v gives more) -L --license display software version & license -V --version display software version & license -s --small use less memory (at most 2500k) -1 .. -9 set block size to 100k .. 900k --fast alias for -1 --best alias for -9 If invoked as `bzip2', default action is to compress. as `bunzip2', default action is to decompress. as `bzcat', default action is to decompress to stdout. If no file names are given, bzip2 compresses or decompresses from standard input to standard output. You can combine short flags, so `-v -4' means the same as -v4 or -4v, &c. It is possible that the compressed file(s) have become corrupted. You can use the -tvv option to test integrity of such files. You can use the `bzip2recover' program to attempt to recover data from undamaged sections of corrupted files. Input file = %s, output file = %s %s: Caught a SIGSEGV or SIGBUS whilst compressing. Possible causes are (most likely first): (1) This computer has unreliable memory or cache hardware (a surprisingly common problem; try a different machine.) (2) A bug in the compiler used to create this executable (unlikely, if you didn't compile bzip2 yourself.) (3) A real bug in bzip2 -- I hope this should never be the case. The user's manual, Section 4.3, has more info on (1) and (2). If you suspect this is a bug in bzip2, or are unsure about (1) or (2), feel free to report it to me at: jseward@bzip.org. Section 4.3 of the user's manual describes the info a useful bug report should have. If the manual is available on your system, please try and read it before mailing me. If you don't have the manual or can't be bothered to read it, mail me anyway. %s: Caught a SIGSEGV or SIGBUS whilst decompressing. Possible causes are (most likely first): (1) The compressed data is corrupted, and bzip2's usual checks failed to detect this. Try bzip2 -tvv my_file.bz2. (2) This computer has unreliable memory or cache hardware (a surprisingly common problem; try a different machine.) (3) A bug in the compiler used to create this executable (unlikely, if you didn't compile bzip2 yourself.) (4) A real bug in bzip2 -- I hope this should never be the case. The user's manual, Section 4.3, has more info on (2) and (3). If you suspect this is a bug in bzip2, or are unsure about (2) or (3), feel free to report it to me at: jseward@bzip.org. Section 4.3 of the user's manual describes the info a useful bug report should have. If the manual is available on your system, please try and read it before mailing me. If you don't have the manual or can't be bothered to read it, mail me anyway. %s: couldn't allocate enough memory %s: PANIC -- internal consistency error: %s This is a BUG. Please report it to me at: jseward@bzip.org %s: I/O or other error, bailing out. Possible reason follows. %6.3f:1, %6.3f bits/byte, %5.2f%% saved, %s in, %s out. data integrity (CRC) error in data bad magic number (file not created by bzip2) trailing garbage after EOF ignored %s: Data integrity error when decompressing. %s: Compressed file ends unexpectedly; perhaps it is corrupted? *Possible* reason follows. %s: %s: trailing garbage after EOF ignored bzip2: file name `%s' is suspiciously (more than %d chars) long. Try using a reasonable file name instead. Sorry! :-) %s: Can't open input file %s: %s. %s: Input file %s is a directory. %s: Input file %s is not a normal file. %s: Can't guess original name for %s -- using %s %s: Output file %s already exists. %s: Input file %s has %d other link%s. %s: I won't read compressed data from a terminal. %s: For help, type: `%s --help'. %s: Can't open input file %s:%s. %s: Can't create output file %s: %s. %s: Input file %s already has %s suffix. %s: I won't write compressed data to a terminal. %s: %s is redundant in versions 0.9.5 and above %s: -c and -t cannot be used together. Q40/@D\IٲDzm[I< (A ABBD \BBB B(A0A8G 8A0A(B BBBD HcAH̥ FBB B(A0H8NP 8A0A(B BBBA DDeFEE E(H0H8G@n8A0A(B BBB@&& |   XP| | o0`  (~ P  oo oov o (|  0@P`p 0@P`p 0@P`pRRRRQRRRGA$3a1% GA$3p1113OGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOW*GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3a1%eP GA$3p1113OUPGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOW*GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign GA*FORTIFYP&OGA+GLIBCXX_ASSERTIONS GA*FORTIFYOEPGA+GLIBCXX_ASSERTIONSbzip2-1.0.6-28.el8_10.x86_64.debugT xn7zXZִF!t/G]?Eh=ڊ2Nl¸[5[S`4\΁ 8"J_j ZH2 4^q q`8ZЌкqg`=@pZS(CaoE׈{9}ZWͻɀBV9%3:cw%dHnpRQHM%8Н?W!X+弭Ei| l@ѳ.2)cN%ƳJP_M⑄rՔ㬛*\_ 2wDJBl8%+IjjlzJ~^-g 4-`>mrcDj+ W?37~S83 r_r忊? 3㯩h;@=*5ض^B3inb<f6[׶ԒfحKځCMFp*&o򩈍uhW"~=A)@R! L8H2 'NʴMf1@j)mTR TWeo P,_"&0@ܼTMÇfuG*[mt-d,kQcB~[ԁu\;O3V_7\YTiDx!J{PR^0 3Bd.ƽ㈫-%q)k!T<(ݍ;[Q/wSw+BL/MZx 4 Dר)*fMkÙzoFJ syWuW;fye> "AI#̚+id$G~){+|{e23:zH5wP׈,-=32{gdfopw=P VL%ʁ%0w|oݰ0 ^Q'9_|˱1C/o#quƤBqe[dRA1;_p,+{)&ڜUꖧ$'README000064400000016636152525774060005455 0ustar00 This is the README for bzip2/libzip2. This version is fully compatible with the previous public releases. ------------------------------------------------------------------ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. bzip2/libbzip2 version 1.0.6 of 6 September 2010 Copyright (C) 1996-2010 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in this file. This program is released under the terms of the license contained in the file LICENSE. ------------------------------------------------------------------ Complete documentation is available in Postscript form (manual.ps), PDF (manual.pdf) or html (manual.html). A plain-text version of the manual page is available as bzip2.txt. HOW TO BUILD -- UNIX Type 'make'. This builds the library libbz2.a and then the programs bzip2 and bzip2recover. Six self-tests are run. If the self-tests complete ok, carry on to installation: To install in /usr/local/bin, /usr/local/lib, /usr/local/man and /usr/local/include, type make install To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type make install PREFIX=/xxx/yyy If you are (justifiably) paranoid and want to see what 'make install' is going to do, you can first do make -n install or make -n install PREFIX=/xxx/yyy respectively. The -n instructs make to show the commands it would execute, but not actually execute them. HOW TO BUILD -- UNIX, shared library libbz2.so. Do 'make -f Makefile-libbz2_so'. This Makefile seems to work for Linux-ELF (RedHat 7.2 on an x86 box), with gcc. I make no claims that it works for any other platform, though I suspect it probably will work for most platforms employing both ELF and gcc. bzip2-shared, a client of the shared library, is also built, but not self-tested. So I suggest you also build using the normal Makefile, since that conducts a self-test. A second reason to prefer the version statically linked to the library is that, on x86 platforms, building shared objects makes a valuable register (%ebx) unavailable to gcc, resulting in a slowdown of 10%-20%, at least for bzip2. Important note for people upgrading .so's from 0.9.0/0.9.5 to version 1.0.X. All the functions in the library have been renamed, from (eg) bzCompress to BZ2_bzCompress, to avoid namespace pollution. Unfortunately this means that the libbz2.so created by Makefile-libbz2_so will not work with any program which used an older version of the library. I do encourage library clients to make the effort to upgrade to use version 1.0, since it is both faster and more robust than previous versions. HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc. It's difficult for me to support compilation on all these platforms. My approach is to collect binaries for these platforms, and put them on the master web site (http://www.bzip.org). Look there. However (FWIW), bzip2-1.0.X is very standard ANSI C and should compile unmodified with MS Visual C. If you have difficulties building, you might want to read README.COMPILATION.PROBLEMS. At least using MS Visual C++ 6, you can build from the unmodified sources by issuing, in a command shell: nmake -f makefile.msc (you may need to first run the MSVC-provided script VCVARS32.BAT so as to set up paths to the MSVC tools correctly). VALIDATION Correct operation, in the sense that a compressed file can always be decompressed to reproduce the original, is obviously of paramount importance. To validate bzip2, I used a modified version of Mark Nelson's churn program. Churn is an automated test driver which recursively traverses a directory structure, using bzip2 to compress and then decompress each file it encounters, and checking that the decompressed data is the same as the original. Please read and be aware of the following: WARNING: This program and library (attempts to) compress data by performing several non-trivial transformations on it. Unless you are 100% familiar with *all* the algorithms contained herein, and with the consequences of modifying them, you should NOT meddle with the compression or decompression machinery. Incorrect changes can and very likely *will* lead to disastrous loss of data. DISCLAIMER: I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED. Every compression of a file implies an assumption that the compressed file can be decompressed to reproduce the original. Great efforts in design, coding and testing have been made to ensure that this program works correctly. However, the complexity of the algorithms, and, in particular, the presence of various special cases in the code which occur with very low but non-zero probability make it impossible to rule out the possibility of bugs remaining in the program. DO NOT COMPRESS ANY DATA WITH THIS PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER SMALL, THAT THE DATA WILL NOT BE RECOVERABLE. That is not to say this program is inherently unreliable. Indeed, I very much hope the opposite is true. bzip2/libbzip2 has been carefully constructed and extensively tested. PATENTS: To the best of my knowledge, bzip2/libbzip2 does not use any patented algorithms. However, I do not have the resources to carry out a patent search. Therefore I cannot give any guarantee of the above statement. WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ? * Approx 10% faster compression, 30% faster decompression * -t (test mode) is a lot quicker * Can decompress concatenated compressed files * Programming interface, so programs can directly read/write .bz2 files * Less restrictive (BSD-style) licensing * Flag handling more compatible with GNU gzip * Much more documentation, i.e., a proper user manual * Hopefully, improved portability (at least of the library) WHAT'S NEW IN 0.9.5 ? * Compression speed is much less sensitive to the input data than in previous versions. Specifically, the very slow performance caused by repetitive data is fixed. * Many small improvements in file and flag handling. * A Y2K statement. WHAT'S NEW IN 1.0.0 ? See the CHANGES file. WHAT'S NEW IN 1.0.2 ? See the CHANGES file. WHAT'S NEW IN 1.0.3 ? See the CHANGES file. WHAT'S NEW IN 1.0.4 ? See the CHANGES file. WHAT'S NEW IN 1.0.5 ? See the CHANGES file. WHAT'S NEW IN 1.0.6 ? See the CHANGES file. I hope you find bzip2 useful. Feel free to contact me at jseward@bzip.org if you have any suggestions or queries. Many people mailed me with comments, suggestions and patches after the releases of bzip-0.15, bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this feedback. I thank you for your comments. bzip2's "home" is http://www.bzip.org/ Julian Seward jseward@bzip.org Cambridge, UK. 18 July 1996 (version 0.15) 25 August 1996 (version 0.21) 7 August 1997 (bzip2, version 0.1) 29 August 1997 (bzip2, version 0.1pl2) 23 August 1998 (bzip2, version 0.9.0) 8 June 1999 (bzip2, version 0.9.5) 4 Sept 1999 (bzip2, version 0.9.5d) 5 May 2000 (bzip2, version 1.0pre8) 30 December 2001 (bzip2, version 1.0.2pre1) 15 February 2005 (bzip2, version 1.0.3) 20 December 2006 (bzip2, version 1.0.4) 10 December 2007 (bzip2, version 1.0.5) 6 Sept 2010 (bzip2, version 1.0.6) CHANGES000064400000026231152525774060005560 0ustar00 ------------------------------------------------------------------ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. bzip2/libbzip2 version 1.0.6 of 6 September 2010 Copyright (C) 1996-2010 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. This program is released under the terms of the license contained in the file LICENSE. ------------------------------------------------------------------ 0.9.0 ~~~~~ First version. 0.9.0a ~~~~~~ Removed 'ranlib' from Makefile, since most modern Unix-es don't need it, or even know about it. 0.9.0b ~~~~~~ Fixed a problem with error reporting in bzip2.c. This does not effect the library in any way. Problem is: versions 0.9.0 and 0.9.0a (of the program proper) compress and decompress correctly, but give misleading error messages (internal panics) when an I/O error occurs, instead of reporting the problem correctly. This shouldn't give any data loss (as far as I can see), but is confusing. Made the inline declarations disappear for non-GCC compilers. 0.9.0c ~~~~~~ Fixed some problems in the library pertaining to some boundary cases. This makes the library behave more correctly in those situations. The fixes apply only to features (calls and parameters) not used by bzip2.c, so the non-fixedness of them in previous versions has no effect on reliability of bzip2.c. In bzlib.c: * made zero-length BZ_FLUSH work correctly in bzCompress(). * fixed bzWrite/bzRead to ignore zero-length requests. * fixed bzread to correctly handle read requests after EOF. * wrong parameter order in call to bzDecompressInit in bzBuffToBuffDecompress. Fixed. In compress.c: * changed setting of nGroups in sendMTFValues() so as to do a bit better on small files. This _does_ effect bzip2.c. 0.9.5a ~~~~~~ Major change: add a fallback sorting algorithm (blocksort.c) to give reasonable behaviour even for very repetitive inputs. Nuked --repetitive-best and --repetitive-fast since they are no longer useful. Minor changes: mostly a whole bunch of small changes/ bugfixes in the driver (bzip2.c). Changes pertaining to the user interface are: allow decompression of symlink'd files to stdout decompress/test files even without .bz2 extension give more accurate error messages for I/O errors when compressing/decompressing to stdout, don't catch control-C read flags from BZIP2 and BZIP environment variables decline to break hard links to a file unless forced with -f allow -c flag even with no filenames preserve file ownerships as far as possible make -s -1 give the expected block size (100k) add a flag -q --quiet to suppress nonessential warnings stop decoding flags after --, so files beginning in - can be handled resolved inconsistent naming: bzcat or bz2cat ? bzip2 --help now returns 0 Programming-level changes are: fixed syntax error in GET_LL4 for Borland C++ 5.02 let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC} fix overshoot of mode-string end in bzopen_or_bzdopen wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... } close file handles under all error conditions added minor mods so it compiles with DJGPP out of the box fixed Makefile so it doesn't give problems with BSD make fix uninitialised memory reads in dlltest.c 0.9.5b ~~~~~~ Open stdin/stdout in binary mode for DJGPP. 0.9.5c ~~~~~~ Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1. The + 1 version could cause the sorted order to be wrong in some extremely obscure cases. Also changed setting of quadrant in blocksort.c. 0.9.5d ~~~~~~ The only functional change is to make bzlibVersion() in the library return the correct string. This has no effect whatsoever on the functioning of the bzip2 program or library. Added a couple of casts so the library compiles without warnings at level 3 in MS Visual Studio 6.0. Included a Y2K statement in the file Y2K_INFO. All other changes are minor documentation changes. 1.0 ~~~ Several minor bugfixes and enhancements: * Large file support. The library uses 64-bit counters to count the volume of data passing through it. bzip2.c is now compiled with -D_FILE_OFFSET_BITS=64 to get large file support from the C library. -v correctly prints out file sizes greater than 4 gigabytes. All these changes have been made without assuming a 64-bit platform or a C compiler which supports 64-bit ints, so, except for the C library aspect, they are fully portable. * Decompression robustness. The library/program should be robust to any corruption of compressed data, detecting and handling _all_ corruption, instead of merely relying on the CRCs. What this means is that the program should never crash, given corrupted data, and the library should always return BZ_DATA_ERROR. * Fixed an obscure race-condition bug only ever observed on Solaris, in which, if you were very unlucky and issued control-C at exactly the wrong time, both input and output files would be deleted. * Don't run out of file handles on test/decompression when large numbers of files have invalid magic numbers. * Avoid library namespace pollution. Prefix all exported symbols with BZ2_. * Minor sorting enhancements from my DCC2000 paper. * Advance the version number to 1.0, so as to counteract the (false-in-this-case) impression some people have that programs with version numbers less than 1.0 are in some way, experimental, pre-release versions. * Create an initial Makefile-libbz2_so to build a shared library. Yes, I know I should really use libtool et al ... * Make the program exit with 2 instead of 0 when decompression fails due to a bad magic number (ie, an invalid bzip2 header). Also exit with 1 (as the manual claims :-) whenever a diagnostic message would have been printed AND the corresponding operation is aborted, for example bzip2: Output file xx already exists. When a diagnostic message is printed but the operation is not aborted, for example bzip2: Can't guess original name for wurble -- using wurble.out then the exit value 0 is returned, unless some other problem is also detected. I think it corresponds more closely to what the manual claims now. 1.0.1 ~~~~~ * Modified dlltest.c so it uses the new BZ2_ naming scheme. * Modified makefile-msc to fix minor build probs on Win2k. * Updated README.COMPILATION.PROBLEMS. There are no functionality changes or bug fixes relative to version 1.0.0. This is just a documentation update + a fix for minor Win32 build problems. For almost everyone, upgrading from 1.0.0 to 1.0.1 is utterly pointless. Don't bother. 1.0.2 ~~~~~ A bug fix release, addressing various minor issues which have appeared in the 18 or so months since 1.0.1 was released. Most of the fixes are to do with file-handling or documentation bugs. To the best of my knowledge, there have been no data-loss-causing bugs reported in the compression/decompression engine of 1.0.0 or 1.0.1. Note that this release does not improve the rather crude build system for Unix platforms. The general plan here is to autoconfiscate/ libtoolise 1.0.2 soon after release, and release the result as 1.1.0 or perhaps 1.2.0. That, however, is still just a plan at this point. Here are the changes in 1.0.2. Bug-reporters and/or patch-senders in parentheses. * Fix an infinite segfault loop in 1.0.1 when a directory is encountered in -f (force) mode. (Trond Eivind Glomsrod, Nicholas Nethercote, Volker Schmidt) * Avoid double fclose() of output file on certain I/O error paths. (Solar Designer) * Don't fail with internal error 1007 when fed a long stream (> 48MB) of byte 251. Also print useful message suggesting that 1007s may be caused by bad memory. (noticed by Juan Pedro Vallejo, fixed by me) * Fix uninitialised variable silly bug in demo prog dlltest.c. (Jorj Bauer) * Remove 512-MB limitation on recovered file size for bzip2recover on selected platforms which support 64-bit ints. At the moment all GCC supported platforms, and Win32. (me, Alson van der Meulen) * Hard-code header byte values, to give correct operation on platforms using EBCDIC as their native character set (IBM's OS/390). (Leland Lucius) * Copy file access times correctly. (Marty Leisner) * Add distclean and check targets to Makefile. (Michael Carmack) * Parameterise use of ar and ranlib in Makefile. Also add $(LDFLAGS). (Rich Ireland, Bo Thorsen) * Pass -p (create parent dirs as needed) to mkdir during make install. (Jeremy Fusco) * Dereference symlinks when copying file permissions in -f mode. (Volker Schmidt) * Majorly simplify implementation of uInt64_qrm10. (Bo Lindbergh) * Check the input file still exists before deleting the output one, when aborting in cleanUpAndFail(). (Joerg Prante, Robert Linden, Matthias Krings) Also a bunch of patches courtesy of Philippe Troin, the Debian maintainer of bzip2: * Wrapper scripts (with manpages): bzdiff, bzgrep, bzmore. * Spelling changes and minor enhancements in bzip2.1. * Avoid race condition between creating the output file and setting its interim permissions safely, by using fopen_output_safely(). No changes to bzip2recover since there is no issue with file permissions there. * do not print senseless report with -v when compressing an empty file. * bzcat -f works on non-bzip2 files. * do not try to escape shell meta-characters on unix (the shell takes care of these). * added --fast and --best aliases for -1 -9 for gzip compatibility. 1.0.3 (15 Feb 05) ~~~~~~~~~~~~~~~~~ Fixes some minor bugs since the last version, 1.0.2. * Further robustification against corrupted compressed data. There are currently no known bitstreams which can cause the decompressor to crash, loop or access memory which does not belong to it. If you are using bzip2 or the library to decompress bitstreams from untrusted sources, an upgrade to 1.0.3 is recommended. This fixes CAN-2005-1260. * The documentation has been converted to XML, from which html and pdf can be derived. * Various minor bugs in the documentation have been fixed. * Fixes for various compilation warnings with newer versions of gcc, and on 64-bit platforms. * The BZ_NO_STDIO cpp symbol was not properly observed in 1.0.2. This has been fixed. 1.0.4 (20 Dec 06) ~~~~~~~~~~~~~~~~~ Fixes some minor bugs since the last version, 1.0.3. * Fix file permissions race problem (CAN-2005-0953). * Avoid possible segfault in BZ2_bzclose. From Coverity's NetBSD scan. * 'const'/prototype cleanups in the C code. * Change default install location to /usr/local, and handle multiple 'make install's without error. * Sanitise file names more carefully in bzgrep. Fixes CAN-2005-0758 to the extent that applies to bzgrep. * Use 'mktemp' rather than 'tempfile' in bzdiff. * Tighten up a couple of assertions in blocksort.c following automated analysis. * Fix minor doc/comment bugs. 1.0.5 (10 Dec 07) ~~~~~~~~~~~~~~~~~ Security fix only. Fixes CERT-FI 20469 as it applies to bzip2. 1.0.6 (6 Sept 10) ~~~~~~~~~~~~~~~~~ * Security fix for CVE-2010-0405. This was reported by Mikolaj Izdebski. * Make the documentation build on Ubuntu 10.04 LICENSE000064400000003555152525774060005576 0ustar00 -------------------------------------------------------------------------- This program, "bzip2", the associated library "libbzip2", and all documentation, are copyright (C) 1996-2010 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, jseward@bzip.org bzip2/libbzip2 version 1.0.6 of 6 September 2010 --------------------------------------------------------------------------