diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/krb5 | |
Diffstat (limited to 'vcpkg/ports/krb5')
| -rw-r--r-- | vcpkg/ports/krb5/define-des-zeroblock.diff | 13 | ||||
| -rw-r--r-- | vcpkg/ports/krb5/portfile.cmake | 122 | ||||
| -rw-r--r-- | vcpkg/ports/krb5/static-deps.diff | 23 | ||||
| -rw-r--r-- | vcpkg/ports/krb5/vcpkg.json | 20 | ||||
| -rw-r--r-- | vcpkg/ports/krb5/windows_pc_files/krb5-gssapi.pc.in | 10 | ||||
| -rw-r--r-- | vcpkg/ports/krb5/windows_pc_files/krb5.pc.in | 14 | ||||
| -rw-r--r-- | vcpkg/ports/krb5/windows_pc_files/mit-krb5-gssapi.pc.in | 11 | ||||
| -rw-r--r-- | vcpkg/ports/krb5/windows_pc_files/mit-krb5.pc.in | 15 |
8 files changed, 228 insertions, 0 deletions
diff --git a/vcpkg/ports/krb5/define-des-zeroblock.diff b/vcpkg/ports/krb5/define-des-zeroblock.diff new file mode 100644 index 0000000..7658a1e --- /dev/null +++ b/vcpkg/ports/krb5/define-des-zeroblock.diff @@ -0,0 +1,13 @@ +diff --git a/src/lib/crypto/builtin/des/f_aead.c b/src/lib/crypto/builtin/des/f_aead.c +index f887735..26a5474 100644 +--- a/src/lib/crypto/builtin/des/f_aead.c ++++ b/src/lib/crypto/builtin/des/f_aead.c +@@ -28,7 +28,7 @@ + + #ifdef K5_BUILTIN_DES + +-const mit_des_cblock mit_des_zeroblock /* = all zero */; ++const mit_des_cblock mit_des_zeroblock = { 0, 0, 0 }; + + void + krb5int_des_cbc_encrypt(krb5_crypto_iov *data, unsigned long num_data, diff --git a/vcpkg/ports/krb5/portfile.cmake b/vcpkg/ports/krb5/portfile.cmake new file mode 100644 index 0000000..d87fc27 --- /dev/null +++ b/vcpkg/ports/krb5/portfile.cmake @@ -0,0 +1,122 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO krb5/krb5 + REF krb5-${VERSION}-final + SHA512 4abfc37679483727fdad827afcf53729e6316febdf985a70133ee1dabaf8516e7fa771c1cfbc8fd557fed868c50f16b26bb59939ec091c2dd7019d0b2234ef1f + HEAD_REF master + PATCHES + static-deps.diff + define-des-zeroblock.diff +) + +if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + vcpkg_acquire_msys(MSYS_ROOT PACKAGES) + vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") + vcpkg_find_acquire_program(PERL) + get_filename_component(PERL_PATH "${PERL}" DIRECTORY) + vcpkg_add_to_path("${PERL_PATH}") + vcpkg_build_nmake( + SOURCE_PATH "${SOURCE_PATH}/src" + PROJECT_NAME Makefile.in + TARGET prep-windows + OPTIONS_RELEASE + "NODEBUG=1" + ) + file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") + file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug") + vcpkg_install_nmake( + SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}" + PROJECT_NAME "Makefile" + OPTIONS + "NO_LEASH=1" + OPTIONS_RELEASE + "KRB_INSTALL_DIR=${CURRENT_PACKAGES_DIR}" + "NODEBUG=1" + OPTIONS_DEBUG + "KRB_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/debug" + ) + set(tools + ccapiserver + gss-client + gss-server + kcpytkt + kdeltkt + kdestroy + kfwcpcc + kinit + klist + kpasswd + kswitch + kvno + mit2ms + ms2mit + ) + vcpkg_copy_tools( + TOOL_NAMES ${tools} + DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin" + AUTO_CLEAN + ) + foreach(tool_name ${tools}) + list(APPEND debug_tools_to_remove "${CURRENT_PACKAGES_DIR}/debug/bin/${tool_name}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + endforeach() + file(REMOVE ${debug_tools_to_remove}) + + set(WINDOWS_PC_FILES + krb5-gssapi + krb5 + mit-krb5-gssapi + mit-krb5 + ) + + foreach (PC_FILE ${WINDOWS_PC_FILES}) + configure_file("${CURRENT_PORT_DIR}/windows_pc_files/${PC_FILE}.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${PC_FILE}.pc" @ONLY) + endforeach() + + if(NOT DEFINED VCPKG_BUILD_TYPE) + foreach (PC_FILE ${WINDOWS_PC_FILES}) + configure_file("${CURRENT_PORT_DIR}/windows_pc_files/${PC_FILE}.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${PC_FILE}.pc" @ONLY) + endforeach() + endif() +else() + vcpkg_configure_make( + SOURCE_PATH "${SOURCE_PATH}/src" + AUTOCONFIG + OPTIONS + --disable-nls + --with-tls-impl=no + "CFLAGS=-fcommon \$CFLAGS" + ) + vcpkg_install_make() + + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/krb5-config" "${CURRENT_INSTALLED_DIR}" [[$(cd "$(dirname "$0")/../../.."; pwd -P)]]) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/compile_et" "${CURRENT_INSTALLED_DIR}" [[$(cd "$(dirname "$0")/../../.."; pwd -P)]]) + if(NOT VCPKG_BUILD_TYPE) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/krb5-config" "${CURRENT_INSTALLED_DIR}" [[$(cd "$(dirname "$0")/../../../.."; pwd -P)]]) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/compile_et" "${CURRENT_INSTALLED_DIR}" [[$(cd "$(dirname "$0")/../../../.."; pwd -P)]]) + endif() +endif() + +vcpkg_fixup_pkgconfig() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/var") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/krb5/cat1") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/krb5/cat5") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/krb5/cat7") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/krb5/cat8") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/var") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/lib/krb5/" + "${CURRENT_PACKAGES_DIR}/lib/krb5/" + ) +endif() + +if(VCPKG_BUILD_TYPE) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") +endif() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/NOTICE") diff --git a/vcpkg/ports/krb5/static-deps.diff b/vcpkg/ports/krb5/static-deps.diff new file mode 100644 index 0000000..8baab4d --- /dev/null +++ b/vcpkg/ports/krb5/static-deps.diff @@ -0,0 +1,23 @@ +diff --git a/src/build-tools/mit-krb5.pc.in b/src/build-tools/mit-krb5.pc.in +index fdc5577..0cea3ec 100644 +--- a/src/build-tools/mit-krb5.pc.in ++++ b/src/build-tools/mit-krb5.pc.in +@@ -12,4 +12,4 @@ Description: An implementation of Kerberos network authentication + Version: @KRB5_VERSION@ + Cflags: -I${includedir} + Libs: -L${libdir} -lkrb5 -lk5crypto @COM_ERR_LIB@ +-Libs.private: -lkrb5support ++Libs.private: -lkrb5support @MACOS_FRAMEWORK@ @LIBS@ @DL_LIB@ @PTHREAD_CFLAGS@ +diff --git a/src/config/pre.in b/src/config/pre.in +index 1197c1f..8bba26a 100644 +--- a/src/config/pre.in ++++ b/src/config/pre.in +@@ -377,7 +377,7 @@ SUPPORT_LIB = -l$(SUPPORT_LIBNAME) + # HESIOD_LIBS is -lhesiod... + HESIOD_LIBS = @HESIOD_LIBS@ + +-KRB5_BASE_LIBS = $(KRB5_LIB) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB) $(LIBS) $(DL_LIB) ++KRB5_BASE_LIBS = $(KRB5_LIB) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB) @MACOS_FRAMEWORK@ $(LIBS) $(DL_LIB) + KDB5_LIBS = $(KDB5_LIB) $(GSSRPC_LIBS) + GSS_LIBS = $(GSS_KRB5_LIB) + # needs fixing if ever used on macOS! diff --git a/vcpkg/ports/krb5/vcpkg.json b/vcpkg/ports/krb5/vcpkg.json new file mode 100644 index 0000000..d88b937 --- /dev/null +++ b/vcpkg/ports/krb5/vcpkg.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", + "name": "krb5", + "version": "1.22.1", + "description": [ + "Kerberos is a network authentication protocol.", + "It is designed to provide strong authentication for client/server applications by using secret-key cryptography.", + "A free implementation of this protocol is available from the Massachusetts Institute of Technology.", + "Kerberos is available in many commercial products as well." + ], + "homepage": "https://web.mit.edu/kerberos/", + "license": "MIT", + "supports": "linux | osx | (x64 & windows & !static & !uwp)", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + } + ] +} diff --git a/vcpkg/ports/krb5/windows_pc_files/krb5-gssapi.pc.in b/vcpkg/ports/krb5/windows_pc_files/krb5-gssapi.pc.in new file mode 100644 index 0000000..90875b5 --- /dev/null +++ b/vcpkg/ports/krb5/windows_pc_files/krb5-gssapi.pc.in @@ -0,0 +1,10 @@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include +vendor=MIT + +Name: krb5-gssapi +Description: Kerberos implementation of the GSSAPI +Version: @VERSION@ +Requires: mit-krb5-gssapi diff --git a/vcpkg/ports/krb5/windows_pc_files/krb5.pc.in b/vcpkg/ports/krb5/windows_pc_files/krb5.pc.in new file mode 100644 index 0000000..8822afc --- /dev/null +++ b/vcpkg/ports/krb5/windows_pc_files/krb5.pc.in @@ -0,0 +1,14 @@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include +vendor=MIT + +defccname=FILE:/tmp/krb5cc_%{uid} +defktname=FILE:/etc/krb5.keytab +defcktname=FILE:${prefix}/var/krb5/user/%{euid}/client.keytab + +Name: krb5 +Description: An implementation of Kerberos network authentication +Version: @VERSION@ +Requires: mit-krb5 diff --git a/vcpkg/ports/krb5/windows_pc_files/mit-krb5-gssapi.pc.in b/vcpkg/ports/krb5/windows_pc_files/mit-krb5-gssapi.pc.in new file mode 100644 index 0000000..0e5dfc8 --- /dev/null +++ b/vcpkg/ports/krb5/windows_pc_files/mit-krb5-gssapi.pc.in @@ -0,0 +1,11 @@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: mit-krb5-gssapi +Description: Kerberos implementation of the GSSAPI +Version: @VERSION@ +Requires.private: mit-krb5 +Cflags: -I${includedir} +Libs: -L${libdir} -lgssapi64 diff --git a/vcpkg/ports/krb5/windows_pc_files/mit-krb5.pc.in b/vcpkg/ports/krb5/windows_pc_files/mit-krb5.pc.in new file mode 100644 index 0000000..eb48aa7 --- /dev/null +++ b/vcpkg/ports/krb5/windows_pc_files/mit-krb5.pc.in @@ -0,0 +1,15 @@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +defccname=FILE:/tmp/krb5cc_%{uid} +defktname=FILE:/etc/krb5.keytab +defcktname=FILE:${prefix}/var/krb5/user/%{euid}/client.keytab + +Name: mit-krb5 +Description: An implementation of Kerberos network authentication +Version: @VERSION@ +Cflags: -I${includedir} +Libs: -L${libdir} -lkrb5_64 -lkrbcc64 -lxpprof64 -lkfwlogon -lcomerr64 -lk5sprt64 +Libs.private: -lk5sprt64 |