diff options
author | robi <robi> | 2011-10-19 00:33:34 +0000 |
---|---|---|
committer | robi <robi> | 2011-10-19 00:33:34 +0000 |
commit | e19aee9ba2dd89c142329e1fe7cd1109149cba4d (patch) | |
tree | 7e31edec0bf7fe0ed8813bf720ffc67a71332b7b | |
parent | aacfa4d0120b4d979f62a37a10b9d3cf2755e8dc (diff) |
version stuff
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | INSTALL | 14 | ||||
-rw-r--r-- | INSTALL.de | 16 | ||||
-rw-r--r-- | NEWS | 28 | ||||
-rw-r--r-- | README | 27 | ||||
-rwxr-xr-x | configure | 275 | ||||
-rw-r--r-- | configure.in | 8 | ||||
-rw-r--r-- | src/Makefile.am | 8 | ||||
-rw-r--r-- | src/Makefile.in | 25 |
9 files changed, 379 insertions, 32 deletions
@@ -1,4 +1,13 @@ + +0.3.0-pv0 new : the first experimental version of the magic-functions for ext4 + disabled : the magic-function for ext3 is switched off in this version + + change : Most functions in file_type.c are strongly modified, or completely new; + Many functions in magic_block_scan.c been enhanced for the properties of ext4 + new dependencies: zlib ; bzlib + + 0.2.2 new : Option -D (Disaster recovery) recover data from severely damaged file systems (Expert-Mode) move : option -Q has been moved to the expert mode(too much confusion for normal users) BUG : Memory leak fixed (ext4 inode extents) @@ -7,6 +16,7 @@ this eliminate some errors in directories with HTREE + 0.2.1 new : optional Expert-Mode (activate at configure) new Options "-s blocksize" ; "-n blockcount" ; "-c" change : activate magic level 1 and 2 for recover from the root inode BUG : #018040 @@ -17,6 +17,9 @@ Furthermore, there are dependencies to following libraries: libmagic libext2fs +Versions >= 0.3.0 + libz + libbz2 These libraries are present on any Linux, but you need actual versions. Check the version with the following commands: @@ -37,7 +40,8 @@ libext2fs-devel e2fslibs-dev e2fsprogs-devel libuuid-devel uuid-dev libuuid-devel libblkid-devel libblkid-dev libblkid-devel file-devel libmagic-dev file-devel - +zlib-devel ? ? +libbz2-devel ? ? unzip the archive and cd into the directory @@ -176,8 +180,8 @@ libblkid-devel libblkid-dev libblkid-devel then compile ext4magic - # tar -xzf ext4magic-0.1.4.tar.gz - # cd ext4magic-0.1.4 + # tar -xzf ext4magic-0.3.0.tar.gz + # cd ext4magic-0.3.0 # ./configure # make # su @@ -200,8 +204,8 @@ save the actual directory path of lib/ in a variable for future use in configure # EXT2LIB="$(pwd)/lib" After this, change into the code directory of ext4magic - # tar -xzf ext4magic-0.1.4.tar.gz - # cd ext4magic-0.1.4 + # tar -xzf ext4magic-0.3.0.tar.gz + # cd ext4magic-0.3.0 # ./configure CFLAGS="-I$EXT2LIB" LDFLAGS="-L$EXT2LIB" LIBS="-luuid -lcom_err -lpthread" # make # su @@ -25,6 +25,9 @@ Desweiteren sind Abhängigkeiten zu folgenden Libraries zu beachten. libmagic libext2fs +neu bei Versionen >= 0.3.0 + libz + libbz2 Diese Libraries sind zwar auf jedem Linux vorhanden, doch es werden aktuelle Versionen für ext4magic benötigt. Überprüfe die Versionen mit den folgenden Kommandos: @@ -45,7 +48,8 @@ libext2fs-devel e2fslibs-dev e2fsprogs-devel libuuid-devel uuid-dev libuuid-devel libblkid-devel libblkid-dev libblkid-devel file-devel libmagic-dev file-devel - +zlib-devel ? ? +libbz2-devel ? ? Entpacke das Archive und mit cd in das Verzeichnis wechseln @@ -201,8 +205,8 @@ libblkid-devel libblkid-dev libblkid-devel Das ext4magic Archiv downloaden und entpacken und in das so entstehende Verzeichnis wechseln - # tar -xzf ext4magic-0.1.4.tar.gz - # cd ext4magic-0.1.4 + # tar -xzf ext4magic-0.3.0.tar.gz + # cd ext4magic-0.3.0 Das Paket wird jetzt kompiliert. @@ -255,8 +259,8 @@ ext4magic angelegt wird. Jetzt die gleiche Shell benutzen in der die EXT2LIB Var wie folgt compilieren - # tar -xzf ext4magic-0.1.4.tar.gz - # cd ext4magic-0.1.4 + # tar -xzf ext4magic-0.3.0.tar.gz + # cd ext4magic-0.3.0 # ./configure CFLAGS="-I$EXT2LIB" LDFLAGS="-L$EXT2LIB" LIBS="-luuid -lcom_err -lpthread" # make @@ -271,7 +275,7 @@ Ausgabe folgender Befehle erkannt werden: # ext4magic -V x - ext4magic version : 0.1.4 + ext4magic version : 0.3.0 libext2fs version : 1.41.11 CPU is little endian. # @@ -1,3 +1,31 @@ + + +ext4magic 0.3.0 pv0 Contains the first experimental version of the magic function for ext4 + The magic function for ext4 in this version can restore deleted files which + consisted of more than 4 extents (includes extra large and sparse files) + and also files that are unfragmented. (most small and medium-sized files + and many large files, are often unfragmented) + + This version can not recover files with 2 to 4 extents. But it's prepared and + will be possible in later versions for some file types. + + Depending of the file type, different methods for recovery are used. + For most file types specific functions have been developed. + + Supported the most important file formats for: + file archivs, compressed file, a lot off video-, audio- and picture formats, + ELF-binary format, Mail, PDF, a lot of text-based file formats, and much more. + + Tested are more than 50 file formats and if available, also possible + variants and subtypes. + Possible, this version will work well for you, possible also, it does not work. + There is a lot of new and experimental code. + + The magic-function for ext3 is switched off in this version. For ext3 use + ext4magic 0.2.2 + + + ext4magic 0.2.2 Expansion of the Expert-Mode. With the new "-D" option it is possible to recover data from severely damaged file systems. @@ -66,7 +66,7 @@ they are skipped for now when searching for file names in this directory. Deleted files can not re-assembled, the Inode data are unsuitable for this purpose. Exactly what the developers say. -But there is the filesystem Journal. Journaling ensures the integrity of the +But there is the file system journal. Journaling ensures the integrity of the filesystem by keeping a log of the ongoing disk changes. After deleting a file, there you found a copy of the data block in which the deleted Inode is included. Well, this copy is not usable for a recover. @@ -87,7 +87,7 @@ moved files or directories. You will also find tables with the block and inode allocation. This data are used in the magic functions for controlling the file carving. The functions of the file carving matched exactly to the respective properties of the file system types and these functions included into a multi-stage recover process. -This feature currently only usable for ext3. +This feature currently usable for ext3 and is in the development for ext4. ---------------------------------------------------------------------------------- @@ -190,7 +190,7 @@ This works only correct for a limited time if you continue to write into the fil 3.0 A few words about the new magic functions ( since version 0.2.0) ====================================================================== These functions are designed to make undo of recursive deletes. This also works very well - if the files have been deleted by a recursive move. But in this case, you must set time options. + if the files have been deleted by a recursive move or deleted by rsync. But in this case, you must set time options. The magic function is a multi-level recover and also restore files if no old journal copies can be found for this file. @@ -198,7 +198,12 @@ This works only correct for a limited time if you continue to write into the fil 1. recover files of the file system tree with the help of old inode copies. 2. recover all other inode copies which were not found in first stage. - 3. (currently only ext3) recover the remaining data blocks, using a file carving function (we say magic function) + 3. recover the remaining data blocks, using a file carving function (we say magic function) + These magic functions are still under development, the support depends on the ext4magic version + + Version 0.2.x only ext3 + Version 0.3.0 only ext4 + Versions >= 0.4.0 will support ext3 and ext4 @@ -212,13 +217,13 @@ This works only correct for a limited time if you continue to write into the fil The magic functions are very user friendly because very few command options are required. - If the entire delete operation has only process less than 5 minutes, no time options will need. + If the entire delete operation has only process less than 5 minutes, (e.g. rm -rf ) no time options will need. In the case that the deletion process has process a long time, or were the files deleted by a move command, the exact time of the beginning of the erase operation must be specified. Extensive testing has confirmed that magic-scan-functions are now stable with libmagic.so >= version 5.04. - Good support exists for: all text file types, a lot of image formats, + Good support exists for: many text file types, a lot of image formats, often-used video and audio file types, Open Office documents, PDF, RAR, TAR, CPIO, BZ2, ZIP, GZIP, 7Z ... @@ -227,7 +232,8 @@ This works only correct for a limited time if you continue to write into the fil Problems still exist with some multimedia formats and some documents. Not every file type can be restored only based on head and foot patterns. Some types of multimedia streams, splited or - truncated files are hard to recover. + truncated files are hard to recover. We are working hard on this problem, and in newer versions is the support + for these file types are much better. The recovery of CD/DVD images and other file system containers is also problematic. This can only work in file systems with 4KB block size. Sparse files, and very large files if not deleted in one step, can not be restored with this @@ -263,8 +269,9 @@ xz: test.xz: Compressed data is corrupt The magic functions works slowly, but very efficient and can find some files - that other tools can not recover. For very large file systems first try other tools. - In difficult conditions ext4magic could require days or weeks to recover all the data. + that other tools can not recover. For very large file systems first try other tools. + In difficult conditions ext4magic could require days or weeks to recover all the data. + Newer versions will work much faster and much more accurate. ext4magic can also find very long files when the data are fragmented in the file system. Others file carving tools find here often no complete files, or recover data trash. @@ -296,7 +303,7 @@ Why? Better is the following: - Use an existing ext3 filesystem. The last hours should no run a global "find" or a backup tool + Use an existing filesystem. The last hours should no run a global "find" or a backup tool in this file system. That would write to many inode copies and to be easy to recover. umount this file system, and create a 1-to-1 copy of the file system. Now you can test with that copy. @@ -2496,7 +2496,7 @@ fi # Define the identity of the package. PACKAGE=ext4magic - VERSION=0.2.2 + VERSION=0.3.0-pv0 cat >>confdefs.h <<_ACEOF @@ -11597,6 +11597,279 @@ test $fail = 1 && $as_echo "$as_me: error: You must install the develop packages \"ext2fs , blkid , e2p , uuid\" to build ext4magic" >&2;} { (exit 1); exit 1; }; } +fail=0 +if test "${ac_cv_header_zlib_h+set}" = set; then + { $as_echo "$as_me:$LINENO: checking for zlib.h" >&5 +$as_echo_n "checking for zlib.h... " >&6; } +if test "${ac_cv_header_zlib_h+set}" = set; then + $as_echo_n "(cached) " >&6 +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5 +$as_echo "$ac_cv_header_zlib_h" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking zlib.h usability" >&5 +$as_echo_n "checking zlib.h usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <zlib.h> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking zlib.h presence" >&5 +$as_echo_n "checking zlib.h presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <zlib.h> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: zlib.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: zlib.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: zlib.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: zlib.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: zlib.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: zlib.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: zlib.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: zlib.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: zlib.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: zlib.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: zlib.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: zlib.h: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for zlib.h" >&5 +$as_echo_n "checking for zlib.h... " >&6; } +if test "${ac_cv_header_zlib_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_header_zlib_h=$ac_header_preproc +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5 +$as_echo "$ac_cv_header_zlib_h" >&6; } + +fi +if test "x$ac_cv_header_zlib_h" = x""yes; then + : +else + fail=1 +fi + + +if test "${ac_cv_header_bzlib_h+set}" = set; then + { $as_echo "$as_me:$LINENO: checking for bzlib.h" >&5 +$as_echo_n "checking for bzlib.h... " >&6; } +if test "${ac_cv_header_bzlib_h+set}" = set; then + $as_echo_n "(cached) " >&6 +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_bzlib_h" >&5 +$as_echo "$ac_cv_header_bzlib_h" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking bzlib.h usability" >&5 +$as_echo_n "checking bzlib.h usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <bzlib.h> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking bzlib.h presence" >&5 +$as_echo_n "checking bzlib.h presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <bzlib.h> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: bzlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: bzlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: bzlib.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: bzlib.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: bzlib.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: bzlib.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: bzlib.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: bzlib.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: bzlib.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: bzlib.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: bzlib.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: bzlib.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: bzlib.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: bzlib.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: bzlib.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: bzlib.h: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for bzlib.h" >&5 +$as_echo_n "checking for bzlib.h... " >&6; } +if test "${ac_cv_header_bzlib_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_header_bzlib_h=$ac_header_preproc +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_bzlib_h" >&5 +$as_echo "$ac_cv_header_bzlib_h" >&6; } + +fi +if test "x$ac_cv_header_bzlib_h" = x""yes; then + : +else + fail=1 +fi + + +test $fail = 1 && +{ { $as_echo "$as_me:$LINENO: error: You must install the packages \"zlib-devel and libbz2-devel\" to build this version" >&5 +$as_echo "$as_me: error: You must install the packages \"zlib-devel and libbz2-devel\" to build this version" >&2;} + { (exit 1); exit 1; }; } fail=0 { $as_echo "$as_me:$LINENO: checking for library containing ext2fs_test_inode_bitmap_range" >&5 diff --git a/configure.in b/configure.in index 1c5d8fc..516626a 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,8 @@ AC_INIT(configure.in) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(ext4magic, 0.2.2) + +AM_INIT_AUTOMAKE(ext4magic, 0.3.0-pv0) AC_LANG_C AC_PROG_CC @@ -15,6 +16,11 @@ AC_CHECK_HEADER([uuid/uuid.h],[],[fail=1]) test $fail = 1 && AC_MSG_ERROR([You must install the develop packages "ext2fs , blkid , e2p , uuid" to build ext4magic]) +fail=0 +AC_CHECK_HEADER([zlib.h],[],[fail=1]) +AC_CHECK_HEADER([bzlib.h],[],[fail=1]) +test $fail = 1 && +AC_MSG_ERROR([You must install the packages "zlib-devel and libbz2-devel" to build this version]) fail=0 AC_SEARCH_LIBS([ext2fs_test_inode_bitmap_range], [ext2fs], [], [fail=1]) diff --git a/src/Makefile.am b/src/Makefile.am index b0bbf5a..1c0c4c8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,5 @@ sbin_PROGRAMS = ext4magic -ext4magic_SOURCES = block.c dir_list.c ext4magic.c file_type.c \ +ext4magic_SOURCES = block.c dir_list.c ext4magic.c extent_db.c file_type.c \ hard_link_stack.c imap_search.c inode.c journal.c lookup_local.c magic_block_scan.c \ recover.c ring_buf.c util.c @@ -10,7 +10,7 @@ man_MANS = ext4magic.8 # the library search path. ext4magic_CFLAGS = -O2 -g -D_FILE_OFFSET_BITS=64 -ext4magic_LDFLAGS = -lext2fs -le2p -luuid -lblkid -lmagic +ext4magic_LDFLAGS = -lext2fs -le2p -luuid -lblkid -lmagic -lz -lbz2 noinst_HEADERS = block.h dir_list.h ext2fsP.h ext4magic.8 ext4magic.h \ - hard_link_stack.h inode.h jfs_compat.h jfs_user.h journal.h kernel-jbd.h kernel-list.h \ - magic.h ring_buf.h util.h + extent_db.h hard_link_stack.h inode.h jfs_compat.h jfs_user.h journal.h \ + kernel-jbd.h kernel-list.h magic.h ring_buf.h util.h diff --git a/src/Makefile.in b/src/Makefile.in index 8aef4e4..ba673db 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -51,7 +51,7 @@ am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)" PROGRAMS = $(sbin_PROGRAMS) am_ext4magic_OBJECTS = ext4magic-block.$(OBJEXT) \ ext4magic-dir_list.$(OBJEXT) ext4magic-ext4magic.$(OBJEXT) \ - ext4magic-file_type.$(OBJEXT) \ + ext4magic-extent_db.$(OBJEXT) ext4magic-file_type.$(OBJEXT) \ ext4magic-hard_link_stack.$(OBJEXT) \ ext4magic-imap_search.$(OBJEXT) ext4magic-inode.$(OBJEXT) \ ext4magic-journal.$(OBJEXT) ext4magic-lookup_local.$(OBJEXT) \ @@ -216,7 +216,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -ext4magic_SOURCES = block.c dir_list.c ext4magic.c file_type.c \ +ext4magic_SOURCES = block.c dir_list.c ext4magic.c extent_db.c file_type.c \ hard_link_stack.c imap_search.c inode.c journal.c lookup_local.c magic_block_scan.c \ recover.c ring_buf.c util.c @@ -227,10 +227,10 @@ man_MANS = ext4magic.8 # the library search path. ext4magic_CFLAGS = -O2 -g -D_FILE_OFFSET_BITS=64 -ext4magic_LDFLAGS = -lext2fs -le2p -luuid -lblkid -lmagic +ext4magic_LDFLAGS = -lext2fs -le2p -luuid -lblkid -lmagic -lz -lbz2 noinst_HEADERS = block.h dir_list.h ext2fsP.h ext4magic.8 ext4magic.h \ - hard_link_stack.h inode.h jfs_compat.h jfs_user.h journal.h kernel-jbd.h kernel-list.h \ - magic.h ring_buf.h util.h + extent_db.h hard_link_stack.h inode.h jfs_compat.h jfs_user.h journal.h \ + kernel-jbd.h kernel-list.h magic.h ring_buf.h util.h all: all-am @@ -322,6 +322,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext4magic-block.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext4magic-dir_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext4magic-ext4magic.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext4magic-extent_db.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext4magic-file_type.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext4magic-hard_link_stack.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext4magic-imap_search.Po@am__quote@ @@ -396,6 +397,20 @@ ext4magic-ext4magic.obj: ext4magic.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ext4magic_CFLAGS) $(CFLAGS) -c -o ext4magic-ext4magic.obj `if test -f 'ext4magic.c'; then $(CYGPATH_W) 'ext4magic.c'; else $(CYGPATH_W) '$(srcdir)/ext4magic.c'; fi` +ext4magic-extent_db.o: extent_db.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ext4magic_CFLAGS) $(CFLAGS) -MT ext4magic-extent_db.o -MD -MP -MF $(DEPDIR)/ext4magic-extent_db.Tpo -c -o ext4magic-extent_db.o `test -f 'extent_db.c' || echo '$(srcdir)/'`extent_db.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/ext4magic-extent_db.Tpo $(DEPDIR)/ext4magic-extent_db.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extent_db.c' object='ext4magic-extent_db.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ext4magic_CFLAGS) $(CFLAGS) -c -o ext4magic-extent_db.o `test -f 'extent_db.c' || echo '$(srcdir)/'`extent_db.c + +ext4magic-extent_db.obj: extent_db.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ext4magic_CFLAGS) $(CFLAGS) -MT ext4magic-extent_db.obj -MD -MP -MF $(DEPDIR)/ext4magic-extent_db.Tpo -c -o ext4magic-extent_db.obj `if test -f 'extent_db.c'; then $(CYGPATH_W) 'extent_db.c'; else $(CYGPATH_W) '$(srcdir)/extent_db.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/ext4magic-extent_db.Tpo $(DEPDIR)/ext4magic-extent_db.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='extent_db.c' object='ext4magic-extent_db.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ext4magic_CFLAGS) $(CFLAGS) -c -o ext4magic-extent_db.obj `if test -f 'extent_db.c'; then $(CYGPATH_W) 'extent_db.c'; else $(CYGPATH_W) '$(srcdir)/extent_db.c'; fi` + ext4magic-file_type.o: file_type.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ext4magic_CFLAGS) $(CFLAGS) -MT ext4magic-file_type.o -MD -MP -MF $(DEPDIR)/ext4magic-file_type.Tpo -c -o ext4magic-file_type.o `test -f 'file_type.c' || echo '$(srcdir)/'`file_type.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/ext4magic-file_type.Tpo $(DEPDIR)/ext4magic-file_type.Po |