Merge pull request #5909 from lucize/ddrescue

gddrescue: add ddrescue a data recovery tool
This commit is contained in:
Rosen Penev 2019-03-29 11:49:56 -07:00 committed by GitHub
commit 199f0b5c51
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 79 additions and 0 deletions

51
utils/gddrescue/Makefile Normal file
View File

@ -0,0 +1,51 @@
#
# Copyright (C) 2018 Lucian Cristian
#
include $(TOPDIR)/rules.mk
PKG_NAME:=gddrescue
PKG_VERSION:=1.23
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.xz
PKG_SOURCE_URL:=http://http.debian.net/debian/pool/main/g/$(PKG_NAME)
PKG_HASH:=5831d7e24070bc700d8f22deaeec56af1149392ce30ae67254096eaf8c9169ab
PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
define Package/gddrescue
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Data recovery tool
URL:=https://www.gnu.org/software/ddrescue/
DEPENDS:=$(CXX_DEPENDS)
endef
define Package/gddrescue/description
GNU ddrescue is a data recovery tool. It copies data from one file
or block device (hard disc, cdrom, etc) to another, trying to rescue
the good parts first in case of read errors.
endef
CONFIGURE_ARGS += \
CXX="$(TARGET_CXX)" \
CPPFLAGS="$(TARGET_CPPFLAGS)" \
CXXFLAGS="$(TARGET_CXXFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)"
define Package/gddrescue/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ddrescue $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ddrescuelog $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,gddrescue))

View File

@ -0,0 +1,28 @@
--- a/block.h
+++ b/block.h
@@ -34,6 +34,7 @@ class Block
{ if( size_ < 0 || size_ > LLONG_MAX - pos_ ) size_ = LLONG_MAX - pos_; }
public:
+ Block() {} // default constructor
Block( const long long p, const long long s ) : pos_( p ), size_( s )
{ if( p < 0 ) { pos_ = 0; if( s > 0 ) size_ -= std::min( s, -p ); }
fix_size(); }
@@ -102,6 +103,7 @@ private:
Status status_;
public:
+ Sblock() {} // default constructor
Sblock( const Block & b, const Status st )
: Block( b ), status_( st ) {}
Sblock( const long long p, const long long s, const Status st )
--- a/mapbook.cc
+++ b/mapbook.cc
@@ -19,6 +19,7 @@
#include <algorithm>
#include <cerrno>
+#include <cctype>
#include <climits>
#include <cstdio>
#include <cstdlib>