diff options
Diffstat (limited to 'ports/openssl')
| -rw-r--r-- | ports/openssl/CMakeLists.txt | 48 | ||||
| -rw-r--r-- | ports/openssl/CONTROL | 5 | ||||
| -rw-r--r-- | ports/openssl/ConfigureIncludeQuotesFix.patch | 13 | ||||
| -rw-r--r-- | ports/openssl/PerlScriptSpaceInPathFixes.patch | 35 | ||||
| -rw-r--r-- | ports/openssl/STRINGIFYPatch.patch | 23 | ||||
| -rw-r--r-- | ports/openssl/make-openssl.bat | 10 | ||||
| -rw-r--r-- | ports/openssl/portfile-uwp.cmake | 109 | ||||
| -rw-r--r-- | ports/openssl/portfile.cmake | 39 |
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 |
