[arch-commits] Commit in backuppc/trunk (01-fix-edit-compound.patch PKGBUILD)

Sébastien Luttringer seblu at archlinux.org
Thu May 25 22:59:46 UTC 2017


    Date: Thursday, May 25, 2017 @ 22:59:45
  Author: seblu
Revision: 230319

upgpkg: backuppc 4.1.2-2

Added:
  backuppc/trunk/01-fix-edit-compound.patch
Modified:
  backuppc/trunk/PKGBUILD

----------------------------+
 01-fix-edit-compound.patch |  148 +++++++++++++++++++++++++++++++++++++++++++
 PKGBUILD                   |    4 -
 2 files changed, 151 insertions(+), 1 deletion(-)

Added: 01-fix-edit-compound.patch
===================================================================
--- 01-fix-edit-compound.patch	                        (rev 0)
+++ 01-fix-edit-compound.patch	2017-05-25 22:59:45 UTC (rev 230319)
@@ -0,0 +1,148 @@
+From 7936184a9ec049fef3d0d67e012b23d79eb336f1 Mon Sep 17 00:00:00 2001
+From: Craig Barratt <craigb at gmail.com>
+Date: Fri, 12 May 2017 01:00:41 -0700
+Subject: [PATCH] fixed editing of compound variables (eg, BackupFilesOnly)
+ when main config.pl value is non-empty
+
+---
+ lib/BackupPC/CGI/EditConfig.pm | 58 +++++++++++++++++++++++++++---------------
+ 1 file changed, 37 insertions(+), 21 deletions(-)
+
+diff --git a/lib/BackupPC/CGI/EditConfig.pm b/lib/BackupPC/CGI/EditConfig.pm
+index 5868dc2..747c488 100644
+--- a/lib/BackupPC/CGI/EditConfig.pm
++++ b/lib/BackupPC/CGI/EditConfig.pm
+@@ -411,14 +411,14 @@ sub action
+             #
+             #print STDERR Dumper(\%In);
+             foreach my $v ( sort(keys(%In)) ) {
+-                if ( $v =~ /^v_zZ_(\Q$var\E(_zZ_.*|$))/ ) {
+-                    delete($In{$v}) if ( !defined($In{"orig_zZ_$1"}) );
++                if ( $v =~ /^v_((zZ_|flds_)\Q$var\E(_zZ_.*|$))/ ) {
++                    delete($In{$v}) if ( !defined($In{"orig_$1"}) );
+                 }
+-                if ( $v =~ /^orig_zZ_(\Q$var\E(_zZ_.*|$))/ ) {
+-                    $In{"v_zZ_$1"} = $In{$v};
++                if ( $v =~ /^orig_((zZ_|flds_)\Q$var\E(_zZ_.*|$))/ ) {
++                    $In{"v_$1"} = $In{$v};
+                 }
+             }
+-            delete($In{"vflds.$var"});
++            #delete($In{"v_flds_$var"});
+         }
+ 
+         ($newConf, $override) = inputParse($bpc, $userHost);
+@@ -614,8 +614,9 @@ EOF
+ 	    return false;
+ 	}
+ 	var allVars = {};
+-	var varRE  = new RegExp("^v_zZ_(" + varName + ".*)");
+-	var origRE = new RegExp("^orig_zZ_(" + varName + ".*)");
++	var varRE  = new RegExp("^v_((zZ_|flds_)" + varName + ".*)");
++	var origRE = new RegExp("^orig_((zZ_|flds_)" + varName + ".*)");
++	var fldsRE = new RegExp("^flds_");
+         for ( var i = 0 ; i < document.editForm.elements.length ; i++ ) {
+ 	    var e = document.editForm.elements[i];
+ 	    var re;
+@@ -624,7 +625,7 @@ EOF
+ 		    allVars[re[1]] = 0;
+ 		}
+ 		allVars[re[1]]++;
+-		//debugMsg("found v_zZ_ match with " + re[1]);
++		//debugMsg("found v_ match with " + re[1]);
+ 		//debugMsg("allVars[" + re[1] + "] = " + allVars[re[1]]);
+ 	    } else if ( (re = origRE.exec(e.name)) != null ) {
+ 		if ( allVars[re[1]] == null ) {
+@@ -639,13 +640,20 @@ EOF
+ 	    if ( allVars[v] != 0 ) {
+ 		//debugMsg("Not the same shape because of " + v);
+ 		sameShape = 0;
+-	    } else {
++                break;
++            }
++            if ( fldsRE.exec(v) != null ) {
++                // always rebuild a compound variable
++		sameShape = 0;
++                break;
++            }
++        }
++	if ( sameShape ) {
++            for ( v in allVars ) {
+                 // copy the original variable values
+ 		//debugMsg("setting " + v);
+-		eval("document.editForm.v_zZ_" + v + ".value = document.editForm.orig_zZ_" + v + ".value");
++		eval("document.editForm.v_" + v + ".value = document.editForm.orig_" + v + ".value");
+             }
+-	}
+-	if ( sameShape ) {
+ 	    return true;
+ 	} else {
+             // need to rebuild the form since the compound variable
+@@ -915,11 +923,19 @@ EOF
+             # Just switching menus: copy all the orig_zZ_ input parameters
+             #
+             foreach my $var ( sort(keys(%In)) ) {
+-                next if ( $var !~ /^orig_zZ_/ );
+-                my $val = decode_utf8($In{$var});
+-                $contentHidden .= <<EOF;
++                if ( $var =~ /^orig_zZ_/ ) {
++                    my $val = decode_utf8($In{$var});
++                    $contentHidden .= <<EOF;
++<input type="hidden" name="$var" value="${EscHTML($val)}">
++EOF
++                } elsif ( $var =~ /^orig_flds_/ ) {
++                    foreach my $v ( split(/\0/, $In{$var}) ) {
++                        my $val = decode_utf8($v);
++                        $contentHidden .= <<EOF;
+ <input type="hidden" name="$var" value="${EscHTML($val)}">
+ EOF
++                    }
++                }
+             }
+ 	}
+     } else {
+@@ -991,7 +1007,7 @@ sub fieldHiddenBuild
+                 # rather than hard-coded
+                 #
+                 $content .= <<EOF;
+-<input type="hidden" name="vflds.$varName" value="${EscHTML($fld)}">
++<input type="hidden" name="${prefix}_flds_$varName" value="${EscHTML($fld)}">
+ EOF
+             }
+             $content .= fieldHiddenBuild($childType, "${varName}_zZ_$fldNum",
+@@ -1194,7 +1210,7 @@ EOF
+                 # rather than hard-coded
+                 #
+                 $content .= <<EOF;
+-<input type="hidden" name="vflds.$varName" value="${EscHTML($fld)}">
++<input type="hidden" name="v_flds_$varName" value="${EscHTML($fld)}">
+ EOF
+             }
+             $content .= "</td>\n";
+@@ -1239,7 +1255,7 @@ EOF
+                 # rather than hard-coded
+                 #
+                 $content .= <<EOF;
+-<input type="hidden" name="vflds.$varName" value="${EscHTML($fld)}">
++<input type="hidden" name="v_flds_$varName" value="${EscHTML($fld)}">
+ EOF
+             }
+             $content .= fieldEditBuild($childType, "${varName}_zZ_$fldNum",
+@@ -1346,7 +1362,7 @@ sub fieldErrorCheck
+         } elsif ( defined($type->{child}) ) {
+             @order = sort(keys(%{$type->{child}}));
+         } else {
+-            @order = split(/\0/, $In{"vflds.$varName"});
++            @order = split(/\0/, $In{"v_flds_$varName"});
+         }
+         for ( my $fldNum = 0 ; $fldNum < @order ; $fldNum++ ) {
+             my $fld = $order[$fldNum];
+@@ -1459,7 +1475,7 @@ sub fieldInputParse
+         } elsif ( defined($type->{child}) ) {
+             @order = sort(keys(%{$type->{child}}));
+         } else {
+-            @order = split(/\0/, $In{"vflds.$varName"});
++            @order = split(/\0/, $In{"v_flds_$varName"});
+         }
+ 
+         for ( my $fldNum = 0 ; $fldNum < @order ; $fldNum++ ) {

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-05-25 22:59:42 UTC (rev 230318)
+++ PKGBUILD	2017-05-25 22:59:45 UTC (rev 230319)
@@ -5,7 +5,7 @@
 pkgver=4.1.2
 _xsver=0.53
 _rbpcver=3.0.9.6
-pkgrel=1
+pkgrel=2
 pkgdesc='Enterprise-grade system for backing up Linux, Windows and MacOS PCs'
 url='https://github.com/backuppc/backuppc/'
 license=('GPL2')
@@ -20,6 +20,7 @@
 source=("https://github.com/backuppc/backuppc/releases/download/$pkgver/BackupPC-$pkgver.tar.gz"
         "https://github.com/backuppc/backuppc-xs/releases/download/v${_xsver//./_}/BackupPC-XS-${_xsver}.tar.gz"
         "https://github.com/backuppc/rsync-bpc/releases/download/v${_rbpcver//./_}/rsync-bpc-${_rbpcver}.tar.gz"
+        '01-fix-edit-compound.patch'
         "$pkgname.service"
         "$pkgname.sysusers"
         "$pkgname.tmpfiles"
@@ -34,6 +35,7 @@
 md5sums=('51b6328747d7329fe0278329eaa22ac6'
          'a6e58a97994e0128064ab16ee337f2f0'
          'c3e4b850d5d522bd1df21555c4287448'
+         '24f8fbf9732fb9c523d71fa3349211d4'
          '9d798d275eb737bcfd035d5277b6b4ce'
          'd90840387358e5dd230cace0b2d6b53a'
          'bda3ec3f4c75521c6869279eb16af2f8'



More information about the arch-commits mailing list