From 92b1a2f642d6ebbcd3bd223ccc0af7ec0d9a42ad Mon Sep 17 00:00:00 2001
From: Drew Crampsie <me@drewc.ca>
Date: Mon, 29 Jan 2024 22:48:49 -0800
Subject: [PATCH] Fix the "Homebrew uses installed libgambit" issue. (#1113)

The other commits are a rebase
---
 src/build/build-libgerbil.ss |  7 +++++++
 src/std/net/ssl-test.ss      | 36 ++++++++++++++++++++----------------
 2 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/src/build/build-libgerbil.ss b/src/build/build-libgerbil.ss
index ff56ce667..b2782f97f 100755
--- a/src/build/build-libgerbil.ss
+++ b/src/build/build-libgerbil.ss
@@ -251,6 +251,13 @@
       (path-expand "lib" build-home)))
   +gerbil-lib-dir+)
 
+(cond-expand
+  (darwin
+   (let (hblp (getenv "HOMEBREW_LIBRARY_PATHS" #f))
+     (when hblp (setenv "HOMEBREW_LIBRARY_PATHS"
+			(string-append (gerbil-libdir)":"hblp)))))
+  (else #f))
+
 (def +gerbil-static-dir+ #f)
 (def (gerbil-static-dir)
   (unless +gerbil-static-dir+
diff --git a/src/std/net/ssl-test.ss b/src/std/net/ssl-test.ss
index d4fed5170..6c0792a59 100644
--- a/src/std/net/ssl-test.ss
+++ b/src/std/net/ssl-test.ss
@@ -96,19 +96,21 @@ END
     (test-case "ssl connection: google"
       (test-request-ok "www.google.com:443"))
 
-    (test-case "ssl connection failure: badssl"
-      (test-request-error "expired.badssl.com:443")
-      (test-request-error "wrong.host.badssl.com:443")
-      (test-request-error "self-signed.badssl.com:443")
-      (test-request-error "untrusted-root.badssl.com:443")
-      (test-request-error "revoked.badssl.com:443"))
-
-    (test-case "ssl insecure connection: badssl"
-      (test-request-ok "expired.badssl.com:443" (insecure-client-ssl-context))
-      (test-request-ok "wrong.host.badssl.com:443" (insecure-client-ssl-context))
-      (test-request-ok "self-signed.badssl.com:443" (insecure-client-ssl-context))
-      (test-request-ok "untrusted-root.badssl.com:443" (insecure-client-ssl-context))
-      (test-request-ok "revoked.badssl.com:443" (insecure-client-ssl-context)))))
+    (cond-expand
+      (enable-badssl-test
+       (test-case "ssl connection failure: badssl"
+	 (test-request-error "expired.badssl.com:443")
+	 (test-request-error "wrong.host.badssl.com:443")
+	 (test-request-error "self-signed.badssl.com:443")
+	 (test-request-error "untrusted-root.badssl.com:443")
+	 (test-request-error "revoked.badssl.com:443"))
+
+       (test-case "ssl insecure connection: badssl"
+	 (test-request-ok "expired.badssl.com:443" (insecure-client-ssl-context))
+	 (test-request-ok "wrong.host.badssl.com:443" (insecure-client-ssl-context))
+	 (test-request-ok "self-signed.badssl.com:443" (insecure-client-ssl-context))
+	 (test-request-ok "untrusted-root.badssl.com:443" (insecure-client-ssl-context))
+	 (test-request-ok "revoked.badssl.com:443" (insecure-client-ssl-context)))))))
 
 (def ssl-server-test
   (test-suite "ssl server"
@@ -147,9 +149,11 @@ END
       (let (req (http-get "https://www.google.com"))
         (check (request-status req) => 200)
         (request-close req)))
-    (test-case "https request failure: badssl"
-      (check-exception (http-get "https://expired.badssl.com") ssl-error?))
-    (test-case "https request insecure: badssl"
+    (cond-expand
+      (enable-badssl-test
+       (test-case "https request failure: badssl"
+	 (check-exception (http-get "https://expired.badssl.com") ssl-error?))))
+    (test-case "https request insecure: www.google.com"
       (let (req (http-get "https://www.google.com" ssl-context: (insecure-client-ssl-context)))
         (check (request-status req) => 200)
         (request-close req)))))