From 5ac57192e819138a43c817a29e2d567553ee7c54 Mon Sep 17 00:00:00 2001 From: Oskar Liljeblad Date: Tue, 13 Dec 2005 14:20:31 +0100 Subject: [PATCH] atool-0.32.0.tar.gz --- Makefile.in | 2 +- NEWS | 15 ++++++++++++++- TODO | 2 ++ atool.1.in | 5 +++++ atool.in | 36 ++++++++++++++++++++++++++++++------ configure | 18 +++++++++--------- configure.ac | 2 +- debian/changelog | 6 ++++++ 8 files changed, 68 insertions(+), 18 deletions(-) diff --git a/Makefile.in b/Makefile.in index d6c5fd5..e81f102 100644 --- a/Makefile.in +++ b/Makefile.in @@ -92,4 +92,4 @@ debian: cd $(srcdir) && dpkg-buildpackage -rfakeroot -us -uc -sd -b rpm: atool.spec - rpm -bb --clean atool.spec + rpmbuild -bb --clean atool.spec diff --git a/NEWS b/NEWS index 452c607..c96abc1 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,15 @@ +2005-12-13: atool 0.32.0 released. + Fixed bug in repack mode: Could not repack a compressed file into an + archive, but could (incorrectly) repack an archive to a compressed file + (reported by Meino Christian Cramer). + Print ellipsis properly in output ("...", not "..") (patch from Ed Avis). + Added support for Microsoft Cabinet archives. + Ignore waitpid errors on win32 (patch from Ed Avis). + +2005-08-08: web page updated. + Fixed some typos in the web page and NEWS file (will be updated for next + release). + 2005-08-08: atool 0.31.0 released. ATTENTION: This release fixes a serious bug which might cause files and directories to be removed in some circumstances when using adiff. I @@ -10,7 +22,7 @@ compared. This means that if you ran adiff on an archive containing a symbolic link that pointed to, say, /foo, /foo would be removed recursively! This was due to a missing check for symbolic links. This bug - was found by code audition, and has been fixed in this release. + was found by code auditing, and has been fixed in this release. Added arepack command (also -r, --repack) (previously incomplete and disabled, also suggested by Meino Christian Cramer). Added support for 7-Zip'ed TAR archives (.tar.7z) (suggested by Meino @@ -23,6 +35,7 @@ Mørch). Added support for extracting control files from Debian packages as well (patch from Peter Valdemar Mørch, thanks). + Fixed some manual page typos. 2005-07-25: atool 0.30.0 released. Added support for 7-Zip archives (.7z) using p7zip (suggested by Meino diff --git a/TODO b/TODO index c43cbfd..4419718 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,5 @@ +arepack should print how many bytes were saved for each archive, and in total (Meino Christian Cramer). + add AUTHORS file improve messages printed from arepack. --- diff --git a/atool.1.in b/atool.1.in index 71e14ea..7c89f84 100644 --- a/atool.1.in +++ b/atool.1.in @@ -271,6 +271,9 @@ Extract and list commands are supported. .RI \fBdeb\fP " " ( .deb ) Extract and list commands are supported. .TP +.RI \fBcab\fP " " ( .cab ) +Cat, extract, and list commands are supported. +.TP .RI \fBgzip\fP " " ( .gz ) Cat, extract, and add commands are supported. .TP @@ -430,6 +433,8 @@ of this number by using something else than `%d' - see printf(3). .TP .B path_unrar \fR(default: unrar)\fR .TP +.B path_cabextract \fR(default: cabextract)\fR +.TP .B path_7z \fR(default: 7z)\fR .TP .B path_unalz \fR(default: unalz)\fR diff --git a/atool.in b/atool.in index 5e90c0c..c954916 100644 --- a/atool.in +++ b/atool.in @@ -72,6 +72,7 @@ $::cfg_path_arc = 'arc'; # arc program $::cfg_path_arj = 'arj'; # arj program $::cfg_path_bzip = 'bzip'; # bzip program $::cfg_path_bzip2 = 'bzip2'; # bzip2 program +$::cfg_path_cabextract = 'cabextract'; # cabextract program $::cfg_path_cat = 'cat'; # cat program $::cfg_path_compress = 'compress'; # compress program $::cfg_path_cpio = 'cpio'; # cpio program @@ -274,7 +275,7 @@ elsif ($mode eq 'repack') { my $fmt2 = findformat($::opt_format, 1); for (my $c = 0; $c < @ARGV; $c++) { my $fmt1 = findformat($ARGV[$c], 0); - if (issingleformat($fmt1) && !issingleformat($fmt2)) { + if (!issingleformat($fmt1) && issingleformat($fmt2)) { warn "$::basename: format $fmt1 is cannot be repacked into format $fmt2\n"; warn "skipping ", quote($ARGV[$c]), "\n"; next; @@ -301,7 +302,7 @@ elsif ($mode eq 'repack') { my $fmt1 = findformat($ARGV[0], 0); my $fmt2 = findformat($ARGV[1], 0); die "$::basename: format $fmt1 is cannot be repacked into format $fmt1\n" - if (issingleformat($fmt1) && !issingleformat($fmt2)); + if (!issingleformat($fmt1) && issingleformat($fmt2)); die "$::basename: will not repack to same archive type\n" if $fmt1 eq $fmt2; repack_archive($ARGV[0], $ARGV[1], $fmt1, $fmt2); } @@ -492,6 +493,23 @@ sub runcmds($$$;@) { push @cmd, $archive, @args; return multiarchivecmd($archive, $outdir, $mode, 1, 0, \@args, @cmd); } + elsif ($format eq 'cab') { + return undef if ($mode eq 'extract' && !defined ($outdir = makeoutdir())); + if ($mode eq 'add') { + warn "$::basename: ".quote($archive).": $mode command not supported for $format archives\n"; + return undef; + } + push @cmd, $::cfg_path_cabextract; + push @cmd, '--single'; + push @cmd, '--directory', $outdir if $mode eq 'extract'; + push @cmd, '--directory', $::opt_cmd_extract_to if $mode eq 'extract-to'; + push @cmd, '--pipe' if $mode eq 'cat'; + push @cmd, '--list' if $mode eq 'list'; + push @cmd, $archive; + push @cmd, '--filter'; + push @cmd, @args; + return multiarchivecmd($archive, $outdir, $mode, 0, 0, \@args, @cmd); + } elsif ($format eq 'alzip') { if ($mode eq 'cat' || $mode eq 'add' || $mode eq 'list') { warn "$::basename: ".quote($archive).": $mode command not supported for $format archives\n"; @@ -893,11 +911,11 @@ sub cmdexec($@) { # Make a command specification when printing errors. sub makespec(@) { my (@cmd) = @_; - my $spec = $cmd[0].' ..'; + my $spec = $cmd[0].' ...'; my $lastref = 0; foreach (@cmd, '') { if ($lastref) { - $spec .= " | $_ .."; + $spec .= " | $_ ..."; $lastref = 0; } $lastref = 1 if (ref); @@ -1136,6 +1154,7 @@ sub stripext($) { return $file if ($file =~ s/\.rpm$//); return $file if ($file =~ s/\.deb$//); return $file if ($file =~ s/\.cpio$//); + return $file if ($file =~ s/\.cab$//); return $file if ($::cfg_strip_unknown_ext && $file =~ s/\.[^.]+$//); return $file; } @@ -1168,6 +1187,7 @@ sub formatext($) { return '.rpm' if $format eq 'rpm'; return '.deb' if $format eq 'deb'; return '.cpio' if $format eq 'cpio'; + return '.cab' if $format eq 'cab'; die "$::basename: ".quote($format).": don't know file extension for format\n"; } @@ -1212,6 +1232,8 @@ sub findformat($$) { ['cpio', qr/^cpio archive$/], ['cpio', qr/^ASCII cpio archive /], ['rpm', qr/^RPM v/], + ['cab', qr/^Microsoft Cabinet archive data\W/], + ['cab', qr/^PE executable for MS Windows /], ['deb', qr/^Debian binary package(\W|$)/], ['bzip2', qr/ \(bzip2 compressed data(\W|$)/], ['bzip', qr/ \(bzip compressed data(\W|$)/], @@ -1242,6 +1264,7 @@ sub findformat($$) { ['gzip', qr/\.gz$/], ['jar', qr/\.(jar|war)$/], ['lha', qr/\.(lha|lzh)$/], + ['cab', qr/\.cab$/], ['lzop', qr/\.lzo$/], ['rar', qr/\.rar$/], ['rpm', qr/\.rpm$/], @@ -1340,7 +1363,7 @@ sub backticks(@) { close OUT; my $text = join('', ); close IN; - if (waitpid($child,0) != $child) { + if (waitpid($child,0) != $child && $^O ne 'MSWin32') { $::errmsg = "waitpid failed - $!"; return; } @@ -1367,6 +1390,7 @@ sub readconfig($$) { 'path_arj' => \$::cfg_path_arj, 'path_bzip' => \$::cfg_path_bzip, 'path_bzip2' => \$::cfg_path_bzip2, + 'path_cabextract' => \$::cfg_path_cabextract, 'path_cat' => \$::cfg_path_cat, 'path_compress' => \$::cfg_path_compress, 'path_cpio' => \$::cfg_path_cpio, @@ -1594,7 +1618,7 @@ sub shell_execute(@) { } foreach (@children) { - if (waitpid($_,0) < 0) { + if (waitpid($_,0) < 0 && $^O ne 'MSWin32') { $::errmsg = "waitpid failed - $!"; return 0; } diff --git a/configure b/configure index 7ade621..f9d9332 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for atool 0.31.0. +# Generated by GNU Autoconf 2.59 for atool 0.32.0. # # Report bugs to . # @@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='atool' PACKAGE_TARNAME='atool' -PACKAGE_VERSION='0.31.0' -PACKAGE_STRING='atool 0.31.0' +PACKAGE_VERSION='0.32.0' +PACKAGE_STRING='atool 0.32.0' PACKAGE_BUGREPORT='oskar@osk.mine.nu' ac_unique_file="atool.in" @@ -723,7 +723,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures atool 0.31.0 to adapt to many kinds of systems. +\`configure' configures atool 0.32.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -780,7 +780,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of atool 0.31.0:";; + short | recursive ) echo "Configuration of atool 0.32.0:";; esac cat <<\_ACEOF @@ -880,7 +880,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -atool configure 0.31.0 +atool configure 0.32.0 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -894,7 +894,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by atool $as_me 0.31.0, which was +It was created by atool $as_me 0.32.0, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1682,7 +1682,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by atool $as_me 0.31.0, which was +This file was extended by atool $as_me 0.32.0, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -1740,7 +1740,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -atool config.status 0.31.0 +atool config.status 0.32.0 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index e3a66c1..ca02445 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT(atool, 0.31.0, oskar@osk.mine.nu) +AC_INIT(atool, 0.32.0, oskar@osk.mine.nu) AC_PATH_PROGS(PERL, perl perl5) AC_CONFIG_SRCDIR(atool.in) AC_CONFIG_FILES([atool atool.1 atool.spec Makefile], [chmod a+x atool]) diff --git a/debian/changelog b/debian/changelog index 8f4514f..fa3a420 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +atool (0.32.0-1) unstable; urgency=low + + * New upstream release. + + -- Oskar Liljeblad Tue, 13 Dec 2005 14:01:22 +0100 + atool (0.31.0-1) unstable; urgency=low * New upstream release. -- 2.11.4.GIT