packages: extundelete/extundelete.spec, extundelete/extundelete-attrs.patch...

gotar gotar at pld-linux.org
Sun Jan 1 23:25:30 CET 2012


Author: gotar                        Date: Sun Jan  1 22:25:30 2012 GMT
Module: packages                      Tag: HEAD
---- Log message:
- restore atime, mtime, mode, user, group and directories, print dtime, rel. 2

---- Files affected:
packages/extundelete:
   extundelete.spec (1.1 -> 1.2) , extundelete-attrs.patch (NONE -> 1.1)  (NEW), extundelete-dirs.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/extundelete/extundelete.spec
diff -u packages/extundelete/extundelete.spec:1.1 packages/extundelete/extundelete.spec:1.2
--- packages/extundelete/extundelete.spec:1.1	Tue Jun 14 15:23:23 2011
+++ packages/extundelete/extundelete.spec	Sun Jan  1 23:25:25 2012
@@ -2,12 +2,14 @@
 Summary:	Recover deleted files from an ext3 or ext4 partition
 Name:		extundelete
 Version:	0.2.0
-Release:	1
+Release:	2
 License:	GPL v2
 Group:		Applications/System
 Source0:	http://dl.sourceforge.net/extundelete/%{name}-%{version}.tar.bz2
 # Source0-md5:	6dac74b12a747f133326ff7b81fceedd
 URL:		http://extundelete.sourceforge.net/
+Patch0:		%{name}-attrs.patch
+Patch1:		%{name}-dirs.patch
 BuildRequires:	e2fsprogs-devel
 BuildRequires:	libstdc++-devel
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -24,6 +26,8 @@
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
 
 %build
 %configure
@@ -49,5 +53,8 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.2  2012/01/01 22:25:25  gotar
+- restore atime, mtime, mode, user, group and directories, print dtime, rel. 2
+
 Revision 1.1  2011/06/14 13:23:23  gotar
 - another one just-in-case must-have

================================================================
Index: packages/extundelete/extundelete-attrs.patch
diff -u /dev/null packages/extundelete/extundelete-attrs.patch:1.1
--- /dev/null	Sun Jan  1 23:25:30 2012
+++ packages/extundelete/extundelete-attrs.patch	Sun Jan  1 23:25:25 2012
@@ -0,0 +1,26 @@
+--- a/src/extundelete.cc	2010-05-16 03:51:15.000000000 +0200
++++ b/src/extundelete.cc	2012-01-01 15:54:07.000000000 +0100
+@@ -89,6 +89,7 @@ Important future enhancements:
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <utime.h>
++#include <sys/time.h>
+ 
+ /* GNU headers */
+ #ifndef HAVE_GETOPT_H
+@@ -2532,8 +2533,14 @@ int restore_inode(ext2_filsys fs, ext2_f
+ 
+ 			if(!flag) {
+ 				if (truncate( (outputdir + fname2).c_str(), EXT2_I_SIZE(inode)) == 0) {
++					struct timeval times[2];
++					chmod((outputdir + fname2).c_str(),inode->i_mode);
++					lchown((outputdir + fname2).c_str(),inode->i_uid,inode->i_gid);
++					times[0].tv_sec=inode->i_atime; times[0].tv_usec=0;
++					times[1].tv_sec=inode->i_mtime; times[1].tv_usec=0;
++					utimes((outputdir + fname2).c_str(),times);
+ 					std::cout << "Restored inode " << ino << " to file ";
+-					std::cout << (outputdir + fname2) << std::endl;
++					std::cout << (outputdir + fname2) << " deleted " << asctime(localtime((time_t*)&inode->i_dtime));
+ 					retval = 0;
+ 				} else {
+ 					std::cout << "Failed to restore inode " << ino << " to file ";

================================================================
Index: packages/extundelete/extundelete-dirs.patch
diff -u /dev/null packages/extundelete/extundelete-dirs.patch:1.1
--- /dev/null	Sun Jan  1 23:25:30 2012
+++ packages/extundelete/extundelete-dirs.patch	Sun Jan  1 23:25:25 2012
@@ -0,0 +1,27 @@
+diff -urNp a/src/extundelete.cc b/src/extundelete.cc
+--- a/src/extundelete.cc	2010-05-16 03:51:15.000000000 +0200
++++ b/src/extundelete.cc	2012-01-01 22:51:46.000000000 +0100
+@@ -2556,6 +2556,23 @@ int restore_inode(ext2_filsys fs, ext2_f
+ 			retval = EU_RESTORE_FAIL;
+ 		}
+ 	}
++	else if (LINUX_S_ISDIR(inode->i_mode)) {
++		if(mkdir((outputdir2 + fname2).c_str(), 0700)) {
++			struct timeval times[2];
++			chmod((outputdir + fname2).c_str(),inode->i_mode);
++			lchown((outputdir + fname2).c_str(),inode->i_uid,inode->i_gid);
++			times[0].tv_sec=inode->i_atime; times[0].tv_usec=0;
++			times[1].tv_sec=inode->i_mtime; times[1].tv_usec=0;
++			utimes((outputdir + fname2).c_str(),times);
++			std::cout << "Restored inode " << ino << " as directory ";
++			std::cout << (outputdir + fname2) << " deleted " << asctime(localtime((time_t*)&inode->i_dtime));
++			retval = 0;
++		} else {
++			std::cout << "Failed to restore inode " << ino << " as directory ";
++			std::cout << (outputdir + fname2) << " deleted " << asctime(localtime((time_t*)&inode->i_dtime));
++			retval = EU_RESTORE_FAIL;
++		}
++	}
+ 	else {
+ 		std::cout << "Failed to restore inode " << ino << " to file ";
+ 		std::cout << (outputdir + fname2) << ":";
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/extundelete/extundelete.spec?r1=1.1&r2=1.2&f=u



More information about the pld-cvs-commit mailing list