]> git.pld-linux.org Git - packages/extundelete.git/commitdiff
- restore atime, mtime, mode, user, group and directories, print dtime, rel. 2 auto/th/extundelete-0_2_0-2
authorTomasz Pala <gotar@pld-linux.org>
Sun, 1 Jan 2012 22:25:25 +0000 (22:25 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    extundelete-attrs.patch -> 1.1
    extundelete-dirs.patch -> 1.1
    extundelete.spec -> 1.2

extundelete-attrs.patch [new file with mode: 0644]
extundelete-dirs.patch [new file with mode: 0644]
extundelete.spec

diff --git a/extundelete-attrs.patch b/extundelete-attrs.patch
new file mode 100644 (file)
index 0000000..db21f95
--- /dev/null
@@ -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 ";
diff --git a/extundelete-dirs.patch b/extundelete-dirs.patch
new file mode 100644 (file)
index 0000000..0dfa785
--- /dev/null
@@ -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) << ":";
index 999e05a33fafbbeaa3bad03aa906933a3c289c99..4a88a90c7e72d0d5804d5e42b069faccfc12f08f 100644 (file)
@@ -1,12 +1,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)
@@ -23,6 +25,8 @@ after recovering your files!
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
 
 %build
 %configure
This page took 0.127371 seconds and 4 git commands to generate.