Package: flexbackup
Version: 1.2.1-6.2
Severity: grave
Tags: upstream patch
Justification: renders package unusable

Perl has been complaining about the use of this deprecated construct for quite
a while now but now since Perl 5.22 has entered the archive it is a fatal error:

Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at 
/usr/bin/flexbackup line 1053.
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at 
/usr/bin/flexbackup line 2688.

See 
http://perldoc.perl.org/perldelta.html#defined%28%40array%29-and-defined%28%25hash%29-are-now-fatal-errors

It seems that simply removing the defined() (i.e. checking the length) is the
generally recommended fix, so I intend to NMU with the attached dpatch added
once my weekly backups have successfully completed. I'll supply a full diff at
that time.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (500, 
'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, armel, arm64

Kernel: Linux 4.3.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: sysvinit (via /sbin/init)

Versions of packages flexbackup depends on:
ii  cpio  2.11+dfsg-5
ii  perl  5.22.1-7

Versions of packages flexbackup recommends:
ii  afio             2.5.1.20130626+gite266635-1
ii  binutils         2.26-4
ii  buffer           1.19-12
ii  lzma             9.22-2
ii  pax              1:20151013-1
ii  rsync            3.1.1-3
ii  sharutils        1:4.15.2-1
ii  star             1.5final-2
ii  xz-utils [lzma]  5.1.1alpha+20120614-2.1
ii  zip              3.0-11

Versions of packages flexbackup suggests:
pn  lha  <none>
ii  ssh  1:7.1p2-2

-- Configuration Files:
/etc/flexbackup.conf changed [not included]

-- no debconf information
#!/bin/sh /usr/share/dpatch/dpatch-run
## 60_use_afio_default_nocompression.dpatch by Kurt B. Kaiser <k...@shore.net>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Bug #XXXXXX patch by Ian Campbell <i...@debian.org>
## DP:
## DP: defined(%hash) and defined(@array) have been deprecated for a while and
## DP: are now fatal errors:
## DP:
## DP: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at /usr/bin/flexbackup line 1053.
## DP: Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at /usr/bin/flexbackup line 2688.
## DP:
## DP: See http://perldoc.perl.org/perldelta.html#defined%28%40array%29-and-defined%28%25hash%29-are-now-fatal-errors
## DP:
## DP: http://perldoc.perl.org/functions/defined.html recommends just checking
## DP: for length (i.e. removing the defined()). Do so.

@DPATCH@
diff -urNad flexbackup-svn~/flexbackup flexbackup-svn/flexbackup
--- flexbackup-svn~/flexbackup	2016-02-28 08:54:08.338589461 +0000
+++ flexbackup-svn/flexbackup	2016-02-28 08:56:08.934584524 +0000
@@ -1050,7 +1050,7 @@
     } else {
 	$prunekey = $dir;
     }
-    if (defined(%{$::prune{$prunekey}})) {
+    if (%{$::prune{$prunekey}}) {
 	&log("| NOTE: \$prune is ignored for type=dump");
     }
 
@@ -2685,7 +2685,7 @@
     }
 
     # Flag old config file
-    if (defined(@cfg::filesystems) or defined($cfg::mt_var_blksize)) {
+    if (@cfg::filesystems or defined($cfg::mt_var_blksize)) {
 	# so strict shuts up
 	my $junk = @cfg::filesystems;
 	$junk = $cfg::mt_var_blksize;
@@ -4883,7 +4883,7 @@
 	$prunekey = $dir;
     }
 
-    if (defined(%{$::prune{$prunekey}})) {
+    if (%{$::prune{$prunekey}}) {
 	# FreeBSD needs -E (above) and no backslashes around the (|) chars
 	if ($::uname =~ /FreeBSD/) {
 	    $cmd .= '-regex "\./(';

Reply via email to