summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan G. Weichinger <office@oops.co.at>2017-01-13 18:17:09 +0100
committerRobin H. Johnson <robbat2@gentoo.org>2017-01-31 13:57:12 -0800
commit5c2f58dbbbb60024a4237c563044f181dba4800a (patch)
treea45796ef591227c8e12f95ecbc7c6b094da29d5a /app-backup/amanda/files/amanda-3.4.1-labelstr.patch
parentmedia-libs/libcuefile: Remove 477 (r0) (diff)
downloadgentoo-5c2f58dbbbb60024a4237c563044f181dba4800a.tar.gz
gentoo-5c2f58dbbbb60024a4237c563044f181dba4800a.tar.bz2
gentoo-5c2f58dbbbb60024a4237c563044f181dba4800a.zip
app-backup/amanda: version bump to 3.4.2, EAPI6 switch
(cherry picked from commit ed64d25637d041ff6116f3ccaf7a9656e282a9a7) Fixes: https://github.com/gentoo/gentoo/pull/3507 Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Diffstat (limited to 'app-backup/amanda/files/amanda-3.4.1-labelstr.patch')
-rw-r--r--app-backup/amanda/files/amanda-3.4.1-labelstr.patch164
1 files changed, 164 insertions, 0 deletions
diff --git a/app-backup/amanda/files/amanda-3.4.1-labelstr.patch b/app-backup/amanda/files/amanda-3.4.1-labelstr.patch
new file mode 100644
index 000000000000..b169c8ae6472
--- /dev/null
+++ b/app-backup/amanda/files/amanda-3.4.1-labelstr.patch
@@ -0,0 +1,164 @@
+diff --git a/installcheck/Amanda_Rest_Storages.pl b/installcheck/Amanda_Rest_Storages.pl
+index f3c699b..3e4e889 100644
+--- a/installcheck/Amanda_Rest_Storages.pl
++++ b/installcheck/Amanda_Rest_Storages.pl
+@@ -308,6 +308,7 @@ is_deeply (Installcheck::Rest::remove_source_line($reply),
+ 'inventory' => [
+ {'current' => 1,
+ 'label' => "DISKFLAT-001",
++ 'label_match' => '1',
+ 'device_status' => '0',
+ 'reserved' => 0,
+ 'f_type' => '1',
+@@ -467,6 +468,7 @@ is_deeply (Installcheck::Rest::remove_source_line($reply),
+ 'label' => 'DISKFLAT-001',
+ 'datestamp' => '20140509113436',
+ 'write_protected' => '',
++ 'label_match' => '1',
+ 'process' => 'Amanda::Rest::Storages',
+ 'running_on' => 'amanda-server',
+ 'component' => 'rest-server',
+diff --git a/installcheck/amtape.pl b/installcheck/amtape.pl
+index 1a3527f..700c5a2 100644
+--- a/installcheck/amtape.pl
++++ b/installcheck/amtape.pl
+@@ -177,13 +177,13 @@ like($Installcheck::Run::stderr,
+ ok(run('amtape', 'TESTCONF', 'show'),
+ "'amtape TESTCONF show'");
+ like($Installcheck::Run::stderr,
+- qr/slot +2:.*label MyTape\nslot +3/,
++ qr/slot +2:.*label MyTape \(label do not match labelstr\)\nslot +3/,
+ "'amtape TESTCONF show' ..result correct");
+
+ ok(run('amtape', 'TESTCONF', 'show', '2'),
+ "'amtape TESTCONF show'");
+ like($Installcheck::Run::stderr,
+- qr/^slot +2:.*label MyTape$/,
++ qr/^slot +2:.*label MyTape \(label do not match labelstr\)$/,
+ "'amtape TESTCONF show 2' ..result correct");
+
+ ok(run('amtape', 'TESTCONF', 'show', '1,3'),
+@@ -252,13 +252,13 @@ like(run_err('amtape', 'TESTCONF', 'update'),
+ ok(run('amtape', 'TESTCONF', 'show'),
+ "'amtape TESTCONF show'");
+ like($Installcheck::Run::stderr,
+- qr/slot +2:.*label MyTape\nslot +3/,
++ qr/slot +2:.*label MyTape \(label do not match labelstr\)\nslot +3/,
+ "..result correct");
+
+ ok(run('amtape', 'TESTCONF', 'inventory'),
+ "'amtape TESTCONF inventory'");
+ like($Installcheck::Run::stdout,
+- qr/slot +1: blank\nslot +2: label MyTape \(current\)\nslot +3/,
++ qr/slot +1: blank\nslot +2: label MyTape \(current\) \(label do not match labelstr\)\nslot +3/,
+ "..result correct");
+
+ ok(run('amtape', 'TESTCONF', 'taper'),
+diff --git a/perl/Amanda/Changer.pm b/perl/Amanda/Changer.pm
+index 92ed9b6..4b4aad4 100644
+--- a/perl/Amanda/Changer.pm
++++ b/perl/Amanda/Changer.pm
+@@ -60,9 +60,10 @@ sub local_message {
+ } elsif ($self->{'code'} == 1100014) {
+ return "$self->{'err'}";
+ } elsif ($self->{'code'} == 1100015) {
+- return sprintf("slot %3s: date %-14s label %s%s", $self->{'slot'},
++ return sprintf("slot %3s: date %-14s label %s%s%s", $self->{'slot'},
+ $self->{'datestamp'}, $self->{'label'},
+- $self->{'write_protected'}?" (Write protected)":"");
++ $self->{'write_protected'}?" (Write protected)":"",
++ $self->{'label_match'}?"":" (label do not match labelstr)");
+ } elsif ($self->{'code'} == 1100016) {
+ return sprintf("slot %3s: unlabeled volume%s", $self->{'slot'},
+ $self->{'write_protected'}?" (Write protected)":"");
+@@ -2014,6 +2015,13 @@ sub show {
+ my $st = $dev->read_label();
+ my $write_protected = !$dev->check_writable();
+ if ($st == $DEVICE_STATUS_SUCCESS) {
++ my $label_match = match_labelstr(
++ $self->{'storage'}->{'labelstr'},
++ $self->{'storage'}->{'autolabel'},
++ $dev->volume_label(),
++ $res->{'barcode'},
++ $res->{'meta'},
++ $self->{'storage'}->{'storage_name'});
+ $params{'user_msg'}->(Amanda::Changer::Message->new(
+ source_filename => __FILE__,
+ source_line => __LINE__,
+@@ -2022,7 +2030,8 @@ sub show {
+ slot => $last_slot,
+ datestamp => $dev->volume_time(),
+ label => $dev->volume_label(),
+- write_protected => $write_protected));
++ write_protected => $write_protected,
++ label_match => $label_match));
+ } elsif ($st == $DEVICE_STATUS_VOLUME_UNLABELED) {
+ $params{'user_msg'}->(Amanda::Changer::Message->new(
+ source_filename => __FILE__,
+diff --git a/perl/Amanda/Rest/Storages.pm b/perl/Amanda/Rest/Storages.pm
+index 680115b..b1b59d2 100644
+--- a/perl/Amanda/Rest/Storages.pm
++++ b/perl/Amanda/Rest/Storages.pm
+@@ -436,6 +436,17 @@ sub inventory {
+ $inv->{'retention_type'} = $tl->get_retention_name($retention_type);
+ }
+ }
++ for my $inv (@$inventory) {
++ if ($inv->{label}) {
++ $inv->{'label_match'} = Amanda::Util::match_labelstr(
++ $storage->{'labelstr'},
++ $storage->{'autolabel'},
++ $inv->{'label'},
++ $inv->{'barcode'},
++ $inv->{'metae'},
++ $storage->{'storage_name'});
++ }
++ }
+ push @result_messages, Amanda::Changer::Message->new(
+ source_filename => __FILE__,
+ source_line => __LINE__,
+diff --git a/server-src/amtape.pl b/server-src/amtape.pl
+index b63607e..d06eefe 100644
+--- a/server-src/amtape.pl
++++ b/server-src/amtape.pl
+@@ -30,7 +30,7 @@ use Text::Wrap;
+ use Amanda::Device qw( :constants );
+ use Amanda::Debug qw( :logging );
+ use Amanda::Config qw( :init :getconf config_dir_relative );
+-use Amanda::Util qw( :constants );
++use Amanda::Util qw( :constants match_labelstr );
+ use Amanda::Storage;
+ use Amanda::Changer;
+ use Amanda::Constants;
+@@ -219,6 +219,7 @@ sub {
+ for my $sl (@$inv) {
+ my $line = "slot $sl->{slot}:";
+ my $tle;
++ my $meta;
+ if ($sl->{'state'} == Amanda::Changer::SLOT_EMPTY) {
+ $line .= " empty";
+ } elsif (!defined($sl->{device_status}) && !defined($sl->{label})) {
+@@ -230,6 +231,7 @@ sub {
+ if (defined $tle) {
+ if ($tle->{'meta'}) {
+ $line .= " ($tle->{'meta'})";
++ $meta = $tle->{'meta'};
+ }
+ }
+ } elsif ($sl->{'device_status'} == $DEVICE_STATUS_VOLUME_UNLABELED) {
+@@ -263,6 +265,15 @@ sub {
+ $line .= " [device error]";
+ }
+ }
++ if ($sl->{'label'}) {
++ if (!match_labelstr($storage->{'labelstr'},
++ $storage->{'autolabel'},
++ $sl->{label},
++ $sl->{'barcode'}, $meta,
++ $storage->{'storage_name'})) {
++ $line .= " (label do not match labelstr)";
++ }
++ }
+ if (defined $tle) {
+ my $retention_type = Amanda::Tapelist::get_retention_type($tle->{pool}, $tle->{label});
+ $line .= " [" . $tl->get_retention_name($retention_type) . "]";