gddrescue: add ddrescue a data recovery tool
Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
This commit is contained in:
parent
49df906991
commit
7943a4bf2e
2 changed files with 79 additions and 0 deletions
51
utils/gddrescue/Makefile
Normal file
51
utils/gddrescue/Makefile
Normal 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))
|
28
utils/gddrescue/patches/001-fix_uclibc.patch
Normal file
28
utils/gddrescue/patches/001-fix_uclibc.patch
Normal 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>
|
Loading…
Reference in a new issue