sys-fs/dd-rescue: use sys/random.h for getrandom() decl if present
authorThomas Deutschmann <whissi@gentoo.org>
Sun, 3 May 2020 19:48:57 +0000 (21:48 +0200)
committerThomas Deutschmann <whissi@gentoo.org>
Sun, 3 May 2020 19:51:37 +0000 (21:51 +0200)
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
sys-fs/dd-rescue/dd-rescue-1.99.8-r1.ebuild [moved from sys-fs/dd-rescue/dd-rescue-1.99.8.ebuild with 96% similarity]
sys-fs/dd-rescue/files/dd-rescue-1.99.8-sysrandom.patch [new file with mode: 0644]
sys-fs/dd-rescue/files/dd-rescue-1.99.8-testhole.patch [new file with mode: 0644]

similarity index 96%
rename from sys-fs/dd-rescue/dd-rescue-1.99.8.ebuild
rename to sys-fs/dd-rescue/dd-rescue-1.99.8-r1.ebuild
index 85a5845b25090915f793d5c63be7a40f8d480bd8..d421dc83aa03cc1624b3cd89fd03abf8d2e2b457 100644 (file)
@@ -26,6 +26,8 @@ S="${WORKDIR}/${MY_P}"
 PATCHES=(
        "${FILESDIR}"/${MY_PN}-1.99-musl-r2.patch
        "${FILESDIR}"/${PN}-1.99.8-xattr.patch
+       "${FILESDIR}"/${PN}-1.99.8-sysrandom.patch
+       "${FILESDIR}"/${PN}-1.99.8-testhole.patch
 )
 
 src_prepare() {
diff --git a/sys-fs/dd-rescue/files/dd-rescue-1.99.8-sysrandom.patch b/sys-fs/dd-rescue/files/dd-rescue-1.99.8-sysrandom.patch
new file mode 100644 (file)
index 0000000..5ef3da2
--- /dev/null
@@ -0,0 +1,27 @@
+Use sys/random.h for getrandom() decl if present.
+
+--- a/configure.in
++++ b/configure.in
+@@ -6,7 +6,7 @@ AC_C_INLINE
+ AC_HEADER_STDC
+ #AC_PROG_INSTALL
+ #CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
+-AC_CHECK_HEADERS([fallocate.h dlfcn.h unistd.h sys/xattr.h sys/acl.h sys/ioctl.h sys/reg.h endian.h linux/fs.h linux/fiemap.h stdint.h lzo/lzo1x.h openssl/evp.h linux/random.h malloc.h sched.h sys/statvfs.h])
++AC_CHECK_HEADERS([fallocate.h dlfcn.h unistd.h sys/xattr.h sys/acl.h sys/ioctl.h sys/reg.h endian.h linux/fs.h linux/fiemap.h stdint.h lzo/lzo1x.h openssl/evp.h linux/random.h sys/random.h malloc.h sched.h sys/statvfs.h])
+ AC_CHECK_FUNCS([ffs ffsl basename fallocate64 splice getopt_long open64 pread pread64 lseek64 stat64 posix_fadvise posix_fadvise64 __builtin_prefetch htobe64 feof_unlocked getline getentropy getrandom posix_memalign valloc sched_yield fstatvfs __builtin_cpu_supports])
+ AC_CHECK_LIB(dl,dlsym)
+ AC_CHECK_LIB(fallocate,linux_fallocate64)
+--- a/random.c
++++ b/random.c
+@@ -23,6 +23,10 @@ typedef unsigned int __u32;
+ #include <linux/random.h>
+ #endif
++#ifdef HAVE_SYS_RANDOM_H
++#include <sys/random.h>
++#endif
++
+ static void msleep(unsigned int msecs)
+ {
+       struct timespec ts1, ts2;
diff --git a/sys-fs/dd-rescue/files/dd-rescue-1.99.8-testhole.patch b/sys-fs/dd-rescue/files/dd-rescue-1.99.8-testhole.patch
new file mode 100644 (file)
index 0000000..4449070
--- /dev/null
@@ -0,0 +1,32 @@
+commit 7f2ff6434586083747bc5d046e0207886025e684
+Author: Kurt Garloff <kurt@garloff.de>
+Date:   Sat May 12 09:54:45 2018 +0000
+
+    Fix test case by ensuring there is a hole ...
+
+diff --git a/test_crypt.sh b/test_crypt.sh
+index 47f1fc9..62cf853 100755
+--- a/test_crypt.sh
++++ b/test_crypt.sh
+@@ -52,13 +52,20 @@ rm dd_rescue2
+ # Holes (all), skiphole
+ echo "*** Holes ***"
++# Produce file that consists of dd_rescue + hole + dd_rescue
+ ./dd_rescue -qpt dd_rescue dd_rescue3
+ ./dd_rescue -qS 512k dd_rescue dd_rescue3
++# Ensure there is a hole even if dd_rescue is long
++./dd_rescue -qS 384k -m 128k /dev/zero dd_rescue3
++# Test without and with skiphole
+ enc_dec_compare_keys dd_rescue3 AES192-CTR keygen:ivgen "" "" "-qpt"
+ enc_dec_compare_keys dd_rescue3 AES192-CTR keygen:ivgen skiphole "" "-qpt"
++# Store 384k-512k in cmp3
+ ./dd_rescue -qt -s 384k -m 128k -S 0 dd_rescue3.cmp dd_rescue3.cmp3
++# Should be 128k of zeroes
+ ./dd_rescue -qm 128k /dev/zero dd_rescue3.cmp2
+ cmp dd_rescue3.cmp2 dd_rescue3.cmp3 || exit 4
++# Repeat test with reverse
+ enc_dec_compare_keys dd_rescue3 AES192-CTR keygen:ivgen "" "" "-qptr"
+ enc_dec_compare_keys dd_rescue3 AES192-CTR keygen:ivgen skiphole "" "-qptr"
+ ./dd_rescue -qt -s 384k -m 128k -S 0 dd_rescue3.cmp dd_rescue3.cmp3