Hello community,

here is the log from the commit of package storeBackup for openSUSE:Factory 
checked in at 2013-09-11 13:16:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/storeBackup (Old)
 and      /work/SRC/openSUSE:Factory/.storeBackup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "storeBackup"

Changes:
--------
--- /work/SRC/openSUSE:Factory/storeBackup/storeBackup.changes  2013-08-27 
21:22:40.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.storeBackup.new/storeBackup.changes     
2013-09-11 13:16:50.000000000 +0200
@@ -1,0 +2,8 @@
+Sun Sep  8 19:09:56 UTC 2013 - [email protected]
+
+- Update to 3.4.1:
+  * Fixed rule functions MARK_DIR and MARK_DIR_REC when using
+    saveRAM option
+  * Added chapter "Internals" to documentation
+
+-------------------------------------------------------------------

Old:
----
  storeBackup-3.4.config.default
  storeBackup-3.4.diff
  storeBackup-3.4.tar.bz2

New:
----
  storeBackup-3.4.1.config.default
  storeBackup-3.4.1.diff
  storeBackup-3.4.1.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ storeBackup.spec ++++++
--- /var/tmp/diff_new_pack.qZfXD1/_old  2013-09-11 13:16:50.000000000 +0200
+++ /var/tmp/diff_new_pack.qZfXD1/_new  2013-09-11 13:16:50.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           storeBackup
-Version:        3.4
+Version:        3.4.1
 Release:        0
 Summary:        A disk-to-disk backup tool for Linux
 License:        GPL-3.0+

++++++ storeBackup-3.4.config.default -> storeBackup-3.4.1.config.default ++++++
--- /work/SRC/openSUSE:Factory/storeBackup/storeBackup-3.4.config.default       
2013-08-27 21:22:40.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.storeBackup.new/storeBackup-3.4.1.config.default    
    2013-09-11 13:16:50.000000000 +0200
@@ -1,5 +1,5 @@
 # configuration file for storeBackup.pl
-# Generated by storeBackup.pl, 3.4
+# Generated by storeBackup.pl, 3.4.1
 
 ### explanations ###
 
@@ -188,10 +188,13 @@
 #                        contains a line feed)
 #    use_DB_File (suppresses the warning that you should install
 #                 perl module DB_File for better perforamnce)
+#    use_MLDBM (suppresses the warning that you should install
+#               perl module MLDBM if you want to use rule functions
+#               MARK_DIR or MARK_DIR_REC together with option saveRAM)
 #    use_IOCompressBzip2 (suppresses the warning that you should
 #                         instal perl module IO::Compress::Bzip2
 #                         for better performance)
-#    noBackupForPeriod (suppresses warnings that there are
+#    noBackupForPeriod (suppresses warning that there are
 #                       no backups for certain periods when using
 #                       option keepRelative)
 #  This option can be repeated multiple times on the command line.
@@ -443,7 +446,7 @@
 
 # delete old backups which have not been finished
 # this will not happen if doNotDelete is set
-# Values are 'yes' and 'no'. Default is 'no' which means to delete.
+# Values are 'yes' and 'no'. Default is 'no' which means not to delete.
 ;deleteNotFinishedDirs=
 
 # keep backups which are not older than the specified amount

++++++ storeBackup-3.4.diff -> storeBackup-3.4.1.diff ++++++

