Date: Tue, 7 Feb 2017 20:31:32 +0000 (UTC) From: Kirill Ponomarew <krion@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r433587 - in head/sysutils: . safecopy safecopy/files Message-ID: <201702072031.v17KVWMY059099@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: krion Date: Tue Feb 7 20:31:32 2017 New Revision: 433587 URL: https://svnweb.freebsd.org/changeset/ports/433587 Log: 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 Added: head/sysutils/safecopy/ head/sysutils/safecopy/Makefile (contents, props changed) head/sysutils/safecopy/distinfo (contents, props changed) head/sysutils/safecopy/files/ head/sysutils/safecopy/files/patch-src_safecopy.c (contents, props changed) head/sysutils/safecopy/pkg-descr (contents, props changed) Modified: head/sysutils/Makefile Modified: head/sysutils/Makefile ============================================================================== --- head/sysutils/Makefile Tue Feb 7 20:31:32 2017 (r433586) +++ head/sysutils/Makefile Tue Feb 7 20:31:32 2017 (r433587) @@ -1010,6 +1010,7 @@ SUBDIR += s6-rc SUBDIR += safe-rm SUBDIR += safecat + SUBDIR += safecopy SUBDIR += samefile SUBDIR += samesame SUBDIR += sample Added: head/sysutils/safecopy/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sysutils/safecopy/Makefile Tue Feb 7 20:31:32 2017 (r433587) @@ -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> Added: head/sysutils/safecopy/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sysutils/safecopy/distinfo Tue Feb 7 20:31:32 2017 (r433587) @@ -0,0 +1,3 @@ +TIMESTAMP = 1486492944 +SHA256 (safecopy-1.7.tar.gz) = 42fbed5d4764020eb0f34d95e97a0e14e62d801c3ef80f89bd497d94d39cc4fd +SIZE (safecopy-1.7.tar.gz) = 398465 Added: head/sysutils/safecopy/files/patch-src_safecopy.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sysutils/safecopy/files/patch-src_safecopy.c Tue Feb 7 20:31:32 2017 (r433587) @@ -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); Added: head/sysutils/safecopy/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sysutils/safecopy/pkg-descr Tue Feb 7 20:31:32 2017 (r433587) @@ -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/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702072031.v17KVWMY059099>