gddrescue: add ddrescue a data recovery tool

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
This commit is contained in:
Lucian Cristian 2018-04-13 03:48:40 +03:00
parent 49df906991
commit 7943a4bf2e
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>