diff options
author | B. Watson <urchlay@slackware.uk> | 2024-08-26 17:21:07 -0400 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2024-08-31 07:56:38 +0700 |
commit | 0e6561a5315f216d44e052f4d1ed371791ebe06c (patch) | |
tree | 6705a60c521279f040240088ee616799eafab3c3 /system | |
parent | 313c486e06f258f4c6aececbc94d01e01db2052f (diff) |
system/safecopy: New maintainer, slight tweaks.
Signed-off-by: B. Watson <urchlay@slackware.uk>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'system')
-rw-r--r-- | system/safecopy/10_fix-manpage.patch | 335 | ||||
-rw-r--r-- | system/safecopy/README | 9 | ||||
-rw-r--r-- | system/safecopy/safecopy.SlackBuild | 50 | ||||
-rw-r--r-- | system/safecopy/safecopy.info | 4 | ||||
-rw-r--r-- | system/safecopy/slack-desc | 12 |
5 files changed, 381 insertions, 29 deletions
diff --git a/system/safecopy/10_fix-manpage.patch b/system/safecopy/10_fix-manpage.patch new file mode 100644 index 000000000000..2f8c2503d00b --- /dev/null +++ b/system/safecopy/10_fix-manpage.patch @@ -0,0 +1,335 @@ +Description: fix some hyphens used as minus sign and a spelling error. +Author: Joao Eriberto Mota Filho <eriberto@debian.org> +Last-Update: 2015-06-25 +Index: safecopy-1.7/src/safecopy.1 +=================================================================== +--- safecopy-1.7.orig/src/safecopy.1 ++++ safecopy-1.7/src/safecopy.1 +@@ -33,13 +33,13 @@ devices (like tapes) you can try to use + controlled skip over the damaged part for you. + .PP + (For example by using "mt seek" and "mt tell" on an SCSI tape device) +-See the "-S <seekscript>" parameter for details. ++See the "\-S <seekscript>" parameter for details. + .PP + Performance and success of this tool depend extremely on the device driver, + firmware and underlying hardware. + .PP + Currently safecopy supports RAW access to CDROM drives to read data directly of +-a CD, bypassing some driver dependant error correction. This can speed up data ++a CD, bypassing some driver dependent error correction. This can speed up data + retrieval from CDs and reduce system load during recovery, as well as + increase the success rate. Safecopy uses the disc status syscall to determine + sector size and addressing of CDs. This fails on mixed-mode or multi-session +@@ -95,20 +95,20 @@ specification.txt shipped with safecopy. + Preset to rescue most of the data fast, + using no retries and avoiding bad areas. + .IP +-\fBPresets\fR: -f 10% -r 10% -R 1 -Z 0 -L 2 -M BaDbLoCk -o stage1.badblocks ++\fBPresets\fR: \-f 10% \-r 10% \-R 1 \-Z 0 \-L 2 \-M BaDbLoCk \-o stage1.badblocks + .TP + \fB\-\-stage2\fR + Preset to rescue more data, using no retries + but searching for exact ends of bad areas. + .IP +-\fBPresets\fR: -f 128* -r 1* -R 1 -Z 0 -L 2 -I stage1.badblocks -o stage2.badblocks ++\fBPresets\fR: \-f 128* \-r 1* \-R 1 \-Z 0 \-L 2 \-I stage1.badblocks \-o stage2.badblocks + .TP + \fB\-\-stage3\fR + Preset to rescue everything that can be rescued + using maximum retries, head realignment tricks + and low level access. + .IP +-\fBPresets\fR: -f 1* -r 1* -R 4 -Z 1 -L 2 -I stage2.badblocks -o stage3.badblocks ++\fBPresets\fR: \-f 1* \-r 1* \-R 4 \-Z 1 \-L 2 \-I stage2.badblocks \-o stage3.badblocks + .PP + All stage presets can be overridden by individual options. + .TP +@@ -213,7 +213,7 @@ badblock list. + .IP + \fBImplies\fR: \-c 0 if \-c is not specified + .IP +-\fBDefault\fR: none ( /dev/null if -c is given ) ++\fBDefault\fR: none ( /dev/null if \-c is given ) + .TP + \fB\-i\fR <\fIbytes\fR> + Blocksize to interpret the badblockfile given with \-I. +@@ -225,7 +225,7 @@ Continue copying at this position. + This allows continuing if the output is a block device + with a fixed size as opposed to a growable file, + where safecopy cannot determine how far it already got. +-The blocksize used is the same as for the -I option. ++The blocksize used is the same as for the \-I option. + .br + \-c 0 will continue at the current destination size. + .IP +@@ -269,7 +269,7 @@ on any later run. + .IP + \fBWarning\fR: + When used in combination with incremental mode (\-I) this may overwrite data in +-any block that occurs in the -I file. Blocks not in the \-I file, or covered ++any block that occurs in the \-I file. Blocks not in the \-I file, or covered + by the file specified with \-X are save from being overwritten. + .IP + \fBDefault\fR: none +@@ -366,49 +366,49 @@ How do I... + - resurrect data as thoroughly as possible? + .IP + .B safecopy +-source dest -f 1* -R 8 -Z 2 ++source dest \-f 1* \-R 8 \-Z 2 + .br + (assuming logical misalignment of blocks to sectors) + .IP + .B safecopy +-source dest -f 1* -r 1 -R 8 -Z 2 ++source dest \-f 1* \-r 1 \-R 8 \-Z 2 + .TP + - resurrect data as fast as possible, or + .TP + - resurrect data with low risk of damaging the media further: +-(you can use even higher values for -f and -r) ++(you can use even higher values for \-f and \-r) + .IP + .B safecopy +-source dest -f 10% -R 0 -Z 0 ++source dest \-f 10% \-R 0 \-Z 0 + .TP + - resurrect some data fast, then read more data thoroughly later: + .IP + .B safecopy +-source dest -f 10% -R 0 -Z 0 -o badblockfile ++source dest \-f 10% \-R 0 \-Z 0 \-o badblockfile + .br + .B safecopy +-source dest -f 1* -R 8 -Z 2 -I badblockfile ++source dest \-f 1* \-R 8 \-Z 2 \-I badblockfile + .IP + .I Alternate approach using the new preset features: + .IP + .B safecopy +-source dest --stage1 ++source dest \-\-stage1 + .IP + .B safecopy +-source dest --stage2 ++source dest \-\-stage2 + .IP + .B safecopy +-source dest --stage3 ++source dest \-\-stage3 + .TP + - utilize some friends CD-ROM drives to complete the data from my damaged CD: + .B safecopy +-/dev/mydrive imagefile <someoptions> -b <myblocksize> -o myblockfile ++/dev/mydrive imagefile <someoptions> \-b <myblocksize> \-o myblockfile + .br + .B safecopy +-/dev/otherdrive imagefile <someoptions> -b <otherblocksize> -I myblockfile -i <myblocksize> -o otherblockfile ++/dev/otherdrive imagefile <someoptions> \-b <otherblocksize> \-I myblockfile \-i <myblocksize> \-o otherblockfile + .br + .B safecopy +-/dev/anotherdrive imagefile <someoptions> -b <anotherblocksize> -I otherblockfile -i <otherblocksize> ++/dev/anotherdrive imagefile <someoptions> \-b <anotherblocksize> \-I otherblockfile \-i <otherblocksize> + .TP + - interrupt and later resume a data rescue operation: + .B safecopy +@@ -418,11 +418,11 @@ source dest + (safecopy aborts) + .br + .B safecopy +-source dest -I /dev/null ++source dest \-I /dev/null + .TP + - interrupt and later resume a data rescue operation with correct badblocks output: + .B safecopy +-source dest <options> -o badblockfile ++source dest <options> \-o badblockfile + .br + .B <CTRL+C> + (safecopy aborts) +@@ -431,7 +431,7 @@ source dest <options> -o badblockfile + badblockfile savedbadblockfile + .br + .B safecopy +-source dest -I /dev/null -o badblockfile ++source dest \-I /dev/null \-o badblockfile + .br + .B cat + badblockfile >>savedbadblockfile +@@ -442,59 +442,59 @@ badblockfile >>savedbadblockfile + .br + .B + safecopy +-source dest <options> -o badblockfile1 ++source dest <options> \-o badblockfile1 + .br + .B + safecopy +-source dest <options> -I badblockfile1 -o badblockfile2 ++source dest <options> \-I badblockfile1 \-o badblockfile2 + .br + .B <CTRL+C> + (safecopy aborts) + .br +-latest=$( tail -n 1 badblockfile2 ) ++latest=$( tail \-n 1 badblockfile2 ) + .br +-if [ -z $latest ]; then latest=-1; fi; ++if [ \-z $latest ]; then latest=-1; fi; + .br + cat badblockfile1 | while read block; do + .br +- [ $block -gt $latest ] && echo $block >>badblockfile2; ++ [ $block \-gt $latest ] && echo $block >>badblockfile2; + .br + done; + .br + .B + safecopy +-source dest <options> -I badblockfile2 -o badblockfile3 ++source dest <options> \-I badblockfile2 \-o badblockfile3 + .TP + - find the corrupted files on a partially successful rescued file system: + .B safecopy +-/dev/filesystem image -M CoRrUpTeD ++/dev/filesystem image \-M CoRrUpTeD + .br + .B fsck + image + .br + .B mount +--o loop image /mnt/mountpoint ++\-o loop image /mnt/mountpoint + .br + .B grep +--R /mnt/mountpoint "CoRrUpTeD" ++\-R /mnt/mountpoint "CoRrUpTeD" + .br + (hint: this might not find all affected files if the unreadable + parts are smaller in size than your marker string) + .TP + - exclude the previously known badblocks list of a filesystem from filesystem image creation: + .B dumpe2fs +--b /dev/filesystem >badblocklist ++\-b /dev/filesystem >badblocklist + .br + .B safecopy +-/dev/filesystem image -X badblocklist -x <blocksize of your fs> ++/dev/filesystem image \-X badblocklist \-x <blocksize of your fs> + .TP + - create an image of a device that starts at X and is Y in size: + .B safecopy +-/dev/filesystem -b <bsize> -s <X/bsize> -l <Y/bsize> ++/dev/filesystem \-b <bsize> \-s <X/bsize> \-l <Y/bsize> + .TP + - combine two partial images of rescued data without access to the actual (damaged) source data: + (This is a bit tricky. You need to get badblocks lists for both files somehow +-to make safecopy know where the missing data is. If you used the -M (mark) ++to make safecopy know where the missing data is. If you used the \-M (mark) + feature you might be able to automatically compute these, however this feature + is not provided by safecopy. Lets assume you have two badblocks files. + .IP +@@ -518,7 +518,7 @@ not, swap them) + image2.dat combined.dat + .br + .B safecopy +-image1.dat combined.dat -I image2.badblocks -i blocksize2 -X image1.badblocks -x blocksize1 ++image1.dat combined.dat \-I image2.badblocks \-i blocksize2 \-X image1.badblocks \-x blocksize1 + .br + (This gets you the combined data, but no output badblocklist. + The resulting badblocks list would be the badblocks that are +@@ -532,7 +532,7 @@ a random open source project.) + .TP + - rescue data of a tape device: + If the tape device driver supports lseek(), treat it as any file, +-otherwise utilize the "-S" option of safecopy with a to be ++otherwise utilize the "\-S" option of safecopy with a to be + self-written script to skip over the bad blocks. + (for example using "mt seek") + Make sure your tape device doesn't auto-rewind on close. +@@ -554,7 +554,7 @@ Meanwhile safecopy supports low level fe + .PP + .TP + Q: +-What exactly does the -Z option do? ++What exactly does the \-Z option do? + .TP + A: + Remember back in MS-DOS times when a floppy would make a "neek nark" sound 3 +@@ -576,22 +576,23 @@ CDRW drive, that even reads deeply and p + key, to make it unreadable) flawlessly. A CDRW drive of the same age at work + doesn't read any data from that part of the CD at all, while most DVD and combo + drives have bad blocks every couple hundred bytes. Make full use of safecopys +-RAW access features if applicable. (-L 2 option) ++RAW access features if applicable. (\-L 2 option) + .IP + As a general guideline: +--CDRW drives usually do better than read-only CD drives. + .br +--CD only drives sometimes do better on CDs than DVD drives. ++\-CDRW drives usually do better than read-only CD drives. + .br +--PC drives are sometimes better than laptop ones. ++\-CD only drives sometimes do better on CDs than DVD drives. + .br +--A drive with a clean lens does better than a dirtball. ++\-PC drives are sometimes better than laptop ones. + .br +--Cleaning up CDs helps. ++\-A drive with a clean lens does better than a dirtball. + .br +--Unless you use chemicals. ++\-Cleaning up CDs helps. + .br +--Using sticky tape on a CD will rip of the reflective layer permanently ++\-Unless you use chemicals. ++.br ++\-Using sticky tape on a CD will rip of the reflective layer permanently + rendering the disk unreadable. + .PP + .TP +@@ -637,34 +638,34 @@ during operation. + .IP + When you rescue data, rescue good data first before attempting to + access bad sectors. Safecopy allows you to skip known problem sectors +-using a badblock exclude file (-X) which you might be able to retrieve ++using a badblock exclude file (\-X) which you might be able to retrieve + from system logs or from the drive internal logs, via smartmontools or + similar software. Be aware that you might possibly need to convert + physical sector numbers into logical block numbers depending on your + source. + .IP + Also you should tell safecopy to jump out of any problematic areas ASAP +-and continue somewhere else. Parameters "-f 10% -r 10% -R 0 -Z 0" would ++and continue somewhere else. Parameters "\-f 10% \-r 10% \-R 0 \-Z 0" would + do the trick by making safecopy skip 10% of the device content and + continue there without backtracking. You can always attempt to get the + data in between later, first get the supposedly good data on the rest + of the drive. Depending on the method of data recovery you plan on +-using, it may make sense to mark the bad data with the "-M" option. ++using, it may make sense to mark the bad data with the "\-M" option. + This allows you to later find files affected by data corruption more +-easily. Use the "-o" option to make safecopy write a badblock list ++easily. Use the "\-o" option to make safecopy write a badblock list + with all blocks skipped or unreadable. + .IP + When safecopy is done with this first run, you can attempt a second go +-trying to get more data. Using smaller values for "-f" and allowing +-safecopy to backtrack for the end of the affected area "-r 1*". +-Be sure to use incremental mode "-I" to only read the blocks skipped ++trying to get more data. Using smaller values for "\-f" and allowing ++safecopy to backtrack for the end of the affected area "\-r 1*". ++Be sure to use incremental mode "\-I" to only read the blocks skipped + in the first run. + .IP + It may make sense to let the drive cool down between runs. + Once you got all the data from the "good" areas of the drive you can + risk more "thorough" access to it. Increase the numbers of retries +-"-R" in case of bad blocks, maybe together with a head realignment +-"-Z 1". "-f 1*" would make safecopy try to read on every single block, ++"\-R" in case of bad blocks, maybe together with a head realignment ++"\-Z 1". "\-f 1*" would make safecopy try to read on every single block, + not skipping over bad areas at all. + .IP + If your drive stops responding, power it down, let it cool down for a diff --git a/system/safecopy/README b/system/safecopy/README index 291c092666f4..58555d0cd98b 100644 --- a/system/safecopy/README +++ b/system/safecopy/README @@ -1,3 +1,10 @@ +safecopy (data recovery tool) + safecopy is a data recovery tool which tries to extract as much data as -possible from a problematic (i.e. damaged sectors) source - like floppy +possible from problematic (i.e. damaged sectors) sources - like floppy drives, hard disk partitions, CDs, tape devices. + +safecopy claims to be useful in situations where other tools like dd +would fail due to I/O errors. + +safecopy is released under GNU GPL v2 (or higher). diff --git a/system/safecopy/safecopy.SlackBuild b/system/safecopy/safecopy.SlackBuild index 0359cd834f57..6fe811b8cd95 100644 --- a/system/safecopy/safecopy.SlackBuild +++ b/system/safecopy/safecopy.SlackBuild @@ -4,6 +4,7 @@ # Home Page http://safecopy.sourceforge.net/ # Copyright (c) 2009-2012, Nishant Limbachia, Hoffman Estates, IL, USA +# Copyright (c) 2024 B. Watson # <nishant _AT_ mnspace _DOT_ net> # All rights reserved. # @@ -25,11 +26,20 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20240826 bkw: BUILD=2 +# - new maintainer. +# - get generic gnu INSTALL out of doc dir. +# - clean up README and slack-desc slightly. +# - add man page patch from Debian's 1.7-7. + +# TODO: see if anyone's patched this to make the test suite work. +# Debian hasn't. + cd $(dirname $0) ; CWD=$(pwd) PRGNAM="safecopy" VERSION=${VERSION:-1.7} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -41,9 +51,6 @@ if [ -z "$ARCH" ]; then esac fi -# If the variable PRINT_PACKAGE_NAME is set, then this script will report what -# the name of the created package would be, and then exit. This information -# could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -72,14 +79,13 @@ set -e rm -fr $TMP/$PRGNAM-$VERSION $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP -tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz cd $PRGNAM-$VERSION chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} + + +patch -p1 < $CWD/10_fix-manpage.patch CFLAGS="$SLKCFLAGS" \ ./configure \ @@ -91,18 +97,22 @@ CFLAGS="$SLKCFLAGS" \ --infodir=/usr/info make -make install-strip DESTDIR=$PKG -### compress man pages -( cd $PKG/usr/man - find . -type f -exec gzip -9 {} \; - for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done -) +# 20240826 bkw: if we wanted to run the test suite, we'd do this: + +# cd simulator && ./configure && make && cd - +# cd test ; PATH=.:$PATH sh test.sh ; cd - + +# However, the simulator seems to be broken (needs to be updated for +# more recent glibc), so the test results are questionable. + +make install-strip DESTDIR=$PKG +gzip -9 $PKG/usr/man/man*/* -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a ChangeLog COPYING AUTHORS README INSTALL NEWS \ -specification.txt $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC +cp -a ChangeLog COPYING AUTHORS README NEWS specification.txt $PKGDOC +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc diff --git a/system/safecopy/safecopy.info b/system/safecopy/safecopy.info index 07de0633ccf9..ee188f7fdb81 100644 --- a/system/safecopy/safecopy.info +++ b/system/safecopy/safecopy.info @@ -6,5 +6,5 @@ MD5SUM="4213c03e9e6990ca9a288cc880526297" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -MAINTAINER="Nishant Limbachia" -EMAIL="nishant@mnspace.net" +MAINTAINER="B. Watson" +EMAIL="urchlay@slackware.uk" diff --git a/system/safecopy/slack-desc b/system/safecopy/slack-desc index dd6d1fbc2d75..a0327849a7de 100644 --- a/system/safecopy/slack-desc +++ b/system/safecopy/slack-desc @@ -8,12 +8,12 @@ |-----handy-ruler------------------------------------------------------| safecopy: safecopy (data recovery tool) safecopy: -safecopy: Safecopy is a data recovery tool which tries to extract as much -safecopy: data as possible from a problematic (i.e.damaged sectors) sources -safecopy: like floppy drives, hard disk partitions, CDs, tape devices etc. -safecopy: Program claims to be useful in situations where other tools like +safecopy: safecopy is a data recovery tool which tries to extract as much +safecopy: data as possible from problematic (i.e. damaged sectors) sources +safecopy: like floppy drives, hard disk partitions, CDs, tape devices, etc. +safecopy: safecopy claims to be useful in situations where other tools like safecopy: dd would fail due to I/O errors. -safecopy: Safecopy is released under GNU GPL v2 (or higher). +safecopy: safecopy is released under GNU GPL v2 (or higher). safecopy: -safecopy: Home Page: http://safecopy.sourceforge.net/ +safecopy: Homepage: http://safecopy.sourceforge.net/ safecopy: |