++++++ storeBackup-3.4.tar.bz2 -> storeBackup-3.4.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/bin/linkToDirs.pl 
new/storeBackup/bin/linkToDirs.pl
--- old/storeBackup/bin/linkToDirs.pl   2013-07-03 21:03:45.000000000 +0200
+++ new/storeBackup/bin/linkToDirs.pl   2013-08-09 18:56:23.000000000 +0200
@@ -559,7 +559,7 @@
 
                    if ($t eq 'f')
                    {
-                       unless (&::copyFile($f, $fnew))
+                       unless (&::copyFile($f, $fnew, $prLog))
                        {
                            $prLog->print('-kind' => 'E',
                                          '-str' =>
@@ -617,7 +617,7 @@
 
                        if ($t eq 'f')
                        {
-                           unless (&::copyFile($f, $fnew))
+                           unless (&::copyFile($f, $fnew, $prLog))
                            {
                                $prLog->print('-kind' => 'E',
                                              '-str' =>
@@ -652,7 +652,7 @@
 #print "\tcopy $f =>$fnew\n";
                    if ($t eq 'f')
                    {
-                       unless (&::copyFile($f, $fnew))
+                       unless (&::copyFile($f, $fnew, $prLog))
                        {
                            $prLog->print('-kind' => 'E',
                                          '-str' =>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/bin/storeBackup.pl 
new/storeBackup/bin/storeBackup.pl
--- old/storeBackup/bin/storeBackup.pl  2013-07-26 14:43:56.000000000 +0200
+++ new/storeBackup/bin/storeBackup.pl  2013-09-01 08:49:08.000000000 +0200
@@ -856,10 +856,13 @@
                           contains a line feed)
      use_DB_File (suppresses the warning that you should install
                   perl module DB_File for better perforamnce)
+     use_MLDBM (suppresses the warning that you should install
+                perl module MLDBM if you want to use rule functions
+                MARK_DIR or MARK_DIR_REC together with option saveRAM)
      use_IOCompressBzip2 (suppresses the warning that you should
                           instal perl module IO::Compress::Bzip2
                           for better performance)
-     noBackupForPeriod (suppresses warnings that there are
+     noBackupForPeriod (suppresses warning that there are
                         no backups for certain periods when using
                         option keepRelative)
     This option can be repeated multiple times on the command line.
@@ -1261,10 +1264,13 @@
 #                        contains a line feed)
 #    use_DB_File (suppresses the warning that you should install
 #                 perl module DB_File for better perforamnce)
+#    use_MLDBM (suppresses the warning that you should install
+#               perl module MLDBM if you want to use rule functions
+#               MARK_DIR or MARK_DIR_REC together with option saveRAM)
 #    use_IOCompressBzip2 (suppresses the warning that you should
 #                         instal perl module IO::Compress::Bzip2
 #                         for better performance)
-#    noBackupForPeriod (suppresses warnings that there are
+#    noBackupForPeriod (suppresses warning that there are
 #                       no backups for certain periods when using
 #                       option keepRelative)
 #  This option can be repeated multiple times on the command line.
@@ -1422,7 +1428,7 @@
 
 # delete old backups which have not been finished
 # this will not happen if doNotDelete is set
-# Values are 'yes' and 'no'. Default is 'no' which means to delete.
+# Values are 'yes' and 'no'. Default is 'no' which means not to delete.
 ;deleteNotFinishedDirs=
 
 # keep backups which are not older than the specified amount
@@ -2013,7 +2019,7 @@
                                            '-cf_key' => 'suppressWarning',
                                            '-multiple' => 'yes',
                                            '-pattern' =>
-  
'\AexcDir\Z|\AfileChange\Z|\AcrSeries\Z|\AhashCollision\Z|\AfileNameWithLineFeed|\Ause_DB_File\Z|\Ause_IOCompressBzip2\Z|\AnoBackupForPeriod\Z'),
+  
'\AexcDir\Z|\AfileChange\Z|\AcrSeries\Z|\AhashCollision\Z|\AfileNameWithLineFeed|\Ause_DB_File\Z|\Ause_MLDBM\Z|\Ause_IOCompressBzip2\Z|\AnoBackupForPeriod\Z'),
                                Option->new('-name' => 'linkToRecent',
                                            '-cl_option' => '--linkToRecent',
                                            '-cf_key' => 'linkToRecent',
@@ -2578,7 +2584,7 @@
        eval "use IO::Compress::Bzip2 qw(bzip2)";
        if ($@)
        {
-           $prLog->print('-kind' => 'I',
+           $prLog->print('-kind' => 'W',
                          '-str' =>
                          ["please install IO::Compress::Bzip2 from " .
                           "CPAN for better performance"])
@@ -3272,24 +3278,39 @@
 my $stbuINCLRECfilename = undef;
 if ($saveRAM)
 {
-    $stbuEXCLfilename = &::uniqFileName("$tmpdir/stbuEXCL.$$.");
-    %main::MARK_DIR_Cache = ();
-    dbmopen(%main::MARK_DIR_Cache, $stbuEXCLfilename, 0600);
-
-    $stbuEXCLRECfilename = &::uniqFileName("$tmpdir/stbuEXCLREC.$$.");
-    %main::MARK_DIR_REC_Cache = ();
-    dbmopen(%main::MARK_DIR_REC_Cache, $stbuEXCLRECfilename, 0600);
-
-    $stbuINCLRECfilename = &::uniqFileName("$tmpdir/stbuINCLREC.$$.");
-    %main::MARK_DIR_INCL_REC_Cache = ();
-    dbmopen(%main::MARK_DIR_INCL_REC_Cache, $stbuINCLRECfilename, 0600);
+       $stbuEXCLfilename = &::uniqFileName("$tmpdir/stbuEXCL.$$.");
+       %main::MARK_DIR_Cache = ();
+#      tie(%main::MARK_DIR_Cache, "DB_File", $stbuEXCLfilename,
+#          O_CREAT|O_RDWR, 0600) or
+       dbmopen(%main::MARK_DIR_Cache, $stbuEXCLfilename, 0600) or
+               $prLog->print('-kind' => 'E',
+                             '-str' => ["cannot write to $stbuEXCLfilename"],
+                             '-exit' => 1);
+
+       $stbuEXCLRECfilename = &::uniqFileName("$tmpdir/stbuEXCLREC.$$.");
+       %main::MARK_DIR_REC_Cache = ();
+#      tie(%main::MARK_DIR_REC_Cache, "DB_File", $stbuEXCLRECfilename,
+#          O_CREAT|O_RDWR, 0600) or
+       dbmopen(%main::MARK_DIR_REC_Cache, $stbuEXCLRECfilename, 0600) or
+               $prLog->print('-kind' => 'E',
+                             '-str' => ["cannot write to 
$stbuEXCLRECfilename"],
+                             '-exit' => 1);
+
+       $stbuINCLRECfilename = &::uniqFileName("$tmpdir/stbuINCLREC.$$.");
+       %main::MARK_DIR_INCL_REC_Cache = ();
+#      tie(%main::MARK_DIR_INCL_REC_Cache, "DB_File", $stbuINCLRECfilename,
+#          O_CREAT|O_RDWR, 0600) or
+       dbmopen(%main::MARK_DIR_INCL_REC_Cache, $stbuINCLRECfilename, 0600) or
+               $prLog->print('-kind' => 'E',
+                             '-str' => ["cannot write to 
$stbuINCLRECfilename"],
+                             '-exit' => 1);
 }
 
 
 # signal handling
 (@main::cleanup) =      # Objekte verfügbar machen
     ($prLog, 0, $oldFilename, $aktFilename, $parForkCopy, $parForkCompr, 
$tmpdir,
-     $setResetDirTimesFile, $stbuEXCLfilename, $stbuEXCLRECfilename);
+     $setResetDirTimesFile, $lockFile, $stbuEXCLfilename, 
$stbuEXCLRECfilename);
 $SIG{INT} = \&cleanup;
 $SIG{TERM} = \&cleanup;
 
@@ -3356,9 +3377,25 @@
 $aktFilename->closeInfoFile();
 $oldFilename->readDBMFilesSize();
 $oldFilename->delDBMFiles();     # dbm files löschen
-unlink $stbuEXCLfilename if $stbuEXCLfilename;
-unlink $stbuEXCLRECfilename if $stbuEXCLRECfilename;
-unlink $stbuINCLRECfilename if $stbuINCLRECfilename;
+
+if ($stbuEXCLfilename)
+{
+#    untie %main::MARK_DIR_Cache;
+    dbmclose(%main::MARK_DIR_Cache);
+    unlink $stbuEXCLfilename;
+}
+if ($stbuEXCLRECfilename)
+{
+#    untie %main::MARK_DIR_REC_Cache;
+    dbmclose(%main::MARK_DIR_REC_Cache);
+    unlink $stbuEXCLRECfilename;
+}
+if ($stbuINCLRECfilename)
+{
+#    untie %main::MARK_DIR_INCL_Cache;
+    dbmclose(%main::MARK_DIR_INCL_Cache);
+    unlink $stbuINCLRECfilename;
+}
 
 #
 # jetzt noch alte Backups löschen
@@ -3509,9 +3546,12 @@
     my $exit = (shift() || 1);
 
     my ($prLog, $onlyLateLinkCheck, $oldFilename, $aktFilename, $parForkCopy,
-       $parForkCompr, $tmpdir, $setResetDirTimesFile, $stbuEXCLfilename)
+       $parForkCompr, $tmpdir, $setResetDirTimesFile, $lockFile,
+       $stbuEXCLfilename, $stbuEXCLRECfilename)
        = (@main::cleanup);
 
+    unlink $lockFile;
+
     $main::endOfStoreBackup = 1;
 
     if ($signame)
@@ -3535,9 +3575,21 @@
                      '-str' => ["backing up directory <$sourceDir>"]);
     }
 
-    unlink $stbuEXCLfilename if $stbuEXCLfilename;
-    unlink $stbuEXCLRECfilename if $stbuEXCLRECfilename;
-    unlink $stbuINCLRECfilename if $stbuINCLRECfilename;
+    if ($stbuEXCLfilename)
+    {
+       untie %main::MARK_DIR_Cache;
+       unlink $stbuEXCLfilename;
+    }
+    if ($stbuEXCLRECfilename)
+    {
+       untie %main::MARK_DIR_REC_Cache;
+       unlink $stbuEXCLRECfilename;
+    }
+    if ($stbuINCLRECfilename)
+    {
+       untie %main::MARK_DIR_INCL_Cache;
+       unlink $stbuINCLRECfilename;
+    }
     exit $exit;
 }
 
@@ -3605,8 +3657,7 @@
        if (@e == 1 and $a[0] eq $e)
        {
            $prLog->print('-kind' => 'I',
-                         '-str' => ["$excluding <$a[0]>"])
-               if $prLog;
+                         '-str' => ["$excluding <$a[0]>"]);
        }
        elsif (@a != 0)
        {
@@ -3616,15 +3667,13 @@
                push @p, "    $excluding <$p>";
            }
            $prLog->print('-kind' => 'I',
-                         '-str' => ["$excluding <$e>:", @p])
-               if $prLog;
+                         '-str' => ["$excluding <$e>:", @p]);
        }
     }
     if ($flag and not $contExceptDirsErr)
     {
        $prLog->print('-kind' => 'E',
-                     '-str' => ["exiting"])
-           if $prLog;
+                     '-str' => ["exiting"]);
        exit 1;
     }
     return (@allExceptDirs);
@@ -3923,7 +3972,13 @@
                                my $bz = new IO::Compress::Bzip2(
                                    "$targetDir/$blockFile$postfix",
                                    BlockSize100K => 9);
-                               $bz->syswrite($buffer);
+                               unless ($bz->syswrite($buffer))
+                               {
+                                   $prLog->print('-kind' => 'E',
+                                                 '-str' =>
+                         ["writing compressed data failed " .
+                          "<$targetDir/$blockFile$postfix>"]);
+                               }
                                $bz->flush();
                                $bz->eof();
 
@@ -5925,7 +5980,8 @@
                                           " <$to/$blockCheckSumFile.bz2>"],
                                          '-exit' => 1)
                                unless 
