aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils/curl
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/utils/curl')
-rw-r--r--package/network/utils/curl/Config.in154
-rw-r--r--package/network/utils/curl/Makefile178
-rw-r--r--package/network/utils/curl/patches/200-no_docs_tests.patch22
-rw-r--r--package/network/utils/curl/patches/300-fix-disable-crypto-auth.patch25
-rw-r--r--package/network/utils/curl/patches/310-polarssl-disable-runtime-version-check.patch11
5 files changed, 390 insertions, 0 deletions
diff --git a/package/network/utils/curl/Config.in b/package/network/utils/curl/Config.in
new file mode 100644
index 0000000..11cfa39
--- /dev/null
+++ b/package/network/utils/curl/Config.in
@@ -0,0 +1,154 @@
+if PACKAGE_libcurl
+
+comment "SSL support"
+
+choice
+ prompt "Selected 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
+
+comment "Supported protocols"
+
+config LIBCURL_DICT
+ bool "DICT protocol"
+ default n
+
+config LIBCURL_FILE
+ bool "FILE protocol"
+ default y
+
+config LIBCURL_FTP
+ bool "FTP / FTPS protocol"
+ default y
+
+config LIBCURL_GOPHER
+ bool "Gopher protocol"
+ default n
+
+config LIBCURL_HTTP
+ bool "HTTP / HTTPS protocol"
+ default y
+
+config LIBCURL_COOKIES
+ bool "Enable Cookies support"
+ depends on LIBCURL_HTTP
+ default y
+
+config LIBCURL_IMAP
+ bool "IMAP / IMAPS protocol"
+ default n
+
+config LIBCURL_LDAP
+ bool "LDAP protocol"
+ default n
+
+config LIBCURL_LDAPS
+ bool "Enable LDAPS support"
+ depends on LIBCURL_LDAP && !LIBCURL_NOSSL
+ default y
+
+config LIBCURL_POP3
+ bool "POP3 / POP3S protocol"
+ default n
+
+config LIBCURL_RTSP
+ bool "RTSP protocol"
+ depends on LIBCURL_HTTP
+ default n
+config LIBCURL_NO_RTSP
+ string "RTSP require HTTP protocol"
+ depends on !LIBCURL_HTTP
+ default "!"
+
+config LIBCURL_SSH2
+ bool "SCP / SFTP protocol"
+ default n
+
+config LIBCURL_SMB
+ bool "SMB protocol (CIFS)"
+ depends on LIBCURL_CRYPTO_AUTH && (LIBCURL_GNUTLS || LIBCURL_OPENSSL)
+ default n
+config LIBCURL_NO_SMB
+ string "SMB require 'cryptographic authentication' and either 'GnuTLS' or 'OpenSSL'"
+ depends on !LIBCURL_CRYPTO_AUTH || (!LIBCURL_GNUTLS && !LIBCURL_OPENSSL)
+ default "!"
+
+config LIBCURL_SMTP
+ bool "SMTP / SMTPS protocol"
+ default n
+
+config LIBCURL_TELNET
+ bool "TELNET protocol"
+ default n
+
+config LIBCURL_TFTP
+ bool "TFTP protocol"
+ default n
+
+comment "Miscellaneous"
+
+config LIBCURL_PROXY
+ bool "Enable proxy support"
+ default y
+
+config LIBCURL_CRYPTO_AUTH
+ bool "Enable cryptographic authentication"
+ default n
+
+config LIBCURL_TLS_SRP
+ bool "Enable TLS-SRP authentication"
+ default n
+
+config LIBCURL_LIBIDN
+ bool "Enable IDN support"
+ default n
+
+config LIBCURL_THREADED_RESOLVER
+ bool "Enable threaded DNS resolver"
+ default n
+ help
+ Enable POSIX threaded asynchronous DNS resolution
+
+config LIBCURL_ZLIB
+ bool "Enable zlib support"
+ default n
+
+config LIBCURL_UNIX_SOCKETS
+ bool "Enable unix domain socket support"
+ default n
+ help
+ Enable HTTP over unix domain sockets.
+ To use this with the curl command line, you specify the socket path to the new --unix-domain option.
+ This feature is actually not limited to HTTP, you can do all the TCP-based protocols
+ except FTP over the unix domain socket, but it is only HTTP that is regularly used this way.
+ The reason FTP isn't supported is of course its use of two connections
+ which would be even weirder to do like this.
+
+config LIBCURL_LIBCURL_OPTION
+ bool "Enable generation of C code"
+ default n
+
+config LIBCURL_VERBOSE
+ bool "Enable verbose error strings"
+ default n
+
+endif
diff --git a/package/network/utils/curl/Makefile b/package/network/utils/curl/Makefile
new file mode 100644
index 0000000..82574cd
--- /dev/null
+++ b/package/network/utils/curl/Makefile
@@ -0,0 +1,178 @@
+#
+# Copyright (C) 2007-2015 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.43.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:=11bddbb452a8b766b932f859aaeeed39
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=COPYING
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+
+PKG_CONFIG_DEPENDS:= \
+ CONFIG_IPV6 \
+ \
+ CONFIG_LIBCURL_AXTLS \
+ CONFIG_LIBCURL_CYASSL \
+ CONFIG_LIBCURL_GNUTLS \
+ CONFIG_LIBCURL_OPENSSL \
+ CONFIG_LIBCURL_POLARSSL \
+ CONFIG_LIBCURL_NOSSL \
+ \
+ CONFIG_LIBCURL_LIBIDN \
+ CONFIG_LIBCURL_SSH2 \
+ CONFIG_LIBCURL_ZLIB \
+ \
+ CONFIG_LIBCURL_DICT \
+ CONFIG_LIBCURL_FILE \
+ CONFIG_LIBCURL_FTP \
+ CONFIG_LIBCURL_GOPHER \
+ CONFIG_LIBCURL_HTTP \
+ CONFIG_LIBCURL_IMAP \
+ CONFIG_LIBCURL_LDAP \
+ CONFIG_LIBCURL_LDAPS \
+ CONFIG_LIBCURL_POP3 \
+ CONFIG_LIBCURL_RTSP \
+ CONFIG_LIBCURL_NO_RTSP \
+ CONFIG_LIBCURL_SMB \
+ CONFIG_LIBCURL_NO_SMB \
+ CONFIG_LIBCURL_SMTP \
+ CONFIG_LIBCURL_TELNET \
+ CONFIG_LIBCURL_TFTP \
+ \
+ CONFIG_LIBCURL_COOKIES \
+ CONFIG_LIBCURL_CRYPTO_AUTH \
+ CONFIG_LIBCURL_LIBCURL_OPTION \
+ CONFIG_LIBCURL_PROXY \
+ CONFIG_LIBCURL_THREADED_RESOLVER \
+ CONFIG_LIBCURL_TLS_SRP \
+ CONFIG_LIBCURL_UNIX_SOCKETS \
+ CONFIG_LIBCURL_VERBOSE
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/curl/Default
+ SECTION:=net
+ CATEGORY:=Network
+ URL:=http://curl.haxx.se/
+ MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
+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
+ DEPENDS += +LIBCURL_ZLIB:zlib +LIBCURL_THREADED_RESOLVER:libpthread +LIBCURL_LDAP:libopenldap +LIBCURL_LIBIDN:libidn +LIBCURL_SSH2:libssh2
+ TITLE:=A client-side URL transfer library
+ MENU:=1
+endef
+
+
+define Package/libcurl/config
+ source "$(SOURCE)/Config.in"
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+CONFIGURE_ARGS += \
+ --disable-debug \
+ --disable-ares \
+ --enable-shared \
+ --enable-static \
+ --disable-manual \
+ --without-ca-bundle \
+ --without-nss \
+ --without-libmetalink \
+ --without-librtmp \
+ \
+ $(call autoconf_bool,CONFIG_IPV6,ipv6) \
+ \
+ $(if $(CONFIG_LIBCURL_AXTLS),--with-axtls="$(STAGING_DIR)/usr" --without-ca-path,--without-axtls) \
+ $(if $(CONFIG_LIBCURL_CYASSL),--with-cyassl="$(STAGING_DIR)/usr" --without-ca-path,--without-cyassl) \
+ $(if $(CONFIG_LIBCURL_GNUTLS),--with-gnutls="$(STAGING_DIR)/usr" --without-ca-path,--without-gnutls) \
+ $(if $(CONFIG_LIBCURL_OPENSSL),--with-ssl="$(STAGING_DIR)/usr" --with-ca-path=/etc/ssl/certs,--without-ssl) \
+ $(if $(CONFIG_LIBCURL_POLARSSL),--with-polarssl="$(STAGING_DIR)/usr" --with-ca-path=/etc/ssl/certs,--without-polarssl) \
+ \
+ $(if $(CONFIG_LIBCURL_LIBIDN),--with-libidn="$(STAGING_DIR)/usr",--without-libidn) \
+ $(if $(CONFIG_LIBCURL_SSH2),--with-libssh2="$(STAGING_DIR)/usr",--without-libssh2) \
+ $(if $(CONFIG_LIBCURL_ZLIB),--with-zlib="$(STAGING_DIR)/usr",--without-zlib) \
+ \
+ $(call autoconf_bool,CONFIG_LIBCURL_DICT,dict) \
+ $(call autoconf_bool,CONFIG_LIBCURL_FILE,file) \
+ $(call autoconf_bool,CONFIG_LIBCURL_FTP,ftp) \
+ $(call autoconf_bool,CONFIG_LIBCURL_GOPHER,gopher) \
+ $(call autoconf_bool,CONFIG_LIBCURL_HTTP,http) \
+ $(call autoconf_bool,CONFIG_LIBCURL_IMAP,imap) \
+ $(call autoconf_bool,CONFIG_LIBCURL_LDAP,ldap) \
+ $(call autoconf_bool,CONFIG_LIBCURL_LDAPS,ldaps) \
+ $(call autoconf_bool,CONFIG_LIBCURL_POP3,pop3) \
+ $(call autoconf_bool,CONFIG_LIBCURL_RTSP,rtsp) \
+ $(call autoconf_bool,CONFIG_LIBCURL_SMB,smb) \
+ $(call autoconf_bool,CONFIG_LIBCURL_SMTP,smtp) \
+ $(call autoconf_bool,CONFIG_LIBCURL_TELNET,telnet) \
+ $(call autoconf_bool,CONFIG_LIBCURL_TFTP,tftp) \
+ \
+ $(call autoconf_bool,CONFIG_LIBCURL_COOKIES,cookies) \
+ $(call autoconf_bool,CONFIG_LIBCURL_CRYPTO_AUTH,crypto-auth) \
+ $(call autoconf_bool,CONFIG_LIBCURL_LIBCURL_OPTION,libcurl-option) \
+ $(call autoconf_bool,CONFIG_LIBCURL_PROXY,proxy) \
+ $(call autoconf_bool,CONFIG_LIBCURL_THREADED_RESOLVER,threaded-resolver) \
+ $(call autoconf_bool,CONFIG_LIBCURL_TLS_SRP,tls-srp) \
+ $(call autoconf_bool,CONFIG_LIBCURL_UNIX_SOCKETS,unix-sockets) \
+ $(call autoconf_bool,CONFIG_LIBCURL_VERBOSE,verbose) \
+
+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) $(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/200-no_docs_tests.patch b/package/network/utils/curl/patches/200-no_docs_tests.patch
new file mode 100644
index 0000000..2845577
--- /dev/null
+++ b/package/network/utils/curl/patches/200-no_docs_tests.patch
@@ -0,0 +1,22 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -129,7 +129,7 @@ CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP)
+ 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
+@@ -577,7 +577,7 @@ CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP)
+
+ 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
+ LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c \
diff --git a/package/network/utils/curl/patches/300-fix-disable-crypto-auth.patch b/package/network/utils/curl/patches/300-fix-disable-crypto-auth.patch
new file mode 100644
index 0000000..1cdb820
--- /dev/null
+++ b/package/network/utils/curl/patches/300-fix-disable-crypto-auth.patch
@@ -0,0 +1,25 @@
+--- a/lib/curl_ntlm_msgs.c
++++ b/lib/curl_ntlm_msgs.c
+@@ -569,7 +569,7 @@ CURLcode Curl_sasl_create_ntlm_type3_mes
+ else
+ #endif
+
+-#if USE_NTRESPONSES && USE_NTLM2SESSION
++#if USE_NTRESPONSES && USE_NTLM2SESSION && !defined(CURL_DISABLE_CRYPTO_AUTH)
+ /* We don't support NTLM2 if we don't have USE_NTRESPONSES */
+ if(ntlm->flags & NTLMFLAG_NEGOTIATE_NTLM2_KEY) {
+ unsigned char ntbuffer[0x18];
+--- a/lib/vtls/vtls.c
++++ b/lib/vtls/vtls.c
+@@ -852,9 +852,9 @@ CURLcode Curl_ssl_md5sum(unsigned char *
+ unsigned char *md5sum, /* output */
+ size_t md5len)
+ {
+-#ifdef curlssl_md5sum
++#if defined(curlssl_md5sum)
+ curlssl_md5sum(tmp, tmplen, md5sum, md5len);
+-#else
++#elif !defined(CURL_DISABLE_CRYPTO_AUTH)
+ MD5_context *MD5pw;
+
+ (void) md5len;
diff --git a/package/network/utils/curl/patches/310-polarssl-disable-runtime-version-check.patch b/package/network/utils/curl/patches/310-polarssl-disable-runtime-version-check.patch
new file mode 100644
index 0000000..1b5b63a
--- /dev/null
+++ b/package/network/utils/curl/patches/310-polarssl-disable-runtime-version-check.patch
@@ -0,0 +1,11 @@
+--- a/lib/vtls/polarssl.c
++++ b/lib/vtls/polarssl.c
+@@ -592,7 +592,7 @@ void Curl_polarssl_session_free(void *pt
+
+ size_t Curl_polarssl_version(char *buffer, size_t size)
+ {
+- unsigned int version = version_get_number();
++ unsigned int version = POLARSSL_VERSION_NUMBER;
+ return snprintf(buffer, size, "%s/%d.%d.%d",
+ version >= 0x01030A00?"mbedTLS":"PolarSSL",
+ version>>24, (version>>16)&0xff, (version>>8)&0xff);