From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Sat, 14 Nov 2020 15:40:38 +0100
Subject: [PATCH] gnu: perl-www-curl: Remove undeclared symbols.

Copied verbatim from the FreeBSD port[0].

[0]: https://www.freshports.org/www/p5-WWW-Curl

--- a/Makefile.PL	2014-02-21 08:08:09.000000000 -0800
+++ b/Makefile.PL	2020-04-20 15:36:35.008798000 -0700
@@ -100,6 +100,13 @@
      print "Found curl.h in $curl_h\n";
      my @syms;
      my $has_cpp = 0;
+     my @skiplist = qw/
+        CURL_DID_MEMORY_FUNC_TYPEDEFS
+        CURL_STRICTER
+        CURLINC_CURL_H
+        CURL_WIN32
+        CURLOPT
+     /;
      open(H_IN, "-|", "cpp", $curl_h) and $has_cpp++;
      unless ($has_cpp) {
          warn "No working cpp ($!).  Parsing curl.h in Perl";
@@ -121,6 +128,7 @@
     open (H, "<", $curl_h) or die ("Cannot open $curl_h: ".$!);
     while(<H>) {
         if (/^#define (CURL[A-Za-z0-9_]*)/) {
+            next if $1 ~~ @skiplist;
             push @syms, $1;
         }
     }
d></tr></table>
<table class='tabs'><tr><td>
<a href='/guix/about/'>about</a><a href='/guix/'>summary</a><a href='/guix/refs/?id=23af19f964910548233537f4d6d47789c3abc8ab'>refs</a><a class='active' href='/guix/log/gnu/build/secret-service.scm'>log</a><a href='/guix/tree/gnu/build/secret-service.scm?id=23af19f964910548233537f4d6d47789c3abc8ab'>tree</a><a href='/guix/commit/gnu/build/secret-service.scm?id=23af19f964910548233537f4d6d47789c3abc8ab'>commit</a><a href='/guix/diff/gnu/build/secret-service.scm?id=23af19f964910548233537f4d6d47789c3abc8ab'>diff</a></td><td class='form'><form class='right' method='get' action='/guix/log/gnu/build/secret-service.scm'>
<input type='hidden' name='id' value='23af19f964910548233537f4d6d47789c3abc8ab'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/guix/log/?id=23af19f964910548233537f4d6d47789c3abc8ab'>root</a>/<a href='/guix/log/gnu?id=23af19f964910548233537f4d6d47789c3abc8ab'>gnu</a>/<a href='/guix/log/gnu/build?id=23af19f964910548233537f4d6d47789c3abc8ab'>build</a>/<a href='/guix/log/gnu/build/secret-service.scm?id=23af19f964910548233537f4d6d47789c3abc8ab'>secret-service.scm</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/guix/log/gnu/build/secret-service.scm?id=23af19f964910548233537f4d6d47789c3abc8ab&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th></tr>
<tr><td><span title='2020-09-29 21:56:27 +0200'>2020-09-29</span></td><td><a href='/guix/commit/gnu/build/secret-service.scm?id=d5366500ec1aeecad6fc292b195088e30aa715fd'>secret-service: Add proper logging procedure and log to syslog.</a><span class='msg-avail'>...<span class='msg-tooltip'>* gnu/build/secret-service.scm (log): New macro.
(secret-service-send-secrets, secret-service-receive-secrets): Use it
instead of raw 'format' calls.
</span></span></td><td>Ludovic Courtès</td></tr>
<tr><td><span title='2020-09-29 21:56:27 +0200'>2020-09-29</span></td><td><a href='/guix/commit/gnu/build/secret-service.scm?id=59261a22f9819b1fdf797ffba17af17d385d6c92'>services: secret-service: Add initial client/server handshake.</a><span class='msg-avail'>...<span class='msg-tooltip'>This allows the client running on the host to know when it's actually
connect to the server running in the guest.  Failing that, the client
would connect right away to QEMU and send secrets even though the server
is not running yet in the guest, which is unreliable.

* gnu/build/secret-service.scm (secret-service-send-secrets): Add
 #:handshake-timeout.  Read from SOCK an initial message from the
server.  Return #f on error.
(secret-service-receive-secrets): Send 'secret-service-server' message
to the client.  Close SOCK upon timeout.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service): 'start'
method returns #f when 'secret-service-send-secrets' returns #f.
</span></span></td><td>Ludovic Courtès</td></tr>
<tr><td><span title='2020-09-29 21:56:27 +0200'>2020-09-29</span></td><td><a href='/guix/commit/gnu/build/secret-service.scm?id=f9090015c58e6f47be74fe6116ef10a90378a899'>secret-service: Fix file port leak in 'secret-service-send-secrets'.</a><span class='msg-avail'>...<span class='msg-tooltip'>* gnu/build/secret-service.scm (secret-service-send-secrets): Use
'call-with-input-file' instead of 'open-input-file'.
</span></span></td><td>Ludovic Courtès</td></tr>
<tr><td><span title='2020-09-29 21:56:27 +0200'>2020-09-29</span></td><td><a href='/guix/commit/gnu/build/secret-service.scm?id=4d047853da76dc5fa5dd50ecb750c861342ef47b'>secret-service: Add a timeout when waiting for a client.</a><span class='msg-avail'>...<span class='msg-tooltip'>* gnu/build/secret-service.scm (secret-service-receive-secrets)
[wait-for-client]: Call 'select' with a 60s timeout before 'accept'.
Return #f upon timeout.
[read-secrets]: Return FILES on success.
Adjust caller of 'wait-for-client' to handle #f.
</span></span></td><td>Ludovic Courtès</td></tr>
<tr><td><span title='2020-09-29 21:56:26 +0200'>2020-09-29</span></td><td><a href='/guix/commit/gnu/build/secret-service.scm?id=118b6dbb46ff3376db7467301fe59673c042d220'>secret-service: Clarify the origin of messages.</a><span class='msg-avail'>...<span class='msg-tooltip'>* gnu/build/secret-service.scm (secret-service-send-secrets)
(secret-service-receive-secrets): Prefix messages by "secret service".
</span></span></td><td>Ludovic Courtès</td></tr>
<tr><td><span title='2020-09-01 16:06:38 +0200'>2020-09-01</span></td><td><a href='/guix/commit/gnu/build/secret-service.scm?id=ec32d4f291b3cc039a99f8090b6c2b2444be5a83'>services: Add secret-service-type.</a><span class='msg-avail'>...<span class='msg-tooltip'>This adds a "secret-service" that can be added to a Childhurd VM to receive
out-of-band secrets (keys) sent from the host.

Co-authored-by: Ludovic Courtès &lt;ludo@gnu.org&gt;

* gnu/services/virtualization.scm (secret-service-activation): New procedure.
(secret-service-type): New variable.
* gnu/build/secret-service.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
</span></span></td><td>Jan (janneke) Nieuwenhuizen</td></tr>
