rdiff-backup-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/Globals.py ..


From: Andrew Ferguson
Subject: [Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/Globals.py ...
Date: Sun, 13 Apr 2008 11:25:23 +0000

CVSROOT:        /sources/rdiff-backup
Module name:    rdiff-backup
Changes by:     Andrew Ferguson <owsla> 08/04/13 11:25:22

Modified files:
        .              : CHANGELOG 
        rdiff_backup   : Globals.py SetConnections.py fs_abilities.py 

Log message:
        Handle Windows' lack of getuid(), getgid(), hardlinks and symlinks in
        fs_abilities.py. Use subproces.Popen() on Windows since it does not 
support
        os.popen2(). (Patch from Josh Nisly)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/CHANGELOG?cvsroot=rdiff-backup&r1=1.265&r2=1.266
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/Globals.py?cvsroot=rdiff-backup&r1=1.44&r2=1.45
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/SetConnections.py?cvsroot=rdiff-backup&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/fs_abilities.py?cvsroot=rdiff-backup&r1=1.44&r2=1.45

Patches:
Index: CHANGELOG
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.265
retrieving revision 1.266
diff -u -b -r1.265 -r1.266
--- CHANGELOG   8 Apr 2008 15:46:01 -0000       1.265
+++ CHANGELOG   13 Apr 2008 11:25:21 -0000      1.266
@@ -1,6 +1,10 @@
 New in v1.1.16 (????/??/??)
 ---------------------------
 
+Handle Windows' lack of getuid(), getgid(), hardlinks and symlinks in
+fs_abilities.py. Use subproces.Popen() on Windows since it does not support
+os.popen2(). (Patch from Josh Nisly)
+
 Let setup.py accept arguments on Windows. (Patch from Josh Nisly)
 
 Get cmodule.c building natively on Windows. (Patch from Josh Nisly)

Index: rdiff_backup/Globals.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/Globals.py,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- rdiff_backup/Globals.py     18 Jul 2007 21:52:11 -0000      1.44
+++ rdiff_backup/Globals.py     13 Apr 2008 11:25:21 -0000      1.45
@@ -47,9 +47,14 @@
 
 # uid and gid of the owner of the rdiff-backup process.  This can
 # vary depending on the connection.
-process_uid = os.getuid()
-process_gid = os.getgid()
-process_groups = [process_gid] + os.getgroups()
+try:
+       process_uid = os.getuid()
+       process_gid = os.getgid()
+       process_groups = [process_gid] + os.getgroups()
+except AttributeError:
+       process_uid = 0
+       process_gid = 0
+       process_groups = [0]
 
 # If true, when copying attributes, also change target's uid/gid
 change_ownership = None

Index: rdiff_backup/SetConnections.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/SetConnections.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- rdiff_backup/SetConnections.py      18 Jul 2007 21:52:11 -0000      1.16
+++ rdiff_backup/SetConnections.py      13 Apr 2008 11:25:22 -0000      1.17
@@ -132,6 +132,13 @@
        if not remote_cmd: return Globals.local_connection
 
        Log("Executing " + remote_cmd, 4)
+       if os.name == "nt":
+               import subprocess
+               process = subprocess.Popen(remote_cmd, shell=False, bufsize=0,
+                                                               
stdin=subprocess.PIPE, 
+                                                               
stdout=subprocess.PIPE)
+               (stdin, stdout) = (process.stdin, process.stdout)
+       else:
        stdin, stdout = os.popen2(remote_cmd)
        conn_number = len(Globals.connections)
        conn = connection.PipeConnection(stdout, stdin, conn_number)

Index: rdiff_backup/fs_abilities.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/fs_abilities.py,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- rdiff_backup/fs_abilities.py        9 Jan 2008 19:19:25 -0000       1.44
+++ rdiff_backup/fs_abilities.py        13 Apr 2008 11:25:22 -0000      1.45
@@ -169,7 +169,7 @@
                try:
                        tmp_rp.chown(uid+1, gid+1) # just choose random uid/gid
                        tmp_rp.chown(0, 0)
-               except (IOError, OSError): self.ownership = 0
+               except (IOError, OSError, AttributeError): self.ownership = 0
                else: self.ownership = 1
                tmp_rp.delete()
 
@@ -184,7 +184,7 @@
                        hl_dest.hardlink(hl_source.path)
                        if hl_source.getinode() != hl_dest.getinode():
                                raise IOError(errno.EOPNOTSUPP, "Hard links 
don't compare")
-               except (IOError, OSError):
+               except (IOError, OSError, AttributeError):
                        if Globals.preserve_hardlinks != 0:
                                log.Log("Warning: hard linking not supported by 
filesystem "
                                                "at %s" % (self.root_rp.path,), 
3)
@@ -460,7 +460,7 @@
                sym_dest = dir_rp.append("symlinked_file2")
                try:
                        sym_dest.symlink(sym_source.path)
-               except (OSError):
+               except (OSError, AttributeError):
                        self.symlink_perms = 0
                else:
                        sym_dest.setdata()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]