aboutsummaryrefslogtreecommitdiff
path: root/ports/openssl
diff options
context:
space:
mode:
Diffstat (limited to 'ports/openssl')
-rw-r--r--ports/openssl/CMakeLists.txt48
-rw-r--r--ports/openssl/CONTROL5
-rw-r--r--ports/openssl/ConfigureIncludeQuotesFix.patch13
-rw-r--r--ports/openssl/PerlScriptSpaceInPathFixes.patch35
-rw-r--r--ports/openssl/STRINGIFYPatch.patch23
-rw-r--r--ports/openssl/make-openssl.bat10
-rw-r--r--ports/openssl/portfile-uwp.cmake109
-rw-r--r--ports/openssl/portfile.cmake39
8 files changed, 249 insertions, 33 deletions
diff --git a/ports/openssl/CMakeLists.txt b/ports/openssl/CMakeLists.txt
index ff034bb9a..a82f14d60 100644
--- a/ports/openssl/CMakeLists.txt
+++ b/ports/openssl/CMakeLists.txt
@@ -2,25 +2,31 @@ cmake_minimum_required(VERSION 3.0)
project(openssl NONE)
include(vcpkg_execute_required_process)
+include(vcpkg_apply_patches)
+set(SOURCE_PATH ${CMAKE_CURRENT_BINARY_DIR}/openssl-${OPENSSL_VERSION})
-find_package(ZLIB REQUIRED)
find_program(PERL perl)
find_program(NMAKE nmake)
message(STATUS "Extracting source ${OPENSSL_SOURCE_ARCHIVE}")
vcpkg_execute_required_process(
- COMMAND ${CMAKE_COMMAND} -E tar xjf ${OPENSSL_SOURCE_ARCHIVE}
+ COMMAND ${CMAKE_COMMAND} -E tar xjf "${OPENSSL_SOURCE_ARCHIVE}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
LOGNAME extract-${TARGET_TRIPLET}-rel
)
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/PerlScriptSpaceInPathFixes.patch
+ ${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch
+ ${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch
+)
+
set(CONFIGURE_COMMAND ${PERL} Configure
- no-idea
- no-mdc2
- no-rc5
+ enable-static-engine
+ enable-capieng
no-asm
- zlib-dynamic
- --with-zlib-include=${ZLIB_INCLUDE_DIRS}
+ no-ssl2
)
if(TARGET_TRIPLET MATCHES "x86-windows")
@@ -35,18 +41,18 @@ endif()
if(CMAKE_BUILD_TYPE MATCHES "Debug")
set(OPENSSLDIR ${CURRENT_PACKAGES_DIR}/debug)
- list(GET ZLIB_LIBRARIES -1 ZLIB_DEBUG_LIBRARY)
list(APPEND CONFIGURE_COMMAND
debug-${OPENSSL_ARCH}
- --openssldir=${OPENSSLDIR}
- --with-zlib-lib=${ZLIB_DEBUG_LIBRARY}
+ "--prefix=${OPENSSLDIR}"
+ "--openssldir=${OPENSSLDIR}"
+
)
else()
set(OPENSSLDIR ${CURRENT_PACKAGES_DIR})
list(APPEND CONFIGURE_COMMAND
${OPENSSL_ARCH}
- --openssldir=${OPENSSLDIR}
- --with-zlib-lib=${ZLIB_LIBRARIES}
+ "--prefix=${OPENSSLDIR}"
+ "--openssldir=${OPENSSLDIR}"
)
endif()
@@ -61,8 +67,16 @@ vcpkg_execute_required_process(
LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}
)
-add_custom_command(OUTPUT ${OPENSSLDIR}/bin/ssleay32.dll ${OPENSSLDIR}/bin/libeay32.dll
- COMMAND ${NMAKE} -f ms\\ntdll.mak install
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/openssl-${VERSION}
-)
-add_custom_target(openssl ALL DEPENDS ${OPENSSLDIR}/bin/ssleay32.dll ${OPENSSLDIR}/bin/libeay32.dll) \ No newline at end of file
+if(BUILD_SHARED_LIBS)
+ add_custom_command(OUTPUT ${OPENSSLDIR}/bin/ssleay32.dll ${OPENSSLDIR}/bin/libeay32.dll
+ COMMAND ${NMAKE} -f ms\\ntdll.mak install
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/openssl-${VERSION}
+ )
+ add_custom_target(openssl ALL DEPENDS ${OPENSSLDIR}/bin/ssleay32.dll ${OPENSSLDIR}/bin/libeay32.dll)
+else()
+ add_custom_command(OUTPUT ${OPENSSLDIR}/bin/ssleay32.lib ${OPENSSLDIR}/bin/libeay32.lib
+ COMMAND ${NMAKE} -f ms\\nt.mak install
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/openssl-${VERSION}
+ )
+ add_custom_target(openssl ALL DEPENDS ${OPENSSLDIR}/bin/ssleay32.lib ${OPENSSLDIR}/bin/libeay32.lib)
+endif()
diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL
index cc539a03e..6fb520404 100644
--- a/ports/openssl/CONTROL
+++ b/ports/openssl/CONTROL
@@ -1,4 +1,3 @@
Source: openssl
-Version: 1.0.2h
-Build-Depends: zlib
-Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library. \ No newline at end of file
+Version: 1.0.2k-2
+Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
diff --git a/ports/openssl/ConfigureIncludeQuotesFix.patch b/ports/openssl/ConfigureIncludeQuotesFix.patch
new file mode 100644
index 000000000..1689ec4e0
--- /dev/null
+++ b/ports/openssl/ConfigureIncludeQuotesFix.patch
@@ -0,0 +1,13 @@
+diff --git a/Configure b/Configure
+index c98107a..77ad9d3 100644
+--- a/Configure
++++ b/Configure
+@@ -970,7 +970,7 @@ PROCESS_ARGS:
+ }
+ elsif (/^--with-zlib-include=(.*)$/)
+ {
+- $withargs{"zlib-include"}="-I$1";
++ $withargs{"zlib-include"}="-I\"$1\"";
+ }
+ elsif (/^--with-fipsdir=(.*)$/)
+ {
diff --git a/ports/openssl/PerlScriptSpaceInPathFixes.patch b/ports/openssl/PerlScriptSpaceInPathFixes.patch
new file mode 100644
index 000000000..b3a52fc97
--- /dev/null
+++ b/ports/openssl/PerlScriptSpaceInPathFixes.patch
@@ -0,0 +1,35 @@
+diff --git a/util/copy.pl b/util/copy.pl
+index eba6d58..5d971a2 100644
+--- a/util/copy.pl
++++ b/util/copy.pl
+@@ -19,7 +19,7 @@ foreach $arg (@ARGV) {
+ next;
+ }
+ $arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob...
+- foreach (glob $arg)
++ foreach (glob "\"$arg\"")
+ {
+ push @filelist, $_;
+ }
+diff --git a/util/mk1mf.pl b/util/mk1mf.pl
+index 128a405..fd853da 100644
+--- a/util/mk1mf.pl
++++ b/util/mk1mf.pl
+@@ -427,7 +427,7 @@ EOF
+ {
+ $extra_install .= <<"EOF"
+ \$(MKDIR) \"\$(INSTALLTOP)${o}lib${o}engines\"
+- \$(CP) \"\$(E_SHLIB)\" \"\$(INSTALLTOP)${o}lib${o}engines\"
++ \$(CP) \$(E_SHLIB) \"\$(INSTALLTOP)${o}lib${o}engines\"
+ EOF
+ }
+ }
+@@ -607,7 +607,7 @@ install: all
+ \$(MKDIR) \"\$(INSTALLTOP)${o}include${o}openssl\"
+ \$(MKDIR) \"\$(INSTALLTOP)${o}lib\"
+ \$(CP) \"\$(INCO_D)${o}*.\[ch\]\" \"\$(INSTALLTOP)${o}include${o}openssl\"
+- \$(CP) \"\$(BIN_D)$o\$(E_EXE)$exep \$(INSTALLTOP)${o}bin\"
++ \$(CP) \"\$(BIN_D)$o\$(E_EXE)$exep\" \"\$(INSTALLTOP)${o}bin\"
+ \$(MKDIR) \"\$(OPENSSLDIR)\"
+ \$(CP) apps${o}openssl.cnf \"\$(OPENSSLDIR)\"
+ $extra_install
diff --git a/ports/openssl/STRINGIFYPatch.patch b/ports/openssl/STRINGIFYPatch.patch
new file mode 100644
index 000000000..dd8f9c297
--- /dev/null
+++ b/ports/openssl/STRINGIFYPatch.patch
@@ -0,0 +1,23 @@
+diff --git a/crypto/cversion.c b/crypto/cversion.c
+index bfff699..17b7912 100644
+--- a/crypto/cversion.c
++++ b/crypto/cversion.c
+@@ -56,6 +56,9 @@
+ * [including the GNU Public Licence.]
+ */
+
++#define STRINGIFY2(x) #x
++#define STRINGIFY(x) STRINGIFY2(x)
++
+ #include "cryptlib.h"
+
+ #ifndef NO_WINDOWS_BRAINDEATH
+@@ -79,7 +82,7 @@ const char *SSLeay_version(int t)
+ }
+ if (t == SSLEAY_CFLAGS) {
+ #ifdef CFLAGS
+- return (CFLAGS);
++ return STRINGIFY(CFLAGS);
+ #else
+ return ("compiler: information not available");
+ #endif
diff --git a/ports/openssl/make-openssl.bat b/ports/openssl/make-openssl.bat
new file mode 100644
index 000000000..4c038094d
--- /dev/null
+++ b/ports/openssl/make-openssl.bat
@@ -0,0 +1,10 @@
+set build=%1
+
+perl Configure no-asm no-hw no-dso VC-WINUNIVERSAL
+
+call ms\do_winuniversal.bat
+
+call ms\setVSvars.bat universal10.0%build%
+
+nmake -f ms\ntdll.mak
+
diff --git a/ports/openssl/portfile-uwp.cmake b/ports/openssl/portfile-uwp.cmake
new file mode 100644
index 000000000..289c549fc
--- /dev/null
+++ b/ports/openssl/portfile-uwp.cmake
@@ -0,0 +1,109 @@
+# Common Ambient Variables:
+# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
+# TARGET_TRIPLET is the current triplet (x86-windows, etc)
+# PORT is the current port name (zlib, etc)
+# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
+# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
+#
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "Static building not supported yet")
+endif()
+
+if (NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "This portfile only supports UWP")
+endif()
+
+if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(UWP_PLATFORM "arm")
+elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(UWP_PLATFORM "x64")
+elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(UWP_PLATFORM "Win32")
+else ()
+ message(FATAL_ERROR "Unsupported architecture")
+endif()
+
+include(vcpkg_common_functions)
+
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-OpenSSL_1_0_2k_WinRT)
+
+vcpkg_find_acquire_program(PERL)
+get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
+set(ENV{PATH} "${PERL_EXE_PATH};$ENV{PATH}")
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/Microsoft/openssl/archive/OpenSSL_1_0_2k_WinRT.zip"
+ FILENAME "openssl-microsoft-1.0.2k_WinRT.zip"
+ SHA512 afb434ef69c399f690f7ce723fabb228f77a12428f19062c5df3b8b841a2a7881c01150fdcfd2fab23867e3963292874a08ad227b37d168907b507fb1d7fede7
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+
+file(REMOVE_RECURSE ${SOURCE_PATH}/tmp32dll)
+file(REMOVE_RECURSE ${SOURCE_PATH}/out32dll)
+file(REMOVE_RECURSE ${SOURCE_PATH}/inc32dll)
+
+file(COPY
+${CMAKE_CURRENT_LIST_DIR}/make-openssl.bat
+DESTINATION ${SOURCE_PATH})
+
+message(STATUS "Build ${TARGET_TRIPLET}")
+
+vcpkg_execute_required_process(
+ COMMAND ${SOURCE_PATH}/make-openssl.bat ${UWP_PLATFORM}
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME make-openssl-${TARGET_TRIPLET}
+)
+
+
+message(STATUS "Build ${TARGET_TRIPLET} done")
+
+
+
+file(
+ COPY ${SOURCE_PATH}/inc32/openssl
+ DESTINATION ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+
+
+
+file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/libeay32.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+file(INSTALL ${SOURCE_PATH}/out32dll/ssleay32.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+
+
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl RENAME copyright)
diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake
index 9f45f0ce4..b13258119 100644
--- a/ports/openssl/portfile.cmake
+++ b/ports/openssl/portfile.cmake
@@ -1,5 +1,11 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ include(${CMAKE_CURRENT_LIST_DIR}/portfile-uwp.cmake)
+ return()
+endif()
+
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-1.0.2h)
+set(OPENSSL_VERSION 1.0.2k)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION})
vcpkg_find_acquire_program(PERL)
find_program(NMAKE nmake)
@@ -7,12 +13,17 @@ get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
set(ENV{PATH} "${PERL_EXE_PATH};$ENV{PATH}")
vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE
- URLS "https://www.openssl.org/source/openssl-1.0.2h.tar.gz"
- FILENAME "openssl-1.0.2h.tar.gz"
- SHA512 780601f6f3f32f42b6d7bbc4c593db39a3575f9db80294a10a68b2b0bb79448d9bd529ca700b9977354cbdfc65887c76af0aa7b90d3ee421f74ab53e6f15c303
+ URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"
+ FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
+ SHA512 0d314b42352f4b1df2c40ca1094abc7e9ad684c5c35ea997efdd58204c70f22a1abcb17291820f0fff3769620a4e06906034203d31eb1a4d540df3e0db294016
)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY
+${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt
+${CMAKE_CURRENT_LIST_DIR}/PerlScriptSpaceInPathFixes.patch
+${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch
+${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch
+DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
@@ -24,7 +35,7 @@ vcpkg_configure_cmake(
-DOPENSSL_SOURCE_ARCHIVE=${OPENSSL_SOURCE_ARCHIVE}
-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}
-DTRIPLET_SYSTEM_ARCH=${TRIPLET_SYSTEM_ARCH}
- -DVERSION=1.0.2h
+ -DVERSION=${OPENSSL_VERSION}
-DTARGET_TRIPLET=${TARGET_TRIPLET}
)
@@ -51,11 +62,13 @@ file(REMOVE
${CURRENT_PACKAGES_DIR}/debug/openssl.cnf
${CURRENT_PACKAGES_DIR}/openssl.cnf
)
-if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/engines)
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/engines ${CURRENT_PACKAGES_DIR}/bin/engines)
-endif()
-if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/engines)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/engines ${CURRENT_PACKAGES_DIR}/debug/bin/engines)
-endif()
+
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl RENAME copyright)
-vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ # They should be empty, only the exes deleted above were in these directories
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/)
+endif()
+
+vcpkg_copy_pdbs() \ No newline at end of file