Package: r-cran-curl Version: 0.9.6-1 Severity: important Tags: upstream patch
r-cran-curl fails to build on big endian architectures. Here are the relevant parts of the build log: | gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c curl.c -o curl.o | curl.c: In function 'rcurl_fgetc': | curl.c:138:38: warning: implicit declaration of function 'BSWAP_32' [-Wimplicit-function-declaration] | return rcurl_read(&x, 1, 1, con) ? BSWAP_32(x) : R_EOF; | ^ [...] | ** testing if installed package can be loaded | Error in dyn.load(file, DLLpath = DLLpath, ...) : | unable to load shared object '/«PKGBUILDDIR»/debian/r-cran-curl/usr/lib/R/site-library/curl/libs/curl.so': | /«PKGBUILDDIR»/debian/r-cran-curl/usr/lib/R/site-library/curl/libs/curl.so: undefined symbol: BSWAP_32 | Error: loading failed | Execution halted | ERROR: loading failed The problem is that BSWAP_32 is only defined for Sun, Apple or OpenBSD. Please find a patch below to also define it for GLIBC based systems. --- r-cran-curl-0.9.6.orig/src/curl.c +++ r-cran-curl-0.9.6/src/curl.c @@ -23,6 +23,9 @@ #define BSWAP_32 OSSwapInt32 #elif (defined(__OpenBSD__)) #define BSWAP_32(x) swap32(x) +#elif (defined(__GLIBC__)) +#include <byteswap.h> +#define BSWAP_32(x) bswap_32(x) #endif /* the RConnection API is experimental and subject to change */ Note that it prevents a few r-cran packages to build on big-endian architectures, so an upload with this patch would be appreciated. -- System Information: Debian Release: stretch/sid APT prefers testing APT policy: (500, 'testing') Architecture: mips (mips64) Kernel: Linux 4.7.0-1-5kc-malta Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)

