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