New port: sysutils/safecopy
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 drives, hard disk partitions, CDs, tape devices etc, ... , where other tools like dd would fail due to I/O errors. Safecopy includes a low level IO layer to read CDROM disks in raw mode, and issue device resets and other helpful low level operations on a number of other device classes. The project also includes a device simulator which can be used to simulate bad media for testing and benchmarking safecopy as well as other data rescue tools. WWW: http://safecopy.sourceforge.net/ PR: 216892 Submitted by: anastasios@mageirias.com Approved by: mat (mentor) Differential Revision: https://reviews.freebsd.org/D9479
This commit is contained in:
parent
13760db998
commit
86ea462e43
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=433587
@ -1010,6 +1010,7 @@
|
||||
SUBDIR += s6-rc
|
||||
SUBDIR += safe-rm
|
||||
SUBDIR += safecat
|
||||
SUBDIR += safecopy
|
||||
SUBDIR += samefile
|
||||
SUBDIR += samesame
|
||||
SUBDIR += sample
|
||||
|
20
sysutils/safecopy/Makefile
Normal file
20
sysutils/safecopy/Makefile
Normal file
@ -0,0 +1,20 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= safecopy
|
||||
PORTVERSION= 1.7
|
||||
CATEGORIES= sysutils
|
||||
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}/
|
||||
|
||||
MAINTAINER= anastasios@mageirias.com
|
||||
COMMENT= Safe copying of files and partition
|
||||
|
||||
LICENSE= GPLv2
|
||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
USES= gmake
|
||||
GNU_CONFIGURE= yes
|
||||
|
||||
PLIST_FILES= bin/safecopy \
|
||||
man/man1/safecopy.1.gz
|
||||
|
||||
.include <bsd.port.mk>
|
3
sysutils/safecopy/distinfo
Normal file
3
sysutils/safecopy/distinfo
Normal file
@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1486492944
|
||||
SHA256 (safecopy-1.7.tar.gz) = 42fbed5d4764020eb0f34d95e97a0e14e62d801c3ef80f89bd497d94d39cc4fd
|
||||
SIZE (safecopy-1.7.tar.gz) = 398465
|
29
sysutils/safecopy/files/patch-src_safecopy.c
Normal file
29
sysutils/safecopy/files/patch-src_safecopy.c
Normal file
@ -0,0 +1,29 @@
|
||||
--- src/safecopy.c.orig 2017-02-07 19:49:05 UTC
|
||||
+++ src/safecopy.c
|
||||
@@ -900,7 +900,7 @@ int main(int argc, char ** argv) {
|
||||
fprintf(stdout, "File size: %llu\n", (long long) statusvars->filesize );
|
||||
} else {
|
||||
fprintf(stderr, "Filesize not reported by stat(), trying seek().\n");
|
||||
- statusvars->source = open(configvars->sourcefile, O_RDONLY | O_RSYNC);
|
||||
+ statusvars->source = open(configvars->sourcefile, O_RDONLY | O_SYNC);
|
||||
if (statusvars->source) {
|
||||
statusvars->filesize = lseek(statusvars->source, 0, SEEK_END);
|
||||
close(statusvars->source);
|
||||
@@ -1691,7 +1691,7 @@ int main(int argc, char ** argv) {
|
||||
for ( statusvars->cseeks = 0; statusvars->cseeks < statusvars->seeks ; statusvars->cseeks ++) {
|
||||
debug(DEBUG_SEEK, "debug: forced head realignment\n");
|
||||
// note. must use O_RSYNC since with O_DIRECT / raw devices, lseek to end of file might not work
|
||||
- statusvars->source = open(configvars->sourcefile, O_RDONLY | O_NONBLOCK | O_RSYNC );
|
||||
+ statusvars->source = open(configvars->sourcefile, O_RDONLY | O_NONBLOCK | O_SYNC );
|
||||
if (statusvars->source) {
|
||||
lseek(statusvars->source, 0, SEEK_SET);
|
||||
select_for_reading(statusvars->source, configvars, statusvars);
|
||||
@@ -1699,7 +1699,7 @@ int main(int argc, char ** argv) {
|
||||
read(statusvars->source, statusvars->databuffer , statusvars->blocksize );
|
||||
close(statusvars->source);
|
||||
}
|
||||
- statusvars->source = open(configvars->sourcefile, O_RDONLY | O_NONBLOCK | O_RSYNC );
|
||||
+ statusvars->source = open(configvars->sourcefile, O_RDONLY | O_NONBLOCK | O_SYNC );
|
||||
if (statusvars->source) {
|
||||
lseek(statusvars->source,- statusvars->blocksize , SEEK_END);
|
||||
select_for_reading(statusvars->source, configvars, statusvars);
|
11
sysutils/safecopy/pkg-descr
Normal file
11
sysutils/safecopy/pkg-descr
Normal file
@ -0,0 +1,11 @@
|
||||
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 drives,
|
||||
hard disk partitions, CDs, tape devices etc, ... , where other tools like dd
|
||||
would fail due to I/O errors.
|
||||
Safecopy includes a low level IO layer to read CDROM disks in raw mode, and
|
||||
issue device resets and other helpful low level operations on a number of other
|
||||
device classes.
|
||||
The project also includes a device simulator which can be used to simulate bad
|
||||
media for testing and benchmarking safecopy as well as other data rescue tools.
|
||||
|
||||
WWW: http://safecopy.sourceforge.net/
|
Loading…
Reference in New Issue
Block a user