Subject: [bug#65247] [PATCH] gnu: smartdns: Update to 43.

From: Hilton Chain <[email-masked]>
Date: Sat, 12 Aug 2023 21:27:35 +0800

* 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.
---
 gnu/packages/dns.scm | 35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index fdd10a6611..0fd8050286 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -1340,7 +1340,7 @@ (define-public openresolv
 (define-public smartdns
   (package
     (name "smartdns")
-    (version "42")
+    (version "43")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1352,18 +1352,43 @@ (define-public smartdns
                           ((".*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

base-commit: 19a7a824c35eae56ce56e2a460042fb7e2129234
-- 
2.41.0