diff --git a/ports/libgwenhywfar/control-openssl.diff b/ports/libgwenhywfar/control-openssl.diff new file mode 100644 index 00000000000000..191293c0defa9d --- /dev/null +++ b/ports/libgwenhywfar/control-openssl.diff @@ -0,0 +1,20 @@ +diff --git a/configure.ac b/configure.ac +index 4e43f5c..7ce9511 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -709,7 +709,14 @@ PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.9.8]) + # + # check for OpenSSL + # +-PKG_CHECK_MODULES([OPENSSL], [openssl], [ssl_available=yes], [ssl_available=no]) ++AC_ARG_WITH(openssl, [ --with-openssl=yes enable OpenSSL in gct-tool], ++ [with_openssl="$withval"], ++ [with_openssl="no"]) ++if test "x$with_openssl" = "xyes"; then ++ PKG_CHECK_MODULES([OPENSSL], [openssl], [ssl_available=yes], [AC_MSG_ERROR([unable to find OpenSSL (pkg-config)])]) ++else ++ ssl_available=no ++fi + if test "$ssl_available" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_OPENSSL, 1, [Defined if OpenSSL is available]) + fi diff --git a/ports/libgwenhywfar/pkgconfig.diff b/ports/libgwenhywfar/pkgconfig.diff new file mode 100644 index 00000000000000..c07b5558740f42 --- /dev/null +++ b/ports/libgwenhywfar/pkgconfig.diff @@ -0,0 +1,11 @@ +diff --git a/gwenhywfar.pc.in b/gwenhywfar.pc.in +index d4c61d8..72a4ef4 100644 +--- a/gwenhywfar.pc.in ++++ b/gwenhywfar.pc.in +@@ -31,3 +31,6 @@ Version: @VERSION@ + Libs: @gwenhywfar_ldflags@ @gwenhywfar_libs@ + Cflags: -I@gwenhywfar_headerdir@ + ++Libs.private: @all_libraries@ ++@WITH_LIBXML2_CODE_FALSE@Requires.private: libgcrypt, gnutls ++@WITH_LIBXML2_CODE_TRUE@Requires.private: libgcrypt, gnutls, libxml-2.0 diff --git a/ports/libgwenhywfar/portfile.cmake b/ports/libgwenhywfar/portfile.cmake index a0ffa609e2ab14..a824c30637fc3f 100644 --- a/ports/libgwenhywfar/portfile.cmake +++ b/ports/libgwenhywfar/portfile.cmake @@ -1,13 +1,24 @@ vcpkg_download_distfile(ARCHIVE - URLS "https://www.aquamaniac.de/rdm/attachments/download/364/gwenhywfar-${VERSION}.tar.gz" + URLS "https://www.aquamaniac.de/rdm/attachments/download/529/gwenhywfar-5.12.0.tar.gz" FILENAME "gwenhywfar-${VERSION}.tar.gz" - SHA512 9875d677f49fc0a46f371fd1954d15d99c7d5994e90b16f1be7a5b8a1cbcd74ae9733e4541afd6d8251a2ba1a0a37c28e0f248952b7c917313fbf5b38b1d8d11 + SHA512 0075eb626f0022ecd4ffdd59de7f0817d2def685e1d2cfbca9a32faa4b8d4d213bea631f24c5385da0b8c7743fd6d1887a46f08afa371195d911409ec7655791 +) + +vcpkg_download_distfile(osx_patch + URLS "https://www.aquamaniac.de/rdm/projects/gwenhywfar/repository/revisions/55d4b7b526df30e4003c92e2f504f480c01021f0/diff?format=diff" + FILENAME "gwenhywfar-5.12.0-55d4b7b.diff" + SHA512 87fa9ff3e9027c5a6839f800990b420a824efbd115ed67eeaef3c909b14c59c0b9bae41c539d400166862c0353ad730313ee4f9366928c333883d41429912731 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" + PATCHES + control-openssl.diff + pkgconfig.diff + static-link-order.diff + ${osx_patch} ) vcpkg_list(SET options) @@ -24,50 +35,54 @@ endif() list(JOIN FEATURES_GUI " " GUIS) vcpkg_list(APPEND options "--with-guis=${GUIS}") -if(VCPKG_TARGET_IS_OSX) - vcpkg_list(APPEND options "LDFLAGS=\$LDFLAGS -framework CoreFoundation -framework Security") +if ("openssl" IN_LIST FEATURES) + vcpkg_list(APPEND options "--with-openssl=yes") endif() -vcpkg_configure_make( +set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/libgpg-error/aclocal/\" -I \"${CURRENT_INSTALLED_DIR}/share/libgcrypt/aclocal/\" -I \"${CURRENT_HOST_INSTALLED_DIR}/share/gettext/aclocal/\"") +set(ENV{AUTOPOINT} true) +vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" + AUTORECONF OPTIONS --disable-binreloc + --disable-network-checks + --disable-nls ${options} OPTIONS_RELEASE "--with-qt5-qmake=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin/qmake" "--with-qt5-moc=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin/moc" "--with-qt5-uic=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin/uic" - "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config" - "gpg_error_config_args=gpg-error" + "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config gpg-error" + "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config" "LIBGCRYPT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgcrypt/bin/libgcrypt-config" OPTIONS_DEBUG "--with-qt5-qmake=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/debug/bin/qmake" "--with-qt5-moc=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/debug/bin/moc" "--with-qt5-uic=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/debug/bin/uic" - "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config" - "gpg_error_config_args=gpg-error" + "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config gpg-error" + "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config" "LIBGCRYPT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgcrypt/debug/bin/libgcrypt-config" ) -vcpkg_install_make() +vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() -string(REGEX MATCH "^([0-9]*[.][0-9]*)" MAJOR_MINOR "${VERSION}") -foreach(GUI IN LISTS FEATURES_GUI) - vcpkg_cmake_config_fixup(PACKAGE_NAME gwengui-${GUI} CONFIG_PATH lib/cmake/gwengui-${GUI}-${MAJOR_MINOR} DO_NOT_DELETE_PARENT_CONFIG_PATH) -endforeach() -vcpkg_cmake_config_fixup(PACKAGE_NAME gwenhywfar CONFIG_PATH lib/cmake/gwenhywfar-${MAJOR_MINOR}) - -if ("tools" IN_LIST FEATURES) - vcpkg_copy_tools(SEARCH_DIR "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin" TOOL_NAMES gct-tool gsa mklistdoc typemaker typemaker2 xmlmerge AUTO_CLEAN) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + string(REGEX MATCH "^([0-9]*[.][0-9]*)" MAJOR_MINOR "${VERSION}") + foreach(GUI IN LISTS FEATURES_GUI) + vcpkg_cmake_config_fixup(PACKAGE_NAME gwengui-${GUI} CONFIG_PATH lib/cmake/gwengui-${GUI}-${MAJOR_MINOR} DO_NOT_DELETE_PARENT_CONFIG_PATH) + endforeach() + vcpkg_cmake_config_fixup(PACKAGE_NAME gwenhywfar CONFIG_PATH lib/cmake/gwenhywfar-${MAJOR_MINOR}) +else() + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") endif() -# the `dir` variable is not used in the script -vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/libgwenhywfar/bin/gwenhywfar-config" "dir=\"${CURRENT_INSTALLED_DIR}\"" "") -if(NOT VCPKG_BUILD_TYPE) - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/libgwenhywfar/debug/bin/gwenhywfar-config" "dir=\"${CURRENT_INSTALLED_DIR}/debug\"" "") -endif() +vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/gwenhywfar-config" [[dir="[^"]*"]] [[dir=""]] REGEX) # unused abs path +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/ports/libgwenhywfar/static-link-order.diff b/ports/libgwenhywfar/static-link-order.diff new file mode 100644 index 00000000000000..2cd0b46420d049 --- /dev/null +++ b/ports/libgwenhywfar/static-link-order.diff @@ -0,0 +1,17 @@ +diff --git a/tools/gwenbuild/Makefile.am b/tools/gwenbuild/Makefile.am +index 14aa0e2..eb60988 100644 +--- a/tools/gwenbuild/Makefile.am ++++ b/tools/gwenbuild/Makefile.am +@@ -28,11 +28,11 @@ noinst_HEADERS=\ + + + gwbuild_LDADD = \ +- $(top_builddir)/src/$(gwenhywfar_internal_libname) \ + types/libgwb_types.la \ + parser/libgwb_parser.la \ + tools/libgwb_tools.la \ + builders/libgwb_builders.la \ + buildctx/libgwb_build.la \ ++ $(top_builddir)/src/$(gwenhywfar_internal_libname) \ + $(PROG_LIBRARIES) + diff --git a/ports/libgwenhywfar/vcpkg.json b/ports/libgwenhywfar/vcpkg.json index 01962b31181bde..88bfb4ad469a55 100644 --- a/ports/libgwenhywfar/vcpkg.json +++ b/ports/libgwenhywfar/vcpkg.json @@ -1,21 +1,23 @@ { "name": "libgwenhywfar", - "version-semver": "5.6.0", - "port-version": 5, + "version-semver": "5.12.0", "description": "A helper library for networking and security applications and libraries", "homepage": "https://www.aquamaniac.de/rdm/", - "supports": "!windows & !(osx & arm64)", + "supports": "!windows | mingw", "dependencies": [ - "libgcrypt", { - "name": "libgnutls", - "features": [ - "openssl" - ] + "name": "gettext", + "host": true }, + "libgcrypt", + "libgnutls", { "name": "vcpkg-cmake-config", "host": true + }, + { + "name": "vcpkg-make", + "host": true } ], "default-features": [ @@ -24,7 +26,7 @@ ], "features": { "cpp": { - "description": "C++ bindings" + "description": "A C++ binding for the C module GWEN_GUI" }, "libxml2": { "description": "Enables libXML2-depending functionality", @@ -35,17 +37,22 @@ } ] }, + "openssl": { + "description": "OpenSSL support in gct-tool", + "supports": "!arm64", + "dependencies": [ + "openssl" + ] + }, "qt5": { "description": "Qt bindings", + "supports": "!(osx & static)", "dependencies": [ { "name": "qt5-base", "default-features": false } ] - }, - "tools": { - "description": "Some helper tools provided by Gwenhywfar and useful for applications using it" } } } diff --git a/scripts/test_ports/vcpkg-ci-libgwenhywfar/portfile.cmake b/scripts/test_ports/vcpkg-ci-libgwenhywfar/portfile.cmake new file mode 100644 index 00000000000000..dd2570612035c8 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libgwenhywfar/portfile.cmake @@ -0,0 +1,10 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +vcpkg_find_acquire_program(PKGCONFIG) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" + OPTIONS + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" +) +vcpkg_cmake_build() diff --git a/scripts/test_ports/vcpkg-ci-libgwenhywfar/project/CMakeLists.txt b/scripts/test_ports/vcpkg-ci-libgwenhywfar/project/CMakeLists.txt new file mode 100644 index 00000000000000..7e04f3561e60a5 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libgwenhywfar/project/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.10) +project(libgwenhywfar-test C) + +find_package(PkgConfig REQUIRED) + +block() + pkg_check_modules(gwenhywfar IMPORTED_TARGET REQUIRED gwenhywfar) + + add_executable(libgwenhywfar_pkgconfig main.c) + target_link_libraries(libgwenhywfar_pkgconfig PkgConfig::gwenhywfar) +endblock() diff --git a/scripts/test_ports/vcpkg-ci-libgwenhywfar/project/main.c b/scripts/test_ports/vcpkg-ci-libgwenhywfar/project/main.c new file mode 100644 index 00000000000000..6a24a6a28aa006 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libgwenhywfar/project/main.c @@ -0,0 +1,8 @@ +#include /* based on gwenhywfar.pc */ + +int main() +{ + int result = GWEN_Init(); + GWEN_Fini(); + return result; +} diff --git a/scripts/test_ports/vcpkg-ci-libgwenhywfar/vcpkg.json b/scripts/test_ports/vcpkg-ci-libgwenhywfar/vcpkg.json new file mode 100644 index 00000000000000..3f9f827b083bc9 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-libgwenhywfar/vcpkg.json @@ -0,0 +1,49 @@ +{ + "name": "vcpkg-ci-libgwenhywfar", + "version-string": "ci", + "description": "Validates libgwenhywfar", + "dependencies": [ + { + "name": "libgwenhywfar", + "default-features": false + }, + { + "name": "vcpkg-cmake", + "host": true + } + ], + "default-features": [ + { + "name": "openssl", + "platform": "!arm64" + }, + { + "name": "qt5", + "platform": "!(osx & static)" + } + ], + "features": { + "openssl": { + "description": "Use openssl", + "dependencies": [ + { + "name": "libgwenhywfar", + "features": [ + "openssl" + ] + } + ] + }, + "qt5": { + "description": "Install qt5 binding", + "dependencies": [ + { + "name": "libgwenhywfar", + "features": [ + "qt5" + ] + } + ] + } + } +} diff --git a/versions/baseline.json b/versions/baseline.json index b975d993ce5078..0d70e6c479af96 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4641,8 +4641,8 @@ "port-version": 0 }, "libgwenhywfar": { - "baseline": "5.6.0", - "port-version": 5 + "baseline": "5.12.0", + "port-version": 0 }, "libgxps": { "baseline": "0.3.2", diff --git a/versions/l-/libgwenhywfar.json b/versions/l-/libgwenhywfar.json index 2bd0cd1d58c40e..294b4c8605a7b9 100644 --- a/versions/l-/libgwenhywfar.json +++ b/versions/l-/libgwenhywfar.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "35c7f16cf8e9c02e65d9ce898690ef2b8b0691dd", + "version-semver": "5.12.0", + "port-version": 0 + }, { "git-tree": "8b4376fdc006cc932f5bc581b32479ebd273b275", "version-semver": "5.6.0",