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 _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
