Project import
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dbb13b2 --- /dev/null +++ b/Makefile
@@ -0,0 +1,171 @@ +# +# Copyright (c) 2010-2012 Nest, Inc. +# All rights reserved. +# +# This document is the property of Nest. It is considered +# confidential and proprietary information. +# +# This document may not be reproduced or transmitted in any form, +# in whole or in part, without the express written permission of +# Nest. +# +# Description: +# This file is the makefile for the library and command line +# utility for transferring files with URL syntax, libcurl and +# curl, respectively. +# + +include pre.mak + +PackageName := curl + +PackageExtension := tar.gz +PackageSeparator := - + +PackagePatchArgs := -p1 + +PackageArchive := $(PackageName).$(PackageExtension) +PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion) + +PackageBuildMakefile = $(call GenerateBuildPaths,Makefile) + +CleanPaths += $(PackageLicenseFile) + +TpsDir = sw/tps + +OpenSSLDir = $(TpsDir)/openssl +OpenSSLPrefixDir = usr +OpenSSLIncludeDir = $(OpenSSLPrefixDir)/include +OpenSSLLibraryDir = $(OpenSSLPrefixDir)/lib +OpenSSLNames = crypto ssl +OpenSSLSearchPath = $(call GenerateResultPaths,$(OpenSSLDir),$(OpenSSLPrefixDir)) +OpenSSLIncludePath = $(call GenerateResultPaths,$(OpenSSLDir),$(OpenSSLIncludeDir)) +OpenSSLLibraryPath = $(call GenerateResultPaths,$(OpenSSLDir),$(OpenSSLLibraryDir)) +OpenSSLLibraryPaths = $(call GenerateResultPaths,$(OpenSSLResultsDir),$(addprefix $(OpenSSLLibraryDir)/,$(OpenSSLNames))) +OpenSSLDependPaths = $(call GenerateSharedLibraryResultPaths,$(OpenSSLDir)/$(OpenSSLLibraryDir),$(OpenSSLNames)) + +ZlibDir = $(TpsDir)/zlib +ZlibPrefixDir = usr +ZlibIncludeDir = $(ZlibPrefixDir)/include +ZlibLibraryDir = $(ZlibPrefixDir)/lib +ZlibName = z +ZlibSearchPath = $(call GenerateResultPaths,$(ZlibDir),$(ZlibPrefixDir)) +ZlibIncludePath = $(call GenerateResultPaths,$(ZlibDir),$(ZlibIncludeDir)) +ZlibLibraryPath = $(call GenerateResultPaths,$(ZlibDir),$(ZlibLibraryDir)) +ZlibDependPath = $(call GenerateSharedLibraryResultPaths,$(ZlibDir)/$(ZlibLibraryDir),$(ZlibName)) + +all: $(PackageDefaultGoal) + +# Generate the package license contents. + +$(PackageSourceDir)/COPYING: source + +$(PackageLicenseFile): $(PackageSourceDir)/COPYING + $(copy-result) + +# Extract the source from the archive and apply patches, if any. + +$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths) + $(expand-and-patch-package) + +# Prepare the sources. + +.PHONY: source +source: | $(PackageSourceDir) + +# Patch the sources, if necessary. + +.PHONY: patch +patch: source + +# Generate the package build makefile. +# +# For non-cross-compiled targets (e.g. simulators), the curl configure +# attempts to perform run-time tests. +# +# To ensure this works against the in-project versions of openssl and +# zlib, the paths to these shared objects MUST be found by the dynamic +# loader. + +$(PackageBuildMakefile): export $(LoaderSearchPath) := $(OpenSSLLibraryPath):$(ZlibLibraryPath):$($(LoaderSearchPath)) + +$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory) + $(Verbose)cd $(BuildDirectory) && \ + $(CURDIR)/$(PackageSourceDir)/configure \ + INSTALL="$(INSTALL) $(INSTALLFLAGS)" \ + CC="$(CC)" CXX="$(CXX)" AR=$(AR) RANLIB=$(RANLIB) STRIP=$(STRIP) \ + CPPFLAGS="$(call ToolGenerateIncludeArgument,$(OpenSSLIncludePath))" \ + LDFLAGS="$(call GenerateResolveArguments,$(ZlibDependPath)) \ + $(call GenerateResolveArguments,$(OpenSSLDependPaths)) \ + $(call ToolGenerateLibraryPathArgument,$(OpenSSLLibraryPath))" \ + --build=$(HostTuple) \ + --host=$(TargetTuple) \ + $(CurlPackageOptions) \ + --disable-ares \ + --disable-dict \ + --disable-gopher \ + --disable-imap \ + --disable-ldap \ + --disable-ldaps \ + --disable-manual \ + --disable-ntlm-wb \ + --disable-pop3 \ + --disable-rtsp \ + --disable-smtp \ + --disable-telnet \ + --enable-ipv6 \ + --with-ssl=$(OpenSSLSearchPath) \ + --with-zlib=$(ZlibSearchPath) \ + --with-ca-bundle=/usr/lib/ssl/certs/ca-bundle.pem \ + --without-libidn \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static + +# Configure the source for building. + +.PHONY: configure +configure: source $(PackageBuildMakefile) + +# Build the source. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. + +.PHONY: build +build: configure + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all + +# Stage the build to a temporary installation area. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. +# +# We explictly remove 'libcurl.la' because some packages that depend +# on libcurl use libtool. If libtool finds a '*.la' file for a +# library, it uses the value of 'libdir=<dir>' it finds. In our case, +# since '--prefix=/usr' this value is '/usr/lib'. It then resolves +# '-lcurl' to '/usr/lib/libcurl.so'. In a cross-compilation +# environment, this is likely to be neither the right architecture nor +# the right version to link against. In short, we lose. +# +# We could also handle this by removing DESTDIR and setting the prefix +# to $(ResultDirectory); however, that results in libtool hard-coding +# $(ResultDirectory) as the RPATH in the linked executables which is +# NOT what we want either. We lose again. +# +# By removing the '*.la' file, we win by ensuring neither a misdirected +# link nor an RPATH. + +.PHONY: stage +stage: build | $(ResultDirectory) + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install + $(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libcurl.la) + +clean: + $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir) + $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory) + $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory) + +include post.mak
diff --git a/curl.patches/curl-00.description b/curl.patches/curl-00.description new file mode 100644 index 0000000..c5d1250 --- /dev/null +++ b/curl.patches/curl-00.description
@@ -0,0 +1,6 @@ +This patch allows curl to be compiled with clang. This is a known problem with +the version of curl we're using and was fixed with commit 358c5c0745a4c47f910189095f3832163b4708c4. +According to tags made on the curl repo, the first build to include this commit was curl-7_30_0. + +Original bug tracked here: +http://sourceforge.net/p/curl/bugs/1192/ \ No newline at end of file
diff --git a/curl.patches/curl-00.patch b/curl.patches/curl-00.patch new file mode 100644 index 0000000..35d2f29 --- /dev/null +++ b/curl.patches/curl-00.patch
@@ -0,0 +1,295 @@ +diff -aruN curl-7.25.0/configure.ac curl-7.25.0.N/configure.ac +--- curl-7.25.0/configure.ac 2012-03-08 11:35:23.000000000 -0800 ++++ curl-7.25.0.N/configure.ac 2014-10-05 15:25:05.000000000 -0700 +@@ -2776,7 +2776,6 @@ + CURL_CHECK_FUNC_STRDUP + CURL_CHECK_FUNC_STRERROR_R + CURL_CHECK_FUNC_STRICMP +-CURL_CHECK_FUNC_STRLCAT + CURL_CHECK_FUNC_STRNCASECMP + CURL_CHECK_FUNC_STRNCMPI + CURL_CHECK_FUNC_STRNICMP +diff -aruN curl-7.25.0/lib/config-dos.h curl-7.25.0.N/lib/config-dos.h +--- curl-7.25.0/lib/config-dos.h 2012-03-08 11:35:24.000000000 -0800 ++++ curl-7.25.0.N/lib/config-dos.h 2014-10-05 15:25:05.000000000 -0700 +@@ -164,10 +164,6 @@ + #define HAVE_SYS_TIME_H 1 + #define HAVE_VARIADIC_MACROS_GCC 1 + +- #if (DJGPP_MINOR >= 4) +- #define HAVE_STRLCAT 1 +- #endif +- + /* Because djgpp <= 2.03 doesn't have snprintf() etc. */ + #if (DJGPP_MINOR < 4) + #define _MPRINTF_REPLACE +diff -aruN curl-7.25.0/lib/config-os400.h curl-7.25.0.N/lib/config-os400.h +--- curl-7.25.0/lib/config-os400.h 2012-03-08 11:35:24.000000000 -0800 ++++ curl-7.25.0.N/lib/config-os400.h 2014-10-05 15:25:05.000000000 -0700 +@@ -295,9 +295,6 @@ + /* Define if you have the <string.h> header file. */ + #define HAVE_STRING_H + +-/* Define if you have the `strlcat' function. */ +-#undef HAVE_STRLCAT +- + /* Define if you have the `strlcpy' function. */ + #undef HAVE_STRLCPY + +diff -aruN curl-7.25.0/lib/config-riscos.h curl-7.25.0.N/lib/config-riscos.h +--- curl-7.25.0/lib/config-riscos.h 2012-03-08 11:35:24.000000000 -0800 ++++ curl-7.25.0.N/lib/config-riscos.h 2014-10-05 15:25:05.000000000 -0700 +@@ -293,9 +293,6 @@ + /* Define if you have the <string.h> header file. */ + #define HAVE_STRING_H + +-/* Define if you have the `strlcat' function. */ +-#undef HAVE_STRLCAT +- + /* Define if you have the `strlcpy' function. */ + #undef HAVE_STRLCPY + +diff -aruN curl-7.25.0/lib/config-symbian.h curl-7.25.0.N/lib/config-symbian.h +--- curl-7.25.0/lib/config-symbian.h 2011-11-04 15:32:55.000000000 -0700 ++++ curl-7.25.0.N/lib/config-symbian.h 2014-10-05 15:25:05.000000000 -0700 +@@ -532,9 +532,6 @@ + /* Define to 1 if you have the <string.h> header file. */ + #define HAVE_STRING_H 1 + +-/* Define to 1 if you have the `strlcat' function. */ +-#define HAVE_STRLCAT 1 +- + /* Define to 1 if you have the `strlcpy' function. */ + #define HAVE_STRLCPY 1 + +diff -aruN curl-7.25.0/lib/config-tpf.h curl-7.25.0.N/lib/config-tpf.h +--- curl-7.25.0/lib/config-tpf.h 2011-11-04 15:32:55.000000000 -0700 ++++ curl-7.25.0.N/lib/config-tpf.h 2014-10-05 15:25:05.000000000 -0700 +@@ -477,9 +477,6 @@ + /* Define to 1 if you have the <string.h> header file. */ + #define HAVE_STRING_H 1 + +-/* Define to 1 if you have the `strlcat' function. */ +-/* #undef HAVE_STRLCAT */ +- + /* Define to 1 if you have the `strlcpy' function. */ + /* #undef HAVE_STRLCPY */ + +diff -aruN curl-7.25.0/lib/config-vxworks.h curl-7.25.0.N/lib/config-vxworks.h +--- curl-7.25.0/lib/config-vxworks.h 2011-11-04 15:32:55.000000000 -0700 ++++ curl-7.25.0.N/lib/config-vxworks.h 2014-10-05 15:25:05.000000000 -0700 +@@ -604,9 +604,6 @@ + /* Define to 1 if you have the <string.h> header file. */ + #define HAVE_STRING_H 1 + +-/* Define to 1 if you have the strlcat function. */ +-/* #undef HAVE_STRLCAT */ +- + /* Define to 1 if you have the `strlcpy' function. */ + /* #undef HAVE_STRLCPY */ + +diff -aruN curl-7.25.0/lib/if2ip.c curl-7.25.0.N/lib/if2ip.c +--- curl-7.25.0/lib/if2ip.c 2012-03-08 11:35:24.000000000 -0800 ++++ curl-7.25.0.N/lib/if2ip.c 2014-10-05 15:25:05.000000000 -0700 +@@ -101,6 +101,7 @@ + curl_strequal(iface->ifa_name, interf)) { + void *addr; + char scope[12]=""; ++ char ipstr[64]; + #ifdef ENABLE_IPV6 + if(af == AF_INET6) { + unsigned int scopeid = 0; +@@ -115,8 +116,9 @@ + else + #endif + addr = &((struct sockaddr_in *)iface->ifa_addr)->sin_addr; +- ip = (char *) Curl_inet_ntop(af, addr, buf, buf_size); +- strlcat(buf, scope, buf_size); ++ ip = (char *) Curl_inet_ntop(af, addr, ipstr, sizeof(ipstr)); ++ snprintf(buf, buf_size, "%s%s", ip, scope); ++ ip = buf; + break; + } + } +diff -aruN curl-7.25.0/lib/socks.c curl-7.25.0.N/lib/socks.c +--- curl-7.25.0/lib/socks.c 2012-03-08 11:35:25.000000000 -0800 ++++ curl-7.25.0.N/lib/socks.c 2014-10-05 15:25:05.000000000 -0700 +@@ -199,8 +199,15 @@ + * This is currently not supporting "Identification Protocol (RFC1413)". + */ + socksreq[8] = 0; /* ensure empty userid is NUL-terminated */ +- if(proxy_name) +- strlcat((char*)socksreq + 8, proxy_name, sizeof(socksreq) - 8); ++ if(proxy_name) { ++ size_t plen = strlen(proxy_name); ++ if(plen >= sizeof(socksreq) - 8) { ++ failf(data, "Too long SOCKS proxy name, can't use!\n"); ++ return CURLE_COULDNT_CONNECT; ++ } ++ /* copy the proxy name WITH trailing zero */ ++ memcpy(socksreq + 8, proxy_name, plen+1); ++ } + + /* + * Make connection +diff -aruN curl-7.25.0/lib/strequal.c curl-7.25.0.N/lib/strequal.c +--- curl-7.25.0/lib/strequal.c 2012-03-08 11:35:25.000000000 -0800 ++++ curl-7.25.0.N/lib/strequal.c 2014-10-05 15:25:05.000000000 -0700 +@@ -77,48 +77,3 @@ + return toupper(*first) == toupper(*second); + #endif + } +- +-#ifndef HAVE_STRLCAT +-/* +- * The strlcat() function appends the NUL-terminated string src to the end +- * of dst. It will append at most size - strlen(dst) - 1 bytes, NUL-termi- +- * nating the result. +- * +- * The strlcpy() and strlcat() functions return the total length of the +- * string they tried to create. For strlcpy() that means the length of src. +- * For strlcat() that means the initial length of dst plus the length of +- * src. While this may seem somewhat confusing it was done to make trunca- +- * tion detection simple. +- * +- * +- */ +-size_t Curl_strlcat(char *dst, const char *src, size_t siz) +-{ +- char *d = dst; +- const char *s = src; +- size_t n = siz; +- union { +- ssize_t sig; +- size_t uns; +- } dlen; +- +- /* Find the end of dst and adjust bytes left but don't go past end */ +- while(n-- != 0 && *d != '\0') +- d++; +- dlen.sig = d - dst; +- n = siz - dlen.uns; +- +- if(n == 0) +- return(dlen.uns + strlen(s)); +- while(*s != '\0') { +- if(n != 1) { +- *d++ = *s; +- n--; +- } +- s++; +- } +- *d = '\0'; +- +- return(dlen.uns + (s - src)); /* count does not include NUL */ +-} +-#endif +diff -aruN curl-7.25.0/lib/strequal.h curl-7.25.0.N/lib/strequal.h +--- curl-7.25.0/lib/strequal.h 2011-03-19 08:16:07.000000000 -0700 ++++ curl-7.25.0.N/lib/strequal.h 2014-10-05 15:25:05.000000000 -0700 +@@ -27,9 +27,4 @@ + #define strequal(a,b) curl_strequal(a,b) + #define strnequal(a,b,c) curl_strnequal(a,b,c) + +-#ifndef HAVE_STRLCAT +-#define strlcat(x,y,z) Curl_strlcat(x,y,z) +-#endif +-size_t strlcat(char *dst, const char *src, size_t siz); +- + #endif +diff -aruN curl-7.25.0/m4/curl-functions.m4 curl-7.25.0.N/m4/curl-functions.m4 +--- curl-7.25.0/m4/curl-functions.m4 2012-03-21 16:12:36.000000000 -0700 ++++ curl-7.25.0.N/m4/curl-functions.m4 2014-10-05 15:25:05.000000000 -0700 +@@ -6418,92 +6418,6 @@ + fi + ]) + +- +-dnl CURL_CHECK_FUNC_STRLCAT +-dnl ------------------------------------------------- +-dnl Verify if strlcat is available, prototyped, and +-dnl can be compiled. If all of these are true, and +-dnl usage has not been previously disallowed with +-dnl shell variable curl_disallow_strlcat, then +-dnl HAVE_STRLCAT will be defined. +- +-AC_DEFUN([CURL_CHECK_FUNC_STRLCAT], [ +- AC_REQUIRE([CURL_INCLUDES_STRING])dnl +- # +- tst_links_strlcat="unknown" +- tst_proto_strlcat="unknown" +- tst_compi_strlcat="unknown" +- tst_allow_strlcat="unknown" +- # +- AC_MSG_CHECKING([if strlcat can be linked]) +- AC_LINK_IFELSE([ +- AC_LANG_FUNC_LINK_TRY([strlcat]) +- ],[ +- AC_MSG_RESULT([yes]) +- tst_links_strlcat="yes" +- ],[ +- AC_MSG_RESULT([no]) +- tst_links_strlcat="no" +- ]) +- # +- if test "$tst_links_strlcat" = "yes"; then +- AC_MSG_CHECKING([if strlcat is prototyped]) +- AC_EGREP_CPP([strlcat],[ +- $curl_includes_string +- ],[ +- AC_MSG_RESULT([yes]) +- tst_proto_strlcat="yes" +- ],[ +- AC_MSG_RESULT([no]) +- tst_proto_strlcat="no" +- ]) +- fi +- # +- if test "$tst_proto_strlcat" = "yes"; then +- AC_MSG_CHECKING([if strlcat is compilable]) +- AC_COMPILE_IFELSE([ +- AC_LANG_PROGRAM([[ +- $curl_includes_string +- ]],[[ +- if(0 != strlcat(0, 0, 0)) +- return 1; +- ]]) +- ],[ +- AC_MSG_RESULT([yes]) +- tst_compi_strlcat="yes" +- ],[ +- AC_MSG_RESULT([no]) +- tst_compi_strlcat="no" +- ]) +- fi +- # +- if test "$tst_compi_strlcat" = "yes"; then +- AC_MSG_CHECKING([if strlcat usage allowed]) +- if test "x$curl_disallow_strlcat" != "xyes"; then +- AC_MSG_RESULT([yes]) +- tst_allow_strlcat="yes" +- else +- AC_MSG_RESULT([no]) +- tst_allow_strlcat="no" +- fi +- fi +- # +- AC_MSG_CHECKING([if strlcat might be used]) +- if test "$tst_links_strlcat" = "yes" && +- test "$tst_proto_strlcat" = "yes" && +- test "$tst_compi_strlcat" = "yes" && +- test "$tst_allow_strlcat" = "yes"; then +- AC_MSG_RESULT([yes]) +- AC_DEFINE_UNQUOTED(HAVE_STRLCAT, 1, +- [Define to 1 if you have the strlcat function.]) +- ac_cv_func_strlcat="yes" +- else +- AC_MSG_RESULT([no]) +- ac_cv_func_strlcat="no" +- fi +-]) +- +- + dnl CURL_CHECK_FUNC_STRNCASECMP + dnl ------------------------------------------------- + dnl Verify if strncasecmp is available, prototyped, and
diff --git a/curl.tar.gz b/curl.tar.gz new file mode 100644 index 0000000..1432843 --- /dev/null +++ b/curl.tar.gz Binary files differ
diff --git a/curl.url b/curl.url new file mode 100644 index 0000000..ddc403c --- /dev/null +++ b/curl.url
@@ -0,0 +1 @@ +http://curl.haxx.se/download/curl-7.25.0.tar.gz
diff --git a/curl.version b/curl.version new file mode 100644 index 0000000..bc34d81 --- /dev/null +++ b/curl.version
@@ -0,0 +1 @@ +7.25.0