summary refs log tree commit diff
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2023-08-12 21:27:35 +0800
committerChristopher Baines <mail@cbaines.net>2023-08-29 13:28:35 +0100
commit5a20470800f3d73cc29b5d45e5e0b3f3e28c1c14 (patch)
tree064b36b064548406957aa1d3a8eef81b1f0e380e
parente9981d5a9546b65ac8227663cbbdab1253db0790 (diff)
downloadguix-5a20470800f3d73cc29b5d45e5e0b3f3e28c1c14.tar.gz
gnu: smartdns: Update to 43.
* gnu/packages/dns.scm (smartdns): Update to 43.
[arguments]<#:tests?>: Enable tests.
<#:test-target>: Set to "test".
<#:make-flags>: Set "VER".
<#:phases>: Add phase 'skip-unavailable-tests, 'prepare-test-dir,
'enter-test-dir, 'leave-test-dir.
[native-inputs]: Add googletest, isc-bind:utils.

Signed-off-by: Christopher Baines <mail@cbaines.net>
-rw-r--r--gnu/packages/dns.scm35
1 files changed, 30 insertions, 5 deletions
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index d6bea61ca7..51e88e29bb 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -1273,7 +1273,7 @@ nameservers other than libc.")
 (define-public smartdns
   (package
     (name "smartdns")
-    (version "42")
+    (version "43")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1285,18 +1285,43 @@ nameservers other than libc.")
                           ((".*SYSTEMDSYSTEMUNITDIR.*") "")))
               (sha256
                (base32
-                "17j0h5l7gig6rzk8b9180jwrx5khpnrylacjxvnnpgsi2725k8lq"))))
+                "0s789l6i4yirmarg80mknc1pp65rz01ky9f7gidgclkfcwzz41l3"))))
     (build-system gnu-build-system)
     (arguments
-     (list #:tests? #f                  ;no tests
+     (list #:test-target "test"
            #:make-flags
            #~(list (string-append "CC=" #$(cc-for-target))
                    (string-append "DESTDIR=" #$output)
-                   "PREFIX=''")
+                   "PREFIX=''"
+                   (string-append "VER=" #$version))
            #:phases
            #~(modify-phases %standard-phases
-               (delete 'configure))))
+               (delete 'configure)
+               (add-after 'unpack 'skip-unavailable-tests
+                 (lambda _
+                   (with-directory-excursion "test/cases"
+                     ;; Tests try to open /etc/resolv.conf
+                     (substitute* "test-bind.cc"
+                       ;; Bind.tls
+                       (("smartdns::Server server_wrap;" all)
+                        (string-append "GTEST_SKIP();" all)))
+                     ;; Tests use ICMP ping.
+                     (substitute* (find-files ".")
+                       ((".*PING_TYPE_ICMP.*" all)
+                        (string-append "GTEST_SKIP();" all)))
+                     (delete-file "test-speed-check.cc"))))
+               ;; Compiled .o files in build phase can't be used for tests.
+               (add-after 'skip-unavailable-tests 'prepare-test-dir
+                 (lambda _
+                   (copy-recursively "." "../test")))
+               (add-before 'check 'enter-test-dir
+                 (lambda _
+                   (chdir "../test/test")))
+               (add-after 'check 'leave-test-dir
+                 (lambda _
+                   (chdir "../../source"))))))
     (inputs (list openssl))
+    (native-inputs (list googletest `(,isc-bind "utils")))
     (home-page "https://github.com/pymumu/smartdns")
     (synopsis "Local DNS server")
     (description