(&::copyFile("$from/$blockCheckSumFile.bz2",
-                                                   
"$to/$blockCheckSumFile.bz2"))
+                                                   
"$to/$blockCheckSumFile.bz2",
+                                                   $prLog))
 
                        }
                        $from = ::relPath($targetDir, $from);
@@ -6518,7 +6574,7 @@
                               '-str' => ["copy $dir/$file $targetDir/$file"])
                     if ($debugMode >= 2);
 
-                unless (::copyFile("$dir/$file", "$targetDir/$file"))
+                unless (&::copyFile("$dir/$file", "$targetDir/$file", $prLog))
                 {
                     $prLog->print('-kind' => 'E',
                                   '-str' => ["could not copy $dir/$file " .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/bin/storeBackupCheckBackup.pl 
new/storeBackup/bin/storeBackupCheckBackup.pl
--- old/storeBackup/bin/storeBackupCheckBackup.pl       2013-07-03 
21:03:45.000000000 +0200
+++ new/storeBackup/bin/storeBackupCheckBackup.pl       2013-08-03 
10:42:46.000000000 +0200
@@ -481,6 +481,7 @@
                $prLog->print('-kind' => 'E',
                              '-str' =>
                              ["md5 sum mismatch for <$fn>"]);
+               $main::wft->print("$fn", 'md5Wrong');
            }
            elsif ($what eq 'errors')
            {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/bin/storeBackupRecover.pl 
new/storeBackup/bin/storeBackupRecover.pl
--- old/storeBackup/bin/storeBackupRecover.pl   2013-07-06 10:37:49.000000000 
+0200
+++ new/storeBackup/bin/storeBackupRecover.pl   2013-08-16 21:01:08.000000000 
+0200
@@ -451,7 +451,7 @@
        if (not $overwrite and -e $targetFile)
        {
            $prLog->print('-kind' => 'W',
-                         '-str' => ["Xtarget $targetFile already exists"]);
+                         '-str' => ["target $targetFile already exists"]);
            next;
        }
 
@@ -750,16 +750,19 @@
     my ($f, $oUid, $oGid, $oMode, $oAtime, $oMtime, $oDevInode, $comm) =
        @{$job->get('-what' => 'info')};
 
-    my $out = $job->getSTDERR();
-    if (@$out > 0)
+    if (ref($job) eq 'forkProc')
     {
-       $prLog->print('-kind' => 'E',
-                     '-str' => ["STDERR of: @$comm", @$out]);
+       my $out = $job->getSTDERR();
+       if (@$out > 0)
+       {
+           $prLog->print('-kind' => 'E',
+                         '-str' => ["STDERR of: @$comm", @$out]);
            $exit = 1;
-    }
-    if ($job->get('-what' => 'status'))
-    {
-       $exit = 1;
+       }
+       if ($job->get('-what' => 'status'))
+       {
+           $exit = 1;
+       }
     }
 
     unless ($noHardLinks)
@@ -915,7 +918,12 @@
                my $uc = new IO::Uncompress::Bunzip2 $input;
                while ($uc->read($buffer, 10*1024**2))
                {
-                   syswrite(TO, $buffer);
+                   unless (syswrite(TO, $buffer))
+                   {
+                       $prLog->print('-kind' => 'E',
+                                     '-str' => ["writing to <$toFile> 
failed"]);
+                       $ret = 1;
+                   }
                }
                next;
            }
@@ -928,7 +936,12 @@
                                  '-prLog' => $prLog);
            while ($fileIn->sysread(\$buffer, 10*1024**2))
            {
-               syswrite(TO, $buffer);
+               unless (syswrite(TO, $buffer))
+               {
+                   $prLog->print('-kind' => 'E',
+                                 '-str' => ["writing to <$toFile> failed"]);
+                   $ret = 1;
+               }
            }
        }
        else           # block not compressed
@@ -941,7 +954,12 @@
            }
            while (sysread(FROM, $buffer, 10*1024**2))
            {
-               syswrite(TO, $buffer);
+               unless (syswrite(TO, $buffer))
+               {
+                   $prLog->print('-kind' => 'E',
+                                 '-str' => ["writing to <$toFile> failed"]);
+                   $ret = 1;
+               }
            }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/bin/storeBackupUpdateBackup.pl 
