From cce957a5b6ed11b0fa35a97e0e638ea00f9921ef Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Fri, 22 Sep 2023 18:03:24 +0200 Subject: [PATCH] vcpkg-ports/pkcs11-helper: Backport MinGW series from master to release/2.6 Contains the following commits: - Make compatible with mingw build (commit 17746e53f65249b42017256056c5415099df288d) - Convert CONTROL to vcpkg.json (commit a2160d3e42a1eff59aee3d984fd3354907f4379f) - reference upstream PRs in patches (commit 9577ffe92f033d8452cff0a3dbdfdc943655c5b8) - rename patches to make file names shorter (commit 0c25a5462e945f537d1836b47a5f147a2132875c) Change-Id: Ie61fed8758e44576939a8bb0a04bc95245a3ce18 Signed-off-by: Frank Lichtenheld Acked-by: Heiko Hund Message-Id: <20230922160324.166907-1-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg27083.html Signed-off-by: Gert Doering --- .github/workflows/build.yaml | 1 + contrib/vcpkg-ports/pkcs11-helper/CONTROL | 4 -- .../Fix-build-with-disable-shared.patch | 48 +++++++++++++++++++ ...config-w32-vc.h.in-indicate-OpenSSL.patch} | 0 ...make-compatibility-with-vcpkg-nmake.patch} | 0 .../pkcs11-helper-001-RFC7512.patch | 2 + ...cs11-helper-002-dynamic_loader_flags.patch | 2 + .../vcpkg-ports/pkcs11-helper/portfile.cmake | 37 ++++++++++---- contrib/vcpkg-ports/pkcs11-helper/vcpkg.json | 7 +++ contrib/vcpkg-triplets/x64-mingw-ovpn.cmake | 8 ++++ contrib/vcpkg-triplets/x86-mingw-ovpn.cmake | 8 ++++ 11 files changed, 104 insertions(+), 13 deletions(-) delete mode 100644 contrib/vcpkg-ports/pkcs11-helper/CONTROL create mode 100644 contrib/vcpkg-ports/pkcs11-helper/Fix-build-with-disable-shared.patch rename contrib/vcpkg-ports/pkcs11-helper/{0002-config-w32-vc.h.in-indicate-OpenSSL.patch => config-w32-vc.h.in-indicate-OpenSSL.patch} (100%) rename contrib/vcpkg-ports/pkcs11-helper/{0001-nmake-compatibility-with-vcpkg-nmake.patch => nmake-compatibility-with-vcpkg-nmake.patch} (100%) create mode 100644 contrib/vcpkg-ports/pkcs11-helper/vcpkg.json create mode 100644 contrib/vcpkg-triplets/x64-mingw-ovpn.cmake create mode 100644 contrib/vcpkg-triplets/x86-mingw-ovpn.cmake diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d152505f1c3..34ade61961d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -441,6 +441,7 @@ jobs: uses: lukka/run-vcpkg@v10 with: vcpkgGitCommitId: 'd10d511f25620ca0f315cd83dcef6485efc63010' + vcpkgJsonGlob: '**/openvpn/vcpkg.json' appendedCacheKey: '${{matrix.triplet}}' - name: Run MSBuild consuming vcpkg.json diff --git a/contrib/vcpkg-ports/pkcs11-helper/CONTROL b/contrib/vcpkg-ports/pkcs11-helper/CONTROL deleted file mode 100644 index 1ead697ed11..00000000000 --- a/contrib/vcpkg-ports/pkcs11-helper/CONTROL +++ /dev/null @@ -1,4 +0,0 @@ -Source: pkcs11-helper -Version: 1.29-1 -Homepage: https://github.com/OpenSC/pkcs11-helper -Description: pkcs11-helper is a library that simplifies the interaction with PKCS#11 providers for end-user applications. diff --git a/contrib/vcpkg-ports/pkcs11-helper/Fix-build-with-disable-shared.patch b/contrib/vcpkg-ports/pkcs11-helper/Fix-build-with-disable-shared.patch new file mode 100644 index 00000000000..16fa7042831 --- /dev/null +++ b/contrib/vcpkg-ports/pkcs11-helper/Fix-build-with-disable-shared.patch @@ -0,0 +1,48 @@ +From 7171396a151a2edb3474c7a321b7ae4ff7e171fc Mon Sep 17 00:00:00 2001 +From: Frank Lichtenheld +Date: Wed, 29 Mar 2023 12:44:44 +0200 +Subject: [PATCH] Allow the build to succeed if configured with + --disable-shared + +Do not try to install a file that does not exist. + +Signed-off-by: Frank Lichtenheld +--- + configure.ac | 1 + + lib/Makefile.am | 2 ++ + 2 files changed, 3 insertions(+) + +upstream PR: https://github.com/OpenSC/pkcs11-helper/pull/62 + +diff --git a/configure.ac b/configure.ac +index a7e9760..f154ae3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -581,6 +581,7 @@ AC_SUBST([LIBPKCS11_HELPER_LT_AGE]) + AC_SUBST([LIBPKCS11_HELPER_LT_OLDEST]) + AC_SUBST([WIN_LIBPREFIX]) + AC_SUBST([PKCS11H_FEATURES]) ++AM_CONDITIONAL([ENABLE_SHARED], [test "${enable_shared}" = "yes" ]) + AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"]) + AM_CONDITIONAL([CYGWIN], [test "${CYGWIN}" = "yes"]) + AM_CONDITIONAL([ENABLE_DOC], [test "${enable_doc}" = "yes"]) +diff --git a/lib/Makefile.am b/lib/Makefile.am +index 31b928f..3cba32f 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -128,10 +128,12 @@ if ENABLE_PKCS11H_TOKEN + endif + + if WIN32 ++if ENABLE_SHARED + mylibdir=$(libdir) + mylib_DATA=.libs/@WIN_LIBPREFIX@pkcs11-helper-@LIBPKCS11_HELPER_LT_OLDEST@.dll.def + .libs/@WIN_LIBPREFIX@pkcs11-helper-@LIBPKCS11_HELPER_LT_OLDEST@.dll.def: libpkcs11-helper.la + endif ++endif + + RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) +-- +2.34.1 + diff --git a/contrib/vcpkg-ports/pkcs11-helper/0002-config-w32-vc.h.in-indicate-OpenSSL.patch b/contrib/vcpkg-ports/pkcs11-helper/config-w32-vc.h.in-indicate-OpenSSL.patch similarity index 100% rename from contrib/vcpkg-ports/pkcs11-helper/0002-config-w32-vc.h.in-indicate-OpenSSL.patch rename to contrib/vcpkg-ports/pkcs11-helper/config-w32-vc.h.in-indicate-OpenSSL.patch diff --git a/contrib/vcpkg-ports/pkcs11-helper/0001-nmake-compatibility-with-vcpkg-nmake.patch b/contrib/vcpkg-ports/pkcs11-helper/nmake-compatibility-with-vcpkg-nmake.patch similarity index 100% rename from contrib/vcpkg-ports/pkcs11-helper/0001-nmake-compatibility-with-vcpkg-nmake.patch rename to contrib/vcpkg-ports/pkcs11-helper/nmake-compatibility-with-vcpkg-nmake.patch diff --git a/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-001-RFC7512.patch b/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-001-RFC7512.patch index 84fba0809a1..56e3486e1de 100644 --- a/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-001-RFC7512.patch +++ b/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-001-RFC7512.patch @@ -1,3 +1,5 @@ +upstream PR: https://github.com/OpenSC/pkcs11-helper/pull/4 + commit 90590b02085edc3830bdfe0942a46c4e7bf3f1ab (HEAD -> master) Author: David Woodhouse Date: Thu Apr 30 14:58:24 2015 +0100 diff --git a/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-002-dynamic_loader_flags.patch b/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-002-dynamic_loader_flags.patch index 325dea8b8ef..6d674581bda 100644 --- a/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-002-dynamic_loader_flags.patch +++ b/contrib/vcpkg-ports/pkcs11-helper/pkcs11-helper-002-dynamic_loader_flags.patch @@ -11,6 +11,8 @@ set original values as defaults, use verbatim (user-supplied) value lib/pkcs11h-core.c | 13 +++++++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) +upstream PR: https://github.com/OpenSC/pkcs11-helper/pull/59 + diff --git a/include/pkcs11-helper-1.0/pkcs11h-core.h b/include/pkcs11-helper-1.0/pkcs11h-core.h index 9028c277..56f87718 100644 --- a/include/pkcs11-helper-1.0/pkcs11h-core.h diff --git a/contrib/vcpkg-ports/pkcs11-helper/portfile.cmake b/contrib/vcpkg-ports/pkcs11-helper/portfile.cmake index 1c6cedac0a6..47919bc61b7 100644 --- a/contrib/vcpkg-ports/pkcs11-helper/portfile.cmake +++ b/contrib/vcpkg-ports/pkcs11-helper/portfile.cmake @@ -11,26 +11,45 @@ vcpkg_extract_source_archive_ex( ARCHIVE ${ARCHIVE} REF ${VERSION} PATCHES - 0001-nmake-compatibility-with-vcpkg-nmake.patch - 0002-config-w32-vc.h.in-indicate-OpenSSL.patch + nmake-compatibility-with-vcpkg-nmake.patch + config-w32-vc.h.in-indicate-OpenSSL.patch + Fix-build-with-disable-shared.patch pkcs11-helper-001-RFC7512.patch pkcs11-helper-002-dynamic_loader_flags.patch ) -vcpkg_build_nmake( +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + vcpkg_build_nmake( SOURCE_PATH ${SOURCE_PATH} PROJECT_SUBPATH lib PROJECT_NAME Makefile.w32-vc OPTIONS OPENSSL=1 OPENSSL_HOME=${CURRENT_PACKAGES_DIR}/../openssl_${TARGET_TRIPLET} -) + ) + + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/pkcs11-helper.dll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/pkcs11-helper.dll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/libpkcs11-helper-1.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/libpkcs11-helper-1.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + + file(INSTALL ${SOURCE_PATH}/include/pkcs11-helper-1.0 DESTINATION ${CURRENT_PACKAGES_DIR}/include/) + +else() + find_program(man_to_html man2html REQUIRED) + + vcpkg_configure_make( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS --disable-crypto-engine-gnutls --disable-crypto-engine-nss + --disable-crypto-engine-polarssl --disable-crypto-engine-mbedtls + ) + vcpkg_install_make() + vcpkg_fixup_pkgconfig() -file(INSTALL ${SOURCE_PATH}/include/pkcs11-helper-1.0 DESTINATION ${CURRENT_PACKAGES_DIR}/include/) -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/pkcs11-helper.dll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/pkcs11-helper.dll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +endif() -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/libpkcs11-helper-1.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/libpkcs11-helper-1.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) +vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/contrib/vcpkg-ports/pkcs11-helper/vcpkg.json b/contrib/vcpkg-ports/pkcs11-helper/vcpkg.json new file mode 100644 index 00000000000..12f918b786d --- /dev/null +++ b/contrib/vcpkg-ports/pkcs11-helper/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "pkcs11-helper", + "version": "1.29.0", + "description": "pkcs11-helper is a library that simplifies the interaction with PKCS#11 providers for end-user applications.", + "homepage": "https://github.com/OpenSC/pkcs11-helper", + "license": "BSD-3-Clause OR GPL-2.0-only" +} diff --git a/contrib/vcpkg-triplets/x64-mingw-ovpn.cmake b/contrib/vcpkg-triplets/x64-mingw-ovpn.cmake new file mode 100644 index 00000000000..3676cdb0e1e --- /dev/null +++ b/contrib/vcpkg-triplets/x64-mingw-ovpn.cmake @@ -0,0 +1,8 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_ENV_PASSTHROUGH PATH) + +set(VCPKG_CMAKE_SYSTEM_NAME MinGW) + +set(VCPKG_MAKE_BUILD_TRIPLET --host=x86_64-w64-mingw32) diff --git a/contrib/vcpkg-triplets/x86-mingw-ovpn.cmake b/contrib/vcpkg-triplets/x86-mingw-ovpn.cmake new file mode 100644 index 00000000000..9e65f67f77e --- /dev/null +++ b/contrib/vcpkg-triplets/x86-mingw-ovpn.cmake @@ -0,0 +1,8 @@ +set(VCPKG_TARGET_ARCHITECTURE x86) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) +set(VCPKG_ENV_PASSTHROUGH PATH) + +set(VCPKG_CMAKE_SYSTEM_NAME MinGW) + +set(VCPKG_MAKE_BUILD_TRIPLET --host=i686-w64-mingw32)