From 011a59f5a54864108a16af570a6b287410597cc2 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sun, 27 Feb 2011 10:55:47 -0700 Subject: [PATCH] Imported Upstream version 3.2.1 --- ChangeLog | 250 ++++++++++++++ FULL_VERSION | 2 +- Makefile.in | 1 - NEWS | 19 +- ReleaseNotes | 18 + VERSION | 2 +- amandad-src/Makefile.in | 1 - amar-src/Makefile.in | 1 - amplot/Makefile.in | 1 - application-src/Makefile.in | 1 - application-src/ampgsql.pl | 19 +- changer-src/Makefile.in | 1 - client-src/Makefile.in | 1 - client-src/client_util.c | 10 +- common-src/Makefile.in | 1 - common-src/amxml.c | 6 +- common-src/conffile.c | 48 ++- common-src/fileheader.c | 2 +- common-src/glib-util.c | 22 +- common-src/glib-util.h | 13 +- common-src/svn-info.h | 2 +- common-src/util.c | 167 ++++++--- common-src/util.h | 48 ++- config/Makefile.in | 1 - config/amanda/libs.m4 | 32 +- config/amanda/readline.m4 | 184 +++++++--- config/config.h.in | 9 +- configure | 477 ++++++++++++-------------- device-src/Makefile.am | 2 + device-src/Makefile.in | 7 +- device-src/amdevcheck.pl | 2 +- device-src/tape-device.c | 8 + device-src/xfer-dest-taper-cacher.c | 45 ++- device-src/xfer-dest-taper-splitter.c | 22 +- example/Makefile.in | 1 - gnulib/Makefile.in | 1 - installcheck/Amanda_Changer_disk.pl | 8 +- installcheck/Amanda_Changer_rait.pl | 12 +- installcheck/Amanda_Config.pl | 14 +- installcheck/Amanda_Tapelist.pl | 34 +- installcheck/Makefile.in | 1 - installcheck/amlabel.pl | 1 + installcheck/amreport.pl | 2 +- installcheck/catalogs/bigestimate.cat | 2 +- man/Makefile.in | 1 - man/amaddclient.8 | 6 +- man/amadmin.8 | 8 +- man/amaespipe.8 | 6 +- man/amanda-applications.7 | 6 +- man/amanda-archive-format.5 | 6 +- man/amanda-auth.7 | 6 +- man/amanda-changers.7 | 6 +- man/amanda-client.conf.5 | 6 +- man/amanda-compatibility.7 | 6 +- man/amanda-devices.7 | 6 +- man/amanda-match.7 | 6 +- man/amanda-scripts.7 | 6 +- man/amanda-taperscan.7 | 6 +- man/amanda.8 | 6 +- man/amanda.conf.5 | 12 +- man/amarchiver.8 | 6 +- man/amcheck.8 | 8 +- man/amcheckdb.8 | 6 +- man/amcheckdump.8 | 8 +- man/amcleanup.8 | 6 +- man/amcrypt-ossl-asym.8 | 6 +- man/amcrypt-ossl.8 | 6 +- man/amcrypt.8 | 6 +- man/amcryptsimple.8 | 6 +- man/amdevcheck.8 | 8 +- man/amdump.8 | 8 +- man/amfetchdump.8 | 8 +- man/amflush.8 | 8 +- man/amgetconf.8 | 8 +- man/amgpgcrypt.8 | 6 +- man/amgtar.8 | 6 +- man/amlabel.8 | 8 +- man/amoverview.8 | 8 +- man/ampgsql.8 | 6 +- man/amplot.8 | 6 +- man/amraw.8 | 6 +- man/amrecover.8 | 8 +- man/amreport.8 | 8 +- man/amrestore.8 | 6 +- man/amrmtape.8 | 6 +- man/amsamba.8 | 6 +- man/amserverconfig.8 | 6 +- man/amservice.8 | 8 +- man/amstar.8 | 6 +- man/amstatus.8 | 8 +- man/amsuntar.8 | 6 +- man/amtape.8 | 8 +- man/amtapetype.8 | 6 +- man/amtoc.8 | 6 +- man/amvault.8 | 6 +- man/amzfs-sendrecv.8 | 6 +- man/amzfs-snapshot.8 | 6 +- man/disklist.5 | 6 +- man/script-email.8 | 6 +- man/tapelist.5 | 10 +- man/xml-source/amadmin.8.xml | 2 +- man/xml-source/amanda.conf.5.xml | 9 + man/xml-source/amcheck.8.xml | 2 +- man/xml-source/amcheckdump.8.xml | 2 +- man/xml-source/amdevcheck.8.xml | 8 +- man/xml-source/amdump.8.xml | 4 +- man/xml-source/amfetchdump.8.xml | 2 +- man/xml-source/amflush.8.xml | 2 +- man/xml-source/amgetconf.8.xml | 2 +- man/xml-source/amlabel.8.xml | 6 +- man/xml-source/amoverview.8.xml | 2 +- man/xml-source/amrecover.8.xml | 4 +- man/xml-source/amreport.8.xml | 2 +- man/xml-source/amservice.8.xml | 4 +- man/xml-source/amstatus.8.xml | 4 +- man/xml-source/amtape.8.xml | 2 +- man/xml-source/tapelist.5.xml | 3 +- man/xslt/html.xsl.in | 5 + ndmp-src/Makefile.in | 1 - oldrecover-src/Makefile.in | 1 - packaging/Makefile.in | 1 - packaging/deb/rules | 1 + packaging/rpm/amanda.spec.src | 50 ++- perl/Amanda/Changer.pm | 4 + perl/Amanda/Changer/disk.pm | 3 +- perl/Amanda/Changer/robot.pm | 4 +- perl/Amanda/Report.pm | 5 +- perl/Amanda/Report/human.pm | 43 ++- perl/Amanda/Tapelist.pm | 12 +- perl/Amanda/Tapelist.swg | 12 +- perl/Amanda/Taper/Scribe.pm | 7 +- perl/Amanda/Taper/Worker.pm | 7 + perl/Makefile.in | 1 - perl/amglue/Makefile.in | 1 - po/Makefile.in | 1 - recover-src/Makefile.in | 1 - recover-src/extract_list.c | 28 +- server-src/Makefile.in | 1 - server-src/amadmin.c | 44 ++- server-src/amcheck-device.pl | 12 +- server-src/amcheckdump.pl | 2 +- server-src/amdump.pl | 13 +- server-src/amflush.c | 12 +- server-src/amidxtaped.pl | 14 +- server-src/amlabel.pl | 5 +- server-src/amoverview.pl | 14 +- server-src/amreport.pl | 5 +- server-src/amstatus.pl | 6 +- server-src/amtape.pl | 6 +- server-src/amvault.pl | 16 +- server-src/chunker.c | 22 +- server-src/cmdline.c | 2 +- server-src/cmdline.h | 2 +- server-src/driver.c | 62 ++-- server-src/driverio.c | 2 +- server-src/dumper.c | 59 +++- server-src/find.c | 159 +++++---- server-src/holding.c | 4 +- server-src/planner.c | 2 +- server-src/server_util.c | 18 +- server-src/tapefile.c | 12 + server-src/tapefile.h | 1 + xfer-src/Makefile.in | 1 - xfer-src/element-glue.c | 4 +- 164 files changed, 1635 insertions(+), 985 deletions(-) diff --git a/ChangeLog b/ChangeLog index bc8ed66..741a457 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,253 @@ +2010-12-14 Jean-Louis Martineau + * VERSION: 3.2.1 + +2010-12-14 Jean-Louis Martineau + * common-src/ssh-security.c: Use client_port. + +2010-12-14 Daniel Néri + * application-src/ampgsql.pl: Don't assume that gtar is configured to + use stdin/stdout as default archive. + +2010-12-14 Jean-Louis Martineau + * server-src/amidxtaped.pl: Don't crash if same-host doesn't match. + +2010-12-12 Jean-Louis Martineau + * perl/Amanda/Changer/disk.pm: inventory must return the same as + read_label. + * server-src/amtape.pl: Fix for new inventory. + * installcheck/Amanda_Changer_disk.pl: Fix for new inventory. + * installcheck/Amanda_Changer_rait.pl: Fix for new inventory. + +2010-12-11 Daniel Néri + * application-src/ampgsql.pl: Don't assume that gtar is configured to + use stdin/stdout as default archive. + +2010-12-12 Daniel Néri + * application-src/ampgsql.pl: Use diskname, not devicename, as prefix + when checking for properties. Now works as documented in the ampgsql + man page. + +2010-12-10 David Bogen + * server-src/amoverview.pl: fix amoverview's argument parsing + +2010-12-10 Jean-Louis Martineau + * server-src/amcheck-device.pl: Fix possible hang if + Amanda::MainLoop::quit is called before Amanda::MainLoop::run. + * perl/Amanda/Changer.pm: Return the error. + +2010-12-09 Jean-Louis Martineau + * server-src/driver.c: Check if taper is flushing something before + moving a dle to directq. + +2010-12-09 Jean-Louis Martineau + * device-src/xfer-dest-taper-cacher.c: Print why the malloc failed. + +2010-12-08 Dustin J. Mitchell + * common-src/glib-util.c common-src/glib-util.h: do not define + symbol g_slist_free_full, as it exists in glib-2.27 and higher; + use slist_free_full, and alias that to g_slist_free_full when + building against glib-2.28 or higher. + * client-src/client_util.c: make g_slist_free_full_gpointer into + a local, static function + * common-src/amxml.c common-src/conffile.c recover-src/extract_list.c + server-src/amadmin.c server-src/amflush.c server-src/cmdline.c + server-src/cmdline.h server-src/find.c server-src/holding.c + server-src/planner.c: rename function + +2010-12-08 Jean-Louis Martineau + * ReleaseNotes, NEWS: Add changes for 3.2.1 + +2010-12-07 Dan Locks + * packaging/rpm/amanda.spec.src: remove manual library requires and + set curl vs libcurl based on distro. + +2010-12-07 Jean-Louis Martineau + * common-src/util.c: s/HAVE_READLINE/HAVE_LIBREADLINE/ + * config/amanda/readline.m4: s/HAVE_READLINE/HAVE_LIBREADLINE/ + +2010-12-07 Jean-Louis Martineau + * config/amanda/readline.m4: Merge with latest AX_LIB_READLINE. + * common-src/util.h: Fix for latest AX_LIB_READLINE. + +2010-12-06 Dan Locks + * packaging/rpm/amanda.spec.src: remove libtermcap.so.2 requirement + for newer distros. + +2010-12-06 Jean-Louis Martineau + * server-src/server_util.c (internal_server_estimate): Do not use + level 0 estimate if is not available. + +2010-12-04 Jean-Louis Martineau + * server-src/dumper.c: Put them in AMANDA_DBGDIR/log.error + +2010-12-03 Jean-Louis Martineau + * server-src/dumper.c: Put error message in separate files to + reduce the size of the log file. + +2010-11-29 Jean-Louis Martineau + * man/xml-source/amlabel.8.xml: Typo. + +2010-11-26 Jean-Louis Martineau + * installcheck/amreport.pl: Fix for previous patch. + +2010-11-26 Jean-Louis Martineau + * man/xml-source/amadmin.8.xml, man/xml-source/amcheck.8.xml, + man/xml-source/amcheckdump.8.xml, man/xml-source/amdevcheck.8.xml, + man/xml-source/amdump.8.xml, man/xml-source/amfetchdump.8.xml, + man/xml-source/amflush.8.xml, man/xml-source/amgetconf.8.xml, + man/xml-source/amlabel.8.xml, man/xml-source/amoverview.8.xml, + man/xml-source/amrecover.8.xml, man/xml-source/amreport.8.xml, + man/xml-source/amservice.8.xml, man/xml-source/amstatus.8.xml, + man/xml-source/amtape.8.xml: Fix synopsis. + * device-src/amdevcheck.pl, server-src/amadmin.c, + server-src/amcheckdump.pl, server-src/amlabel.pl, + server-src/amoverview.pl, server-src/amreport.pl, + server-src/amstatus.pl, server-src/amtape.pl: Fix usage. + +2010-11-26 Jean-Louis Martineau + * common-src/conffile.c: Print configuration option with '-'. + * installcheck/Amanda_Config.pl: Fix for '-'. + +2010-11-25 Jean-Louis Martineau + * perl/make_html.pl: make relative url in index.html. + +2010-11-25 Jean-Louis Martineau + * perl/make_html.pl: Add amanda version in html headers and footers. + +2010-11-25 Jean-Louis Martineau + * man/xslt/html.xsl.in: Include Amanda version in HTML headers. + +2010-11-22 Jean-Louis Martineau + * device-src/Makefile.am: activate-devpay needs gnulib. + +2010-11-17 Jean-Louis Martineau + * server-src/driver.c: Correctly handle INPUT-ERROR and TAPE-ERROR. + +2010-11-17 Jean-Louis Martineau + * device-src/xfer-dest-taper-cacher.c, + device-src/xfer-dest-taper-splitter.c: Cancel in correct order. + Other thread own self->state_mutex while it wait for self->ring* or + self->slab* + +2010-11-17 Jean-Louis Martineau + * device-src/xfer-dest-taper-cacher.c, + device-src/xfer-dest-taper-splitter.c: Always call device_finish_file + if device_start_file succeed. + +2010-11-16 Dan Locks + * packaging/rpm/amanda.spec.src: add rhel6 stanza to distro detection + +2010-11-16 Jean-Louis Martineau + * server-src/find.c: Keep the complete error message. + +2010-11-12 Jean-Louis Martineau + * server-src/driverio.c: Don't update last_level/consecutive_runs if + the dump failed. + +2010-11-10 Jean-Louis Martineau + * device-src/tape-device.c: Accept LEOM property. + +2010-11-10 Jean-Louis Martineau + * perl/Amanda/Changer/robot.pm: Fix use of Amanda::Changer->make_error + +2010-11-08 Jean-Louis Martineau + * server-src/driver.c: Better handling of dump to tape. + Set force_flush to 0 as soon as the runq is empty. + * server-src/dumper.c: Improving debugging. + +2010-11-08 Jean-Louis Martineau + * perl/Amanda/Report.pm: Report driver FAIL as FAILED (not missing). + * perl/Amanda/Report/human.pm: Do not report driver error if there + is a try. + +2010-11-05 Jean-Louis Martineau + * man/xml-source/tapelist.5.xml: Document BARCODE. + +2010-11-05 Jean-Louis Martineau + * server-src/amdump.pl: Execute subprocess with the config overwrite. + * server-src/amvault.pl: Execute subprocess with the config overwrite. + +2010-11-04 Jean-Louis Martineau + * server-src/amreport.pl: Set date correctly for amvault run. + * perl/Amanda/Report/human.pm: Fix warning. + +2010-11-04 Jean-Louis Martineau + * server-src/tapefile.c: Add barcode in tapelist. + * server-src/tapefile.h: Add barcode in tapelist. + * perl/Amanda/Tapelist.swg: Add barcode in tapelist. + * perl/Amanda/Taper/Scribe.pm: Set the barcode. + * server-src/amlabel.pl: Set the barcode. + * installcheck/Amanda_Tapelist.pl: Test it. + * installcheck/amlabel.pl: Test it. + +2010-11-02 Jean-Louis Martineau + * common-src/util.c (quote_string_maybe): Don't use match. + * common-src/util.c (len_quote_string_maybe): New function. + * common-src/util.h (len_quote_string): Define. + * server-src/amadmin.c: Don't call find_dump twice. + * server-src/find.c (search_logfile): Don't use regex. + * server-src/find.c (print_find_result): Use len_quote_string. + +2010-11-02 Jean-Louis Martineau + * common-src/conffile.c: debug-recovery default to 1. + * man/xml-source/amanda.conf.5.xml: Document it. + +2010-10-29 Jean-Louis Martineau + * server-src/chunker.c: Close listening socket are accepted socket. + * xfer-src/element-glue.c: Close listening socket are accepted socket. + +2010-10-29 Jean-Louis Martineau + * server-src/amflush.c: Open 'amflush' log file in append mode. + +2010-10-29 Jean-Louis Martineau + * server-src/amdump.pl: Open 'amdump' log file in append mode. + +2010-10-28 Jean-Louis Martineau + * common-src/conffile.c: Fix quoting in recovery-limit output. + * server-src/amadmin.c (disklist_one): Print recovery-limit. + +2010-10-28 Jean-Louis Martineau + * client-src/client_util.c: Don't free script->result. + +2010-10-27 Jean-Louis Martineau + * server-src/dumper.c: Typo. + +2010-10-26 Jean-Louis Martineau + * common-src/fileheader.c (parse_file_header): Print buf. + * patching file recover-src/extract_list.c: Read header in multiple + block. + +2010-10-26 Jean-Louis Martineau + * perl/Amanda/Report/human.pm: Use chunker size to find big estimate. + * installcheck/catalogs/bigestimate.cat: Fix. + +2010-10-25 Jean-Louis Martineau + * perl/Amanda/Taper/Worker.pm: Use 4*block_size for + device_output_buffer_size if it is not set by the user. + * server-src/amcheck-device.pl: Check device_output_buffer_size is at + least 2*block_size. + +2010-10-25 Dan Locks + * config/amanda/libs.m4: update AMANDA_CHECK_CURL to add runtime link + flags for all solaris platforms, remove our AC_PATH_PROG for curl-config, + and trust LIBCURL_CHECK_CONFIG (which is now fixed) + +2010-10-25 Dan Locks + * packaging/rpm/amanda.spec.src: exclude sles9 from + LDFLAGS=-Wl,--as-needed + +2010-10-21 Dan Locks + +2010-10-20 Jean-Louis Martineau + * server-src/amtape.pl: Typo. + +2010-10-19 Dan Locks + * packaging/deb/rules, packaging/rpm/amanda.spec.src: add + -Wl,--as-needed to ./configure invocation in packages + +2010-10-19 Jean-Louis Martineau + * ReleaseNotes NEWS: amdump --no-taper option. + 2010-10-18 Jean-Louis Martineau * VERSION: 3.2.0 diff --git a/FULL_VERSION b/FULL_VERSION index 944880f..e4604e3 100644 --- a/FULL_VERSION +++ b/FULL_VERSION @@ -1 +1 @@ -3.2.0 +3.2.1 diff --git a/Makefile.in b/Makefile.in index 27ec55e..f7c87e6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -401,7 +401,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/NEWS b/NEWS index fbb11ec..11c9256 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,19 @@ -Changes in release 3.2.0alpha +Changes in release 3.2.1 + + * barcode are added to the tapelist file. + * Faster 'amadmin find', improve speed on many programs. + * device-output-buffer-size default to a minimum of 4*block_size. + * ssh auth use the client-port + * Bug fixed: + o "Can't opendata output stream: Connection refused". + o Better handling of dump to tape. + o Corrupted 'amdump' log file, amstatus not showing correct state. + o Execute subprocess with the config overwrite. + o tape-device allow to set LEOM. + o Crash in robot changer. + o Script output property are not sent to application. + +Changes in release 3.2.0 * Support for multiple simultaneous writes to storage devices o Can write to all available drives in parallel. @@ -41,6 +56,8 @@ Changes in release 3.2.0alpha o chg-rth o chg-scsi-chio o chg-scsi + * Amdump change: + o new '--no-taper' option to start the run in degraded mode * Amvault is much improved, but still experimental: o supports assembling split parts on the source volume and re-splitting them on the destination diff --git a/ReleaseNotes b/ReleaseNotes index d8b494a..bab0471 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -1,3 +1,19 @@ + Release Notes for amanda-3.2.1 + +* barcode are added to the tapelist file. +* Faster 'amadmin find', improve speed on many programs. +* device-output-buffer-size default to a minimum of 4*block_size. +* ssh auth use the client-port +* Bug fixed + o "Can't opendata output stream: Connection refused" bug. + o Better handling of dump to tape. + o Corrupted 'amdump' log file, amstatus not showing correct state. + o Execute subprocess with the config overwrite. + o tape-device allow to set LEOM. + o Crash in robot changer. + o Script output property are not sent to application. + + Release Notes for amanda-3.2.0 * Support for multiple simultaneous writes to storage devices @@ -41,6 +57,8 @@ o chg-rth o chg-scsi-chio o chg-scsi +* Amdump change: + o new '--no-taper' option to start the run in degraded mode * Amvault is much improved, but still experimental: o supports assembling split parts on the source volume and re-splitting them on the destination diff --git a/VERSION b/VERSION index 944880f..e4604e3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.2.0 +3.2.1 diff --git a/amandad-src/Makefile.in b/amandad-src/Makefile.in index 9f4d73c..103bc4d 100644 --- a/amandad-src/Makefile.in +++ b/amandad-src/Makefile.in @@ -381,7 +381,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/amar-src/Makefile.in b/amar-src/Makefile.in index 4cd3661..03ad8df 100644 --- a/amar-src/Makefile.in +++ b/amar-src/Makefile.in @@ -389,7 +389,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/amplot/Makefile.in b/amplot/Makefile.in index 166423b..ec7636e 100644 --- a/amplot/Makefile.in +++ b/amplot/Makefile.in @@ -423,7 +423,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/application-src/Makefile.in b/application-src/Makefile.in index 80a0259..ca75937 100644 --- a/application-src/Makefile.in +++ b/application-src/Makefile.in @@ -460,7 +460,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/application-src/ampgsql.pl b/application-src/ampgsql.pl index e8056d5..b11a8a2 100644 --- a/application-src/ampgsql.pl +++ b/application-src/ampgsql.pl @@ -89,10 +89,10 @@ sub new { $self->{'props'}->{$pname} = $conf_props->{$pname}->{'values'}->[0]; } } - # check for properties like 'foo-pg-host' where the device is 'foo' - if ($self->{'args'}->{'device'}) { + # check for properties like 'foo-pg-host' where the diskname is 'foo' + if ($self->{'args'}->{'disk'}) { foreach my $pname (@PROP_NAMES) { - my $tmp = "$self->{'args'}->{'device'}-$pname"; + my $tmp = "$self->{'args'}->{'disk'}-$pname"; if ($conf_props->{$tmp}) { debug("More than one value for $tmp. Using the first.") if scalar(@{$conf_props->{$tmp}->{'values'}}) > 1; @@ -491,7 +491,7 @@ sub _get_backup_info { # this works!) local *TAROUT; my $conf = $self->{'args'}->{'config'} || 'NOCONFIG'; - my $cmd = "$self->{'runtar'} $conf $Amanda::Constants::GNUTAR --create --directory $self->{'props'}->{'pg-archivedir'} $fname | $Amanda::Constants::GNUTAR --extract --to-stdout"; + my $cmd = "$self->{'runtar'} $conf $Amanda::Constants::GNUTAR --create --file - --directory $self->{'props'}->{'pg-archivedir'} $fname | $Amanda::Constants::GNUTAR --file - --extract --to-stdout"; debug("running: $cmd"); open(TAROUT, "$cmd |"); my ($start, $end, $lab); @@ -676,13 +676,13 @@ sub _base_backup { '--directory', $self->{'props'}->{'pg-archivedir'}, @wal_files); } else { my $dummydir = $self->_make_dummy_dir(); - $self->{'done_cb'}->(_run_tar_totals($self, + $self->{'done_cb'}->(_run_tar_totals($self, '--file', '-', '--directory', $dummydir, "empty-incremental")); rmtree($dummydir); } # create the final tar file - my $size = _run_tar_totals($self, '--directory', $tmp, + my $size = _run_tar_totals($self, '--directory', $tmp, '--file', '-', $_ARCHIVE_DIR_TAR, $_DATA_DIR_TAR); $self->{'state_cb'}->($self, $end_wal); @@ -719,11 +719,11 @@ sub _incr_backup { $self->{'state_cb'}->($self, $max_wal ? $max_wal : $end_wal); if (@wal_files) { - $self->{'done_cb'}->(_run_tar_totals($self, + $self->{'done_cb'}->(_run_tar_totals($self, '--file', '-', '--directory', $self->{'props'}->{'pg-archivedir'}, @wal_files)); } else { my $dummydir = $self->_make_dummy_dir(); - $self->{'done_cb'}->(_run_tar_totals($self, + $self->{'done_cb'}->(_run_tar_totals($self, '--file', '-', '--directory', $dummydir, "empty-incremental")); rmtree($dummydir); } @@ -808,6 +808,7 @@ sub command_restore { if ($self->{'args'}->{'level'} > 0) { debug("extracting incremental backup to $cur_dir/$_ARCHIVE_DIR_RESTORE"); $status = system($self->{'args'}->{'gnutar-path'}, '--extract', + '--file', '-', '--ignore-zeros', '--exclude', 'empty-incremental', '--directory', $_ARCHIVE_DIR_RESTORE) >> 8; @@ -817,7 +818,7 @@ sub command_restore { if (!-d $_DATA_DIR_RESTORE) { mkdir($_DATA_DIR_RESTORE) or die("could not create archive WAL directory: $!"); } - $status = system($self->{'args'}->{'gnutar-path'}, '--extract') >> 8; + $status = system($self->{'args'}->{'gnutar-path'}, '--extract', '--file', '-',) >> 8; (0 == $status) or die("Failed to extract base backup (exit status: $status)"); debug("extracting archive dir to $cur_dir/$_ARCHIVE_DIR_RESTORE"); diff --git a/changer-src/Makefile.in b/changer-src/Makefile.in index b1fe36b..39e7faa 100644 --- a/changer-src/Makefile.in +++ b/changer-src/Makefile.in @@ -421,7 +421,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/client-src/Makefile.in b/client-src/Makefile.in index 41a73fd..1c3acee 100644 --- a/client-src/Makefile.in +++ b/client-src/Makefile.in @@ -519,7 +519,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/client-src/client_util.c b/client-src/client_util.c index 5dc4974..d7387e8 100644 --- a/client-src/client_util.c +++ b/client-src/client_util.c @@ -66,6 +66,13 @@ fixup_relative( return newname; } +/* GDestroyFunc for a hash table whose values are GSLists contianing malloc'd + * strings */ +static void +destroy_slist_free_full(gpointer list) { + slist_free_full((GSList *)list, g_free); +} + static char * get_name( @@ -1009,7 +1016,7 @@ run_client_script( script->result = g_new0(client_script_result_t, 1); script->result->proplist = g_hash_table_new_full(g_str_hash, g_str_equal, - &g_free, &g_slist_free_full_gpointer); + &g_free, &destroy_slist_free_full); script->result->output = g_ptr_array_new(); script->result->err = g_ptr_array_new(); @@ -1221,7 +1228,6 @@ run_client_scripts( g_ptr_array_free(script->result->err, TRUE); script->result->err = NULL; } - amfree(script->result); } } diff --git a/common-src/Makefile.in b/common-src/Makefile.in index 126c527..37f864f 100644 --- a/common-src/Makefile.in +++ b/common-src/Makefile.in @@ -555,7 +555,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/common-src/amxml.c b/common-src/amxml.c index fedf5cc..bf7195a 100644 --- a/common-src/amxml.c +++ b/common-src/amxml.c @@ -86,7 +86,7 @@ free_dle( amfree(dle->device); amfree(dle->program); g_slist_free(dle->estimatelist); - g_slist_free_full(dle->levellist); + slist_free_full(dle->levellist, g_free); amfree(dle->dumpdate); amfree(dle->compprog); amfree(dle->srv_encrypt); @@ -104,8 +104,8 @@ free_dle( scriptlist = scriptlist->next) { free_script_data((script_t *)scriptlist->data); } - g_slist_free_full(dle->scriptlist); - g_slist_free_full(dle->directtcp_list); + slist_free_full(dle->scriptlist, g_free); + slist_free_full(dle->directtcp_list, g_free); amfree(dle); } diff --git a/common-src/conffile.c b/common-src/conffile.c index 19d87da..12d9f03 100644 --- a/common-src/conffile.c +++ b/common-src/conffile.c @@ -226,6 +226,10 @@ static int current_line_num = 0; /* (technically, managed by the parser) */ /* A static buffer for storing tokens while they are being scanned. */ static char tkbuf[4096]; +/* Return a token formated for output */ +static char *str_keyword(keytab_t *kt); + +static char *str_keyword(keytab_t *kt); /* Look up the name of the given token in the current keytable */ static char *get_token_name(tok_t); @@ -1638,7 +1642,7 @@ negative_number: /* look for goto negative_number below sign is set there */ if (kwp->keyword == NULL) str = _("token not"); else - str = kwp->keyword; + str = str_keyword(kwp); break; } conf_parserror(_("%s is expected"), str); @@ -3645,7 +3649,7 @@ read_execute_on( case CONF_POST_LEVEL_RECOVER: val->v.i |= EXECUTE_ON_POST_LEVEL_RECOVER; break; case CONF_INTER_LEVEL_RECOVER: val->v.i |= EXECUTE_ON_INTER_LEVEL_RECOVER; break; default: - conf_parserror(_("Execute_on expected")); + conf_parserror(_("Execute-on expected")); } get_conftoken(CONF_ANY); if (tok != CONF_COMMA) { @@ -4668,7 +4672,7 @@ config_uninit(void) free_val_t(&hd->value[i]); } } - g_slist_free_full(holdinglist); + slist_free_full(holdinglist, g_free); holdinglist = NULL; for(dp=dumplist; dp != NULL; dp = dpnext) { @@ -4754,7 +4758,7 @@ config_uninit(void) amfree(config_dir); amfree(config_filename); - g_slist_free_full(seen_filenames); + slist_free_full(seen_filenames, g_free); seen_filenames = NULL; config_client = FALSE; @@ -4837,7 +4841,7 @@ init_defaults( conf_init_int (&conf_data[CNF_REQ_TRIES] , 3); conf_init_int (&conf_data[CNF_DEBUG_DAYS] , AMANDA_DEBUG_DAYS); conf_init_int (&conf_data[CNF_DEBUG_AMANDAD] , 0); - conf_init_int (&conf_data[CNF_DEBUG_RECOVERY] , 0); + conf_init_int (&conf_data[CNF_DEBUG_RECOVERY] , 1); conf_init_int (&conf_data[CNF_DEBUG_AMIDXTAPED] , 0); conf_init_int (&conf_data[CNF_DEBUG_AMINDEXD] , 0); conf_init_int (&conf_data[CNF_DEBUG_AMRECOVER] , 0); @@ -5383,7 +5387,7 @@ free_property_t( gpointer p) { property_t *propery = (property_t *)p; - g_slist_free_full(propery->values); + slist_free_full(propery->values, g_free); amfree(propery); } @@ -6508,11 +6512,11 @@ free_val_t( break; case CONFTYPE_IDENTLIST: - g_slist_free_full(val->v.identlist); + slist_free_full(val->v.identlist, g_free); break; case CONFTYPE_RECOVERY_LIMIT: - g_slist_free_full(val->v.recovery_limit.match_pats); + slist_free_full(val->v.recovery_limit.match_pats, g_free); break; case CONFTYPE_TIME: @@ -6833,7 +6837,7 @@ val_t_print_token( for(dispstr=dispstrs; *dispstr!=NULL; dispstr++) { if (prefix) g_fprintf(output, "%s", prefix); - g_fprintf(output, format, kt->keyword); + g_fprintf(output, format, str_keyword(kt)); g_fprintf(output, "%s\n", *dispstr); } } else { @@ -7122,7 +7126,7 @@ val_t_display_strs( buf[0] = stralloc(""); while (iter) { - strappend(buf[0], (char *)iter->data); + strappend(buf[0], quote_string_always((char *)iter->data)); strappend(buf[0], " "); iter = iter->next; } @@ -7737,7 +7741,7 @@ config_errors(GSList **errstr) void config_clear_errors(void) { - g_slist_free_full(cfgerr_errors); + slist_free_full(cfgerr_errors, g_free); cfgerr_errors = NULL; cfgerr_level = CFGERR_OK; @@ -7836,3 +7840,25 @@ amandaify_property_name( return ret; } +static char keyword_str[1024]; + +static char * +str_keyword( + keytab_t *kt) +{ + char *p = kt->keyword; + char *s = keyword_str; + + while(*p != '\0') { + if (*p == '_') { + *s = '-'; + } else { + *s = *p; + } + p++; + s++; + } + *s = '\0'; + + return keyword_str; +} diff --git a/common-src/fileheader.c b/common-src/fileheader.c index 32bce0d..5193837 100644 --- a/common-src/fileheader.c +++ b/common-src/fileheader.c @@ -132,7 +132,7 @@ parse_file_header( tok = strtok_r(line1, " ", &saveptr); if (tok == NULL) { - g_debug("Empty amanda header: buflen=%zu lsize=%zu", buflen, lsize); + g_debug("Empty amanda header: buflen=%zu lsize=%zu buf='%s'", buflen, lsize, buf); strange_header(file, buffer, buflen, _(""), tok); goto out; } diff --git a/common-src/glib-util.c b/common-src/glib-util.c index 7ba6702..91985e5 100644 --- a/common-src/glib-util.c +++ b/common-src/glib-util.c @@ -106,33 +106,19 @@ GValue* g_value_unset_copy(const GValue * from, GValue * to) { return to; } -void g_list_free_full(GList * list) { - GList * cur = list; - - while (cur != NULL) { - gpointer data = cur->data; - amfree(data); - cur = g_list_next(cur); - } - - g_list_free(list); -} - -void g_slist_free_full(GSList * list) { +#if (GLIB_MAJOR_VERSION < 2 || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 28)) +void slist_free_full(GSList * list, GDestroyNotify free_fn) { GSList * cur = list; while (cur != NULL) { gpointer data = cur->data; - amfree(data); + free_fn(data); cur = g_slist_next(cur); } g_slist_free(list); } - -void g_slist_free_full_gpointer(gpointer list) { - g_slist_free_full((GSList *)list); -} +#endif void g_queue_free_full(GQueue * queue) { while (!g_queue_is_empty(queue)) { diff --git a/common-src/glib-util.h b/common-src/glib-util.h index 01f1331..f687fcd 100644 --- a/common-src/glib-util.h +++ b/common-src/glib-util.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007,2008,2009 Zmanda, Inc. All Rights Reserved. + * Copyright (c) 2007, 2008, 2009, 2010 Zmanda, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published @@ -62,11 +62,16 @@ GValue* g_value_unset_init(GValue* val, GType type); * Returns its second (reset) argument.*/ GValue* g_value_unset_copy(const GValue* from, GValue * to); +/* This function is available in glib-2.28.0 and higher; for lower versions + * we build our own version with a different name */ +#if (GLIB_MAJOR_VERSION < 2 || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 28)) +void slist_free_full(GSList * list, GDestroyNotify free_fn); +#else +#define slist_free_full(list, free_fn) g_slist_free_full((list), (free_fn)) +#endif + /* These functions all take a GLib container, and call free() on all the * pointers in the container before free()ing the container itself. */ -void g_list_free_full(GList * list); -void g_slist_free_full(GSList * list); -void g_slist_free_full_gpointer(gpointer list); void g_queue_free_full(GQueue * queue); void g_ptr_array_free_full(GPtrArray * array); diff --git a/common-src/svn-info.h b/common-src/svn-info.h index 153d6c7..657045b 100644 --- a/common-src/svn-info.h +++ b/common-src/svn-info.h @@ -1,2 +1,2 @@ -#define BUILT_REV "3545" +#define BUILT_REV "3720" #define BUILT_BRANCH "3_2" diff --git a/common-src/util.c b/common-src/util.c index 9ca0b4d..c6368a2 100644 --- a/common-src/util.c +++ b/common-src/util.c @@ -438,52 +438,129 @@ quote_string_maybe( if ((str == NULL) || (*str == '\0')) { ret = stralloc("\"\""); - } else if (!always && (match("[:\'\\\"[:space:][:cntrl:]]", str)) == 0) { - /* - * String does not need to be quoted since it contains - * neither whitespace, control or quote characters. - */ - ret = stralloc(str); } else { - /* - * Allocate maximum possible string length. - * (a string of all quotes plus room for leading ", trailing " and NULL) - */ - ret = s = alloc((strlen(str) * 2) + 2 + 1); - *(s++) = '"'; - while (*str != '\0') { - if (*str == '\t') { - *(s++) = '\\'; - *(s++) = 't'; - str++; - continue; - } else if (*str == '\n') { - *(s++) = '\\'; - *(s++) = 'n'; - str++; - continue; - } else if (*str == '\r') { - *(s++) = '\\'; - *(s++) = 'r'; - str++; - continue; - } else if (*str == '\f') { - *(s++) = '\\'; - *(s++) = 'f'; - str++; - continue; - } else if (*str == '\\') { - *(s++) = '\\'; - *(s++) = '\\'; - str++; - continue; - } - if (*str == '"') - *(s++) = '\\'; - *(s++) = *(str++); + const char *r; + for (r = str; *r; r++) { + if (*r == ':' || *r == '\'' || *r == '\\' || *r == '\"' || + *r <= ' ' || *r == 0x7F ) + always = 1; + } + if (!always) { + /* + * String does not need to be quoted since it contains + * neither whitespace, control or quote characters. + */ + ret = stralloc(str); + } else { + /* + * Allocate maximum possible string length. + * (a string of all quotes plus room for leading ", trailing " and + * NULL) + */ + ret = s = alloc((strlen(str) * 2) + 2 + 1); + *(s++) = '"'; + while (*str != '\0') { + if (*str == '\t') { + *(s++) = '\\'; + *(s++) = 't'; + str++; + continue; + } else if (*str == '\n') { + *(s++) = '\\'; + *(s++) = 'n'; + str++; + continue; + } else if (*str == '\r') { + *(s++) = '\\'; + *(s++) = 'r'; + str++; + continue; + } else if (*str == '\f') { + *(s++) = '\\'; + *(s++) = 'f'; + str++; + continue; + } else if (*str == '\\') { + *(s++) = '\\'; + *(s++) = '\\'; + str++; + continue; + } + if (*str == '"') + *(s++) = '\\'; + *(s++) = *(str++); + } + *(s++) = '"'; + *s = '\0'; } - *(s++) = '"'; - *s = '\0'; + } + return (ret); +} + + +int +len_quote_string_maybe( + const char *str, + gboolean always) +{ + int ret; + + if ((str == NULL) || (*str == '\0')) { + ret = 0; + } else { + const char *r; + for (r = str; *r; r++) { + if (*r == ':' || *r == '\'' || *r == '\\' || *r == '\"' || + *r <= ' ' || *r == 0x7F ) + always = 1; + } + if (!always) { + /* + * String does not need to be quoted since it contains + * neither whitespace, control or quote characters. + */ + ret = strlen(str); + } else { + /* + * Allocate maximum possible string length. + * (a string of all quotes plus room for leading ", trailing " and + * NULL) + */ + ret = 1; + while (*str != '\0') { + if (*str == '\t') { + ret++; + ret++; + str++; + continue; + } else if (*str == '\n') { + ret++; + ret++; + str++; + continue; + } else if (*str == '\r') { + ret++; + ret++; + str++; + continue; + } else if (*str == '\f') { + ret++; + ret++; + str++; + continue; + } else if (*str == '\\') { + ret++; + ret++; + str++; + continue; + } + if (*str == '"') + ret++; + ret++; + str++; + } + ret++; + } } return (ret); } @@ -1027,7 +1104,7 @@ int copy_file( return 0; } -#ifndef HAVE_READLINE +#ifndef HAVE_LIBREADLINE /* * simple readline() replacements, used when we don't have readline * support from the system. diff --git a/common-src/util.h b/common-src/util.h index 8c7ea44..a0a98e4 100644 --- a/common-src/util.h +++ b/common-src/util.h @@ -80,9 +80,11 @@ char * construct_timestamp(time_t *t); * always adds "" around the string */ #define quote_string(str) quote_string_maybe((str), 0) #define quote_string_always(str) quote_string_maybe((str), 1) +#define len_quote_string(str) len_quote_string_maybe((str), 0); /*@only@*//*@null@*/char *quote_string_maybe(const char *str, gboolean always); /*@only@*//*@null@*/char *unquote_string(const char *str); +/*@only@*//*@null@*/int len_quote_string_maybe(const char *str, gboolean always); /* Split a string into space-delimited words, obeying quoting as created by * quote_string. To keep compatibility with the old split(), this has the @@ -335,26 +337,34 @@ pcontext_t get_pcontext(void); * or prototypes some simple stub functions that are used instead. */ -#ifdef HAVE_READLINE -# ifdef HAVE_READLINE_READLINE_H +#ifdef HAVE_LIBREADLINE +# if defined(HAVE_READLINE_READLINE_H) # include -# ifdef HAVE_READLINE_HISTORY_H -# include -# endif -# else -# ifdef HAVE_READLINE_H -# include -# ifdef HAVE_HISTORY_H -# include -# endif -# endif -# endif -#else - -char * readline(const char *prompt); -void add_history(const char *line); - -#endif +# elif defined(HAVE_READLINE_H) +# include +# else /* !defined(HAVE_READLINE_H) */ +extern char *readline (); +# endif /* !defined(HAVE_READLINE_H) */ + /* char *cmdline = NULL; */ +#else /* !defined(HAVE_LIBREADLINE) */ + /* use our own readline */ +char * readline(const char *prompt); +#endif /* HAVE_LIBREADLINE */ + +#ifdef HAVE_READLINE_HISTORY +# if defined(HAVE_READLINE_HISTORY_H) +# include +# elif defined(HAVE_HISTORY_H) +# include +# else /* !defined(HAVE_HISTORY_H) */ +extern void add_history (); +extern int write_history (); +extern int read_history (); +# endif /* defined(HAVE_READLINE_HISTORY_H) */ +#else /* !defined(HAVE_READLINE_HISTORY) */ + /* use our own add_history */ +void add_history(const char *line); +#endif /* HAVE_READLINE_HISTORY */ char *base64_decode_alloc_string(char *); diff --git a/config/Makefile.in b/config/Makefile.in index 66fecb9..402fe00 100644 --- a/config/Makefile.in +++ b/config/Makefile.in @@ -251,7 +251,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/config/amanda/libs.m4 b/config/amanda/libs.m4 index 6e27add..0c513ad 100644 --- a/config/amanda/libs.m4 +++ b/config/amanda/libs.m4 @@ -17,30 +17,28 @@ # the libcurl distribution for details. # AC_DEFUN([AMANDA_CHECK_LIBCURL], [ - case "$host" in - sparc-sun-solaris2.10) # Solaris 10 - # curl is not in the LD_LIBRARY_PATH on Solaris 10, so we search - # for it in a few common paths; we then extract the -L flags and - # translate them to -R flags, as required by the runtime linker. - AC_PATH_PROG(CURL_CONFIG, curl-config, [], $LOCSYSPATH:/opt/csw/bin:/usr/local/bin:/opt/local/bin) - if test -n "$CURL_CONFIG"; then - curlflags=`$CURL_CONFIG --libs 2>/dev/null` - for flag in curlflags; do - case $flag in - -L*) LDFLAGS="$LDFLAGS "`echo "x$flag" | sed -e 's/^x-L/-R/'`;; - esac - done - fi - ;; - esac - LIBCURL_CHECK_CONFIG(yes, 7.10.0, HAVE_CURL=yes, HAVE_CURL=no) if test x"$HAVE_CURL" = x"yes"; then AMANDA_ADD_LIBS($LIBCURL) AMANDA_ADD_CPPFLAGS($LIBCURL_CPPFLAGS) AMANDA_CHECK_TYPE([curl_off_t], [off_t], [curl/curl.h]) + case "$host" in + *sun-solaris2*) # Solaris, all versions. + # we extract the -L flags and translate them to -R flags, as required + # by the runtime linker. + if test -n "$_libcurl_config"; then + curlflags=`$_libcurl_config --libs 2>/dev/null` + for flag in curlflags; do + case $flag in + -L*) LDFLAGS="$LDFLAGS "`echo "x$flag" | sed -e 's/^x-L/-R/'`;; + esac + done + fi + ;; + esac fi + ]) # SYNOPSIS diff --git a/config/amanda/readline.m4 b/config/amanda/readline.m4 index dbf8be5..12d8e4d 100644 --- a/config/amanda/readline.m4 +++ b/config/amanda/readline.m4 @@ -4,72 +4,146 @@ # # OVERVIEW # -# Check for readline support. Defines HAVE_READLINE if readline +# Check for readline support. Defines HAVE_LIBREADLINE if readline # is available, and also checks for a number of readline headers and # adds readline libraries to READLINE_LIBS. # # See common-src/util.{c,h}. # +# +# Some idea taken from AX_LIB_READLINE: +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_LIB_READLINE +# +# DESCRIPTION +# +# Searches for a readline compatible library. If found, defines +# `HAVE_LIBREADLINE'. If the found library has the `add_history' function, +# sets also `HAVE_READLINE_HISTORY'. Also checks for the locations of the +# necessary include files and sets `HAVE_READLINE_H' or +# `HAVE_READLINE_READLINE_H' and `HAVE_READLINE_HISTORY_H' or +# 'HAVE_HISTORY_H' if the corresponding include files exists. +# +# The libraries that may be readline compatible are `libedit', +# `libeditline' and `libreadline'. Sometimes we need to link a termcap +# library for readline to work, this macro tests these cases too by trying +# to link with `libtermcap', `libcurses' or `libncurses' before giving up. +# +# Here is an example of how to use the information provided by this macro +# to perform the necessary includes or declarations in a C file: +# +# #ifdef HAVE_LIBREADLINE +# # if defined(HAVE_READLINE_READLINE_H) +# # include +# # elif defined(HAVE_READLINE_H) +# # include +# # else /* !defined(HAVE_READLINE_H) */ +# extern char *readline (); +# # endif /* !defined(HAVE_READLINE_H) */ +# char *cmdline = NULL; +# #else /* !defined(HAVE_READLINE_READLINE_H) */ +# /* no readline */ +# #endif /* HAVE_LIBREADLINE */ +# +# #ifdef HAVE_READLINE_HISTORY +# # if defined(HAVE_READLINE_HISTORY_H) +# # include +# # elif defined(HAVE_HISTORY_H) +# # include +# # else /* !defined(HAVE_HISTORY_H) */ +# extern void add_history (); +# extern int write_history (); +# extern int read_history (); +# # endif /* defined(HAVE_READLINE_HISTORY_H) */ +# /* no history */ +# #endif /* HAVE_READLINE_HISTORY */ +# +# LICENSE +# +# Copyright (c) 2008 Ville Laurikari +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + AC_DEFUN([AMANDA_CHECK_READLINE], [ - AC_ARG_WITH(readline, - dnl no initial space here, so the results line up properly + AC_ARG_WITH(readline, + dnl no initial space here, so the results line up properly AS_HELP_STRING([--with-readline], [require readline support (for amrecover)]) AS_HELP_STRING([--without-readline], [don't search for readline]), - [ - case "$withval" in - y | ye | yes | n | no) : ;; - *) AC_MSG_ERROR([*** --with-readline does not take a value]) - esac - want_readline="$withval" - ], [ - want_readline="maybe" # meaning "only if we can find it" - ]) + [ + case "$withval" in + y | ye | yes | n | no) : ;; + *) AC_MSG_ERROR([*** --with-readline does not take a value]) + esac + want_readline="$withval" + ], [ + want_readline="maybe" # meaning "only if we can find it" +] ) - # unless the user said "no", look for readline. - if test x"$want_readline" != x"no"; then - # we need a tgetent() somewhere.. - proceed="false" - AC_CHECK_LIB(termcap, tgetent, [ - READLINE_LIBS="-ltermcap" - proceed="true" - ], [ - AC_CHECK_LIB(curses, tgetent, [ - READLINE_LIBS="-lcurses" - proceed="true" - ], [ - AC_CHECK_LIB(ncurses, tgetent, [ - READLINE_LIBS="-lncurses" - proceed="true" - ]) - ]) - ]) - if $proceed; then - proceed="false" - AC_CHECK_HEADERS( history.h readline.h readline/history.h readline/readline.h, [ - # found at least one of the headers, so we can proceed. - proceed="true" - ]) + # unless the user said "no", look for readline. + if test x"$want_readline" != x"no"; then + AC_CACHE_CHECK([for a readline compatible library], + ax_cv_lib_readline, [ + ORIG_LIBS="$LIBS" + for readline_lib in readline edit editline; do + for termcap_lib in "" termcap curses ncurses; do + if test -z "$termcap_lib"; then + TRY_LIB="-l$readline_lib" + else + TRY_LIB="-l$readline_lib -l$termcap_lib" + fi + LIBS="$ORIG_LIBS $TRY_LIB" + AC_TRY_LINK_FUNC(readline, ax_cv_lib_readline="$TRY_LIB") + if test -n "$ax_cv_lib_readline"; then + break + fi + done + if test -n "$ax_cv_lib_readline"; then + break fi + done + if test -z "$ax_cv_lib_readline"; then + ax_cv_lib_readline="no" + fi + LIBS="$ORIG_LIBS" + ]) - if $proceed; then - proceed="false" - AC_CHECK_LIB(readline,readline, [ - READLINE_LIBS="-lreadline $READLINE_LIBS" - proceed="true" - ],,$READLINE_LIBS) - fi + if test "$ax_cv_lib_readline" != "no"; then + ORIG_LIBS="$LIBS" + LIBS="$LIBS $ax_cv_lib_readline" + READLINE_LIBS="$ax_cv_lib_readline" + AC_DEFINE(HAVE_LIBREADLINE, 1, + [Define if you have a readline compatible library]) + AC_CHECK_HEADERS(readline.h readline/readline.h) + AC_CACHE_CHECK([whether readline supports history], + ax_cv_lib_readline_history, [ + ax_cv_lib_readline_history="no" + AC_TRY_LINK_FUNC(add_history, ax_cv_lib_readline_history="yes") + ]) + if test "$ax_cv_lib_readline_history" = "yes"; then + AC_DEFINE(HAVE_READLINE_HISTORY, 1, + [Define if your readline library has \`add_history']) + AC_CHECK_HEADERS(history.h readline/history.h) + fi + LIBS="$ORIG_LIBS" - if $proceed; then - # we have readline! - AC_DEFINE(HAVE_READLINE, 1, [System has readline support (headers and libraries)]) - else - # no readline. if the user *really* wanted it, bail out. - if test x"$want_readline" = x"yes"; then - AC_MSG_ERROR([*** No readline implementation found. Try using --with-libraries and --with-includes]) - fi - READLINE_LIBS="" - fi + else + # no readline. if the user *really* wanted it, bail out. + if test x"$want_readline" = x"yes"; then + AC_MSG_ERROR([*** No readline implementation found. Try using --with-libraries and --with-includes]) + fi + READLINE_LIBS="" fi - AC_SUBST(READLINE_LIBS) -]) + fi + AC_SUBST(READLINE_LIBS) +])dnl diff --git a/config/config.h.in b/config/config.h.in index 84f417e..ef728b2 100644 --- a/config/config.h.in +++ b/config/config.h.in @@ -644,6 +644,9 @@ /* Define to 1 if you have the `nsl' library (-lnsl). */ #undef HAVE_LIBNSL +/* Define if you have a readline compatible library */ +#undef HAVE_LIBREADLINE + /* Define to 1 if you have the `resolv' library (-lresolv). */ #undef HAVE_LIBRESOLV @@ -1256,12 +1259,12 @@ /* Define to 1 if _Exit is declared even after undefining macros. */ #undef HAVE_RAW_DECL__EXIT -/* System has readline support (headers and libraries) */ -#undef HAVE_READLINE - /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_H +/* Define if your readline library has \`add_history' */ +#undef HAVE_READLINE_HISTORY + /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_HISTORY_H diff --git a/configure b/configure index ad35f81..c2ed615 100755 --- a/configure +++ b/configure @@ -892,7 +892,6 @@ WANT_S3_DEVICE_TRUE LIBCURL LIBCURL_CPPFLAGS _libcurl_config -CURL_CONFIG POSUB INTLLIBS LTLIBICONV @@ -40354,63 +40353,6 @@ _ACEOF # Devices # - case "$host" in - sparc-sun-solaris2.10) # Solaris 10 - # curl is not in the LD_LIBRARY_PATH on Solaris 10, so we search - # for it in a few common paths; we then extract the -L flags and - # translate them to -R flags, as required by the runtime linker. - # Extract the first word of "curl-config", so it can be a program name with args. -set dummy curl-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_CURL_CONFIG+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $CURL_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_CURL_CONFIG="$CURL_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$LOCSYSPATH:/opt/csw/bin:/usr/local/bin:/opt/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_CURL_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -CURL_CONFIG=$ac_cv_path_CURL_CONFIG -if test -n "$CURL_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $CURL_CONFIG" >&5 -$as_echo "$CURL_CONFIG" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -n "$CURL_CONFIG"; then - curlflags=`$CURL_CONFIG --libs 2>/dev/null` - for flag in curlflags; do - case $flag in - -L*) LDFLAGS="$LDFLAGS "`echo "x$flag" | sed -e 's/^x-L/-R/'`;; - esac - done - fi - ;; - esac - @@ -41056,9 +40998,24 @@ _ACEOF fi + case "$host" in + *sun-solaris2*) # Solaris, all versions. + # we extract the -L flags and translate them to -R flags, as required + # by the runtime linker. + if test -n "$_libcurl_config"; then + curlflags=`$_libcurl_config --libs 2>/dev/null` + for flag in curlflags; do + case $flag in + -L*) LDFLAGS="$LDFLAGS "`echo "x$flag" | sed -e 's/^x-L/-R/'`;; + esac + done + fi + ;; + esac fi + HAVE_HMAC=yes { $as_echo "$as_me:$LINENO: checking for HMAC_CTX_init in -lcrypto" >&5 @@ -46648,13 +46605,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:46651: $ac_compile\"" >&5) + (eval echo "\"\$as_me:46608: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:46654: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:46611: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:46657: output\"" >&5) + (eval echo "\"\$as_me:46614: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -47752,7 +47709,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 47755 "configure"' > conftest.$ac_ext + echo '#line 47712 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -49121,11 +49078,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:49124: $lt_compile\"" >&5) + (eval echo "\"\$as_me:49081: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:49128: \$? = $ac_status" >&5 + echo "$as_me:49085: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -49445,11 +49402,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:49448: $lt_compile\"" >&5) + (eval echo "\"\$as_me:49405: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:49452: \$? = $ac_status" >&5 + echo "$as_me:49409: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -49550,11 +49507,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:49553: $lt_compile\"" >&5) + (eval echo "\"\$as_me:49510: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:49557: \$? = $ac_status" >&5 + echo "$as_me:49514: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -49605,11 +49562,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:49608: $lt_compile\"" >&5) + (eval echo "\"\$as_me:49565: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:49612: \$? = $ac_status" >&5 + echo "$as_me:49569: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -52410,7 +52367,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 52413 "configure" +#line 52370 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -52510,7 +52467,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 52513 "configure" +#line 52470 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -58609,33 +58566,40 @@ $as_echo "$as_me: error: explicit glib" >&2;} # Check whether --with-readline was given. if test "${with_readline+set}" = set; then withval=$with_readline; - case "$withval" in - y | ye | yes | n | no) : ;; - *) { { $as_echo "$as_me:$LINENO: error: *** --with-readline does not take a value" >&5 + case "$withval" in + y | ye | yes | n | no) : ;; + *) { { $as_echo "$as_me:$LINENO: error: *** --with-readline does not take a value" >&5 $as_echo "$as_me: error: *** --with-readline does not take a value" >&2;} { (exit 1); exit 1; }; } - esac - want_readline="$withval" + esac + want_readline="$withval" else - want_readline="maybe" # meaning "only if we can find it" + want_readline="maybe" # meaning "only if we can find it" fi - # unless the user said "no", look for readline. - if test x"$want_readline" != x"no"; then - # we need a tgetent() somewhere.. - proceed="false" - { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if test "${ac_cv_lib_termcap_tgetent+set}" = set; then + + # unless the user said "no", look for readline. + if test x"$want_readline" != x"no"; then + { $as_echo "$as_me:$LINENO: checking for a readline compatible library" >&5 +$as_echo_n "checking for a readline compatible library... " >&6; } +if test "${ax_cv_lib_readline+set}" = set; then $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat >conftest.$ac_ext <<_ACEOF + + ORIG_LIBS="$LIBS" + for readline_lib in readline edit editline; do + for termcap_lib in "" termcap curses ncurses; do + if test -z "$termcap_lib"; then + TRY_LIB="-l$readline_lib" + else + TRY_LIB="-l$readline_lib -l$termcap_lib" + fi + LIBS="$ORIG_LIBS $TRY_LIB" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -58648,11 +58612,11 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -char tgetent (); +char readline (); int main () { -return tgetent (); +return readline (); ; return 0; } @@ -58678,66 +58642,80 @@ $as_echo "$ac_try_echo") >&5 test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then - ac_cv_lib_termcap_tgetent=yes + ax_cv_lib_readline="$TRY_LIB" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_termcap_tgetent=no + fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + if test -n "$ax_cv_lib_readline"; then + break + fi + done + if test -n "$ax_cv_lib_readline"; then + break + fi + done + if test -z "$ax_cv_lib_readline"; then + ax_cv_lib_readline="no" + fi + LIBS="$ORIG_LIBS" + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test "x$ac_cv_lib_termcap_tgetent" = x""yes; then +{ $as_echo "$as_me:$LINENO: result: $ax_cv_lib_readline" >&5 +$as_echo "$ax_cv_lib_readline" >&6; } - READLINE_LIBS="-ltermcap" - proceed="true" + if test "$ax_cv_lib_readline" != "no"; then + ORIG_LIBS="$LIBS" + LIBS="$LIBS $ax_cv_lib_readline" + READLINE_LIBS="$ax_cv_lib_readline" + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LIBREADLINE 1 +_ACEOF -else - { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 -$as_echo_n "checking for tgetent in -lcurses... " >&6; } -if test "${ac_cv_lib_curses_tgetent+set}" = set; then + +for ac_header in readline.h readline/readline.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcurses $LIBS" + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} +$ac_includes_default +#include <$ac_header> _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 @@ -58746,40 +58724,116 @@ $as_echo "$ac_try_echo") >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_curses_tgetent=yes + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_curses_tgetent=no + ac_header_compiler=no fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 -$as_echo "$ac_cv_lib_curses_tgetent" >&6; } -if test "x$ac_cv_lib_curses_tgetent" = x""yes; then - READLINE_LIBS="-lcurses" - proceed="true" +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done - { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 -$as_echo_n "checking for tgetent in -lncurses... " >&6; } -if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then + { $as_echo "$as_me:$LINENO: checking whether readline supports history" >&5 +$as_echo_n "checking whether readline supports history... " >&6; } +if test "${ax_cv_lib_readline_history+set}" = set; then $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lncurses $LIBS" -cat >conftest.$ac_ext <<_ACEOF + + ax_cv_lib_readline_history="no" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -58792,11 +58846,11 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -char tgetent (); +char add_history (); int main () { -return tgetent (); +return add_history (); ; return 0; } @@ -58822,42 +58876,30 @@ $as_echo "$ac_try_echo") >&5 test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then - ac_cv_lib_ncurses_tgetent=yes + ax_cv_lib_readline_history="yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_ncurses_tgetent=no + fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 -$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } -if test "x$ac_cv_lib_ncurses_tgetent" = x""yes; then - - READLINE_LIBS="-lncurses" - proceed="true" fi +{ $as_echo "$as_me:$LINENO: result: $ax_cv_lib_readline_history" >&5 +$as_echo "$ax_cv_lib_readline_history" >&6; } + if test "$ax_cv_lib_readline_history" = "yes"; then - -fi - - -fi - - - if $proceed; then - proceed="false" - +cat >>confdefs.h <<\_ACEOF +#define HAVE_READLINE_HISTORY 1 +_ACEOF -for ac_header in history.h readline.h readline/history.h readline/readline.h +for ac_header in history.h readline/history.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then @@ -58998,108 +59040,23 @@ as_val=`eval 'as_val=${'$as_ac_Header'} #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - # found at least one of the headers, so we can proceed. - proceed="true" - fi done - fi - - if $proceed; then - proceed="false" - { $as_echo "$as_me:$LINENO: checking for readline in -lreadline" >&5 -$as_echo_n "checking for readline in -lreadline... " >&6; } -if test "${ac_cv_lib_readline_readline+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $READLINE_LIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char readline (); -int -main () -{ -return readline (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_readline_readline=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_readline_readline=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_readline_readline" >&5 -$as_echo "$ac_cv_lib_readline_readline" >&6; } -if test "x$ac_cv_lib_readline_readline" = x""yes; then - - READLINE_LIBS="-lreadline $READLINE_LIBS" - proceed="true" - -fi - - fi - - if $proceed; then - # we have readline! - -cat >>confdefs.h <<\_ACEOF -#define HAVE_READLINE 1 -_ACEOF + fi + LIBS="$ORIG_LIBS" - else - # no readline. if the user *really* wanted it, bail out. - if test x"$want_readline" = x"yes"; then - { { $as_echo "$as_me:$LINENO: error: *** No readline implementation found. Try using --with-libraries and --with-includes" >&5 + else + # no readline. if the user *really* wanted it, bail out. + if test x"$want_readline" = x"yes"; then + { { $as_echo "$as_me:$LINENO: error: *** No readline implementation found. Try using --with-libraries and --with-includes" >&5 $as_echo "$as_me: error: *** No readline implementation found. Try using --with-libraries and --with-includes" >&2;} { (exit 1); exit 1; }; } - fi - READLINE_LIBS="" - fi + fi + READLINE_LIBS="" fi + fi diff --git a/device-src/Makefile.am b/device-src/Makefile.am index 69fb328..2f0bf72 100644 --- a/device-src/Makefile.am +++ b/device-src/Makefile.am @@ -72,6 +72,8 @@ noinst_PROGRAMS = $(TESTS) if WANT_S3_DEVICE sbin_PROGRAMS += activate-devpay +activate_devpay_LDADD = \ + ../gnulib/libgnu.la activate_devpay_SOURCES = activate-devpay.c endif diff --git a/device-src/Makefile.in b/device-src/Makefile.in index d555a06..73b24cd 100644 --- a/device-src/Makefile.in +++ b/device-src/Makefile.in @@ -361,7 +361,8 @@ am__activate_devpay_SOURCES_DIST = activate-devpay.c @WANT_S3_DEVICE_TRUE@am_activate_devpay_OBJECTS = \ @WANT_S3_DEVICE_TRUE@ activate-devpay.$(OBJEXT) activate_devpay_OBJECTS = $(am_activate_devpay_OBJECTS) -activate_devpay_LDADD = $(LDADD) +@WANT_S3_DEVICE_TRUE@activate_devpay_DEPENDENCIES = \ +@WANT_S3_DEVICE_TRUE@ ../gnulib/libgnu.la SCRIPTS = $(sbin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/config depcomp = $(SHELL) $(top_srcdir)/config/depcomp @@ -438,7 +439,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ @@ -1212,6 +1212,9 @@ libamdevice_la_SOURCES = property.c device.c directtcp-connection.c \ $(am__append_4) $(am__append_5) libamdevice_la_LIBADD = ../common-src/libamanda.la \ ../xfer-src/libamxfer.la $(am__append_6) +@WANT_S3_DEVICE_TRUE@activate_devpay_LDADD = \ +@WANT_S3_DEVICE_TRUE@ ../gnulib/libgnu.la + @WANT_S3_DEVICE_TRUE@activate_devpay_SOURCES = activate-devpay.c noinst_HEADERS = \ device.h \ diff --git a/device-src/amdevcheck.pl b/device-src/amdevcheck.pl index 9b8ccfe..03c50f2 100644 --- a/device-src/amdevcheck.pl +++ b/device-src/amdevcheck.pl @@ -79,7 +79,7 @@ sub print_result { sub usage { print < [ ] [ --properties {prop1,prop2,prop3} ] +Usage: amdevcheck [--label] [--properties {prop1,prop2,prop3}] [-o configoption]* [] EOF exit(1); } diff --git a/device-src/tape-device.c b/device-src/tape-device.c index 36498dd..c6b88ce 100644 --- a/device-src/tape-device.c +++ b/device-src/tape-device.c @@ -458,6 +458,12 @@ tape_device_base_init (TapeDeviceClass * c) PROPERTY_ACCESS_GET_MASK | PROPERTY_ACCESS_SET_BEFORE_START, tape_device_get_read_block_size_fn, tape_device_set_read_block_size_fn); + + /* add the ability to set LEOM to FALSE, for testing purposes */ + device_class_register_property(device_class, PROPERTY_LEOM, + PROPERTY_ACCESS_GET_MASK | PROPERTY_ACCESS_SET_BEFORE_START, + device_simple_property_get_fn, + tape_device_set_feature_property_fn); } static gboolean @@ -510,6 +516,8 @@ tape_device_set_feature_property_fn(Device *p_self, DevicePropertyBase *base, self->bsf_after_eom = new_bool; else if (base->ID == PROPERTY_NONBLOCKING_OPEN) self->nonblocking_open = new_bool; + else if (base->ID == PROPERTY_LEOM) + self->leom = new_bool; else return FALSE; /* shouldn't happen */ diff --git a/device-src/xfer-dest-taper-cacher.c b/device-src/xfer-dest-taper-cacher.c index 99b91d4..12bf923 100644 --- a/device-src/xfer-dest-taper-cacher.c +++ b/device-src/xfer-dest-taper-cacher.c @@ -327,9 +327,9 @@ alloc_slab( rv->refcount = 1; rv->base = g_try_malloc(self->slab_size); if (!rv->base) { - g_free(rv); xfer_cancel_with_error(XFER_ELEMENT(self), - _("Could not allocate %zu bytes of memory"), self->slab_size); + _("Could not allocate %zu bytes of memory: %s"), self->slab_size, strerror(errno)); + g_free(rv); return NULL; } } @@ -878,16 +878,20 @@ device_thread_write_part( { GTimer *timer = g_timer_new(); XMsg *msg; - slab_source_state src_state; + slab_source_state src_state = {0, 0}; guint64 serial, stop_serial; gboolean eof = FALSE; int fileno = 0; + int failed = 0; + int slab_source_set = 0; self->last_part_successful = FALSE; self->bytes_written = 0; - if (!device_start_file(self->device, self->part_header)) + if (!device_start_file(self->device, self->part_header)) { + failed = 1; goto part_done; + } dumpfile_free(self->part_header); self->part_header = NULL; @@ -897,6 +901,7 @@ device_thread_write_part( if (!slab_source_setup(self, &src_state)) goto part_done; + slab_source_set = 1; g_timer_start(timer); @@ -906,13 +911,17 @@ device_thread_write_part( Slab *slab = slab_source_get(self, &src_state, serial); DBG(8, "writing slab %p (serial %ju) to device", slab, serial); g_mutex_unlock(self->slab_mutex); - if (!slab) + if (!slab) { + failed = 1; goto part_done; + } eof = slab->size < self->slab_size; - if (!write_slab_to_device(self, slab)) + if (!write_slab_to_device(self, slab)) { + failed = 1; goto part_done; + } g_mutex_lock(self->slab_mutex); DBG(8, "wrote slab %p to device", slab); @@ -924,18 +933,22 @@ device_thread_write_part( } g_mutex_unlock(self->slab_mutex); +part_done: /* if we write all of the blocks, but the finish_file fails, then likely * there was some buffering going on in the device driver, and the blocks * did not all make it to permanent storage -- so it's a failed part. */ - if (!device_finish_file(self->device)) - goto part_done; + if (self->device->in_file && !device_finish_file(self->device)) + failed = 1; - slab_source_free(self, &src_state); + if (slab_source_set) { + slab_source_free(self, &src_state); + } - self->last_part_successful = TRUE; - self->no_more_parts = eof; + if (!failed) { + self->last_part_successful = TRUE; + self->no_more_parts = eof; + } -part_done: g_timer_stop(timer); msg = xmsg_new(XFER_ELEMENT(self), XMSG_PART_DONE, 0); @@ -1211,15 +1224,15 @@ cancel_impl( /* then signal all of our condition variables, so that threads waiting on them * wake up and see elt->cancelled. */ - g_mutex_lock(self->state_mutex); - g_cond_broadcast(self->state_cond); - g_mutex_unlock(self->state_mutex); - g_mutex_lock(self->slab_mutex); g_cond_broadcast(self->slab_cond); g_cond_broadcast(self->slab_free_cond); g_mutex_unlock(self->slab_mutex); + g_mutex_lock(self->state_mutex); + g_cond_broadcast(self->state_cond); + g_mutex_unlock(self->state_mutex); + return rv; } diff --git a/device-src/xfer-dest-taper-splitter.c b/device-src/xfer-dest-taper-splitter.c index 7295da3..561f04d 100644 --- a/device-src/xfer-dest-taper-splitter.c +++ b/device-src/xfer-dest-taper-splitter.c @@ -540,18 +540,20 @@ device_thread_write_part( g_mutex_unlock(self->ring_mutex); part_done: - if (elt->cancelled) { - g_timer_destroy(timer); - return NULL; - } - /* if we write all of the blocks, but the finish_file fails, then likely * there was some buffering going on in the device driver, and the blocks * did not all make it to permanent storage -- so it's a failed part. Note * that we try to finish_file even if the part failed, just to be thorough. */ if (self->device->in_file) { if (!device_finish_file(self->device)) - part_status = PART_FAILED; + if (!elt->cancelled) { + part_status = PART_FAILED; + } + } + + if (elt->cancelled) { + g_timer_destroy(timer); + return NULL; } g_timer_stop(timer); @@ -737,15 +739,15 @@ cancel_impl( /* then signal all of our condition variables, so that threads waiting on them * wake up and see elt->cancelled. */ - g_mutex_lock(self->state_mutex); - g_cond_broadcast(self->state_cond); - g_mutex_unlock(self->state_mutex); - g_mutex_lock(self->ring_mutex); g_cond_broadcast(self->ring_add_cond); g_cond_broadcast(self->ring_free_cond); g_mutex_unlock(self->ring_mutex); + g_mutex_lock(self->state_mutex); + g_cond_broadcast(self->state_cond); + g_mutex_unlock(self->state_mutex); + return rv; } diff --git a/example/Makefile.in b/example/Makefile.in index f8741e0..e1f5994 100644 --- a/example/Makefile.in +++ b/example/Makefile.in @@ -349,7 +349,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/gnulib/Makefile.in b/gnulib/Makefile.in index c2bd04b..544d253 100644 --- a/gnulib/Makefile.in +++ b/gnulib/Makefile.in @@ -325,7 +325,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/installcheck/Amanda_Changer_disk.pl b/installcheck/Amanda_Changer_disk.pl index 993ee6f..2b6b3fb 100644 --- a/installcheck/Amanda_Changer_disk.pl +++ b/installcheck/Amanda_Changer_disk.pl @@ -392,15 +392,15 @@ Amanda::MainLoop::run(); is_deeply($inv, [ { slot => 1, state => Amanda::Changer::SLOT_FULL, - device_status => $DEVICE_STATUS_SUCCESS, + device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0, current => 1}, { slot => 2, state => Amanda::Changer::SLOT_FULL, - device_status => $DEVICE_STATUS_SUCCESS, + device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0 }, { slot => 3, state => Amanda::Changer::SLOT_FULL, - device_status => $DEVICE_STATUS_SUCCESS, + device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0 }, { slot => 4, state => Amanda::Changer::SLOT_FULL, @@ -408,7 +408,7 @@ Amanda::MainLoop::run(); f_type => $Amanda::Header::F_TAPESTART, label => "FOO?BAR", reserved => 0 }, { slot => 5, state => Amanda::Changer::SLOT_FULL, - device_status => $DEVICE_STATUS_SUCCESS, + device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0 }, ], "inventory finds the labeled tape"); diff --git a/installcheck/Amanda_Changer_rait.pl b/installcheck/Amanda_Changer_rait.pl index 1b26187..259c2b5 100644 --- a/installcheck/Amanda_Changer_rait.pl +++ b/installcheck/Amanda_Changer_rait.pl @@ -268,19 +268,19 @@ sub test_threeway { die $err if $err; is_deeply($inv, [ - { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, + { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, # undef because labels don't match reserved => 0, slot => '{1,1,1}', import_export => undef }, - { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, + { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, # all blank reserved => 0, slot => '{2,2,2}', import_export => undef }, - { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, + { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, # mismatched labels reserved => 0, slot => '{3,3,3}', import_export => undef }, - { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, + { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, # mismatched labels reserved => 0, slot => '{4,4,4}', import_export => undef } , @@ -416,9 +416,9 @@ sub test_normal_inventory { slot => '{1,1,1}', import_export => undef }, { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_TAPESTART, label => 'mytape-2', reserved => 0, slot => '{2,2,2}', import_export => undef }, - { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0, + { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0, slot => '{3,3,3}', import_export => undef }, - { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0, + { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0, slot => '{4,4,4}', import_export => undef } , ], "second inventory is correct"); diff --git a/installcheck/Amanda_Config.pl b/installcheck/Amanda_Config.pl index ef2ea7b..349ce10 100644 --- a/installcheck/Amanda_Config.pl +++ b/installcheck/Amanda_Config.pl @@ -566,14 +566,14 @@ $dump_filename =~ s/":$//g; is($dump_filename, $fn, "config filename is included correctly"); -like($dump, qr/DEVICE_PROPERTY\s+"foo" "bar"\n/i, - "DEVICE_PROPERTY appears in dump output"); +like($dump, qr/DEVICE-PROPERTY\s+"foo" "bar"\n/i, + "DEVICE-PROPERTY appears in dump output"); -like($dump, qr/AMRECOVER_CHECK_LABEL\s+(yes|no)/i, - "AMRECOVER_CHECK_LABEL has a trailing space"); +like($dump, qr/AMRECOVER-CHECK-LABEL\s+(yes|no)/i, + "AMRECOVER-CHECK-LABEL has a trailing space"); -like($dump, qr/AMRECOVER_CHECK_LABEL\s+(yes|no)/i, - "AMRECOVER_CHECK_LABEL has a trailing space"); +like($dump, qr/AMRECOVER-CHECK-LABEL\s+(yes|no)/i, + "AMRECOVER-CHECK-LABEL has a trailing space"); like($dump, qr/EXCLUDE\s+LIST "foo" "bar" "true" "star"/i, "EXCLUDE LIST is in the dump"); @@ -583,7 +583,7 @@ like($dump, qr/INCLUDE\s+LIST OPTIONAL "bing" "ting" "string" "fling"/i, "INCLUDE LIST is in the dump"); like($dump, qr/INCLUDE\s+FILE OPTIONAL "rhyme"/i, "INCLUDE FILE is in the dump"); -like($dump, qr/RECOVERY_LIMIT.*SAME-HOST/i, +like($dump, qr/RECOVERY-LIMIT.*SAME-HOST/i, "RECOVERY-LIST is in the dump"); ## diff --git a/installcheck/Amanda_Tapelist.pl b/installcheck/Amanda_Tapelist.pl index 1b8bb0f..af0ed86 100644 --- a/installcheck/Amanda_Tapelist.pl +++ b/installcheck/Amanda_Tapelist.pl @@ -63,8 +63,8 @@ sub readtapelist { @lines = ( "20071111010002 TESTCONF004 reuse\n", - "20071110010002 TESTCONF003 reuse\n", - "20071109010002 TESTCONF002 reuse #comment 2\n", + "20071110010002 TESTCONF003 reuse BARCODE:BAR-003\n", + "20071109010002 TESTCONF002 reuse BARCODE:BAR-002 #comment 2\n", "20071108010001 TESTCONF001 no-reuse #comment 1\n", ); mktapelist($tapelist, @lines); @@ -75,13 +75,13 @@ $tl_ok = is_deeply($tl, { lockname => $tapelist . ".lock", tles => [ { 'datestamp' => '20071111010002', 'label' => 'TESTCONF004', - 'reuse' => 1, 'position' => 1, 'comment' => undef }, + 'reuse' => 1, 'position' => 1, 'barcode' => undef, 'comment' => undef }, { 'datestamp' => '20071110010002', 'label' => 'TESTCONF003', - 'reuse' => 1, 'position' => 2, 'comment' => undef }, + 'reuse' => 1, 'position' => 2, 'barcode' => 'BAR-003', 'comment' => undef }, { 'datestamp' => '20071109010002', 'label' => 'TESTCONF002', - 'reuse' => 1, 'position' => 3, 'comment' => 'comment 2' }, + 'reuse' => 1, 'position' => 3, 'barcode' => 'BAR-002', 'comment' => 'comment 2' }, { 'datestamp' => '20071108010001', 'label' => 'TESTCONF001', - 'reuse' => '', 'position' => 4, 'comment' => 'comment 1' }, + 'reuse' => '', 'position' => 4, 'barcode' => undef, 'comment' => 'comment 1' }, ] }, "A simple tapelist is parsed correctly"); SKIP: { @@ -95,7 +95,7 @@ SKIP: { is_deeply($tl->lookup_tapelabel('TESTCONF002'), { 'datestamp' => '20071109010002', 'label' => 'TESTCONF002', - 'reuse' => 1, 'position' => 3, 'comment' => 'comment 2' }, + 'reuse' => 1, 'position' => 3, 'barcode' => 'BAR-002', 'comment' => 'comment 2' }, "lookup_tapelabel works"); is_deeply($tl->lookup_tapelabel('TESTCONF009'), undef, @@ -103,7 +103,7 @@ SKIP: { is_deeply($tl->lookup_tapepos(4), { 'datestamp' => '20071108010001', 'label' => 'TESTCONF001', - 'reuse' => '', 'position' => 4, 'comment' => 'comment 1' }, + 'reuse' => '', 'position' => 4, 'barcode' => undef, 'comment' => 'comment 1' }, "lookup_tapepos works"); is_deeply($tl->lookup_tapepos(9), undef, @@ -111,29 +111,29 @@ SKIP: { is_deeply($tl->lookup_tapedate('20071110010002'), { 'datestamp' => '20071110010002', 'label' => 'TESTCONF003', - 'reuse' => 1, 'position' => 2, 'comment' => undef }, + 'reuse' => 1, 'position' => 2, 'barcode' => 'BAR-003', 'comment' => undef }, "lookup_tapedate works"); is_deeply($tl->lookup_tapedate('12345678'), undef, "lookup_tapedate returns undef on an unknown datestamp"); # try some edits - $tl->add_tapelabel("20080112010203", "TESTCONF007", "seven", 1); + $tl->add_tapelabel("20080112010203", "TESTCONF007", "seven", 1, undef, 'BAR-007'); is(scalar @{$tl->{'tles'}}, 5, "add_tapelabel adds a new element to the tapelist"); is_deeply($tl->lookup_tapepos(1), { 'datestamp' => '20080112010203', 'label' => 'TESTCONF007', - 'reuse' => 1, 'position' => 1, 'comment' => 'seven' }, + 'reuse' => 1, 'position' => 1, 'barcode' => 'BAR-007', 'comment' => 'seven' }, ".. lookup_tapepos finds it at the beginning"); is_deeply($tl->lookup_tapelabel("TESTCONF007"), { 'datestamp' => '20080112010203', 'label' => 'TESTCONF007', - 'reuse' => 1, 'position' => 1, 'comment' => 'seven' }, + 'reuse' => 1, 'position' => 1, 'barcode' => 'BAR-007', 'comment' => 'seven' }, ".. lookup_tapelabel finds it"); is_deeply($tl->lookup_tapedate("20080112010203"), { 'datestamp' => '20080112010203', 'label' => 'TESTCONF007', - 'reuse' => 1, 'position' => 1, 'comment' => 'seven' }, + 'reuse' => 1, 'position' => 1, 'barcode' => 'BAR-007', 'comment' => 'seven' }, ".. lookup_tapedate finds it"); # try some edits @@ -142,7 +142,7 @@ SKIP: { is_deeply($tl->lookup_tapelabel("TESTCONF008"), { 'datestamp' => '20080112010204', 'label' => 'TESTCONF008', - 'reuse' => 0, 'position' => 1, 'comment' => 'eight' }, + 'reuse' => 0, 'position' => 1, 'barcode' => undef, 'comment' => 'eight' }, ".. lookup_tapelabel finds it no-reuse"); $tl->remove_tapelabel("TESTCONF008"); @@ -153,7 +153,7 @@ SKIP: { is_deeply($tl->lookup_tapepos(4), # used to be in position 5 { 'datestamp' => '20071108010001', 'label' => 'TESTCONF001', - 'reuse' => '', 'position' => 4, 'comment' => 'comment 1' }, + 'reuse' => '', 'position' => 4, 'barcode' => undef, 'comment' => 'comment 1' }, ".. tape positions are adjusted correctly"); is_deeply($tl->lookup_tapelabel("TESTCONF002"), undef, @@ -194,7 +194,7 @@ is_deeply($tl, { lockname => $tapelist . ".lock", tles => [ { 'datestamp' => '2006123456', 'label' => 'FOO', - 'reuse' => 1, 'position' => 1, 'comment' => undef }, + 'reuse' => 1, 'position' => 1, 'barcode' => undef, 'comment' => undef }, ] }, "Invalid lines are ignored"); # make sure clear_tapelist is empty @@ -209,6 +209,6 @@ is_deeply($tl, { lockname => $tapelist . ".lock", tles => [ { 'datestamp' => '2006123456', 'label' => 'FOO', - 'reuse' => 1, 'position' => 1, 'comment' => undef }, + 'reuse' => 1, 'position' => 1, 'barcode' => undef, 'comment' => undef }, ] }, "reload works"); diff --git a/installcheck/Makefile.in b/installcheck/Makefile.in index b011d67..d2c2585 100644 --- a/installcheck/Makefile.in +++ b/installcheck/Makefile.in @@ -362,7 +362,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/installcheck/amlabel.pl b/installcheck/amlabel.pl index 92f4534..9bb9cfb 100644 --- a/installcheck/amlabel.pl +++ b/installcheck/amlabel.pl @@ -79,6 +79,7 @@ like(run_get('amlabel', 'TESTCONF', 'TESTCONF92'), $tl->reload(); is_deeply($tl->{'tles'}->[0], { 'reuse' => 1, + 'barcode' => undef, 'comment' => undef, 'position' => 1, 'label' => 'TESTCONF92', diff --git a/installcheck/amreport.pl b/installcheck/amreport.pl index 345a024..00faff3 100644 --- a/installcheck/amreport.pl +++ b/installcheck/amreport.pl @@ -207,7 +207,7 @@ like(run_err($amreport, 'TESTCONF-NOSUCH'), ok(!run($amreport, 'TESTCONF-NOSUCH', '--help'), "amreport --help exits with status 1"); like($Installcheck::Run::stdout, - qr/Usage: amreport conf/, + qr/Usage: amreport \[--version\]/, "..and prints usage message"); like(run_get($amreport, 'TESTCONF-NOSUCH', '--version'), diff --git a/installcheck/catalogs/bigestimate.cat b/installcheck/catalogs/bigestimate.cat index a913ecb..7883b75 100644 --- a/installcheck/catalogs/bigestimate.cat +++ b/installcheck/catalogs/bigestimate.cat @@ -49,7 +49,7 @@ USAGE BY TAPE: NOTES: big estimate: home.slikon.local /opt/public 0 - est: 80286112k out 50917369k + est: 80286112k out 50917370k DUMP SUMMARY: diff --git a/man/Makefile.in b/man/Makefile.in index 84f72d6..ed09b52 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -281,7 +281,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/man/amaddclient.8 b/man/amaddclient.8 index 3fa88b0..006f348 100644 --- a/man/amaddclient.8 +++ b/man/amaddclient.8 @@ -2,12 +2,12 @@ .\" Title: amaddclient .\" Author: Kevin Till .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMADDCLIENT" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMADDCLIENT" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amadmin.8 b/man/amadmin.8 index b08d1da..7fd5aed 100644 --- a/man/amadmin.8 +++ b/man/amadmin.8 @@ -2,12 +2,12 @@ .\" Title: amadmin .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMADMIN" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMADMIN" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amadmin \- administrative interface to control Amanda backups .SH "SYNOPSIS" .HP \w'\fBamadmin\fR\ 'u -\fBamadmin\fR \fIconfig\fR \fIcommand\fR [\fIcommand_options\fR...] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamadmin\fR [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR \fIcommand\fR [\fIcommand_options\fR...] .SH "DESCRIPTION" .PP \fBAmadmin\fR diff --git a/man/amaespipe.8 b/man/amaespipe.8 index a201c42..a06bfc6 100644 --- a/man/amaespipe.8 +++ b/man/amaespipe.8 @@ -2,12 +2,12 @@ .\" Title: amaespipe .\" Author: Kevin Till .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMAESPIPE" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMAESPIPE" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-applications.7 b/man/amanda-applications.7 index 63f47e9..671775a 100644 --- a/man/amanda-applications.7 +++ b/man/amanda-applications.7 @@ -2,12 +2,12 @@ .\" Title: amanda-applications .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: Miscellanea -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-APPLICATIONS" "7" "10/18/2010" "Amanda 3\&.2\&.0" "Miscellanea" +.TH "AMANDA\-APPLICATIONS" "7" "12/14/2010" "Amanda 3\&.2\&.1" "Miscellanea" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-archive-format.5 b/man/amanda-archive-format.5 index ae2efdc..a5ba39d 100644 --- a/man/amanda-archive-format.5 +++ b/man/amanda-archive-format.5 @@ -2,12 +2,12 @@ .\" Title: amanda-archive-format .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: File formats and conventions -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-ARCHIVE\-FOR" "5" "10/18/2010" "Amanda 3\&.2\&.0" "File formats and conventions" +.TH "AMANDA\-ARCHIVE\-FOR" "5" "12/14/2010" "Amanda 3\&.2\&.1" "File formats and conventions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-auth.7 b/man/amanda-auth.7 index 84e2fef..9f89c18 100644 --- a/man/amanda-auth.7 +++ b/man/amanda-auth.7 @@ -2,12 +2,12 @@ .\" Title: amanda-auth .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: Miscellanea -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-AUTH" "7" "10/18/2010" "Amanda 3\&.2\&.0" "Miscellanea" +.TH "AMANDA\-AUTH" "7" "12/14/2010" "Amanda 3\&.2\&.1" "Miscellanea" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-changers.7 b/man/amanda-changers.7 index dd7df7f..1577369 100644 --- a/man/amanda-changers.7 +++ b/man/amanda-changers.7 @@ -2,12 +2,12 @@ .\" Title: amanda-changers .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: Miscellanea -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-CHANGERS" "7" "10/18/2010" "Amanda 3\&.2\&.0" "Miscellanea" +.TH "AMANDA\-CHANGERS" "7" "12/14/2010" "Amanda 3\&.2\&.1" "Miscellanea" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-client.conf.5 b/man/amanda-client.conf.5 index b7342aa..6d0bc0b 100644 --- a/man/amanda-client.conf.5 +++ b/man/amanda-client.conf.5 @@ -2,12 +2,12 @@ .\" Title: amanda-client.conf .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: File formats and conventions -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-CLIENT\&.CON" "5" "10/18/2010" "Amanda 3\&.2\&.0" "File formats and conventions" +.TH "AMANDA\-CLIENT\&.CON" "5" "12/14/2010" "Amanda 3\&.2\&.1" "File formats and conventions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-compatibility.7 b/man/amanda-compatibility.7 index 648e719..6839da9 100644 --- a/man/amanda-compatibility.7 +++ b/man/amanda-compatibility.7 @@ -2,12 +2,12 @@ .\" Title: amanda-compatibility .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: Miscellanea -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-COMPATIBILIT" "7" "10/18/2010" "Amanda 3\&.2\&.0" "Miscellanea" +.TH "AMANDA\-COMPATIBILIT" "7" "12/14/2010" "Amanda 3\&.2\&.1" "Miscellanea" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-devices.7 b/man/amanda-devices.7 index 9899670..6ff0a89 100644 --- a/man/amanda-devices.7 +++ b/man/amanda-devices.7 @@ -2,12 +2,12 @@ .\" Title: amanda-devices .\" Author: Ian Turner .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: Miscellanea -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-DEVICES" "7" "10/18/2010" "Amanda 3\&.2\&.0" "Miscellanea" +.TH "AMANDA\-DEVICES" "7" "12/14/2010" "Amanda 3\&.2\&.1" "Miscellanea" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-match.7 b/man/amanda-match.7 index 34cf1ce..9774c76 100644 --- a/man/amanda-match.7 +++ b/man/amanda-match.7 @@ -2,12 +2,12 @@ .\" Title: amanda-match .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: Miscellanea -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-MATCH" "7" "10/18/2010" "Amanda 3\&.2\&.0" "Miscellanea" +.TH "AMANDA\-MATCH" "7" "12/14/2010" "Amanda 3\&.2\&.1" "Miscellanea" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-scripts.7 b/man/amanda-scripts.7 index 2e827d6..bd43228 100644 --- a/man/amanda-scripts.7 +++ b/man/amanda-scripts.7 @@ -2,12 +2,12 @@ .\" Title: amanda-scripts .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: Miscellanea -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-SCRIPTS" "7" "10/18/2010" "Amanda 3\&.2\&.0" "Miscellanea" +.TH "AMANDA\-SCRIPTS" "7" "12/14/2010" "Amanda 3\&.2\&.1" "Miscellanea" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda-taperscan.7 b/man/amanda-taperscan.7 index a1a0bad..b4b5082 100644 --- a/man/amanda-taperscan.7 +++ b/man/amanda-taperscan.7 @@ -2,12 +2,12 @@ .\" Title: amanda-taperscan .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: Miscellanea -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\-TAPERSCAN" "7" "10/18/2010" "Amanda 3\&.2\&.0" "Miscellanea" +.TH "AMANDA\-TAPERSCAN" "7" "12/14/2010" "Amanda 3\&.2\&.1" "Miscellanea" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda.8 b/man/amanda.8 index 7841959..ec2d04c 100644 --- a/man/amanda.8 +++ b/man/amanda.8 @@ -2,12 +2,12 @@ .\" Title: amanda .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMANDA" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amanda.conf.5 b/man/amanda.conf.5 index b8b452e..e326db2 100644 --- a/man/amanda.conf.5 +++ b/man/amanda.conf.5 @@ -2,12 +2,12 @@ .\" Title: amanda.conf .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: File formats and conventions -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMANDA\&.CONF" "5" "10/18/2010" "Amanda 3\&.2\&.0" "File formats and conventions" +.TH "AMANDA\&.CONF" "5" "12/14/2010" "Amanda 3\&.2\&.1" "File formats and conventions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -951,6 +951,12 @@ Default: \fI0\fR\&. Debug level of the taper process .RE .PP +\fBdebug\-recovery\fR \fIint\fR +.RS 4 +Default: +\fI1\fR\&. Debug level of all recovery process +.RE +.PP \fBflush\-threshold\-dumped\fR \fIint\fR .RS 4 Default: diff --git a/man/amarchiver.8 b/man/amarchiver.8 index 8bf0d1f..cc2f4b2 100644 --- a/man/amarchiver.8 +++ b/man/amarchiver.8 @@ -2,12 +2,12 @@ .\" Title: amarchiver .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMARCHIVER" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMARCHIVER" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amcheck.8 b/man/amcheck.8 index d0286b2..714bac8 100644 --- a/man/amcheck.8 +++ b/man/amcheck.8 @@ -2,12 +2,12 @@ .\" Title: amcheck .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMCHECK" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMCHECK" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amcheck \- run Amanda self\-checks .SH "SYNOPSIS" .HP \w'\fBamcheck\fR\ 'u -\fBamcheck\fR [\-am] [\-w] [\-sclt] [\-M\ \fIaddress\fR] \fIconfig\fR [\fIhost\fR\ [\fIdisk\fR...]...] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamcheck\fR [\-am] [\-w] [\-sclt] [\-M\ \fIaddress\fR] [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR [\fIhost\fR\ [\fIdisk\fR...]...] .SH "DESCRIPTION" .PP \fBAmcheck\fR diff --git a/man/amcheckdb.8 b/man/amcheckdb.8 index 654916c..4be4ee8 100644 --- a/man/amcheckdb.8 +++ b/man/amcheckdb.8 @@ -2,12 +2,12 @@ .\" Title: amcheckdb .\" Author: Adrian T. Filipi-Martin .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMCHECKDB" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMCHECKDB" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amcheckdump.8 b/man/amcheckdump.8 index 0116151..40f7d74 100644 --- a/man/amcheckdump.8 +++ b/man/amcheckdump.8 @@ -2,12 +2,12 @@ .\" Title: amcheckdump .\" Author: Ian Turner .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMCHECKDUMP" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMCHECKDUMP" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amcheckdump \- check the results of an Amanda dump .SH "SYNOPSIS" .HP \w'\fBamcheckdump\fR\ 'u -\fBamcheckdump\fR \fIconfig\fR [\-\-timestamp|\-t\ \fItimestamp\fR] [\-\-verbose] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamcheckdump\fR [\-\-timestamp|\-t\ \fItimestamp\fR] [\-\-verbose] [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR .SH "DESCRIPTION" .PP \fBAmcheckdump\fR diff --git a/man/amcleanup.8 b/man/amcleanup.8 index 0d1372c..c337797 100644 --- a/man/amcleanup.8 +++ b/man/amcleanup.8 @@ -2,12 +2,12 @@ .\" Title: amcleanup .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMCLEANUP" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMCLEANUP" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amcrypt-ossl-asym.8 b/man/amcrypt-ossl-asym.8 index 2e0b3c4..5a6c0b0 100644 --- a/man/amcrypt-ossl-asym.8 +++ b/man/amcrypt-ossl-asym.8 @@ -2,12 +2,12 @@ .\" Title: amcrypt-ossl-asym .\" Author: Kevin Till .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMCRYPT\-OSSL\-ASYM" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMCRYPT\-OSSL\-ASYM" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amcrypt-ossl.8 b/man/amcrypt-ossl.8 index 7db4f3d..9022e60 100644 --- a/man/amcrypt-ossl.8 +++ b/man/amcrypt-ossl.8 @@ -2,12 +2,12 @@ .\" Title: amcrypt-ossl .\" Author: Kevin Till .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMCRYPT\-OSSL" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMCRYPT\-OSSL" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amcrypt.8 b/man/amcrypt.8 index 170dbf6..af811b0 100644 --- a/man/amcrypt.8 +++ b/man/amcrypt.8 @@ -2,12 +2,12 @@ .\" Title: amcrypt .\" Author: Kevin Till .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMCRYPT" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMCRYPT" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amcryptsimple.8 b/man/amcryptsimple.8 index 708f64f..accf385 100644 --- a/man/amcryptsimple.8 +++ b/man/amcryptsimple.8 @@ -2,12 +2,12 @@ .\" Title: amcryptsimple .\" Author: Kevin Till .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMCRYPTSIMPLE" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMCRYPTSIMPLE" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amdevcheck.8 b/man/amdevcheck.8 index 089e48a..baeb1b5 100644 --- a/man/amdevcheck.8 +++ b/man/amdevcheck.8 @@ -2,12 +2,12 @@ .\" Title: amdevcheck .\" Author: Ian Turner .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMDEVCHECK" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMDEVCHECK" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amdevcheck \- Validate an Amanda device and volume\&. .SH "SYNOPSIS" .HP \w'\fBamdevcheck\fR\ 'u -\fBamdevcheck\fR \fIconfig\fR [\fIdevice\-name\fR] [\-\-label] [\-properties\ \fIlist\fR] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamdevcheck\fR [\-\-label] [\-properties\ \fIlist\fR] [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR [\fIdevice\-name\fR] .SH "DESCRIPTION" .PP diff --git a/man/amdump.8 b/man/amdump.8 index bd2fcd1..dc5c0e5 100644 --- a/man/amdump.8 +++ b/man/amdump.8 @@ -2,12 +2,12 @@ .\" Title: amdump .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMDUMP" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMDUMP" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amdump \- back up all disks in an Amanda configuration .SH "SYNOPSIS" .HP \w'\fBamdump\fR\ 'u -\fBamdump\fR \fIconfig\fR [\fB\-\-no\-taper\fR] [\fIhost\fR\ [\fIdisk\fR...]...] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamdump\fR [\fB\-\-no\-taper\fR] [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR [\fIhost\fR\ [\fIdisk\fR...]...] .SH "DESCRIPTION" .PP \fBAmdump\fR diff --git a/man/amfetchdump.8 b/man/amfetchdump.8 index 7f7d91a..d5a7b94 100644 --- a/man/amfetchdump.8 +++ b/man/amfetchdump.8 @@ -2,12 +2,12 @@ .\" Title: amfetchdump .\" Author: John Stange .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMFETCHDUMP" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMFETCHDUMP" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amfetchdump \- extract backup images from multiple Amanda tapes\&. .SH "SYNOPSIS" .HP \w'\fBamfetchdump\fR\ 'u -\fBamfetchdump\fR [\-phcClawns] [\-d\ \fIdevice\fR] [\-O\ \fIdirectory\fR] [\-b\ \fIblocksize\fR] [\-\-header\-fd\ \fIfd\fR] [\-\-header\-file\ \fIfilename\fR] [\-o\ \fIconfigoption\fR]... \fIconfig\fR \fIhostname\fR [\fIdisk\fR\ [\ \fIdate\fR\ [\ \fIlevel\fR\ [\ \fIhostname\fR\ [\&.\&.\&.]\ ]\ ]\ ]] +\fBamfetchdump\fR [\-phcClawns] [\-d\ \fIdevice\fR] [\-O\ \fIdirectory\fR] [\-b\ \fIblocksize\fR] [\-\-header\-fd\ \fIfd\fR] [\-\-header\-file\ \fIfilename\fR] [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR \fIhostname\fR [\fIdisk\fR\ [\ \fIdate\fR\ [\ \fIlevel\fR\ [\ \fIhostname\fR\ [\&.\&.\&.]\ ]\ ]\ ]] .SH "DESCRIPTION" .PP \fBAmfetchdump\fR diff --git a/man/amflush.8 b/man/amflush.8 index 2cec85a..d1e8111 100644 --- a/man/amflush.8 +++ b/man/amflush.8 @@ -2,12 +2,12 @@ .\" Title: amflush .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMFLUSH" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMFLUSH" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amflush \- flush Amanda backup files from holding disk to tape .SH "SYNOPSIS" .HP \w'\fBamflush\fR\ 'u -\fBamflush\fR [\-b] [\-f] [\-s] [\-D\ \fIdatestamp\fR] \fIconfig\fR [\fIhost\fR\ [\fIdisk\fR...]...] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamflush\fR [\-b] [\-f] [\-s] [\-D\ \fIdatestamp\fR] [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR [\fIhost\fR\ [\fIdisk\fR...]...] .SH "DESCRIPTION" .PP \fBAmflush\fR diff --git a/man/amgetconf.8 b/man/amgetconf.8 index a1085d0..5798016 100644 --- a/man/amgetconf.8 +++ b/man/amgetconf.8 @@ -2,12 +2,12 @@ .\" Title: amgetconf .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMGETCONF" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMGETCONF" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amgetconf \- look up configuration parameters and manipulate debug logs .SH "SYNOPSIS" .HP \w'\fBamgetconf\fR\ 'u -\fBamgetconf\fR [\fI\-l|\-\-list\fR] [\fI\-\-client\fR] [\fI\-\-execute\-where\ client|server\fR] [\fIconfig\fR] \fIparameter\fR [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamgetconf\fR [\fI\-l|\-\-list\fR] [\fI\-\-client\fR] [\fI\-\-execute\-where\ client|server\fR] [\fB\-o\fR\ \fIconfigoption\fR...] [\fIconfig\fR] \fIparameter\fR .SH "DESCRIPTION" .PP \fBAmgetconf\fR diff --git a/man/amgpgcrypt.8 b/man/amgpgcrypt.8 index 3d2fdac..d29603a 100644 --- a/man/amgpgcrypt.8 +++ b/man/amgpgcrypt.8 @@ -2,12 +2,12 @@ .\" Title: amgpgcrypt .\" Author: Kevin Till .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMGPGCRYPT" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMGPGCRYPT" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amgtar.8 b/man/amgtar.8 index 0b2e856..432d828 100644 --- a/man/amgtar.8 +++ b/man/amgtar.8 @@ -2,12 +2,12 @@ .\" Title: amgtar .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMGTAR" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMGTAR" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amlabel.8 b/man/amlabel.8 index c954d08..8384170 100644 --- a/man/amlabel.8 +++ b/man/amlabel.8 @@ -2,12 +2,12 @@ .\" Title: amlabel .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMLABEL" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMLABEL" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amlabel \- label an Amanda tape .SH "SYNOPSIS" .HP \w'\fBamlabel\fR\ 'u -\fBamlabel\fR \fIconfig\fR \fIlabel\fR [slot\ \fIslot\fR] [\fB\-f\fR] [\fB\-\-version\fR] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamlabel\fR [\fB\-f\fR] [\fB\-\-version\fR] [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR \fIlabel\fR [slot\ \fIslot\fR] .SH "DESCRIPTION" .PP This command applies a label to an Amanda volume, erasing the volume in the process\&. diff --git a/man/amoverview.8 b/man/amoverview.8 index c3207cd..ce51248 100644 --- a/man/amoverview.8 +++ b/man/amoverview.8 @@ -2,12 +2,12 @@ .\" Title: amoverview .\" Author: Stefan G. Weichinger .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMOVERVIEW" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMOVERVIEW" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amoverview \- display file systems processed by Amanda over time .SH "SYNOPSIS" .HP \w'\fBamoverview\fR\ 'u -\fBamoverview\fR [[\-\-config\ ]\ \fIconfig\fR] [\-\-hostwidth\ \fIwidth\fR] [\-\-diskwidth\ \fIwidth\fR] [\-\-skipmissed] [\-\-last] [\-\-num0] [\-\-togo0] [\-\-verbose] +\fBamoverview\fR [\-\-hostwidth\ \fIwidth\fR] [\-\-diskwidth\ \fIwidth\fR] [\-\-skipmissed] [\-\-last] [\-\-num0] [\-\-togo0] [\-\-verbose] [\-\-config\ ]\ \fIconfig\fR .SH "DESCRIPTION" .PP \fBAmoverview\fR diff --git a/man/ampgsql.8 b/man/ampgsql.8 index 3490b5d..9158352 100644 --- a/man/ampgsql.8 +++ b/man/ampgsql.8 @@ -2,12 +2,12 @@ .\" Title: ampgsql .\" Author: Nikolas Coukouma .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMPGSQL" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMPGSQL" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amplot.8 b/man/amplot.8 index f94fbf5..c809db2 100644 --- a/man/amplot.8 +++ b/man/amplot.8 @@ -2,12 +2,12 @@ .\" Title: amplot .\" Author: Olafur Gudmundsson .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMPLOT" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMPLOT" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amraw.8 b/man/amraw.8 index ebb243e..fdb11aa 100644 --- a/man/amraw.8 +++ b/man/amraw.8 @@ -2,12 +2,12 @@ .\" Title: amraw .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMRAW" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMRAW" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amrecover.8 b/man/amrecover.8 index 90bb0b0..58d81a3 100644 --- a/man/amrecover.8 +++ b/man/amrecover.8 @@ -2,12 +2,12 @@ .\" Title: amrecover .\" Author: Alan M. McIvor .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMRECOVER" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMRECOVER" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amrecover \- Amanda index database browser .SH "SYNOPSIS" .HP \w'\fBamrecover\fR\ 'u -\fBamrecover\fR [\-C\ \fIconfig\fR] [\-s\ \fIindex\-server\fR] [\-t\ \fItape\-server\fR] [\-d\ \fItape\-device\fR] [\-h\ \fIhostname\fR] [\-o\ \fIconfigoption\fR]... +\fBamrecover\fR [\-s\ \fIindex\-server\fR] [\-t\ \fItape\-server\fR] [\-d\ \fItape\-device\fR] [\-h\ \fIhostname\fR] [\fB\-o\fR\ \fIconfigoption\fR...] [\-C\ \fIconfig\fR] .SH "DESCRIPTION" .PP \fBAmrecover\fR diff --git a/man/amreport.8 b/man/amreport.8 index a0d4790..a36acbf 100644 --- a/man/amreport.8 +++ b/man/amreport.8 @@ -2,12 +2,12 @@ .\" Title: amreport .\" Author: Stefan G. Weichinger .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMREPORT" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMREPORT" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amreport \- generate a formatted output of statistics for an Amanda run .SH "SYNOPSIS" .HP \w'\fBamreport\fR\ 'u -\fBamreport\fR [\fIconfig\fR] [\fB\-o\fR\ \fIconfigoption\fR...] [(1)\ \fIcommand\-line options\fR | (2)\ \fIscript options\fR] +\fBamreport\fR [\fB\-o\fR\ \fIconfigoption\fR...] [(1)\ \fIcommand\-line options\fR | (2)\ \fIscript options\fR] [\fIconfig\fR] .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 diff --git a/man/amrestore.8 b/man/amrestore.8 index 3c7c540..4219045 100644 --- a/man/amrestore.8 +++ b/man/amrestore.8 @@ -2,12 +2,12 @@ .\" Title: amrestore .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMRESTORE" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMRESTORE" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amrmtape.8 b/man/amrmtape.8 index 1f34c18..1441c76 100644 --- a/man/amrmtape.8 +++ b/man/amrmtape.8 @@ -2,12 +2,12 @@ .\" Title: amrmtape .\" Author: Adrian T. Filipi-Martin .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMRMTAPE" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMRMTAPE" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amsamba.8 b/man/amsamba.8 index 875c288..51e430a 100644 --- a/man/amsamba.8 +++ b/man/amsamba.8 @@ -2,12 +2,12 @@ .\" Title: amsamba .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMSAMBA" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMSAMBA" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amserverconfig.8 b/man/amserverconfig.8 index 06d65e0..b7d3407 100644 --- a/man/amserverconfig.8 +++ b/man/amserverconfig.8 @@ -2,12 +2,12 @@ .\" Title: amserverconfig .\" Author: Kevin Till .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMSERVERCONFIG" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMSERVERCONFIG" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amservice.8 b/man/amservice.8 index 2ea8396..e8650f1 100644 --- a/man/amservice.8 +++ b/man/amservice.8 @@ -2,12 +2,12 @@ .\" Title: amservice .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMSERVICE" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMSERVICE" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amservice \- run an amanda service on a client .SH "SYNOPSIS" .HP \w'\fBamservice\fR\ 'u -\fBamservice\fR \fIhostname\fR \fIauth\fR \fIservice\fR [\-f\ \fIinput_file\fR] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamservice\fR [\-f\ \fIinput_file\fR] [\fB\-o\fR\ \fIconfigoption\fR...] \fIhostname\fR \fIauth\fR \fIservice\fR .SH "DESCRIPTION" .PP \fBAmservice\fR diff --git a/man/amstar.8 b/man/amstar.8 index 067e9dd..d240d11 100644 --- a/man/amstar.8 +++ b/man/amstar.8 @@ -2,12 +2,12 @@ .\" Title: amstar .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMSTAR" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMSTAR" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amstatus.8 b/man/amstatus.8 index 1d37ed2..4ea7141 100644 --- a/man/amstatus.8 +++ b/man/amstatus.8 @@ -2,12 +2,12 @@ .\" Title: amstatus .\" Author: Stefan G. Weichinger .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMSTATUS" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMSTATUS" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amstatus \- display the state of an Amanda run .SH "SYNOPSIS" .HP \w'\fBamstatus\fR\ 'u -\fBamstatus\fR [\-\-config] \fIconfig\fR [\-\-file\ \fIamdumpfile\fR] [\-\-summary] [\-\-dumping] [\-\-waitdumping] [\-\-waittaper] [\-\-dumpingtape] [\-\-writingtape] [\-\-finished] [\-\-failed] [\-\-estimate] [\-\-gestimate] [\-\-stats] [\-\-locale\-independent\-date\-format] +\fBamstatus\fR [\-\-file\ \fIamdumpfile\fR] [\-\-summary] [\-\-dumping] [\-\-waitdumping] [\-\-waittaper] [\-\-dumpingtape] [\-\-writingtape] [\-\-finished] [\-\-failed] [\-\-estimate] [\-\-gestimate] [\-\-stats] [\-\-locale\-independent\-date\-format] [\-\-config] \fIconfig\fR .SH "DESCRIPTION" .PP \fBAmstatus\fR diff --git a/man/amsuntar.8 b/man/amsuntar.8 index a439259..c5668a0 100644 --- a/man/amsuntar.8 +++ b/man/amsuntar.8 @@ -2,12 +2,12 @@ .\" Title: amsuntar .\" Author: Satya Ganga .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMSUNTAR" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMSUNTAR" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amtape.8 b/man/amtape.8 index 85e2326..e2059d2 100644 --- a/man/amtape.8 +++ b/man/amtape.8 @@ -2,12 +2,12 @@ .\" Title: amtape .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMTAPE" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMTAPE" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -22,7 +22,7 @@ amtape \- Control Amanda changers .SH "SYNOPSIS" .HP \w'\fBamtape\fR\ 'u -\fBamtape\fR \fIconfig\fR \fIsubcommand\fR [\fIsubcommand_options\fR...] [\fB\-o\fR\ \fIconfigoption\fR...] +\fBamtape\fR [\fB\-o\fR\ \fIconfigoption\fR...] \fIconfig\fR \fIsubcommand\fR [\fIsubcommand_options\fR...] .SH "DESCRIPTION" .PP \fBAmtape\fR diff --git a/man/amtapetype.8 b/man/amtapetype.8 index b014129..6563ef4 100644 --- a/man/amtapetype.8 +++ b/man/amtapetype.8 @@ -2,12 +2,12 @@ .\" Title: amtapetype .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMTAPETYPE" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMTAPETYPE" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amtoc.8 b/man/amtoc.8 index 712455b..2cd8cb7 100644 --- a/man/amtoc.8 +++ b/man/amtoc.8 @@ -2,12 +2,12 @@ .\" Title: amtoc .\" Author: Nicolas Mayencourt .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMTOC" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMTOC" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amvault.8 b/man/amvault.8 index fe6e7c9..1752098 100644 --- a/man/amvault.8 +++ b/man/amvault.8 @@ -2,12 +2,12 @@ .\" Title: amvault .\" Author: Dustin J. Mitchell .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMVAULT" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMVAULT" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amzfs-sendrecv.8 b/man/amzfs-sendrecv.8 index 8d17da7..38c4df8 100644 --- a/man/amzfs-sendrecv.8 +++ b/man/amzfs-sendrecv.8 @@ -2,12 +2,12 @@ .\" Title: amzfs-sendrecv .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMZFS\-SENDRECV" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMZFS\-SENDRECV" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/amzfs-snapshot.8 b/man/amzfs-snapshot.8 index 458b491..a62b054 100644 --- a/man/amzfs-snapshot.8 +++ b/man/amzfs-snapshot.8 @@ -2,12 +2,12 @@ .\" Title: amzfs-snapshot .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "AMZFS\-SNAPSHOT" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "AMZFS\-SNAPSHOT" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/disklist.5 b/man/disklist.5 index 349d7da..652ba8d 100644 --- a/man/disklist.5 +++ b/man/disklist.5 @@ -2,12 +2,12 @@ .\" Title: disklist .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: File formats and conventions -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "DISKLIST" "5" "10/18/2010" "Amanda 3\&.2\&.0" "File formats and conventions" +.TH "DISKLIST" "5" "12/14/2010" "Amanda 3\&.2\&.1" "File formats and conventions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/script-email.8 b/man/script-email.8 index e1e275a..9fbfd01 100644 --- a/man/script-email.8 +++ b/man/script-email.8 @@ -2,12 +2,12 @@ .\" Title: script-email .\" Author: Jean-Louis Martineau .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: System Administration Commands -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "SCRIPT\-EMAIL" "8" "10/18/2010" "Amanda 3\&.2\&.0" "System Administration Commands" +.TH "SCRIPT\-EMAIL" "8" "12/14/2010" "Amanda 3\&.2\&.1" "System Administration Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/man/tapelist.5 b/man/tapelist.5 index ffd848c..29088ae 100644 --- a/man/tapelist.5 +++ b/man/tapelist.5 @@ -2,12 +2,12 @@ .\" Title: tapelist .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 -.\" Date: 10/18/2010 +.\" Date: 12/14/2010 .\" Manual: File formats and conventions -.\" Source: Amanda 3.2.0 +.\" Source: Amanda 3.2.1 .\" Language: English .\" -.TH "TAPELIST" "5" "10/18/2010" "Amanda 3\&.2\&.0" "File formats and conventions" +.TH "TAPELIST" "5" "12/14/2010" "Amanda 3\&.2\&.1" "File formats and conventions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -27,7 +27,7 @@ The file contains the list of tapes in active use\&. This file is not ordinarily ordinarily edited or examined manually\&. Its format may change, or it may be removed altogether, in future versions of Amanda\&. It contains lines of the form: .PP .nf -YYYYMMDD label flags [#comment] +YYYYMMDD label flags [BARCODE:barcode] [#comment] .fi .PP Where @@ -43,7 +43,7 @@ is one of "reuse" or "no\-reuse" and tells Amanda whether the tape may be reused dumps\&. See the \fBreuse\fR options of -\fBamadmin\fR(8)\&. The optional comment is prefixed with a \'#\' and continues to the end of the line\&. Amanda will maintain this comment until the tape is overwritten\&. Note that comments are not allowed on blank lines\&. +\fBamadmin\fR(8)\&. The optional barcode is prefixed with \'BARCODE\' if the volume have a barcode\&. The optional comment is prefixed with a \'#\' and continues to the end of the line\&. Amanda will maintain this comment until the tape is overwritten\&. Note that comments are not allowed on blank lines\&. .PP The file is sorted such that the most\-recently used tape appears on the first line, and the oldest tape appears on the last line\&. .PP diff --git a/man/xml-source/amadmin.8.xml b/man/xml-source/amadmin.8.xml index 7bc1f2f..5d0905a 100644 --- a/man/xml-source/amadmin.8.xml +++ b/man/xml-source/amadmin.8.xml @@ -30,10 +30,10 @@ amadmin + &configoverride.synopsis; config command command_options - &configoverride.synopsis; diff --git a/man/xml-source/amanda.conf.5.xml b/man/xml-source/amanda.conf.5.xml index 179722e..6964303 100644 --- a/man/xml-source/amanda.conf.5.xml +++ b/man/xml-source/amanda.conf.5.xml @@ -1230,6 +1230,15 @@ Debug level of the taper process + + debug-recovery int + +Default: +1. +Debug level of all recovery process + + + flush-threshold-dumped int diff --git a/man/xml-source/amcheck.8.xml b/man/xml-source/amcheck.8.xml index 9b64135..be04e9b 100644 --- a/man/xml-source/amcheck.8.xml +++ b/man/xml-source/amcheck.8.xml @@ -33,12 +33,12 @@ -w -sclt -M address + &configoverride.synopsis; config host disk - &configoverride.synopsis; diff --git a/man/xml-source/amcheckdump.8.xml b/man/xml-source/amcheckdump.8.xml index 9cbe5dc..847318a 100644 --- a/man/xml-source/amcheckdump.8.xml +++ b/man/xml-source/amcheckdump.8.xml @@ -26,10 +26,10 @@ amcheckdump - config --timestamp|-t timestamp --verbose &configoverride.synopsis; + config diff --git a/man/xml-source/amdevcheck.8.xml b/man/xml-source/amdevcheck.8.xml index 9ec94fe..6232e5a 100644 --- a/man/xml-source/amdevcheck.8.xml +++ b/man/xml-source/amdevcheck.8.xml @@ -27,10 +27,6 @@ amdevcheck - config - - device-name - --label @@ -38,6 +34,10 @@ -properties list &configoverride.synopsis; + config + + device-name + diff --git a/man/xml-source/amdump.8.xml b/man/xml-source/amdump.8.xml index 166ec71..bf170da 100644 --- a/man/xml-source/amdump.8.xml +++ b/man/xml-source/amdump.8.xml @@ -29,13 +29,13 @@ amdump - config + &configoverride.synopsis; + config host disk - &configoverride.synopsis; diff --git a/man/xml-source/amfetchdump.8.xml b/man/xml-source/amfetchdump.8.xml index f81d191..863b893 100644 --- a/man/xml-source/amfetchdump.8.xml +++ b/man/xml-source/amfetchdump.8.xml @@ -34,7 +34,7 @@ -b blocksize --header-fd fd --header-file filename - -o configoption + &configoverride.synopsis; config hostname diff --git a/man/xml-source/amflush.8.xml b/man/xml-source/amflush.8.xml index c27261b..e406111 100644 --- a/man/xml-source/amflush.8.xml +++ b/man/xml-source/amflush.8.xml @@ -33,12 +33,12 @@ -f -s -D datestamp + &configoverride.synopsis; config host disk - &configoverride.synopsis; diff --git a/man/xml-source/amgetconf.8.xml b/man/xml-source/amgetconf.8.xml index 31356af..a2b797a 100644 --- a/man/xml-source/amgetconf.8.xml +++ b/man/xml-source/amgetconf.8.xml @@ -31,9 +31,9 @@ -l|--list --client --execute-where client|server + &configoverride.synopsis; config parameter - &configoverride.synopsis; diff --git a/man/xml-source/amlabel.8.xml b/man/xml-source/amlabel.8.xml index 3882882..66046ac 100644 --- a/man/xml-source/amlabel.8.xml +++ b/man/xml-source/amlabel.8.xml @@ -30,12 +30,12 @@ amlabel - config - label - slot slot &version.synopsis; &configoverride.synopsis; + config + label + slot slot diff --git a/man/xml-source/amoverview.8.xml b/man/xml-source/amoverview.8.xml index acd3704..8d913fd 100644 --- a/man/xml-source/amoverview.8.xml +++ b/man/xml-source/amoverview.8.xml @@ -28,7 +28,6 @@ amoverview - --config config --hostwidth width --diskwidth width --skipmissed @@ -36,6 +35,7 @@ --num0 --togo0 --verbose + --config config diff --git a/man/xml-source/amrecover.8.xml b/man/xml-source/amrecover.8.xml index aaef74e..5e8b1bc 100644 --- a/man/xml-source/amrecover.8.xml +++ b/man/xml-source/amrecover.8.xml @@ -30,12 +30,12 @@ amrecover - -C config -s index-server -t tape-server -d tape-device -h hostname - -o configoption + &configoverride.synopsis; + -C config diff --git a/man/xml-source/amreport.8.xml b/man/xml-source/amreport.8.xml index 27defce..3d31fdc 100644 --- a/man/xml-source/amreport.8.xml +++ b/man/xml-source/amreport.8.xml @@ -28,11 +28,11 @@ amreport - config &configoverride.synopsis; command-line options | script options + config --log=logfile --ps=filename diff --git a/man/xml-source/amservice.8.xml b/man/xml-source/amservice.8.xml index 20f0257..4bd3cd8 100644 --- a/man/xml-source/amservice.8.xml +++ b/man/xml-source/amservice.8.xml @@ -29,11 +29,11 @@ amservice + -finput_file + &configoverride.synopsis; hostname auth service - -finput_file - &configoverride.synopsis; diff --git a/man/xml-source/amstatus.8.xml b/man/xml-source/amstatus.8.xml index 358741d..6e210d8 100644 --- a/man/xml-source/amstatus.8.xml +++ b/man/xml-source/amstatus.8.xml @@ -29,8 +29,6 @@ amstatus - --config - config --file amdumpfile --summary --dumping @@ -44,6 +42,8 @@ --gestimate --stats --locale-independent-date-format + --config + config diff --git a/man/xml-source/amtape.8.xml b/man/xml-source/amtape.8.xml index c466790..656e011 100644 --- a/man/xml-source/amtape.8.xml +++ b/man/xml-source/amtape.8.xml @@ -30,10 +30,10 @@ amtape + &configoverride.synopsis; config subcommand subcommand_options - &configoverride.synopsis; diff --git a/man/xml-source/tapelist.5.xml b/man/xml-source/tapelist.5.xml index 1399681..56683c6 100644 --- a/man/xml-source/tapelist.5.xml +++ b/man/xml-source/tapelist.5.xml @@ -34,7 +34,7 @@ tapes in active use. This file is not ordinarily ordinarily edited or examined manually. Its format may change, or it may be removed altogether, in future versions of Amanda. It contains lines of the form: -YYYYMMDD label flags [#comment] +YYYYMMDD label flags [BARCODE:barcode] [#comment] Where @@ -51,6 +51,7 @@ remap='B'>dumpcycle dumps. See the reuse options of . +The optional barcode is prefixed with 'BARCODE' if the volume have a barcode. The optional comment is prefixed with a '#' and continues to the end of the line. Amanda will maintain this comment until the tape is overwritten. Note that comments are not allowed on blank lines. diff --git a/man/xslt/html.xsl.in b/man/xslt/html.xsl.in index 8eeb15d..638177f 100644 --- a/man/xslt/html.xsl.in +++ b/man/xslt/html.xsl.in @@ -149,6 +149,11 @@ + +
Amanda-@VERSION@
+
+
+
Amanda-@VERSION@
diff --git a/ndmp-src/Makefile.in b/ndmp-src/Makefile.in index 9ce11b0..b024d9c 100644 --- a/ndmp-src/Makefile.in +++ b/ndmp-src/Makefile.in @@ -484,7 +484,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/oldrecover-src/Makefile.in b/oldrecover-src/Makefile.in index 747ec0b..2fa3eb6 100644 --- a/oldrecover-src/Makefile.in +++ b/oldrecover-src/Makefile.in @@ -365,7 +365,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/packaging/Makefile.in b/packaging/Makefile.in index 2add4a3..bdc04f2 100644 --- a/packaging/Makefile.in +++ b/packaging/Makefile.in @@ -246,7 +246,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/packaging/deb/rules b/packaging/deb/rules index 779c546..4fbc099 100755 --- a/packaging/deb/rules +++ b/packaging/deb/rules @@ -52,6 +52,7 @@ build-stamp: /sbin/dump /usr/bin/smbclient MAKEFLAGS="-j1 " \ CFLAGS="-pipe " \ MAILER=/usr/bin/mail \ + LDFLAGS="-Wl,--as-needed" \ --quiet \ --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ diff --git a/packaging/rpm/amanda.spec.src b/packaging/rpm/amanda.spec.src index 5155879..291c44f 100644 --- a/packaging/rpm/amanda.spec.src +++ b/packaging/rpm/amanda.spec.src @@ -31,6 +31,10 @@ %{?PKG_CONFIG_PATH:%{echo:PKG_CONFIG_PATH = %{PKG_CONFIG_PATH}}} +# LDFLAGS: newer gnu linkers can use "-Wl,--as-needed", while older ones, +# like rhel3 and sles9 can't. +%define LDFLAGS -Wl,--as-needed + # Define which Distribution we are building: # Try to detect the distribution we are building: %if %{_vendor} == redhat @@ -42,30 +46,35 @@ %define disttag fc %define distver 3 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %endif %if %(awk '$1 == "Fedora" && $4 ~ /4.*/ { exit 1; }' /etc/redhat-release; echo $?) %define dist fedora %define disttag fc %define distver 4 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %endif %if %(awk '$1 == "Fedora" && $4 ~ /5.*/ { exit 1; }' /etc/redhat-release; echo $?) %define dist fedora %define disttag fc %define distver 5 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %endif %if %(awk '$1 == "Fedora" && $4 ~ /6.*/ { exit 1; }' /etc/redhat-release; echo $?) %define dist fedora %define disttag fc %define distver 6 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %endif %if %(awk '$1 == "Fedora" && $3 ~ /7.*/ { exit 1; }' /etc/redhat-release; echo $?) %define dist fedora %define disttag fc %define distver 7 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %endif # if macro cannot have an empty test and we're just testing the existance %if %{?fedora:yes}%{!?fedora:no} == yes @@ -74,6 +83,10 @@ %define distver %{fedora} %if %{distver} <= 8 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl + %endif + %if %{distver} >= 9 + %define curl libcurl %endif %if %{_host_cpu} == x86_64 && %{_target_cpu} == i686 # Do nothing if PKG_CONFIG_PATH was set by the user above. @@ -86,7 +99,9 @@ %define distver 3 %define tarver 1.14 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %define without_ipv6 --without-ipv6 + %undefine LDFLAGS %endif %if %(awk '$1 == "Red" && $7 ~ /4.*/ { exit 1; }' /etc/redhat-release; echo $?) %define dist redhat @@ -94,6 +109,7 @@ %define distver 4 %define tarver 1.14 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %endif %if %(awk '$1 == "CentOS" && $3 ~ /4.*/ { exit 1; }' /etc/redhat-release; echo $?) %define dist redhat @@ -101,18 +117,25 @@ %define distver 4 %define tarver 1.14 %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %endif %if %(awk '$1 == "Red" && $7 ~ /5.*/ { exit 1; }' /etc/redhat-release; echo $?) %define dist redhat %define disttag rhel %define distver 5 - %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl %endif %if %(awk '$1 == "CentOS" && $3 ~ /5.*/ { exit 1; }' /etc/redhat-release; echo $?) %define dist redhat %define disttag rhel %define distver 5 - %define requires_libtermcap Requires: libtermcap.so.2 + %define curl curl + %endif + %if %(awk '$1 == "Red" && $7 ~ /6.*/ { exit 1; }' /etc/redhat-release; echo $?) + %define dist redhat + %define disttag rhel + %define distver 6 + %define curl libcurl %endif # If dist is undefined, we didn't detect. @@ -128,6 +151,12 @@ %if %(awk '$1 == "SUSE" { exit 1; }' /etc/SuSE-release; echo $?) %define disttag %(awk '$1=="SUSE" {$3=="Enterprise" ? TAG="sles" : TAG="suse" ; print TAG}' /etc/SuSE-release) %define distver %(awk '$1=="SUSE" {$3=="Enterprise" ? VER=$5 : VER=$3 ; print VER}' /etc/SuSE-release) + # Always use quotes in rpm comparisons if values could be interpreted + # as integers. + %define curl curl + %if "%{distver}" == "9" + %undefine LDFLAGS + %endif %endif %endif @@ -187,8 +216,8 @@ BuildRequires: readline # Note: newer distros have changed most *-devel to lib*-devel, and added a # provides tag for backwards compat. BuildRequires: readline-devel -BuildRequires: curl >= 7.10.0 -BuildRequires: curl-devel >= 7.10.0 +BuildRequires: %{curl} >= 7.10.0 +BuildRequires: %{curl}-devel >= 7.10.0 BuildRequires: openssl BuildRequires: openssl-devel BuildRequires: perl(ExtUtils::Embed) @@ -202,10 +231,7 @@ Requires: /usr/sbin/usermod Requires: fileutils Requires: grep Requires: gnuplot -Requires: libc.so.6 -Requires: libm.so.6 -Requires: libnsl.so.1 -Requires: curl >= 7.10.0 +Requires: %{curl} >= 7.10.0 Requires: openssl Requires: xinetd Requires: perl >= 5.6.0 @@ -223,9 +249,6 @@ Requires: grep %{?requires_libtermcap} %{?requires_initscripts} Requires: xinetd -Requires: libc.so.6 -Requires: libm.so.6 -Requires: libnsl.so.1 Requires: perl >= 5.6.0 Requires: tar >= %{tarver} Requires: readline @@ -242,9 +265,6 @@ Group: %{rpm_group} Requires: /bin/awk Requires: fileutils Requires: grep -Requires: libc.so.6 -Requires: libm.so.6 -Requires: libnsl.so.1 %{?requires_libtermcap} %{?requires_initscripts} Requires: xinetd @@ -348,9 +368,11 @@ Amanda Documentation is available at: http://wiki.zmanda.com/ # Set PKG_CONFIG_PATH=some/path if some/path was set on the command line, or by # the platform detection bits. # without_ipv6 should only be defined on rhel3. +# LDFLAGS macro is defined except on rhel3. ./configure \ %{?PKG_CONFIG_PATH: PKG_CONFIG_PATH=%PKG_CONFIG_PATH} \ CFLAGS="%{optflags} -g -pipe" CXXFLAGS="%{optflags}" \ + %{?LDFLAGS:LDFLAGS="${LDFLAGS} %{?LDFLAGS:%LDFLAGS}"} \ --quiet \ --prefix=%{PREFIX} \ --sysconfdir=%{SYSCONFDIR} \ diff --git a/perl/Amanda/Changer.pm b/perl/Amanda/Changer.pm index 4135986..9c6e88f 100644 --- a/perl/Amanda/Changer.pm +++ b/perl/Amanda/Changer.pm @@ -859,6 +859,10 @@ sub _new_from_uri { # (note: this sub is patched by the installcheck) die "$pkgname->new did not return an Amanda::Changer object or an Amanda::Changer::Error" unless ($rv->isa("Amanda::Changer") or $rv->isa("Amanda::Changer::Error")); + if ($rv->isa("Amanda::Changer::Error")) { + return $rv; + } + if ($rv->isa("Amanda::Changer")) { # add an instance variable or two $rv->{'fatal_error'} = undef; diff --git a/perl/Amanda/Changer/disk.pm b/perl/Amanda/Changer/disk.pm index e633c45..a04fd0d 100644 --- a/perl/Amanda/Changer/disk.pm +++ b/perl/Amanda/Changer/disk.pm @@ -189,11 +189,12 @@ sub inventory { if ($label) { $s->{'label'} = $self->_get_slot_label($slot); $s->{'f_type'} = "".$Amanda::Header::F_TAPESTART; + $s->{'device_status'} = "".$DEVICE_STATUS_SUCCESS; } else { $s->{'label'} = undef; $s->{'f_type'} = "".$Amanda::Header::F_EMPTY; + $s->{'device_status'} = "".$DEVICE_STATUS_VOLUME_UNLABELED; } - $s->{'device_status'} = "".$DEVICE_STATUS_SUCCESS; $s->{'current'} = 1 if $slot eq $current; push @inventory, $s; } diff --git a/perl/Amanda/Changer/robot.pm b/perl/Amanda/Changer/robot.pm index 38a10b7..924b210 100644 --- a/perl/Amanda/Changer/robot.pm +++ b/perl/Amanda/Changer/robot.pm @@ -790,13 +790,13 @@ sub get_device { # (overridden by subclasses) my $device = Amanda::Device->new($device_name); if ($device->status != $DEVICE_STATUS_SUCCESS) { - return $self->make_error("failed", undef, + return Amanda::Changer->make_error("fatal", undef, reason => "unknown", message => "opening '$device_name': " . $device->error_or_status()); } if (my $err = $self->{'config'}->configure_device($device)) { - return $self->make_error("failed", undef, + return Amanda::Changer->make_error("fatal", undef, reason => "unknown", message => $err); } diff --git a/perl/Amanda/Report.pm b/perl/Amanda/Report.pm index 48bd05a..94e79e7 100644 --- a/perl/Amanda/Report.pm +++ b/perl/Amanda/Report.pm @@ -1304,13 +1304,16 @@ sub check_missing_fail_strange foreach my $dle_entry (@dles) { my $alldumps = $self->get_dle_info(@$dle_entry, 'dumps'); + my $driver = $self->get_dle_info(@$dle_entry, 'driver'); my $planner = $self->get_dle_info(@$dle_entry, 'planner'); if ($planner && $planner->{'status'} eq 'fail') { $self->{flags}{dump_failed} = 1; } elsif ($planner && $planner->{'status'} eq 'skipped') { # We don't want these to be counted as missing below - } elsif (!defined $alldumps->{$self->{'run_timestamp'}}) { + } elsif (!defined $alldumps->{$self->{'run_timestamp'}} and + !$driver and + !$planner) { $self->{flags}{results_missing} = 1; $self->{flags}{exit_status} |= STATUS_MISSING; } else { diff --git a/perl/Amanda/Report/human.pm b/perl/Amanda/Report/human.pm index 84ff5c3..b40890a 100644 --- a/perl/Amanda/Report/human.pm +++ b/perl/Amanda/Report/human.pm @@ -537,6 +537,7 @@ sub output_error_summaries if ($report->get_flag('results_missing') and !defined($alldumps->{$report->{run_timestamp}}) and + !$dle->{driver} and !$dle->{planner}) { push @missing_failures, "$hostname $qdisk RESULTS MISSING"; } @@ -964,14 +965,6 @@ sub output_details # note: copied & modified from calculate_stats. if ( - exists $try->{dumper} - && exists $try->{taper} - && defined $try->{taper}->{kb} - && ( $try->{taper}{status} eq 'done' - || $try->{taper}{status} eq 'partial') - ) { - $outsize = $try->{taper}->{kb}; - } elsif ( exists $try->{dumper} && exists $try->{chunker} && defined $try->{chunker}->{kb} @@ -979,6 +972,14 @@ sub output_details || $try->{chunker}{status} eq 'partial') ) { $outsize = $try->{chunker}->{kb}; + } elsif ( + exists $try->{dumper} + && exists $try->{taper} + && defined $try->{taper}->{kb} + && ( $try->{taper}{status} eq 'done' + || $try->{taper}{status} eq 'partial') + ) { + $outsize = $try->{taper}->{kb}; } } } @@ -993,7 +994,8 @@ sub output_details push @$notes, "big estimate: $hostname $qdisk $dle->{estimate}{level}", sprintf(' est: %.0f%s out %.0f%s', - $est->{ckb}, $disp_unit, $outsize, $disp_unit) + $self->tounits($est->{ckb}), $disp_unit, + $self->tounits($outsize), $disp_unit) if (defined $est->{'ckb'} && ($est->{ckb} * .9 > $outsize) && ($est->{ckb} - $outsize > 1.0e5)); } @@ -1167,14 +1169,19 @@ sub get_summary_info : $tail_quote_trunc->($disk, $col_spec->[1]->[COLSPEC_WIDTH]); my $alldumps = $dle_info->{'dumps'}; - if ($dle_info->{'planner'} && - $dle_info->{'planner'}->{'status'} eq 'fail') { - my @rv; - push @rv, 'nodump-FAILED'; - push @rv, $hostname; - push @rv, $disk_out; - push @rv, ("",) x 9; - push @rvs, [@rv]; + if (($dle_info->{'planner'} && + $dle_info->{'planner'}->{'status'} eq 'fail') or + ($dle_info->{'driver'} && + $dle_info->{'driver'}->{'status'} eq 'fail')) { + # Do not report driver error if we have a try + if (!exists $alldumps->{$report->{'run_timestamp'}}) { + my @rv; + push @rv, 'nodump-FAILED'; + push @rv, $hostname; + push @rv, $disk_out; + push @rv, ("",) x 9; + push @rvs, [@rv]; + } } elsif ($dle_info->{'planner'} && $dle_info->{'planner'}->{'status'} eq 'skipped') { my @rv; @@ -1279,7 +1286,7 @@ sub get_summary_info # sometimes the driver logs an orig_size of -1, which makes the # compression percent very large and negative - $orig_size = 0 if ($orig_size < 0); + $orig_size = 0 if (defined $orig_size && $orig_size < 0); # pre-format the compression column, with '--' replacing 100% (i.e., # no compression) diff --git a/perl/Amanda/Tapelist.pm b/perl/Amanda/Tapelist.pm index 6a746ba..4a2d284 100644 --- a/perl/Amanda/Tapelist.pm +++ b/perl/Amanda/Tapelist.pm @@ -309,7 +309,8 @@ sub remove_tapelabel { sub add_tapelabel { my $self = shift; - my ($datestamp, $label, $comment, $reuse) = @_; + my ($datestamp, $label, $comment, $reuse, $meta, $barcode) = @_; + # $meta is unused $reuse = 1 if !defined $reuse; # prepend this (presumably new) volume to the beginning of the list @@ -317,6 +318,7 @@ sub add_tapelabel { 'datestamp' => $datestamp, 'label' => $label, 'reuse' => $reuse, + 'barcode' => $barcode, 'comment' => $comment, }; $self->_update_positions(); @@ -335,8 +337,9 @@ sub write { my $datestamp = $tle->{'datestamp'}; my $label = $tle->{'label'}; my $reuse = $tle->{'reuse'} ? 'reuse' : 'no-reuse'; + my $barcode = (defined $tle->{'barcode'})? (" BARCODE:" . $tle->{'barcode'}) : ''; my $comment = (defined $tle->{'comment'})? (" #" . $tle->{'comment'}) : ''; - $result &&= print $fhn "$datestamp $label $reuse$comment\n"; + $result &&= print $fhn "$datestamp $label $reuse$barcode$comment\n"; } my $result_close = close($fhn); $result &&= $result_close; @@ -388,13 +391,14 @@ sub _read_tapelist { my @tles; open(my $fh, "<", $self->{'filename'}) or return $self; while (my $line = <$fh>) { - my ($datestamp, $label, $reuse, $comment) - = $line =~ m/^([0-9]*)\s([^\s]*)\s(reuse|no-reuse)\s*(?:\#(.*))?$/mx; + my ($datestamp, $label, $reuse, $barcode, $comment) + = $line =~ m/^([0-9]*)\s([^\s]*)\s(reuse|no-reuse)\s*(?:BARCODE:([^\s]*))?\s*(?:\#(.*))?$/mx; next if !defined $datestamp; # silently filter out bogus lines push @tles, { 'datestamp' => $datestamp, 'label' => $label, 'reuse' => ($reuse eq 'reuse'), + 'barcode' => $barcode, 'comment' => $comment, }; } diff --git a/perl/Amanda/Tapelist.swg b/perl/Amanda/Tapelist.swg index 510fd29..84eeee6 100644 --- a/perl/Amanda/Tapelist.swg +++ b/perl/Amanda/Tapelist.swg @@ -124,7 +124,8 @@ sub remove_tapelabel { sub add_tapelabel { my $self = shift; - my ($datestamp, $label, $comment, $reuse) = @_; + my ($datestamp, $label, $comment, $reuse, $meta, $barcode) = @_; + # $meta is unused $reuse = 1 if !defined $reuse; # prepend this (presumably new) volume to the beginning of the list @@ -132,6 +133,7 @@ sub add_tapelabel { 'datestamp' => $datestamp, 'label' => $label, 'reuse' => $reuse, + 'barcode' => $barcode, 'comment' => $comment, }; $self->_update_positions(); @@ -150,8 +152,9 @@ sub write { my $datestamp = $tle->{'datestamp'}; my $label = $tle->{'label'}; my $reuse = $tle->{'reuse'} ? 'reuse' : 'no-reuse'; + my $barcode = (defined $tle->{'barcode'})? (" BARCODE:" . $tle->{'barcode'}) : ''; my $comment = (defined $tle->{'comment'})? (" #" . $tle->{'comment'}) : ''; - $result &&= print $fhn "$datestamp $label $reuse$comment\n"; + $result &&= print $fhn "$datestamp $label $reuse$barcode$comment\n"; } my $result_close = close($fhn); $result &&= $result_close; @@ -203,13 +206,14 @@ sub _read_tapelist { my @tles; open(my $fh, "<", $self->{'filename'}) or return $self; while (my $line = <$fh>) { - my ($datestamp, $label, $reuse, $comment) - = $line =~ m/^([0-9]*)\s([^\s]*)\s(reuse|no-reuse)\s*(?:\#(.*))?$/mx; + my ($datestamp, $label, $reuse, $barcode, $comment) + = $line =~ m/^([0-9]*)\s([^\s]*)\s(reuse|no-reuse)\s*(?:BARCODE:([^\s]*))?\s*(?:\#(.*))?$/mx; next if !defined $datestamp; # silently filter out bogus lines push @tles, { 'datestamp' => $datestamp, 'label' => $label, 'reuse' => ($reuse eq 'reuse'), + 'barcode' => $barcode, 'comment' => $comment, }; } diff --git a/perl/Amanda/Taper/Scribe.pm b/perl/Amanda/Taper/Scribe.pm index 3efbbb5..6447cf9 100644 --- a/perl/Amanda/Taper/Scribe.pm +++ b/perl/Amanda/Taper/Scribe.pm @@ -1205,7 +1205,7 @@ sub _volume_cb { # inform the xdt about this new device before starting it $self->{'xdt'}->use_device($device); - my $result = $self->_device_start($device, $access_mode, $new_label, $is_new); + my $result = $self->_device_start($reservation, $access_mode, $new_label, $is_new); if ($result == 0) { # try reading the label to see whether we erased the tape my $erased = 0; @@ -1281,8 +1281,9 @@ sub _volume_cb { # return a message for others error sub _device_start { my $self = shift; - my ($device, $access_mode, $new_label, $is_new) = @_; + my ($reservation, $access_mode, $new_label, $is_new) = @_; + my $device = $reservation->{'device'}; my $tl = $self->{'taperscan'}->{'tapelist'}; if (!defined $tl) { # For Mock::Taperscan in installcheck @@ -1301,7 +1302,7 @@ sub _device_start { $tl->unlock(); return $err; } else { - $tl->add_tapelabel('0', $new_label, undef, 0); + $tl->add_tapelabel('0', $new_label, undef, 0, undef, $reservation->{'barcode'}); $tl->write(); } $self->dbg("generate new label '$new_label'"); diff --git a/perl/Amanda/Taper/Worker.pm b/perl/Amanda/Taper/Worker.pm index 9e23fd9..c114a81 100644 --- a/perl/Amanda/Taper/Worker.pm +++ b/perl/Amanda/Taper/Worker.pm @@ -610,6 +610,13 @@ sub setup_and_start_dump { %get_xfer_dest_args = get_splitting_args_from_config( %splitting_args); $get_xfer_dest_args{'max_memory'} = getconf($CNF_DEVICE_OUTPUT_BUFFER_SIZE); + if (!getconf_seen($CNF_DEVICE_OUTPUT_BUFFER_SIZE)) { + my $device = $self->{'scribe'}->get_device(); + my $block_size4 = $device->block_size * 4; + if ($block_size4 > $get_xfer_dest_args{'max_memory'}) { + $get_xfer_dest_args{'max_memory'} = $block_size4; + } + } $get_xfer_dest_args{'can_cache_inform'} = ($msgtype eq Amanda::Taper::Protocol::FILE_WRITE); # if we're unable to fulfill the user's splitting needs, we can still give diff --git a/perl/Makefile.in b/perl/Makefile.in index 90090d8..87aa4ab 100644 --- a/perl/Makefile.in +++ b/perl/Makefile.in @@ -691,7 +691,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/perl/amglue/Makefile.in b/perl/amglue/Makefile.in index 6f7d85b..bf964fe 100644 --- a/perl/amglue/Makefile.in +++ b/perl/amglue/Makefile.in @@ -387,7 +387,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/po/Makefile.in b/po/Makefile.in index 4c8869f..47e99e8 100644 --- a/po/Makefile.in +++ b/po/Makefile.in @@ -247,7 +247,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/recover-src/Makefile.in b/recover-src/Makefile.in index 28060da..f385fb5 100644 --- a/recover-src/Makefile.in +++ b/recover-src/Makefile.in @@ -365,7 +365,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/recover-src/extract_list.c b/recover-src/extract_list.c index baac507..9da45bd 100644 --- a/recover-src/extract_list.c +++ b/recover-src/extract_list.c @@ -96,6 +96,9 @@ static char *dump_device_name = NULL; static char *errstr; static char *amidxtaped_line = NULL; extern char *localhost; +static char header_buf[32768]; +static int header_size = 0; + /* global pid storage for interrupt handler */ pid_t extract_restore_child_pid = -1; @@ -2106,6 +2109,7 @@ writer_intermediary( ctl_data.bsu = NULL; ctl_data.bytes_read = 0; + header_size = 0; security_stream_read(amidxtaped_streams[DATAFD].fd, read_amidxtaped_data, &ctl_data); @@ -2289,7 +2293,7 @@ extract_files(void) all_level = g_slist_append(all_level, level); } if (dump_dle) { - g_slist_free_full(dump_dle->levellist); + slist_free_full(dump_dle->levellist, g_free); dump_dle->levellist = all_level; run_client_scripts(EXECUTE_ON_PRE_RECOVER, &g_options, dump_dle, stderr); @@ -2337,7 +2341,7 @@ extract_files(void) dump_dle->levellist = g_slist_append(dump_dle->levellist, level); run_client_scripts(EXECUTE_ON_INTER_LEVEL_RECOVER, &g_options, dump_dle, stderr); - g_slist_free_full(dump_dle->levellist); + slist_free_full(dump_dle->levellist, g_free); dump_dle->levellist = NULL; } @@ -2373,7 +2377,7 @@ extract_files(void) if (dump_dle) { run_client_scripts(EXECUTE_ON_POST_LEVEL_RECOVER, &g_options, dump_dle, stderr); - g_slist_free_full(dump_dle->levellist); + slist_free_full(dump_dle->levellist, g_free); dump_dle->levellist = NULL; } } @@ -2381,7 +2385,7 @@ extract_files(void) dump_dle->levellist = all_level; run_client_scripts(EXECUTE_ON_POST_RECOVER, &g_options, dump_dle, stderr); - g_slist_free_full(dump_dle->levellist); + slist_free_full(dump_dle->levellist, g_free); all_level = NULL; dump_dle->levellist = NULL; } @@ -2687,10 +2691,24 @@ read_amidxtaped_data( GPtrArray *errarray; g_option_t g_options; data_path_t data_path_set = DATA_PATH_AMANDA; + int to_move; + + to_move = MIN(32768-header_size, size); + memcpy(header_buf+header_size, buf, to_move); + header_size += to_move; + g_debug("read header %zd => %d", size, header_size); + if (header_size < 32768) { + security_stream_read(amidxtaped_streams[DATAFD].fd, + read_amidxtaped_data, cookie); + return; + } else if (header_size > 32768) { + error("header_size is %d\n", header_size); + } + assert (to_move == size); /* parse the file header */ fh_init(&ctl_data->file); - parse_file_header(buf, &ctl_data->file, (size_t)size); + parse_file_header(header_buf, &ctl_data->file, (size_t)header_size); /* call backup_support_option */ g_options.config = get_config_name(); diff --git a/server-src/Makefile.in b/server-src/Makefile.in index 554a5bf..5570746 100644 --- a/server-src/Makefile.in +++ b/server-src/Makefile.in @@ -544,7 +544,6 @@ CONFIG_CLOBBER_MY_CONFIG = @CONFIG_CLOBBER_MY_CONFIG@ CONFIG_DIR = @CONFIG_DIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CURL_CONFIG = @CURL_CONFIG@ CYGPATH_W = @CYGPATH_W@ DD = @DD@ DEFAULT_AMANDATES_FILE = @DEFAULT_AMANDATES_FILE@ diff --git a/server-src/amadmin.c b/server-src/amadmin.c index 96e117b..7930e0b 100644 --- a/server-src/amadmin.c +++ b/server-src/amadmin.c @@ -246,7 +246,7 @@ usage(void) { int i; - g_fprintf(stderr, _("\nUsage: %s {} [-o configoption]* ...\n"), + g_fprintf(stderr, _("\nUsage: %s [-o configoption]* {} ...\n"), get_pname()); g_fprintf(stderr, _(" Valid s are:\n")); for (i = 0; i < NCMDS; i++) @@ -1164,15 +1164,37 @@ find( output_find = find_dump(&diskq); /* Add deleted dump to diskq */ if(argc-(start_argc-1) > 0) { + find_result_t *afind = NULL; + find_result_t *afind_next = NULL; + find_result_t *new_output_find = NULL; + disk_t *dp; + amfree(errstr); - free_find_result(&output_find); errstr = match_disklist(&diskq, argc-(start_argc-1), argv+(start_argc-1)); if (errstr) { g_printf("%s", errstr); amfree(errstr); } - output_find = find_dump(NULL); + for (afind = output_find; afind; afind = afind_next) { + afind_next = afind->next; + dp = lookup_disk(afind->hostname, afind->diskname); + if (dp->todo) { + afind->next = new_output_find; + new_output_find = afind; + } else { + amfree(afind->timestamp); + amfree(afind->write_timestamp); + amfree(afind->hostname); + amfree(afind->diskname); + amfree(afind->label); + amfree(afind->status); + amfree(afind->dump_status); + amfree(afind->message); + amfree(afind); + } + } + output_find = new_output_find; } else if (errstr) { g_printf("%s", errstr); amfree(errstr); @@ -1492,7 +1514,7 @@ holding( amfree(dumpstr); dumpfile_free_data(&file); } - g_slist_free_full(file_list); + slist_free_full(file_list, g_free); break; case HOLDING_DELETE: @@ -1510,7 +1532,7 @@ holding( error(_("Could not delete '%s'"), (char *)li->data); } } - g_slist_free_full(file_list); + slist_free_full(file_list, g_free); break; } } @@ -2069,6 +2091,7 @@ disklist_one( sle_t *excl; identlist_t pp_scriptlist; estimatelist_t estimates; + dumptype_t *dtype = lookup_dumptype(dp->dtype_name); hp = dp->host; ip = hp->netif; @@ -2264,6 +2287,15 @@ disklist_one( g_printf(" skip-incr %s\n", (dp->skip_incr? "YES" : "NO")); g_printf(" skip-full %s\n", (dp->skip_full? "YES" : "NO")); g_printf(" allow-split %s\n", (dp->allow_split ? "YES" : "NO")); + if (dumptype_seen(dtype, DUMPTYPE_RECOVERY_LIMIT)) { + char **rl, **r1; + rl = val_t_display_strs(dumptype_getconf((dtype), + DUMPTYPE_RECOVERY_LIMIT), 1); + for(r1 = rl; *r1 != NULL; r1++) { + g_printf(" recovery-limit %s\n", *r1); + free(*r1); + } + } g_printf(" spindle %d\n", dp->spindle); pp_scriptlist = dp->pp_scriptlist; while (pp_scriptlist != NULL) { @@ -2272,10 +2304,8 @@ disklist_one( } { - dumptype_t *dtype; char **prop, **p1;; - dtype = lookup_dumptype(dp->dtype_name); prop = val_t_display_strs(dumptype_getconf((dtype), DUMPTYPE_PROPERTY), 0); for(p1 = prop; *p1 != NULL; p1++) { diff --git a/server-src/amcheck-device.pl b/server-src/amcheck-device.pl index ba1699f..d9689cb 100644 --- a/server-src/amcheck-device.pl +++ b/server-src/amcheck-device.pl @@ -22,7 +22,7 @@ use strict; use warnings; use Amanda::Util qw( :constants ); -use Amanda::Config qw( :init ); +use Amanda::Config qw( :init :getconf ); use Amanda::Logfile qw( :logtype_t log_add $amanda_log_trace_log ); use Amanda::Debug; use Amanda::Device qw( :constants ); @@ -187,6 +187,13 @@ sub do_check { print "WARNING: Media access mode is WRITE_ONLY; dumps may not be recoverable\n"; } + if (getconf_seen($CNF_DEVICE_OUTPUT_BUFFER_SIZE)) { + my $dobs = getconf($CNF_DEVICE_OUTPUT_BUFFER_SIZE); + my $block_size = $res->{'device'}->property_get("BLOCK_SIZE"); + if ($block_size * 2 > $dobs) { + print "WARNING: DEVICE-OUTPUT-BUFFER-SIZE is not at least twice the block size of the device, it should be increased for better throughput\n"; + } + } $steps->{'check_overwrite'}->(); }; @@ -225,7 +232,8 @@ sub do_check { $finished_cb->(); }; } -do_check(\&Amanda::MainLoop::quit); + +Amanda::MainLoop::call_later(\&do_check, \&Amanda::MainLoop::quit); Amanda::MainLoop::run(); Amanda::Util::finish_application(); exit($exit_status); diff --git a/server-src/amcheckdump.pl b/server-src/amcheckdump.pl index b007456..95c7fa3 100644 --- a/server-src/amcheckdump.pl +++ b/server-src/amcheckdump.pl @@ -44,7 +44,7 @@ use Amanda::Xfer qw( :constants ); sub usage { print < amcheckdump validates Amanda dump images by reading them from storage volume(s), and verifying archive integrity if the proper tool is locally available. amcheckdump does not actually compare the data located in the image diff --git a/server-src/amdump.pl b/server-src/amdump.pl index 383fa85..4caf718 100644 --- a/server-src/amdump.pl +++ b/server-src/amdump.pl @@ -151,7 +151,7 @@ INFO amdump amdump pid $$ START driver date $timestamp ERROR amdump $msg EOF - run_subprocess("$sbindir/amreport", $config_name, '--from-amdump', '-l', $fakelogfile); + run_subprocess("$sbindir/amreport", $config_name, '--from-amdump', '-l', $fakelogfile, @config_overrides_opts); unlink($fakelogfile); # and we're done here @@ -164,7 +164,7 @@ sub do_amcleanup { # logfiles are still around. First, try an amcleanup -p to see if # the actual processes are already dead debug("runing amcleanup -p"); - run_subprocess("$sbindir/amcleanup", '-p', $config_name); + run_subprocess("$sbindir/amcleanup", '-p', $config_name, @config_overrides_opts); # and check again return unless -f $amdump_log_filename || -f $trace_log_filename; @@ -192,7 +192,8 @@ sub start_logfiles { # undef first.. stupid perl. debug("beginning amdump log"); $amdump_log = undef; - open($amdump_log, ">", $amdump_log_filename) + # Must be opened in append so that all subprocess can write to it. + open($amdump_log, ">>", $amdump_log_filename) or die("could not open amdump log file '$amdump_log_filename': $!"); } @@ -261,7 +262,7 @@ sub planner_driver_pipeline { sub do_amreport { debug("running amreport"); - run_subprocess("$sbindir/amreport", $config_name, '--from-amdump'); + run_subprocess("$sbindir/amreport", $config_name, '--from-amdump', @config_overrides_opts); } sub roll_trace_logs { @@ -272,12 +273,12 @@ sub roll_trace_logs { sub trim_trace_logs { debug("trimming old trace logs"); - run_subprocess("$amlibexecdir/amtrmlog", $config_name); + run_subprocess("$amlibexecdir/amtrmlog", $config_name, @config_overrides_opts); } sub trim_indexes { debug("trimming old indexes"); - run_subprocess("$amlibexecdir/amtrmidx", $config_name); + run_subprocess("$amlibexecdir/amtrmidx", $config_name, @config_overrides_opts); } sub roll_amdump_logs { diff --git a/server-src/amflush.c b/server-src/amflush.c index 4d28e44..66bf6dc 100644 --- a/server-src/amflush.c +++ b/server-src/amflush.c @@ -245,7 +245,7 @@ main( stralloc((char *)datestamp->data), g_compare_strings); } - g_slist_free_full(all_datestamps); + slist_free_full(all_datestamps, g_free); } else { /* otherwise, in batch mode, use all datestamps */ @@ -405,9 +405,9 @@ main( } } - g_slist_free_full(datestamp_list); + slist_free_full(datestamp_list, g_free); datestamp_list = NULL; - g_slist_free_full(holding_list); + slist_free_full(holding_list, g_free); holding_list = NULL; if(redirect) { /* rename errfile */ @@ -599,7 +599,7 @@ pick_datestamp(void) } chupper = (char)toupper(ch); if (chupper < 'A' || chupper > max_char) { - g_slist_free_full(r_datestamp_list); + slist_free_full(r_datestamp_list, g_free); r_datestamp_list = NULL; break; } @@ -607,7 +607,7 @@ pick_datestamp(void) stralloc(datestamps[chupper - 'A'])); } while ((ch = *a++) != '\0'); if (r_datestamp_list && ch == '\0') { - g_slist_free_full(datestamp_list); + slist_free_full(datestamp_list, g_free); datestamp_list = r_datestamp_list; break; } @@ -681,7 +681,7 @@ redirect_stderr(void) fflush(stdout); fflush(stderr); errfile = vstralloc(conf_logdir, "/amflush", NULL); - if((fderr = open(errfile, O_WRONLY| O_CREAT | O_TRUNC, 0600)) == -1) { + if((fderr = open(errfile, O_WRONLY| O_APPEND | O_CREAT | O_TRUNC, 0600)) == -1) { error(_("could not open %s: %s"), errfile, strerror(errno)); /*NOTREACHED*/ } diff --git a/server-src/amidxtaped.pl b/server-src/amidxtaped.pl index ea22fc2..a4f2672 100644 --- a/server-src/amidxtaped.pl +++ b/server-src/amidxtaped.pl @@ -429,7 +429,7 @@ sub plan_cb { my $peer = $ENV{'AMANDA_AUTHENTICATED_PEER'}; if (defined $recovery_limit) { # undef -> no recovery limit if (!$peer) { - warning("a recovery limit is specified for this DLE, but no authenticted ". + warning("a recovery limit is specified for this DLE, but no authenticated ". "peer name is available; rejecting request."); $self->sendmessage("No matching dumps found"); return $self->quit(); @@ -442,12 +442,12 @@ sub plan_cb { $matched = 1; last; } - } - - # otherwise use match_host to allow match expressions - if (match_host($rl, $peer)) { - $matched = 1; - last; + } else { + # otherwise use match_host to allow match expressions + if (match_host($rl, $peer)) { + $matched = 1; + last; + } } } if (!$matched) { diff --git a/server-src/amlabel.pl b/server-src/amlabel.pl index d2fd4fd..f9103b8 100644 --- a/server-src/amlabel.pl +++ b/server-src/amlabel.pl @@ -42,8 +42,7 @@ my $exit_status = 0; my %subcommands; sub usage { - print STDERR "Usage: amlabel