Package: backup-manager
Version: 0.7.9-3
Severity: wishlist
Tags: upstream patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Attached is a patch to replace the current scheme for storing md5 sums (one
file per day) with a single file. IMHO this simplifies the procedure and works
better with multiple configuration files, while allows easier scripting of
related tasks (for example a periodic check of archives' integrity) since all
the information is present in a central, fixed location.

The patch as is hardcodes the location of the file. It is trivial to make this
configurable, if desired; I will happily provide an updated patch in that case.

regards
George Zarkadas

- -- System Information:
Debian Release: 6.0.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500, 
'stable'), (450, 'testing-proposed-updates'), (450, 'testing'), (400, 
'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=el_GR.utf8, LC_CTYPE=el_GR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages backup-manager depends on:
ii  debconf [debconf-2.0]        1.5.36.1    Debian configuration management sy
ii  findutils                    4.4.2-1+b1  utilities for finding files--find,
ii  ucf                          3.0025+nmu1 Update Configuration File: preserv

backup-manager recommends no packages.

Versions of packages backup-manager suggests:
ii  anacron               2.3-14             cron-like program that doesn't go 
ii  backup-manager-doc    0.7.9-3            documentation package for Backup M
ii  dar                   2.3.10-1+b1        Disk ARchive: Backup directory tre
ii  dvd+rw-tools          7.1-6              DVD+-RW/R tools
ii  genisoimage           9:1.1.11-1         Creates ISO-9660 CD-ROM filesystem
ii  gettext-base          0.18.1.1-3         GNU Internationalization utilities
ii  libfile-slurp-perl    9999.13-1          single call read & write file rout
pn  libnet-amazon-s3-perl <none>             (no description available)
ii  openssh-client        1:5.5p1-6+squeeze1 secure shell (SSH) client, for sec
ii  perl                  5.10.1-17squeeze2  Larry Wall's Practical Extraction 
ii  wodim                 9:1.1.11-1         command line CD/DVD writing tool
ii  zip                   3.0-3              Archiver for .zip files

- -- debconf information excluded

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQEcBAEBAgAGBQJOUt05AAoJEJWXIVmJ5BwWYksIALyQKkTXhH/aODCW4h85kZCX
6stxO5kswBQZTfyAUgxS/8aO3tVuO0UFTrBbR7CMnHdVYH8HzMMgK/MPi7VaPsuW
ckhrGVEDGtnoSQeWA+bcEO8Zfgz2Y0Xkpld1LckzirXQzzPD2UxFxnG5yzw+VSLj
BYS/xxMS/FaAVxdhXv8YuoRz9LkeFfDDBwBKL/lLPnkf6M0mXsmynas1a6NLHQhK
ipdNh3Ksu9pWvwzBdRshDH0yEAjiKNxePoFbCLv97YagmwRtBMD3zkmeLIBVNx4Y
p+QBeYq20Nh5bu68TKLzKiV/9TnUVJcvUYuuarUIk9+ENUVtjWvKnfwSlNqU998=
=Hd7Z
-----END PGP SIGNATURE-----
--- a/backup-manager
+++ b/backup-manager
@@ -183,7 +183,9 @@
 source $libdir/sanitize.sh
 
 debug "Initializing environment"
-bm_init_env 
+bm_init_env
+# Use a single md5 file to store all archives.
+export MD5FILE="${BM_REPOSITORY_ROOT}/${BM_ARCHIVE_PREFIX}-hashes.md5"
 
 debug "Checking if logger is available"
 check_logger
--- a/lib/actions.sh
+++ b/lib/actions.sh
@@ -49,13 +49,12 @@
     esac
 
     # Now make sure the md5 file is okay.
-    md5file="$BM_REPOSITORY_ROOT/${BM_ARCHIVE_PREFIX}-${TODAY}.md5"
-    if [[ -e $md5file ]] && 
+    if [[ -e $MD5FILE ]] && 
        [[ "$BM_REPOSITORY_SECURE" = "true" ]]; then
-        chown $BM_REPOSITORY_USER:$BM_REPOSITORY_GROUP $md5file ||
-            warning "Unable to change the owner of \"\$md5file\"."
-        chmod $BM_ARCHIVE_CHMOD $md5file ||
-            warning "Unable to change file permissions of \"\$md5file\"."
+        chown $BM_REPOSITORY_USER:$BM_REPOSITORY_GROUP $MD5FILE ||
+            warning "Unable to change the owner of \"\$MD5FILE\"."
+        chmod $BM_ARCHIVE_CHMOD $MD5FILE ||
+            warning "Unable to change file permissions of \"\$MD5FILE\"."
     fi
 done
 }
--- a/lib/backup-methods.sh
+++ b/lib/backup-methods.sh
@@ -38,15 +38,13 @@
         echo "$str ${md5hash})"
     fi
 
-    md5file="$BM_REPOSITORY_ROOT/${BM_ARCHIVE_PREFIX}-${TODAY}.md5"
-
     # Check if the md5file contains already the md5sum of the file_to_create.
     # In this case, the new md5sum overwrites the old one.
-    if grep "$base" $md5file >/dev/null 2>&1 ; then
-        previous_md5sum=$(get_md5sum_from_file $base $md5file)
-        sed -e "/$base/s/$previous_md5sum/$md5hash/" -i $md5file
+    if grep "$base" $MD5FILE >/dev/null 2>&1 ; then
+        previous_md5sum=$(get_md5sum_from_file $base $MD5FILE)
+        sed -e "/$base/s/$previous_md5sum/$md5hash/" -i $MD5FILE
     else
-        echo "$md5hash  $base" >> $md5file
+        echo "$md5hash  $base" >> $MD5FILE
     fi
 
     # Now that the file is created, remove previous duplicates if exists...
--- a/lib/files.sh
+++ b/lib/files.sh
@@ -413,10 +413,9 @@
                 error "Unable to get date from file."
             
             # get the md5 hash of the file we parse, in its .md5 file
-            
md5file="$BM_REPOSITORY_ROOT/${BM_ARCHIVE_PREFIX}-${date_of_file}.md5"
-            md5sum_to_check="$(get_md5sum_from_file $file $md5file)"
+            md5sum_to_check="$(get_md5sum_from_file $file $MD5FILE)"
             if [[ -z "$md5sum_to_check" ]]; then
-                warning "Unable to find the md5 hash of file \"\$file\" in 
file \"\$md5file\"."
+                warning "Unable to find the md5 hash of file \"\$file\" in 
file \"\$MD5FILE\"."
                 continue
             fi
             

Reply via email to