Bug#941915: FTBFS: expected '{' before 'void' in 'struct void *curlm; '

Damyan Ivanov dmn at debian.org
Mon Oct 7 15:49:45 BST 2019


Package: libwww-curl-perl
Version: 4.17-5
Severity: serious
Tags: upstream patch ftbfs
Justification: fails to build from source (but built successfully in the past)

As seen on [1], libwww-curl-perl fails to build in current unstable. Currently 
this impedes the perl transition to 5.30.

x86_64-linux-gnu-gcc -c  -I/usr/include/x86_64-linux-gnu -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"4.17\" -DXS_VERSION=\"4.17\" -fPIC "-I/usr/lib/x86_64-linux-gnu/perl/5.30/CORE"   Curl.c
Curl.xs:76:12: error: expected ‘{’ before ‘void’
   76 |     struct void *curlm;
      |            ^~~~

The reasons seems to be that 'CURL' is defined as 'void' and 'struct CURL' is 
no longer a valid type.

The patch below seems to fix the build.

I won't be able to upload a fixed package until tomorrow, so if somebody else 
from the group has the time - please go ahead.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- a/Curl.xs
+++ b/Curl.xs
@@ -47,7 +47,7 @@ typedef enum {
 
 typedef struct {
     /* The main curl handle */
-    struct CURL *curl;
+    CURL *curl;
     I32 *y;
     /* Lists that can be set via curl_easy_setopt() */
     struct curl_slist *slist[SLIST_LAST];
@@ -73,7 +73,7 @@ typedef struct {
 #ifdef __CURL_MULTI_H
     struct CURLM *curlm;
 #else
-    struct void *curlm;
+    void *curlm;
 #endif
 } perl_curl_multi;
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[1] https://buildd.debian.org/status/fetch.php?pkg=libwww-curl-perl&arch=amd64&ver=4.17-5%2Bb1&stamp=1570325845&raw=0

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'oldoldstable'), (500, 'unstable'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.2.0-3-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8), LANGUAGE=bg_BG.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libwww-curl-perl depends on:
ii  libc6                       2.29-2
ii  libcurl3-gnutls             7.66.0-1
ii  perl                        5.30.0-5
ii  perl-base [perlapi-5.30.0]  5.30.0-5

libwww-curl-perl recommends no packages.

Versions of packages libwww-curl-perl suggests:
pn  libcurl4-gnutls-dev  <none>

-- debconf-show failed


More information about the pkg-perl-maintainers mailing list