Project import
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..991e407
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,142 @@
+#
+# 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.
+#
+
+.NOTPARALLEL:
+
+
+include pre.mak
+
+PackageName := openssl
+
+PackageExtension := tar.gz
+PackageSeparator := -
+
+PackagePatchArgs := -p1
+
+PackageArchive := $(PackageName)$(PackageSeparator)$(PackageVersion).$(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)
+
+OpenSSLPackageOptions += experimental-jpake $(call ToolGenerateDefineArgument,OPENSSL_EXPERIMENTAL_JPAKE)
+
+OpenSSLTargets = all
+OpenSSLInstallTargets = install
+
+# If the feature BUILD_FEATURE_OPENSSL_FORCE32_LONG is set, we're forcing OpenSSL to use a 32bit long
+# We typically set this when building the simulator because our PASE code expects BN_BYTES == 4
+# We force 32bit by setting the TargetConfig to gcc
+# Couple unfortunate side effects:
+# 1) Assembly is not supported
+# 2) This TargetConfig forces us to build as a static library (OpenSSL limitation)
+# 3) We have to turn off compression. Zlib causes problems for other packages like curl
+# whose configure script can't seem to realize that it needs to bring in zlib as well
+# (might be a pkgconfig issue with openssl?)
+# 4) We have to compile with -fPIC since other dylibs (curl) link openssl
+ifeq ($(BUILD_FEATURE_OPENSSL_FORCE32_LONG),1)
+OpenSSLPackageOptions += no-asm no-zlib
+OpenSSLCCFlags = -fPIC
+OpenSSLTargetConfig = gcc
+else
+OpenSSLPackageOptions += shared zlib
+endif
+
+SOURCEDIRS = $(PackageSourceDir)
+$(PackageSourceDir)_RULE_TARGET = $(BuildDirectory)/configure
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(PackageSourceDir)/LICENSE: $(BuildDirectory)/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.
+
+$(BuildDirectory)/source: | $(PackageSourceDir)
+ $(Verbose)touch $@
+
+# Patch the sources, if necessary.
+
+$(BuildDirectory)/patch: $(BuildDirectory)/source
+ $(Verbose)touch $@
+
+# Configure the source for building.
+
+$(BuildDirectory)/configure: $(BuildDirectory)/source | $(PackageSourceDir) $(BuildDirectory)
+ $(Verbose)$(call create-links,$(CURDIR)/$(PackageSourceDir),$(BuildDirectory)) ; \
+ cd $(BuildDirectory) && \
+ INSTALL="$(INSTALL) $(INSTALLFLAG)" \
+ ./Configure \
+ --prefix=/usr \
+ --openssldir=/usr/lib/ssl \
+ $(call ToolGenerateIncludeArgument,$(ZlibIncDir)) \
+ $(call ToolGenerateLibraryPathArgument,$(ZlibLibDir)) \
+ $(OpenSSLPackageOptions) \
+ $(OpenSSLCCFlags) \
+ $(OpenSSLTargetConfig)
+ $(Verbose)touch $@
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+$(BuildDirectory)/build: $(BuildDirectory)/configure | $(BuildDirectory)
+ $(Verbose)unset MAKEFLAGS && \
+ $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) \
+ CC="$(CC)" AR="$(AR) $(ARFLAGS)" RANLIB=$(RANLIB) \
+ INSTALL_PREFIX=$(ResultDirectory) \
+ $(OpenSSLTargets)
+ $(Verbose)touch $@
+
+# Stage the build to a temporary installation area.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+$(BuildDirectory)/stage: $(BuildDirectory)/build | $(ResultDirectory)
+ $(Verbose)unset MAKEFLAGS && \
+ $(MAKE) -C $(BuildDirectory) \
+ CC="$(CC)" AR="$(AR) $(ARFLAGS)" RANLIB=$(RANLIB) \
+ INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+ INSTALL_PREFIX=$(ResultDirectory) \
+ $(OpenSSLInstallTargets)
+ $(Verbose)touch $@
+
+.PHONY: stage
+stage: $(BuildDirectory)/stage
+
+clean:
+ $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+ $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+ $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/openssl-1.0.2h.tar.gz b/openssl-1.0.2h.tar.gz
new file mode 100644
index 0000000..7eb74e7
--- /dev/null
+++ b/openssl-1.0.2h.tar.gz
Binary files differ
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..a0c4a69
--- /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-54.description b/openssl.patches/openssl-54.description
new file mode 100644
index 0000000..964c33a
--- /dev/null
+++ b/openssl.patches/openssl-54.description
@@ -0,0 +1,2 @@
+Fix openssl parallel build problem. Applying the fix provided here:
+http://rt.openssl.org/Ticket/Display.html?id=3780&user=guest&pass=guest
diff --git a/openssl.patches/openssl-54.patch b/openssl.patches/openssl-54.patch
new file mode 100644
index 0000000..660d504
--- /dev/null
+++ b/openssl.patches/openssl-54.patch
@@ -0,0 +1,15 @@
+diff -Naur a/Makefile.org b/Makefile.org
+--- a/Makefile.org 2015-04-17 16:31:06.448921145 -0700
++++ b/Makefile.org 2015-04-20 13:48:08.654093777 -0700
+@@ -340,7 +340,10 @@
+ libs="$$libs -l$$i"; \
+ done
+
+-build-shared: do_$(SHLIB_TARGET) link-shared
++# The link target in Makefile.shared will create the symlink for us, so no need
++# to call link-shared directly. Doing so will cause races with two processes
++# trying to symlink the lib.
++build-shared: do_$(SHLIB_TARGET)
+
+ do_$(SHLIB_TARGET):
+ @ set -e; libs='-L. $(SHLIBDEPS)'; for i in $(SHLIBDIRS); do \
diff --git a/openssl.url b/openssl.url
new file mode 100644
index 0000000..942af52
--- /dev/null
+++ b/openssl.url
@@ -0,0 +1 @@
+https://www.openssl.org/source/openssl-1.0.2h.tar.gz
diff --git a/openssl.version b/openssl.version
new file mode 100644
index 0000000..d4479af
--- /dev/null
+++ b/openssl.version
@@ -0,0 +1 @@
+1.0.2h