new/storeBackup/bin/storeBackupUpdateBackup.pl
--- old/storeBackup/bin/storeBackupUpdateBackup.pl      2013-07-03 
21:03:45.000000000 +0200
+++ new/storeBackup/bin/storeBackupUpdateBackup.pl      2013-08-12 
12:36:31.000000000 +0200
@@ -1532,7 +1532,12 @@
                my $buffer;
                while (sysread(FILEIN, $buffer, 1025))
                {
-                   $bz->syswrite($buffer);
+                   unless ($bz->syswrite($buffer))
+                   {
+                       $prLog->print('-kind' => 'E',
+                                     '-str' =>
+                                     ["writing to <$file$comprPostfix> 
failed"]);
+                   }
                }
                $bz->flush();
                $bz->eof();
@@ -1683,7 +1688,7 @@
            else
            {
                # copy file
-                unless (::copyFile("$existingFile", "$newLink"))
+                unless (&::copyFile("$existingFile", "$newLink", $prLog))
                 {
                     $prLog->print('-kind' => 'E',
                                   '-str' => ["could not link/copy " .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/doc/ChangeLog 
new/storeBackup/doc/ChangeLog
--- old/storeBackup/doc/ChangeLog       2013-06-30 12:57:30.000000000 +0200
+++ new/storeBackup/doc/ChangeLog       2013-09-01 10:31:29.000000000 +0200
@@ -986,7 +986,7 @@
        - new program
 
 ----------------------------
-version 3.3.1
+version 3.3.1 2013.04
        linkToDirs.pl
        - added option --saveRAM and --tmpdir
        - option --ignoreErrors
@@ -1044,7 +1044,7 @@
          deltaCache for intraday timeframes (not important)
 
 ----------------------------
-version 3.4
+version 3.4 2013.07
        storeBackup.pl
        - added rule functions MARK_DIR and MARK_DIR_REC
        - added options --specialTypeArchiver and --archiveTypes
@@ -1074,3 +1074,24 @@
        - error messages in called compression program are now transported
          to log files
        - missing waitpid inserted
+
+----------------------------
+version 3.4.1 2013.09
+       storeBackup.pl
+       - rule functions MARK_DIR, MARK_DIR_REC now work with option saveRAM
+       - added parameter use_MLDBM to option suppressWarning
+       - added error message when running out of disk space by copying
+         small files (100k)
+       - when excluding a non-readable directory with exceptDirs no
+         warning or error message is generated any more
+         (before this correction it was necessary to set ignoreReadError)
+       - lockFile is deleted if control-c was pressed
+
+       storeBackupCheckBackup.pl
+       - added missing entry in file list with wrong md5 sums (option -w)
+
+       storeBackupRecover.pl
+       - fixed bug: called non-existing method getSTDERR on class simpleFork
+
+       documentation
+       - new chapter "internals"
Files old/storeBackup/doc/storeBackupDE.pdf and 
new/storeBackup/doc/storeBackupDE.pdf differ
Files old/storeBackup/doc/storeBackupEN.pdf and 
new/storeBackup/doc/storeBackupEN.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/lib/fileDir.pl 
new/storeBackup/lib/fileDir.pl
--- old/storeBackup/lib/fileDir.pl      2013-07-03 21:03:50.000000000 +0200
+++ new/storeBackup/lib/fileDir.pl      2013-08-31 10:28:38.000000000 +0200
@@ -40,6 +40,7 @@
 {
     my $source = shift;
     my $target = shift;
+    my $prLog = shift;
 
     local *SOURCE;
     local *TARGET;
@@ -54,7 +55,12 @@
     my $buffer;
     while (sysread(SOURCE, $buffer, 10*1024**2))
     {
-       syswrite(TARGET, $buffer);
+       unless (syswrite(TARGET, $buffer))
+       {
+           $prLog->print('-kind' => 'E',
+                         '-str' => [$!]);
+           return 0;
+       }
     }
 
     close(TARGET);
@@ -516,6 +522,12 @@
                          '-str' => ["removing old lock file of process <$pid>"]
                          );
        }
+       unless (unlink $lockFile)
+       {
+           $prLog->print('-kind' => 'E',
+                         '-str' => ["cannot remove lock file <$lockFile"],
+                         '-exit' => 1);
+       }
     }
 
     $prLog->print('-kind' => 'I',
@@ -692,6 +704,51 @@
 
 
 ############################################################
+# helper functions for &main::MARK_DIR and &main::MARK_DIR_REC
+# problem is to store 2 dimensional hash with dbm files (saveRAM)
+# simulates $a{$b}{$c} = 1 or $a{$b}{$d} = 1
+# with $a{$b} = 'SEP$cSEP$aSEP' where SEPerator is \000
+sub addToStr
+{
+    my $hash = shift;
+    my $k1 = shift;
+    my $k2 = shift;
+
+    if (exists $$hash{$k1})
+    {
+       if (index($$hash{$k1}, "\000$k2\000") < 0)  # not found
+       {
+           $$hash{$k1} = $$hash{$k1} . "$k2\000";
+       }
+    }
+    else
+    {
+       $$hash{$k1} = "\000$k2\000";
+    }
+}
+
+########################################
+sub existStr
+{
+    my $hash = shift;
+    my $k1 = shift;
+    my $k2 = shift;
+
+#    print "\thash = ", $$hash{$k1}, "\n";
+#    print "\t\t $k1 exists\n" if (exists $$hash{$k1});
+
+    if (exists $$hash{$k1} and index($$hash{$k1}, "\000$k2\000") >= 0)
+    {
+       return 1;
+    }
+    else
+    {
+       return 0;
+    }
+}
+
+
+############################################################
 # Objekt kann zum (wiederholten) Abfragen von Informationen
 # �ber eine Datei verwendet werden.
 # Liefert: alles von stat, md5sum
@@ -1027,6 +1084,9 @@
        unless (-r $entry)
 #      unless ($mode & ::S_IREAD and $> != 0)  # $> -> effective user id
        {
+           next
+               if exists $$except{&::absolutePath($entry)};
+
            if ($ignoreReadError)
            {
                $prLog->print('-kind' => $prLogWarn,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/lib/stbuMd5Exec.pl 
new/storeBackup/lib/stbuMd5Exec.pl
--- old/storeBackup/lib/stbuMd5Exec.pl  2013-07-03 21:03:50.000000000 +0200
+++ new/storeBackup/lib/stbuMd5Exec.pl  2013-08-12 12:37:45.000000000 +0200
@@ -99,7 +99,8 @@
 $size = 0;
 while ($n = sysread(IN, $buffer, 4096))
 {
-    syswrite $fd, $buffer;
+    print STDERR "cannot write to <$fileToSave>\n"
+       unless syswrite $fd, $buffer;
     $md5->add($buffer);
     $size += $n;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/lib/stbuMd5cp.pl 
new/storeBackup/lib/stbuMd5cp.pl
--- old/storeBackup/lib/stbuMd5cp.pl    2013-07-03 21:03:50.000000000 +0200
+++ new/storeBackup/lib/stbuMd5cp.pl    2013-08-12 12:37:53.000000000 +0200
@@ -50,7 +50,8 @@
 $size = 0;
 while ($n = sysread(IN, $buffer, 4096))
 {
-    syswrite OUT, $buffer;
+    print STDERR "cannot write to <$fileToSave>\n"
+       unless syswrite OUT, $buffer;
     $md5->add($buffer);
     $size += $n;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/lib/storeBackupLib.pl 
new/storeBackup/lib/storeBackupLib.pl
--- old/storeBackup/lib/storeBackupLib.pl       2013-07-03 21:03:50.000000000 
+0200
+++ new/storeBackup/lib/storeBackupLib.pl       2013-08-12 12:38:49.000000000 
+0200
@@ -453,7 +453,11 @@
        $prLog->print('-kind' => 'E',
                      '-str' => ["cannot write to <$file>"],
                      '-exit' => 1);
-    syswrite(COMP, $block);
+    unless (syswrite(COMP, $block))
+    {
+       $prLog->print('-kind' => 'E',
+                     '-str' => ["writing to <$file> failed"]);
+    }
     close(COMP);
 
     return 0;
@@ -4410,12 +4414,21 @@
 #print "\n---------\n";
 #foreach my $a (sort keys %main::MARK_DIR_REC_Cache)
 #{
+#   print "#$a#\n";
 #    foreach my $b (sort keys %{$main::MARK_DIR_REC_Cache{$a}})
 #    {
 #      print "$a -> $b ->", $main::MARK_DIR_REC_Cache{$a}{$b}, "\n";
 #    }
 #}
 #print "---------\n";
+#print "\n---------\n";
+#foreach my $a (sort keys %main::MARK_DIR_REC_Cache)
+#{
+#   my $b = $main::MARK_DIR_REC_Cache{$a};
+#   $b =~ s/\000/;/g;
+#   print "$a -> $b\n";
+#}
+#print "---------\n";
 
     my $incl = undef;
     for (;;)
@@ -4423,25 +4436,30 @@
        my ($d, $f) = &::splitFileDir($file);
        $incl = $d unless defined $incl;
 
-#print "d = <$d>, f = <$f>, incl = <$incl>\n";
-       if (exists $main::MARK_DIR_INCL_REC_Cache{$flagFile}{$d})
+#print "d = <$d>, f = <$f>, incl = <$incl>, flagFile = <$flagFile>\n";
+#      if (exists $main::MARK_DIR_INCL_REC_Cache{$d}{$flagFile})
+       if (&::existStr(\%main::MARK_DIR_INCL_REC_Cache, $d, $flagFile))
        {
 #print "-1-\n";
-           $main::MARK_DIR_INCL_REC_Cache{$flagFile}{$incl} = 1 if $incl;
+#          $main::MARK_DIR_INCL_REC_Cache{$incl}{$flagFile} = 1 if $incl;
+           &::addToStr(\%main::MARK_DIR_INCL_REC_Cache, $incl, $flagFile) if 
$incl;
            return 0;
        }
 #print "-2-\n";
-       if (exists $main::MARK_DIR_REC_Cache{$flagFile}{$d})
+#      if (exists $main::MARK_DIR_REC_Cache{$d}{$flagFile})
+       if (&::existStr(\%main::MARK_DIR_REC_Cache, $d, $flagFile))
        {
 #print "-2.5-\n";
-           $main::MARK_DIR_REC_Cache{$flagFile}{$incl} = 1;
+#          $main::MARK_DIR_REC_Cache{$incl}{$flagFile} = 1;
+           &::addToStr(\%main::MARK_DIR_REC_Cache, $incl, $flagFile);
            return 1;
        }
 #print "-3-\n";
        if (-f "$main::sourceDir/$d/$flagFile")
        {
 #print "-4-\n";
-           $main::MARK_DIR_REC_Cache{$flagFile}{$d} = 1;
+#          $main::MARK_DIR_REC_Cache{$d}{$flagFile} = 1;
+           &::addToStr(\%main::MARK_DIR_REC_Cache, $d, $flagFile);
            $main::__prLog->print('-kind' => 'I',
                                  '-str' =>
                                  ["MARK_DIR_REC matches <$main::sourceDir/$d>" 
.
@@ -4451,10 +4469,12 @@
            return 1;
        }
 #print "-5-\n";
-       if ($d eq '.' or not defined $d)
+#      if ($d eq '.' or not defined $d)
+       if (not defined $d or $d eq '.')
        {
-#print "-6-\n";
-           $main::MARK_DIR_INCL_REC_Cache{$flagFile}{$incl} = 1 if $incl;
+#print "-6- REC_CACHE($incl)($flagFile) = 1\n";
+#          $main::MARK_DIR_INCL_REC_Cache{$incl}{$flagFile} = 1 if $incl;
+           &::addToStr(\%main::MARK_DIR_INCL_REC_Cache, $incl, $flagFile) if 
$incl;
            return 0;
        }
        else
@@ -4480,10 +4500,12 @@
     my ($d, $f) = &::splitFileDir($file);
 
     return 1
-       if exists $main::MARK_DIR_Cache{$flagFile}{"$main::sourceDir/$d"};
+       if &::existStr(\%main::MARK_DIR_Cache, "$main::sourceDir/$d", 
$flagFile);
+#      if exists $main::MARK_DIR_Cache{"$main::sourceDir/$d"}{$flagFile};
     if (-f "$main::sourceDir/$d/$flagFile")
     {
-       $main::MARK_DIR_Cache{$flagFile}{"$main::sourceDir/$d"} = 1;
+       &::addToStr(\%main::MARK_DIR_Cache, "$main::sourceDir/$d", $flagFile);
+#      $main::MARK_DIR_Cache{"$main::sourceDir/$d"}{$flagFile} = 1;
        $main::__prLog->print('-kind' => 'I',
                              '-str' => ["MARK_DIR matches 
<$main::sourceDir/$d> " .
                                         "because of file <$flagFile>"]);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/lib/version.pl 
new/storeBackup/lib/version.pl
--- old/storeBackup/lib/version.pl      2013-07-03 21:03:50.000000000 +0200
+++ new/storeBackup/lib/version.pl      2013-08-29 12:32:32.000000000 +0200
@@ -19,7 +19,7 @@
 #
 
 
-$main::STOREBACKUPVERSION = "3.4";
+$main::STOREBACKUPVERSION = "3.4.1";
 
 
 sub printVersion
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/man/man1/linkToDirs.pl.1 
new/storeBackup/man/man1/linkToDirs.pl.1
--- old/storeBackup/man/man1/linkToDirs.pl.1    2013-07-27 18:39:30.000000000 
+0200
+++ new/storeBackup/man/man1/linkToDirs.pl.1    2013-09-07 13:36:31.000000000 
+0200
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "LINKTODIRS 1"
-.TH LINKTODIRS 1 "2013-07-03" "perl v5.14.2" "User Contributed Perl 
Documentation"
+.TH LINKTODIRS 1 "2013-08-09" "perl v5.14.2" "User Contributed Perl 
Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/man/man1/storeBackup.pl.1 
new/storeBackup/man/man1/storeBackup.pl.1
--- old/storeBackup/man/man1/storeBackup.pl.1   2013-07-27 18:39:29.000000000 
+0200
+++ new/storeBackup/man/man1/storeBackup.pl.1   2013-09-07 13:36:30.000000000 
+0200
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STOREBACKUP 1"
-.TH STOREBACKUP 1 "2013-07-26" "perl v5.14.2" "User Contributed Perl 
Documentation"
+.TH STOREBACKUP 1 "2013-09-01" "perl v5.14.2" "User Contributed Perl 
Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -906,10 +906,13 @@
 \&                          contains a line feed)
 \&     use_DB_File (suppresses the warning that you should install
 \&                  perl module DB_File for better perforamnce)
+\&     use_MLDBM (suppresses the warning that you should install
+\&                perl module MLDBM if you want to use rule functions
+\&                MARK_DIR or MARK_DIR_REC together with option saveRAM)
 \&     use_IOCompressBzip2 (suppresses the warning that you should
 \&                          instal perl module IO::Compress::Bzip2
 \&                          for better performance)
-\&     noBackupForPeriod (suppresses warnings that there are
+\&     noBackupForPeriod (suppresses warning that there are
 \&                        no backups for certain periods when using
 \&                        option keepRelative)
 \&    This option can be repeated multiple times on the command line.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/man/man1/storeBackupCheckBackup.pl.1 
new/storeBackup/man/man1/storeBackupCheckBackup.pl.1
--- old/storeBackup/man/man1/storeBackupCheckBackup.pl.1        2013-07-27 
18:39:29.000000000 +0200
+++ new/storeBackup/man/man1/storeBackupCheckBackup.pl.1        2013-09-07 
13:36:30.000000000 +0200
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STOREBACKUPCHECKBACKUP 1"
-.TH STOREBACKUPCHECKBACKUP 1 "2013-07-03" "perl v5.14.2" "User Contributed 
Perl Documentation"
+.TH STOREBACKUPCHECKBACKUP 1 "2013-08-03" "perl v5.14.2" "User Contributed 
Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/man/man1/storeBackupRecover.pl.1 
new/storeBackup/man/man1/storeBackupRecover.pl.1
--- old/storeBackup/man/man1/storeBackupRecover.pl.1    2013-07-27 
18:39:29.000000000 +0200
+++ new/storeBackup/man/man1/storeBackupRecover.pl.1    2013-09-07 
13:36:30.000000000 +0200
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STOREBACKUPRECOVER 1"
-.TH STOREBACKUPRECOVER 1 "2013-07-06" "perl v5.14.2" "User Contributed Perl 
Documentation"
+.TH STOREBACKUPRECOVER 1 "2013-08-16" "perl v5.14.2" "User Contributed Perl 
Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/storeBackup/man/man1/storeBackupUpdateBackup.pl.1 
new/storeBackup/man/man1/storeBackupUpdateBackup.pl.1
--- old/storeBackup/man/man1/storeBackupUpdateBackup.pl.1       2013-07-27 
18:39:29.000000000 +0200
+++ new/storeBackup/man/man1/storeBackupUpdateBackup.pl.1       2013-09-07 
13:36:30.000000000 +0200
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STOREBACKUPUPDATEBACKUP 1"
-.TH STOREBACKUPUPDATEBACKUP 1 "2013-07-03" "perl v5.14.2" "User Contributed 
Perl Documentation"
+.TH STOREBACKUPUPDATEBACKUP 1 "2013-08-12" "perl v5.14.2" "User Contributed 
Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to