aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libressl
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libressl
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/libressl')
-rw-r--r--vcpkg/ports/libressl/aarch64-windows.diff42
-rw-r--r--vcpkg/ports/libressl/pkgconfig.diff13
-rw-r--r--vcpkg/ports/libressl/portfile.cmake56
-rw-r--r--vcpkg/ports/libressl/vcpkg-cmake-wrapper.cmake.in75
-rw-r--r--vcpkg/ports/libressl/vcpkg.json26
5 files changed, 212 insertions, 0 deletions
diff --git a/vcpkg/ports/libressl/aarch64-windows.diff b/vcpkg/ports/libressl/aarch64-windows.diff
new file mode 100644
index 0000000..a1cbe9a
--- /dev/null
+++ b/vcpkg/ports/libressl/aarch64-windows.diff
@@ -0,0 +1,42 @@
+diff --git a/crypto/arch/aarch64/crypto_cpu_caps_windows.c b/crypto/arch/aarch64/crypto_cpu_caps_windows.c
+new file mode 100644
+index 0000000..e7cdded
+--- /dev/null
++++ b/crypto/arch/aarch64/crypto_cpu_caps_windows.c
+@@ -0,0 +1,36 @@
++/* $OpenBSD: crypto_cpu_caps.c,v 1.2 2024/11/12 13:52:31 jsing Exp $ */
++/*
++ * Copyright (c) 2025 Brent Cook <bcook@openbsd.org>
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#include <windows.h>
++
++#include "crypto_arch.h"
++
++/* Machine dependent CPU capabilities. */
++uint64_t crypto_cpu_caps_aarch64;
++
++void
++crypto_cpu_caps_init(void)
++{
++ crypto_cpu_caps_aarch64 = 0;
++
++ if (IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE)) {
++ crypto_cpu_caps_aarch64 |= CRYPTO_CPU_CAPS_AARCH64_AES;
++ crypto_cpu_caps_aarch64 |= CRYPTO_CPU_CAPS_AARCH64_PMULL;
++ crypto_cpu_caps_aarch64 |= CRYPTO_CPU_CAPS_AARCH64_SHA1;
++ crypto_cpu_caps_aarch64 |= CRYPTO_CPU_CAPS_AARCH64_SHA2;
++ }
++}
diff --git a/vcpkg/ports/libressl/pkgconfig.diff b/vcpkg/ports/libressl/pkgconfig.diff
new file mode 100644
index 0000000..ee08c9f
--- /dev/null
+++ b/vcpkg/ports/libressl/pkgconfig.diff
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9c3d0d4..cc0e904 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -512,7 +512,7 @@ if(ENABLE_LIBRESSL_INSTALL)
+ DESTINATION "${LIBRESSL_INSTALL_CMAKEDIR}"
+ )
+
+- if(NOT MSVC)
++ if(1)
+ # Create pkgconfig files.
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix \${prefix})
diff --git a/vcpkg/ports/libressl/portfile.cmake b/vcpkg/ports/libressl/portfile.cmake
new file mode 100644
index 0000000..73b7220
--- /dev/null
+++ b/vcpkg/ports/libressl/portfile.cmake
@@ -0,0 +1,56 @@
+if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h")
+ message(FATAL_ERROR "Can't build libressl if openssl is installed. Please remove openssl, and try install libressl again if you need it.")
+endif()
+
+vcpkg_download_distfile(
+ LIBRESSL_SOURCE_ARCHIVE
+ URLS "https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${PORT}-${VERSION}.tar.gz"
+ "https://github.com/libressl/portable/releases/download/v${VERSION}/${PORT}-${VERSION}.tar.gz"
+ FILENAME "${PORT}-${VERSION}.tar.gz"
+ SHA512 b06eccff7b332da38efbc5a039d8ee54bd26437f3d5957f59ac2d93b4464f181c9a665a2c957272be5d9f91f447720f6dfa29b4b72407279ac8a7722c322dac0
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${LIBRESSL_SOURCE_ARCHIVE}"
+ PATCHES
+ pkgconfig.diff
+ aarch64-windows.diff
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ "tools" LIBRESSL_APPS
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DLIBRESSL_INSTALL_CMAKEDIR=share/${PORT}
+ -DLIBRESSL_TESTS=OFF
+ OPTIONS_DEBUG
+ -DLIBRESSL_APPS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig()
+vcpkg_cmake_config_fixup()
+
+# libressl as openssl replacement
+configure_file("${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/openssl/vcpkg-cmake-wrapper.cmake" @ONLY)
+
+if("tools" IN_LIST FEATURES)
+ vcpkg_copy_tools(TOOL_NAMES ocspcheck openssl DESTINATION "${CURRENT_PACKAGES_DIR}/tools/openssl" AUTO_CLEAN)
+endif()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/etc/ssl/certs"
+ "${CURRENT_PACKAGES_DIR}/debug/etc/ssl/certs"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/share/man"
+)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/libressl/vcpkg-cmake-wrapper.cmake.in b/vcpkg/ports/libressl/vcpkg-cmake-wrapper.cmake.in
new file mode 100644
index 0000000..70be9cc
--- /dev/null
+++ b/vcpkg/ports/libressl/vcpkg-cmake-wrapper.cmake.in
@@ -0,0 +1,75 @@
+cmake_policy(PUSH)
+cmake_policy(SET CMP0012 NEW)
+cmake_policy(SET CMP0054 NEW)
+cmake_policy(SET CMP0057 NEW)
+
+# opensslv.h: OPENSSL_VERSION_NUMBER 0x20000000L, "These will never change"
+set(OPENSSL_VERSION_MAJOR 2)
+set(OPENSSL_VERSION_MINOR 0)
+set(OPENSSL_VERSION_FIX 0)
+
+if(OPENSSL_USE_STATIC_LIBS)
+ if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "dynamic")
+ message(WARNING "OPENSSL_USE_STATIC_LIBS is set, but vcpkg port openssl was built with dynamic linkage")
+ endif()
+ set(OPENSSL_USE_STATIC_LIBS_BAK "${OPENSSL_USE_STATIC_LIBS}")
+ set(OPENSSL_USE_STATIC_LIBS FALSE)
+endif()
+
+if(DEFINED OPENSSL_ROOT_DIR)
+ set(OPENSSL_ROOT_DIR_BAK "${OPENSSL_ROOT_DIR}")
+endif()
+get_filename_component(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY)
+get_filename_component(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR}" DIRECTORY)
+find_path(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h PATH "${OPENSSL_ROOT_DIR}/include" NO_DEFAULT_PATH)
+if(MSVC)
+ find_library(LIB_EAY_DEBUG NAMES crypto PATHS "${OPENSSL_ROOT_DIR}/debug/lib" NO_DEFAULT_PATH)
+ find_library(LIB_EAY_RELEASE NAMES crypto PATHS "${OPENSSL_ROOT_DIR}/lib" NO_DEFAULT_PATH)
+ find_library(SSL_EAY_DEBUG NAMES ssl PATHS "${OPENSSL_ROOT_DIR}/debug/lib" NO_DEFAULT_PATH)
+ find_library(SSL_EAY_RELEASE NAMES ssl PATHS "${OPENSSL_ROOT_DIR}/lib" NO_DEFAULT_PATH)
+elseif(WIN32)
+ find_library(LIB_EAY NAMES libcrypto crypto NAMES_PER_DIR)
+ find_library(SSL_EAY NAMES libssl ssl NAMES_PER_DIR)
+else()
+ find_library(OPENSSL_CRYPTO_LIBRARY NAMES crypto)
+ find_library(OPENSSL_SSL_LIBRARY NAMES ssl)
+endif()
+
+_find_package(${ARGS})
+
+unset(OPENSSL_ROOT_DIR)
+if(DEFINED OPENSSL_ROOT_DIR_BAK)
+ set(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR_BAK}")
+ unset(OPENSSL_ROOT_DIR_BAK)
+endif()
+
+if(DEFINED OPENSSL_USE_STATIC_LIBS_BAK)
+ set(OPENSSL_USE_STATIC_LIBS "${OPENSSL_USE_STATIC_LIBS_BAK}")
+ unset(OPENSSL_USE_STATIC_LIBS_BAK)
+endif()
+
+if(OPENSSL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
+ if(WIN32)
+ list(APPEND OPENSSL_LIBRARIES ws2_32 ntdll bcrypt)
+ if(TARGET OpenSSL::Crypto)
+ set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "ws2_32;ntdll;bcrypt")
+ endif()
+ if(TARGET OpenSSL::SSL)
+ set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "ws2_32;ntdll;bcrypt")
+ endif()
+ else()
+ if("REQUIRED" IN_LIST ARGS)
+ find_package(Threads REQUIRED)
+ else()
+ find_package(Threads)
+ endif()
+ list(APPEND OPENSSL_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+ if(TARGET OpenSSL::Crypto)
+ set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads")
+ endif()
+ if(TARGET OpenSSL::SSL)
+ set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads")
+ endif()
+ endif()
+endif()
+cmake_policy(POP)
diff --git a/vcpkg/ports/libressl/vcpkg.json b/vcpkg/ports/libressl/vcpkg.json
new file mode 100644
index 0000000..79e6c83
--- /dev/null
+++ b/vcpkg/ports/libressl/vcpkg.json
@@ -0,0 +1,26 @@
+{
+ "name": "libressl",
+ "version": "4.2.0",
+ "description": [
+ "LibreSSL is a TLS/crypto stack.",
+ "It was forked from OpenSSL in 2014 by the OpenBSD project, with goals of modernizing the codebase, improving security, and applying best practice development processes.",
+ "LibreSSL provides much of the OpenSSL 1.1 API. Incompatibilities between the projects exist and are unavoidable since both evolve with different goals and priorities."
+ ],
+ "homepage": "https://www.libressl.org",
+ "license": "ISC",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "tools": {
+ "description": "Build openssl and ocspcheck executables"
+ }
+ }
+}