aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/krb5
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/krb5
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/krb5')
-rw-r--r--vcpkg/ports/krb5/define-des-zeroblock.diff13
-rw-r--r--vcpkg/ports/krb5/portfile.cmake122
-rw-r--r--vcpkg/ports/krb5/static-deps.diff23
-rw-r--r--vcpkg/ports/krb5/vcpkg.json20
-rw-r--r--vcpkg/ports/krb5/windows_pc_files/krb5-gssapi.pc.in10
-rw-r--r--vcpkg/ports/krb5/windows_pc_files/krb5.pc.in14
-rw-r--r--vcpkg/ports/krb5/windows_pc_files/mit-krb5-gssapi.pc.in11
-rw-r--r--vcpkg/ports/krb5/windows_pc_files/mit-krb5.pc.in15
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