Package: cedar-backup2
Version: 2.8.1-1
Severity: wishlist
Tags: patch

ide-scsi is obsolete on 2.6 kernels, cdrecord
(presently known as wodim in Debian by the way) can use recorders just like
====
wodim dev=/dev/hdc ...
====
and cannot (as far as I can see) use it the only way cedar-backup2 can use,
unlesss ide-scsi is configured.  To this end I've made the following
trivial modifications which seem to fix the problem for me:

Index: CedarBackup2/writer.py
===================================================================
--- CedarBackup2/writer.py      (revision 1011)
+++ CedarBackup2/writer.py      (working copy)
@@ -105,7 +105,7 @@
       raise ValueError("Backup device is not writable by the current user.")
    return device
 
-def validateScsiId(scsiId):
+def validateScsiId(scsiId, device):
    """
    Validates a SCSI id string.
    SCSI id must be a string in the form C{[ATA:|ATAPI:]scsibus,target,lun}.
@@ -115,6 +115,9 @@
    @return: SCSI id as a string, suitable for assignment to C{CdWriter.scsiId}.
    @raise ValueError: If the SCSI id string is invalid.
    """
+   if scsiId is None:
+      return device
+
    pattern = 
re.compile(r"^\s*(?:ATA:|ATAPI:)?\s*[0-9][0-9]*\s*,\s*[0-9][0-9]*\s*,\s*[0-9][0-9]*\s*$")
    if not pattern.search(scsiId):
       pattern = re.compile(r"^\s*IO.*Services(\/[0-9][0-9]*)?\s*$")
@@ -432,7 +435,7 @@
       @raise IOError: If device properties could not be read for some reason.
       """
       self._device = _validateDevice(device, unittest)
-      self._scsiId = validateScsiId(scsiId)
+      self._scsiId = validateScsiId(scsiId, device)
       self._driveSpeed = validateDriveSpeed(driveSpeed)
       self._media = MediaDefinition(mediaType)
       if not unittest:
Index: CedarBackup2/config.py
===================================================================
--- CedarBackup2/config.py      (revision 1011)
+++ CedarBackup2/config.py      (working copy)
@@ -4567,8 +4567,8 @@
             raise ValueError("Store section media type must be filled in.")
          if self.store.devicePath is None:
             raise ValueError("Store section device path must be filled in.")
-         if self.store.deviceScsiId is None:
-            raise ValueError("Store section SCSI id must be filled in.")
+#         if self.store.deviceScsiId is None:
+#            raise ValueError("Store section SCSI id must be filled in.")
 
    def _validatePurge(self):
       """

With that patch if there is no target_scsi_id tag in the configuration file
a string between target_device tags is used for dev=... cdrecord parameter.

My Python knowledge however is next to None, and the patch breaks some of
the unittests.  I wish I had more time to look into that.

-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18.1
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)

Versions of packages cedar-backup2 depends on:
ii  python                        2.4.4-2    An interactive high-level object-o
ii  python-support                0.5.6      automated rebuilding support for p

Versions of packages cedar-backup2 recommends:
ii  cdrecord                      9:1.1.0-1  Dummy transition package for wodim
ii  cedar-backup2-doc             2.8.1-1    local and remote backups to CD-R/C
ii  eject                         2.1.4-2.1  ejects CDs and operates CD-Changer
ii  mkisofs                       9:1.1.0-1  Dummy transition package for genis
ii  ssh                           1:4.3p2-7  Secure shell client and server (tr

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to