diff --git a/package/network/utils/curl/Config.in b/package/network/utils/curl/Config.in new file mode 100644 index 0000000000..086f5c2445 --- /dev/null +++ b/package/network/utils/curl/Config.in @@ -0,0 +1,112 @@ +menu "Configuration" + depends on PACKAGE_libcurl + +choice + prompt "SSL library" + default LIBCURL_POLARSSL + +config LIBCURL_POLARSSL + bool "PolarSSL" + +config LIBCURL_CYASSL + bool "CyaSSL" + +config LIBCURL_AXTLS + bool "axTLS" + +config LIBCURL_OPENSSL + bool "OpenSSL" + +config LIBCURL_GNUTLS + bool "GNUTLS" + +config LIBCURL_NOSSL + bool "No SSL support" + +endchoice + +config LIBCURL_COOKIES + bool "Enable cookies support" + default y + +config LIBCURL_CRYPTO_AUTH + bool "Enable cryptographic authentication" + default n + +config LIBCURL_DICT + bool "Enable DICT support" + default n + +config LIBCURL_FILE + bool "Enable FILE support" + default y + +config LIBCURL_FTP + bool "Enable FTP support" + default y + +config LIBCURL_GOPHER + bool "Enable Gopher support" + default n + +config LIBCURL_HTTP + bool "Enable HTTP support" + default y + +config LIBCURL_IMAP + bool "Enable IMAP support" + default n + +config LIBCURL_LDAP + bool "Enable LDAP support" + default n + +config LIBCURL_LDAPS + bool "Enable LDAPS support" + default n + +config LIBCURL_LIBCURL_OPTION + bool "Enable --libcurl C code generation support" + default n + +config LIBCURL_POP3 + bool "Enable POP3 support" + default n + +config LIBCURL_PROXY + bool "Enable proxy support" + default n + +config LIBCURL_RTSP + bool "Enable RTSP support" + default n + +config LIBCURL_SMTP + bool "Enable SMTP support" + default n + +config LIBCURL_SSPI + bool "Enable SSPI" + default n + +config LIBCURL_TELNET + bool "Enable TELNET support" + default n + +config LIBCURL_TFTP + bool "Enable TFTP support" + default n + +config LIBCURL_THREADED_RESOLVER + bool "Enable threaded resolver" + default n + +config LIBCURL_TLS-SRP + bool "Enable TLS-SRP authentication" + default n + +config LIBCURL_ZLIB + bool "Use zlib" + default n + +endmenu diff --git a/package/network/utils/curl/Makefile b/package/network/utils/curl/Makefile new file mode 100644 index 0000000000..d1a8fc5597 --- /dev/null +++ b/package/network/utils/curl/Makefile @@ -0,0 +1,161 @@ +# +# Copyright (C) 2007-2014 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=curl +PKG_VERSION:=7.36.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://curl.haxx.se/download/ \ + http://www.mirrorspace.org/curl/ \ + ftp://ftp.sunet.se/pub/www/utilities/curl/ \ + ftp://ftp.planetmirror.com/pub/curl/ \ + http://www.mirrormonster.com/curl/download/ \ + http://curl.mirrors.cyberservers.net/download/ +PKG_MD5SUM:=e6d1f9d1b59da5062109ffe14e0569a4 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=COPYING + +PKG_FIXUP:=autoreconf +PKG_BUILD_PARALLEL:=1 + +PKG_CONFIG_DEPENDS := \ + LIBCURL_AXTLS \ + LIBCURL_COOKIES \ + LIBCURL_CRYPTO_AUTH \ + LIBCURL_CYASSL \ + LIBCURL_DICT \ + LIBCURL_FILE \ + LIBCURL_FTP \ + LIBCURL_GNUTLS \ + LIBCURL_GOPHER \ + LIBCURL_HTTP \ + LIBCURL_IMAP \ + LIBCURL_LDAP \ + LIBCURL_LDAPS \ + LIBCURL_LIBCURL_OPTION \ + LIBCURL_NOSSL \ + LIBCURL_OPENSSL \ + LIBCURL_POLARSSL \ + LIBCURL_POP3 \ + LIBCURL_PROXY \ + LIBCURL_RTSP \ + LIBCURL_SMTP \ + LIBCURL_SSPI \ + LIBCURL_TELNET \ + LIBCURL_TFTP \ + LIBCURL_THREADED_RESOLVER \ + LIBCURL_TLS-SRP \ + LIBCURL_ZLIB + +include $(INCLUDE_DIR)/package.mk + +define Package/curl/Default + SECTION:=net + CATEGORY:=Network + URL:=http://curl.haxx.se/ + MAINTAINER:=Imre Kaloz +endef + +define Package/curl + $(call Package/curl/Default) + SUBMENU:=File Transfer + DEPENDS:=+libcurl + TITLE:=A client-side URL transfer utility +endef + +define Package/libcurl + $(call Package/curl/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+LIBCURL_POLARSSL:libpolarssl +LIBCURL_CYASSL:libcyassl +LIBCURL_AXTLS:libaxtls +LIBCURL_OPENSSL:libopenssl +LIBCURL_GNUTLS:libgnutls +LIBCURL_ZLIB:zlib +LIBCURL_THREADED_RESOLVER:libpthread + TITLE:=A client-side URL transfer library using $(if $(CONFIG_LIBCURL_POLARSSL),PolarSSL)$(if $(CONFIG_LIBCURL_OPENSSL),OpenSSL)$(if $(CONFIG_LIBCURL_GNUTLS),GNUTLS)$(if $(CONFIG_LIBCURL_NOSSL),no SSL) + MENU:=1 +endef + + +define Package/libcurl/config + source "$(SOURCE)/Config.in" +endef + +TARGET_CFLAGS += $(FPIC) + +CONFIGURE_ARGS += \ + --enable-shared \ + --enable-static \ + --disable-thread \ + --enable-nonblocking \ + --disable-ares \ + --disable-debug \ + --disable-manual \ + --disable-verbose \ + --without-ca-bundle \ + --without-krb4 \ + --without-libidn \ + --without-nss \ + --without-libssh2 \ + $(call autoconf_bool,CONFIG_IPV6,ipv6) \ + $(if $(CONFIG_LIBCURL_AXTLS),--with-axtls="$(STAGING_DIR)/usr",--without-axtls) \ + $(if $(CONFIG_LIBCURL_COOKIES),--enable,--disable)-cookies \ + $(if $(CONFIG_LIBCURL_CRYPTO-AUTH),--enable,--disable)-crypto-auth \ + $(if $(CONFIG_LIBCURL_CYASSL),--with-cyassl="$(STAGING_DIR)/usr",--without-cyassl) \ + $(if $(CONFIG_LIBCURL_DICT),--enable,--disable)-dict \ + $(if $(CONFIG_LIBCURL_FILE),--enable,--disable)-file \ + $(if $(CONFIG_LIBCURL_FTP),--enable,--disable)-ftp \ + $(if $(CONFIG_LIBCURL_GOPHER),--enable,--disable)-gopher \ + $(if $(CONFIG_LIBCURL_GNUTLS),--with-gnutls="$(STAGING_DIR)/usr",--without-gnutls) \ + $(if $(CONFIG_LIBCURL_HTTP),--enable,--disable)-http \ + $(if $(CONFIG_LIBCURL_IMAP),--enable,--disable)-imap \ + $(if $(CONFIG_LIBCURL_LDAP),--enable,--disable)-ldap \ + $(if $(CONFIG_LIBCURL_LDAPS),--enable,--disable)-ldaps \ + $(if $(CONFIG_LIBCURL_LIBCURL-OPTION),--enable,--disable)-libcurl-option \ + $(if $(CONFIG_LIBCURL_OPENSSL),--with-ssl="$(STAGING_DIR)/usr",--without-ssl) \ + $(if $(CONFIG_LIBCURL_POLARSSL),--with-polarssl="$(STAGING_DIR)/usr",--without-polarssl) \ + $(if $(CONFIG_LIBCURL_POP3),--enable,--disable)-pop3 \ + $(if $(CONFIG_LIBCURL_PROXY),--enable,--disable)-proxy \ + $(if $(CONFIG_LIBCURL_RTSP),--enable,--disable)-rtsp \ + $(if $(CONFIG_LIBCURL_TELNET),--enable,--disable)-telnet \ + $(if $(CONFIG_LIBCURL_TFTP),--enable,--disable)-tftp \ + $(if $(CONFIG_LIBCURL_SMTP),--enable,--disable)-smtp \ + $(if $(CONFIG_LIBCURL_SSPI),--enable,--disable)-sspi \ + $(if $(CONFIG_LIBCURL_THREADED_RESOLVER),--enable,--disable)-threaded-resolver \ + $(if $(CONFIG_LIBCURL_TLS-SRP),--enable,--disable)-tls-srp \ + $(if $(CONFIG_LIBCURL_ZLIB),--with-zlib="$(STAGING_DIR)/usr",--without-zlib) \ + +define Build/Compile + +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + CC="$(TARGET_CC)" \ + install +endef + +define Build/InstallDev + $(INSTALL_DIR) $(2)/bin $(1)/usr/bin $(1)/usr/include $(1)/usr/lib $(1)/usr/lib/pkgconfig + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/curl-config $(1)/usr/bin/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/curl $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcurl.{a,so*} $(1)/usr/lib/ + $(CP) $(PKG_BUILD_DIR)/libcurl.pc $(1)/usr/lib/pkgconfig/ + $(SED) 's,-L$$$${exec_prefix}/lib,,g' $(1)/usr/bin/curl-config + [ -n "$(TARGET_LDFLAGS)" ] && $(SED) 's#$(TARGET_LDFLAGS)##g' $(1)/usr/lib/pkgconfig/libcurl.pc || true + ln -sf $(STAGING_DIR)/usr/bin/curl-config $(2)/bin/ +endef + +define Package/curl/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/curl $(1)/usr/bin/ +endef + +define Package/libcurl/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcurl.so.* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,curl)) +$(eval $(call BuildPackage,libcurl)) diff --git a/package/network/utils/curl/patches/001-cyassl-Use-error-ssl.h-when-available.patch b/package/network/utils/curl/patches/001-cyassl-Use-error-ssl.h-when-available.patch new file mode 100644 index 0000000000..d7190af3ad --- /dev/null +++ b/package/network/utils/curl/patches/001-cyassl-Use-error-ssl.h-when-available.patch @@ -0,0 +1,45 @@ +From 0204e17bc656e6c59b4010283e67f9251eb12c41 Mon Sep 17 00:00:00 2001 +From: Dan Fandrich +Date: Wed, 23 Apr 2014 11:01:30 +0200 +Subject: [PATCH] cyassl: Use error-ssl.h when available + +Versions since at least 2.9.4 renamed error.h to error-ssl.h, so use +whichever one is available. +--- + configure.ac | 3 +++ + lib/vtls/cyassl.c | 9 +++++++-- + 2 files changed, 10 insertions(+), 2 deletions(-) + +--- a/configure.ac ++++ b/configure.ac +@@ -2003,6 +2003,9 @@ if test "$curl_ssl_msg" = "$init_ssl_msg + dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined! + AC_CHECK_SIZEOF(long long) + ++ dnl Versions since at least 2.9.4 renamed error.h to error-ssl.h ++ AC_CHECK_HEADERS(cyassl/error-ssl.h) ++ + LIBS="-lcyassl -lm $LIBS" + + if test -n "$cyassllib"; then +--- a/lib/vtls/cyassl.c ++++ b/lib/vtls/cyassl.c +@@ -47,11 +47,16 @@ + #define _MPRINTF_REPLACE /* use our functions only */ + #include + #include "curl_memory.h" +-/* The last #include file should be: */ +-#include "memdebug.h" ++ + #include ++#ifdef HAVE_CYASSL_ERROR_SSL_H ++#include ++#else + #include ++#endif + ++/* The last #include file should be: */ ++#include "memdebug.h" + + static Curl_recv cyassl_recv; + static Curl_send cyassl_send; diff --git a/package/network/utils/curl/patches/100-check_long_long.patch b/package/network/utils/curl/patches/100-check_long_long.patch new file mode 100644 index 0000000000..7e014cd951 --- /dev/null +++ b/package/network/utils/curl/patches/100-check_long_long.patch @@ -0,0 +1,10 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2904,6 +2904,7 @@ CURL_VERIFY_RUNTIMELIBS + + AC_CHECK_SIZEOF(size_t) + AC_CHECK_SIZEOF(long) ++AC_CHECK_SIZEOF(long long) + AC_CHECK_SIZEOF(int) + AC_CHECK_SIZEOF(short) + CURL_CONFIGURE_LONG diff --git a/package/network/utils/curl/patches/200-no_docs_tests.patch b/package/network/utils/curl/patches/200-no_docs_tests.patch new file mode 100644 index 0000000000..2287215ed5 --- /dev/null +++ b/package/network/utils/curl/patches/200-no_docs_tests.patch @@ -0,0 +1,22 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -66,7 +66,7 @@ CLEANFILES = $(VC6LIBDSP) $(VC8LIBPRJ) + bin_SCRIPTS = curl-config + + SUBDIRS = lib src include +-DIST_SUBDIRS = $(SUBDIRS) tests packages docs ++DIST_SUBDIRS = $(SUBDIRS) packages + + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = libcurl.pc +--- a/Makefile.in ++++ b/Makefile.in +@@ -506,7 +506,7 @@ EXTRA_DIST = CHANGES COPYING maketgz Mak + CLEANFILES = $(VC6LIBDSP) $(VC8LIBPRJ) + bin_SCRIPTS = curl-config + SUBDIRS = lib src include +-DIST_SUBDIRS = $(SUBDIRS) tests packages docs ++DIST_SUBDIRS = $(SUBDIRS) packages + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = libcurl.pc + VSOURCES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c vtls/qssl.c \ diff --git a/package/network/utils/curl/patches/400-hugehelp.patch b/package/network/utils/curl/patches/400-hugehelp.patch new file mode 100644 index 0000000000..312792be98 --- /dev/null +++ b/package/network/utils/curl/patches/400-hugehelp.patch @@ -0,0 +1,13 @@ +--- a/src/tool_hugehelp.h ++++ b/src/tool_hugehelp.h +@@ -23,6 +23,10 @@ + ***************************************************************************/ + #include "tool_setup.h" + ++#ifdef USE_MANUAL + void hugehelp(void); ++#else ++#define hugehelp() Curl_nop_stmt ++#endif + + #endif /* HEADER_CURL_TOOL_HUGEHELP_H */