From e531172d11664557624edb821dd46a9d9237e3ad Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@member.fsf.org>
Date: Wed, 4 Jun 2014 23:45:31 -0500
Subject: [PATCH] gnu: rdup: Fix tests.

* gnu/packages/backup.scm (rdup) [arguments]: Add pre-check phase.
  [origin]: Add snippet.
---
 gnu/packages/backup.scm | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 069baa88da7..5c44786af3a 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -21,6 +21,7 @@ (define-module (gnu packages backup)
   #:use-module ((guix licenses)
                 #:renamer (symbol-prefix-proc 'license:))
   #:use-module (guix download)
+  #:use-module (guix build utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
@@ -181,7 +182,23 @@ (define-public rdup
                            version ".tar.bz2"))
        (sha256
         (base32
-         "0aklwd9v7ix0m4ayl762sil685f42cwljzx3jz5skrnjaq32npmj"))))
+         "0aklwd9v7ix0m4ayl762sil685f42cwljzx3jz5skrnjaq32npmj"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Some test scripts are missing shebangs, which cause "could not
+        ;; execute" errors.  Add shebangs.
+        '(for-each
+          (lambda (testscript)
+            (with-atomic-file-replacement
+                (string-append "testsuite/rdup/" testscript)
+              (lambda (in out)
+                (begin
+                  (format out "#!/bin/sh\n" )
+                  (dump-port in out)))))
+          '("rdup.hardlink.helper"
+            "rdup.hardlink-strip.helper"
+            "rdup.hardlink-strip2.helper"
+            "rdup.pipeline.helper")))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -199,7 +216,14 @@ (define-public rdup
                  (lambda _
                    (substitute* "GNUmakefile"
                      (("^(CFLAGS=.*)-Werror" _ front) front)))
-                 %standard-phases)))
+                 (alist-cons-before
+                  'check 'pre-check
+                  (lambda _
+                    (setenv "HOME" (getcwd))
+                    (substitute* "testsuite/rdup/rdup.rdup-up-t-with-file.exp"
+                      (("/bin/cat") (which "cat"))))
+                  
+                  %standard-phases))))
     (home-page "http://archive.miek.nl/projects/rdup/index.html")
     (synopsis "Provide a list of files to backup")
     (description
-- 
GitLab