1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297
|
2026-01-03 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.29 released.
* New option '--numeric-owner'.
* common_decode.cc (read_t_list): Quit early if NUL bytes in list.
* extended.cc (Extended::parse): Ignore keyword 'ctime'.
* lzip_index.cc (skip_box): New function.
* main.cc (parse_mtime): Fix checking of errors in mktime.
(Thanks to Michael Shigorin).
(getnum): Accept underscore separators ('_').
(set_archive_name): Reject archive name with control characters.
* tarlz.h: Limit max_edata_size to 1 GiB.
* tarlz.texi: Add 'Table of SI and binary prefixes'.
* check.sh: Skip symbolic link archiving test on Cygwin.
(Reported by Sonia Diaz).
2025-06-24 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.28.1 released.
* decode.h: #include <sys/types.h>. (Reported by lid gnulinux).
2025-06-20 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.28 released.
* New option '-T, --files-from'.
* New options '-R, --no-recursive' and '--recursive'.
* New options '--depth', '--mount', '--xdev', and '--parallel'.
* New operation '--time-bits'.
* Assign short option name '-?' to '--help'.
* archive_reader.cc (Archive_reader::read): Detect empty archive.
2025-03-04 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.27.1 released.
* common_mutex.h: #include <pthread.h>. (Reported by Michal Grny).
2025-02-28 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.27 released.
* common_decode.cc (format_member_name): If date is out of range,
print seconds since epoch. Use at least 4 digits to print years.
Print typeflag after the member name if unknown file type.
(make_dirs): stat last dir before trying to create directories.
* decode.cc (skip_warn): Diagnose a corrupt tar header.
* extended.cc (Extended::parse): Diagnose a CRC mismatch.
New argument 'msg_vecp' for multithreaded diagnostics.
* Many small fixes and improvements to the code and the manual.
* tarlz.texi: New chapter 'Creating backups safely'.
(Suggested by Aren Tyr).
* check.sh: Require lzip. Create .tar files from .tar.lz files.
Limit '--mtime' test to safe dates. (Reported by Aren Tyr).
* testsuite: Add 5 new test files.
2024-12-07 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.26 released.
* decode.cc (decode), delete.cc (delete_members):
Return 2 if any empty lzip member is found in a multimember archive.
* create_lz.cc, decode_lz.cc:
Change 'deliver_packet' to 'deliver_packets'.
* create.cc (copy_file): Show file name if read error.
* tarlz.texi: New chapter 'Syntax of command-line arguments'.
* check.sh: Use 'cp' instead of 'cat'.
Skip time stamps out of range or not recognized by system tools.
(Reported by J Dean).
2024-01-03 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.25 released.
* New option '--ignore-metadata'.
* create.cc, decode.cc, decode_lz.cc:
'#include <sys/types.h>' for major, minor, makedev on BSD systems.
* compress.cc: Reformat file diagnostics as 'PROGRAM: FILE: MESSAGE'.
(compress_archive): Create missing intermediate directories.
* configure, Makefile.in: New variable 'MAKEINFO'.
2023-09-20 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.24 released.
* decode.cc (decode), common_decode.cc (check_skip_filename):
Make option '-C' position-dependent also for diff and extract.
(Reported by Devon Sean McCullough).
* create.cc (encode): Deduct '--uncompressed' from archive name ext.
* compress.cc (show_atpos_error): New function showing errno msg.
(compress_archive): Exit with error status 2 if archive is empty.
* Limit the size of a header set (extended+ustar) to INT_MAX.
* check.sh: Fix '--diff' test on OS/2 again. (Reported by Elbert Pol).
2022-09-23 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.23 released.
* Create and decode the extended records 'atime' and 'mtime'.
* Create and decode the extended records 'uid' and 'gid'.
* New option '--ignore-overflow'.
* Refuse to read/write archive data from/to a terminal.
(Reported by DustDFG).
* main.cc (parse_mtime): Make time of day 'HH:MM:SS' optional.
Accept both space and 'T' as separator between date and time.
(show_option_error): New function showing argument and option name.
* decode.cc (extract_member): Diagnose intermediate directory failure.
Failure to extract a member is no longer fatal.
* decode_lz.cc: Make diagnostics identical to serial decoder.
* common_decode.cc (format_member_name): Improve column alignment.
* create.cc (fill_headers): Improve diagnostic when stat reports a
wrong st_size for a symbolic link. (Reported by Jason Lenz).
Change diagnostic "File is the archive" to "Archive can't contain
itself" following a similar change made by Paul Eggert to GNU tar.
* Don't show "Removing leading '/' from member names." if excluded.
* tarlz.texi: Change GNU Texinfo category from 'Data Compression'
to 'Archiving' to match that of GNU tar.
Use 'end-of-archive' (EOA) instead of 'end-of-file' (EOF).
* main.cc (show_help), tarlz.texi: List operations before options.
* Many small improvements have been made to code and documentation.
2022-01-05 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.22 released.
* main.cc (getnum): Show option name and valid range if error.
(check_lib): Check that LZ_API_VERSION and LZ_version_string match.
(main): Report an error if -o is used with any operation except -z.
* configure: Set variable LIBS.
2021-06-14 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.21 released.
* Lzlib 1.12 or newer is now required.
* decode.cc (decode): Skip members without name except when listing.
decode_lz.cc (dworker): Likewise. (Reported by Florian Schmaus).
* New operation '-z, --compress'.
* New options '-o, --output' and '--warn-newer'.
* tarlz.texi (Invoking tarlz): Document concatenation to stdout.
* check.sh: Fix the '--diff' test on OS/2. (Reported by Elbert Pol).
2021-01-08 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.19 released.
* extended.cc: Print a diagnostic for each unknown keyword found.
* tarlz.h: Add a missing '#include <sys/types.h>' for 'mode_t'.
2020-11-21 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.18 released.
* New operation '--check-lib'.
* Implement multithreaded '-x, --extract'.
* Don't #include <sys/sysmacros.h> when compiling on OS2.
* delete.cc, delete_lz.cc: Use Archive_reader.
* extract.cc: Rename to decode.cc.
* tarlz.texi: New section 'Limitations of multithreaded extraction'.
2020-07-30 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.17 released.
* New options '--mtime' and '-p, --preserve-permissions'.
* Implement multithreaded '-d, --diff'.
* list_lz.cc: Rename to decode_lz.cc.
(decode_lz): Limit num_workers to number of members.
* main.cc (main): Report an error if a file name is empty or if the
archive is specified more than once.
* lzip_index.cc: Improve messages for corruption in last header.
* Don't #include <sys/sysmacros.h> when compiling on BSD.
* tarlz.texi: New chapter 'Internal structure of tarlz'.
2019-10-08 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.16 released.
* extract.cc (extract_member): Fix call order of chown, chmod.
* delete_lz.cc (delete_members_lz): Return 2 if collective member.
* main.cc: Set a valid invocation_name even if argc == 0.
* #include <sys/sysmacros.h> unconditionally.
* tarlz.texi: New chapter 'Portable character set'.
2019-04-11 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.15 released.
* New operation '--delete' (from uncompressed or --no-solid archive).
* list_lz.cc: Fix MT listing of archives with format violations.
2019-03-12 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.14 released.
* New options '--exclude' and '-h, --dereference'.
* Short option name '-h' no longer means '--help'.
* create.cc: Implement '-A, --concatenate' and '-r, --append' to
uncompressed archives and to standard output.
* main.cc: Port option '--out-slots' from plzip.
2019-02-27 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.13 released.
* create_lz.cc (cworker): Fix skipping of unreadable files.
* list_lz.cc: Fix listing of archives containing empty lzip members.
* create.cc (fill_headers): Store negative mtime as cero.
2019-02-22 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.12 released.
* create.cc (fill_headers): Fix use of st_rdev instead of st_dev.
* Save just numerical uid/gid if user or group not in database.
* extract.cc (format_member_name): Print devmajor and devminor.
* New operation '-d, --diff'.
* New option '--ignore-ids'.
* extract.cc: Fast '-t, --list' on seekable uncompressed archives.
2019-02-13 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.11 released.
* extract.cc (archive_read): Fix endless loop with empty lz file.
* Implement multithreaded '-c, --create' and '-r, --append'.
* '--bsolid' is now the default compression granularity.
* create.cc (remove_leading_dotslash): Remember more than one prefix.
* tarlz.texi: New chapter 'Minimum archive sizes'.
2019-01-31 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.10 released.
* New options '--bsolid' and '-B, --data-size'.
* create.cc: Set ustar name to zero if extended header is used.
2019-01-22 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.9 released.
* Implement multithreaded '-t, --list'.
* New option '-n, --threads'.
* Recognize global pax headers. Ignore them for now.
* strtoul has been replaced with length-safe parsers.
* tarlz.texi: New chapter 'Limitations of parallel tar decoding'.
2018-12-16 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.8 released.
* New option '--anonymous' (--owner=root --group=root).
* extract.cc (decode): 'tarlz -xf foo ./bar' now extracts 'bar'.
* create.cc: Set to zero most fields in extended headers.
* tarlz.texi: New chapter 'Amendments to pax format'.
2018-11-23 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.7 released.
* New options '--keep-damaged' and '--no-solid'.
* create.cc (archive_write): Minimize dictionary size.
Detect and skip archive in '-A', '-c', and '-r'.
* main.cc (show_version): Show the version of lzlib being used.
2018-10-19 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.6 released.
* New operation '-A, --concatenate'.
* Replace option '--ignore-crc' with '--missing-crc'.
* create.cc (add_member): Check that uid, gid, mtime, devmajor,
and devminor are in ustar range.
* configure: Accept appending to CXXFLAGS; 'CXXFLAGS+=OPTIONS'.
* Makefile.in: Use tarlz in target 'dist'.
2018-09-29 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.5 released.
* Implement simplified POSIX pax format.
* Implement CRC32-C (Castagnoli) of the extended header data.
* New option '--ignore-crc'.
* Add missing #includes for major, minor and makedev.
* tarlz.texi: Document the new archive format.
2018-04-23 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.4 released.
* Add some missing #includes.
* main.cc (main): Open files in binary mode on OS2.
2018-03-19 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.3 released.
* Rename project to 'tarlz' from 'pmtar' (Poor Man's Tar).
* New operation '-r, --append'.
* New options '-C, --directory', '--owner', and '--group'.
* New options '--asolid', '--dsolid', and '--solid'.
* Implement lzip compression of members at archive creation.
* Implement file appending to compressed archive.
* Implement transparent decompression of the archive.
* Implement skipping over damaged (un)compressed members.
* Implement recursive extraction/listing of directories.
* Implement verbose extract/list output.
* tarlz.texi: New file.
2014-01-22 Antonio Diaz Diaz <antonio@gnu.org>
* Version 0.2 released.
* configure: Options now accept a separate argument.
2013-02-16 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 0.1 released.
Copyright (C) 2013-2026 Antonio Diaz Diaz.
This file is a collection of facts, and thus it is not copyrightable, but just
in case, you have unlimited permission to copy, distribute, and modify it.
|