Project import
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0f75194 --- /dev/null +++ b/Makefile
@@ -0,0 +1,150 @@ +# +# 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 Open Secure Socket Layer +# (SSL) library. +# + +BuildConfigSpecialized := No + +include pre.mak + +PackageName := openssl + +PackageExtension := tar.gz +PackageSeparator := - + +PackagePatchArgs := -p1 + +PackageArchive := $(PackageName).$(PackageExtension) +PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion) + +PackageBuildMakefile = $(call GenerateBuildPaths,Makefile) + +CleanPaths += $(PackageLicenseFile) + +LinuxDir := sw/tps/linux +LinuxIncDir := $(call GenerateResultPaths,$(LinuxDir),include) + +ZlibDir := sw/tps/zlib +ZlibIncDir := $(call GenerateResultPaths,$(ZlibDir),usr/include) +ZlibLibDir := $(call GenerateResultPaths,$(ZlibDir),usr/lib) + +CLibraryDir := sw/tps/newlib +CLibraryIncludeDir := $(call GenerateResultPaths,$(CLibraryDir),usr/arm-none-eabi/include) +CLibraryLibDir := $(call GenerateResultPaths,$(CLibraryDir),usr/arm-none-eabi/lib) + +all: $(PackageDefaultGoal) + +# Generate the package license contents. + +$(PackageSourceDir)/LICENSE: source + +$(PackageLicenseFile): $(PackageSourceDir)/LICENSE + $(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 + +$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory) + $(call create-links,$(CURDIR)/$(PackageSourceDir),$(BuildDirectory)) + +# Configure the source for building. + +OpenSSLTargetConfig = gcc + +ifneq ($(CONFIG_OSM_HOST),1) +OpenSSLPackageOptions = $(MACHFLAGS) \ + -DDEVRANDOM= -DNO_SYSLOG -DNO_CHMOD -DNO_MEMORY_H -DOPENSSL_EXPERIMENTAL_JPAKE + +OpenSSLCC_LD = CC="$(CC)" LD=$(LD) LDFLAGS="$(LDFLAGS)" + +OpenSSLCCFlags = $(MACHFLAGS) -Wno-unused-value \ + -Wno-implicit-function-declaration + +OpenSSLCCFlags += no-asm no-threads no-shared no-zlib no-idea no-camellia no-seed no-bf no-cast \ + no-des no-rc2 no-rc4 no-rc5 no-md2 no-md4 no-ripemd no-mdc2 no-rsa no-dsa no-dh \ + no-sock no-dgram no-ssl2 no-ssl3 no-err no-krb5 no-engine no-hw no-dso \ + no-devrandom no-sha512 no-dir no-egd experimental-jpake + +ifeq ($(BuildProduct),topaz) + +OpenSSLCCFlags += no-ecdh no-tty + +endif + +OpenSSLCCFlags += $(call ToolGenerateIncludeArgument,$(CLibraryIncludeDir)) + +OpenSSLTargets = build_crypto +OpenSSLInstallTargets = install_crypto +else +OpenSSLTargets = all +OpenSSLInstallTargets = install +endif + +.PHONY: configure +configure: source $(PackageBuildMakefile) + $(Verbose)cd $(BuildDirectory) && \ + $(OpenSSL_LD) \ + ./Configure \ + --prefix=/usr \ + --openssldir=/usr/lib/ssl \ + shared \ + zlib \ + $(call ToolGenerateIncludeArgument,$(ZlibIncDir)) \ + $(call ToolGenerateLibraryPathArgument,$(ZlibLibDir)) \ + $(OpenSSLPackageOptions) \ + $(OpenSSLCCFlags) \ + $(OpenSSLTargetConfig) + +# Build the source. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. + +.PHONY: build +build: configure | $(BuildDirectory) + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) -C $(BuildDirectory) \ + CC="$(CC)" AR="$(AR) $(ARFLAGS)" RANLIB=$(RANLIB) \ + INSTALL_PREFIX=$(ResultDirectory) \ + $(OpenSSLTargets) + +# Stage the build to a temporary installation area. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. + +.PHONY: stage +stage: build | $(ResultDirectory) + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) -C $(BuildDirectory) \ + CC="$(CC)" AR="$(AR) $(ARFLAGS)" RANLIB=$(RANLIB) \ + INSTALL_PREFIX=$(ResultDirectory) \ + $(OpenSSLInstallTargets) + +clean: + $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir) + $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory) + $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory) + +include post.mak
diff --git a/openssl.patches/openssl-50.description b/openssl.patches/openssl-50.description new file mode 100644 index 0000000..da8e579 --- /dev/null +++ b/openssl.patches/openssl-50.description
@@ -0,0 +1,3 @@ +This patch ensures that shared libraries are, at minimum, user writable +so that they may be successfully stripped when generating file system +and installation images.
diff --git a/openssl.patches/openssl-50.patch b/openssl.patches/openssl-50.patch new file mode 100644 index 0000000..653d97f --- /dev/null +++ b/openssl.patches/openssl-50.patch
@@ -0,0 +1,11 @@ +--- a/Makefile.org 2010-01-27 08:06:36.000000000 -0800 ++++ b/Makefile.org 2010-09-03 14:47:59.000000000 -0700 +@@ -527,7 +527,7 @@ + ( echo installing $$i; \ + if [ "$(PLATFORM)" != "Cygwin" ]; then \ + cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ +- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ ++ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \ + else \ + c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
diff --git a/openssl.patches/openssl-51.description b/openssl.patches/openssl-51.description new file mode 100644 index 0000000..7988986 --- /dev/null +++ b/openssl.patches/openssl-51.description
@@ -0,0 +1 @@ +This patch ensures that CHECKED_STACK_OF can successfully work with C++ classes that employs cast operators.
diff --git a/openssl.patches/openssl-51.patch b/openssl.patches/openssl-51.patch new file mode 100644 index 0000000..cf1d2ab --- /dev/null +++ b/openssl.patches/openssl-51.patch
@@ -0,0 +1,11 @@ +--- a/crypto/stack/safestack.h 2011-08-17 15:39:52.853888167 -0700 ++++ b/crypto/stack/safestack.h 2011-08-17 15:40:20.181928142 -0700 +@@ -68,7 +68,7 @@ + */ + + #define CHECKED_STACK_OF(type, p) \ +- ((_STACK*) (1 ? p : (STACK_OF(type)*)0)) ++ ((_STACK*) (1 ? (STACK_OF(type)*)p : (STACK_OF(type)*)0)) + + #define CHECKED_SK_FREE_FUNC(type, p) \ + ((void (*)(void *)) ((1 ? p : (void (*)(type *))0)))
diff --git a/openssl.patches/openssl-52.description b/openssl.patches/openssl-52.description new file mode 100644 index 0000000..fef070e --- /dev/null +++ b/openssl.patches/openssl-52.description
@@ -0,0 +1,2 @@ +This patch adds a make target for installing libcrypt.a only. +
diff --git a/openssl.patches/openssl-52.patch b/openssl.patches/openssl-52.patch new file mode 100644 index 0000000..e5cd9e4 --- /dev/null +++ b/openssl.patches/openssl-52.patch
@@ -0,0 +1,24 @@ +*** a/Makefile.org 2012-04-22 06:25:19.000000000 -0700 +--- b/Makefile.org 2013-02-22 13:03:54.141463945 -0800 +*************** dist_pem_h: +*** 539,544 **** +--- 539,556 ---- + + install: all install_docs install_sw + ++ install_crypto: ++ @$(PERL) $(TOP)/util/mkdir-p.pl \ ++ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ ++ $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl ++ @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\ ++ do \ ++ (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ ++ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ ++ done; ++ @set -e; dir=crypto; target=install; $(BUILD_ONE_CMD) ++ @cp libcrypto.a $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/libcrypto.a ++ + install_sw: + @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ +
diff --git a/openssl.patches/openssl-53.description b/openssl.patches/openssl-53.description new file mode 100644 index 0000000..3ba91a0 --- /dev/null +++ b/openssl.patches/openssl-53.description
@@ -0,0 +1,2 @@ +Adds a Configure option (no-dir) to disable the use of OS directory enumeration functions (e.g. readdir). +
diff --git a/openssl.patches/openssl-53.patch b/openssl.patches/openssl-53.patch new file mode 100644 index 0000000..5aa59ca --- /dev/null +++ b/openssl.patches/openssl-53.patch
@@ -0,0 +1,24 @@ +diff -c -r a/crypto/o_dir.c b/crypto/o_dir.c +*** a/crypto/o_dir.c 2004-08-03 12:15:21.000000000 -0700 +--- b/crypto/o_dir.c 2013-02-23 17:46:40.894634000 -0800 +*************** +*** 70,76 **** + #include "o_dir.h" + + #define LPDIR_H +! #if defined OPENSSL_SYS_UNIX || defined DJGPP + #include "LPdir_unix.c" + #elif defined OPENSSL_SYS_VMS + #include "LPdir_vms.c" +--- 70,79 ---- + #include "o_dir.h" + + #define LPDIR_H +! +! #ifdef OPENSSL_NO_DIR +! #include "LPdir_nyi.c" +! #elif defined OPENSSL_SYS_UNIX || defined DJGPP + #include "LPdir_unix.c" + #elif defined OPENSSL_SYS_VMS + #include "LPdir_vms.c" +
diff --git a/openssl.patches/openssl-54.description b/openssl.patches/openssl-54.description new file mode 100644 index 0000000..dff038a --- /dev/null +++ b/openssl.patches/openssl-54.description
@@ -0,0 +1,2 @@ +Adds a Configure option (no-egd) to disable use of the Linux entropy gathering daemon. +
diff --git a/openssl.patches/openssl-54.patch b/openssl.patches/openssl-54.patch new file mode 100644 index 0000000..2b43d47 --- /dev/null +++ b/openssl.patches/openssl-54.patch
@@ -0,0 +1,21 @@ +diff -c -r a/crypto/rand/rand_egd.c b/crypto/rand/rand_egd.c +*** a/crypto/rand/rand_egd.c 2008-11-11 23:27:36.000000000 -0800 +--- b/crypto/rand/rand_egd.c 2013-02-23 18:29:48.894897294 -0800 +*************** +*** 95,101 **** + * RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255. + */ + +! #if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_VOS) || defined(OPENSSL_SYS_BEOS) + int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes) + { + return(-1); +--- 95,101 ---- + * RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255. + */ + +! #if defined(OPENSSL_NO_EGD) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_VOS) || defined(OPENSSL_SYS_BEOS) + int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes) + { + return(-1); +
diff --git a/openssl.patches/openssl-55.description b/openssl.patches/openssl-55.description new file mode 100644 index 0000000..e5c6a1f --- /dev/null +++ b/openssl.patches/openssl-55.description
@@ -0,0 +1,3 @@ +Adds a Configure option (no-tty) to disable use of tty devices in libcrypto. Note that this +patch will result in undefined references at link time if certain features of the +library are used.
diff --git a/openssl.patches/openssl-55.patch b/openssl.patches/openssl-55.patch new file mode 100644 index 0000000..de45f18 --- /dev/null +++ b/openssl.patches/openssl-55.patch
@@ -0,0 +1,34 @@ +diff -c -r a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c +*** a/crypto/ui/ui_openssl.c 2012-02-11 15:38:49.000000000 -0800 +--- b/crypto/ui/ui_openssl.c 2013-02-23 18:54:56.395504635 -0800 +*************** +*** 114,122 **** + * [including the GNU Public Licence.] + */ + +- + #include <openssl/e_os2.h> + + /* need for #define _POSIX_C_SOURCE arises whenever you pass -ansi to gcc + * [maybe others?], because it masks interfaces not discussed in standard, + * sigaction and fileno included. -pedantic would be more appropriate for +--- 114,123 ---- + * [including the GNU Public Licence.] + */ + + #include <openssl/e_os2.h> + ++ #ifndef OPENSSL_NO_TTY ++ + /* need for #define _POSIX_C_SOURCE arises whenever you pass -ansi to gcc + * [maybe others?], because it masks interfaces not discussed in standard, + * sigaction and fileno included. -pedantic would be more appropriate for +*************** +*** 710,712 **** +--- 711,715 ---- + return(strlen(buf)); + } + #endif ++ ++ #endif // OPENSSL_NO_TTY +
diff --git a/openssl.patches/openssl-56.description b/openssl.patches/openssl-56.description new file mode 100644 index 0000000..bf9728a --- /dev/null +++ b/openssl.patches/openssl-56.description
@@ -0,0 +1,2 @@ +Ensure that standard socket header files are NOT included when OPENSSL_NO_SOCK is defined. +
diff --git a/openssl.patches/openssl-56.patch b/openssl.patches/openssl-56.patch new file mode 100644 index 0000000..275d42d --- /dev/null +++ b/openssl.patches/openssl-56.patch
@@ -0,0 +1,21 @@ +diff -c -r a/e_os.h b/e_os.h +*** a/e_os.h 2011-10-10 15:33:48.000000000 -0700 +--- b/e_os.h 2013-02-23 18:25:38.895052771 -0800 +*************** +*** 477,483 **** + + /*************/ + +! #ifdef USE_SOCKETS + # if defined(WINDOWS) || defined(MSDOS) + /* windows world */ + +--- 477,483 ---- + + /*************/ + +! #if defined(USE_SOCKETS) && !defined(OPENSSL_NO_SOCK) + # if defined(WINDOWS) || defined(MSDOS) + /* windows world */ + +
diff --git a/openssl.patches/openssl-57.description b/openssl.patches/openssl-57.description new file mode 100644 index 0000000..de7dffc --- /dev/null +++ b/openssl.patches/openssl-57.description
@@ -0,0 +1,3 @@ +Adds compilation switch (NO_MEMORY_H) to prefer use of string.h over memory.h for +systems that don't provide the latter. +
diff --git a/openssl.patches/openssl-57.patch b/openssl.patches/openssl-57.patch new file mode 100644 index 0000000..a469fdf --- /dev/null +++ b/openssl.patches/openssl-57.patch
@@ -0,0 +1,35 @@ +diff -c -r orig/openssl-1.0.1c/crypto/jpake/jpake.c openssl-1.0.1c/crypto/jpake/jpake.c +*** orig/openssl-1.0.1c/crypto/jpake/jpake.c 2010-11-29 10:33:28.000000000 -0800 +--- openssl-1.0.1c/crypto/jpake/jpake.c 2013-02-23 20:52:19.894730916 -0800 +*************** +*** 3,9 **** +--- 3,13 ---- + #include <openssl/crypto.h> + #include <openssl/sha.h> + #include <openssl/err.h> ++ #if !defined(NO_MEMORY_H) + #include <memory.h> ++ #else ++ #include <string.h> ++ #endif + + /* + * In the definition, (xa, xb, xc, xd) are Alice's (x1, x2, x3, x4) or +diff -c -r orig/openssl-1.0.1c/crypto/pkcs7/bio_pk7.c openssl-1.0.1c/crypto/pkcs7/bio_pk7.c +*** orig/openssl-1.0.1c/crypto/pkcs7/bio_pk7.c 2008-03-12 14:14:25.000000000 -0700 +--- openssl-1.0.1c/crypto/pkcs7/bio_pk7.c 2013-02-23 20:53:07.895715316 -0800 +*************** +*** 57,63 **** +--- 57,67 ---- + #include <openssl/bio.h> + + #ifndef OPENSSL_SYSNAME_NETWARE ++ #if !defined(NO_MEMORY_H) + #include <memory.h> ++ #else ++ #include <string.h> ++ #endif + #endif + #include <stdio.h> + +
diff --git a/openssl.tar.gz b/openssl.tar.gz new file mode 100644 index 0000000..5d25c9c --- /dev/null +++ b/openssl.tar.gz Binary files differ
diff --git a/openssl.url b/openssl.url new file mode 100644 index 0000000..e8461e7 --- /dev/null +++ b/openssl.url
@@ -0,0 +1 @@ +http://www.openssl.org/source/openssl-1.0.1c.tar.gz
diff --git a/openssl.version b/openssl.version new file mode 100644 index 0000000..de8e3e9 --- /dev/null +++ b/openssl.version
@@ -0,0 +1 @@ +1.0.1c