| 
														
															@@ -49,7 +49,6 @@ from .platform import acl_get, acl_set, set_flags, get_flags, swidth, hostname 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from .remote import cache_if_remote 
														 | 
														
														 | 
														
															 from .remote import cache_if_remote 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from .repository import Repository, LIST_SCAN_LIMIT 
														 | 
														
														 | 
														
															 from .repository import Repository, LIST_SCAN_LIMIT 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-has_lchmod = hasattr(os, 'lchmod') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 has_link = hasattr(os, 'link') 
														 | 
														
														 | 
														
															 has_link = hasattr(os, 'link') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -877,10 +876,18 @@ Utilization of max. archive size: {csize_max:.0%} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 pass 
														 | 
														
														 | 
														
															                 pass 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if fd: 
														 | 
														
														 | 
														
															             if fd: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 os.fchmod(fd, item.mode) 
														 | 
														
														 | 
														
															                 os.fchmod(fd, item.mode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            elif not symlink: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                os.chmod(path, item.mode) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            elif has_lchmod:  # Not available on Linux 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                os.lchmod(path, item.mode) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                # To check whether a particular function in the os module accepts False for its 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                # follow_symlinks parameter, the in operator on supports_follow_symlinks should be 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                # used. However, os.chmod is special as some platforms without a working lchmod() do 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                # have fchmodat(), which has a flag that makes it behave like lchmod(). fchmodat() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                # is ignored when deciding whether or not os.chmod should be set in 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                # os.supports_follow_symlinks. Work around this by using try/except. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                try: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    os.chmod(path, item.mode, follow_symlinks=False) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                except NotImplementedError: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if not symlink: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        os.chmod(path, item.mode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             mtime = item.mtime 
														 | 
														
														 | 
														
															             mtime = item.mtime 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if 'atime' in item: 
														 | 
														
														 | 
														
															             if 'atime' in item: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 atime = item.atime 
														 | 
														
														 | 
														
															                 atime = item.atime 
														 |