From ece62d250091d962f12cbfb8de92ebfc26a0856e Mon Sep 17 00:00:00 2001 From: Adolf Belka Date: Thu, 4 Feb 2021 23:17:08 +0100 Subject: [PATCH] ddrescue: Update to 1.25 - Update ddrescue from 1.12 to 1.25 - Updated rootfiles - Since 2013 gnu started to only use lzip for compression of ddrescue Therefore second patch of this series is the installation of lzip in the IPFire Build. - Changelog 2020-02-21 Antonio Diaz Diaz * Version 1.25 released. * block.h: Add default constructors to classes Block and Sblock. (Reported by Rosen Penev). * check.sh: Quote all file name variables to allow names with spaces. (Reported by David Morrison). * In rescue mode, join non-finished subsectors read from mapfile. (Reported by David Burton). * mapbook.cc (update_mapfile): Exclude writing time from intervals. (Reported by David Burton). * rescuebook.cc (extend_outfile_size): Use ftruncate if it works. * Print large numbers in groups of 3 digits separated by underscores. * main.cc: Set a valid invocation_name even if argc == 0. 2019-02-24 Antonio Diaz Diaz * Version 1.24 released. * Added new option '--command-mode'. * Implemented mapfile backup. * ddrescue.texi: Documented final contents of bad areas in outfile. * configure: Accept appending to CXXFLAGS, 'CXXFLAGS+=OPTIONS'. 2018-02-13 Antonio Diaz Diaz * Version 1.23 released. * rescuebook.cc (trim_errors): Fix wrong change to non-scraped. * Added new option '--same-file'. * Added new option '--shift' to ddrescuelog. * fillbook.cc (fill_block): Write location data as one line. * fillbook.cc (read_buffer): Do not require a seekable infile. * ddrescue.texi: Added chapter 'Output'. * check.sh: Added 'combined rescue' test. * io.cc: Added missing '#include '. 2017-02-03 Antonio Diaz Diaz * Version 1.22 released. * Option '-X, --exit-on-error' replaced by '-X, --max-read-errors'. * Added new option '--max-slow-reads'. * Added new option '--delay-slow'. * Added new option '--reset-slow'. * Added new option '--log-events'. * Added new option '--mapfile-interval'. * Added new option '--pause-on-error'. * Option '--pause' has been renamed to '--pause-on-pass'. * Option '--max-errors' has been renamed to '--max-bad-areas'. * Renamed 'errsize' to 'bad_size' and 'errors' to 'bad_areas' * Rescuebook: Show read_errors, error_rate and slow_reads. * Added 'current_pass' field to mapfile. * Added two new passes (3 and 4) to the copying phase. * main.cc (parse_cpass): Accept ranges of passes. * Option '-K, --skip-size' now accepts sizes up to 1 EiB. * Initial skip size now defaults to (infile_size / 100_000). * rescuebook.cc (copy_non_tried): Don't reduce min_read_rate, enable it only for passes 1 and 2. * rescuebook.cc (trim_errors): Don't trim bad edges. * main_common.cc (getnum): Accept 's' after other multiplier. * '--ask', '-vv' now show size along with model and serial number. * non_posix.cc: Add 'device_id' for Cygwin. (Patch written by Christian Franke ). * rescuebook.cc (do_rescue): Show full sizes in domain warning. * Added new option '-A, --annotate-mapfile' to ddrescuelog. 2016-03-17 Antonio Diaz Diaz * Version 1.21 released. * mapbook.cc (Mapbook): Fix iobuf alignment. (Reported by Heikki Tauriainen). * Removed short option names '-1' and '-2'. * Allow only regular files for '--log-rates' and '--log-reads'. * Option '-D, --odirect' now works also in fill mode. * rescuebook.cc (copy_block): Return 1 on unaligned read error. Set e_code on any error if verify_on_error. * Option '-X, --exit-on-error' has been extended to all phases. * Assigned short name '-Z' to option '--max-read-rate'. * mapbook.cc (update_mapfile): 'fsync' the mapfile every 5 minutes. * Rescuebook: Show full range of sizes from non-tried to finished. * rescuebook.cc (show_status): Show percentage rescued. * configure: Avoid warning on some shells when testing for g++. * Makefile.in: Detect the existence of install-info. 2015-09-10 Antonio Diaz Diaz * Version 1.20 released. * 'logfile' has been renamed to 'mapfile' everywhere. * Changed short name of option '--synchronous' to '-y'. * Changed long name of option '-d' to '--idirect'. * Added new option '-D, --odirect'. * Added new option '-J, --verify-on-error'. * Added new option '--max-read-rate'. * rescuebook.cc (copy_block): Copy arbitrary blocks with '--idirect'. * Include only bad-sector blocks in 'errsize'. * rescuebook.cc (show_status): Show the estimated remaining time. * io.cc (format_time): Show time in days, hours, minutes and seconds. * Added per sector location data to fill mode. * mapbook.cc: Added emergency save of the mapfile. * Show device name with '--ask' or '-vv' on Haiku. * mapfile.cc (read_mapfile): Read read-only mapfiles from stdin. * ddrescuelog.cc: Allow multiple mapfiles for '-t, --show-status'. * ddrescuelog.cc (create_mapfile): '-' writes mapfile to stdout. * ddrescue.texi: Added new chapter 'Optical media'. * ddrescue.texi: Documented maximum size of the rescue domain. * configure: Option '--enable-linux' renamed to '--enable-non-posix'. * Makefile.in: Added new targets 'install*-compress'. * File 'ddrescue.h' renamed to 'mapbook.h'. * File 'logbook.cc' renamed to 'mapbook.cc'. * File 'logfile.cc' renamed to 'mapfile.cc'. * Files linux.{h,cc} renamed to non_posix.{h,cc}. 2014-10-03 Antonio Diaz Diaz * Version 1.19 released. * Fixed a race condition at start of run with '--timeout=0'. * Added new option '-P, --data-preview'. * Added new option '-u, --unidirectional'. * Added new option '-X, --exit-on-error'. * Added new option '--ask' to ask for user confirmation. * Added new option '--cpass' to select passes during copying phase. * Added new option '--pause' to insert a pause between passes. * Removed option '-l, --logfile-size'. * Skip on the first error during the copying phase. * rescuebook.cc: Trimming done in one pass, may be run in reverse. * The splitting phase has been replaced by a scraping phase. * Changed long name of option '-n' to '--no-scrape'. * rescuebook.cc: Alternate direction of passes during retrying phase. * Show ATA model and serial number with '--ask' or '-vv' on Linux. * configure: Added new option '--enable-linux'. * New files linux.h linux.cc. * License changed to GPL version 2 or later. 2014-06-10 Antonio Diaz Diaz * Version 1.18.1 released. * ddrescuelog.cc (do_logic_ops): Fixed 'or' and 'xor'. * Added new option '-H, --test-mode' to simulate read errors. * Added new option '-L, --loose-domain' to ddrescue and ddrescuelog. * Added new option '-N, --no-trim' to disable trimming of damaged areas. * Added new option '-O, --reopen-on-error'. * Added new options '-1, --log-rates', '-2, --log-reads'. * Extended '-K, --skip-size' with maximum and disable values. * Changed long name of option '-r' to '--retry-passes'. * Changed short name of option '--generate-mode' to '-G'. * Default value of option '-l, --logfile-size' increased to 10000. * If interrupted, ddrescue terminates by raising the signal received. * rescuebook.cc (copy_non_tried): Don't mark skipped blocks as non-trimmed. Try them in additional passes (before trimming). * rescuebook.cc: Limit the copying phase to 3 passes. * rescuebook.cc: Alternate direction of passes during copying phase. * rescuebook.cc: Smallest blocks are trimmed first. * rescuebook.cc (split_errors): Read largest first if logfile full. * Improved speed when using option '-m, --domain-logfile'. * io.cc (show_status): Show the current total run time. * rescuebook.cc: Show pass number and direction during copying. * rescuebook.cc (show_status): Show block pos instead of current_pos. * main.cc: Show "an unknown number of bytes" for unknown insize. * Added option '-B, --binary-prefixes' to ddrescuelog. * Added new option '-C, --complete-logfile' to ddrescuelog. * Added new option '-P, --compare-as-domain' to ddrescuelog. * Improved speed of logic operations in ddrescuelog. * rescuebook.cc (do_rescue): Show warning when domain is smaller than logfile. * ddrescuelog.cc (do_show_status): Show logfile and domain extents when domain is smaller than logfile. * block.h: Class Block now forces the invariant by itself. * Code reorganization. New class 'Logfile'. * Added status message to rescue logfile. * Many improvements to documentation. * ddrescue.texinfo: Renamed to ddrescue.texi. 2013-07-09 Antonio Diaz Diaz * Version 1.17 released. * Added new option '-l, --logfile-size'. * Added new option '-w, --ignore-write-errors'. * Option '--fill' has been renamed to '--fill-mode'. * Option '--generate-logfile' has been renamed to '--generate-mode'. * Added option '--sector-size' as a synonym of '--block-size'. * Added option '--retries' as a synonym of '--max-retries'. * Added option '--size' as a synonym of '--max-size'. * rescuebook.cc: Trimming is now done from both edges of each non-trimmed block. Largest blocks are trimmed first. * rescuebook.cc: Largest blocks are now split first until logfile reaches '--logfile-size' entries. * logbook.cc (extend_sblock_vector, truncate_vector): Terminate if truncation would discard finished blocks. * rescuebook.cc: Mark failed blocks with 1 sector as bad-sector. * logbook.cc (extend_sblock_vector): Remove last block of logfile if it starts at insize and is not marked as finished. * io.cc (show_status, update_rates): Detect a jump back in time and adjust status. * ddrescue.h (slow_read): Return false for the first 10 seconds. * io.cc (show_status) Leave cursor after message so that ^C does not overwrite it. * main.cc: Don't require '--force' for generate mode. * ddrescue.h (Logbook::logfile_exists): Don't return false if logfile exists but is empty. * ddrescue.texinfo: Added new chapter 'Using ddrescue safely'. * Documented that 'direct disc access' only reads whole sectors. * configure: Options now accept a separate argument. * Makefile.in: Added new target 'install-bin'. 2012-06-11 Antonio Diaz Diaz * Version 1.16 released. * Added new option '-K, --skip-size'. * Added new option '-T, --timeout'. * Changed short name of option '--try-again' to '-A'. * Maximum skip size is now limited to 1% of infile size or 1 GiB (whichever is smaller), rounded to the next multiple of sector size. * Set current_pos to end of block when reading backwards. * The option '-E, --max-error-rate' now checks the rate of actually failed reads, not the growth of error size. * The option '-v, --verbose' now increases verbosity if repeated. * Changed quote characters in messages as advised by GNU Standards. * configure: 'datadir' renamed to 'datarootdir'. * New files rational.h, rational.cc. 2012-01-01 Antonio Diaz Diaz * Version 1.15 released. * Added new option '-a, --min-read-rate'. * Added new option '-I, --verify-input-size'. * Added new option '-x, --extend-outfile'. * main.cc: Verify that infile, outfile and logfile are all different. * Non-tried blocks are now read aligned to cluster-size sectors. * rescuebook.cc: Improved skip algorithm for the split pass. * main.cc: Removed spurious warning about '-D' ignored in fill mode. * ddrescue.texinfo: Improved description of algorithm. * logbook.cc (change_chunk_status): Return an adjust value (-1, 0, 1) to keep "errors" updated without calling count_errors every time. * ddrescue.cc: Renamed to io.cc. * Added 'ddrescuelog', a program for logfile manipulation. 2011-01-10 Antonio Diaz Diaz * Version 1.14 released. * Added new option '-R, --reverse'. * Added new option '-E, --max-error-rate'. * Extended syntax '--max-errors=+N' to specify new errors. * Changed short name of option '--retrim' to '-M'. * Removed spurious warning about 'preallocation not available'. * Code reorganization. New class 'Genbook'. 2010-08-27 Antonio Diaz Diaz * Version 1.13 released. * Non-regular output files are no longer overwritten by default. * Added new option '-f, --force'. * Added new option '-p, --preallocate'. * main.cc (write_logfile_header): Write command line to logfile. * ddrescue.texinfo: Added info about logfile and recoverable formats. * ddrescue.texinfo: Added a couple more warnings to the tutorial. * testsuite: 'test1' renamed to 'test.txt' * Revert to use 'long' instead of 'time_t' for time variables. Ddrescue only needs counting seconds and 'time_t' causes warnings on some systems. Signed-off-by: Adolf Belka Signed-off-by: Michael Tremer --- config/rootfiles/packages/ddrescue | 2 ++ lfs/ddrescue | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/config/rootfiles/packages/ddrescue b/config/rootfiles/packages/ddrescue index 3d0a0b9af0..a3d8f5911f 100644 --- a/config/rootfiles/packages/ddrescue +++ b/config/rootfiles/packages/ddrescue @@ -1,3 +1,5 @@ usr/bin/ddrescue +usr/bin/ddrescuelog #usr/share/info/ddrescue.info #usr/share/man/man1/ddrescue.1 +#usr/share/man/man1/ddrescuelog.1 diff --git a/lfs/ddrescue b/lfs/ddrescue index f30a5edb51..3c45896e94 100644 --- a/lfs/ddrescue +++ b/lfs/ddrescue @@ -24,14 +24,14 @@ include Config -VER = 1.12 +VER = 1.25 THISAPP = ddrescue-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.lz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = ddrescue -PAK_VER = 1 +PAK_VER = 2 DEPS = @@ -43,7 +43,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = b3d8a9a9098b87939fba05a45848bd8d +$(DL_FILE)_MD5 = 99fd7a28bf9953d88534c7ee9ab5bd2a install : $(TARGET) @@ -76,7 +76,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install -- 2.39.2