diff --git a/cJSON-1.7.15.tar.gz b/cJSON-1.7.15.tar.gz deleted file mode 100644 index bc92023d9fcc421fd2c8fefd0cba740c6b25f8ab..0000000000000000000000000000000000000000 Binary files a/cJSON-1.7.15.tar.gz and /dev/null differ diff --git a/clonecode.sh b/clonecode.sh index 530963f6fa95aff170f81d1da5dfffae843e2766..212a5eefc446c143cdecf520e50622020c7dc9b6 100644 --- a/clonecode.sh +++ b/clonecode.sh @@ -1,9 +1,12 @@ -version=5.0.1 +current_dir=$(pwd) +cd $current_dir +version=6.0.0 server_repo=https://gitee.com/opengauss/openGauss-server.git plugin_repo=https://gitee.com/opengauss/Plugin.git -git clone $server_repo -b v5.0.1 openGauss-server-$version -git clone $plugin_repo -b v5.0.1 Plugin-$version +git clone $server_repo -b v6.0.0 openGauss-server-$version +git clone $plugin_repo -b v6.0.0 Plugin-$version cp -rf Plugin-$version/contrib/* openGauss-server-$version/contrib/ +rm -rf openGauss-server-$version/contrib/datavec cd openGauss-server-$version gitcommit=$(git log 2>/dev/null | grep commit | head -1 | awk '{print $2}' | cut -b 1-8) echo $gitcommit > ../COMMIT diff --git a/cmake_compile.patch b/cmake_compile.patch deleted file mode 100644 index 7db4e2b1b0be40b55e1f2043541ec43ffa77f630..0000000000000000000000000000000000000000 --- a/cmake_compile.patch +++ /dev/null @@ -1,335 +0,0 @@ -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/cmake/src/set_thirdparty_path.cmake openGauss-server-5.0.1-edit/cmake/src/set_thirdparty_path.cmake -*** openGauss-server-5.0.1/cmake/src/set_thirdparty_path.cmake 2024-05-07 20:16:38.988794109 +0800 ---- openGauss-server-5.0.1-edit/cmake/src/set_thirdparty_path.cmake 2024-05-09 14:15:39.965184154 +0800 -*************** -*** 158,163 **** ---- 158,165 ---- - - if(${WITH_OPENEULER_OS} STREQUAL "ON") - set(SECURE_C_CHECK boundscheck) -+ elseif(${ENABLE_OPENEULER_MAJOR} STREQUAL "ON") -+ set(SECURE_C_CHECK boundscheck) - else() - set(SECURE_C_CHECK securec) - endif() -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/CMakeLists.txt openGauss-server-5.0.1-edit/src/CMakeLists.txt -*** openGauss-server-5.0.1/src/CMakeLists.txt 2024-05-07 20:16:39.156795348 +0800 ---- openGauss-server-5.0.1-edit/src/CMakeLists.txt 2024-05-09 15:36:33.381689446 +0800 -*************** -*** 192,198 **** - endif() - - if("${ENABLE_MULTIPLE_NODES}" STREQUAL "OFF") -! install(DIRECTORY ${DCF_LIB_PATH} DESTINATION .) - endif() - if(${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF AND NOT ${ENABLE_LITE_MODE} STREQUAL ON) - if(EXISTS ${DMS_LIB_PATH}) ---- 192,200 ---- - endif() - - if("${ENABLE_MULTIPLE_NODES}" STREQUAL "OFF") -! if(EXISTS ${DCF_LIB_PATH}) -! install(DIRECTORY ${DCF_LIB_PATH} DESTINATION .) -! endif() - endif() - if(${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF AND NOT ${ENABLE_LITE_MODE} STREQUAL ON) - if(EXISTS ${DMS_LIB_PATH}) -*************** -*** 206,218 **** - endif() - endif() - -- install(DIRECTORY ${ZSTD_LIB_PATH} DESTINATION . PATTERN "*.a" EXCLUDE) - if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") - install(DIRECTORY ${LIBOBS_LIB_PATH} DESTINATION .) - install(DIRECTORY ${LIBOBS_INCLUDE_PATH} DESTINATION include/postgresql/server/access/obs) - endif() -! install(DIRECTORY ${CJSON_LIB_PATH} DESTINATION .) -! install(DIRECTORY ${CJSON_INCLUDE_PATH}/cjson DESTINATION include/postgresql/server) - if(NOT ${ENABLE_LITE_MODE} STREQUAL ON) - install(DIRECTORY ${ETCD_BIN_PATH} DESTINATION .) - install(DIRECTORY ${IPERF_LIB_PATH} DESTINATION .) ---- 208,218 ---- - endif() - endif() - - if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") - install(DIRECTORY ${LIBOBS_LIB_PATH} DESTINATION .) - install(DIRECTORY ${LIBOBS_INCLUDE_PATH} DESTINATION include/postgresql/server/access/obs) - endif() -! - if(NOT ${ENABLE_LITE_MODE} STREQUAL ON) - install(DIRECTORY ${ETCD_BIN_PATH} DESTINATION .) - install(DIRECTORY ${IPERF_LIB_PATH} DESTINATION .) -*************** -*** 222,242 **** - install(DIRECTORY ${KMC_LIB_PATH} DESTINATION .) - endif() - endif() -- install(DIRECTORY ${LIBCURL_LIB_PATH} DESTINATION .) - if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") - install(DIRECTORY ${KERBEROS_SBIN_PATH}/ DESTINATION bin) - install(DIRECTORY ${KERBEROS_BIN_PATH} DESTINATION .) - install(DIRECTORY ${KERBEROS_LIB_PATH} DESTINATION .) - endif() -! install(DIRECTORY ${LZ4_LIB_PATH} DESTINATION .) -! install(DIRECTORY ${LZ4_BIN_PATH} DESTINATION .) -! install(DIRECTORY ${LIBOPENSSL_BIN_PATH} DESTINATION .) -! install(DIRECTORY ${LIBOPENSSL_LIB_PATH} DESTINATION . PATTERN "*.a" EXCLUDE ) - install(DIRECTORY ${ZLIB_LIB_PATH} DESTINATION . FILES_MATCHING PATTERN "libz.*") - - list(FIND MACRO_OPTIONS "-D__USE_NUMA" RET_NUMA) - if(NOT ${RET_NUMA} EQUAL -1) -! install(DIRECTORY ${NUMA_LIB_PATH} DESTINATION .) - endif() - - if("${ENABLE_MOT}" STREQUAL "ON") ---- 222,240 ---- - install(DIRECTORY ${KMC_LIB_PATH} DESTINATION .) - endif() - endif() - if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") - install(DIRECTORY ${KERBEROS_SBIN_PATH}/ DESTINATION bin) - install(DIRECTORY ${KERBEROS_BIN_PATH} DESTINATION .) - install(DIRECTORY ${KERBEROS_LIB_PATH} DESTINATION .) - endif() -! - install(DIRECTORY ${ZLIB_LIB_PATH} DESTINATION . FILES_MATCHING PATTERN "libz.*") - - list(FIND MACRO_OPTIONS "-D__USE_NUMA" RET_NUMA) - if(NOT ${RET_NUMA} EQUAL -1) -! if(EXISTS ${NUMA_LIB_PATH}) -! install(DIRECTORY ${NUMA_LIB_PATH} DESTINATION .) -! endif() - endif() - - if("${ENABLE_MOT}" STREQUAL "ON") -*************** -*** 251,261 **** - install(CODE "message(\"-- Created symlink: libatomic.so.1 -> libatomic.so.1.2.0\")") - endif() - -- install(FILES ${SECUREDYNAMICLIB_HOME}/libsecurec.so DESTINATION lib) -- install(FILES ${BUILDTOOLS_PATH}/gcc7.3/gcc/lib64/libgcc_s.so.1 DESTINATION lib) -- install(FILES ${BUILDTOOLS_PATH}/gcc7.3/gcc/lib64/libgomp.so DESTINATION lib) -- install(FILES ${BUILDTOOLS_PATH}/gcc7.3/gcc/lib64/libgomp.so.1 DESTINATION lib) -- install(FILES ${BUILDTOOLS_PATH}/gcc7.3/gcc/lib64/libgomp.so.1.0.0 DESTINATION lib) - install(FILES ${XGBOOST_LIB_PATH}/libxgboost.so DESTINATION lib) - if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") - install(FILES ${PLJAVA_HOME}/lib/libpljava.so DESTINATION lib) ---- 249,254 ---- -*************** -*** 273,295 **** - install(DIRECTORY ${GCC_LIB_PATH}/lib64/ DESTINATION lib - FILES_MATCHING PATTERN "libatomic.so*") - endif() -- -- install(FILES ${GCC_LIB_PATH}/lib64/libgcc_s.so.1 DESTINATION lib) -- install(DIRECTORY ${GCC_LIB_PATH}/lib64/ DESTINATION lib -- FILES_MATCHING PATTERN "libgomp.so*") -- -- install(CODE "execute_process( -- COMMAND cp ${GCC_LIB_PATH}/lib64/libstdc++.so.6.0.24 ${prefix_home}/lib/libstdc++.so.6 -- WORKING_DIRECTORY ${prefix_home}/lib)" -- ) -- -- # install(DIRECTORY ${LIBCGROUP_LIB_PATH} DESTINATION . FILES_MATCHING PATTERN "libcgroup.so*") -- install(CODE "execute_process( -- COMMAND cp ${LIBCGROUP_LIB_PATH}/libcgroup.so.1.0.42 ${prefix_home}/lib/libcgroup.so -- COMMAND ln -fs libcgroup.so libcgroup.so.1 -- WORKING_DIRECTORY ${prefix_home}/lib)" -- ) -- install(CODE "message(\"-- Created symlink: libcgroup.so.1 -> libcgroup.so\")") - - # fastcheck part - install(FILES ${PROJECT_SRC_DIR}/test/regress/stub/roach_api_stub/roach_api_stub.control ---- 266,271 ---- -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/common/interfaces/libpq/CMakeLists.txt openGauss-server-5.0.1-edit/src/common/interfaces/libpq/CMakeLists.txt -*** openGauss-server-5.0.1/src/common/interfaces/libpq/CMakeLists.txt 2024-05-07 20:16:39.540798180 +0800 ---- openGauss-server-5.0.1-edit/src/common/interfaces/libpq/CMakeLists.txt 2024-05-09 14:15:40.525188303 +0800 -*************** -*** 118,129 **** - set(pq_LINK_OPTIONS ${LIB_LINK_OPTIONS}) - add_shared_libtarget(pq TGT_pq_SRC TGT_pq_INC "${pq_DEF_OPTIONS}" "${pq_COMPILE_OPTIONS}" "${pq_LINK_OPTIONS}") - if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") -! target_link_libraries(pq PRIVATE com_err_gauss crypto gssapi_krb5_gauss gssrpc_gauss k5crypto_gauss krb5_gauss krb5support_gauss securec ssl) - else() -! target_link_libraries(pq PRIVATE crypto securec ssl) - endif() - target_link_directories(pq PUBLIC -! ${LIBOPENSSL_LIB_PATH} ${KERBEROS_LIB_PATH} ${SECURE_LIB_PATH} - ${PROJECT_SRC_DIR}/common/port ${PROJECT_SRC_DIR}/gstrace/common - ) - set_target_properties(pq PROPERTIES VERSION 5.5) ---- 118,129 ---- - set(pq_LINK_OPTIONS ${LIB_LINK_OPTIONS}) - add_shared_libtarget(pq TGT_pq_SRC TGT_pq_INC "${pq_DEF_OPTIONS}" "${pq_COMPILE_OPTIONS}" "${pq_LINK_OPTIONS}") - if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") -! target_link_libraries(pq PRIVATE com_err_gauss crypto gssapi_krb5_gauss gssrpc_gauss k5crypto_gauss krb5_gauss krb5support_gauss ${SECURE_C_CHECK} ssl) - else() -! target_link_libraries(pq PRIVATE crypto ${SECURE_C_CHECK} ssl) - endif() - target_link_directories(pq PUBLIC -! ${LIBOPENSSL_LIB_PATH} ${KERBEROS_LIB_PATH} - ${PROJECT_SRC_DIR}/common/port ${PROJECT_SRC_DIR}/gstrace/common - ) - set_target_properties(pq PROPERTIES VERSION 5.5) -*************** -*** 302,308 **** - endif() - add_dependencies(pq_ce libpq_ce cmk_entity_manager_hooks encryption_hooks client_logic_common client_logic_expressions client_logic_cache client_logic_processor client_logic_fmt client_logic_hooks client_logic_data_fetcher frontend_parser) - target_link_directories(pq_ce PUBLIC -- ${SECURE_LIB_PATH} - ${KMC_LIB_PATH} - ${LIBOPENSSL_LIB_PATH} - ${CJSON_LIB_PATH} ---- 302,307 ---- -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp openGauss-server-5.0.1-edit/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp -*** openGauss-server-5.0.1/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp 2024-05-07 20:16:39.608798681 +0800 ---- openGauss-server-5.0.1-edit/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp 2024-05-07 20:17:58.873383188 +0800 -*************** -*** 2417,2423 **** - #else - switch ((comm_sender_flower_pid = fork_process())) { - #endif -! case -1: - ereport(LOG, (errmsg("could not fork comm sender flower process: %m"))); - return 0; - #ifndef EXEC_BACKEND ---- 2417,2423 ---- - #else - switch ((comm_sender_flower_pid = fork_process())) { - #endif -! case (ThreadId)-1: - ereport(LOG, (errmsg("could not fork comm sender flower process: %m"))); - return 0; - #ifndef EXEC_BACKEND -*************** -*** 2454,2460 **** - #else - switch ((comm_receiver_flower_pid = fork_process())) { - #endif -! case -1: - ereport(LOG, (errmsg("could not fork comm sender flower process: %m"))); - return 0; - #ifndef EXEC_BACKEND ---- 2454,2460 ---- - #else - switch ((comm_receiver_flower_pid = fork_process())) { - #endif -! case (ThreadId)-1: - ereport(LOG, (errmsg("could not fork comm sender flower process: %m"))); - return 0; - #ifndef EXEC_BACKEND -*************** -*** 2488,2494 **** - #else - switch ((comm_auxiliary_pid = fork_process())) { - #endif -! case -1: - ereport(LOG, (errmsg("could not fork comm auxiliary flower process: %m"))); - return 0; - #ifndef EXEC_BACKEND ---- 2488,2494 ---- - #else - switch ((comm_auxiliary_pid = fork_process())) { - #endif -! case (ThreadId)-1: - ereport(LOG, (errmsg("could not fork comm auxiliary flower process: %m"))); - return 0; - #ifndef EXEC_BACKEND -*************** -*** 2522,2528 **** - switch ((comm_receiver_pid = fork_process())) - #endif - { -! case -1: - ereport(LOG, (errmsg("could not fork comm receiver process: %m"))); - return 0; - #ifndef EXEC_BACKEND ---- 2522,2528 ---- - switch ((comm_receiver_pid = fork_process())) - #endif - { -! case (ThreadId)-1: - ereport(LOG, (errmsg("could not fork comm receiver process: %m"))); - return 0; - #ifndef EXEC_BACKEND -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/gausskernel/storage/smgr/smgr.cpp openGauss-server-5.0.1-edit/src/gausskernel/storage/smgr/smgr.cpp -*** openGauss-server-5.0.1/src/gausskernel/storage/smgr/smgr.cpp 2024-05-07 20:16:39.940801129 +0800 ---- openGauss-server-5.0.1-edit/src/gausskernel/storage/smgr/smgr.cpp 2024-05-07 20:17:59.201385607 +0800 -*************** -*** 949,955 **** - return convertScalarToDatumT; - } - default: { -! return convertScalarToDatumT<-2>; - } - } - } ---- 949,955 ---- - return convertScalarToDatumT; - } - default: { -! return convertScalarToDatumT<((Oid)-2)>; - } - } - } -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' Plugin-5.0.1/contrib/dolphin/cmake.sh Plugin-5.0.1-edit/contrib/dolphin/cmake.sh -*** Plugin-5.0.1/contrib/dolphin/cmake.sh 2024-06-12 20:17:51.731405913 +0800 ---- Plugin-5.0.1-edit/contrib/dolphin/cmake.sh 2024-06-12 20:43:24.223308216 +0800 -*************** -*** 1,5 **** - #!/bin/bash -! CMAKE_OPT="-DENABLE_MULTIPLE_NODES=OFF -DENABLE_PRIVATEGAUSS=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_LITE_MODE=ON" - cpus_num=$(grep -w processor /proc/cpuinfo|wc -l) - rm -f dolphin--1.0.sql - touch dolphin--1.0.sql ---- 1,5 ---- - #!/bin/bash -! CMAKE_OPT="-DENABLE_MULTIPLE_NODES=OFF -DENABLE_PRIVATEGAUSS=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_LITE_MODE=ON -DENABLE_OPENEULER_MAJOR=ON -DWITH_OPENEULER_OS=ON" - cpus_num=$(grep -w processor /proc/cpuinfo|wc -l) - rm -f dolphin--1.0.sql - touch dolphin--1.0.sql -*************** -*** 9,14 **** ---- 9,15 ---- - touch dolphin--1.2.sql - cat dolphin--1.0.sql >> dolphin--1.2.sql - cat upgrade_script/dolphin--1.0--1.2.sql >> dolphin--1.2.sql -+ BUILD_TUPLE=$(uname -p) - cp llvmir/openGauss_expr_dolphin_${BUILD_TUPLE}.ir openGauss_expr_dolphin.ir - DOLPHIN_CMAKE_BUILD_DIR=`pwd`/tmp_build - [ -d "${DOLPHIN_CMAKE_BUILD_DIR}" ] && rm -rf ${DOLPHIN_CMAKE_BUILD_DIR} -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/bin/pg_ctl/backup.cpp openGauss-server-5.0.1-edit/src/bin/pg_ctl/backup.cpp -*** openGauss-server-5.0.1/src/bin/pg_ctl/backup.cpp 2024-05-09 14:48:32.000000000 +0800 ---- openGauss-server-5.0.1-edit/src/bin/pg_ctl/backup.cpp 2024-06-19 16:22:57.390413059 +0800 -*************** -*** 1939,1945 **** - } - while (1) { - de = readdir(dir); -! if (de <= 0) { - break; - } - if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) { ---- 1939,1945 ---- - } - while (1) { - de = readdir(dir); -! if (de == NULL) { - break; - } - if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) { -*************** -*** 2799,2802 **** - /* free sysidentifier after use */ - pg_free(sysidentifier); - sysidentifier = NULL; -! } -\ No newline at end of file ---- 2799,2802 ---- - /* free sysidentifier after use */ - pg_free(sysidentifier); - sysidentifier = NULL; -! } diff --git a/compile_2309.patch b/compile_2309.patch deleted file mode 100644 index fdca4ccca361ed9408516f1e21472b447097d528..0000000000000000000000000000000000000000 --- a/compile_2309.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/bin/pg_basebackup/pg_basebackup.cpp openGauss-server-5.0.1-edit/src/bin/pg_basebackup/pg_basebackup.cpp -*** openGauss-server-5.0.1/src/bin/pg_basebackup/pg_basebackup.cpp 2024-05-07 20:16:39.176795495 +0800 ---- openGauss-server-5.0.1-edit/src/bin/pg_basebackup/pg_basebackup.cpp 2024-05-07 20:17:58.441380003 +0800 -*************** -*** 1622,1628 **** - struct dirent* ent; - while (1) { - ent = readdir(dir); -! if (ent <= 0) { - break; - } - if ((strcmp(".", ent->d_name) == 0) || (strcmp("..", ent->d_name) == 0)) { ---- 1622,1628 ---- - struct dirent* ent; - while (1) { - ent = readdir(dir); -! if (ent == NULL) { - break; - } - if ((strcmp(".", ent->d_name) == 0) || (strcmp("..", ent->d_name) == 0)) { -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/gausskernel/runtime/opfusion/opfusion_util.cpp openGauss-server-5.0.1-edit/src/gausskernel/runtime/opfusion/opfusion_util.cpp -*** openGauss-server-5.0.1/src/gausskernel/runtime/opfusion/opfusion_util.cpp 2024-05-07 20:16:39.780799949 +0800 ---- openGauss-server-5.0.1-edit/src/gausskernel/runtime/opfusion/opfusion_util.cpp 2024-05-07 20:17:59.041384427 +0800 -*************** -*** 424,430 **** - - /* check whether to have order by */ - if (node->aggstrategy != AGG_PLAIN || -! node->groupingSets > 0) { - return NOBYPASS_NOT_PLAIN_AGG; - } - ---- 424,430 ---- - - /* check whether to have order by */ - if (node->aggstrategy != AGG_PLAIN || -! node->groupingSets != NIL) { - return NOBYPASS_NOT_PLAIN_AGG; - } diff --git a/krb5-1.18.3-final.tar.gz b/krb5-1.18.3-final.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..df109f9ddc4b85f9d513fad1464d5ca98dfa461b Binary files /dev/null and b/krb5-1.18.3-final.tar.gz differ diff --git a/krb5-CVE-2023-36054.patch b/krb5-CVE-2023-36054.patch new file mode 100644 index 0000000000000000000000000000000000000000..263f8622335388e14a0e98695759df78145d29af --- /dev/null +++ b/krb5-CVE-2023-36054.patch @@ -0,0 +1,35 @@ +diff -Naur a/src/lib/kadm5/kadm_rpc_xdr.c b/src/lib/kadm5/kadm_rpc_xdr.c +--- a/src/lib/kadm5/kadm_rpc_xdr.c 2023-09-01 16:16:12.843658117 +0800 ++++ b/src/lib/kadm5/kadm_rpc_xdr.c 2023-09-01 16:12:03.704811364 +0800 +@@ -390,6 +390,7 @@ + int v) + { + unsigned int n; ++ bool_t r; + + if (!xdr_krb5_principal(xdrs, &objp->principal)) { + return (FALSE); +@@ -443,6 +444,9 @@ + if (!xdr_krb5_int16(xdrs, &objp->n_key_data)) { + return (FALSE); + } ++ if (xdrs->x_op == XDR_DECODE && objp->n_key_data < 0) { ++ return (FALSE); ++ } + if (!xdr_krb5_int16(xdrs, &objp->n_tl_data)) { + return (FALSE); + } +@@ -451,9 +455,10 @@ + return FALSE; + } + n = objp->n_key_data; +- if (!xdr_array(xdrs, (caddr_t *) &objp->key_data, +- &n, ~0, sizeof(krb5_key_data), +- xdr_krb5_key_data_nocontents)) { ++ r = xdr_array(xdrs, (caddr_t *) &objp->key_data, &n, objp->n_key_data, ++ sizeof(krb5_key_data), xdr_krb5_key_data_nocontents); ++ objp->n_key_data = n; ++ if (!r) { + return (FALSE); + } + diff --git a/krb5-backport-Add-a-simple-DER-support-header.patch b/krb5-backport-Add-a-simple-DER-support-header.patch new file mode 100644 index 0000000000000000000000000000000000000000..d90c866f053b492442872150a2652256bf9eba2e --- /dev/null +++ b/krb5-backport-Add-a-simple-DER-support-header.patch @@ -0,0 +1,171 @@ +From 548da160b52b25a106e9f6077d6a42c2c049586c Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Tue, 7 Mar 2023 00:19:33 -0500 +Subject: [PATCH] Add a simple DER support header + +Reference: https://github.com/krb5/krb5/commit/548da160b52b25a106e9f6077d6a42c2c049586c +Conflict: NA + +--- + src/include/k5-der.h | 149 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 149 insertions(+) + create mode 100644 src/include/k5-der.h + +diff --git a/src/include/k5-der.h b/src/include/k5-der.h +new file mode 100644 +index 0000000..b8371d9 +--- /dev/null ++++ b/src/include/k5-der.h +@@ -0,0 +1,149 @@ ++/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ ++/* include/k5-der.h - Distinguished Encoding Rules (DER) declarations */ ++/* ++ * Copyright (C) 2023 by the Massachusetts Institute of Technology. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ++ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, ++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED ++ * OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++/* ++ * Most ASN.1 encoding and decoding is done using the table-driven framework in ++ * libkrb5. When that is not an option, these helpers can be used to encode ++ * and decode simple types. ++ */ ++ ++#ifndef K5_DER_H ++#define K5_DER_H ++ ++#include ++#include ++#include "k5-buf.h" ++#include "k5-input.h" ++ ++/* Return the number of bytes needed to encode len as a DER encoding length. */ ++static inline size_t ++k5_der_len_len(size_t len) ++{ ++ size_t llen; ++ ++ if (len < 128) ++ return 1; ++ llen = 1; ++ while (len > 0) { ++ len >>= 8; ++ llen++; ++ } ++ return llen; ++} ++ ++/* Return the number of bytes needed to encode a DER value (with identifier ++ * byte and length) for a given contents length. */ ++static inline size_t ++k5_der_value_len(size_t contents_len) ++{ ++ return 1 + k5_der_len_len(contents_len) + contents_len; ++} ++ ++/* Add a DER identifier byte (composed by the caller, including the ASN.1 ++ * class, tag, and constructed bit) and length. */ ++static inline void ++k5_der_add_taglen(struct k5buf *buf, uint8_t idbyte, size_t len) ++{ ++ uint8_t *p; ++ size_t llen = k5_der_len_len(len); ++ ++ p = k5_buf_get_space(buf, 1 + llen); ++ if (p == NULL) ++ return; ++ *p++ = idbyte; ++ if (len < 128) { ++ *p = len; ++ } else { ++ *p = 0x80 | (llen - 1); ++ /* Encode the length bytes backwards so the most significant byte is ++ * first. */ ++ p += llen; ++ while (len > 0) { ++ *--p = len & 0xFF; ++ len >>= 8; ++ } ++ } ++} ++ ++/* Add a DER value (identifier byte, length, and contents). */ ++static inline void ++k5_der_add_value(struct k5buf *buf, uint8_t idbyte, const void *contents, ++ size_t len) ++{ ++ k5_der_add_taglen(buf, idbyte, len); ++ k5_buf_add_len(buf, contents, len); ++} ++ ++/* ++ * If the next byte in in matches idbyte and the subsequent DER length is ++ * valid, advance in past the value, set *contents_out to the value contents, ++ * and return true. Otherwise return false. Only set an error on in if the ++ * next bytes matches idbyte but the ensuing length is invalid. contents_out ++ * may be aliased to in; it will only be written to on successful decoding of a ++ * value. ++ */ ++static inline bool ++k5_der_get_value(struct k5input *in, uint8_t idbyte, ++ struct k5input *contents_out) ++{ ++ uint8_t lenbyte, i; ++ size_t len; ++ const void *bytes; ++ ++ /* Do nothing if in is empty or the next byte doesn't match idbyte. */ ++ if (in->status || in->len == 0 || *in->ptr != idbyte) ++ return false; ++ ++ /* Advance past the identifier byte and decode the length. */ ++ (void)k5_input_get_byte(in); ++ lenbyte = k5_input_get_byte(in); ++ if (lenbyte < 128) { ++ len = lenbyte; ++ } else { ++ len = 0; ++ for (i = 0; i < (lenbyte & 0x7F); i++) { ++ if (len > (SIZE_MAX >> 8)) { ++ k5_input_set_status(in, EOVERFLOW); ++ return false; ++ } ++ len = (len << 8) | k5_input_get_byte(in); ++ } ++ } ++ ++ bytes = k5_input_get_bytes(in, len); ++ if (bytes == NULL) ++ return false; ++ k5_input_init(contents_out, bytes, len); ++ return true; ++} ++ ++#endif /* K5_DER_H */ +-- +2.33.0 + diff --git a/krb5-backport-CVE-2024-37370-CVE-2024-37371-Fix-vulnerabilities-in-GSS-message-token-handling.patch b/krb5-backport-CVE-2024-37370-CVE-2024-37371-Fix-vulnerabilities-in-GSS-message-token-handling.patch new file mode 100644 index 0000000000000000000000000000000000000000..8687020883bff86891725d0f9297f516b935dc01 --- /dev/null +++ b/krb5-backport-CVE-2024-37370-CVE-2024-37371-Fix-vulnerabilities-in-GSS-message-token-handling.patch @@ -0,0 +1,536 @@ +From b0a2f8a5365f2eec3e27d78907de9f9d2c80505a Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Fri, 14 Jun 2024 10:56:12 -0400 +Subject: [PATCH] Fix vulnerabilities in GSS message token handling + +In gss_krb5int_unseal_token_v3() and gss_krb5int_unseal_v3_iov(), +verify the Extra Count field of CFX wrap tokens against the encrypted +header. Reported by Jacob Champion. + +In gss_krb5int_unseal_token_v3(), check for a decrypted plaintext +length too short to contain the encrypted header and extra count +bytes. Reported by Jacob Champion. + +In kg_unseal_iov_token(), separately track the header IOV length and +complete token length when parsing the token's ASN.1 wrapper. This +fix contains modified versions of functions from k5-der.h and +util_token.c; this duplication will be cleaned up in a future commit. + +CVE-2024-37370: + +In MIT krb5 release 1.3 and later, an attacker can modify the +plaintext Extra Count field of a confidential GSS krb5 wrap token, +causing the unwrapped token to appear truncated to the application. + +CVE-2024-37371: + +In MIT krb5 release 1.3 and later, an attacker can cause invalid +memory reads by sending message tokens with invalid length fields. + +ticket: 9128 (new) +tags: pullup +target_version: 1.21-next + +Reference: https://github.com/krb5/krb5/commit/b0a2f8a5365f2eec3e27d78907de9f9d2c80505a +Conflict: src/tests/gssapi/t_invalid.c + +--- + src/lib/gssapi/krb5/k5sealv3.c | 5 + + src/lib/gssapi/krb5/k5sealv3iov.c | 3 +- + src/lib/gssapi/krb5/k5unsealiov.c | 80 +++++++++- + src/tests/gssapi/t_invalid.c | 233 +++++++++++++++++++++++++----- + 4 files changed, 275 insertions(+), 46 deletions(-) + +diff --git a/src/lib/gssapi/krb5/k5sealv3.c b/src/lib/gssapi/krb5/k5sealv3.c +index e881eee..d3210c1 100644 +--- a/src/lib/gssapi/krb5/k5sealv3.c ++++ b/src/lib/gssapi/krb5/k5sealv3.c +@@ -400,10 +400,15 @@ gss_krb5int_unseal_token_v3(krb5_context *contextptr, + /* Don't use bodysize here! Use the fact that + cipher.ciphertext.length has been adjusted to the + correct length. */ ++ if (plain.length < 16 + ec) { ++ free(plain.data); ++ goto defective; ++ } + althdr = (unsigned char *)plain.data + plain.length - 16; + if (load_16_be(althdr) != KG2_TOK_WRAP_MSG + || althdr[2] != ptr[2] + || althdr[3] != ptr[3] ++ || load_16_be(althdr+4) != ec + || memcmp(althdr+8, ptr+8, 8)) { + free(plain.data); + goto defective; +diff --git a/src/lib/gssapi/krb5/k5sealv3iov.c b/src/lib/gssapi/krb5/k5sealv3iov.c +index 333ee12..f8e90c3 100644 +--- a/src/lib/gssapi/krb5/k5sealv3iov.c ++++ b/src/lib/gssapi/krb5/k5sealv3iov.c +@@ -402,9 +402,10 @@ gss_krb5int_unseal_v3_iov(krb5_context context, + if (load_16_be(althdr) != KG2_TOK_WRAP_MSG + || althdr[2] != ptr[2] + || althdr[3] != ptr[3] ++ || load_16_be(althdr + 4) != ec + || memcmp(althdr + 8, ptr + 8, 8) != 0) { + *minor_status = 0; +- return GSS_S_BAD_SIG; ++ return GSS_S_DEFECTIVE_TOKEN; + } + } else { + /* Verify checksum: note EC is checksum size here, not padding */ +diff --git a/src/lib/gssapi/krb5/k5unsealiov.c b/src/lib/gssapi/krb5/k5unsealiov.c +index 3ce2a90..6a6585d 100644 +--- a/src/lib/gssapi/krb5/k5unsealiov.c ++++ b/src/lib/gssapi/krb5/k5unsealiov.c +@@ -25,6 +25,7 @@ + */ + + #include "k5-int.h" ++#include "k5-der.h" + #include "gssapiP_krb5.h" + + static OM_uint32 +@@ -247,6 +248,73 @@ cleanup: + return retval; + } + ++/* Similar to k5_der_get_value(), but output an unchecked content length ++ * instead of a k5input containing the contents. */ ++static inline bool ++get_der_tag(struct k5input *in, uint8_t idbyte, size_t *len_out) ++{ ++ uint8_t lenbyte, i; ++ size_t len; ++ ++ /* Do nothing if in is empty or the next byte doesn't match idbyte. */ ++ if (in->status || in->len == 0 || *in->ptr != idbyte) ++ return false; ++ ++ /* Advance past the identifier byte and decode the length. */ ++ (void)k5_input_get_byte(in); ++ lenbyte = k5_input_get_byte(in); ++ if (lenbyte < 128) { ++ len = lenbyte; ++ } else { ++ len = 0; ++ for (i = 0; i < (lenbyte & 0x7F); i++) { ++ if (len > (SIZE_MAX >> 8)) { ++ k5_input_set_status(in, EOVERFLOW); ++ return false; ++ } ++ len = (len << 8) | k5_input_get_byte(in); ++ } ++ } ++ ++ if (in->status) ++ return false; ++ ++ *len_out = len; ++ return true; ++} ++ ++/* ++ * Similar to g_verify_token_header() without toktype or flags, but do not read ++ * more than *header_len bytes of ASN.1 wrapper, and on output set *header_len ++ * to the remaining number of header bytes. Verify the outer DER tag's length ++ * against token_len, which may be larger (but not smaller) than *header_len. ++ */ ++static gss_int32 ++verify_detached_wrapper(const gss_OID_desc *mech, size_t *header_len, ++ uint8_t **header_in, size_t token_len) ++{ ++ struct k5input in, mech_der; ++ gss_OID_desc toid; ++ size_t len; ++ ++ k5_input_init(&in, *header_in, *header_len); ++ ++ if (get_der_tag(&in, 0x60, &len)) { ++ if (len != token_len - (in.ptr - *header_in)) ++ return G_BAD_TOK_HEADER; ++ if (!k5_der_get_value(&in, 0x06, &mech_der)) ++ return G_BAD_TOK_HEADER; ++ toid.elements = (uint8_t *)mech_der.ptr; ++ toid.length = mech_der.len; ++ if (!g_OID_equal(&toid, mech)) ++ return G_WRONG_MECH; ++ } ++ ++ *header_in = (uint8_t *)in.ptr; ++ *header_len = in.len; ++ return 0; ++} ++ + /* + * Caller must provide TOKEN | DATA | PADDING | TRAILER, except + * for DCE in which case it can just provide TOKEN | DATA (must +@@ -267,8 +335,7 @@ kg_unseal_iov_token(OM_uint32 *minor_status, + gss_iov_buffer_t header; + gss_iov_buffer_t padding; + gss_iov_buffer_t trailer; +- size_t input_length; +- unsigned int bodysize; ++ size_t input_length, hlen; + int toktype2; + + header = kg_locate_header_iov(iov, iov_count, toktype); +@@ -298,15 +365,14 @@ kg_unseal_iov_token(OM_uint32 *minor_status, + input_length += trailer->buffer.length; + } + +- code = g_verify_token_header(ctx->mech_used, +- &bodysize, &ptr, -1, +- input_length, 0); ++ hlen = header->buffer.length; ++ code = verify_detached_wrapper(ctx->mech_used, &hlen, &ptr, input_length); + if (code != 0) { + *minor_status = code; + return GSS_S_DEFECTIVE_TOKEN; + } + +- if (bodysize < 2) { ++ if (hlen < 2) { + *minor_status = (OM_uint32)G_BAD_TOK_HEADER; + return GSS_S_DEFECTIVE_TOKEN; + } +@@ -314,7 +380,7 @@ kg_unseal_iov_token(OM_uint32 *minor_status, + toktype2 = load_16_be(ptr); + + ptr += 2; +- bodysize -= 2; ++ hlen -= 2; + + switch (toktype2) { + case KG2_TOK_MIC_MSG: +diff --git a/src/tests/gssapi/t_invalid.c b/src/tests/gssapi/t_invalid.c +index fb8fe55..d1f019f 100644 +--- a/src/tests/gssapi/t_invalid.c ++++ b/src/tests/gssapi/t_invalid.c +@@ -36,31 +36,41 @@ + * + * 1. A pre-CFX wrap or MIC token processed with a CFX-only context causes a + * null pointer dereference. (The token must use SEAL_ALG_NONE or it will +- * be rejected.) ++ * be rejected.) This vulnerability also applies to IOV unwrap. + * +- * 2. A pre-CFX wrap or MIC token with fewer than 24 bytes after the ASN.1 ++ * 2. A CFX wrap token with a different value of EC between the plaintext and ++ * encrypted copies will be erroneously accepted, which allows a message ++ * truncation attack. This vulnerability also applies to IOV unwrap. ++ * ++ * 3. A CFX wrap token with a plaintext length fewer than 16 bytes causes an ++ * access before the beginning of the input buffer, possibly leading to a ++ * crash. ++ * ++ * 4. A CFX wrap token with a plaintext EC value greater than the plaintext ++ * length - 16 causes an integer underflow when computing the result length, ++ * likely causing a crash. ++ * ++ * 5. An IOV unwrap operation will overrun the header buffer if an ASN.1 ++ * wrapper longer than the header buffer is present. ++ * ++ * 6. A pre-CFX wrap or MIC token with fewer than 24 bytes after the ASN.1 + * header causes an input buffer overrun, usually leading to either a segv + * or a GSS_S_DEFECTIVE_TOKEN error due to garbage algorithm, filler, or +- * sequence number values. ++ * sequence number values. This vulnerability also applies to IOV unwrap. + * +- * 3. A pre-CFX wrap token with fewer than 16 + cksumlen bytes after the ASN.1 ++ * 7. A pre-CFX wrap token with fewer than 16 + cksumlen bytes after the ASN.1 + * header causes an integer underflow when computing the ciphertext length, + * leading to an allocation error on 32-bit platforms or a segv on 64-bit + * platforms. A pre-CFX MIC token of this size causes an input buffer + * overrun when comparing the checksum, perhaps leading to a segv. + * +- * 4. A pre-CFX wrap token with fewer than conflen + padlen bytes in the ++ * 8. A pre-CFX wrap token with fewer than conflen + padlen bytes in the + * ciphertext (where padlen is the last byte of the decrypted ciphertext) + * causes an integer underflow when computing the original message length, + * leading to an allocation error. + * +- * 5. In the mechglue, truncated encapsulation in the initial context token can ++ * 9. In the mechglue, truncated encapsulation in the initial context token can + * cause input buffer overruns in gss_accept_sec_context(). +- * +- * Vulnerabilities #1 and #2 also apply to IOV unwrap, although tokens with +- * fewer than 16 bytes after the ASN.1 header will be rejected. +- * Vulnerabilities #2 and #5 can only be robustly detected using a +- * memory-checking environment such as valgrind. + */ + + #include "k5-int.h" +@@ -98,16 +108,24 @@ struct test { + }; + + /* Fake up enough of a CFX GSS context for gss_unwrap, using an AES key. */ ++static void * ++ealloc(size_t len) ++{ ++ void *ptr = calloc(len, 1); ++ ++ if (ptr == NULL) ++ abort(); ++ return ptr; ++} ++ ++/* Fake up enough of a CFX GSS context for gss_unwrap, using an AES key. ++ * The context takes ownership of subkey. */ + static gss_ctx_id_t +-make_fake_cfx_context() ++make_fake_cfx_context(krb5_key subkey) + { + gss_union_ctx_id_t uctx; + krb5_gss_ctx_id_t kgctx; +- krb5_keyblock kb; +- +- kgctx = calloc(1, sizeof(*kgctx)); +- if (kgctx == NULL) +- abort(); ++ kgctx = ealloc(sizeof(*kgctx)); + kgctx->established = 1; + kgctx->proto = 1; + if (g_seqstate_init(&kgctx->seqstate, 0, 0, 0, 0) != 0) +@@ -116,15 +134,10 @@ make_fake_cfx_context() + kgctx->sealalg = -1; + kgctx->signalg = -1; + +- kb.enctype = ENCTYPE_AES128_CTS_HMAC_SHA1_96; +- kb.length = 16; +- kb.contents = (unsigned char *)"1234567887654321"; +- if (krb5_k_create_key(NULL, &kb, &kgctx->subkey) != 0) +- abort(); ++ kgctx->subkey = subkey; ++ kgctx->cksumtype = CKSUMTYPE_HMAC_SHA1_96_AES128; + +- uctx = calloc(1, sizeof(*uctx)); +- if (uctx == NULL) +- abort(); ++ uctx = ealloc(sizeof(*uctx)); + uctx->mech_type = &mech_krb5; + uctx->internal_ctx_id = (gss_ctx_id_t)kgctx; + return (gss_ctx_id_t)uctx; +@@ -138,9 +151,7 @@ make_fake_context(const struct test *test) + krb5_gss_ctx_id_t kgctx; + krb5_keyblock kb; + +- kgctx = calloc(1, sizeof(*kgctx)); +- if (kgctx == NULL) +- abort(); ++ kgctx = ealloc(sizeof(*kgctx)); + kgctx->established = 1; + if (g_seqstate_init(&kgctx->seqstate, 0, 0, 0, 0) != 0) + abort(); +@@ -162,9 +173,7 @@ make_fake_context(const struct test *test) + if (krb5_k_create_key(NULL, &kb, &kgctx->enc) != 0) + abort(); + +- uctx = calloc(1, sizeof(*uctx)); +- if (uctx == NULL) +- abort(); ++ uctx = ealloc(sizeof(*uctx)); + uctx->mech_type = &mech_krb5; + uctx->internal_ctx_id = (gss_ctx_id_t)kgctx; + return (gss_ctx_id_t)uctx; +@@ -194,9 +203,7 @@ make_token(unsigned char *token, size_t len, gss_buffer_t out) + + assert(mech_krb5.length == 9); + assert(len + 11 < 128); +- wrapped = malloc(len + 13); +- if (wrapped == NULL) +- abort(); ++ wrapped = ealloc(len + 13); + wrapped[0] = 0x60; + wrapped[1] = len + 11; + wrapped[2] = 0x06; +@@ -207,6 +214,18 @@ make_token(unsigned char *token, size_t len, gss_buffer_t out) + out->value = wrapped; + } + ++/* Create a 16-byte header for a CFX confidential wrap token to be processed by ++ * the fake CFX context. */ ++static void ++write_cfx_header(uint16_t ec, uint8_t *out) ++{ ++ memset(out, 0, 16); ++ store_16_be(KG2_TOK_WRAP_MSG, out); ++ out[2] = FLAG_WRAP_CONFIDENTIAL; ++ out[3] = 0xFF; ++ store_16_be(ec, out + 4); ++} ++ + /* Unwrap a superficially valid RFC 1964 token with a CFX-only context, with + * regular and IOV unwrap. */ + static void +@@ -238,6 +257,134 @@ test_bogus_1964_token(gss_ctx_id_t ctx) + free(in.value); + } + ++static void ++test_cfx_altered_ec(gss_ctx_id_t ctx, krb5_key subkey) ++{ ++ OM_uint32 major, minor; ++ uint8_t tokbuf[128], plainbuf[24]; ++ krb5_data plain; ++ krb5_enc_data cipher; ++ gss_buffer_desc in, out; ++ gss_iov_buffer_desc iov[2]; ++ ++ /* Construct a header with a plaintext EC value of 3. */ ++ write_cfx_header(3, tokbuf); ++ ++ /* Encrypt a plaintext and a copy of the header with the EC value 0. */ ++ memcpy(plainbuf, "truncate", 8); ++ memcpy(plainbuf + 8, tokbuf, 16); ++ store_16_be(0, plainbuf + 12); ++ plain = make_data(plainbuf, 24); ++ cipher.ciphertext.data = (char *)tokbuf + 16; ++ cipher.ciphertext.length = sizeof(tokbuf) - 16; ++ cipher.enctype = subkey->keyblock.enctype; ++ if (krb5_k_encrypt(NULL, subkey, KG_USAGE_INITIATOR_SEAL, NULL, ++ &plain, &cipher) != 0) ++ abort(); ++ ++ /* Verify that the token is rejected by gss_unwrap(). */ ++ in.value = tokbuf; ++ in.length = 16 + cipher.ciphertext.length; ++ major = gss_unwrap(&minor, ctx, &in, &out, NULL, NULL); ++ if (major != GSS_S_DEFECTIVE_TOKEN) ++ abort(); ++ (void)gss_release_buffer(&minor, &out); ++ ++ /* Verify that the token is rejected by gss_unwrap_iov(). */ ++ iov[0].type = GSS_IOV_BUFFER_TYPE_STREAM; ++ iov[0].buffer = in; ++ iov[1].type = GSS_IOV_BUFFER_TYPE_DATA; ++ major = gss_unwrap_iov(&minor, ctx, NULL, NULL, iov, 2); ++ if (major != GSS_S_DEFECTIVE_TOKEN) ++ abort(); ++} ++ ++static void ++test_cfx_short_plaintext(gss_ctx_id_t ctx, krb5_key subkey) ++{ ++ OM_uint32 major, minor; ++ uint8_t tokbuf[128], zerobyte = 0; ++ krb5_data plain; ++ krb5_enc_data cipher; ++ gss_buffer_desc in, out; ++ ++ write_cfx_header(0, tokbuf); ++ ++ /* Encrypt a single byte, with no copy of the header. */ ++ plain = make_data(&zerobyte, 1); ++ cipher.ciphertext.data = (char *)tokbuf + 16; ++ cipher.ciphertext.length = sizeof(tokbuf) - 16; ++ cipher.enctype = subkey->keyblock.enctype; ++ if (krb5_k_encrypt(NULL, subkey, KG_USAGE_INITIATOR_SEAL, NULL, ++ &plain, &cipher) != 0) ++ abort(); ++ ++ /* Verify that the token is rejected by gss_unwrap(). */ ++ in.value = tokbuf; ++ in.length = 16 + cipher.ciphertext.length; ++ major = gss_unwrap(&minor, ctx, &in, &out, NULL, NULL); ++ if (major != GSS_S_DEFECTIVE_TOKEN) ++ abort(); ++ (void)gss_release_buffer(&minor, &out); ++} ++ ++static void ++test_cfx_large_ec(gss_ctx_id_t ctx, krb5_key subkey) ++{ ++ OM_uint32 major, minor; ++ uint8_t tokbuf[128] = { 0 }, plainbuf[20]; ++ krb5_data plain; ++ krb5_enc_data cipher; ++ gss_buffer_desc in, out; ++ ++ /* Construct a header with an EC value of 5. */ ++ write_cfx_header(5, tokbuf); ++ ++ /* Encrypt a 4-byte plaintext plus the header. */ ++ memcpy(plainbuf, "abcd", 4); ++ memcpy(plainbuf + 4, tokbuf, 16); ++ plain = make_data(plainbuf, 20); ++ cipher.ciphertext.data = (char *)tokbuf + 16; ++ cipher.ciphertext.length = sizeof(tokbuf) - 16; ++ cipher.enctype = subkey->keyblock.enctype; ++ if (krb5_k_encrypt(NULL, subkey, KG_USAGE_INITIATOR_SEAL, NULL, ++ &plain, &cipher) != 0) ++ abort(); ++ ++ /* Verify that the token is rejected by gss_unwrap(). */ ++ in.value = tokbuf; ++ in.length = 16 + cipher.ciphertext.length; ++ major = gss_unwrap(&minor, ctx, &in, &out, NULL, NULL); ++ if (major != GSS_S_DEFECTIVE_TOKEN) ++ abort(); ++ (void)gss_release_buffer(&minor, &out); ++} ++ ++static void ++test_iov_large_asn1_wrapper(gss_ctx_id_t ctx) ++{ ++ OM_uint32 minor, major; ++ uint8_t databuf[10] = { 0 }; ++ gss_iov_buffer_desc iov[2]; ++ ++ /* ++ * In this IOV array, the header contains a DER tag with a dangling eight ++ * bytes of length field. The data IOV indicates a total token length ++ * sufficient to contain the length bytes. ++ */ ++ iov[0].type = GSS_IOV_BUFFER_TYPE_HEADER; ++ iov[0].buffer.value = ealloc(2); ++ iov[0].buffer.length = 2; ++ memcpy(iov[0].buffer.value, "\x60\x88", 2); ++ iov[1].type = GSS_IOV_BUFFER_TYPE_DATA; ++ iov[1].buffer.value = databuf; ++ iov[1].buffer.length = 10; ++ major = gss_unwrap_iov(&minor, ctx, NULL, NULL, iov, 2); ++ if (major != GSS_S_DEFECTIVE_TOKEN) ++ abort(); ++ free(iov[0].buffer.value); ++} ++ + /* Process wrap and MIC tokens with incomplete headers. */ + static void + test_short_header(gss_ctx_id_t ctx) +@@ -387,9 +534,7 @@ try_accept(void *value, size_t len) + gss_ctx_id_t ctx = GSS_C_NO_CONTEXT; + + /* Copy the provided value to make input overruns more obvious. */ +- in.value = malloc(len); +- if (in.value == NULL) +- abort(); ++ in.value = ealloc(len); + memcpy(in.value, value, len); + in.length = len; + (void)gss_accept_sec_context(&minor, &ctx, GSS_C_NO_CREDENTIAL, &in, +@@ -424,11 +569,23 @@ test_short_encapsulation() + int + main(int argc, char **argv) + { ++ krb5_keyblock kb; ++ krb5_key cfx_subkey; + gss_ctx_id_t ctx; + size_t i; + +- ctx = make_fake_cfx_context(); ++ kb.enctype = ENCTYPE_AES128_CTS_HMAC_SHA1_96; ++ kb.length = 16; ++ kb.contents = (unsigned char *)"1234567887654321"; ++ if (krb5_k_create_key(NULL, &kb, &cfx_subkey) != 0) ++ abort(); ++ ++ ctx = make_fake_cfx_context(cfx_subkey); + test_bogus_1964_token(ctx); ++ test_cfx_altered_ec(ctx, cfx_subkey); ++ test_cfx_short_plaintext(ctx, cfx_subkey); ++ test_cfx_large_ec(ctx, cfx_subkey); ++ test_iov_large_asn1_wrapper(ctx); + free_fake_context(ctx); + + for (i = 0; i < sizeof(tests) / sizeof(*tests); i++) { +-- +2.33.0 + diff --git a/krb5-cve-2022-42898.patch b/krb5-cve-2022-42898.patch new file mode 100644 index 0000000000000000000000000000000000000000..df02358469cf5197cc2e589866a6d4d494f32984 --- /dev/null +++ b/krb5-cve-2022-42898.patch @@ -0,0 +1,84 @@ +From ea92d2f0fcceb54a70910fa32e9a0d7a5afc3583 Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Mon, 17 Oct 2022 20:25:11 -0400 +Subject: [PATCH] Fix integer overflows in PAC parsing + +In krb5_parse_pac(), check for buffer counts large enough to threaten +integer overflow in the header length and memory length calculations. +Avoid potential integer overflows when checking the length of each +buffer. Credit to OSS-Fuzz for discovering one of the issues. + +CVE-2022-42898: + +In MIT krb5 releases 1.8 and later, an authenticated attacker may be +able to cause a KDC or kadmind process to crash by reading beyond the +bounds of allocated memory, creating a denial of service. A +privileged attacker may similarly be able to cause a Kerberos or GSS +application service to crash. On 32-bit platforms, an attacker can +also cause insufficient memory to be allocated for the result, +potentially leading to remote code execution in a KDC, kadmind, or GSS +or Kerberos application server process. An attacker with the +privileges of a cross-realm KDC may be able to extract secrets from a +KDC process's memory by having them copied into the PAC of a new +ticket. + +ticket: 9074 (new) +tags: pullup +target_version: 1.20-next +target_version: 1.19-next +--- + src/lib/krb5/krb/pac.c | 9 +++++++-- + src/lib/krb5/krb/t_pac.c | 18 ++++++++++++++++++ + 2 files changed, 25 insertions(+), 2 deletions(-) + +diff --git a/src/lib/krb5/krb/pac.c b/src/lib/krb5/krb/pac.c +index 2f1df8d42..f6c4373de 100644 +--- a/src/lib/krb5/krb/pac.c ++++ b/src/lib/krb5/krb/pac.c +*** 26,31 **** +--- 26,32 ---- + + #include "k5-int.h" + #include "authdata.h" ++ #define MAX_BUFFERS 4096 + + /* draft-brezak-win2k-krb-authz-00 */ +diff --git a/src/lib/krb5/krb/t_pac.c b/src/lib/krb5/krb/t_pac.c +index 0b1b1f056..173bde7ba 100644 +--- a/src/lib/krb5/krb/t_pac.c ++++ b/src/lib/krb5/krb/t_pac.c +@@ -431,6 +431,16 @@ static const unsigned char s4u_pac_ent_xrealm[] = { + 0x8a, 0x81, 0x9c, 0x9c, 0x00, 0x00, 0x00, 0x00 + }; + ++static const unsigned char fuzz1[] = { ++ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, ++ 0x06, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf5 ++}; ++ ++static const unsigned char fuzz2[] = { ++ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, ++ 0x20, 0x20 ++}; ++ + static const char *s4u_principal = "w2k8u@ACME.COM"; + static const char *s4u_enterprise = "w2k8u@abc@ACME.COM"; + +@@ -828,6 +838,14 @@ main(int argc, char **argv) + krb5_free_principal(context, sep); + } + ++ /* Check problematic PACs found by fuzzing. */ ++ ret = krb5_pac_parse(context, fuzz1, sizeof(fuzz1), &pac); ++ if (!ret) ++ err(context, ret, "krb5_pac_parse should have failed"); ++ ret = krb5_pac_parse(context, fuzz2, sizeof(fuzz2), &pac); ++ if (!ret) ++ err(context, ret, "krb5_pac_parse should have failed"); ++ + /* + * Test empty free + */ +-- +2.32.0.windows.1 + diff --git a/krb5.patch b/krb5.patch new file mode 100644 index 0000000000000000000000000000000000000000..971c5236198d0d806951b671e0b5105af485fe93 --- /dev/null +++ b/krb5.patch @@ -0,0 +1,4011 @@ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/appl/gss-sample/Makefile.in krb5_edit/src/appl/gss-sample/Makefile.in +*** krb5/src/appl/gss-sample/Makefile.in 2022-08-26 16:04:07.044000000 +0800 +--- krb5_edit/src/appl/gss-sample/Makefile.in 2022-08-26 16:03:34.940000000 +0800 +*************** +*** 26,35 **** + ##WIN32##all-windows: $(OUTPRE)gss-server.exe $(OUTPRE)gss-client.exe + + gss-server: gss-server.o gss-misc.o $(GSS_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o gss-server gss-server.o gss-misc.o $(GSS_LIBS) $(KRB5_BASE_LIBS) + + gss-client: gss-client.o gss-misc.o $(GSS_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o gss-client gss-client.o gss-misc.o $(GSS_LIBS) $(KRB5_BASE_LIBS) + + ##WIN32##$(GSSSERVER): $(OUTPRE)gss-server.obj $(OUTPRE)gss-misc.obj $(GLIB) $(KLIB) $(SERVERRES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib +--- 26,35 ---- + ##WIN32##all-windows: $(OUTPRE)gss-server.exe $(OUTPRE)gss-client.exe + + gss-server: gss-server.o gss-misc.o $(GSS_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o gss-server gss-server.o gss-misc.o $(GSS_LIBS) $(KRB5_BASE_LIBS) + + gss-client: gss-client.o gss-misc.o $(GSS_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o gss-client gss-client.o gss-misc.o $(GSS_LIBS) $(KRB5_BASE_LIBS) + + ##WIN32##$(GSSSERVER): $(OUTPRE)gss-server.obj $(OUTPRE)gss-misc.obj $(GLIB) $(KLIB) $(SERVERRES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/appl/sample/sclient/Makefile.in krb5_edit/src/appl/sample/sclient/Makefile.in +*** krb5/src/appl/sample/sclient/Makefile.in 2022-08-26 16:04:07.044000000 +0800 +--- krb5_edit/src/appl/sample/sclient/Makefile.in 2022-08-26 16:03:34.944000000 +0800 +*************** +*** 4,10 **** + all: sclient + + sclient: sclient.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o sclient sclient.o $(KRB5_BASE_LIBS) + + clean: + $(RM) sclient.o sclient +--- 4,10 ---- + all: sclient + + sclient: sclient.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o sclient sclient.o $(KRB5_BASE_LIBS) + + clean: + $(RM) sclient.o sclient +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/appl/sample/sserver/Makefile.in krb5_edit/src/appl/sample/sserver/Makefile.in +*** krb5/src/appl/sample/sserver/Makefile.in 2022-08-26 16:04:07.044000000 +0800 +--- krb5_edit/src/appl/sample/sserver/Makefile.in 2022-08-26 16:03:34.944000000 +0800 +*************** +*** 4,10 **** + all: sserver + + sserver: sserver.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o sserver sserver.o $(KRB5_BASE_LIBS) + + clean: + $(RM) sserver.o sserver +--- 4,10 ---- + all: sserver + + sserver: sserver.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o sserver sserver.o $(KRB5_BASE_LIBS) + + clean: + $(RM) sserver.o sserver +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/appl/simple/client/Makefile.in krb5_edit/src/appl/simple/client/Makefile.in +*** krb5/src/appl/simple/client/Makefile.in 2022-08-26 16:04:07.044000000 +0800 +--- krb5_edit/src/appl/simple/client/Makefile.in 2022-08-26 16:03:34.944000000 +0800 +*************** +*** 6,12 **** + LOCALINCLUDES= -I$(srcdir)/.. + + sim_client: sim_client.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o sim_client sim_client.o $(KRB5_BASE_LIBS) + + install: + $(INSTALL_PROGRAM) sim_client $(DESTDIR)$(CLIENT_BINDIR)/sim_client +--- 6,12 ---- + LOCALINCLUDES= -I$(srcdir)/.. + + sim_client: sim_client.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o sim_client sim_client.o $(KRB5_BASE_LIBS) + + install: + $(INSTALL_PROGRAM) sim_client $(DESTDIR)$(CLIENT_BINDIR)/sim_client +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/appl/simple/server/Makefile.in krb5_edit/src/appl/simple/server/Makefile.in +*** krb5/src/appl/simple/server/Makefile.in 2022-08-26 16:04:07.044000000 +0800 +--- krb5_edit/src/appl/simple/server/Makefile.in 2022-08-26 16:03:34.944000000 +0800 +*************** +*** 6,12 **** + all: sim_server + + sim_server: sim_server.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o sim_server sim_server.o $(KRB5_BASE_LIBS) + + install: + $(INSTALL_PROGRAM) sim_server $(DESTDIR)$(SERVER_BINDIR)/sim_server +--- 6,12 ---- + all: sim_server + + sim_server: sim_server.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o sim_server sim_server.o $(KRB5_BASE_LIBS) + + install: + $(INSTALL_PROGRAM) sim_server $(DESTDIR)$(SERVER_BINDIR)/sim_server +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/appl/user_user/Makefile.in krb5_edit/src/appl/user_user/Makefile.in +*** krb5/src/appl/user_user/Makefile.in 2022-08-26 16:04:07.044000000 +0800 +--- krb5_edit/src/appl/user_user/Makefile.in 2022-08-26 16:03:34.944000000 +0800 +*************** +*** 9,18 **** + $(RUNPYTEST) $(srcdir)/t_user2user.py $(PYTESTFLAGS) + + uuclient: client.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o uuclient client.o $(KRB5_BASE_LIBS) + + uuserver: server.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o uuserver server.o $(KRB5_BASE_LIBS) + + install: + $(INSTALL_PROGRAM) uuclient $(DESTDIR)$(CLIENT_BINDIR)/uuclient +--- 9,18 ---- + $(RUNPYTEST) $(srcdir)/t_user2user.py $(PYTESTFLAGS) + + uuclient: client.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o uuclient client.o $(KRB5_BASE_LIBS) + + uuserver: server.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o uuserver server.o $(KRB5_BASE_LIBS) + + install: + $(INSTALL_PROGRAM) uuclient $(DESTDIR)$(CLIENT_BINDIR)/uuclient +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/build-tools/krb5-config.in krb5_edit/src/build-tools/krb5-config.in +*** krb5/src/build-tools/krb5-config.in 2022-08-26 16:04:07.044000000 +0800 +--- krb5_edit/src/build-tools/krb5-config.in 2022-08-26 16:03:34.944000000 +0800 +*************** +*** 241,257 **** + fi + + if test $library = 'gssrpc'; then +! lib_flags="$lib_flags -lgssrpc" + library=gssapi + fi + + if test $library = 'gssapi'; then +! lib_flags="$lib_flags -lgssapi_krb5" + library=krb5 + fi + + if test $library = 'krb5'; then +! lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err" + fi + + # If we ever support a flag to generate output suitable for static +--- 241,257 ---- + fi + + if test $library = 'gssrpc'; then +! lib_flags="$lib_flags -lgssrpc_gauss" + library=gssapi + fi + + if test $library = 'gssapi'; then +! lib_flags="$lib_flags -lgssapi_krb5_gauss" + library=krb5 + fi + + if test $library = 'krb5'; then +! lib_flags="$lib_flags -lkrb5_gauss -lk5crypto_gauss -lcom_err_gauss" + fi + + # If we ever support a flag to generate output suitable for static +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/build-tools/krb5.pc.in krb5_edit/src/build-tools/krb5.pc.in +*** krb5/src/build-tools/krb5.pc.in 2022-08-26 16:04:07.044000000 +0800 +--- krb5_edit/src/build-tools/krb5.pc.in 2022-08-26 16:03:34.944000000 +0800 +*************** +*** 8,14 **** + defktname=@DEFKTNAME@ + defcktname=@DEFCKTNAME@ + +! Name: krb5 + Description: An implementation of Kerberos network authentication + Version: @KRB5_VERSION@ + Requires: mit-krb5 +--- 8,14 ---- + defktname=@DEFKTNAME@ + defcktname=@DEFCKTNAME@ + +! Name: krb5_gauss + Description: An implementation of Kerberos network authentication + Version: @KRB5_VERSION@ + Requires: mit-krb5 +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/ccapi/lib/Makefile.in krb5_edit/src/ccapi/lib/Makefile.in +*** krb5/src/ccapi/lib/Makefile.in 2022-08-26 16:04:07.048000000 +0800 +--- krb5_edit/src/ccapi/lib/Makefile.in 2022-08-26 16:03:34.948000000 +0800 +*************** +*** 4,10 **** + LOCALINCLUDES=-I$(srcdir)/../common -I. + + SHLIB_EXPDEPS= $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! SHLIB_EXPLIBS=-lcom_err $(SUPPORT_LIB) + RELDIR=../ccapi/lib + + LIBBASE=krb5-ccapi +--- 4,10 ---- + LOCALINCLUDES=-I$(srcdir)/../common -I. + + SHLIB_EXPDEPS= $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! SHLIB_EXPLIBS=-lcom_err_gauss $(SUPPORT_LIB) + RELDIR=../ccapi/lib + + LIBBASE=krb5-ccapi +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/kcpytkt/Makefile.in krb5_edit/src/clients/kcpytkt/Makefile.in +*** krb5/src/clients/kcpytkt/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/kcpytkt/Makefile.in 2022-08-26 16:03:34.956000000 +0800 +*************** +*** 16,22 **** + all-mac: + + kcpytkt: kcpytkt.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ kcpytkt.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KCPYTKT): $(OUTPRE)kcpytkt.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) /out:$@ $** +--- 16,22 ---- + all-mac: + + kcpytkt: kcpytkt.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ kcpytkt.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KCPYTKT): $(OUTPRE)kcpytkt.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) /out:$@ $** +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/kdeltkt/Makefile.in krb5_edit/src/clients/kdeltkt/Makefile.in +*** krb5/src/clients/kdeltkt/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/kdeltkt/Makefile.in 2022-08-26 16:03:34.956000000 +0800 +*************** +*** 16,22 **** + all-mac: + + kdeltkt: kdeltkt.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ kdeltkt.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KDELTKT): $(OUTPRE)kdeltkt.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) /out:$@ $** +--- 16,22 ---- + all-mac: + + kdeltkt: kdeltkt.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ kdeltkt.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KDELTKT): $(OUTPRE)kdeltkt.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) /out:$@ $** +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/kdestroy/Makefile.in krb5_edit/src/clients/kdestroy/Makefile.in +*** krb5/src/clients/kdestroy/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/kdestroy/Makefile.in 2022-08-26 16:03:34.956000000 +0800 +*************** +*** 19,25 **** + ##WIN32##all-windows: $(KDESTROY) + + kdestroy: kdestroy.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ kdestroy.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KDESTROY): $(OUTPRE)kdestroy.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** +--- 19,25 ---- + ##WIN32##all-windows: $(KDESTROY) + + kdestroy: kdestroy.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ kdestroy.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KDESTROY): $(OUTPRE)kdestroy.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/kinit/Makefile.in krb5_edit/src/clients/kinit/Makefile.in +*** krb5/src/clients/kinit/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/kinit/Makefile.in 2022-08-26 16:03:34.956000000 +0800 +*************** +*** 18,24 **** + ##WIN32##all-windows: $(KINIT) + + kinit: kinit.o kinit_kdb.o $(KRB5_BASE_DEPLIBS) $(KADMSRV_DEPLIBS) +! $(CC_LINK) -o $@ kinit.o kinit_kdb.o $(KADMSRV_LIBS) $(KRB5_BASE_LIBS) + + ##WIN32##$(KINIT): $(OUTPRE)kinit.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** advapi32.lib +--- 18,24 ---- + ##WIN32##all-windows: $(KINIT) + + kinit: kinit.o kinit_kdb.o $(KRB5_BASE_DEPLIBS) $(KADMSRV_DEPLIBS) +! $(CC_LINK) -pie -o $@ kinit.o kinit_kdb.o $(KADMSRV_LIBS) $(KRB5_BASE_LIBS) + + ##WIN32##$(KINIT): $(OUTPRE)kinit.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** advapi32.lib +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/klist/Makefile.in krb5_edit/src/clients/klist/Makefile.in +*** krb5/src/clients/klist/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/klist/Makefile.in 2022-08-26 16:03:34.960000000 +0800 +*************** +*** 19,25 **** + ##WIN32##all-windows: $(KLIST) + + klist: klist.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ klist.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KLIST): $(OUTPRE)klist.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib +--- 19,25 ---- + ##WIN32##all-windows: $(KLIST) + + klist: klist.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ klist.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KLIST): $(OUTPRE)klist.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/kpasswd/Makefile.in krb5_edit/src/clients/kpasswd/Makefile.in +*** krb5/src/clients/kpasswd/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/kpasswd/Makefile.in 2022-08-26 16:03:34.960000000 +0800 +*************** +*** 4,10 **** + SRCS=kpasswd.c + + kpasswd: kpasswd.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o kpasswd kpasswd.o $(KRB5_BASE_LIBS) + + kpasswd.o: $(srcdir)/kpasswd.c + +--- 4,10 ---- + SRCS=kpasswd.c + + kpasswd: kpasswd.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o kpasswd kpasswd.o $(KRB5_BASE_LIBS) + + kpasswd.o: $(srcdir)/kpasswd.c + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/ksu/Makefile.in krb5_edit/src/clients/ksu/Makefile.in +*** krb5/src/clients/ksu/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/ksu/Makefile.in 2022-08-26 16:03:34.960000000 +0800 +*************** +*** 23,29 **** + all: ksu + + ksu: $(OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ $(OBJS) $(KRB5_BASE_LIBS) $(KSU_LIBS) + + clean: + $(RM) ksu +--- 23,29 ---- + all: ksu + + ksu: $(OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ $(OBJS) $(KRB5_BASE_LIBS) $(KSU_LIBS) + + clean: + $(RM) ksu +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/kswitch/Makefile.in krb5_edit/src/clients/kswitch/Makefile.in +*** krb5/src/clients/kswitch/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/kswitch/Makefile.in 2022-08-26 16:03:34.960000000 +0800 +*************** +*** 17,23 **** + ##WIN32##all-windows: $(KSWITCH) + + kswitch: kswitch.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ kswitch.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KSWITCH): $(OUTPRE)kswitch.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** +--- 17,23 ---- + ##WIN32##all-windows: $(KSWITCH) + + kswitch: kswitch.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ kswitch.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KSWITCH): $(OUTPRE)kswitch.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) -out:$@ $** +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/clients/kvno/Makefile.in krb5_edit/src/clients/kvno/Makefile.in +*** krb5/src/clients/kvno/Makefile.in 2022-08-26 16:04:07.060000000 +0800 +--- krb5_edit/src/clients/kvno/Makefile.in 2022-08-26 16:03:34.960000000 +0800 +*************** +*** 20,26 **** + ##WIN32##all-windows: $(KVNO) + + kvno: kvno.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ kvno.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KVNO): $(OUTPRE)kvno.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) /out:$@ $** +--- 20,26 ---- + ##WIN32##all-windows: $(KVNO) + + kvno: kvno.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ kvno.o $(KRB5_BASE_LIBS) + + ##WIN32##$(KVNO): $(OUTPRE)kvno.obj $(SLIB) $(KLIB) $(CLIB) $(EXERES) + ##WIN32## link $(EXE_LINKOPTS) /out:$@ $** +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/config/pre.in krb5_edit/src/config/pre.in +*** krb5/src/config/pre.in 2022-08-26 16:04:07.064000000 +0800 +--- krb5_edit/src/config/pre.in 2022-08-26 16:03:34.964000000 +0800 +*************** +*** 284,290 **** + # + # invocation is like: + # prog: foo.o bar.o $(KRB5_BASE_DEPLIBS) +! # $(CC_LINK) -o $@ foo.o bar.o $(KRB5_BASE_LIBS) + + CC_LINK=@CC_LINK@ $(ASAN_FLAGS) + CXX_LINK=@CXX_LINK@ $(ASAN_FLAGS) +--- 284,290 ---- + # + # invocation is like: + # prog: foo.o bar.o $(KRB5_BASE_DEPLIBS) +! # $(CC_LINK) -pie -o $@ foo.o bar.o $(KRB5_BASE_LIBS) + + CC_LINK=@CC_LINK@ $(ASAN_FLAGS) + CXX_LINK=@CXX_LINK@ $(ASAN_FLAGS) +*************** +*** 323,337 **** + KADMCLNT_DEPLIB = $(TOPLIBD)/libkadm5clnt_mit$(DEPLIBEXT) + KADMSRV_DEPLIB = $(TOPLIBD)/libkadm5srv_mit$(DEPLIBEXT) + KDB5_DEPLIB = $(TOPLIBD)/libkdb5$(DEPLIBEXT) +! GSSRPC_DEPLIB = $(TOPLIBD)/libgssrpc$(DEPLIBEXT) +! GSS_DEPLIB = $(TOPLIBD)/libgssapi_krb5$(DEPLIBEXT) +! KRB5_DEPLIB = $(TOPLIBD)/libkrb5$(DEPLIBEXT) +! CRYPTO_DEPLIB = $(TOPLIBD)/libk5crypto$(DEPLIBEXT) + COM_ERR_DEPLIB = $(COM_ERR_DEPLIB-@COM_ERR_VERSION@) + COM_ERR_DEPLIB-sys = # empty + COM_ERR_DEPLIB-intlsys = # empty +! COM_ERR_DEPLIB-k5 = $(TOPLIBD)/libcom_err$(DEPLIBEXT) +! SUPPORT_LIBNAME=krb5support + SUPPORT_DEPLIB = $(TOPLIBD)/lib$(SUPPORT_LIBNAME)$(DEPLIBEXT) + + # These are forced to use ".a" as an extension because they're never +--- 323,337 ---- + KADMCLNT_DEPLIB = $(TOPLIBD)/libkadm5clnt_mit$(DEPLIBEXT) + KADMSRV_DEPLIB = $(TOPLIBD)/libkadm5srv_mit$(DEPLIBEXT) + KDB5_DEPLIB = $(TOPLIBD)/libkdb5$(DEPLIBEXT) +! GSSRPC_DEPLIB = $(TOPLIBD)/libgssrpc_gauss$(DEPLIBEXT) +! GSS_DEPLIB = $(TOPLIBD)/libgssapi_krb5_gauss$(DEPLIBEXT) +! KRB5_DEPLIB = $(TOPLIBD)/libkrb5_gauss$(DEPLIBEXT) +! CRYPTO_DEPLIB = $(TOPLIBD)/libk5crypto_gauss$(DEPLIBEXT) + COM_ERR_DEPLIB = $(COM_ERR_DEPLIB-@COM_ERR_VERSION@) + COM_ERR_DEPLIB-sys = # empty + COM_ERR_DEPLIB-intlsys = # empty +! COM_ERR_DEPLIB-k5 = $(TOPLIBD)/libcom_err_gauss$(DEPLIBEXT) +! SUPPORT_LIBNAME=krb5support_gauss + SUPPORT_DEPLIB = $(TOPLIBD)/lib$(SUPPORT_LIBNAME)$(DEPLIBEXT) + + # These are forced to use ".a" as an extension because they're never +*************** +*** 393,402 **** + LDAP_LIBS = @LDAP_LIBS@ + LMDB_LIBS = @LMDB_LIBS@ + +! KRB5_LIB = -lkrb5 +! K5CRYPTO_LIB = -lk5crypto +! COM_ERR_LIB = -lcom_err +! GSS_KRB5_LIB = -lgssapi_krb5 + SUPPORT_LIB = -l$(SUPPORT_LIBNAME) + + # HESIOD_LIBS is -lhesiod... +--- 393,402 ---- + LDAP_LIBS = @LDAP_LIBS@ + LMDB_LIBS = @LMDB_LIBS@ + +! KRB5_LIB = -lkrb5_gauss +! K5CRYPTO_LIB = -lk5crypto_gauss +! COM_ERR_LIB = -lcom_err_gauss +! GSS_KRB5_LIB = -lgssapi_krb5_gauss + SUPPORT_LIB = -l$(SUPPORT_LIBNAME) + + # HESIOD_LIBS is -lhesiod... +*************** +*** 406,412 **** + KDB5_LIBS = $(KDB5_LIB) $(GSSRPC_LIBS) + GSS_LIBS = $(GSS_KRB5_LIB) + # needs fixing if ever used on macOS! +! GSSRPC_LIBS = -lgssrpc $(GSS_LIBS) + KADM_COMM_LIBS = $(GSSRPC_LIBS) + # need fixing if ever used on macOS! + KADMSRV_LIBS = -lkadm5srv_mit $(HESIOD_LIBS) $(KDB5_LIBS) $(KADM_COMM_LIBS) +--- 406,412 ---- + KDB5_LIBS = $(KDB5_LIB) $(GSSRPC_LIBS) + GSS_LIBS = $(GSS_KRB5_LIB) + # needs fixing if ever used on macOS! +! GSSRPC_LIBS = -lgssrpc_gauss $(GSS_LIBS) + KADM_COMM_LIBS = $(GSSRPC_LIBS) + # need fixing if ever used on macOS! + KADMSRV_LIBS = -lkadm5srv_mit $(HESIOD_LIBS) $(KDB5_LIBS) $(KADM_COMM_LIBS) +*************** +*** 496,502 **** + # + .SUFFIXES: .cpp .c .o + .c.o: +! $(CC) $(ALL_CFLAGS) -c $< + # Use .cpp because that's what autoconf uses in its test. + # If the compiler doesn't accept a .cpp suffix here, it wouldn't + # have accepted it when autoconf tested it. +--- 496,502 ---- + # + .SUFFIXES: .cpp .c .o + .c.o: +! $(CC) $(ALL_CFLAGS) -fPIC -c $< + # Use .cpp because that's what autoconf uses in its test. + # If the compiler doesn't accept a .cpp suffix here, it wouldn't + # have accepted it when autoconf tested it. +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/include/k5-int.h krb5_edit/src/include/k5-int.h +*** krb5/src/include/k5-int.h 2022-08-26 16:04:07.068000000 +0800 +--- krb5_edit/src/include/k5-int.h 2022-08-26 16:03:34.968000000 +0800 +*************** +*** 2407,2410 **** +--- 2407,2413 ---- + #define k5_prependmsg krb5_prepend_error_message + #define k5_wrapmsg krb5_wrap_error_message + ++ extern __thread char *G_DEFAULT_PROFILE_PATH; ++ extern __thread char *G_DEFAULT_CACHE_PATH; ++ + #endif /* _KRB5_INT_H */ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/include/krb5/krb5.hin krb5_edit/src/include/krb5/krb5.hin +*** krb5/src/include/krb5/krb5.hin 2022-08-26 16:04:07.076000000 +0800 +--- krb5_edit/src/include/krb5/krb5.hin 2022-08-26 16:03:34.972000000 +0800 +*************** +*** 2899,2904 **** +--- 2899,2908 ---- + #define KRB5_INIT_CONTEXT_SECURE 0x1 /**< Use secure context configuration */ + #define KRB5_INIT_CONTEXT_KDC 0x2 /**< Use KDC configuration if available */ + ++ extern void KRB5_CALLCONV krb5_set_profile_path(char *profile_path); ++ extern void KRB5_CALLCONV krb5_set_cache_path(char *cache_path); ++ extern void KRB5_CALLCONV krb5_clean_cache_profile_path(); ++ + /** + * Create a krb5 library context. + * +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kadmin/cli/Makefile.in krb5_edit/src/kadmin/cli/Makefile.in +*** krb5/src/kadmin/cli/Makefile.in 2022-08-26 16:04:07.076000000 +0800 +--- krb5_edit/src/kadmin/cli/Makefile.in 2022-08-26 16:03:34.976000000 +0800 +*************** +*** 14,23 **** + all: $(PROG).local $(PROG) + + $(PROG).local: $(LOCAL_OBJS) $(SS_DEPLIB) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $(PROG).local $(LOCAL_OBJS) $(SS_LIB) $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + $(PROG): $(KADMIN_OBJS) $(SS_DEPLIB) $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $(PROG) $(KADMIN_OBJS) $(SS_LIB) $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + kadmin_ct.o: kadmin_ct.c + +--- 14,23 ---- + all: $(PROG).local $(PROG) + + $(PROG).local: $(LOCAL_OBJS) $(SS_DEPLIB) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $(PROG).local $(LOCAL_OBJS) $(SS_LIB) $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + $(PROG): $(KADMIN_OBJS) $(SS_DEPLIB) $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $(PROG) $(KADMIN_OBJS) $(SS_LIB) $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + kadmin_ct.o: kadmin_ct.c + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kadmin/dbutil/Makefile.in krb5_edit/src/kadmin/dbutil/Makefile.in +*** krb5/src/kadmin/dbutil/Makefile.in 2022-08-26 16:04:07.076000000 +0800 +--- krb5_edit/src/kadmin/dbutil/Makefile.in 2022-08-26 16:03:34.976000000 +0800 +*************** +*** 19,25 **** + all: $(PROG) + + $(PROG): $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) $(GETDATE) +! $(CC_LINK) -o $(PROG) $(OBJS) $(GETDATE) $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + import_err.c import_err.h: $(srcdir)/import_err.et + +--- 19,25 ---- + all: $(PROG) + + $(PROG): $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) $(GETDATE) +! $(CC_LINK) -pie -o $(PROG) $(OBJS) $(GETDATE) $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + import_err.c import_err.h: $(srcdir)/import_err.et + +*************** +*** 35,41 **** + T_TDUMPUTIL_OBJS = t_tdumputil.o tdumputil.o + + t_tdumputil: $(T_TDUMPUTIL_OBJS) $(SUPPORT_DEPLIB) +! $(CC_LINK) -o $@ $(T_TDUMPUTIL_OBJS) $(SUPPORT_LIB) + + depend: import_err.h + +--- 35,41 ---- + T_TDUMPUTIL_OBJS = t_tdumputil.o tdumputil.o + + t_tdumputil: $(T_TDUMPUTIL_OBJS) $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o $@ $(T_TDUMPUTIL_OBJS) $(SUPPORT_LIB) + + depend: import_err.h + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kadmin/ktutil/Makefile.in krb5_edit/src/kadmin/ktutil/Makefile.in +*** krb5/src/kadmin/ktutil/Makefile.in 2022-08-26 16:04:07.080000000 +0800 +--- krb5_edit/src/kadmin/ktutil/Makefile.in 2022-08-26 16:03:34.976000000 +0800 +*************** +*** 12,18 **** + all: ktutil + + ktutil: ktutil.o $(OBJS) $(SS_DEPLIB) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o ktutil $(OBJS) $(SS_LIB) $(KRB5_BASE_LIBS) + + install: + $(INSTALL_PROGRAM) ktutil ${DESTDIR}$(CLIENT_BINDIR)/ktutil +--- 12,18 ---- + all: ktutil + + ktutil: ktutil.o $(OBJS) $(SS_DEPLIB) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o ktutil $(OBJS) $(SS_LIB) $(KRB5_BASE_LIBS) + + install: + $(INSTALL_PROGRAM) ktutil ${DESTDIR}$(CLIENT_BINDIR)/ktutil +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kadmin/server/Makefile.in krb5_edit/src/kadmin/server/Makefile.in +*** krb5/src/kadmin/server/Makefile.in 2022-08-26 16:04:07.080000000 +0800 +--- krb5_edit/src/kadmin/server/Makefile.in 2022-08-26 16:03:34.980000000 +0800 +*************** +*** 15,21 **** + all: $(PROG) + + $(PROG): $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) $(APPUTILS_DEPLIB) $(VERTO_DEPLIB) +! $(CC_LINK) -o $(PROG) $(OBJS) $(APPUTILS_LIB) $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) $(VERTO_LIBS) + + install: + $(INSTALL_PROGRAM) $(PROG) ${DESTDIR}$(SERVER_BINDIR)/$(PROG) +--- 15,21 ---- + all: $(PROG) + + $(PROG): $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) $(APPUTILS_DEPLIB) $(VERTO_DEPLIB) +! $(CC_LINK) -pie -o $(PROG) $(OBJS) $(APPUTILS_LIB) $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) $(VERTO_LIBS) + + install: + $(INSTALL_PROGRAM) $(PROG) ${DESTDIR}$(SERVER_BINDIR)/$(PROG) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kadmin/testing/util/Makefile.in krb5_edit/src/kadmin/testing/util/Makefile.in +*** krb5/src/kadmin/testing/util/Makefile.in 2022-08-26 16:04:07.084000000 +0800 +--- krb5_edit/src/kadmin/testing/util/Makefile.in 2022-08-26 16:03:34.980000000 +0800 +*************** +*** 28,42 **** + all-tcl: $(CLNTPROG) $(SRVPROG) + + $(SRVPROG): $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $(SRVPROG) $(OBJS) $(TCL_MAYBE_RPATH) \ + $(KADMSRV_LIBS) $(KRB5_PTHREAD_LIB) $(KRB5_BASE_LIBS) $(TCL_LIBS) + + $(CLNTPROG): $(OBJS) $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $(CLNTPROG) $(OBJS) $(TCL_MAYBE_RPATH) \ + $(KRB5_PTHREAD_LIB) $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) $(TCL_LIBS) + + bsddb_dump: bsddb_dump.o +! $(CC_LINK) -o bsddb_dump bsddb_dump.o $(KADMSRV_LIBS) + + clean: + $(RM) $(CLNTPROG) $(SRVPROG) +--- 28,42 ---- + all-tcl: $(CLNTPROG) $(SRVPROG) + + $(SRVPROG): $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $(SRVPROG) $(OBJS) $(TCL_MAYBE_RPATH) \ + $(KADMSRV_LIBS) $(KRB5_PTHREAD_LIB) $(KRB5_BASE_LIBS) $(TCL_LIBS) + + $(CLNTPROG): $(OBJS) $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $(CLNTPROG) $(OBJS) $(TCL_MAYBE_RPATH) \ + $(KRB5_PTHREAD_LIB) $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) $(TCL_LIBS) + + bsddb_dump: bsddb_dump.o +! $(CC_LINK) -pie -o bsddb_dump bsddb_dump.o $(KADMSRV_LIBS) + + clean: + $(RM) $(CLNTPROG) $(SRVPROG) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kdc/do_tgs_req.c krb5_edit/src/kdc/do_tgs_req.c +*** krb5/src/kdc/do_tgs_req.c 2022-08-26 16:04:07.084000000 +0800 +--- krb5_edit/src/kdc/do_tgs_req.c 2022-08-26 16:03:34.984000000 +0800 +*************** +*** 208,213 **** +--- 208,218 ---- + status = "FIND_FAST"; + goto cleanup; + } ++ if (sprinc == NULL) { ++ status = "NULL_SERVER"; ++ errcode = KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN; ++ goto cleanup; ++ } + + errcode = get_local_tgt(kdc_context, &sprinc->realm, header_server, + &local_tgt, &local_tgt_storage, &local_tgt_key); +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kdc/kdc_preauth_ec.c krb5_edit/src/kdc/kdc_preauth_ec.c +*** krb5/src/kdc/kdc_preauth_ec.c 2022-08-26 16:04:07.088000000 +0800 +--- krb5_edit/src/kdc/kdc_preauth_ec.c 2022-08-26 16:03:34.984000000 +0800 +*************** +*** 87,93 **** + } + + /* Check for a configured FAST ec auth indicator. */ +! realmstr = k5memdup0(realm.data, realm.length, &retval); + if (realmstr != NULL) + retval = profile_get_string(context->profile, KRB5_CONF_REALMS, + realmstr, +--- 87,94 ---- + } + + /* Check for a configured FAST ec auth indicator. */ +! if (retval == 0) +! realmstr = k5memdup0(realm.data, realm.length, &retval); + if (realmstr != NULL) + retval = profile_get_string(context->profile, KRB5_CONF_REALMS, + realmstr, +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kdc/Makefile.in krb5_edit/src/kdc/Makefile.in +*** krb5/src/kdc/Makefile.in 2022-08-26 16:04:07.084000000 +0800 +--- krb5_edit/src/kdc/Makefile.in 2022-08-26 16:03:34.980000000 +0800 +*************** +*** 64,73 **** + kdc5_err.o: kdc5_err.h + + krb5kdc: $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) $(APPUTILS_DEPLIB) $(VERTO_DEPLIB) +! $(CC_LINK) -o krb5kdc $(OBJS) $(APPUTILS_LIB) $(KADMSRV_LIBS) $(KRB5_BASE_LIBS) $(VERTO_LIBS) + + rtest: $(RT_OBJS) $(KDB5_DEPLIBS) $(KADM_COMM_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o rtest $(RT_OBJS) $(KDB5_LIBS) $(KADM_COMM_LIBS) $(KRB5_BASE_LIBS) + + check-unix: rtest runenv.sh + $(RUN_TEST) $(srcdir)/rtscript > test.out +--- 64,73 ---- + kdc5_err.o: kdc5_err.h + + krb5kdc: $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) $(APPUTILS_DEPLIB) $(VERTO_DEPLIB) +! $(CC_LINK) -pie -o krb5kdc $(OBJS) $(APPUTILS_LIB) $(KADMSRV_LIBS) $(KRB5_BASE_LIBS) $(VERTO_LIBS) + + rtest: $(RT_OBJS) $(KDB5_DEPLIBS) $(KADM_COMM_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o rtest $(RT_OBJS) $(KDB5_LIBS) $(KADM_COMM_LIBS) $(KRB5_BASE_LIBS) + + check-unix: rtest runenv.sh + $(RUN_TEST) $(srcdir)/rtscript > test.out +*************** +*** 77,83 **** + T_REPLAY_OBJS=t_replay.o + + t_replay: $(T_REPLAY_OBJS) replay.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ $(T_REPLAY_OBJS) $(CMOCKA_LIBS) $(KRB5_BASE_LIBS) + + check-cmocka: t_replay + $(RUN_TEST) ./t_replay > /dev/null +--- 77,83 ---- + T_REPLAY_OBJS=t_replay.o + + t_replay: $(T_REPLAY_OBJS) replay.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ $(T_REPLAY_OBJS) $(CMOCKA_LIBS) $(KRB5_BASE_LIBS) + + check-cmocka: t_replay + $(RUN_TEST) ./t_replay > /dev/null +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/kprop/Makefile.in krb5_edit/src/kprop/Makefile.in +*** krb5/src/kprop/Makefile.in 2022-08-26 16:04:07.088000000 +0800 +--- krb5_edit/src/kprop/Makefile.in 2022-08-26 16:03:34.988000000 +0800 +*************** +*** 16,28 **** + + + kprop: $(CLIENTOBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o kprop $(CLIENTOBJS) $(KRB5_BASE_LIBS) @LIBUTIL@ + + kpropd: $(SERVEROBJS) $(KDB5_DEPLIB) $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) $(APPUTILS_DEPLIB) +! $(CC_LINK) -o kpropd $(SERVEROBJS) $(KDB5_LIB) $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) $(APPUTILS_LIB) @LIBUTIL@ + + kproplog: $(LOGOBJS) +! $(CC_LINK) -o kproplog $(LOGOBJS) $(KADMSRV_LIBS) $(KRB5_BASE_LIBS) + + install: + for f in kprop kpropd kproplog; do \ +--- 16,28 ---- + + + kprop: $(CLIENTOBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o kprop $(CLIENTOBJS) $(KRB5_BASE_LIBS) @LIBUTIL@ + + kpropd: $(SERVEROBJS) $(KDB5_DEPLIB) $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) $(APPUTILS_DEPLIB) +! $(CC_LINK) -pie -o kpropd $(SERVEROBJS) $(KDB5_LIB) $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) $(APPUTILS_LIB) @LIBUTIL@ + + kproplog: $(LOGOBJS) +! $(CC_LINK) -pie -o kproplog $(LOGOBJS) $(KADMSRV_LIBS) $(KRB5_BASE_LIBS) + + install: + for f in kprop kpropd kproplog; do \ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/crypto/builtin/aes/Makefile.in krb5_edit/src/lib/crypto/builtin/aes/Makefile.in +*** krb5/src/lib/crypto/builtin/aes/Makefile.in 2022-08-26 16:04:07.092000000 +0800 +--- krb5_edit/src/lib/crypto/builtin/aes/Makefile.in 2022-08-26 16:03:34.988000000 +0800 +*************** +*** 45,51 **** + depend: $(SRCS) + + aes-gen: aes-gen.o $(GEN_OBJS) +! $(CC_LINK) -o aes-gen aes-gen.o $(GEN_OBJS) + + run-aes-gen: aes-gen + ./aes-gen > kresults.out +--- 45,51 ---- + depend: $(SRCS) + + aes-gen: aes-gen.o $(GEN_OBJS) +! $(CC_LINK) -pie -o aes-gen aes-gen.o $(GEN_OBJS) + + run-aes-gen: aes-gen + ./aes-gen > kresults.out +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/crypto/builtin/camellia/Makefile.in krb5_edit/src/lib/crypto/builtin/camellia/Makefile.in +*** krb5/src/lib/crypto/builtin/camellia/Makefile.in 2022-08-26 16:04:07.092000000 +0800 +--- krb5_edit/src/lib/crypto/builtin/camellia/Makefile.in 2022-08-26 16:03:34.992000000 +0800 +*************** +*** 25,31 **** + depend: $(SRCS) + + camellia-gen: camellia-gen.o $(GEN_OBJS) +! $(CC_LINK) -o camellia-gen camellia-gen.o $(GEN_OBJS) + + run-camellia-gen: camellia-gen + ./camellia-gen > kresults.out +--- 25,31 ---- + depend: $(SRCS) + + camellia-gen: camellia-gen.o $(GEN_OBJS) +! $(CC_LINK) -pie -o camellia-gen camellia-gen.o $(GEN_OBJS) + + run-camellia-gen: camellia-gen + ./camellia-gen > kresults.out +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/crypto/builtin/des/Makefile.in krb5_edit/src/lib/crypto/builtin/des/Makefile.in +*** krb5/src/lib/crypto/builtin/des/Makefile.in 2022-08-26 16:04:07.092000000 +0800 +--- krb5_edit/src/lib/crypto/builtin/des/Makefile.in 2022-08-26 16:03:34.992000000 +0800 +*************** +*** 50,60 **** + + verify$(EXEEXT): t_verify.$(OBJEXT) $(TOBJS) f_parity.$(OBJEXT) \ + $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! $(CC_LINK) -o $@ t_verify.$(OBJEXT) $(TOBJS) f_parity.$(OBJEXT) \ + -lcom_err $(SUPPORT_LIB) + + destest$(EXEEXT): destest.$(OBJEXT) $(TOBJS) $(SUPPORT_DEPLIB) +! $(CC_LINK) -o $@ destest.$(OBJEXT) $(TOBJS) $(SUPPORT_LIB) + + all-unix: all-libobjs + +--- 50,60 ---- + + verify$(EXEEXT): t_verify.$(OBJEXT) $(TOBJS) f_parity.$(OBJEXT) \ + $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o $@ t_verify.$(OBJEXT) $(TOBJS) f_parity.$(OBJEXT) \ + -lcom_err $(SUPPORT_LIB) + + destest$(EXEEXT): destest.$(OBJEXT) $(TOBJS) $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o $@ destest.$(OBJEXT) $(TOBJS) $(SUPPORT_LIB) + + all-unix: all-libobjs + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/crypto/builtin/sha1/Makefile.in krb5_edit/src/lib/crypto/builtin/sha1/Makefile.in +*** krb5/src/lib/crypto/builtin/sha1/Makefile.in 2022-08-26 16:04:07.096000000 +0800 +--- krb5_edit/src/lib/crypto/builtin/sha1/Makefile.in 2022-08-26 16:03:34.996000000 +0800 +*************** +*** 19,31 **** + + depend: $(SRCS) + t_shs: t_shs.o shs.o $(SUPPORT_DEPLIB) +! $(CC_LINK) -o t_shs t_shs.o shs.o $(SUPPORT_LIB) + + $(OUTPRE)t_shs.exe: $(OUTPRE)t_shs.obj $(OUTPRE)shs.obj + link -out:$@ $** + + t_shs3: t_shs3.o shs.o $(SUPPORT_DEPLIB) +! $(CC_LINK) -o t_shs3 t_shs3.o shs.o $(SUPPORT_LIB) + + check-unix: t_shs t_shs3 + $(RUN_TEST) $(C)t_shs -x +--- 19,31 ---- + + depend: $(SRCS) + t_shs: t_shs.o shs.o $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o t_shs t_shs.o shs.o $(SUPPORT_LIB) + + $(OUTPRE)t_shs.exe: $(OUTPRE)t_shs.obj $(OUTPRE)shs.obj + link -out:$@ $** + + t_shs3: t_shs3.o shs.o $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o t_shs3 t_shs3.o shs.o $(SUPPORT_LIB) + + check-unix: t_shs t_shs3 + $(RUN_TEST) $(C)t_shs -x +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/crypto/crypto_tests/Makefile.in krb5_edit/src/lib/crypto/crypto_tests/Makefile.in +*** krb5/src/lib/crypto/crypto_tests/Makefile.in 2022-08-26 16:04:07.096000000 +0800 +--- krb5_edit/src/lib/crypto/crypto_tests/Makefile.in 2022-08-26 16:03:34.996000000 +0800 +*************** +*** 60,111 **** + # $(RUN_TEST) ./t_pkcs5 + + t_nfold$(EXEEXT): t_nfold.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_nfold.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_encrypt$(EXEEXT): t_encrypt.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_encrypt.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_decrypt$(EXEEXT): t_decrypt.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_decrypt.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_prf$(EXEEXT): t_prf.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_prf.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_prng$(EXEEXT): t_prng.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_prng.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_cmac$(EXEEXT): t_cmac.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_cmac.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_hmac$(EXEEXT): t_hmac.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_hmac.$(OBJEXT) $(KRB5_BASE_LIBS) + + #t_pkcs5$(EXEEXT): t_pkcs5.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! # $(CC_LINK) -o $@ t_pkcs5.$(OBJEXT) $(KRB5_BASE_LIBS) + + vectors$(EXEEXT): vectors.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ vectors.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_cts$(EXEEXT): t_cts.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_cts.$(OBJEXT) \ + $(KRB5_BASE_LIBS) + + t_sha2$(EXEEXT): t_sha2.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_sha2.$(OBJEXT) \ + $(KRB5_BASE_LIBS) + + t_short$(EXEEXT): t_short.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_short.$(OBJEXT) \ + $(KRB5_BASE_LIBS) + + t_cksums: t_cksums.o $(CRYTPO_DEPLIB) +! $(CC_LINK) -o t_cksums t_cksums.o -lkrb5 $(KRB5_BASE_LIBS) + + aes-test: aes-test.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o aes-test aes-test.$(OBJEXT) $(KRB5_BASE_LIBS) + + camellia-test: camellia-test.$(OBJEXT) $(CRYPTO_DEPLIB) +! $(CC_LINK) -o camellia-test camellia-test.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_mddriver4.o: $(srcdir)/t_mddriver.c + $(CC) -DMD=4 $(ALL_CFLAGS) -o t_mddriver4.o -c $(srcdir)/t_mddriver.c +--- 60,111 ---- + # $(RUN_TEST) ./t_pkcs5 + + t_nfold$(EXEEXT): t_nfold.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_nfold.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_encrypt$(EXEEXT): t_encrypt.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_encrypt.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_decrypt$(EXEEXT): t_decrypt.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_decrypt.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_prf$(EXEEXT): t_prf.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_prf.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_prng$(EXEEXT): t_prng.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_prng.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_cmac$(EXEEXT): t_cmac.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_cmac.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_hmac$(EXEEXT): t_hmac.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_hmac.$(OBJEXT) $(KRB5_BASE_LIBS) + + #t_pkcs5$(EXEEXT): t_pkcs5.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! # $(CC_LINK) -pie -o $@ t_pkcs5.$(OBJEXT) $(KRB5_BASE_LIBS) + + vectors$(EXEEXT): vectors.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ vectors.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_cts$(EXEEXT): t_cts.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_cts.$(OBJEXT) \ + $(KRB5_BASE_LIBS) + + t_sha2$(EXEEXT): t_sha2.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_sha2.$(OBJEXT) \ + $(KRB5_BASE_LIBS) + + t_short$(EXEEXT): t_short.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_short.$(OBJEXT) \ + $(KRB5_BASE_LIBS) + + t_cksums: t_cksums.o $(CRYTPO_DEPLIB) +! $(CC_LINK) -pie -o t_cksums t_cksums.o -lkrb5 $(KRB5_BASE_LIBS) + + aes-test: aes-test.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o aes-test aes-test.$(OBJEXT) $(KRB5_BASE_LIBS) + + camellia-test: camellia-test.$(OBJEXT) $(CRYPTO_DEPLIB) +! $(CC_LINK) -pie -o camellia-test camellia-test.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_mddriver4.o: $(srcdir)/t_mddriver.c + $(CC) -DMD=4 $(ALL_CFLAGS) -o t_mddriver4.o -c $(srcdir)/t_mddriver.c +*************** +*** 114,135 **** + $(CC_LINK) -DMD4 -o t_mddriver4 t_mddriver4.o $(KRB5_BASE_LIBS) + + t_mddriver: t_mddriver.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_mddriver t_mddriver.o $(KRB5_BASE_LIBS) + + t_kperf: t_kperf.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_kperf t_kperf.o $(KRB5_BASE_LIBS) + + t_str2key$(EXEEXT): t_str2key.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_str2key.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_derive$(EXEEXT): t_derive.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_derive.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_fork$(EXEEXT): t_fork.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_fork.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_cf2$(EXEEXT): t_cf2.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_cf2.$(OBJEXT) $(KRB5_BASE_LIBS) + + clean: + $(RM) t_nfold.o t_nfold t_encrypt t_encrypt.o \ +--- 114,135 ---- + $(CC_LINK) -DMD4 -o t_mddriver4 t_mddriver4.o $(KRB5_BASE_LIBS) + + t_mddriver: t_mddriver.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_mddriver t_mddriver.o $(KRB5_BASE_LIBS) + + t_kperf: t_kperf.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_kperf t_kperf.o $(KRB5_BASE_LIBS) + + t_str2key$(EXEEXT): t_str2key.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_str2key.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_derive$(EXEEXT): t_derive.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_derive.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_fork$(EXEEXT): t_fork.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_fork.$(OBJEXT) $(KRB5_BASE_LIBS) + + t_cf2$(EXEEXT): t_cf2.$(OBJEXT) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_cf2.$(OBJEXT) $(KRB5_BASE_LIBS) + + clean: + $(RM) t_nfold.o t_nfold t_encrypt t_encrypt.o \ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/crypto/krb/Makefile.in krb5_edit/src/lib/crypto/krb/Makefile.in +*** krb5/src/lib/crypto/krb/Makefile.in 2022-08-26 16:04:07.104000000 +0800 +--- krb5_edit/src/lib/crypto/krb/Makefile.in 2022-08-26 16:03:35.004000000 +0800 +*************** +*** 199,205 **** + fi + + t_fortuna: t_fortuna.o $(SUPPORT_DEPLIB) $(CRYPTO_DEPLIB) +! $(CC_LINK) -o $@ t_fortuna.o $(K5CRYPTO_LIB) $(SUPPORT_LIB) $(LIBS) + + clean-unix:: clean-libobjs + $(RM) t_fortuna.o t_fortuna t_fortuna.output +--- 199,205 ---- + fi + + t_fortuna: t_fortuna.o $(SUPPORT_DEPLIB) $(CRYPTO_DEPLIB) +! $(CC_LINK) -pie -o $@ t_fortuna.o $(K5CRYPTO_LIB) $(SUPPORT_LIB) $(LIBS) + + clean-unix:: clean-libobjs + $(RM) t_fortuna.o t_fortuna t_fortuna.output +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/crypto/libk5crypto_gauss.exports krb5_edit/src/lib/crypto/libk5crypto_gauss.exports +*** krb5/src/lib/crypto/libk5crypto_gauss.exports 1970-01-01 08:00:00.000000000 +0800 +--- krb5_edit/src/lib/crypto/libk5crypto_gauss.exports 2022-08-26 16:03:35.008000000 +0800 +*************** +*** 0 **** +--- 1,110 ---- ++ krb5_c_make_random_key ++ krb5_c_encrypt_length ++ krb5_process_key ++ krb5_string_to_cksumtype ++ krb5_c_valid_enctype ++ krb5_c_valid_cksumtype ++ krb5_string_to_key ++ krb5_c_encrypt_iov ++ krb5_c_checksum_length ++ is_keyed_cksum ++ krb5_c_padding_length ++ is_coll_proof_cksum ++ krb5_init_random_key ++ krb5_c_string_to_key_with_params ++ krb5_c_random_make_octets ++ krb5_c_random_os_entropy ++ krb5_c_decrypt ++ krb5_c_crypto_length ++ krb5_c_block_size ++ krb5_cksumtype_to_string ++ krb5_c_keyed_checksum_types ++ krb5_c_is_keyed_cksum ++ krb5_c_crypto_length_iov ++ valid_cksumtype ++ krb5_c_random_seed ++ krb5_c_random_to_key ++ krb5_verify_checksum ++ krb5_c_free_state ++ krb5_c_verify_checksum ++ krb5_c_random_add_entropy ++ krb5_c_decrypt_iov ++ krb5_c_make_checksum ++ krb5_checksum_size ++ krb5_free_cksumtypes ++ krb5_finish_key ++ krb5_encrypt_size ++ krb5_c_keylengths ++ krb5_c_prf ++ krb5_encrypt ++ krb5_string_to_enctype ++ krb5_c_is_coll_proof_cksum ++ krb5_c_init_state ++ krb5_eblock_enctype ++ krb5_decrypt ++ krb5_c_encrypt ++ krb5_c_enctype_compare ++ krb5_c_verify_checksum_iov ++ valid_enctype ++ krb5_enctype_to_string ++ krb5_enctype_to_name ++ krb5_c_make_checksum_iov ++ krb5_calculate_checksum ++ krb5_c_string_to_key ++ krb5_use_enctype ++ krb5_random_key ++ krb5_finish_random_key ++ krb5_c_prf_length ++ krb5int_c_mandatory_cksumtype ++ krb5_c_fx_cf2_simple ++ krb5int_c_weak_enctype ++ krb5_encrypt_data ++ krb5int_c_copy_keyblock ++ krb5int_c_copy_keyblock_contents ++ krb5int_c_free_keyblock_contents ++ krb5int_c_free_keyblock ++ krb5int_c_init_keyblock ++ krb5int_hash_md4 ++ krb5int_hash_md5 ++ krb5int_hash_sha256 ++ krb5int_hash_sha384 ++ krb5int_enc_arcfour ++ krb5int_hmac ++ krb5_k_create_key ++ krb5_k_decrypt ++ krb5_k_decrypt_iov ++ krb5_k_encrypt ++ krb5_k_encrypt_iov ++ krb5_k_free_key ++ krb5_k_key_enctype ++ krb5_k_key_keyblock ++ krb5_k_make_checksum ++ krb5_k_make_checksum_iov ++ krb5_k_prf ++ krb5_k_reference_key ++ krb5_k_verify_checksum ++ krb5_k_verify_checksum_iov ++ krb5int_aes_encrypt ++ krb5int_aes_decrypt ++ krb5int_enc_des3 ++ krb5int_arcfour_gsscrypt ++ krb5int_camellia_cbc_mac ++ krb5int_cmac_checksum ++ krb5int_enc_aes128 ++ krb5int_enc_aes256 ++ krb5int_enc_camellia128 ++ krb5int_enc_camellia256 ++ krb5int_derive_key ++ krb5int_derive_random ++ krb5int_aes_enc_blk ++ krb5int_aes_enc_key ++ k5_sha256 ++ k5_sha256_final ++ k5_sha256_init ++ k5_sha256_update ++ krb5int_nfold ++ k5_allow_weak_pbkdf2iter ++ krb5_c_prfplus ++ krb5_c_derive_prfplus ++ k5_enctype_to_ssf ++ krb5int_c_deprecated_enctype +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/crypto/Makefile.in krb5_edit/src/lib/crypto/Makefile.in +*** krb5/src/lib/crypto/Makefile.in 2022-08-26 16:04:07.092000000 +0800 +--- krb5_edit/src/lib/crypto/Makefile.in 2022-08-26 16:03:34.988000000 +0800 +*************** +*** 2,8 **** + BUILDTOP=$(REL)..$(S).. + SUBDIRS= krb $(CRYPTO_IMPL) crypto_tests + +! LIBBASE=k5crypto + LIBMAJOR=3 + LIBMINOR=1 + LIBINITFUNC=cryptoint_initialize_library +--- 2,8 ---- + BUILDTOP=$(REL)..$(S).. + SUBDIRS= krb $(CRYPTO_IMPL) crypto_tests + +! LIBBASE=k5crypto_gauss + LIBMAJOR=3 + LIBMINOR=1 + LIBINITFUNC=cryptoint_initialize_library +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/gssapi/generic/Makefile.in krb5_edit/src/lib/gssapi/generic/Makefile.in +*** krb5/src/lib/gssapi/generic/Makefile.in 2022-08-26 16:04:07.112000000 +0800 +--- krb5_edit/src/lib/gssapi/generic/Makefile.in 2022-08-26 16:03:35.012000000 +0800 +*************** +*** 127,133 **** + RIGHTPRINT=eltprt LEFTCMP=intcmp RIGHTCMP=eltcmp + maptest.o: maptest.c maptest.h + maptest: maptest.o +! $(CC_LINK) -o maptest maptest.o + + ##DOS##LIBOBJS = $(OBJS) + +--- 127,133 ---- + RIGHTPRINT=eltprt LEFTCMP=intcmp RIGHTCMP=eltcmp + maptest.o: maptest.c maptest.h + maptest: maptest.o +! $(CC_LINK) -pie -o maptest maptest.o + + ##DOS##LIBOBJS = $(OBJS) + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/gssapi/libgssapi_krb5_gauss.exports krb5_edit/src/lib/gssapi/libgssapi_krb5_gauss.exports +*** krb5/src/lib/gssapi/libgssapi_krb5_gauss.exports 1970-01-01 08:00:00.000000000 +0800 +--- krb5_edit/src/lib/gssapi/libgssapi_krb5_gauss.exports 2022-08-26 16:03:35.020000000 +0800 +*************** +*** 0 **** +--- 1,168 ---- ++ GSS_C_ATTR_LOCAL_LOGIN_USER ++ GSS_C_INQ_SSPI_SESSION_KEY ++ GSS_C_INQ_NEGOEX_KEY ++ GSS_C_INQ_NEGOEX_VERIFY_KEY ++ GSS_C_NT_ANONYMOUS ++ GSS_C_NT_COMPOSITE_EXPORT ++ GSS_C_NT_EXPORT_NAME ++ GSS_C_NT_HOSTBASED_SERVICE ++ GSS_C_NT_HOSTBASED_SERVICE_X ++ GSS_C_NT_MACHINE_UID_NAME ++ GSS_C_NT_STRING_UID_NAME ++ GSS_C_NT_USER_NAME ++ GSS_KRB5_NT_PRINCIPAL_NAME ++ GSS_KRB5_NT_ENTERPRISE_NAME ++ GSS_KRB5_CRED_NO_CI_FLAGS_X ++ GSS_KRB5_GET_CRED_IMPERSONATOR ++ GSS_C_MA_MECH_CONCRETE ++ GSS_C_MA_MECH_PSEUDO ++ GSS_C_MA_MECH_COMPOSITE ++ GSS_C_MA_MECH_NEGO ++ GSS_C_MA_MECH_GLUE ++ GSS_C_MA_NOT_MECH ++ GSS_C_MA_DEPRECATED ++ GSS_C_MA_NOT_DFLT_MECH ++ GSS_C_MA_ITOK_FRAMED ++ GSS_C_MA_AUTH_INIT ++ GSS_C_MA_AUTH_TARG ++ GSS_C_MA_AUTH_INIT_INIT ++ GSS_C_MA_AUTH_TARG_INIT ++ GSS_C_MA_AUTH_INIT_ANON ++ GSS_C_MA_AUTH_TARG_ANON ++ GSS_C_MA_DELEG_CRED ++ GSS_C_MA_INTEG_PROT ++ GSS_C_MA_CONF_PROT ++ GSS_C_MA_MIC ++ GSS_C_MA_WRAP ++ GSS_C_MA_PROT_READY ++ GSS_C_MA_REPLAY_DET ++ GSS_C_MA_OOS_DET ++ GSS_C_MA_CBINDINGS ++ GSS_C_MA_PFS ++ GSS_C_MA_COMPRESS ++ GSS_C_MA_CTX_TRANS ++ GSS_C_MA_NEGOEX_AND_SPNEGO ++ GSS_C_SEC_CONTEXT_SASL_SSF ++ gss_accept_sec_context ++ gss_acquire_cred ++ gss_acquire_cred_with_password ++ gss_acquire_cred_impersonate_name ++ gss_add_buffer_set_member ++ gss_add_cred ++ gss_add_cred_impersonate_name ++ gss_add_cred_with_password ++ gss_add_oid_set_member ++ gss_authorize_localname ++ gss_canonicalize_name ++ gss_compare_name ++ gss_complete_auth_token ++ gss_context_time ++ gss_create_empty_buffer_set ++ gss_create_empty_oid_set ++ gss_decapsulate_token ++ gss_delete_name_attribute ++ gss_delete_sec_context ++ gss_display_mech_attr ++ gss_display_name ++ gss_display_name_ext ++ gss_display_status ++ gss_duplicate_name ++ gss_encapsulate_token ++ gss_export_cred ++ gss_export_name ++ gss_export_name_composite ++ gss_export_sec_context ++ gss_get_mic ++ gss_get_mic_iov ++ gss_get_mic_iov_length ++ gss_get_name_attribute ++ gss_import_cred ++ gss_import_name ++ gss_import_sec_context ++ gss_indicate_mechs ++ gss_init_sec_context ++ gss_indicate_mechs_by_attrs ++ gss_inquire_attrs_for_mech ++ gss_inquire_context ++ gss_inquire_cred ++ gss_inquire_cred_by_mech ++ gss_inquire_cred_by_oid ++ gss_inquire_mech_for_saslname ++ gss_inquire_mechs_for_name ++ gss_inquire_names_for_mech ++ gss_inquire_saslname_for_mech ++ gss_inquire_sec_context_by_oid ++ gss_krb5_ccache_name ++ gss_krb5_copy_ccache ++ gss_krb5_export_lucid_sec_context ++ gss_krb5_free_lucid_sec_context ++ gss_krb5_get_tkt_flags ++ gss_krb5_import_cred ++ gss_krb5_set_allowable_enctypes ++ gss_krb5_set_cred_rcache ++ gss_krb5int_make_seal_token_v3 ++ gss_krb5int_unseal_token_v3 ++ gsskrb5_extract_authtime_from_sec_context ++ gsskrb5_extract_authz_data_from_sec_context ++ gss_localname ++ gss_map_name_to_any ++ gss_mech_iakerb ++ gss_mech_krb5 ++ gss_mech_krb5_old ++ gss_mech_krb5_wrong ++ gss_mech_set_krb5 ++ gss_mech_set_krb5_both ++ gss_mech_set_krb5_old ++ gss_nt_exported_name ++ gss_nt_krb5_name ++ gss_nt_krb5_principal ++ gss_nt_machine_uid_name ++ gss_nt_service_name ++ gss_nt_service_name_v2 ++ gss_nt_string_uid_name ++ gss_nt_user_name ++ gss_oid_equal ++ gss_oid_to_str ++ gss_pname_to_uid ++ gss_pseudo_random ++ gss_process_context_token ++ gss_release_any_name_mapping ++ gss_release_buffer_set ++ gss_release_buffer ++ gss_release_cred ++ gss_release_iov_buffer ++ gss_release_name ++ gss_release_oid ++ gss_release_oid_set ++ gss_seal ++ gss_set_name_attribute ++ gss_set_neg_mechs ++ gss_set_sec_context_option ++ gss_sign ++ gss_store_cred ++ gss_str_to_oid ++ gss_test_oid_set_member ++ gss_unseal ++ gss_unwrap ++ gss_unwrap_aead ++ gss_unwrap_iov ++ gss_userok ++ gss_verify ++ gss_verify_mic ++ gss_verify_mic_iov ++ gss_wrap ++ gss_wrap_aead ++ gss_wrap_iov ++ gss_wrap_iov_length ++ gss_wrap_size_limit ++ gss_set_cred_option ++ gssspi_set_cred_option ++ gssspi_mech_invoke ++ krb5_gss_dbg_client_expcreds ++ krb5_gss_register_acceptor_identity ++ krb5_gss_use_kdc_context ++ gss_inquire_name ++ gss_acquire_cred_from ++ gss_add_cred_from ++ gss_store_cred_into ++ gssint_g_seqstate_init +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/gssapi/Makefile.in krb5_edit/src/lib/gssapi/Makefile.in +*** krb5/src/lib/gssapi/Makefile.in 2022-08-26 16:04:07.112000000 +0800 +--- krb5_edit/src/lib/gssapi/Makefile.in 2022-08-26 16:03:35.012000000 +0800 +*************** +*** 18,24 **** + OBJS= + SRCS= + +! LIBBASE=gssapi_krb5 + LIBMAJOR=2 + LIBMINOR=2 + #LIBINITFUNC=gssint_lib_init +--- 18,24 ---- + OBJS= + SRCS= + +! LIBBASE=gssapi_krb5_gauss + LIBMAJOR=2 + LIBMINOR=2 + #LIBINITFUNC=gssint_lib_init +*************** +*** 27,33 **** + SUBDIROBJLISTS=generic/OBJS.ST mechglue/OBJS.ST krb5/OBJS.ST spnego/OBJS.ST + SHLIB_EXPDEPS=\ + $(KRB5_DEPLIB) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB) $(COM_ERR_DEPLIB) +! SHLIB_EXPLIBS=-lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB) $(DL_LIB) $(LIBS) + RELDIR=gssapi + + all-unix: all-liblinks @MAINT@ verify-calling-conventions-gssapi +--- 27,33 ---- + SUBDIROBJLISTS=generic/OBJS.ST mechglue/OBJS.ST krb5/OBJS.ST spnego/OBJS.ST + SHLIB_EXPDEPS=\ + $(KRB5_DEPLIB) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB) $(COM_ERR_DEPLIB) +! SHLIB_EXPLIBS=-lkrb5_gauss -lk5crypto_gauss -lcom_err_gauss $(SUPPORT_LIB) $(DL_LIB) $(LIBS) + RELDIR=gssapi + + all-unix: all-liblinks @MAINT@ verify-calling-conventions-gssapi +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/kadm5/clnt/Makefile.in krb5_edit/src/lib/kadm5/clnt/Makefile.in +*** krb5/src/lib/kadm5/clnt/Makefile.in 2022-08-26 16:04:07.128000000 +0800 +--- krb5_edit/src/lib/kadm5/clnt/Makefile.in 2022-08-26 16:03:35.028000000 +0800 +*************** +*** 7,18 **** + LIBMINOR=0 + STOBJLISTS=../OBJS.ST OBJS.ST + SHLIB_EXPDEPS=\ +! $(TOPLIBD)/libgssrpc$(SHLIBEXT) \ +! $(TOPLIBD)/libgssapi_krb5$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) \ +! $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ + $(COM_ERR_DEPLIB) $(SUPPORT_LIBDEP) +! SHLIB_EXPLIBS=-lgssrpc -lgssapi_krb5 -lkrb5 -lk5crypto $(SUPPORT_LIB) -lcom_err $(LIBS) + RELDIR=kadm5/clnt + + ##DOSBUILDTOP = ..\..\.. +--- 7,18 ---- + LIBMINOR=0 + STOBJLISTS=../OBJS.ST OBJS.ST + SHLIB_EXPDEPS=\ +! $(TOPLIBD)/libgssrpc_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libgssapi_krb5_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ + $(COM_ERR_DEPLIB) $(SUPPORT_LIBDEP) +! SHLIB_EXPLIBS=-lgssrpc_gauss -lgssapi_krb5_gauss -lkrb5_gauss -lk5crypto_gauss $(SUPPORT_LIB) -lcom_err_gauss $(LIBS) + RELDIR=kadm5/clnt + + ##DOSBUILDTOP = ..\..\.. +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/kadm5/srv/Makefile.in krb5_edit/src/lib/kadm5/srv/Makefile.in +*** krb5/src/lib/kadm5/srv/Makefile.in 2022-08-26 16:04:07.132000000 +0800 +--- krb5_edit/src/lib/kadm5/srv/Makefile.in 2022-08-26 16:03:35.028000000 +0800 +*************** +*** 14,27 **** + STOBJLISTS=../OBJS.ST OBJS.ST + + SHLIB_EXPDEPS=\ +! $(TOPLIBD)/libgssrpc$(SHLIBEXT) \ +! $(TOPLIBD)/libgssapi_krb5$(SHLIBEXT) \ + $(TOPLIBD)/libkdb5$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) \ +! $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ + $(COM_ERR_DEPLIB) $(SUPPORT_LIBDEP) +! SHLIB_EXPLIBS = -lgssrpc -lgssapi_krb5 -lkdb5 $(KDB5_DB_LIB) \ +! -lkrb5 -lk5crypto $(SUPPORT_LIB) -lcom_err @GEN_LIB@ $(LIBS) + RELDIR=kadm5/srv + + SRCS = $(srcdir)/pwqual.c \ +--- 14,27 ---- + STOBJLISTS=../OBJS.ST OBJS.ST + + SHLIB_EXPDEPS=\ +! $(TOPLIBD)/libgssrpc_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libgssapi_krb5_gauss$(SHLIBEXT) \ + $(TOPLIBD)/libkdb5$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ + $(COM_ERR_DEPLIB) $(SUPPORT_LIBDEP) +! SHLIB_EXPLIBS = -lgssrpc_gauss -lgssapi_krb5_gauss -lkdb5 $(KDB5_DB_LIB) \ +! -lkrb5_gauss -lk5crypto_gauss $(SUPPORT_LIB) -lcom_err_gauss @GEN_LIB@ $(LIBS) + RELDIR=kadm5/srv + + SRCS = $(srcdir)/pwqual.c \ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/kadm5/unit-test/Makefile.in krb5_edit/src/lib/kadm5/unit-test/Makefile.in +*** krb5/src/lib/kadm5/unit-test/Makefile.in 2022-08-26 16:04:07.132000000 +0800 +--- krb5_edit/src/lib/kadm5/unit-test/Makefile.in 2022-08-26 16:03:35.032000000 +0800 +*************** +*** 10,35 **** + # + + init-test: init-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o init-test init-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + destroy-test: destroy-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o destroy-test destroy-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + client-handle-test: client-handle-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o client-handle-test client-handle-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + client-handle-test.o: handle-test.c + $(CC) $(ALL_CFLAGS) -DCLIENT_TEST -o client-handle-test.o -c $(srcdir)/handle-test.c + + client-iter-test: iter-test.o $(KADMLCNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o client-iter-test iter-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + client-setkey-test: setkey-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o client-setkey-test setkey-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + # +--- 10,35 ---- + # + + init-test: init-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o init-test init-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + destroy-test: destroy-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o destroy-test destroy-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + client-handle-test: client-handle-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o client-handle-test client-handle-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + client-handle-test.o: handle-test.c + $(CC) $(ALL_CFLAGS) -DCLIENT_TEST -o client-handle-test.o -c $(srcdir)/handle-test.c + + client-iter-test: iter-test.o $(KADMLCNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o client-iter-test iter-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + client-setkey-test: setkey-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o client-setkey-test setkey-test.o \ + $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) + + # +*************** +*** 37,59 **** + # + + randkey-test: randkey-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o randkey-test randkey-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + server-handle-test: handle-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o server-handle-test handle-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + lock-test: lock-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o lock-test lock-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + server-iter-test: iter-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o server-iter-test iter-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + server-setkey-test: setkey-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o server-setkey-test setkey-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + runenv.exp: Makefile +--- 37,59 ---- + # + + randkey-test: randkey-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o randkey-test randkey-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + server-handle-test: handle-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o server-handle-test handle-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + lock-test: lock-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o lock-test lock-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + server-iter-test: iter-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o server-iter-test iter-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + server-setkey-test: setkey-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o server-setkey-test setkey-test.o \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + runenv.exp: Makefile +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/kdb/Makefile.in krb5_edit/src/lib/kdb/Makefile.in +*** krb5/src/lib/kdb/Makefile.in 2022-08-26 16:04:07.136000000 +0800 +--- krb5_edit/src/lib/kdb/Makefile.in 2022-08-26 16:03:35.032000000 +0800 +*************** +*** 13,22 **** + # Depends on libk5crypto and libkrb5 + + SHLIB_EXPDEPS = \ +! $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ +! $(TOPLIBD)/libgssrpc$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) +! SHLIB_EXPLIBS=-lgssrpc -lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB) $(DL_LIB) $(LIBS) + + adb_err.$(OBJEXT): adb_err.c + adb_err.c adb_err.h: $(srcdir)/adb_err.et +--- 13,22 ---- + # Depends on libk5crypto and libkrb5 + + SHLIB_EXPDEPS = \ +! $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libgssrpc_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) +! SHLIB_EXPLIBS=-lgssrpc_gauss -lkrb5_gauss -lk5crypto_gauss -lcom_err_gauss $(SUPPORT_LIB) $(DL_LIB) $(LIBS) + + adb_err.$(OBJEXT): adb_err.c + adb_err.c adb_err.h: $(srcdir)/adb_err.et +*************** +*** 68,83 **** + depend: adb_err.h + + t_stringattr: t_stringattr.o $(KDB5_DEPLIBS) $(KADM_COMM_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_stringattr.o $(KDB5_LIBS) $(KADM_COMM_LIBS) \ + $(KRB5_BASE_LIBS) + + t_ulog: t_ulog.o $(KDB5_DEPLIBS) $(KADM_COMM_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_ulog.o $(KDB5_LIBS) $(KADM_COMM_LIBS) \ + $(KRB5_BASE_LIBS) + + t_sort_key_data: t_sort_key_data.o $(KDB5_DEPLIBS) $(KADM_COMM_DEPLIBS) \ + $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_sort_key_data.o \ + $(KDB5_LIBS) $(KADM_COMM_LIBS) $(CMOCKA_LIBS) $(KRB5_BASE_LIBS) + @lib_frag@ + @libobj_frag@ +--- 68,83 ---- + depend: adb_err.h + + t_stringattr: t_stringattr.o $(KDB5_DEPLIBS) $(KADM_COMM_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_stringattr.o $(KDB5_LIBS) $(KADM_COMM_LIBS) \ + $(KRB5_BASE_LIBS) + + t_ulog: t_ulog.o $(KDB5_DEPLIBS) $(KADM_COMM_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_ulog.o $(KDB5_LIBS) $(KADM_COMM_LIBS) \ + $(KRB5_BASE_LIBS) + + t_sort_key_data: t_sort_key_data.o $(KDB5_DEPLIBS) $(KADM_COMM_DEPLIBS) \ + $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_sort_key_data.o \ + $(KDB5_LIBS) $(KADM_COMM_LIBS) $(CMOCKA_LIBS) $(KRB5_BASE_LIBS) + @lib_frag@ + @libobj_frag@ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krad/Makefile.in krb5_edit/src/lib/krad/Makefile.in +*** krb5/src/lib/krad/Makefile.in 2022-08-26 16:04:07.140000000 +0800 +--- krb5_edit/src/lib/krad/Makefile.in 2022-08-26 16:03:35.036000000 +0800 +*************** +*** 44,70 **** + + T_ATTR_OBJS=attr.o t_attr.o + t_attr: $(T_ATTR_OBJS) $(TESTDEPS) +! $(CC_LINK) -o $@ $(T_ATTR_OBJS) $(TESTLIBS) + + T_ATTRSET_OBJS=attr.o attrset.o t_attrset.o + t_attrset: $(T_ATTRSET_OBJS) $(TESTDEPS) +! $(CC_LINK) -o $@ $(T_ATTRSET_OBJS) $(TESTLIBS) + + T_CODE_OBJS=code.o t_code.o + t_code: $(T_CODE_OBJS) $(TESTDEPS) +! $(CC_LINK) -o $@ $(T_CODE_OBJS) $(TESTLIBS) + + T_PACKET_OBJS=attr.o attrset.o code.o packet.o t_packet.o + t_packet: $(T_PACKET_OBJS) $(TESTDEPS) +! $(CC_LINK) -o $@ $(T_PACKET_OBJS) $(TESTLIBS) + + T_REMOTE_OBJS=attr.o attrset.o code.o packet.o remote.o t_remote.o + t_remote: $(T_REMOTE_OBJS) $(TESTDEPS) $(VERTO_DEPLIB) +! $(CC_LINK) -o $@ $(T_REMOTE_OBJS) $(TESTLIBS) $(VERTO_LIBS) + + T_CLIENT_OBJS=attr.o attrset.o code.o packet.o remote.o client.o t_client.o + t_client: $(T_CLIENT_OBJS) $(TESTDEPS) $(VERTO_DEPLIB) +! $(CC_LINK) -o $@ $(T_CLIENT_OBJS) $(TESTLIBS) $(VERTO_LIBS) + + clean-unix:: clean-libobjs + $(RM) *.o t_attr t_attrset t_code t_packet t_remote t_client +--- 44,70 ---- + + T_ATTR_OBJS=attr.o t_attr.o + t_attr: $(T_ATTR_OBJS) $(TESTDEPS) +! $(CC_LINK) -pie -o $@ $(T_ATTR_OBJS) $(TESTLIBS) + + T_ATTRSET_OBJS=attr.o attrset.o t_attrset.o + t_attrset: $(T_ATTRSET_OBJS) $(TESTDEPS) +! $(CC_LINK) -pie -o $@ $(T_ATTRSET_OBJS) $(TESTLIBS) + + T_CODE_OBJS=code.o t_code.o + t_code: $(T_CODE_OBJS) $(TESTDEPS) +! $(CC_LINK) -pie -o $@ $(T_CODE_OBJS) $(TESTLIBS) + + T_PACKET_OBJS=attr.o attrset.o code.o packet.o t_packet.o + t_packet: $(T_PACKET_OBJS) $(TESTDEPS) +! $(CC_LINK) -pie -o $@ $(T_PACKET_OBJS) $(TESTLIBS) + + T_REMOTE_OBJS=attr.o attrset.o code.o packet.o remote.o t_remote.o + t_remote: $(T_REMOTE_OBJS) $(TESTDEPS) $(VERTO_DEPLIB) +! $(CC_LINK) -pie -o $@ $(T_REMOTE_OBJS) $(TESTLIBS) $(VERTO_LIBS) + + T_CLIENT_OBJS=attr.o attrset.o code.o packet.o remote.o client.o t_client.o + t_client: $(T_CLIENT_OBJS) $(TESTDEPS) $(VERTO_DEPLIB) +! $(CC_LINK) -pie -o $@ $(T_CLIENT_OBJS) $(TESTLIBS) $(VERTO_LIBS) + + clean-unix:: clean-libobjs + $(RM) *.o t_attr t_attrset t_code t_packet t_remote t_client +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/ccache/Makefile.in krb5_edit/src/lib/krb5/ccache/Makefile.in +*** krb5/src/lib/krb5/ccache/Makefile.in 2022-08-26 16:04:07.140000000 +0800 +--- krb5_edit/src/lib/krb5/ccache/Makefile.in 2022-08-26 16:03:35.040000000 +0800 +*************** +*** 126,144 **** + T_CC_OBJS=t_cc.o + + t_cc: $(T_CC_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_cc $(T_CC_OBJS) $(KRB5_BASE_LIBS) + + T_CCCOL_OBJS = t_cccol.o + t_cccol: $(T_CCCOL_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ $(T_CCCOL_OBJS) $(KRB5_BASE_LIBS) + + T_CCCURSOR_OBJS = t_cccursor.o + t_cccursor: $(T_CCCURSOR_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ $(T_CCCURSOR_OBJS) $(KRB5_BASE_LIBS) + + T_MARSHAL_OBJS = t_marshal.o + t_marshal: $(T_MARSHAL_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ $(T_MARSHAL_OBJS) $(KRB5_BASE_LIBS) + + check-unix: t_cc t_marshal + $(RUN_TEST) ./t_cc +--- 126,144 ---- + T_CC_OBJS=t_cc.o + + t_cc: $(T_CC_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_cc $(T_CC_OBJS) $(KRB5_BASE_LIBS) + + T_CCCOL_OBJS = t_cccol.o + t_cccol: $(T_CCCOL_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ $(T_CCCOL_OBJS) $(KRB5_BASE_LIBS) + + T_CCCURSOR_OBJS = t_cccursor.o + t_cccursor: $(T_CCCURSOR_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ $(T_CCCURSOR_OBJS) $(KRB5_BASE_LIBS) + + T_MARSHAL_OBJS = t_marshal.o + t_marshal: $(T_MARSHAL_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ $(T_MARSHAL_OBJS) $(KRB5_BASE_LIBS) + + check-unix: t_cc t_marshal + $(RUN_TEST) ./t_cc +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/keytab/Makefile.in krb5_edit/src/lib/krb5/keytab/Makefile.in +*** krb5/src/lib/krb5/keytab/Makefile.in 2022-08-26 16:04:07.148000000 +0800 +--- krb5_edit/src/lib/krb5/keytab/Makefile.in 2022-08-26 16:03:35.044000000 +0800 +*************** +*** 55,61 **** + + T_KEYTAB_OBJS = t_keytab.o + t_keytab: $(T_KEYTAB_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ $(T_KEYTAB_OBJS) $(KRB5_BASE_LIBS) + + clean-unix:: + $(RM) t_keytab t_keytab.o +--- 55,61 ---- + + T_KEYTAB_OBJS = t_keytab.o + t_keytab: $(T_KEYTAB_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ $(T_KEYTAB_OBJS) $(KRB5_BASE_LIBS) + + clean-unix:: + $(RM) t_keytab t_keytab.o +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/krb/init_ctx.c krb5_edit/src/lib/krb5/krb/init_ctx.c +*** krb5/src/lib/krb5/krb/init_ctx.c 2022-08-26 16:04:07.152000000 +0800 +--- krb5_edit/src/lib/krb5/krb/init_ctx.c 2022-08-26 16:03:35.052000000 +0800 +*************** +*** 56,61 **** +--- 56,64 ---- + #include "brand.c" + #include "../krb5_libinit.h" + ++ __thread char *G_DEFAULT_PROFILE_PATH = NULL; ++ __thread char *G_DEFAULT_CACHE_PATH = NULL; ++ + static krb5_enctype default_enctype_list[] = { + ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, + ENCTYPE_AES256_CTS_HMAC_SHA384_192, ENCTYPE_AES128_CTS_HMAC_SHA256_128, +*************** +*** 120,125 **** +--- 123,175 ---- + return 0; + } + ++ void KRB5_CALLCONV ++ krb5_set_profile_path(char *profile_path) ++ { ++ if (NULL != profile_path) { ++ if (profile_path[0] == '\0') { ++ if (NULL != G_DEFAULT_PROFILE_PATH) { ++ free(G_DEFAULT_PROFILE_PATH); ++ } ++ G_DEFAULT_PROFILE_PATH = strdup(DEFAULT_PROFILE_PATH); ++ } else { ++ if (NULL == G_DEFAULT_PROFILE_PATH) { ++ G_DEFAULT_PROFILE_PATH = strdup(profile_path); ++ } else if (strcasecmp(profile_path, G_DEFAULT_PROFILE_PATH)) { ++ free(G_DEFAULT_PROFILE_PATH); ++ G_DEFAULT_PROFILE_PATH = strdup(profile_path); ++ } ++ } ++ } ++ } ++ ++ void KRB5_CALLCONV ++ krb5_set_cache_path(char *cache_path) ++ { ++ if (NULL != cache_path && cache_path[0] != '\0') { ++ if (NULL == G_DEFAULT_CACHE_PATH) { ++ G_DEFAULT_CACHE_PATH = strdup(cache_path); ++ } else if (strcasecmp(cache_path, G_DEFAULT_CACHE_PATH)) { ++ free(G_DEFAULT_CACHE_PATH); ++ G_DEFAULT_CACHE_PATH = strdup(cache_path); ++ } ++ } ++ } ++ ++ void KRB5_CALLCONV ++ krb5_clean_cache_profile_path() ++ { ++ if (NULL != G_DEFAULT_CACHE_PATH) { ++ free(G_DEFAULT_CACHE_PATH); ++ G_DEFAULT_CACHE_PATH = NULL; ++ } ++ ++ if (NULL != G_DEFAULT_PROFILE_PATH) { ++ free(G_DEFAULT_PROFILE_PATH); ++ G_DEFAULT_PROFILE_PATH = NULL; ++ } ++ } ++ + krb5_error_code KRB5_CALLCONV + krb5_init_context(krb5_context *context) + { +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/krb/Makefile.in krb5_edit/src/lib/krb5/krb/Makefile.in +*** krb5/src/lib/krb5/krb/Makefile.in 2022-08-26 16:04:07.148000000 +0800 +--- krb5_edit/src/lib/krb5/krb/Makefile.in 2022-08-26 16:03:35.044000000 +0800 +*************** +*** 410,475 **** + T_PARSE_HOST_STRING_OBJS= t_parse_host_string.o parse_host_string.o + + t_walk_rtree: $(T_WALK_RTREE_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_walk_rtree $(T_WALK_RTREE_OBJS) $(KRB5_BASE_LIBS) + t_ad_fx_armor: t_ad_fx_armor.o +! $(CC_LINK) -o $@ t_ad_fx_armor.o $(KRB5_BASE_LIBS) + + t_authdata: t_authdata.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_authdata.o $(KRB5_BASE_LIBS) + + t_kerb: $(T_KERB_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_kerb $(T_KERB_OBJS) $(KRB5_BASE_LIBS) + + t_ser: $(T_SER_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_ser $(T_SER_OBJS) $(KRB5_BASE_LIBS) + + t_deltat : $(T_DELTAT_OBJS) $(SUPPORT_DEPLIB) +! $(CC_LINK) -o t_deltat $(T_DELTAT_OBJS) $(SUPPORT_LIB) + + T_EXPAND_OBJS=t_expand.o + t_expand.o : t_expand.c + t_expand : $(T_EXPAND_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_expand $(T_EXPAND_OBJS) $(KRB5_BASE_LIBS) + + t_pac: $(T_PAC_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_pac $(T_PAC_OBJS) $(KRB5_BASE_LIBS) + + t_princ: $(T_PRINC_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_princ $(T_PRINC_OBJS) $(KRB5_BASE_LIBS) + + t_etypes: $(T_ETYPES_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_etypes $(T_ETYPES_OBJS) $(KRB5_BASE_LIBS) + + t_parse_host_string: $(T_PARSE_HOST_STRING_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ $(T_PARSE_HOST_STRING_OBJS) $(CMOCKA_LIBS) \ + $(KRB5_BASE_LIBS) + + t_expire_warn: t_expire_warn.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_expire_warn.o $(KRB5_BASE_LIBS) + + t_vfy_increds: t_vfy_increds.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_vfy_increds.o $(KRB5_BASE_LIBS) + + t_in_ccache: t_in_ccache.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_in_ccache.o $(KRB5_BASE_LIBS) + + t_cc_config: t_cc_config.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_cc_config.o $(KRB5_BASE_LIBS) + + t_copy_context: t_copy_context.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_copy_context.o $(KRB5_BASE_LIBS) + + t_response_items: t_response_items.o response_items.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_response_items.o response_items.o $(KRB5_BASE_LIBS) + + t_sname_match: t_sname_match.o sname_match.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_sname_match.o sname_match.o $(KRB5_BASE_LIBS) + + t_valid_times: t_valid_times.o valid_times.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_valid_times.o valid_times.o $(KRB5_BASE_LIBS) + + t_get_etype_info: t_get_etype_info.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_get_etype_info.o $(KRB5_BASE_LIBS) + + TEST_PROGS= t_walk_rtree t_kerb t_ser t_deltat t_expand t_authdata t_pac \ + t_in_ccache t_cc_config t_copy_context t_princ t_etypes t_vfy_increds \ +--- 410,475 ---- + T_PARSE_HOST_STRING_OBJS= t_parse_host_string.o parse_host_string.o + + t_walk_rtree: $(T_WALK_RTREE_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_walk_rtree $(T_WALK_RTREE_OBJS) $(KRB5_BASE_LIBS) + t_ad_fx_armor: t_ad_fx_armor.o +! $(CC_LINK) -pie -o $@ t_ad_fx_armor.o $(KRB5_BASE_LIBS) + + t_authdata: t_authdata.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_authdata.o $(KRB5_BASE_LIBS) + + t_kerb: $(T_KERB_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_kerb $(T_KERB_OBJS) $(KRB5_BASE_LIBS) + + t_ser: $(T_SER_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_ser $(T_SER_OBJS) $(KRB5_BASE_LIBS) + + t_deltat : $(T_DELTAT_OBJS) $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o t_deltat $(T_DELTAT_OBJS) $(SUPPORT_LIB) + + T_EXPAND_OBJS=t_expand.o + t_expand.o : t_expand.c + t_expand : $(T_EXPAND_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_expand $(T_EXPAND_OBJS) $(KRB5_BASE_LIBS) + + t_pac: $(T_PAC_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_pac $(T_PAC_OBJS) $(KRB5_BASE_LIBS) + + t_princ: $(T_PRINC_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_princ $(T_PRINC_OBJS) $(KRB5_BASE_LIBS) + + t_etypes: $(T_ETYPES_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_etypes $(T_ETYPES_OBJS) $(KRB5_BASE_LIBS) + + t_parse_host_string: $(T_PARSE_HOST_STRING_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ $(T_PARSE_HOST_STRING_OBJS) $(CMOCKA_LIBS) \ + $(KRB5_BASE_LIBS) + + t_expire_warn: t_expire_warn.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_expire_warn.o $(KRB5_BASE_LIBS) + + t_vfy_increds: t_vfy_increds.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_vfy_increds.o $(KRB5_BASE_LIBS) + + t_in_ccache: t_in_ccache.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_in_ccache.o $(KRB5_BASE_LIBS) + + t_cc_config: t_cc_config.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_cc_config.o $(KRB5_BASE_LIBS) + + t_copy_context: t_copy_context.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_copy_context.o $(KRB5_BASE_LIBS) + + t_response_items: t_response_items.o response_items.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_response_items.o response_items.o $(KRB5_BASE_LIBS) + + t_sname_match: t_sname_match.o sname_match.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_sname_match.o sname_match.o $(KRB5_BASE_LIBS) + + t_valid_times: t_valid_times.o valid_times.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_valid_times.o valid_times.o $(KRB5_BASE_LIBS) + + t_get_etype_info: t_get_etype_info.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_get_etype_info.o $(KRB5_BASE_LIBS) + + TEST_PROGS= t_walk_rtree t_kerb t_ser t_deltat t_expand t_authdata t_pac \ + t_in_ccache t_cc_config t_copy_context t_princ t_etypes t_vfy_increds \ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/libkrb5.exports krb5_edit/src/lib/krb5/libkrb5.exports +*** krb5/src/lib/krb5/libkrb5.exports 2022-08-26 16:04:07.164000000 +0800 +--- krb5_edit/src/lib/krb5/libkrb5.exports 2022-08-26 16:03:35.060000000 +0800 +*************** +*** 650,652 **** +--- 650,655 ---- + profile_ser_internalize + profile_ser_size + profile_update_relation ++ krb5_set_cache_path ++ krb5_set_profile_path ++ krb5_clean_cache_profile_path +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/libkrb5_gauss.exports krb5_edit/src/lib/krb5/libkrb5_gauss.exports +*** krb5/src/lib/krb5/libkrb5_gauss.exports 1970-01-01 08:00:00.000000000 +0800 +--- krb5_edit/src/lib/krb5/libkrb5_gauss.exports 2022-08-26 16:03:35.060000000 +0800 +*************** +*** 0 **** +--- 1,655 ---- ++ _krb5_conf_boolean ++ decode_krb5_ad_kdcissued ++ decode_krb5_ad_signedpath ++ decode_krb5_ap_rep ++ decode_krb5_ap_rep_enc_part ++ decode_krb5_ap_req ++ decode_krb5_as_rep ++ decode_krb5_as_req ++ decode_krb5_authdata ++ decode_krb5_authenticator ++ decode_krb5_cammac ++ decode_krb5_cred ++ decode_krb5_enc_cred_part ++ decode_krb5_enc_data ++ decode_krb5_enc_kdc_rep_part ++ decode_krb5_enc_priv_part ++ decode_krb5_enc_sam_response_enc_2 ++ decode_krb5_enc_tkt_part ++ decode_krb5_encryption_key ++ decode_krb5_error ++ decode_krb5_etype_info ++ decode_krb5_etype_info2 ++ decode_krb5_fast_req ++ decode_krb5_fast_response ++ decode_krb5_iakerb_finished ++ decode_krb5_iakerb_header ++ decode_krb5_kdc_req_body ++ decode_krb5_otp_tokeninfo ++ decode_krb5_kkdcp_message ++ decode_krb5_pa_enc_ts ++ decode_krb5_pa_for_user ++ decode_krb5_pa_fx_fast_reply ++ decode_krb5_pa_fx_fast_request ++ decode_krb5_pa_otp_challenge ++ decode_krb5_pa_otp_req ++ decode_krb5_pa_otp_enc_req ++ decode_krb5_pa_pac_options ++ decode_krb5_pa_pac_req ++ decode_krb5_pa_s4u_x509_user ++ decode_krb5_pa_spake ++ decode_krb5_padata_sequence ++ decode_krb5_priv ++ decode_krb5_safe ++ decode_krb5_sam_challenge_2 ++ decode_krb5_sam_challenge_2_body ++ decode_krb5_sam_response_2 ++ decode_krb5_secure_cookie ++ decode_krb5_setpw_req ++ decode_krb5_spake_factor ++ decode_krb5_tgs_rep ++ decode_krb5_tgs_req ++ decode_krb5_ticket ++ decode_krb5_typed_data ++ decode_utf8_strings ++ encode_krb5_ad_kdcissued ++ encode_krb5_ad_signedpath_data ++ encode_krb5_ad_signedpath ++ encode_krb5_ap_rep ++ encode_krb5_ap_rep_enc_part ++ encode_krb5_ap_req ++ encode_krb5_as_rep ++ encode_krb5_as_req ++ encode_krb5_authdata ++ encode_krb5_authenticator ++ encode_krb5_cammac ++ encode_krb5_checksum ++ encode_krb5_cred ++ encode_krb5_enc_cred_part ++ encode_krb5_enc_data ++ encode_krb5_enc_kdc_rep_part ++ encode_krb5_enc_priv_part ++ encode_krb5_enc_sam_response_enc_2 ++ encode_krb5_enc_tkt_part ++ encode_krb5_encryption_key ++ encode_krb5_error ++ encode_krb5_etype_info ++ encode_krb5_etype_info2 ++ encode_krb5_fast_response ++ encode_krb5_iakerb_finished ++ encode_krb5_iakerb_header ++ encode_krb5_kdc_req_body ++ encode_krb5_otp_tokeninfo ++ encode_krb5_kkdcp_message ++ encode_krb5_pa_enc_ts ++ encode_krb5_pa_for_user ++ encode_krb5_pa_fx_fast_reply ++ encode_krb5_pa_otp_challenge ++ encode_krb5_pa_otp_req ++ encode_krb5_pa_otp_enc_req ++ encode_krb5_pa_pac_options ++ encode_krb5_pa_s4u_x509_user ++ encode_krb5_pa_spake ++ encode_krb5_padata_sequence ++ encode_krb5_pkinit_supp_pub_info ++ encode_krb5_priv ++ encode_krb5_s4u_userid ++ encode_krb5_safe ++ encode_krb5_sam_challenge_2 ++ encode_krb5_sam_challenge_2_body ++ encode_krb5_sam_response_2 ++ encode_krb5_secure_cookie ++ encode_krb5_sp80056a_other_info ++ encode_krb5_spake_factor ++ encode_krb5_tgs_rep ++ encode_krb5_tgs_req ++ encode_krb5_ticket ++ encode_krb5_typed_data ++ encode_utf8_strings ++ et_asn1_error_table ++ et_k524_error_table ++ et_kdb5_error_table ++ et_krb5_error_table ++ et_kv5m_error_table ++ et_prof_error_table ++ initialize_asn1_error_table ++ initialize_k524_error_table ++ initialize_kdb5_error_table ++ initialize_krb5_error_table ++ initialize_k5e1_error_table ++ initialize_kv5m_error_table ++ initialize_prof_error_table ++ k5_add_empty_pa_data ++ k5_add_pa_data_element ++ k5_add_pa_data_from_data ++ k5_alloc_pa_data ++ k5_authind_decode ++ k5_build_conf_principals ++ k5_ccselect_free_context ++ k5_change_error_message_code ++ k5_etypes_contains ++ k5_expand_path_tokens ++ k5_expand_path_tokens_extra ++ k5_externalize_auth_context ++ k5_externalize_authdata ++ k5_externalize_authdata_context ++ k5_externalize_context ++ k5_externalize_keyblock ++ k5_externalize_principal ++ k5_free_algorithm_identifier ++ k5_free_cammac ++ k5_free_data_ptr_list ++ k5_free_otp_tokeninfo ++ k5_free_kkdcp_message ++ k5_free_pa_data_element ++ k5_free_pa_otp_challenge ++ k5_free_pa_otp_req ++ k5_free_secure_cookie ++ k5_free_pa_spake ++ k5_free_serverlist ++ k5_free_spake_factor ++ k5_hostrealm_free_context ++ k5_init_trace ++ k5_internalize_auth_context ++ k5_internalize_authdata ++ k5_internalize_authdata_context ++ k5_internalize_context ++ k5_internalize_keyblock ++ k5_internalize_principal ++ k5_is_string_numeric ++ k5_kt_get_principal ++ k5_localauth_free_context ++ k5_locate_kdc ++ k5_marshal_cred ++ k5_marshal_princ ++ k5_os_free_context ++ k5_os_init_context ++ k5_parse_host_string ++ k5_plugin_free_modules ++ k5_plugin_load ++ k5_plugin_load_all ++ k5_plugin_register ++ k5_plugin_register_dyn ++ k5_rc_close ++ k5_rc_get_name ++ k5_rc_resolve ++ k5_size_auth_context ++ k5_size_authdata ++ k5_size_authdata_context ++ k5_size_context ++ k5_size_keyblock ++ k5_size_principal ++ k5_unmarshal_cred ++ k5_unmarshal_princ ++ k5_unwrap_cammac_svc ++ k5_zapfree_pa_data ++ krb524_convert_creds_kdc ++ krb524_init_ets ++ krb5_425_conv_principal ++ krb5_524_conv_principal ++ krb5_524_convert_creds ++ krb5_address_compare ++ krb5_address_order ++ krb5_address_search ++ krb5_allow_weak_crypto ++ krb5_aname_to_localname ++ krb5_anonymous_principal ++ krb5_anonymous_realm ++ krb5_appdefault_boolean ++ krb5_appdefault_string ++ krb5_auth_con_free ++ krb5_auth_con_genaddrs ++ krb5_auth_con_get_checksum_func ++ krb5_auth_con_get_authdata_context ++ krb5_auth_con_getaddrs ++ krb5_auth_con_getauthenticator ++ krb5_auth_con_getflags ++ krb5_auth_con_getivector ++ krb5_auth_con_getkey ++ krb5_auth_con_getkey_k ++ krb5_auth_con_getlocalseqnumber ++ krb5_auth_con_getlocalsubkey ++ krb5_auth_con_getpermetypes ++ krb5_auth_con_getrcache ++ krb5_auth_con_getrecvsubkey ++ krb5_auth_con_getrecvsubkey_k ++ krb5_auth_con_getremoteseqnumber ++ krb5_auth_con_getremotesubkey ++ krb5_auth_con_getsendsubkey ++ krb5_auth_con_getsendsubkey_k ++ krb5_auth_con_init ++ krb5_auth_con_initivector ++ krb5_auth_con_set_authdata_context ++ krb5_auth_con_set_checksum_func ++ krb5_auth_con_set_req_cksumtype ++ krb5_auth_con_set_safe_cksumtype ++ krb5_auth_con_setaddrs ++ krb5_auth_con_setflags ++ krb5_auth_con_setivector ++ krb5_auth_con_setpermetypes ++ krb5_auth_con_setports ++ krb5_auth_con_setrcache ++ krb5_auth_con_setrecvsubkey ++ krb5_auth_con_setrecvsubkey_k ++ krb5_auth_con_setsendsubkey ++ krb5_auth_con_setsendsubkey_k ++ krb5_auth_con_setuseruserkey ++ krb5_authdata_context_copy ++ krb5_authdata_context_free ++ krb5_authdata_context_init ++ krb5_authdata_delete_attribute ++ krb5_authdata_get_attribute_types ++ krb5_authdata_get_attribute ++ krb5_authdata_set_attribute ++ krb5_authdata_export_attributes ++ krb5_authdata_export_authdata ++ krb5_authdata_export_internal ++ krb5_authdata_free_internal ++ krb5_authdata_import_attributes ++ krb5_build_principal ++ krb5_build_principal_alloc_va ++ krb5_build_principal_ext ++ krb5_build_principal_va ++ krb5_cc_cache_match ++ krb5_cc_close ++ krb5_cc_copy_creds ++ krb5_cc_default ++ krb5_cc_default_name ++ krb5_cc_destroy ++ krb5_cc_dfl_ops ++ krb5_cc_dup ++ krb5_cc_end_seq_get ++ krb5_cc_file_ops ++ krb5_cc_gen_new ++ krb5_cc_get_config ++ krb5_cc_get_full_name ++ krb5_cc_get_name ++ krb5_cc_get_principal ++ krb5_cc_get_type ++ krb5_cc_move ++ krb5_cc_initialize ++ krb5_cc_new_unique ++ krb5_cc_next_cred ++ krb5_cc_register ++ krb5_cc_remove_cred ++ krb5_cc_resolve ++ krb5_cc_retrieve_cred ++ krb5_cc_select ++ krb5_cc_set_config ++ krb5_cc_set_default_name ++ krb5_cc_set_flags ++ krb5_cc_start_seq_get ++ krb5_cc_store_cred ++ krb5_cc_support_switch ++ krb5_cc_switch ++ krb5_cccol_cursor_free ++ krb5_cccol_cursor_new ++ krb5_cccol_cursor_next ++ krb5_cccol_have_content ++ krb5_change_cache ++ krb5_change_password ++ krb5_check_clockskew ++ krb5_check_transited_list ++ krb5_chpw_message ++ krb5_chpw_result_code_string ++ krb5_clear_error_message ++ krb5_copy_addr ++ krb5_copy_addresses ++ krb5_copy_authdata ++ krb5_copy_authenticator ++ krb5_copy_checksum ++ krb5_copy_context ++ krb5_copy_creds ++ krb5_copy_data ++ krb5_copy_error_message ++ krb5_copy_keyblock ++ krb5_copy_keyblock_contents ++ krb5_copy_principal ++ krb5_copy_ticket ++ krb5_crypto_us_timeofday ++ krb5_decode_authdata_container ++ krb5_decode_ticket ++ krb5_decrypt_tkt_part ++ krb5_deltat_to_string ++ krb5_encode_authdata_container ++ krb5_encode_kdc_rep ++ krb5_encrypt_helper ++ krb5_encrypt_tkt_part ++ krb5_expand_hostname ++ krb5_fcc_ops ++ krb5_find_authdata ++ krb5_free_ad_kdcissued ++ krb5_free_ad_signedpath ++ krb5_free_address ++ krb5_free_addresses ++ krb5_free_ap_rep ++ krb5_free_ap_rep_enc_part ++ krb5_free_ap_req ++ krb5_free_authdata ++ krb5_free_authenticator ++ krb5_free_authenticator_contents ++ krb5_free_checksum ++ krb5_free_checksum_contents ++ krb5_free_config_files ++ krb5_free_context ++ krb5_free_cred ++ krb5_free_cred_contents ++ krb5_free_cred_enc_part ++ krb5_free_creds ++ krb5_free_data ++ krb5_free_data_contents ++ krb5_free_default_realm ++ krb5_free_enc_data ++ krb5_free_enc_kdc_rep_part ++ krb5_free_enc_sam_response_enc_2 ++ krb5_free_enc_sam_response_enc_2_contents ++ krb5_free_enc_tkt_part ++ krb5_free_enctypes ++ krb5_free_error ++ krb5_free_error_message ++ krb5_free_etype_info ++ krb5_free_fast_armored_req ++ krb5_free_fast_req ++ krb5_free_fast_response ++ krb5_free_host_realm ++ krb5_free_iakerb_finished ++ krb5_free_iakerb_header ++ krb5_free_kdc_rep ++ krb5_free_kdc_req ++ krb5_free_keyblock ++ krb5_free_keyblock_contents ++ krb5_free_keytab_entry_contents ++ krb5_free_last_req ++ krb5_free_octet_data ++ krb5_free_pa_data ++ krb5_free_pa_enc_ts ++ krb5_free_pa_for_user ++ krb5_free_pa_pac_req ++ krb5_free_pa_s4u_x509_user ++ krb5_free_principal ++ krb5_free_priv ++ krb5_free_priv_enc_part ++ krb5_free_realm_tree ++ krb5_free_safe ++ krb5_free_sam_challenge_2 ++ krb5_free_sam_challenge_2_body ++ krb5_free_sam_challenge_2_body_contents ++ krb5_free_sam_challenge_2_contents ++ krb5_free_sam_response_2 ++ krb5_free_sam_response_2_contents ++ krb5_free_string ++ krb5_free_tgt_creds ++ krb5_free_ticket ++ krb5_free_tickets ++ krb5_free_tkt_authent ++ krb5_free_unparsed_name ++ krb5_fwd_tgt_creds ++ krb5_gen_portaddr ++ krb5_gen_replay_name ++ krb5_generate_seq_number ++ krb5_generate_subkey ++ krb5_get_cred_via_tkt ++ krb5_get_credentials ++ krb5_get_credentials_for_proxy ++ krb5_get_credentials_for_user ++ krb5_get_credentials_renew ++ krb5_get_credentials_validate ++ krb5_get_default_config_files ++ krb5_get_default_in_tkt_ktypes ++ krb5_get_default_realm ++ krb5_get_error_message ++ krb5_get_etype_info ++ krb5_get_fallback_host_realm ++ krb5_get_host_realm ++ krb5_get_in_tkt_with_keytab ++ krb5_get_in_tkt_with_password ++ krb5_get_in_tkt_with_skey ++ krb5_get_init_creds_keytab ++ krb5_get_init_creds_opt_alloc ++ krb5_get_init_creds_opt_free ++ krb5_get_init_creds_opt_free_pa ++ krb5_get_init_creds_opt_get_fast_flags ++ krb5_get_init_creds_opt_get_pa ++ krb5_get_init_creds_opt_init ++ krb5_get_init_creds_opt_set_address_list ++ krb5_get_init_creds_opt_set_anonymous ++ krb5_get_init_creds_opt_set_canonicalize ++ krb5_get_init_creds_opt_set_change_password_prompt ++ krb5_get_init_creds_opt_set_etype_list ++ krb5_get_init_creds_opt_set_expire_callback ++ krb5_get_init_creds_opt_set_fast_ccache ++ krb5_get_init_creds_opt_set_fast_ccache_name ++ krb5_get_init_creds_opt_set_fast_flags ++ krb5_get_init_creds_opt_set_forwardable ++ krb5_get_init_creds_opt_set_in_ccache ++ krb5_get_init_creds_opt_set_out_ccache ++ krb5_get_init_creds_opt_set_pa ++ krb5_get_init_creds_opt_set_pac_request ++ krb5_get_init_creds_opt_set_preauth_list ++ krb5_get_init_creds_opt_set_proxiable ++ krb5_get_init_creds_opt_set_renew_life ++ krb5_get_init_creds_opt_set_responder ++ krb5_get_init_creds_opt_set_salt ++ krb5_get_init_creds_opt_set_tkt_life ++ krb5_get_init_creds_password ++ krb5_get_notification_message ++ krb5_get_permitted_enctypes ++ krb5_get_profile ++ krb5_get_prompt_types ++ krb5_get_realm_domain ++ krb5_get_renewed_creds ++ krb5_get_server_rcache ++ krb5_get_tgs_ktypes ++ krb5_get_time_offsets ++ krb5_get_validated_creds ++ krb5_init_context ++ krb5_init_context_profile ++ krb5_init_creds_free ++ krb5_init_creds_get ++ krb5_init_creds_get_creds ++ krb5_init_creds_get_error ++ krb5_init_creds_get_times ++ krb5_init_creds_init ++ krb5_init_creds_set_keytab ++ krb5_init_creds_set_password ++ krb5_init_creds_set_service ++ krb5_init_creds_step ++ krb5_init_keyblock ++ krb5_init_secure_context ++ krb5_is_config_principal ++ krb5_is_permitted_enctype ++ krb5_is_referral_realm ++ krb5_is_thread_safe ++ krb5_kdc_rep_decrypt_proc ++ krb5_kt_add_entry ++ krb5_kt_client_default ++ krb5_kt_close ++ krb5_kt_default ++ krb5_kt_default_name ++ krb5_kt_dfl_ops ++ krb5_kt_dup ++ krb5_kt_end_seq_get ++ krb5_kt_free_entry ++ krb5_kt_get_entry ++ krb5_kt_get_name ++ krb5_kt_get_type ++ krb5_kt_have_content ++ krb5_kt_next_entry ++ krb5_kt_read_service_key ++ krb5_kt_register ++ krb5_kt_remove_entry ++ krb5_kt_resolve ++ krb5_kt_start_seq_get ++ krb5_ktf_ops ++ krb5_ktf_writable_ops ++ krb5_kuserok ++ krb5_lock_file ++ krb5_make_authdata_kdc_issued ++ krb5_make_full_ipaddr ++ krb5_make_fulladdr ++ krb5_mcc_ops ++ krb5_merge_authdata ++ krb5_mk_1cred ++ krb5_mk_error ++ krb5_mk_ncred ++ krb5_mk_priv ++ krb5_mk_rep ++ krb5_mk_rep_dce ++ krb5_mk_req ++ krb5_mk_req_extended ++ krb5_mk_safe ++ krb5_net_read ++ krb5_net_write ++ krb5_os_localaddr ++ krb5_overridekeyname ++ krb5_pac_add_buffer ++ krb5_pac_free ++ krb5_pac_get_buffer ++ krb5_pac_get_types ++ krb5_pac_init ++ krb5_pac_parse ++ krb5_pac_sign ++ krb5_pac_sign_ext ++ krb5_pac_verify ++ krb5_pac_verify_ext ++ krb5_pac_get_client_info ++ krb5_parse_name ++ krb5_parse_name_flags ++ krb5_prepend_error_message ++ krb5_principal2salt ++ krb5_principal2salt_norealm ++ krb5_principal_compare ++ krb5_principal_compare_any_realm ++ krb5_principal_compare_flags ++ krb5_prompter_posix ++ krb5_rc_default ++ krb5_rc_destroy ++ krb5_rc_get_lifespan ++ krb5_rc_initialize ++ krb5_rd_cred ++ krb5_rd_error ++ krb5_rd_priv ++ krb5_rd_rep ++ krb5_rd_rep_dce ++ krb5_rd_req ++ krb5_rd_req_decoded ++ krb5_rd_req_decoded_anyflag ++ krb5_rd_safe ++ krb5_read_message ++ krb5_read_password ++ krb5_realm_compare ++ krb5_recvauth ++ krb5_recvauth_version ++ krb5_responder_get_challenge ++ krb5_responder_list_questions ++ krb5_responder_set_answer ++ krb5_responder_otp_get_challenge ++ krb5_responder_otp_set_answer ++ krb5_responder_otp_challenge_free ++ krb5_responder_pkinit_get_challenge ++ krb5_responder_pkinit_set_answer ++ krb5_responder_pkinit_challenge_free ++ krb5_salttype_to_string ++ krb5_sendauth ++ krb5_sendto_kdc ++ krb5_ser_pack_bytes ++ krb5_ser_pack_int32 ++ krb5_ser_pack_int64 ++ krb5_ser_unpack_bytes ++ krb5_ser_unpack_int32 ++ krb5_ser_unpack_int64 ++ krb5_server_decrypt_ticket_keytab ++ krb5_set_config_files ++ krb5_set_debugging_time ++ krb5_set_default_in_tkt_ktypes ++ krb5_set_default_realm ++ krb5_set_default_tgs_enctypes ++ krb5_set_default_tgs_ktypes ++ krb5_set_error_message ++ krb5_set_password ++ krb5_set_password_using_ccache ++ krb5_set_principal_realm ++ krb5_set_real_time ++ krb5_set_kdc_send_hook ++ krb5_set_kdc_recv_hook ++ krb5_set_time_offsets ++ krb5_set_trace_callback ++ krb5_set_trace_filename ++ krb5_sname_match ++ krb5_sname_to_principal ++ krb5_string_to_deltat ++ krb5_string_to_salttype ++ krb5_string_to_timestamp ++ krb5int_tgtname ++ krb5_tkt_creds_free ++ krb5_tkt_creds_get ++ krb5_tkt_creds_get_creds ++ krb5_tkt_creds_get_times ++ krb5_tkt_creds_init ++ krb5_tkt_creds_step ++ krb5_timeofday ++ krb5_timestamp_to_sfstring ++ krb5_timestamp_to_string ++ krb5_unlock_file ++ krb5_unpack_full_ipaddr ++ krb5_unparse_name ++ krb5_unparse_name_ext ++ krb5_unparse_name_flags ++ krb5_unparse_name_flags_ext ++ krb5_us_timeofday ++ krb5_use_natural_time ++ krb5_verify_authdata_kdc_issued ++ krb5_verify_init_creds ++ krb5_verify_init_creds_opt_init ++ krb5_verify_init_creds_opt_set_ap_req_nofail ++ krb5_vprepend_error_message ++ krb5_vset_error_message ++ krb5_vwrap_error_message ++ krb5_walk_realm_tree ++ krb5_wrap_error_message ++ krb5_write_message ++ krb5int_accessor ++ krb5int_cc_default ++ krb5int_cleanup_library ++ krb5int_copy_data_contents ++ krb5int_copy_data_contents_add0 ++ krb5int_find_pa_data ++ krb5int_foreach_localaddr ++ krb5int_free_data_list ++ krb5int_get_authdata_containee_types ++ krb5int_init_context_kdc ++ krb5int_initialize_library ++ krb5int_parse_enctype_list ++ krb5int_random_string ++ krb5int_trace ++ profile_abandon ++ profile_add_relation ++ profile_clear_relation ++ profile_flush ++ profile_flush_to_buffer ++ profile_flush_to_file ++ profile_free_buffer ++ profile_free_list ++ profile_get_boolean ++ profile_get_integer ++ profile_get_relation_names ++ profile_get_string ++ profile_get_subsection_names ++ profile_get_values ++ profile_init ++ profile_init_flags ++ profile_init_path ++ profile_init_vtable ++ profile_iterator ++ profile_iterator_create ++ profile_iterator_free ++ profile_release ++ profile_release_string ++ profile_rename_section ++ profile_ser_externalize ++ profile_ser_internalize ++ profile_ser_size ++ profile_update_relation ++ krb5_set_cache_path ++ krb5_set_profile_path ++ krb5_clean_cache_profile_path +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/Makefile.in krb5_edit/src/lib/krb5/Makefile.in +*** krb5/src/lib/krb5/Makefile.in 2022-08-26 16:04:07.140000000 +0800 +--- krb5_edit/src/lib/krb5/Makefile.in 2022-08-26 16:03:35.036000000 +0800 +*************** +*** 17,23 **** + + STLIBOBJS=krb5_libinit.o + +! LIBBASE=krb5 + LIBMAJOR=3 + LIBMINOR=3 + LIBINITFUNC=profile_library_initializer krb5int_lib_init +--- 17,23 ---- + + STLIBOBJS=krb5_libinit.o + +! LIBBASE=krb5_gauss + LIBMAJOR=3 + LIBMINOR=3 + LIBINITFUNC=profile_library_initializer krb5int_lib_init +*************** +*** 54,62 **** + + RELDIR=krb5 + SHLIB_EXPDEPS = \ +! $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ + $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! SHLIB_EXPLIBS=-lk5crypto -lcom_err $(SUPPORT_LIB) @GEN_LIB@ $(LIBS) + + all-unix: all-liblinks + +--- 54,62 ---- + + RELDIR=krb5 + SHLIB_EXPDEPS = \ +! $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ + $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! SHLIB_EXPLIBS=-lk5crypto_gauss -lcom_err_gauss $(SUPPORT_LIB) @GEN_LIB@ $(LIBS) + + all-unix: all-liblinks + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/os/ccdefname.c krb5_edit/src/lib/krb5/os/ccdefname.c +*** krb5/src/lib/krb5/os/ccdefname.c 2022-08-26 16:04:07.164000000 +0800 +--- krb5_edit/src/lib/krb5/os/ccdefname.c 2022-08-26 16:03:35.060000000 +0800 +*************** +*** 299,309 **** + if (os_ctx->default_ccname != NULL) + return os_ctx->default_ccname; + +! /* Try the environment variable first. */ +! envstr = secure_getenv(KRB5_ENV_CCNAME); +! if (envstr != NULL) { +! os_ctx->default_ccname = strdup(envstr); + return os_ctx->default_ccname; + } + + if (profile_get_string(context->profile, KRB5_CONF_LIBDEFAULTS, +--- 299,314 ---- + if (os_ctx->default_ccname != NULL) + return os_ctx->default_ccname; + +! /* Try the setable variable first. */ +! if (NULL != G_DEFAULT_CACHE_PATH) { +! os_ctx->default_ccname = strdup(G_DEFAULT_CACHE_PATH); + return os_ctx->default_ccname; ++ } else { ++ envstr = getenv(KRB5_ENV_CCNAME); ++ if (envstr != NULL) { ++ os_ctx->default_ccname = strdup(envstr); ++ return os_ctx->default_ccname; ++ } + } + + if (profile_get_string(context->profile, KRB5_CONF_LIBDEFAULTS, +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/os/init_os_ctx.c krb5_edit/src/lib/krb5/os/init_os_ctx.c +*** krb5/src/lib/krb5/os/init_os_ctx.c 2022-08-26 16:04:07.164000000 +0800 +--- krb5_edit/src/lib/krb5/os/init_os_ctx.c 2022-08-26 16:03:35.064000000 +0800 +*************** +*** 298,305 **** + if (secure) { + filepath = DEFAULT_SECURE_PROFILE_PATH; + } else { +! filepath = secure_getenv("KRB5_CONFIG"); +! if (!filepath) filepath = DEFAULT_PROFILE_PATH; + } + + /* count the distinct filename components */ +--- 298,309 ---- + if (secure) { + filepath = DEFAULT_SECURE_PROFILE_PATH; + } else { +! if (NULL != G_DEFAULT_PROFILE_PATH) { +! filepath = G_DEFAULT_PROFILE_PATH; +! } else { +! filepath = getenv("KRB5_CONFIG"); +! if (!filepath) filepath = DEFAULT_PROFILE_PATH; +! } + } + + /* count the distinct filename components */ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/os/Makefile.in krb5_edit/src/lib/krb5/os/Makefile.in +*** krb5/src/lib/krb5/os/Makefile.in 2022-08-26 16:04:07.164000000 +0800 +--- krb5_edit/src/lib/krb5/os/Makefile.in 2022-08-26 16:03:35.060000000 +0800 +*************** +*** 171,177 **** + T_TRACE_OBJS = t_trace.o + + t_std_conf: $(T_STD_CONF_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_std_conf $(T_STD_CONF_OBJS) $(KRB5_BASE_LIBS) + + t_localaddr: localaddr.c + $(CC_LINK) $(ALL_CFLAGS) -DTEST -o t_localaddr $(srcdir)/localaddr.c $(KRB5_BASE_LIBS) $(LIBS) +--- 171,177 ---- + T_TRACE_OBJS = t_trace.o + + t_std_conf: $(T_STD_CONF_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_std_conf $(T_STD_CONF_OBJS) $(KRB5_BASE_LIBS) + + t_localaddr: localaddr.c + $(CC_LINK) $(ALL_CFLAGS) -DTEST -o t_localaddr $(srcdir)/localaddr.c $(KRB5_BASE_LIBS) $(LIBS) +*************** +*** 185,194 **** + link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib + + t_trace: $(T_TRACE_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_trace $(T_TRACE_OBJS) $(KRB5_BASE_LIBS) + + t_expand_path: t_expand_path.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_expand_path.o $(KRB5_BASE_LIBS) + + LCLINT=lclint + LCLINTOPTS= -warnposix \ +--- 185,194 ---- + link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib + + t_trace: $(T_TRACE_OBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_trace $(T_TRACE_OBJS) $(KRB5_BASE_LIBS) + + t_expand_path: t_expand_path.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_expand_path.o $(KRB5_BASE_LIBS) + + LCLINT=lclint + LCLINTOPTS= -warnposix \ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/krb5/rcache/Makefile.in krb5_edit/src/lib/krb5/rcache/Makefile.in +*** krb5/src/lib/krb5/rcache/Makefile.in 2022-08-26 16:04:07.168000000 +0800 +--- krb5_edit/src/lib/krb5/rcache/Makefile.in 2022-08-26 16:03:35.064000000 +0800 +*************** +*** 34,43 **** + clean-unix:: clean-libobjs + + t_memrcache: t_memrcache.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_memrcache.o $(KRB5_BASE_LIBS) + + t_rcfile2: t_rcfile2.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ t_rcfile2.o $(KRB5_BASE_LIBS) + + check-unix: t_memrcache t_rcfile2 + $(RUN_TEST) ./t_memrcache +--- 34,43 ---- + clean-unix:: clean-libobjs + + t_memrcache: t_memrcache.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_memrcache.o $(KRB5_BASE_LIBS) + + t_rcfile2: t_rcfile2.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ t_rcfile2.o $(KRB5_BASE_LIBS) + + check-unix: t_memrcache t_rcfile2 + $(RUN_TEST) ./t_memrcache +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/Makefile.in krb5_edit/src/lib/Makefile.in +*** krb5/src/lib/Makefile.in 2022-08-26 16:04:07.088000000 +0800 +--- krb5_edit/src/lib/Makefile.in 2022-08-26 16:03:34.988000000 +0800 +*************** +*** 5,13 **** + + all-unix: + +! CLEANLIBS = libkrb5.a libkdb5.a libcrypto.a libgssapi_krb5.a libkadm.a \ +! libcom_err.a libpty.a ibss.a libgssapi.a libapputils.a libkrb5.so \ +! libcrypto.so + + clean-unix:: + +--- 5,13 ---- + + all-unix: + +! CLEANLIBS = libkrb5_gauss.a libkdb5.a libcrypto_gauss.a libgssapi_krb5_gauss.a libkadm.a \ +! libcom_err_gauss.a libpty.a ibss.a libgssapi_gauss.a libapputils.a libkrb5_gauss.so \ +! libcrypto_gauss.so + + clean-unix:: + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/rpc/libgssrpc_gauss.exports krb5_edit/src/lib/rpc/libgssrpc_gauss.exports +*** krb5/src/lib/rpc/libgssrpc_gauss.exports 1970-01-01 08:00:00.000000000 +0800 +--- krb5_edit/src/lib/rpc/libgssrpc_gauss.exports 2022-08-26 16:03:35.076000000 +0800 +*************** +*** 0 **** +--- 1,144 ---- ++ gssrpc_auth_debug_gss ++ gssrpc_auth_debug_gssapi ++ gssrpc_auth_gssapi_create ++ gssrpc_auth_gssapi_create_default ++ gssrpc_auth_gssapi_display_status ++ gssrpc_auth_gssapi_seal_seq ++ gssrpc_auth_gssapi_unseal_seq ++ gssrpc_auth_gssapi_unwrap_data ++ gssrpc_auth_gssapi_wrap_data ++ gssrpc_authgss_create ++ gssrpc_authgss_create_default ++ gssrpc_authgss_get_private_data ++ gssrpc_authgss_service ++ gssrpc_authnone_create ++ gssrpc_authunix_create ++ gssrpc_authunix_create_default ++ gssrpc_bindresvport ++ gssrpc_bindresvport_sa ++ gssrpc_callrpc ++ gssrpc_clnt_broadcast ++ gssrpc_clnt_create ++ gssrpc_clnt_pcreateerror ++ gssrpc_clnt_perrno ++ gssrpc_clnt_perror ++ gssrpc_clnt_spcreateerror ++ gssrpc_clnt_sperrno ++ gssrpc_clnt_sperror ++ gssrpc_clntraw_create ++ gssrpc_clnttcp_create ++ gssrpc_clntudp_bufcreate ++ gssrpc_clntudp_create ++ gssrpc_get_myaddress ++ gssrpc_getrpcport ++ gssrpc_log_debug ++ gssrpc_log_hexdump ++ gssrpc_log_status ++ gssrpc_misc_debug_gss ++ gssrpc_misc_debug_gssapi ++ gssrpc_pmap_getmaps ++ gssrpc_pmap_getport ++ gssrpc_pmap_rmtcall ++ gssrpc_pmap_set ++ gssrpc_pmap_unset ++ gssrpc_registerrpc ++ gssrpc_rpc_createrr ++ gssrpc_svc_auth_gss_ops ++ gssrpc_svc_auth_gssapi_ops ++ gssrpc_svc_auth_none ++ gssrpc_svc_auth_none_ops ++ gssrpc_svc_debug_gss ++ gssrpc_svc_debug_gssapi ++ gssrpc_svc_fdset ++ gssrpc_svc_fdset_init ++ gssrpc_svc_getreq ++ gssrpc_svc_getreqset ++ gssrpc_svc_maxfd ++ gssrpc_svc_register ++ gssrpc_svc_run ++ gssrpc_svc_sendreply ++ gssrpc_svc_unregister ++ gssrpc_svcauth_gss_get_principal ++ gssrpc_svcauth_gss_set_log_badauth_func ++ gssrpc_svcauth_gss_set_log_badauth2_func ++ gssrpc_svcauth_gss_set_log_badverf_func ++ gssrpc_svcauth_gss_set_log_miscerr_func ++ gssrpc_svcauth_gss_set_svc_name ++ gssrpc_svcauth_gssapi_set_log_badauth_func ++ gssrpc_svcauth_gssapi_set_log_badauth2_func ++ gssrpc_svcauth_gssapi_set_log_badverf_func ++ gssrpc_svcauth_gssapi_set_log_miscerr_func ++ gssrpc_svcauth_gssapi_set_names ++ gssrpc_svcauth_gssapi_unset_names ++ gssrpc_svcerr_auth ++ gssrpc_svcerr_decode ++ gssrpc_svcerr_noproc ++ gssrpc_svcerr_noprog ++ gssrpc_svcerr_progvers ++ gssrpc_svcerr_systemerr ++ gssrpc_svcerr_weakauth ++ gssrpc_svcfd_create ++ gssrpc_svcraw_create ++ gssrpc_svctcp_create ++ gssrpc_svcudp_bufcreate ++ gssrpc_svcudp_create ++ gssrpc_svcudp_enablecache ++ gssrpc_xdr_accepted_reply ++ gssrpc_xdr_array ++ gssrpc_xdr_authgssapi_creds ++ gssrpc_xdr_authgssapi_init_arg ++ gssrpc_xdr_authgssapi_init_res ++ gssrpc_xdr_authunix_parms ++ gssrpc_xdr_bool ++ gssrpc_xdr_bytes ++ gssrpc_xdr_callhdr ++ gssrpc_xdr_callmsg ++ gssrpc_xdr_char ++ gssrpc_xdr_des_block ++ gssrpc_xdr_enum ++ gssrpc_xdr_free ++ gssrpc_xdr_gss_buf ++ gssrpc_xdr_int ++ gssrpc_xdr_int32 ++ gssrpc_xdr_long ++ gssrpc_xdr_netobj ++ gssrpc_xdr_opaque ++ gssrpc_xdr_opaque_auth ++ gssrpc_xdr_pmap ++ gssrpc_xdr_pmaplist ++ gssrpc_xdr_pointer ++ gssrpc_xdr_reference ++ gssrpc_xdr_rejected_reply ++ gssrpc_xdr_replymsg ++ gssrpc_xdr_rmtcall_args ++ gssrpc_xdr_rmtcallres ++ gssrpc_xdr_rpc_gss_buf ++ gssrpc_xdr_rpc_gss_cred ++ gssrpc_xdr_rpc_gss_data ++ gssrpc_xdr_rpc_gss_init_args ++ gssrpc_xdr_rpc_gss_init_res ++ gssrpc_xdr_rpc_gss_unwrap_data ++ gssrpc_xdr_rpc_gss_wrap_data ++ gssrpc_xdr_short ++ gssrpc_xdr_sizeof ++ gssrpc_xdr_string ++ gssrpc_xdr_u_char ++ gssrpc_xdr_u_int ++ gssrpc_xdr_u_int32 ++ gssrpc_xdr_u_long ++ gssrpc_xdr_u_short ++ gssrpc_xdr_union ++ gssrpc_xdr_vector ++ gssrpc_xdr_void ++ gssrpc_xdr_wrapstring ++ gssrpc_xdralloc_create ++ gssrpc_xdralloc_getdata ++ gssrpc_xdralloc_release ++ gssrpc_xdrmem_create ++ gssrpc_xdrrec_create ++ gssrpc_xdrrec_endofrecord ++ gssrpc_xdrrec_eof ++ gssrpc_xdrrec_skiprecord ++ gssrpc_xdrstdio_create ++ gssrpc_xprt_register ++ gssrpc_xprt_unregister +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/rpc/Makefile.in krb5_edit/src/lib/rpc/Makefile.in +*** krb5/src/lib/rpc/Makefile.in 2022-08-26 16:04:07.176000000 +0800 +--- krb5_edit/src/lib/rpc/Makefile.in 2022-08-26 16:03:35.076000000 +0800 +*************** +*** 7,21 **** + ##DOSBUILDTOP = ..\.. + ##DOSLIBNAME=libgssrpc.lib + +! LIBBASE=gssrpc + LIBMAJOR=4 + LIBMINOR=2 + SHLIB_EXPDEPS= \ +! $(TOPLIBD)/libgssapi_krb5$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) \ +! $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ + $(COM_ERR_DEPLIB) +! SHLIB_EXPLIBS=-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err $(LIBS) + RELDIR=rpc + + SRCS = $(srcdir)/auth_none.c \ +--- 7,21 ---- + ##DOSBUILDTOP = ..\.. + ##DOSLIBNAME=libgssrpc.lib + +! LIBBASE=gssrpc_gauss + LIBMAJOR=4 + LIBMINOR=2 + SHLIB_EXPDEPS= \ +! $(TOPLIBD)/libgssapi_krb5_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ + $(COM_ERR_DEPLIB) +! SHLIB_EXPLIBS=-lgssapi_krb5_gauss -lkrb5_gauss -lk5crypto_gauss -lcom_err_gauss $(LIBS) + RELDIR=rpc + + SRCS = $(srcdir)/auth_none.c \ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/lib/rpc/unit-test/Makefile.in krb5_edit/src/lib/rpc/unit-test/Makefile.in +*** krb5/src/lib/rpc/unit-test/Makefile.in 2022-08-26 16:04:07.180000000 +0800 +--- krb5_edit/src/lib/rpc/unit-test/Makefile.in 2022-08-26 16:03:35.080000000 +0800 +*************** +*** 7,17 **** + all: client server + + client: client.o rpc_test_clnt.o $(GSSRPC_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o client client.o rpc_test_clnt.o \ + $(GSSRPC_LIBS) $(KRB5_BASE_LIBS) + + server: server.o rpc_test_svc.o $(GSSRPC_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o server server.o rpc_test_svc.o \ + $(GSSRPC_LIBS) $(KRB5_BASE_LIBS) + + client.o server.o: rpc_test.h +--- 7,17 ---- + all: client server + + client: client.o rpc_test_clnt.o $(GSSRPC_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o client client.o rpc_test_clnt.o \ + $(GSSRPC_LIBS) $(KRB5_BASE_LIBS) + + server: server.o rpc_test_svc.o $(GSSRPC_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o server server.o rpc_test_svc.o \ + $(GSSRPC_LIBS) $(KRB5_BASE_LIBS) + + client.o server.o: rpc_test.h +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/authdata/greet_client/Makefile.in krb5_edit/src/plugins/authdata/greet_client/Makefile.in +*** krb5/src/plugins/authdata/greet_client/Makefile.in 2022-08-26 16:04:07.188000000 +0800 +--- krb5_edit/src/plugins/authdata/greet_client/Makefile.in 2022-08-26 16:03:35.084000000 +0800 +*************** +*** 4,12 **** + LIBBASE=greet_client + LIBMAJOR=0 + LIBMINOR=0 +! SHLIB_EXPDEPS = $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) +! SHLIB_EXPLIBS= -lkrb5 -lcom_err -lk5crypto $(SUPPORT_LIB) $(LIBS) + STLIBOBJS= greet.o + + SRCS= greet.c +--- 4,12 ---- + LIBBASE=greet_client + LIBMAJOR=0 + LIBMINOR=0 +! SHLIB_EXPDEPS = $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) +! SHLIB_EXPLIBS= -lkrb5_gauss -lcom_err_gauss -lk5crypto_gauss $(SUPPORT_LIB) $(LIBS) + STLIBOBJS= greet.o + + SRCS= greet.c +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/authdata/greet_server/Makefile.in krb5_edit/src/plugins/authdata/greet_server/Makefile.in +*** krb5/src/plugins/authdata/greet_server/Makefile.in 2022-08-26 16:04:07.188000000 +0800 +--- krb5_edit/src/plugins/authdata/greet_server/Makefile.in 2022-08-26 16:03:35.084000000 +0800 +*************** +*** 4,12 **** + LIBBASE=greet_server + LIBMAJOR=1 + LIBMINOR=0 +! SHLIB_EXPDEPS = $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) +! SHLIB_EXPLIBS= -lkrb5 -lcom_err -lk5crypto $(SUPPORT_LIB) $(LIBS) + + STLIBOBJS= greet_auth.o + +--- 4,12 ---- + LIBBASE=greet_server + LIBMAJOR=1 + LIBMINOR=0 +! SHLIB_EXPDEPS = $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) +! SHLIB_EXPLIBS= -lkrb5_gauss -lcom_err_gauss -lk5crypto_gauss $(SUPPORT_LIB) $(LIBS) + + STLIBOBJS= greet_auth.o + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/kadm5_hook/test/Makefile.in krb5_edit/src/plugins/kadm5_hook/test/Makefile.in +*** krb5/src/plugins/kadm5_hook/test/Makefile.in 2022-08-26 16:04:07.188000000 +0800 +--- krb5_edit/src/plugins/kadm5_hook/test/Makefile.in 2022-08-26 16:03:35.084000000 +0800 +*************** +*** 7,15 **** + RELDIR=../plugins/kadm5_hook/test + # Depends on libk5crypto and libkrb5 + SHLIB_EXPDEPS = \ +! $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) +! SHLIB_EXPLIBS= -lkrb5 -lcom_err -lk5crypto $(SUPPORT_LIB) $(LIBS) + + STLIBOBJS=main.o + +--- 7,15 ---- + RELDIR=../plugins/kadm5_hook/test + # Depends on libk5crypto and libkrb5 + SHLIB_EXPDEPS = \ +! $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) +! SHLIB_EXPLIBS= -lkrb5_gauss -lcom_err_gauss -lk5crypto_gauss $(SUPPORT_LIB) $(LIBS) + + STLIBOBJS=main.o + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/kdb/db2/libdb2/test/Makefile.in krb5_edit/src/plugins/kdb/db2/libdb2/test/Makefile.in +*** krb5/src/plugins/kdb/db2/libdb2/test/Makefile.in 2022-08-26 16:04:07.200000000 +0800 +--- krb5_edit/src/plugins/kdb/db2/libdb2/test/Makefile.in 2022-08-26 16:03:35.096000000 +0800 +*************** +*** 15,21 **** + all: + + dbtest: dbtest.o $(DB_DEPLIB) +! $(CC_LINK) -o $@ dbtest.o $(STRERROR_OBJ) $(DB_LIB) + + t.be.db: $(srcdir)/t.be.txt + t.le.db: $(srcdir)/t.le.txt +--- 15,21 ---- + all: + + dbtest: dbtest.o $(DB_DEPLIB) +! $(CC_LINK) -pie -o $@ dbtest.o $(STRERROR_OBJ) $(DB_LIB) + + t.be.db: $(srcdir)/t.be.txt + t.le.db: $(srcdir)/t.le.txt +*************** +*** 29,35 **** + $(CC) $(ALL_CFLAGS) -c $(srcdir)/btree.tests/main.c -o $@ + + bttest: bttest.o $(DB_DEPLIB) +! $(CC_LINK) -o $@ bttest.o $(STRERROR_OBJ) $(DB_LIB) + + clean-unix:: + $(RM) dbtest.o dbtest __dbtest +--- 29,35 ---- + $(CC) $(ALL_CFLAGS) -c $(srcdir)/btree.tests/main.c -o $@ + + bttest: bttest.o $(DB_DEPLIB) +! $(CC_LINK) -pie -o $@ bttest.o $(STRERROR_OBJ) $(DB_LIB) + + clean-unix:: + $(RM) dbtest.o dbtest __dbtest +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/kdb/db2/Makefile.in krb5_edit/src/plugins/kdb/db2/Makefile.in +*** krb5/src/plugins/kdb/db2/Makefile.in 2022-08-26 16:04:07.188000000 +0800 +--- krb5_edit/src/plugins/kdb/db2/Makefile.in 2022-08-26 16:03:35.084000000 +0800 +*************** +*** 29,37 **** + # Also on gssrpc, for xdr stuff. + SHLIB_EXPDEPS = \ + $(GSSRPC_DEPLIBS) \ +! $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) +! SHLIB_EXPLIBS= $(GSSRPC_LIBS) -lkrb5 -lcom_err -lk5crypto $(KDB5_DB_LIB) $(KADMSRV_LIBS) $(SUPPORT_LIB) $(LIBS) @DB_EXTRA_LIBS@ + + DBDIR = libdb2 + DBOBJLISTS = $(DBOBJLISTS-@DB_VERSION@) +--- 29,37 ---- + # Also on gssrpc, for xdr stuff. + SHLIB_EXPDEPS = \ + $(GSSRPC_DEPLIBS) \ +! $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) +! SHLIB_EXPLIBS= $(GSSRPC_LIBS) -lkrb5_gauss -lcom_err_gauss -lk5crypto_gauss $(KDB5_DB_LIB) $(KADMSRV_LIBS) $(SUPPORT_LIB) $(LIBS) @DB_EXTRA_LIBS@ + + DBDIR = libdb2 + DBOBJLISTS = $(DBOBJLISTS-@DB_VERSION@) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/kdb/ldap/ldap_util/Makefile.in krb5_edit/src/plugins/kdb/ldap/ldap_util/Makefile.in +*** krb5/src/plugins/kdb/ldap/ldap_util/Makefile.in 2022-08-26 16:04:07.200000000 +0800 +--- krb5_edit/src/plugins/kdb/ldap/ldap_util/Makefile.in 2022-08-26 16:03:35.100000000 +0800 +*************** +*** 14,20 **** + all: $(PROG) + + $(PROG): $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIB) $(GETDATE) +! $(CC_LINK) -o $(PROG) $(OBJS) \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + getdate.c: $(GETDATE) +--- 14,20 ---- + all: $(PROG) + + $(PROG): $(OBJS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIB) $(GETDATE) +! $(CC_LINK) -pie -o $(PROG) $(OBJS) \ + $(KADMSRV_LIBS) $(KDB_DEP_LIB) $(KRB5_BASE_LIBS) + + getdate.c: $(GETDATE) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/kdb/ldap/Makefile.in krb5_edit/src/plugins/kdb/ldap/Makefile.in +*** krb5/src/plugins/kdb/ldap/Makefile.in 2022-08-26 16:04:07.200000000 +0800 +--- krb5_edit/src/plugins/kdb/ldap/Makefile.in 2022-08-26 16:03:35.100000000 +0800 +*************** +*** 16,25 **** + SHLIB_EXPDEPS = \ + $(TOPLIBD)/libkdb_ldap$(SHLIBEXT) \ + $(GSSRPC_DEPLIBS) \ +! $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5$(SHLIBEXT) \ + $(TOPLIBD)/lib$(SUPPORT_LIBNAME)$(SHLIBEXT) +! SHLIB_EXPLIBS= -lkdb_ldap $(GSSRPC_LIBS) -lkrb5 -lcom_err -lk5crypto -lkrb5support $(LIBS) + + SRCS= $(srcdir)/ldap_exp.c + +--- 16,25 ---- + SHLIB_EXPDEPS = \ + $(TOPLIBD)/libkdb_ldap$(SHLIBEXT) \ + $(GSSRPC_DEPLIBS) \ +! $(TOPLIBD)/libk5crypto_gauss$(SHLIBEXT) \ +! $(TOPLIBD)/libkrb5_gauss$(SHLIBEXT) \ + $(TOPLIBD)/lib$(SUPPORT_LIBNAME)$(SHLIBEXT) +! SHLIB_EXPLIBS= -lkdb_ldap $(GSSRPC_LIBS) -lkrb5_gauss -lcom_err_gauss -lk5crypto_gauss -lkrb5support_gauss $(LIBS) + + SRCS= $(srcdir)/ldap_exp.c + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/preauth/pkinit/Makefile.in krb5_edit/src/plugins/preauth/pkinit/Makefile.in +*** krb5/src/plugins/preauth/pkinit/Makefile.in 2022-08-26 16:04:07.208000000 +0800 +--- krb5_edit/src/plugins/preauth/pkinit/Makefile.in 2022-08-26 16:03:35.104000000 +0800 +*************** +*** 46,52 **** + $(RUN_TEST) ./pkinit_kdf_test + + pkinit_kdf_test: pkinit_kdf_test.o $(STLIBOBJS) $(SHLIB_EXPDEPS) +! $(CC_LINK) -o $@ pkinit_kdf_test.o $(STLIBOBJS) $(SHLIB_EXPLIBS) + + @libnover_frag@ + @libobj_frag@ +--- 46,52 ---- + $(RUN_TEST) ./pkinit_kdf_test + + pkinit_kdf_test: pkinit_kdf_test.o $(STLIBOBJS) $(SHLIB_EXPDEPS) +! $(CC_LINK) -pie -o $@ pkinit_kdf_test.o $(STLIBOBJS) $(SHLIB_EXPLIBS) + + @libnover_frag@ + @libobj_frag@ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/plugins/preauth/spake/Makefile.in krb5_edit/src/plugins/preauth/spake/Makefile.in +*** krb5/src/plugins/preauth/spake/Makefile.in 2022-08-26 16:04:07.212000000 +0800 +--- krb5_edit/src/plugins/preauth/spake/Makefile.in 2022-08-26 16:03:35.112000000 +0800 +*************** +*** 37,43 **** + $(OUTPRE)spake_client.$(OBJEXT) + + t_vectors: t_vectors.o $(STLIBOBJS) $(SHLIB_EXPDEPS) +! $(CC_LINK) -o $@ t_vectors.o $(STLIBOBJS) $(SHLIB_EXPLIBS) + + all-unix: all-liblinks + install-unix: install-libs +--- 37,43 ---- + $(OUTPRE)spake_client.$(OBJEXT) + + t_vectors: t_vectors.o $(STLIBOBJS) $(SHLIB_EXPDEPS) +! $(CC_LINK) -pie -o $@ t_vectors.o $(STLIBOBJS) $(SHLIB_EXPLIBS) + + all-unix: all-liblinks + install-unix: install-libs +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/asn.1/Makefile.in krb5_edit/src/tests/asn.1/Makefile.in +*** krb5/src/tests/asn.1/Makefile.in 2022-08-26 16:04:07.220000000 +0800 +--- krb5_edit/src/tests/asn.1/Makefile.in 2022-08-26 16:03:35.116000000 +0800 +*************** +*** 16,32 **** + ENCOBJS = krb5_encode_test.o ktest.o ktest_equal.o utility.o trval.o + + krb5_encode_test: $(ENCOBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o krb5_encode_test $(ENCOBJS) $(KRB5_BASE_LIBS) + + DECOBJS = krb5_decode_test.o ktest.o ktest_equal.o utility.o + + krb5_decode_test: $(DECOBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o krb5_decode_test $(DECOBJS) $(KRB5_BASE_LIBS) + + LEAKOBJS = krb5_decode_leak.o ktest.o ktest_equal.o utility.o + + krb5_decode_leak: $(LEAKOBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o krb5_decode_leak $(LEAKOBJS) $(KRB5_BASE_LIBS) + + t_trval: t_trval.o + $(CC) -o t_trval $(ALL_CFLAGS) t_trval.o +--- 16,32 ---- + ENCOBJS = krb5_encode_test.o ktest.o ktest_equal.o utility.o trval.o + + krb5_encode_test: $(ENCOBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o krb5_encode_test $(ENCOBJS) $(KRB5_BASE_LIBS) + + DECOBJS = krb5_decode_test.o ktest.o ktest_equal.o utility.o + + krb5_decode_test: $(DECOBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o krb5_decode_test $(DECOBJS) $(KRB5_BASE_LIBS) + + LEAKOBJS = krb5_decode_leak.o ktest.o ktest_equal.o utility.o + + krb5_decode_leak: $(LEAKOBJS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o krb5_decode_leak $(LEAKOBJS) $(KRB5_BASE_LIBS) + + t_trval: t_trval.o + $(CC) -o t_trval $(ALL_CFLAGS) t_trval.o +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/create/Makefile.in krb5_edit/src/tests/create/Makefile.in +*** krb5/src/tests/create/Makefile.in 2022-08-26 16:04:07.224000000 +0800 +--- krb5_edit/src/tests/create/Makefile.in 2022-08-26 16:03:35.120000000 +0800 +*************** +*** 6,12 **** + all: kdb5_mkdums + + kdb5_mkdums: kdb5_mkdums.o $(KDB5_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o kdb5_mkdums kdb5_mkdums.o $(KDB5_DEP_LIBS) $(KDB5_LIBS) $(KRB5_BASE_LIBS) + + all: kdb5_mkdums + +--- 6,12 ---- + all: kdb5_mkdums + + kdb5_mkdums: kdb5_mkdums.o $(KDB5_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o kdb5_mkdums kdb5_mkdums.o $(KDB5_DEP_LIBS) $(KDB5_LIBS) $(KRB5_BASE_LIBS) + + all: kdb5_mkdums + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/dejagnu/Makefile.in krb5_edit/src/tests/dejagnu/Makefile.in +*** krb5/src/tests/dejagnu/Makefile.in 2022-08-26 16:04:07.224000000 +0800 +--- krb5_edit/src/tests/dejagnu/Makefile.in 2022-08-26 16:03:35.120000000 +0800 +*************** +*** 23,29 **** + $(RUNTEST) --tool krb VALGRIND="$(VALGRIND)" $(RUNTESTFLAGS) + + t_inetd: t_inetd.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_inetd t_inetd.o $(KRB5_BASE_LIBS) + + clean: + $(RM) t_inetd t_inetd.o site.exp runenv.vars runenv.vals +--- 23,29 ---- + $(RUNTEST) --tool krb VALGRIND="$(VALGRIND)" $(RUNTESTFLAGS) + + t_inetd: t_inetd.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_inetd t_inetd.o $(KRB5_BASE_LIBS) + + clean: + $(RM) t_inetd t_inetd.o site.exp runenv.vars runenv.vals +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/gssapi/Makefile.in krb5_edit/src/tests/gssapi/Makefile.in +*** krb5/src/tests/gssapi/Makefile.in 2022-08-26 16:04:07.228000000 +0800 +--- krb5_edit/src/tests/gssapi/Makefile.in 2022-08-26 16:03:35.124000000 +0800 +*************** +*** 58,124 **** + $(RUNPYTEST) $(srcdir)/t_negoex.py $(PYTESTFLAGS) + + ccinit: ccinit.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o ccinit ccinit.o $(KRB5_BASE_LIBS) + ccrefresh: ccrefresh.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o ccrefresh ccrefresh.o $(KRB5_BASE_LIBS) + reload: reload.o +! $(CC_LINK) -o $@ reload.o $(DL_LIB) + t_accname: t_accname.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_accname.o $(COMMON_LIBS) + t_add_cred: t_add_cred.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_add_cred.o $(COMMON_LIBS) + t_ccselect: t_ccselect.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_ccselect.o $(COMMON_LIBS) + t_ciflags: t_ciflags.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_ciflags.o $(COMMON_LIBS) + t_context: t_context.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_context.o $(COMMON_LIBS) + t_credstore: t_credstore.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_credstore.o $(COMMON_LIBS) + t_enctypes: t_enctypes.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_enctypes.o $(COMMON_LIBS) + t_err: t_err.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_err.o $(COMMON_LIBS) + t_export_cred: t_export_cred.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_export_cred.o $(COMMON_LIBS) + t_export_name: t_export_name.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_export_name.o $(COMMON_LIBS) + t_gssexts: t_gssexts.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_gssexts.o $(COMMON_LIBS) + t_imp_cred: t_imp_cred.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_imp_cred.o $(COMMON_LIBS) + t_imp_name: t_imp_name.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_imp_name.o $(COMMON_LIBS) + t_invalid: t_invalid.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_invalid.o $(COMMON_LIBS) + t_inq_cred: t_inq_cred.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_inq_cred.o $(COMMON_LIBS) + t_inq_ctx: t_inq_ctx.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_inq_ctx.o $(COMMON_LIBS) + t_inq_mechs_name: t_inq_mechs_name.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_inq_mechs_name.o $(COMMON_LIBS) + t_iov: t_iov.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_iov.o $(COMMON_LIBS) + t_lifetime: t_lifetime.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_lifetime.o $(COMMON_LIBS) + t_namingexts: t_namingexts.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_namingexts.o $(COMMON_LIBS) + t_pcontok: t_pcontok.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_pcontok.o $(COMMON_LIBS) + t_oid: t_oid.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_oid.o $(COMMON_LIBS) + t_prf: t_prf.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_prf.o $(COMMON_LIBS) + t_s4u: t_s4u.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_s4u.o $(COMMON_LIBS) + t_s4u2proxy_krb5: t_s4u2proxy_krb5.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_s4u2proxy_krb5.o $(COMMON_LIBS) + t_saslname: t_saslname.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_saslname.o $(COMMON_LIBS) + t_spnego: t_spnego.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_spnego.o $(COMMON_LIBS) + t_srcattrs: t_srcattrs.o $(COMMON_DEPS) +! $(CC_LINK) -o $@ t_srcattrs.o $(COMMON_LIBS) + + clean: + $(RM) ccinit ccrefresh reload t_accname t_add_cred t_ccselect t_ciflags +--- 58,124 ---- + $(RUNPYTEST) $(srcdir)/t_negoex.py $(PYTESTFLAGS) + + ccinit: ccinit.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o ccinit ccinit.o $(KRB5_BASE_LIBS) + ccrefresh: ccrefresh.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o ccrefresh ccrefresh.o $(KRB5_BASE_LIBS) + reload: reload.o +! $(CC_LINK) -pie -o $@ reload.o $(DL_LIB) + t_accname: t_accname.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_accname.o $(COMMON_LIBS) + t_add_cred: t_add_cred.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_add_cred.o $(COMMON_LIBS) + t_ccselect: t_ccselect.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_ccselect.o $(COMMON_LIBS) + t_ciflags: t_ciflags.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_ciflags.o $(COMMON_LIBS) + t_context: t_context.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_context.o $(COMMON_LIBS) + t_credstore: t_credstore.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_credstore.o $(COMMON_LIBS) + t_enctypes: t_enctypes.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_enctypes.o $(COMMON_LIBS) + t_err: t_err.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_err.o $(COMMON_LIBS) + t_export_cred: t_export_cred.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_export_cred.o $(COMMON_LIBS) + t_export_name: t_export_name.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_export_name.o $(COMMON_LIBS) + t_gssexts: t_gssexts.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_gssexts.o $(COMMON_LIBS) + t_imp_cred: t_imp_cred.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_imp_cred.o $(COMMON_LIBS) + t_imp_name: t_imp_name.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_imp_name.o $(COMMON_LIBS) + t_invalid: t_invalid.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_invalid.o $(COMMON_LIBS) + t_inq_cred: t_inq_cred.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_inq_cred.o $(COMMON_LIBS) + t_inq_ctx: t_inq_ctx.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_inq_ctx.o $(COMMON_LIBS) + t_inq_mechs_name: t_inq_mechs_name.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_inq_mechs_name.o $(COMMON_LIBS) + t_iov: t_iov.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_iov.o $(COMMON_LIBS) + t_lifetime: t_lifetime.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_lifetime.o $(COMMON_LIBS) + t_namingexts: t_namingexts.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_namingexts.o $(COMMON_LIBS) + t_pcontok: t_pcontok.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_pcontok.o $(COMMON_LIBS) + t_oid: t_oid.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_oid.o $(COMMON_LIBS) + t_prf: t_prf.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_prf.o $(COMMON_LIBS) + t_s4u: t_s4u.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_s4u.o $(COMMON_LIBS) + t_s4u2proxy_krb5: t_s4u2proxy_krb5.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_s4u2proxy_krb5.o $(COMMON_LIBS) + t_saslname: t_saslname.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_saslname.o $(COMMON_LIBS) + t_spnego: t_spnego.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_spnego.o $(COMMON_LIBS) + t_srcattrs: t_srcattrs.o $(COMMON_DEPS) +! $(CC_LINK) -pie -o $@ t_srcattrs.o $(COMMON_LIBS) + + clean: + $(RM) ccinit ccrefresh reload t_accname t_add_cred t_ccselect t_ciflags +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/hammer/Makefile.in krb5_edit/src/tests/hammer/Makefile.in +*** krb5/src/tests/hammer/Makefile.in 2022-08-26 16:04:07.232000000 +0800 +--- krb5_edit/src/tests/hammer/Makefile.in 2022-08-26 16:03:35.128000000 +0800 +*************** +*** 6,12 **** + all: kdc5_hammer + + kdc5_hammer: kdc5_hammer.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o kdc5_hammer kdc5_hammer.o $(KRB5_BASE_LIBS) + + install: + +--- 6,12 ---- + all: kdc5_hammer + + kdc5_hammer: kdc5_hammer.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o kdc5_hammer kdc5_hammer.o $(KRB5_BASE_LIBS) + + install: + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/Makefile.in krb5_edit/src/tests/Makefile.in +*** krb5/src/tests/Makefile.in 2022-08-26 16:04:07.220000000 +0800 +--- krb5_edit/src/tests/Makefile.in 2022-08-26 16:03:35.116000000 +0800 +*************** +*** 24,85 **** + KTEST_OPTS= $(KADMIN_OPTS) -p $(TEST_PREFIX) -n $(TEST_NUM) -D $(TEST_DEPTH) + + adata: adata.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ adata.o $(KRB5_BASE_LIBS) + + etinfo: etinfo.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ etinfo.o $(KRB5_BASE_LIBS) + + forward: forward.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ forward.o $(KRB5_BASE_LIBS) + + gcred: gcred.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ gcred.o $(KRB5_BASE_LIBS) + + hist: hist.o $(KDB5_DEPLIBS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ hist.o $(KDB5_LIBS) $(KADMSRV_LIBS) $(KRB5_BASE_LIBS) + + hooks: hooks.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ hooks.o $(KRB5_BASE_LIBS) + + hrealm: hrealm.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ hrealm.o $(KRB5_BASE_LIBS) + + icinterleave: icinterleave.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ icinterleave.o $(KRB5_BASE_LIBS) + + icred: icred.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ icred.o $(KRB5_BASE_LIBS) + + kdbtest: kdbtest.o $(KDB5_DEPLIBS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ kdbtest.o $(KDB5_LIBS) $(KADMSRV_LIBS) \ + $(KRB5_BASE_LIBS) + + localauth: localauth.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ localauth.o $(KRB5_BASE_LIBS) + + plugorder: plugorder.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ plugorder.o $(KRB5_BASE_LIBS) + + rdreq: rdreq.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ rdreq.o $(KRB5_BASE_LIBS) + + replay: replay.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ replay.o $(KRB5_BASE_LIBS) + + responder: responder.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ responder.o $(KRB5_BASE_LIBS) + + s2p: s2p.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ s2p.o $(KRB5_BASE_LIBS) + + s4u2self: s4u2self.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ s4u2self.o $(KRB5_BASE_LIBS) + + s4u2proxy: s4u2proxy.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ s4u2proxy.o $(KRB5_BASE_LIBS) + + unlockiter: unlockiter.o $(KDB5_DEPLIBS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o $@ unlockiter.o $(KDB5_LIBS) $(KADMSRV_LIBS) \ + $(KRB5_BASE_LIBS) + + check-unix: kdb_check +--- 24,85 ---- + KTEST_OPTS= $(KADMIN_OPTS) -p $(TEST_PREFIX) -n $(TEST_NUM) -D $(TEST_DEPTH) + + adata: adata.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ adata.o $(KRB5_BASE_LIBS) + + etinfo: etinfo.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ etinfo.o $(KRB5_BASE_LIBS) + + forward: forward.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ forward.o $(KRB5_BASE_LIBS) + + gcred: gcred.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ gcred.o $(KRB5_BASE_LIBS) + + hist: hist.o $(KDB5_DEPLIBS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ hist.o $(KDB5_LIBS) $(KADMSRV_LIBS) $(KRB5_BASE_LIBS) + + hooks: hooks.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ hooks.o $(KRB5_BASE_LIBS) + + hrealm: hrealm.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ hrealm.o $(KRB5_BASE_LIBS) + + icinterleave: icinterleave.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ icinterleave.o $(KRB5_BASE_LIBS) + + icred: icred.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ icred.o $(KRB5_BASE_LIBS) + + kdbtest: kdbtest.o $(KDB5_DEPLIBS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ kdbtest.o $(KDB5_LIBS) $(KADMSRV_LIBS) \ + $(KRB5_BASE_LIBS) + + localauth: localauth.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ localauth.o $(KRB5_BASE_LIBS) + + plugorder: plugorder.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ plugorder.o $(KRB5_BASE_LIBS) + + rdreq: rdreq.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ rdreq.o $(KRB5_BASE_LIBS) + + replay: replay.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ replay.o $(KRB5_BASE_LIBS) + + responder: responder.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ responder.o $(KRB5_BASE_LIBS) + + s2p: s2p.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ s2p.o $(KRB5_BASE_LIBS) + + s4u2self: s4u2self.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ s4u2self.o $(KRB5_BASE_LIBS) + + s4u2proxy: s4u2proxy.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ s4u2proxy.o $(KRB5_BASE_LIBS) + + unlockiter: unlockiter.o $(KDB5_DEPLIBS) $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o $@ unlockiter.o $(KDB5_LIBS) $(KADMSRV_LIBS) \ + $(KRB5_BASE_LIBS) + + check-unix: kdb_check +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/resolve/Makefile.in krb5_edit/src/tests/resolve/Makefile.in +*** krb5/src/tests/resolve/Makefile.in 2022-08-26 16:04:07.232000000 +0800 +--- krb5_edit/src/tests/resolve/Makefile.in 2022-08-26 16:03:35.132000000 +0800 +*************** +*** 8,20 **** + all: resolve addrinfo-test fake-addrinfo-test + + resolve: resolve.o +! $(CC_LINK) -o $@ resolve.o $(SUPPORT_LIB) $(LIBS) + + addrinfo-test: addrinfo-test.o +! $(CC_LINK) -o $@ addrinfo-test.o $(SUPPORT_LIB) $(LIBS) + + fake-addrinfo-test: fake-addrinfo-test.o +! $(CC_LINK) -o $@ fake-addrinfo-test.o $(SUPPORT_LIB) $(LIBS) + + check: resolve addrinfo-test fake-addrinfo-test + $(RUN_TEST) ./resolve +--- 8,20 ---- + all: resolve addrinfo-test fake-addrinfo-test + + resolve: resolve.o +! $(CC_LINK) -pie -o $@ resolve.o $(SUPPORT_LIB) $(LIBS) + + addrinfo-test: addrinfo-test.o +! $(CC_LINK) -pie -o $@ addrinfo-test.o $(SUPPORT_LIB) $(LIBS) + + fake-addrinfo-test: fake-addrinfo-test.o +! $(CC_LINK) -pie -o $@ fake-addrinfo-test.o $(SUPPORT_LIB) $(LIBS) + + check: resolve addrinfo-test fake-addrinfo-test + $(RUN_TEST) ./resolve +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/shlib/Makefile.in krb5_edit/src/tests/shlib/Makefile.in +*** krb5/src/tests/shlib/Makefile.in 2022-08-26 16:04:07.232000000 +0800 +--- krb5_edit/src/tests/shlib/Makefile.in 2022-08-26 16:03:35.132000000 +0800 +*************** +*** 12,18 **** + $(RUN_TEST) ./t_loader + + t_loader: t_loader.o +! $(CC_LINK) -o t_loader t_loader.o $(DL_LIB) + + check-unix: + +--- 12,18 ---- + $(RUN_TEST) ./t_loader + + t_loader: t_loader.o +! $(CC_LINK) -pie -o t_loader t_loader.o $(DL_LIB) + + check-unix: + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/threads/Makefile.in krb5_edit/src/tests/threads/Makefile.in +*** krb5/src/tests/threads/Makefile.in 2022-08-26 16:04:07.240000000 +0800 +--- krb5_edit/src/tests/threads/Makefile.in 2022-08-26 16:03:35.136000000 +0800 +*************** +*** 18,27 **** + $(RUN_TEST) ./t_rcache + + t_rcache: t_rcache.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o t_rcache t_rcache.o $(KRB5_BASE_LIBS) $(THREAD_LINKOPTS) + + prof1: prof1.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o prof1 prof1.o $(KRB5_BASE_LIBS) $(THREAD_LINKOPTS) + + prof1.o: prof1.c + +--- 18,27 ---- + $(RUN_TEST) ./t_rcache + + t_rcache: t_rcache.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o t_rcache t_rcache.o $(KRB5_BASE_LIBS) $(THREAD_LINKOPTS) + + prof1: prof1.o $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o prof1 prof1.o $(KRB5_BASE_LIBS) $(THREAD_LINKOPTS) + + prof1.o: prof1.c + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/tests/verify/Makefile.in krb5_edit/src/tests/verify/Makefile.in +*** krb5/src/tests/verify/Makefile.in 2022-08-26 16:04:07.240000000 +0800 +--- krb5_edit/src/tests/verify/Makefile.in 2022-08-26 16:03:35.136000000 +0800 +*************** +*** 7,13 **** + all: kdb5_verify + + kdb5_verify: kdb5_verify.o $(KDB5_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -o kdb5_verify kdb5_verify.o $(KDB5_LIBS) $(KDB5_DEP_LIB) $(KRB5_BASE_LIBS) + + install: + +--- 7,13 ---- + all: kdb5_verify + + kdb5_verify: kdb5_verify.o $(KDB5_DEPLIBS) $(KRB5_BASE_DEPLIBS) +! $(CC_LINK) -pie -o kdb5_verify kdb5_verify.o $(KDB5_LIBS) $(KDB5_DEP_LIB) $(KRB5_BASE_LIBS) + + install: + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/util/et/libcom_err_gauss.exports krb5_edit/src/util/et/libcom_err_gauss.exports +*** krb5/src/util/et/libcom_err_gauss.exports 1970-01-01 08:00:00.000000000 +0800 +--- krb5_edit/src/util/et/libcom_err_gauss.exports 2022-08-26 16:03:35.140000000 +0800 +*************** +*** 0 **** +--- 1,9 ---- ++ add_error_table ++ com_err ++ com_err_va ++ error_message ++ error_table_name ++ error_table_name_r ++ remove_error_table ++ reset_com_err_hook ++ set_com_err_hook +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/util/et/Makefile.in krb5_edit/src/util/et/Makefile.in +*** krb5/src/util/et/Makefile.in 2022-08-26 16:04:07.240000000 +0800 +--- krb5_edit/src/util/et/Makefile.in 2022-08-26 16:03:35.136000000 +0800 +*************** +*** 13,19 **** + ##DOS##OBJFILE=$(OUTPRE)comerr.lst + + STLIBOBJS=error_message.o et_name.o com_err.o +! LIBBASE=com_err + LIBMAJOR=3 + LIBMINOR=0 + LIBINITFUNC=com_err_initialize +--- 13,19 ---- + ##DOS##OBJFILE=$(OUTPRE)comerr.lst + + STLIBOBJS=error_message.o et_name.o com_err.o +! LIBBASE=com_err_gauss + LIBMAJOR=3 + LIBMINOR=0 + LIBINITFUNC=com_err_initialize +*************** +*** 78,86 **** + # $(CC) -o t_com_err t_com_err.o et1.o et2.o $(LIBOBJS) + + test_et: test_et.o test1.o test2.o $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! $(CC_LINK) -o test_et test_et.o test1.o test2.o -lcom_err $(SUPPORT_LIB) + t_com_err: t_com_err.o et1.o et2.o $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! $(CC_LINK) -o t_com_err t_com_err.o et1.o et2.o -lcom_err $(SUPPORT_LIB) + + $(OUTPRE)test_et.exe: $(OUTPRE)test_et.$(OBJEXT) $(OUTPRE)test1.$(OBJEXT) \ + $(OUTPRE)test2.$(OBJEXT) $(CLIB) +--- 78,86 ---- + # $(CC) -o t_com_err t_com_err.o et1.o et2.o $(LIBOBJS) + + test_et: test_et.o test1.o test2.o $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o test_et test_et.o test1.o test2.o -lcom_err_gauss $(SUPPORT_LIB) + t_com_err: t_com_err.o et1.o et2.o $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o t_com_err t_com_err.o et1.o et2.o -lcom_err_gauss $(SUPPORT_LIB) + + $(OUTPRE)test_et.exe: $(OUTPRE)test_et.$(OBJEXT) $(OUTPRE)test1.$(OBJEXT) \ + $(OUTPRE)test2.$(OBJEXT) $(CLIB) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/util/profile/Makefile.in krb5_edit/src/util/profile/Makefile.in +*** krb5/src/util/profile/Makefile.in 2022-08-26 16:04:07.244000000 +0800 +--- krb5_edit/src/util/profile/Makefile.in 2022-08-26 16:03:35.140000000 +0800 +*************** +*** 41,53 **** + $(srcdir)/profile_tcl.c + + DEPLIBS = $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! MLIBS = -lcom_err $(SUPPORT_LIB) $(LIBS) + + LIBBASE=profile + LIBMAJOR=1 + LIBMINOR=1 + SHLIB_EXPDEPS = $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! SHLIB_EXPLIBS = -lcom_err $(SUPPORT_LIB) $(LIBS) + + PROFILE_HDR=$(BUILDTOP)$(S)include$(S)profile.h + +--- 41,53 ---- + $(srcdir)/profile_tcl.c + + DEPLIBS = $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! MLIBS = -lcom_err_gauss $(SUPPORT_LIB) $(LIBS) + + LIBBASE=profile + LIBMAJOR=1 + LIBMINOR=1 + SHLIB_EXPDEPS = $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! SHLIB_EXPLIBS = -lcom_err_gauss $(SUPPORT_LIB) $(LIBS) + + PROFILE_HDR=$(BUILDTOP)$(S)include$(S)profile.h + +*************** +*** 77,93 **** + if exist profile.h copy profile.h $(BUILDTOP)\include\profile.h + + test_parse: test_parse.$(OBJEXT) $(OBJS) $(DEPLIBS) +! $(CC_LINK) -o test_parse test_parse.$(OBJEXT) $(OBJS) $(MLIBS) + + test_profile: test_profile.$(OBJEXT) argv_parse.$(OBJEXT) $(OBJS) $(DEPLIBS) +! $(CC_LINK) -o test_profile test_profile.$(OBJEXT) \ + argv_parse.$(OBJEXT) $(OBJS) $(MLIBS) + + test_vtable: test_vtable.$(OBJEXT) $(OBJS) $(DEPLIBS) +! $(CC_LINK) -o test_vtable test_vtable.$(OBJEXT) $(OBJS) $(MLIBS) + + test_load: test_load.$(OBJEXT) $(OBJS) $(DEPLIBS) +! $(CC_LINK) -o test_load test_load.$(OBJEXT) $(OBJS) $(MLIBS) + + modtest.conf: + echo "module `pwd`/testmod/proftest$(DYNOBJEXT):teststring" > $@ +--- 77,93 ---- + if exist profile.h copy profile.h $(BUILDTOP)\include\profile.h + + test_parse: test_parse.$(OBJEXT) $(OBJS) $(DEPLIBS) +! $(CC_LINK) -pie -o test_parse test_parse.$(OBJEXT) $(OBJS) $(MLIBS) + + test_profile: test_profile.$(OBJEXT) argv_parse.$(OBJEXT) $(OBJS) $(DEPLIBS) +! $(CC_LINK) -pie -o test_profile test_profile.$(OBJEXT) \ + argv_parse.$(OBJEXT) $(OBJS) $(MLIBS) + + test_vtable: test_vtable.$(OBJEXT) $(OBJS) $(DEPLIBS) +! $(CC_LINK) -pie -o test_vtable test_vtable.$(OBJEXT) $(OBJS) $(MLIBS) + + test_load: test_load.$(OBJEXT) $(OBJS) $(DEPLIBS) +! $(CC_LINK) -pie -o test_load test_load.$(OBJEXT) $(OBJS) $(MLIBS) + + modtest.conf: + echo "module `pwd`/testmod/proftest$(DYNOBJEXT):teststring" > $@ +*************** +*** 122,128 **** + # (cd $(srcdir) && swig -tcl8 -nosafe -o profile_tcl.c profile.swg) + profile_tcl.o: $(srcdir)/profile_tcl.c profile.h + profile_tcl: profile_tcl.o $(PROF_DEPLIB) $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! $(CC_LINK) -o profile_tcl profile_tcl.o \ + $(TCL_MAYBE_RPATH) \ + -L../et -L../.. -lprofile $(TCL_LIBS) $(MLIBS) + +--- 122,128 ---- + # (cd $(srcdir) && swig -tcl8 -nosafe -o profile_tcl.c profile.swg) + profile_tcl.o: $(srcdir)/profile_tcl.c profile.h + profile_tcl: profile_tcl.o $(PROF_DEPLIB) $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) +! $(CC_LINK) -pie -o profile_tcl profile_tcl.o \ + $(TCL_MAYBE_RPATH) \ + -L../et -L../.. -lprofile $(TCL_LIBS) $(MLIBS) + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' krb5/src/util/support/Makefile.in krb5_edit/src/util/support/Makefile.in +*** krb5/src/util/support/Makefile.in 2022-08-26 16:04:07.248000000 +0800 +--- krb5_edit/src/util/support/Makefile.in 2022-08-26 16:03:35.144000000 +0800 +*************** +*** 11,17 **** + + SED = sed + +! LIBBASE=krb5support + LIBMAJOR=@SUPPORTLIB_MAJOR@ + LIBMINOR=1 + +--- 11,17 ---- + + SED = sed + +! LIBBASE=krb5support_gauss + LIBMAJOR=@SUPPORTLIB_MAJOR@ + LIBMINOR=1 + +*************** +*** 214,226 **** + T_K5BUF_OBJS= t_k5buf.o k5buf.o zap.o $(PRINTF_ST_OBJ) + + t_k5buf: $(T_K5BUF_OBJS) +! $(CC_LINK) -o t_k5buf $(T_K5BUF_OBJS) + + t_path: t_path.o path.o $(PRINTF_ST_OBJ) +! $(CC_LINK) -o $@ t_path.o path.o $(PRINTF_ST_OBJ) + + t_path_win: t_path_win.o path_win.o $(PRINTF_ST_OBJ) +! $(CC_LINK) -o $@ t_path_win.o path_win.o $(PRINTF_ST_OBJ) + + t_path_win.o: $(srcdir)/t_path.c + $(CC) $(ALL_CFLAGS) -DWINDOWS_PATHS -c $(srcdir)/t_path.c -o $@ +--- 214,226 ---- + T_K5BUF_OBJS= t_k5buf.o k5buf.o zap.o $(PRINTF_ST_OBJ) + + t_k5buf: $(T_K5BUF_OBJS) +! $(CC_LINK) -pie -o t_k5buf $(T_K5BUF_OBJS) + + t_path: t_path.o path.o $(PRINTF_ST_OBJ) +! $(CC_LINK) -pie -o $@ t_path.o path.o $(PRINTF_ST_OBJ) + + t_path_win: t_path_win.o path_win.o $(PRINTF_ST_OBJ) +! $(CC_LINK) -pie -o $@ t_path_win.o path_win.o $(PRINTF_ST_OBJ) + + t_path_win.o: $(srcdir)/t_path.c + $(CC) $(ALL_CFLAGS) -DWINDOWS_PATHS -c $(srcdir)/t_path.c -o $@ +*************** +*** 229,257 **** + $(CC) $(ALL_CFLAGS) -DWINDOWS_PATHS -c $(srcdir)/path.c -o $@ + + t_base64: t_base64.o base64.o +! $(CC_LINK) -o $@ t_base64.o base64.o + + T_JSON_OBJS= t_json.o json.o base64.o k5buf.o zap.o $(PRINTF_ST_OBJ) + + t_json: $(T_JSON_OBJS) +! $(CC_LINK) -o $@ $(T_JSON_OBJS) + + t_hex: t_hex.o hex.o +! $(CC_LINK) -o $@ t_hex.o hex.o + + t_hashtab: t_hashtab.o +! $(CC_LINK) -o $@ t_hashtab.o + + t_unal: t_unal.o +! $(CC_LINK) -o t_unal t_unal.o + + t_utf8: t_utf8.o utf8.o +! $(CC_LINK) -o t_utf8 t_utf8.o utf8.o + + T_UTF16_OBJS= t_utf16.o utf8_conv.o utf8.o k5buf.o zap.o $(PRINTF_ST_OBJ) + + t_utf16: $(T_UTF16_OBJS) +! $(CC_LINK) -o $@ $(T_UTF16_OBJS) + + TEST_PROGS= t_k5buf t_path t_path_win t_base64 t_json t_hex t_hashtab t_unal \ + t_utf8 t_utf16 +--- 229,257 ---- + $(CC) $(ALL_CFLAGS) -DWINDOWS_PATHS -c $(srcdir)/path.c -o $@ + + t_base64: t_base64.o base64.o +! $(CC_LINK) -pie -o $@ t_base64.o base64.o + + T_JSON_OBJS= t_json.o json.o base64.o k5buf.o zap.o $(PRINTF_ST_OBJ) + + t_json: $(T_JSON_OBJS) +! $(CC_LINK) -pie -o $@ $(T_JSON_OBJS) + + t_hex: t_hex.o hex.o +! $(CC_LINK) -pie -o $@ t_hex.o hex.o + + t_hashtab: t_hashtab.o +! $(CC_LINK) -pie -o $@ t_hashtab.o + + t_unal: t_unal.o +! $(CC_LINK) -pie -o t_unal t_unal.o + + t_utf8: t_utf8.o utf8.o +! $(CC_LINK) -pie -o t_utf8 t_utf8.o utf8.o + + T_UTF16_OBJS= t_utf16.o utf8_conv.o utf8.o k5buf.o zap.o $(PRINTF_ST_OBJ) + + t_utf16: $(T_UTF16_OBJS) +! $(CC_LINK) -pie -o $@ $(T_UTF16_OBJS) + + TEST_PROGS= t_k5buf t_path t_path_win t_base64 t_json t_hex t_hashtab t_unal \ + t_utf8 t_utf16 diff --git a/og-cmake.patch b/og-cmake.patch new file mode 100644 index 0000000000000000000000000000000000000000..67cc92383a98889bc1efc4e6ab58bcc557d7e077 --- /dev/null +++ b/og-cmake.patch @@ -0,0 +1,293 @@ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/cmake/src/set_thirdparty_path.cmake opengauss_server_600_edit/cmake/src/set_thirdparty_path.cmake +*** opengauss_server_600/cmake/src/set_thirdparty_path.cmake 2024-11-19 20:01:27.693621300 +0800 +--- opengauss_server_600_edit/cmake/src/set_thirdparty_path.cmake 2024-11-21 20:14:05.645621300 +0800 +*************** +*** 36,105 **** + set(LIB_UNIFIED_SUPPORT comm) + set(MEMCHECK_BUILD_TYPE debug) + set(DEPENDENCY_PATH ${3RD_PATH}/kernel/dependency) +! set(PLATFORM_PATH ${3RD_PATH}/kernel/platform) +! set(BUILDTOOLS_PATH ${3RD_PATH}/buildtools) +! set(COMPONENT_PATH ${3RD_PATH}/kernel/component) +! +! set(CJSON_HOME ${DEPENDENCY_PATH}/cjson/${SUPPORT_LLT}) +! set(ETCD_HOME ${DEPENDENCY_PATH}/etcd/${LIB_UNIFIED_SUPPORT}) +! set(EVENT_HOME ${DEPENDENCY_PATH}/event/${LIB_UNIFIED_SUPPORT}) +! set(FIO_HOME ${DEPENDENCY_PATH}/fio/${SUPPORT_LLT}) +! set(IPERF_HOME ${DEPENDENCY_PATH}/iperf/${LIB_UNIFIED_SUPPORT}) + if("${VERSION_TYPE}" STREQUAL "debug" OR "${VERSION_TYPE}" STREQUAL "memcheck") + set(JEMALLOC_HOME ${DEPENDENCY_PATH}/jemalloc/debug${JEMALLOC_SUPPORT_LLT}) + else() + set(JEMALLOC_HOME ${DEPENDENCY_PATH}/jemalloc/${VERSION_TYPE}${JEMALLOC_SUPPORT_LLT}) + endif() + set(KERBEROS_HOME ${DEPENDENCY_PATH}/kerberos/${SUPPORT_LLT}) +- set(KMC_HOME ${PLATFORM_PATH}/kmc/${LIB_UNIFIED_SUPPORT}) +- set(CGROUP_HOME ${DEPENDENCY_PATH}/libcgroup/${SUPPORT_LLT}) +- set(CURL_HOME ${DEPENDENCY_PATH}/libcurl/${SUPPORT_LLT}) +- set(EDIT_HOME ${DEPENDENCY_PATH}/libedit/${SUPPORT_LLT}) +- set(OBS_HOME ${DEPENDENCY_PATH}/libobs/${LIB_UNIFIED_SUPPORT}) +- set(XML2_HOME ${DEPENDENCY_PATH}/libxml2/${SUPPORT_LLT}) +- set(LLVM_HOME ${DEPENDENCY_PATH}/llvm/${LIB_UNIFIED_SUPPORT}) +- set(LZ4_HOME ${DEPENDENCY_PATH}/lz4/${SUPPORT_LLT}) +- set(NANOMSG_HOME ${DEPENDENCY_PATH}/nng/${LIB_UNIFIED_SUPPORT}) +- set(NCURSES_HOME ${DEPENDENCY_PATH}/ncurses/${SUPPORT_LLT}) +- set(AWSSDK_HOME ${DEPENDENCY_PATH}/aws-sdk-cpp/${SUPPORT_LLT}) + if(($ENV{WITH_TASSL}) STREQUAL "YES") + set(OPENSSL_HOME ${DEPENDENCY_PATH}/tassl/${LIB_UNIFIED_SUPPORT}) + else() + set(OPENSSL_HOME ${DEPENDENCY_PATH}/openssl/${LIB_UNIFIED_SUPPORT}) + endif() + +! set(PLJAVA_HOME ${DEPENDENCY_PATH}/pljava/${LIB_UNIFIED_SUPPORT}) +! if (EXISTS "${PLATFORM_PATH}/openjdk8/${BUILD_TUPLE}/jdk") +! set(JAVA_HOME ${PLATFORM_PATH}/openjdk8/${BUILD_TUPLE}/jdk) + else() +! set(JAVA_HOME ${PLATFORM_PATH}/huaweijdk8/${BUILD_TUPLE}/jdk) + endif() + set(ZLIB_HOME ${DEPENDENCY_PATH}/zlib1.2.11/${SUPPORT_LLT}) + set(XGBOOST_HOME ${DEPENDENCY_PATH}/xgboost/${SUPPORT_LLT}) +- set(ZSTD_HOME ${DEPENDENCY_PATH}/zstd) +- set(LICENSE_HOME ${PLATFORM_PATH}/AdaptiveLM_C_V100R005C01SPC002/${SUPPORT_LLT}) +- set(HOTPATCH_HOME ${PLATFORM_PATH}/hotpatch) +- set(SECURE_HOME ${PLATFORM_PATH}/Huawei_Secure_C/${LIB_UNIFIED_SUPPORT}) +- set(SECUREDYNAMICLIB_HOME ${PLATFORM_PATH}/Huawei_Secure_C/Dynamic_Lib) +- set(DCF_HOME ${COMPONENT_PATH}/dcf) +- set(DMS_HOME ${COMPONENT_PATH}/dms) +- set(DSS_HOME ${COMPONENT_PATH}/dss) +- +- set(MOCKCPP_HOME ${BUILDTOOLS_PATH}/mockcpp/${LIB_UNIFIED_SUPPORT}) +- set(GTEST_HOME ${BUILDTOOLS_PATH}/gtest/${LIB_UNIFIED_SUPPORT}) +- set(MASSTREE_HOME ${BUILDTOOLS_PATH}/masstree/${LIB_UNIFIED_SUPPORT}) +- set(NUMA_HOME ${DEPENDENCY_PATH}/numactl/${SUPPORT_LLT}) +- set(BOOST_HOME ${DEPENDENCY_PATH}/boost/${SUPPORT_LLT}) +- set(ODBC_HOME ${DEPENDENCY_PATH}/unixodbc) +- set(MASSTREE_HOME ${DEPENDENCY_PATH}/masstree/${LIB_UNIFIED_SUPPORT}) +- set(LCOV_HOME ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/gcc/lib/gcc/${HOST_TUPLE}) +- set(GCC_LIB_PATH $ENV{GCC_INSTALL_HOME}) +- set(MEMCHECK_LIB_PATH $ENV{GCC_INSTALL_HOME}/lib64/) +- if("${GCC_LIB_PATH}" STREQUAL "") +- set(GCC_LIB_PATH ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/gcc) +- set(MEMCHECK_HOME ${DEPENDENCY_PATH}/memcheck/${MEMCHECK_BUILD_TYPE}) +- set(MEMCHECK_LIB_PATH ${MEMCHECK_HOME}/gcc${GCC_VERSION}/lib/) +- endif() + + ############################################################################# + # lcov +--- 36,67 ---- + set(LIB_UNIFIED_SUPPORT comm) + set(MEMCHECK_BUILD_TYPE debug) + set(DEPENDENCY_PATH ${3RD_PATH}/kernel/dependency) +! + if("${VERSION_TYPE}" STREQUAL "debug" OR "${VERSION_TYPE}" STREQUAL "memcheck") + set(JEMALLOC_HOME ${DEPENDENCY_PATH}/jemalloc/debug${JEMALLOC_SUPPORT_LLT}) + else() + set(JEMALLOC_HOME ${DEPENDENCY_PATH}/jemalloc/${VERSION_TYPE}${JEMALLOC_SUPPORT_LLT}) + endif() + set(KERBEROS_HOME ${DEPENDENCY_PATH}/kerberos/${SUPPORT_LLT}) + if(($ENV{WITH_TASSL}) STREQUAL "YES") + set(OPENSSL_HOME ${DEPENDENCY_PATH}/tassl/${LIB_UNIFIED_SUPPORT}) + else() + set(OPENSSL_HOME ${DEPENDENCY_PATH}/openssl/${LIB_UNIFIED_SUPPORT}) + endif() + +! execute_process( +! COMMAND bash -c "readlink -f $(which java) | sed 's:/jre/bin/java::'" +! OUTPUT_VARIABLE JAVA_HOME_PATH +! OUTPUT_STRIP_TRAILING_WHITESPACE +! ) +! if(JAVA_HOME_PATH) +! message(STATUS "Detected JAVA_HOME: ${JAVA_HOME_PATH}") +! set(JAVA_HOME ${JAVA_HOME_PATH}) + else() +! message(FATAL_ERROR "Unable to detect JAVA_HOME") + endif() + set(ZLIB_HOME ${DEPENDENCY_PATH}/zlib1.2.11/${SUPPORT_LLT}) + set(XGBOOST_HOME ${DEPENDENCY_PATH}/xgboost/${SUPPORT_LLT}) + + ############################################################################# + # lcov +*************** +*** 209,230 **** + ############################################################################# + # obs component + ############################################################################# +- set(LIBOBS_INCLUDE_PATH ${OBS_HOME}/include) +- set(LIBOBS_LIB_PATH ${OBS_HOME}/lib) + + ############################################################################# + # xml2 component + ############################################################################# +! set(LIBXML_INCLUDE_PATH ${XML2_HOME}/include) +! set(LIBXML_LIB_PATH ${XML2_HOME}/lib) + + ############################################################################# + # llvm component + ############################################################################# +! set(LIBLLVM_BIN_PATH ${LLVM_HOME}/bin) +! set(LIBLLVM_INCLUDE_PATH ${LLVM_HOME}/include) +! set(LIBLLVM_LIB_PATH ${LLVM_HOME}/lib) +! set(LLVM_CONFIG ${LIBLLVM_BIN_PATH}/llvm-config) + + ############################################################################# + # lz4 component +--- 171,187 ---- + ############################################################################# + # obs component + ############################################################################# + + ############################################################################# + # xml2 component + ############################################################################# +! set(LIBXML_INCLUDE_PATH /usr/include) +! set(LIBXML_LIB_PATH /usr/lib64) + + ############################################################################# + # llvm component + ############################################################################# +! + + ############################################################################# + # lz4 component +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/CMakeLists.txt opengauss_server_600_edit/src/CMakeLists.txt +*** opengauss_server_600/src/CMakeLists.txt 2024-11-19 20:01:27.693621300 +0800 +--- opengauss_server_600_edit/src/CMakeLists.txt 2024-11-21 20:14:05.841621300 +0800 +*************** +*** 176,297 **** + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/common/config/cm_config.h DESTINATION include) + + # special +- install(CODE "execute_process( +- COMMAND rm ${prefix_home}/include/pg_config_os.h +- COMMAND rm ${prefix_home}/include/postgresql/server/pg_config_os.h)" +- ) +- install(CODE "execute_process( +- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/include/port/linux.h ${prefix_home}/include/pg_config_os.h +- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/include/port/linux.h ${prefix_home}/include/postgresql/server/pg_config_os.h +- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/include/cm/libpq-fe.h ${prefix_home}/include/cm-libpq-fe.h)" +- ) +- + # open source install part + if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +- install(DIRECTORY ${JAVA_HOME}/jre/ DESTINATION jre FILE_PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE OWNER_READ GROUP_READ) +- endif() +- +- if("${ENABLE_MULTIPLE_NODES}" STREQUAL "OFF") +- install(DIRECTORY ${DCF_LIB_PATH} DESTINATION .) +- endif() +- if(${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF AND NOT ${ENABLE_LITE_MODE} STREQUAL ON) +- if(EXISTS ${DMS_LIB_PATH}) +- install(DIRECTORY ${DMS_LIB_PATH} DESTINATION .) +- endif() +- if(EXISTS ${DSS_LIB_PATH}) +- install(DIRECTORY ${DSS_LIB_PATH} DESTINATION .) +- endif() +- if(EXISTS ${DSS_BIN_PATH}) +- install(DIRECTORY ${DSS_BIN_PATH} DESTINATION . FILE_PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE) +- endif() +- endif() +- +- install(DIRECTORY ${ZSTD_LIB_PATH} DESTINATION . PATTERN "*.a" EXCLUDE) +- if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +- install(DIRECTORY ${LIBOBS_LIB_PATH} DESTINATION .) +- install(DIRECTORY ${LIBOBS_INCLUDE_PATH} DESTINATION include/postgresql/server/access/obs) +- endif() +- install(DIRECTORY ${CJSON_LIB_PATH} DESTINATION .) +- install(DIRECTORY ${CJSON_INCLUDE_PATH}/cjson DESTINATION include/postgresql/server) +- if(NOT ${ENABLE_LITE_MODE} STREQUAL ON) +- install(DIRECTORY ${ETCD_BIN_PATH} DESTINATION .) +- install(DIRECTORY ${IPERF_LIB_PATH} DESTINATION .) +- endif() +- if(NOT ${ENABLE_LITE_MODE} STREQUAL ON) +- if(NOT ${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF) +- install(DIRECTORY ${KMC_LIB_PATH} DESTINATION .) +- endif() +- endif() +- install(DIRECTORY ${LIBCURL_LIB_PATH} DESTINATION .) +- install(DIRECTORY ${AWSSDK_LIB_PATH} DESTINATION .) +- if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") + install(DIRECTORY ${KERBEROS_SBIN_PATH}/ DESTINATION bin) + install(DIRECTORY ${KERBEROS_BIN_PATH} DESTINATION .) + install(DIRECTORY ${KERBEROS_LIB_PATH} DESTINATION .) + endif() +- install(DIRECTORY ${LZ4_LIB_PATH} DESTINATION .) +- install(DIRECTORY ${LZ4_BIN_PATH} DESTINATION .) +- install(DIRECTORY ${LIBOPENSSL_BIN_PATH} DESTINATION .) +- install(DIRECTORY ${LIBOPENSSL_LIB_PATH} DESTINATION . PATTERN "*.a" EXCLUDE ) + install(DIRECTORY ${ZLIB_LIB_PATH} DESTINATION . FILES_MATCHING PATTERN "libz.*") +- +- list(FIND MACRO_OPTIONS "-D__USE_NUMA" RET_NUMA) +- if(NOT ${RET_NUMA} EQUAL -1) +- install(DIRECTORY ${NUMA_LIB_PATH} DESTINATION .) +- endif() +- +- if("${ENABLE_MOT}" STREQUAL "ON") +- install(DIRECTORY ${MASSTREE_LIB_PATH} DESTINATION .) +- install(CODE "execute_process( +- COMMAND cp ${GCC_LIB_PATH}/lib64/libatomic.so.1.2.0 ${prefix_home}/lib/libatomic.so.1.2.0 +- COMMAND ln -fs libatomic.so.1.2.0 libatomic.so +- COMMAND ln -fs libatomic.so.1.2.0 libatomic.so.1 +- WORKING_DIRECTORY ${prefix_home}/lib)" +- ) +- install(CODE "message(\"-- Created symlink: libatomic.so -> libatomic.so.1.2.0\")") +- install(CODE "message(\"-- Created symlink: libatomic.so.1 -> libatomic.so.1.2.0\")") +- endif() +- +- install(FILES ${SECUREDYNAMICLIB_HOME}/libsecurec.so DESTINATION lib) +- install(FILES ${GCC_LIB_PATH}/lib64/libgcc_s.so.1 DESTINATION lib) +- install(FILES ${GCC_LIB_PATH}/lib64/libgomp.so DESTINATION lib) +- install(FILES ${GCC_LIB_PATH}/lib64/libgomp.so.1 DESTINATION lib) +- install(FILES ${GCC_LIB_PATH}/lib64/libgomp.so.1.0.0 DESTINATION lib) +- install(FILES ${XGBOOST_LIB_PATH}/libxgboost.so DESTINATION lib) +- if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +- install(FILES ${PLJAVA_HOME}/lib/libpljava.so DESTINATION lib) +- install(FILES ${PLJAVA_HOME}/java/pljava.jar DESTINATION lib/postgresql/java) +- install(FILES ${PLJAVA_HOME}/udstools.py DESTINATION share/postgresql/tmp) +- endif() +- if(NOT ${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS} STREQUAL OFF_OFF) +- if("${SUPPORT_HOTPATCH}" STREQUAL "yes") +- install(FILES ${LIBHOTPATCH_LIB_PATH}/libdoprapatch.a DESTINATION lib) +- endif() +- endif() +- +- if("${ENABLE_MOT}" STREQUAL "ON") +- install(DIRECTORY ${MASSTREE_LIB_PATH} DESTINATION .) +- install(DIRECTORY ${GCC_LIB_PATH}/lib64/ DESTINATION lib +- FILES_MATCHING PATTERN "libatomic.so*") +- endif() +- +- install(FILES ${GCC_LIB_PATH}/lib64/libgcc_s.so.1 DESTINATION lib) +- install(DIRECTORY ${GCC_LIB_PATH}/lib64/ DESTINATION lib +- FILES_MATCHING PATTERN "libgomp.so*") +- +- install(CODE "execute_process( +- COMMAND cp ${GCC_LIB_PATH}/lib64/libstdc++.so.6.0.${LIBSTD_SUB_VERSION} ${prefix_home}/lib/libstdc++.so.6 +- WORKING_DIRECTORY ${prefix_home}/lib)" +- ) +- +- # install(DIRECTORY ${LIBCGROUP_LIB_PATH} DESTINATION . FILES_MATCHING PATTERN "libcgroup.so*") +- install(CODE "execute_process( +- COMMAND cp ${LIBCGROUP_LIB_PATH}/libcgroup.so.1.0.42 ${prefix_home}/lib/libcgroup.so +- COMMAND ln -fs libcgroup.so libcgroup.so.1 +- WORKING_DIRECTORY ${prefix_home}/lib)" +- ) +- install(CODE "message(\"-- Created symlink: libcgroup.so.1 -> libcgroup.so\")") + + # fastcheck part + install(FILES ${PROJECT_SRC_DIR}/test/regress/stub/roach_api_stub/roach_api_stub.control + DESTINATION share/postgresql/extension/ +--- 176,190 ---- + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/common/config/cm_config.h DESTINATION include) + + # special + # open source install part + if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") + install(DIRECTORY ${KERBEROS_SBIN_PATH}/ DESTINATION bin) + install(DIRECTORY ${KERBEROS_BIN_PATH} DESTINATION .) + install(DIRECTORY ${KERBEROS_LIB_PATH} DESTINATION .) + endif() + install(DIRECTORY ${ZLIB_LIB_PATH} DESTINATION . FILES_MATCHING PATTERN "libz.*") + ++ install(FILES ${XGBOOST_LIB_PATH}/libxgboost.so DESTINATION lib) + # fastcheck part + install(FILES ${PROJECT_SRC_DIR}/test/regress/stub/roach_api_stub/roach_api_stub.control + DESTINATION share/postgresql/extension/ diff --git a/og-delete-obs.patch b/og-delete-obs.patch new file mode 100644 index 0000000000000000000000000000000000000000..2a15ac772601f4f98ac85cbe0e914db81d597b1b --- /dev/null +++ b/og-delete-obs.patch @@ -0,0 +1,1362 @@ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/cmake/src/build_options.cmake opengauss_server_600_edit/cmake/src/build_options.cmake +*** opengauss_server_600/cmake/src/build_options.cmake 2024-11-19 20:01:27.693621300 +0800 +--- opengauss_server_600_edit/cmake/src/build_options.cmake 2024-11-19 20:04:06.889621300 +0800 +*************** +*** 65,70 **** +--- 65,72 ---- + option(ENABLE_ORACLE_FDW "enable export or import data with oracle,the old is --enable-oracle-fdw" OFF) + option(ENABLE_BBOX "enable bbox,the old is --enable-bbox " ON) + option(ENABLE_JEMALLOC "enable jemalloc,the old is --enable-jemalloc " ON) ++ option(ENABLE_OBS "enable obs, the old is --enable-obs " ON) ++ option(ENABLE_OPENSSL3 "enable openssl, the old is --enable-openssl " OFF) + option(BUILD_BY_CMAKE "the BUILD_BY_CMAKE is new,used in distribute pg_regress.cpp" ON) + option(DEBUG_UHEAP "collect USTORE statistics" OFF) + option(MAX_ALLOC_SEGNUM "max alloc xlog seg num in extreme_rto" 4) +*************** +*** 158,163 **** +--- 160,173 ---- + add_definitions(-DOPENEULER_MAJOR) + endif() + ++ if(ENABLE_OBS) ++ add_definitions(-DENABLE_OBS) ++ endif() ++ ++ if(ENABLE_OPENSSL3) ++ add_definitions(-DENABLE_OPENSSL3) ++ endif() ++ + set(PROTECT_OPTIONS -fwrapv -std=c++14 -fnon-call-exceptions ${OPTIMIZE_LEVEL}) + set(WARNING_OPTIONS -Wall -Wendif-labels -Wformat-security) + set(OPTIMIZE_OPTIONS -pipe -pthread -fno-aggressive-loop-optimizations -fno-expensive-optimizations -fno-omit-frame-pointer -fno-strict-aliasing -freg-struct-return) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/common/backend/pgxc_single/barrier/barrier.cpp opengauss_server_600_edit/src/common/backend/pgxc_single/barrier/barrier.cpp +*** opengauss_server_600/src/common/backend/pgxc_single/barrier/barrier.cpp 2024-11-19 20:01:27.697621300 +0800 +--- opengauss_server_600_edit/src/common/backend/pgxc_single/barrier/barrier.cpp 2024-11-19 20:04:07.237621300 +0800 +*************** +*** 401,410 **** +--- 401,412 ---- + recptr = XLogInsert(RM_BARRIER_ID, XLOG_BARRIER_CREATE, InvalidBktId); + XLogWaitFlush(recptr); + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (t_thrd.role == BARRIER_CREATOR) { + UpdateGlobalBarrierListOnMedia(id, g_instance.attr.attr_common.PGXCNodeName); + } + #endif ++ #endif + SpinLockAcquire(&g_instance.archive_obs_cxt.barrier_lock); + pg_atomic_init_u64(&g_instance.archive_obs_cxt.barrierLsn, recptr); + rc = memcpy_s(g_instance.archive_obs_cxt.barrierName, MAX_BARRIER_ID_LENGTH, id, strlen(id)); +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/CMakeLists.txt opengauss_server_600_edit/src/gausskernel/CMakeLists.txt +*** opengauss_server_600/src/gausskernel/CMakeLists.txt 2024-11-19 20:01:27.697621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/CMakeLists.txt 2024-11-19 20:04:07.509621300 +0800 +*************** +*** 257,271 **** + ) + endif() + +! if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +! list(APPEND gaussdb_objects +! $ +! $ +! $ +! $ +! $ +! ) +! endif() + + set(gaussdb_objects ${gaussdb_objects} ${gaussdb_server_objects}) + +--- 257,271 ---- + ) + endif() + +! # if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +! # list(APPEND gaussdb_objects +! # $ +! # $ +! # $ +! # $ +! # $ +! # ) +! # endif() + + set(gaussdb_objects ${gaussdb_objects} ${gaussdb_server_objects}) + +*************** +*** 299,306 **** + list(APPEND gaussdb_LINK_DIRS ${LIBXML_LIB_PATH}) + endif() + + if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +! list(APPEND gaussdb_LINK_LIBS -lz -lminiunz -leSDKOBS -leSDKLogAPI -lpcre -liconv -lnghttp2 -llog4cpp -lcurl -llz4 -lcjson -l${JEMALLOC_LIB_NAME} -lcgroup -lzstd -lcom_err_gauss -lgssapi_krb5_gauss -lkrb5_gauss -lgssrpc_gauss -lk5crypto_gauss -lkadm5clnt_mit -lkadm5srv_mit -lkdb5 -lkrb5support_gauss -lstdc++ -lboost_thread -lboost_chrono -lboost_system -lboost_atomic -lxml2 -laio -lncurses -ltinfo -latomic) + else() + list(APPEND gaussdb_LINK_LIBS -lz -lminiunz -lcurl -llz4 -lcjson -l${JEMALLOC_LIB_NAME} -lcgroup -lzstd -lncurses -ltinfo -lboost_thread -lboost_chrono -lboost_system -lboost_atomic) + endif() +--- 299,310 ---- + list(APPEND gaussdb_LINK_DIRS ${LIBXML_LIB_PATH}) + endif() + ++ if("${ENABLE_OBS}" STREQUAL "ON") ++ list(APPEND gaussdb_LINK_LIBS -leSDKOBS -leSDKLogAPI -lpcre -liconv -lnghttp2 -llog4cpp) ++ endif() ++ + if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +! list(APPEND gaussdb_LINK_LIBS -lz -lminiunz -lcurl -llz4 -lcjson -l${JEMALLOC_LIB_NAME} -lcgroup -lzstd -lcom_err_gauss -lgssapi_krb5_gauss -lkrb5_gauss -lgssrpc_gauss -lk5crypto_gauss -lkadm5clnt_mit -lkadm5srv_mit -lkdb5 -lkrb5support_gauss -lstdc++ -lboost_thread -lboost_chrono -lboost_system -lboost_atomic -lxml2 -laio -lncurses -ltinfo -latomic) + else() + list(APPEND gaussdb_LINK_LIBS -lz -lminiunz -lcurl -llz4 -lcjson -l${JEMALLOC_LIB_NAME} -lcgroup -lzstd -lncurses -ltinfo -lboost_thread -lboost_chrono -lboost_system -lboost_atomic) + endif() +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/optimizer/commands/CMakeLists.txt opengauss_server_600_edit/src/gausskernel/optimizer/commands/CMakeLists.txt +*** opengauss_server_600/src/gausskernel/optimizer/commands/CMakeLists.txt 2024-11-19 20:01:27.697621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/optimizer/commands/CMakeLists.txt 2024-11-19 20:04:07.561621300 +0800 +*************** +*** 1,7 **** + #This is the main CMAKE for build all components. + AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_commands_SRC) + +! if("${ENABLE_LITE_MODE}" STREQUAL "ON") + list(REMOVE_ITEM TGT_commands_SRC ${CMAKE_CURRENT_SOURCE_DIR}/obs_stream.cpp) + endif() + +--- 1,7 ---- + #This is the main CMAKE for build all components. + AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_commands_SRC) + +! if("${ENABLE_LITE_MODE}" STREQUAL "ON" OR NOT "${ENABLE_OBS}" STREQUAL "ON") + list(REMOVE_ITEM TGT_commands_SRC ${CMAKE_CURRENT_SOURCE_DIR}/obs_stream.cpp) + endif() + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/optimizer/commands/copy.cpp opengauss_server_600_edit/src/gausskernel/optimizer/commands/copy.cpp +*** opengauss_server_600/src/gausskernel/optimizer/commands/copy.cpp 2024-11-19 20:01:27.701621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/optimizer/commands/copy.cpp 2024-11-19 20:04:07.569621300 +0800 +*************** +*** 6811,6816 **** +--- 6811,6817 ---- + if (cstate->mode == MODE_NORMAL) { + if (cstate->filename && is_obs_protocol(cstate->filename)) { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (getNextOBS(cstate)) { + cstate->eol_type = EOL_UNKNOWN; + goto retry; +*************** +*** 6818,6823 **** +--- 6819,6825 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + } else { + if (getNextGDS(cstate)) { + if (cstate->eol_type != EOL_UD) +*************** +*** 9632,9637 **** +--- 9634,9640 ---- + case MODE_NORMAL: /* for GDS oriented dist import */ + if (is_obs_protocol(cstate->filename)) { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + /* Attache working house routines for OBS oriented dist import */ + func.initBulkLoad = initOBSModeState; + func.endBulkLoad = endOBSModeBulkLoad; +*************** +*** 9641,9646 **** +--- 9644,9650 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + } else { + /* Attache working house routines for GDS oriented dist import */ + func.initBulkLoad = initNormalModeState; +*************** +*** 9707,9712 **** +--- 9711,9717 ---- + + if (is_obs_protocol(filename)) { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + /* Fetch OBS write only table related attribtues */ + getOBSOptions(&cstate->obs_copy_options, options); + +*************** +*** 9726,9731 **** +--- 9731,9737 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + } else { + initNormalModeState(cstate, filename, tasklist); + } +*************** +*** 9889,9894 **** +--- 9895,9901 ---- + } + } else if (cstate->copy_dest == COPY_OBS) { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (IS_PGXC_DATANODE) { + if (cstate->outBuffer->len > 0) + RemoteExportFlushData(cstate); +*************** +*** 9899,9904 **** +--- 9906,9912 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + } else + exportDeinitOutBuffer(cstate); + MemoryContextDelete(cstate->rowcontext); +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/process/postmaster/CMakeLists.txt opengauss_server_600_edit/src/gausskernel/process/postmaster/CMakeLists.txt +*** opengauss_server_600/src/gausskernel/process/postmaster/CMakeLists.txt 2024-11-19 20:01:27.701621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/process/postmaster/CMakeLists.txt 2024-11-19 20:04:07.697621300 +0800 +*************** +*** 1,11 **** + #This is the main CMAKE for build bin. + AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_postmaster_SRC) + +! if("${ENABLE_LITE_MODE}" STREQUAL "ON") + list(REMOVE_ITEM TGT_postmaster_SRC + ${CMAKE_CURRENT_SOURCE_DIR}/barrier_creator.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/barrier_arch.cpp +! ${CMAKE_CURRENT_SOURCE_DIR}/aiocompleter.cpp + ) + endif() + +--- 1,11 ---- + #This is the main CMAKE for build bin. + AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_postmaster_SRC) + +! if("${ENABLE_LITE_MODE}" STREQUAL "ON" OR NOT "${ENABLE_OBS}" STREQUAL "ON") + list(REMOVE_ITEM TGT_postmaster_SRC + ${CMAKE_CURRENT_SOURCE_DIR}/barrier_creator.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/barrier_arch.cpp +! # ${CMAKE_CURRENT_SOURCE_DIR}/aiocompleter.cpp + ) + endif() + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/process/postmaster/pgarch.cpp opengauss_server_600_edit/src/gausskernel/process/postmaster/pgarch.cpp +*** opengauss_server_600/src/gausskernel/process/postmaster/pgarch.cpp 2024-11-19 20:01:27.701621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/process/postmaster/pgarch.cpp 2024-11-19 20:04:07.705621300 +0800 +*************** +*** 109,114 **** +--- 109,115 ---- + static void pgarch_archiveDone(const char* xlog); + static void archKill(int code, Datum arg); + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + static void pgarch_archiveRoachForPitrStandby(); + static bool pgarch_archiveRoachForPitrMaster(XLogRecPtr targetLsn); + static bool pgarch_archiveRoachForCoordinator(XLogRecPtr targetLsn); +*************** +*** 117,122 **** +--- 118,124 ---- + static void pgarch_ArchiverObsCopyLoop(XLogRecPtr flushPtr, doArchive fun); + static void InitArchiverLastTaskLsn(ArchiveSlotConfig* obs_archive_slot); + #endif ++ #endif + + AlarmCheckResult DataInstArchChecker(Alarm* alarm, AlarmAdditionalParam* additionalParam) + { +*************** +*** 242,249 **** +--- 244,253 ---- + setObsArchLatch(&t_thrd.arch.mainloop_latch); + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + InitArchiverLastTaskLsn(NULL); + #endif ++ #endif + pgarch_MainLoop(); + + gs_thread_exit(0); +*************** +*** 338,346 **** +--- 342,352 ---- + gettimeofday(&last_copy_time, NULL); + bool time_to_stop = false; + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + doArchive fun = NULL; + const int millitosec = 1000; + #endif ++ #endif + + /* + * We run the copy loop immediately upon entry, in case there are +*************** +*** 393,398 **** +--- 399,405 ---- + break; + } + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + load_server_mode(); + if (IsServerModeStandby()) { + +*************** +*** 412,422 **** +--- 419,431 ---- + } + } + #endif ++ #endif + + /* Do what we're here for */ + if (t_thrd.arch.wakened || time_to_stop) { + t_thrd.arch.wakened = false; + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + obs_archive_slot = getArchiveReplicationSlot(); + if (obs_archive_slot != NULL && !IsServerModeStandby()) { + gettimeofday(&curtime, NULL); +*************** +*** 474,484 **** +--- 483,496 ---- + } + } else { + #endif ++ #endif + pgarch_ArchiverCopyLoop(); + gettimeofday(&last_copy_time, NULL); + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + } + #endif ++ #endif + } + + /* +*************** +*** 688,693 **** +--- 700,706 ---- + } + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + /* + * pgarch_ArchiverObsCopyLoop + * +*************** +*** 771,776 **** +--- 784,790 ---- + } while (XLByteLT(t_thrd.arch.pitr_task_last_lsn, flushPtr)); + } + #endif ++ #endif + + /* + * pgarch_archiveXlog +*************** +*** 1031,1036 **** +--- 1045,1051 ---- + } + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + /* + * pgarch_archiveRoachForPitrStandby + * get signal from walreceiver, fork a roach process to archive xlog +*************** +*** 1307,1309 **** +--- 1322,1325 ---- + } + + #endif ++ #endif +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/process/postmaster/postmaster.cpp opengauss_server_600_edit/src/gausskernel/process/postmaster/postmaster.cpp +*** opengauss_server_600/src/gausskernel/process/postmaster/postmaster.cpp 2024-11-19 20:01:27.705621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/process/postmaster/postmaster.cpp 2024-11-19 20:04:07.709621300 +0800 +*************** +*** 225,231 **** + + #include "distributelayer/streamMain.h" + #include "distributelayer/streamProducer.h" +! #ifndef ENABLE_LITE_MODE + #include "eSDKOBS.h" + #endif + #include "cjson/cJSON.h" +--- 225,231 ---- + + #include "distributelayer/streamMain.h" + #include "distributelayer/streamProducer.h" +! #if !defined(ENABLE_LITE_MODE) && defined(ENABLE_OBS) + #include "eSDKOBS.h" + #endif + #include "cjson/cJSON.h" +*************** +*** 1870,1876 **** + */ + initialize_feature_flags(); + +! #ifndef ENABLE_LITE_MODE + /* + * @OBS + * Create a global OBS CA object shared among threads +--- 1870,1876 ---- + */ + initialize_feature_flags(); + +! #if !defined(ENABLE_LITE_MODE) && defined(ENABLE_OBS) + /* + * @OBS + * Create a global OBS CA object shared among threads +*************** +*** 3002,3010 **** +--- 3002,3012 ---- + } + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (g_instance.attr.attr_storage.enable_adio_function) + AioResourceInitialize(); + #endif ++ #endif + + /* start alarm checker thread. */ + if (!dummyStandbyMode) +*************** +*** 6341,6346 **** +--- 6343,6349 ---- + } + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (g_instance.pid_cxt.BarrierCreatorPID != 0) { + barrier_creator_thread_shutdown(); + signal_child(g_instance.pid_cxt.BarrierCreatorPID, SIGTERM); +*************** +*** 6354,6359 **** +--- 6357,6363 ---- + } + } + #endif ++ #endif + + #ifdef ENABLE_MULTIPLE_NODES + if (g_instance.pid_cxt.CsnminSyncPID != 0) { +*************** +*** 6778,6788 **** +--- 6782,6794 ---- + } + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (g_instance.pid_cxt.BarrierCreatorPID != 0) { + barrier_creator_thread_shutdown(); + signal_child(g_instance.pid_cxt.BarrierCreatorPID, SIGTERM); + } + #endif ++ #endif + + #ifdef ENABLE_MULTIPLE_NODES + if (g_instance.pid_cxt.CsnminSyncPID != 0) { +*************** +*** 8468,8478 **** +--- 8474,8486 ---- + signal_child(g_instance.pid_cxt.HeartbeatPID, SIGTERM); + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (g_instance.pid_cxt.BarrierCreatorPID != 0) { + barrier_creator_thread_shutdown(); + signal_child(g_instance.pid_cxt.BarrierCreatorPID, SIGTERM); + } + #endif ++ #endif + #ifdef ENABLE_MULTIPLE_NODES + if (g_instance.pid_cxt.CsnminSyncPID != 0) { + csnminsync_thread_shutdown(); +*************** +*** 9637,9643 **** + + CloseGaussPidDir(); + +! #ifndef ENABLE_LITE_MODE + obs_deinitialize(); + #endif + +--- 9645,9651 ---- + + CloseGaussPidDir(); + +! #if !defined(ENABLE_LITE_MODE) && defined(ENABLE_OBS) + obs_deinitialize(); + #endif + +*************** +*** 14640,14645 **** +--- 14648,14654 ---- + } break; + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + case BARRIER_CREATOR: { + if (START_BARRIER_CREATOR) { + t_thrd.proc_cxt.MyPMChildSlot = AssignPostmasterChildSlot(); +*************** +*** 14665,14670 **** +--- 14674,14680 ---- + } + } break; + #endif ++ #endif + + #ifdef ENABLE_MULTIPLE_NODES + case COMM_POOLER_CLEAN: { +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/runtime/CMakeLists.txt opengauss_server_600_edit/src/gausskernel/runtime/CMakeLists.txt +*** opengauss_server_600/src/gausskernel/runtime/CMakeLists.txt 2024-11-19 20:01:27.705621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/runtime/CMakeLists.txt 2024-11-19 20:04:07.725621300 +0800 +*************** +*** 12,18 **** + ${CMAKE_CURRENT_SOURCE_DIR}/vecexecutor + ) + +! if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") + list(APPEND CMAKE_MODULE_PATH + ${CMAKE_CURRENT_SOURCE_DIR}/codegen + ) +--- 12,18 ---- + ${CMAKE_CURRENT_SOURCE_DIR}/vecexecutor + ) + +! if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON" AND "${ENABLE_LLVM_COMPILE}" STREQUAL "ON") + list(APPEND CMAKE_MODULE_PATH + ${CMAKE_CURRENT_SOURCE_DIR}/codegen + ) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/access/archive/archive_am.cpp opengauss_server_600_edit/src/gausskernel/storage/access/archive/archive_am.cpp +*** opengauss_server_600/src/gausskernel/storage/access/archive/archive_am.cpp 2024-11-19 20:01:27.705621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/access/archive/archive_am.cpp 2024-11-19 20:04:07.777621300 +0800 +*************** +*** 30,41 **** + if (archive_config == NULL) { + return 0; + } + if (archive_config->media_type == ARCHIVE_OBS) { + return obsRead(fileName, offset, buffer, length, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + return NasRead(fileName, offset, buffer, length, archive_config); + } +! + return 0; + } + +--- 30,42 ---- + if (archive_config == NULL) { + return 0; + } ++ #ifdef ENABLE_OBS + if (archive_config->media_type == ARCHIVE_OBS) { + return obsRead(fileName, offset, buffer, length, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + return NasRead(fileName, offset, buffer, length, archive_config); + } +! #endif + return 0; + } + +*************** +*** 46,57 **** + return ret; + } + + if (archive_config->media_type == ARCHIVE_OBS) { + ret = obsWrite(fileName, buffer, bufferLength, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = NasWrite(fileName, buffer, bufferLength, archive_config); + } +! + return ret; + } + +--- 47,59 ---- + return ret; + } + ++ #ifdef ENABLE_OBS + if (archive_config->media_type == ARCHIVE_OBS) { + ret = obsWrite(fileName, buffer, bufferLength, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = NasWrite(fileName, buffer, bufferLength, archive_config); + } +! #endif + return ret; + } + +*************** +*** 61,73 **** + if (archive_config == NULL) { + return ret; + } +! + if (archive_config->media_type == ARCHIVE_OBS) { + ret = obsDelete(fileName, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = NasDelete(fileName, archive_config); + } +! + return ret; + } + +--- 63,75 ---- + if (archive_config == NULL) { + return ret; + } +! #ifdef ENABLE_OBS + if (archive_config->media_type == ARCHIVE_OBS) { + ret = obsDelete(fileName, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = NasDelete(fileName, archive_config); + } +! #endif + return ret; + } + +*************** +*** 77,89 **** + if (archive_config == NULL) { + return fileNameList; + } +! + if (archive_config->media_type == ARCHIVE_OBS) { + fileNameList = obsList(prefix, archive_config, reportError, shortenConnTime); + } else if (archive_config->media_type == ARCHIVE_NAS) { + fileNameList = NasList(prefix, archive_config); + } +! + return fileNameList; + } + +--- 79,91 ---- + if (archive_config == NULL) { + return fileNameList; + } +! #ifdef ENABLE_OBS + if (archive_config->media_type == ARCHIVE_OBS) { + fileNameList = obsList(prefix, archive_config, reportError, shortenConnTime); + } else if (archive_config->media_type == ARCHIVE_NAS) { + fileNameList = NasList(prefix, archive_config); + } +! #endif + return fileNameList; + } + +*************** +*** 94,105 **** + ereport(WARNING, (errmsg("when check file exist, the archive config is null"))); + return ret; + } +! + if (archive_config->media_type == ARCHIVE_OBS) { + ret = checkOBSFileExist(file_path, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = checkNASFileExist(file_path, archive_config); + } +! + return ret; + } +--- 96,107 ---- + ereport(WARNING, (errmsg("when check file exist, the archive config is null"))); + return ret; + } +! #ifdef ENABLE_OBS + if (archive_config->media_type == ARCHIVE_OBS) { + ret = checkOBSFileExist(file_path, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = checkNASFileExist(file_path, archive_config); + } +! #endif + return ret; + } +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/access/CMakeLists.txt opengauss_server_600_edit/src/gausskernel/storage/access/CMakeLists.txt +*** opengauss_server_600/src/gausskernel/storage/access/CMakeLists.txt 2024-11-19 20:01:27.705621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/access/CMakeLists.txt 2024-11-19 20:04:07.777621300 +0800 +*************** +*** 25,31 **** + ${CMAKE_CURRENT_SOURCE_DIR}/ustore + ) + +! if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") + list(APPEND CMAKE_MODULE_PATH + ${CMAKE_CURRENT_SOURCE_DIR}/archive + ) +--- 25,31 ---- + ${CMAKE_CURRENT_SOURCE_DIR}/ustore + ) + +! if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON" AND "${ENABLE_OBS}" STREQUAL "ON") + list(APPEND CMAKE_MODULE_PATH + ${CMAKE_CURRENT_SOURCE_DIR}/archive + ) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/access/obs/obs_am.cpp opengauss_server_600_edit/src/gausskernel/storage/access/obs/obs_am.cpp +*** opengauss_server_600/src/gausskernel/storage/access/obs/obs_am.cpp 2024-11-19 20:01:27.709621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/access/obs/obs_am.cpp 2024-11-19 20:04:07.797621300 +0800 +*************** +*** 21,27 **** + #define strpos(p, s) (strstr((p), (s)) != NULL ? strstr((p), (s)) - (p) : -1) + + #include "access/obs/obs_am.h" +! #ifndef ENABLE_LITE_MODE + #include "eSDKOBS.h" + #endif + +--- 21,27 ---- + #define strpos(p, s) (strstr((p), (s)) != NULL ? strstr((p), (s)) - (p) : -1) + + #include "access/obs/obs_am.h" +! #if !defined(ENABLE_LITE_MODE) && defined(ENABLE_OBS) + #include "eSDKOBS.h" + #endif + +*************** +*** 235,241 **** + errmsg("OBS URL's %s is not valid '%s'", invalid_element, folderName))); + } + +! #ifndef ENABLE_LITE_MODE + // Some Windows stuff + #ifndef FOPEN_EXTRA_FLAGS + #define FOPEN_EXTRA_FLAGS "" +--- 235,241 ---- + errmsg("OBS URL's %s is not valid '%s'", invalid_element, folderName))); + } + +! #if !defined(ENABLE_LITE_MODE) && defined(ENABLE_OBS) + // Some Windows stuff + #ifndef FOPEN_EXTRA_FLAGS + #define FOPEN_EXTRA_FLAGS "" +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/access/transam/xlog.cpp opengauss_server_600_edit/src/gausskernel/storage/access/transam/xlog.cpp +*** opengauss_server_600/src/gausskernel/storage/access/transam/xlog.cpp 2024-11-19 20:01:27.713621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/access/transam/xlog.cpp 2024-11-19 20:04:07.825621300 +0800 +*************** +*** 7812,7817 **** +--- 7812,7818 ---- + #endif + else if (XLogRecGetRmid(record) == RM_BARRIER_ID) { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (record_info == XLOG_BARRIER_CREATE) { + recordBarrierId = (char *)XLogRecGetData(record); + ereport(u_sess->attr.attr_storage.HaModuleDebug ? LOG : DEBUG4, +*************** +*** 7822,7827 **** +--- 7823,7829 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + } else if (XLogRecGetRmid(record) == RM_XLOG_ID) { + if (record_info == XLOG_RESTORE_POINT) { + xl_restore_point *recordRestorePointData = (xl_restore_point *)XLogRecGetData(record); +*************** +*** 10412,10419 **** +--- 10414,10423 ---- + (uint32)t_thrd.xlog_cxt.ReadRecPtr))); + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + update_stop_barrier(); + #endif ++ #endif + INSTR_TIME_SET_CURRENT(rec_startTime); + g_instance.dms_cxt.SSReformInfo.redo_start_time = GetCurrentTimestamp(); + t_thrd.xlog_cxt.RedoStartLSN = t_thrd.xlog_cxt.ReadRecPtr; +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/access/transam/xlogfuncs.cpp opengauss_server_600_edit/src/gausskernel/storage/access/transam/xlogfuncs.cpp +*** opengauss_server_600/src/gausskernel/storage/access/transam/xlogfuncs.cpp 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/access/transam/xlogfuncs.cpp 2024-11-19 20:04:07.825621300 +0800 +*************** +*** 1202,1207 **** +--- 1202,1208 ---- + Datum gs_set_obs_delete_location_with_slotname(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + char* lsnLocation = PG_GETARG_CSTRING(0); + char* currentSlotName = PG_GETARG_CSTRING(1); + +*************** +*** 1241,1246 **** +--- 1242,1248 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_TEXT_P(NULL); + #endif ++ #endif + } + + /* +*************** +*** 1251,1256 **** +--- 1253,1259 ---- + Datum gs_set_obs_delete_location(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + text *location = PG_GETARG_TEXT_P(0); + char *locationstr = NULL; + uint32 hi = 0; +*************** +*** 1292,1302 **** +--- 1295,1307 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_TEXT_P(NULL); + #endif ++ #endif + } + + Datum gs_get_global_barrier_status(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + #define PG_GET_GLOBAL_BARRIER_STATUS_COLS 2 + char globalBarrierId[MAX_BARRIER_ID_LENGTH] = {0}; + char globalAchiveBarrierId[MAX_BARRIER_ID_LENGTH] = {0}; +*************** +*** 1392,1402 **** +--- 1397,1409 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_DATUM(0); + #endif ++ #endif + } + + Datum gs_get_global_barriers_status(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + #define PG_GET_GLOBAL_BARRIERS_STATUS_COLS 3 + char globalBarrierId[MAX_BARRIER_ID_LENGTH] = {0}; + char globalAchiveBarrierId[MAX_BARRIER_ID_LENGTH] = {0}; +*************** +*** 1520,1525 **** +--- 1527,1533 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + PG_RETURN_DATUM(0); + } + +*************** +*** 1607,1612 **** +--- 1615,1621 ---- + Datum gs_hadr_do_switchover(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + #define TIME_GET_MILLISEC(t) (((long)(t).tv_sec * 1000) + ((long)(t).tv_usec) / 1000) + uint64_t barrier_index = 0; + int ret; +*************** +*** 1697,1702 **** +--- 1706,1712 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + PG_RETURN_BOOL(true); + } + +*************** +*** 1743,1748 **** +--- 1753,1759 ---- + Datum gs_upload_obs_file(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + char* slotname = PG_GETARG_CSTRING(0); + char* src = PG_GETARG_CSTRING(1); + char* dest = PG_GETARG_CSTRING(2); +*************** +*** 1781,1786 **** +--- 1792,1798 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + + PG_RETURN_VOID(); + } +*************** +*** 1788,1793 **** +--- 1800,1806 ---- + Datum gs_download_obs_file(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + char* slotname = PG_GETARG_CSTRING(0); + char* src = PG_GETARG_CSTRING(1); + char* dest = PG_GETARG_CSTRING(2); +*************** +*** 1831,1836 **** +--- 1844,1850 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + + PG_RETURN_VOID(); + } +*************** +*** 1838,1843 **** +--- 1852,1858 ---- + Datum gs_get_obs_file_context(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + char fileContext[MAXPGPATH] = {0}; + size_t readLen = 0; + char* setFileName = PG_GETARG_CSTRING(0); +*************** +*** 1882,1892 **** +--- 1897,1909 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_TEXT_P(NULL); + #endif ++ #endif + } + + Datum gs_set_obs_file_context(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + int ret = 0; + char* setFileName = PG_GETARG_CSTRING(0); + char* setFileContext = PG_GETARG_CSTRING(1); +*************** +*** 1922,1932 **** +--- 1939,1951 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_TEXT_P(NULL); + #endif ++ #endif + } + + Datum gs_get_hadr_key_cn(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + #define GS_GET_HADR_KEY_CN_COLS 4 + bool needLocalKeyCn = false; + char localKeyCn[MAXFNAMELEN] = {0}; +*************** +*** 2028,2033 **** +--- 2047,2053 ---- + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + PG_RETURN_DATUM(0); + } + +*************** +*** 2177,2182 **** +--- 2197,2203 ---- + Datum gs_get_active_archiving_standby(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + int i; + int rc; + errno_t errorno = EOK; +*************** +*** 2269,2274 **** +--- 2290,2296 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_DATUM(0); + #endif ++ #endif + } + + #ifndef ENABLE_LITE_MODE +*************** +*** 2287,2292 **** +--- 2309,2315 ---- + Datum gs_pitr_clean_history_global_barriers(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + if (!superuser() && !(isOperatoradmin(GetUserId()) && u_sess->attr.attr_security.operation_mode)) { + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + (errmsg("Must be system admin or operator admin in operation mode to " +*************** +*** 2316,2326 **** +--- 2339,2351 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_TEXT_P(NULL); + #endif ++ #endif + } + + Datum gs_pitr_archive_slot_force_advance(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + XLogSegNo currArchslotSegNo; + XLogRecPtr archiveSlotLocNow = InvalidXLogRecPtr; + char location[MAXFNAMELEN]; +*************** +*** 2445,2450 **** +--- 2470,2476 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_TEXT_P(NULL); + #endif ++ #endif + } + + Datum gs_get_standby_cluster_barrier_status(PG_FUNCTION_ARGS) +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/bulkload/dist_fdw.cpp opengauss_server_600_edit/src/gausskernel/storage/bulkload/dist_fdw.cpp +*** opengauss_server_600/src/gausskernel/storage/bulkload/dist_fdw.cpp 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/bulkload/dist_fdw.cpp 2024-11-19 20:04:07.841621300 +0800 +*************** +*** 225,233 **** +--- 225,235 ---- + extern void GetDistImportOptions(Oid relOid, DistImportPlanState *planstate, ForeignOptions *fOptions = NULL); + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + static void assignOBSTaskToDataNode(List *urllist, List **totalTask, List *dnNames, DistImportPlanState *planstate, + int64 *fileNum = NULL); + #endif ++ #endif + static void assignTaskToDataNodeInSharedMode(List *urllist, List **totalTask, List *dnNames); + static void assignTaskToDataNodeInNormalMode(List *urllist, List **totalTask, List *dnNames, int dop); + +*************** +*** 236,241 **** +--- 238,244 ---- + List *getOBSFileList(List *urllist, bool encrypt, const char *access_key, const char *secret_access_key, + bool isAnalyze); + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + /* + * In OBS parallel data loading case, we may have # of datanodes not + * equal to # of objects, as one object can only be assign to one +*************** +*** 244,249 **** +--- 247,253 ---- + */ + static void assignOBSFileToDataNode(List *urllist, List **totalTask, List *dnNames); + #endif ++ #endif + + /* + * Foreign-data wrapper handler function: return a struct with pointers +*************** +*** 432,437 **** +--- 436,442 ---- + } + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + /** + * @Description: Scheduler file for dist obs foreign table. + * @in foreignTableId, the given foreign table Oid. +*************** +*** 483,488 **** +--- 488,494 ---- + return totalTask; + } + #endif ++ #endif + + /** + * @Description: Build the related scanState information. +*************** +*** 1064,1069 **** +--- 1070,1076 ---- + } + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + /* + * @Description: get all matched files in obs for each url + * @IN urllist: obs url list +*************** +*** 1194,1199 **** +--- 1201,1207 ---- + pfree(obs_file_list); + } + #endif ++ #endif + + /* + * @Description: assign task to each data node in shared mode +*************** +*** 1312,1323 **** +--- 1320,1333 ---- + const char *first_url = strVal(lfirst(list_head(urllist))); + if (is_obs_protocol(first_url)) { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + assignOBSTaskToDataNode(urllist, &totalTask, dnNames, planstate, fileNum); + list_free(dnNames); + return totalTask; + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + } + + if (IS_SHARED_MODE(mode)) { +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/bulkload/foreignroutine.cpp opengauss_server_600_edit/src/gausskernel/storage/bulkload/foreignroutine.cpp +*** opengauss_server_600/src/gausskernel/storage/bulkload/foreignroutine.cpp 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/bulkload/foreignroutine.cpp 2024-11-19 20:04:07.841621300 +0800 +*************** +*** 1570,1577 **** +--- 1570,1579 ---- + (void)ExecClearTuple(slot); + MemoryContextReset(node->scanMcxt); + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + SetObsMemoryContext(((CopyState)importState)->copycontext); + #endif ++ #endif + ReportIllegalCharExceptionThreshold(); + + PG_TRY(); +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/bulkload/parser.cpp opengauss_server_600_edit/src/gausskernel/storage/bulkload/parser.cpp +*** opengauss_server_600/src/gausskernel/storage/bulkload/parser.cpp 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/bulkload/parser.cpp 2024-11-19 20:04:07.841621300 +0800 +*************** +*** 99,108 **** +--- 99,110 ---- + #define parser_securec_check_ss(rc) securec_check_ss(rc, "\0", "\0") + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + static size_t SourceRead_OBS(Source* self, void* buffer, size_t len); + static bool SourceNext_OBS(Source* self); + #endif + #endif ++ #endif + + static Source* CreateSource(const FileList* files, SourceType sourcetype); + static void DestroyParser(Parser* self); +*************** +*** 467,477 **** +--- 469,481 ---- + #else + if (m_sourcetype == SOURCE_TYPE_OBS) { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + SourceRead = SourceRead_OBS; + SourceNext = SourceNext_OBS; + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif ++ #endif + } else { + SourceRead = SourceRead_File; + SourceNext = SourceNext_File; +*************** +*** 1303,1314 **** +--- 1307,1320 ---- + } + #else + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + /* for OBS, append the overload data in overload buffer */ + SaveOverloadBuf(m_overload_buf, buf, buf_len, isComplete); + #else + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + #endif + #endif ++ #endif + /* + * Here the curent overload buffer is already done so the actual buf_len can be returned. + */ +*************** +*** 1471,1476 **** +--- 1477,1483 ---- + + #ifdef OBS_SERVER + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + static size_t SourceRead_OBS(Source* self, void* buffer, size_t len) + { + size_t nread = 0; +*************** +*** 1692,1694 **** +--- 1699,1702 ---- + } + #endif + #endif ++ #endif +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/bulkload/vecforeignroutine.cpp opengauss_server_600_edit/src/gausskernel/storage/bulkload/vecforeignroutine.cpp +*** opengauss_server_600/src/gausskernel/storage/bulkload/vecforeignroutine.cpp 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/bulkload/vecforeignroutine.cpp 2024-11-19 20:04:07.841621300 +0800 +*************** +*** 125,132 **** +--- 125,134 ---- + MemoryContextReset(scanMcxt); + oldMemoryContext = MemoryContextSwitchTo(scanMcxt); + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + SetObsMemoryContext(((CopyState)importState)->copycontext); + #endif ++ #endif + for (batch->m_rows = 0; batch->m_rows < BatchMaxSize; batch->m_rows++) { + retry: + PG_TRY(); +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/replication/archive_walreceiver.cpp opengauss_server_600_edit/src/gausskernel/storage/replication/archive_walreceiver.cpp +*** opengauss_server_600/src/gausskernel/storage/replication/archive_walreceiver.cpp 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/replication/archive_walreceiver.cpp 2024-11-19 20:04:07.913621300 +0800 +*************** +*** 37,42 **** +--- 37,43 ---- + #include "pgxc/pgxc.h" + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + #define CUR_OBS_FILE_VERSION 1 + #define TIMEOUT_FOR_ARCHIVE_RECEIVER 600 + +*************** +*** 1870,1872 **** +--- 1871,1874 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + } + #endif ++ #endif +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/replication/slot.cpp opengauss_server_600_edit/src/gausskernel/storage/replication/slot.cpp +*** opengauss_server_600/src/gausskernel/storage/replication/slot.cpp 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/replication/slot.cpp 2024-11-19 20:04:07.929621300 +0800 +*************** +*** 2598,2603 **** +--- 2598,2604 ---- + } + + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + void get_hadr_cn_info(char* keyCn, bool* isExitKey, char* deleteCn, bool* isExitDelete, + ArchiveSlotConfig *archive_conf) + { +*************** +*** 2625,2630 **** +--- 2626,2632 ---- + } + } + #endif ++ #endif + + void GetReplslotPath(char *path) + { +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/storage/replication/slotfuncs.cpp opengauss_server_600_edit/src/gausskernel/storage/replication/slotfuncs.cpp +*** opengauss_server_600/src/gausskernel/storage/replication/slotfuncs.cpp 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/storage/replication/slotfuncs.cpp 2024-11-19 20:04:07.929621300 +0800 +*************** +*** 268,273 **** +--- 268,274 ---- + Datum pg_create_physical_replication_slot_extern(PG_FUNCTION_ARGS) + { + #ifndef ENABLE_LITE_MODE ++ #ifdef ENABLE_OBS + Name name = PG_GETARG_NAME(0); + bool isDummyStandby = PG_GETARG_BOOL(1); + XLogRecPtr currFlushPtr = InvalidXLogRecPtr; +*************** +*** 357,362 **** +--- 358,364 ---- + FEATURE_ON_LITE_MODE_NOT_SUPPORTED(); + PG_RETURN_DATUM(0); + #endif ++ #endif + } + + void create_logical_replication_slot(const Name name, Name plugin, bool isDummyStandby, Oid databaseId, +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/include/access/obs/obs_am.h opengauss_server_600_edit/src/include/access/obs/obs_am.h +*** opengauss_server_600/src/include/access/obs/obs_am.h 2024-11-19 20:01:27.717621300 +0800 +--- opengauss_server_600_edit/src/include/access/obs/obs_am.h 2024-11-19 20:04:07.945621300 +0800 +*************** +*** 30,36 **** + #include "nodes/pg_list.h" + #include "storage/buf/buffile.h" + #include "replication/slot.h" +! #ifndef ENABLE_LITE_MODE + #include "eSDKOBS.h" + #endif + +--- 30,36 ---- + #include "nodes/pg_list.h" + #include "storage/buf/buffile.h" + #include "replication/slot.h" +! #if !defined(ENABLE_LITE_MODE) && defined(ENABLE_OBS) + #include "eSDKOBS.h" + #endif + +*************** +*** 132,138 **** + bool in_computing; + /* size_t m_offset; =>get_cond.start_byte */ + /* obs_bucket_context m_bucketCtx; =>m_option.bucket_options */ +! #ifndef ENABLE_LITE_MODE + obs_options m_option; + obs_object_info m_object_info; + +--- 132,138 ---- + bool in_computing; + /* size_t m_offset; =>get_cond.start_byte */ + /* obs_bucket_context m_bucketCtx; =>m_option.bucket_options */ +! #if !defined(ENABLE_LITE_MODE) && defined(ENABLE_OBS) + obs_options m_option; + obs_object_info m_object_info; + +*************** +*** 152,158 **** + typedef struct list_service_data { + int headerPrinted; + int allDetails; +! #ifndef ENABLE_LITE_MODE + obs_status ret_status; + #endif + } list_service_data; +--- 152,158 ---- + typedef struct list_service_data { + int headerPrinted; + int allDetails; +! #if !defined(ENABLE_LITE_MODE) && defined(ENABLE_OBS) + obs_status ret_status; + #endif + } list_service_data; +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/test/regress/obstools/obstool.c opengauss_server_600_edit/src/test/regress/obstools/obstool.c +*** opengauss_server_600/src/test/regress/obstools/obstool.c 2024-11-19 20:01:27.721621300 +0800 +--- opengauss_server_600_edit/src/test/regress/obstools/obstool.c 2024-11-19 20:04:11.089621300 +0800 +*************** +*** 15,21 **** +--- 15,23 ---- + #include "getopt.h" + #endif + ++ #ifdef ENABLE_OBS + #include "eSDKOBS.h" ++ #endif + #include "securec.h" + + /* Some Windows stuff */ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/test/ut/CMakeLists.txt opengauss_server_600_edit/src/test/ut/CMakeLists.txt +*** opengauss_server_600/src/test/ut/CMakeLists.txt 2024-11-19 20:01:27.721621300 +0800 +--- opengauss_server_600_edit/src/test/ut/CMakeLists.txt 2024-11-19 20:04:11.561621300 +0800 +*************** +*** 11,17 **** + ${LIBOBS_LIB_PATH} ${LZ4_LIB_PATH}) + + # -l +! set(UNIT_TEST_BASE_LIB_LIST pthread gtest_main gtest mockcpp cjson dcf xgboost zstd nghttp2 iconv eSDKOBS eSDKLogAPI log4cpp lz4 db) + + add_subdirectory(demo) + add_subdirectory(db4ai) +--- 11,21 ---- + ${LIBOBS_LIB_PATH} ${LZ4_LIB_PATH}) + + # -l +! if("${ENABLE_OBS}" STREQUAL "ON") +! set(UNIT_TEST_BASE_LIB_LIST pthread gtest_main gtest mockcpp cjson dcf xgboost zstd nghttp2 iconv eSDKOBS eSDKLogAPI log4cpp lz4 db) +! else() +! set(UNIT_TEST_BASE_LIB_LIST pthread gtest_main gtest mockcpp cjson dcf xgboost zstd lz4 db) +! endif() + + add_subdirectory(demo) + add_subdirectory(db4ai) diff --git a/og-edit.patch b/og-edit.patch deleted file mode 100644 index fed5bb24fc6fed991b475be37baed5013e2ce93b..0000000000000000000000000000000000000000 --- a/og-edit.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/bin/psql/startup.cpp openGauss-server-5.0.1-edit/src/bin/psql/startup.cpp -*** openGauss-server-5.0.1/src/bin/psql/startup.cpp 2024-05-07 20:16:39.232795908 +0800 ---- openGauss-server-5.0.1-edit/src/bin/psql/startup.cpp 2024-05-07 20:17:58.501380445 +0800 -*************** -*** 530,535 **** ---- 530,539 ---- - pset.popt.topt.recordSep.separator_zero = false; - } - -+ if (options.port == NULL) { -+ options.port = GetEnvStr("PORT"); -+ } -+ - if (options.username == NULL) - password_prompt = pg_strdup(_("Password: ")); - else { -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/gausskernel/dbmind/db4ai/executor/Makefile openGauss-server-5.0.1-edit/src/gausskernel/dbmind/db4ai/executor/Makefile -*** openGauss-server-5.0.1/src/gausskernel/dbmind/db4ai/executor/Makefile 2024-05-07 20:16:39.632798858 +0800 ---- openGauss-server-5.0.1-edit/src/gausskernel/dbmind/db4ai/executor/Makefile 2024-05-07 20:17:58.897383365 +0800 -*************** -*** 11,21 **** - - include $(top_builddir)/src/Makefile.global - -- PLATFORM_ARCH = $(shell uname -p) -- ifeq ($(PLATFORM_ARCH),x86_64) -- override CPPFLAGS += -mavx -- endif -- - ifneq "$(MAKECMDGOALS)" "clean" - ifneq "$(MAKECMDGOALS)" "distclean" - ifneq "$(shell which g++ |grep hutaf_llt |wc -l)" "1" ---- 11,16 ---- diff --git a/og-openssl3-adptor.patch b/og-openssl3-adptor.patch new file mode 100644 index 0000000000000000000000000000000000000000..c450587a40768d3c088d4a0455da62364c074094 --- /dev/null +++ b/og-openssl3-adptor.patch @@ -0,0 +1,111 @@ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/common/interfaces/libpq/fe-secure.cpp opengauss_server_600_edit/src/common/interfaces/libpq/fe-secure.cpp +*** opengauss_server_600/src/common/interfaces/libpq/fe-secure.cpp 2024-11-19 20:01:27.697621300 +0800 +--- opengauss_server_600_edit/src/common/interfaces/libpq/fe-secure.cpp 2024-11-19 20:04:07.461621300 +0800 +*************** +*** 446,451 **** +--- 446,454 ---- + libpq_gettext("SSL error: %s, remote datanode %s, error: %s\n"), + errm, conn->remote_nodename, strerror(errno)); + SSLerrfree(errm); ++ #ifdef ENABLE_OPENSSL3 ++ REMEMBER_EPIPE(spinfo, errno == EPIPE); ++ #endif + /* assume the connection is broken */ + result_errno = ECONNRESET; + n = -1; +*************** +*** 596,601 **** +--- 599,607 ---- + libpq_gettext("SSL error: %s, remote datanode %s, error: %s\n"), errm, + conn->remote_nodename, strerror(errno)); + SSLerrfree(errm); ++ #ifdef ENABLE_OPENSSL3 ++ REMEMBER_EPIPE(spinfo, errno == EPIPE); ++ #endif + /* assume the connection is broken */ + result_errno = ECONNRESET; + n = -1; +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/security/keymgr/encrypt/security_aead_aes_hmac_enc_key.cpp opengauss_server_600_edit/src/gausskernel/security/keymgr/encrypt/security_aead_aes_hmac_enc_key.cpp +*** opengauss_server_600/src/gausskernel/security/keymgr/encrypt/security_aead_aes_hmac_enc_key.cpp 2024-11-19 20:01:27.705621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/security/keymgr/encrypt/security_aead_aes_hmac_enc_key.cpp 2024-11-19 20:04:07.773621300 +0800 +*************** +*** 47,52 **** +--- 47,62 ---- + + const int RAND_COUNT = 100; + ++ #ifdef ENABLE_OPENSSL3 ++ void HmacCtxGroup::free_hmac_ctx(HMAC_CTX** ctx_tmp) const ++ { ++ if (*ctx_tmp != NULL) { ++ HMAC_CTX_free(*ctx_tmp); ++ *ctx_tmp = NULL; ++ } ++ } ++ #endif ++ + /* Derives all the required keys from the given root key */ + AeadAesHamcEncKey::AeadAesHamcEncKey(unsigned char *root_key, size_t root_key_size) + { +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/security/keymgr/encrypt/security_sm2_enc_key.cpp opengauss_server_600_edit/src/gausskernel/security/keymgr/encrypt/security_sm2_enc_key.cpp +*** opengauss_server_600/src/gausskernel/security/keymgr/encrypt/security_sm2_enc_key.cpp 2024-11-19 20:01:27.705621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/security/keymgr/encrypt/security_sm2_enc_key.cpp 2024-11-19 20:04:07.773621300 +0800 +*************** +*** 163,174 **** +--- 163,176 ---- + return CMKEM_EVP_ERR; + } + ++ #ifndef ENABLE_OPENSSL3 + ret = EVP_PKEY_set_alias_type(public_evp_key, EVP_PKEY_SM2); + if (ret != 1) { + cmkem_errmsg("EVP_PKEY_set_alias_type to EVP_PKEY_SM2 failed!"); + EVP_PKEY_free(public_evp_key); + return CMKEM_EVP_ERR; + } ++ #endif + + /* do cipher. */ + ctx = EVP_PKEY_CTX_new(public_evp_key, NULL); +*************** +*** 253,264 **** +--- 255,268 ---- + return CMKEM_EVP_ERR; + } + ++ #ifndef ENABLE_OPENSSL3 + ret = EVP_PKEY_set_alias_type(private_evp_key, EVP_PKEY_SM2); + if (ret != 1) { + cmkem_errmsg("EVP_PKEY_set_alias_type to EVP_PKEY_SM2 failed!"); + EVP_PKEY_free(private_evp_key); + return CMKEM_EVP_ERR; + } ++ #endif + + /* do cipher. */ + ctx = EVP_PKEY_CTX_new(private_evp_key, NULL); +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/include/keymgr/encrypt/security_aead_aes_hamc_enc_key.h opengauss_server_600_edit/src/include/keymgr/encrypt/security_aead_aes_hamc_enc_key.h +*** opengauss_server_600/src/include/keymgr/encrypt/security_aead_aes_hamc_enc_key.h 2024-11-19 20:01:27.721621300 +0800 +--- opengauss_server_600_edit/src/include/keymgr/encrypt/security_aead_aes_hamc_enc_key.h 2024-11-19 20:04:08.037621300 +0800 +*************** +*** 49,54 **** +--- 49,57 ---- + HMAC_CTX* ctx_worker; + HMAC_CTX* ctx_template; + private: ++ #ifdef ENABLE_OPENSSL3 ++ void free_hmac_ctx(HMAC_CTX** ctx_tmp) const; ++ #else + void free_hmac_ctx(HMAC_CTX** ctx_tmp) + { + if (*ctx_tmp != NULL) { +*************** +*** 56,61 **** +--- 59,65 ---- + *ctx_tmp = NULL; + } + } ++ #endif + }; + + /* diff --git a/og-security.patch b/og-security.patch new file mode 100644 index 0000000000000000000000000000000000000000..41af71005a7c42941d7a21979b36b0447bb12922 --- /dev/null +++ b/og-security.patch @@ -0,0 +1,64 @@ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/bin/gs_persist/CMakeLists.txt opengauss_server_600_edit/src/bin/gs_persist/CMakeLists.txt +*** opengauss_server_600/src/bin/gs_persist/CMakeLists.txt 2024-11-19 20:01:27.693621300 +0800 +--- opengauss_server_600_edit/src/bin/gs_persist/CMakeLists.txt 2024-11-19 20:04:07.089621300 +0800 +*************** +*** 13,19 **** + set(gssgpersist_DEF_OPTIONS ${MACRO_OPTIONS}) + set(gssgpersist_COMPILE_OPTIONS ${OPTIMIZE_OPTIONS} ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${BIN_SECURE_OPTIONS} ${CHECK_OPTIONS}) + set(gssgpersist_LINK_OPTIONS ${BIN_LINK_OPTIONS}) +! set(gssgpersist_LINK_LIBS -lsecurec -ldl -lrt) + + if("${ENABLE_UT}" STREQUAL "ON") + add_shared_libtarget(ut_gs_persist_lib tgt_gssgpersist_SRC tgt_gssgpersist_INC "${gssgpersist_DEF_OPTIONS}" "${gssgpersist_COMPILE_OPTIONS}" "${gssgpersist_LINK_OPTIONS}") +--- 13,19 ---- + set(gssgpersist_DEF_OPTIONS ${MACRO_OPTIONS}) + set(gssgpersist_COMPILE_OPTIONS ${OPTIMIZE_OPTIONS} ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${BIN_SECURE_OPTIONS} ${CHECK_OPTIONS}) + set(gssgpersist_LINK_OPTIONS ${BIN_LINK_OPTIONS}) +! set(gssgpersist_LINK_LIBS -l${SECURE_C_CHECK} -ldl -lrt) + + if("${ENABLE_UT}" STREQUAL "ON") + add_shared_libtarget(ut_gs_persist_lib tgt_gssgpersist_SRC tgt_gssgpersist_INC "${gssgpersist_DEF_OPTIONS}" "${gssgpersist_COMPILE_OPTIONS}" "${gssgpersist_LINK_OPTIONS}") +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/common/interfaces/libpq/CMakeLists.txt opengauss_server_600_edit/src/common/interfaces/libpq/CMakeLists.txt +*** opengauss_server_600/src/common/interfaces/libpq/CMakeLists.txt 2024-11-19 20:01:27.697621300 +0800 +--- opengauss_server_600_edit/src/common/interfaces/libpq/CMakeLists.txt 2024-11-19 20:04:07.441621300 +0800 +*************** +*** 118,126 **** + set(pq_LINK_OPTIONS ${LIB_LINK_OPTIONS}) + add_shared_libtarget(pq TGT_pq_SRC TGT_pq_INC "${pq_DEF_OPTIONS}" "${pq_COMPILE_OPTIONS}" "${pq_LINK_OPTIONS}") + if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +! target_link_libraries(pq PRIVATE com_err_gauss crypto gssapi_krb5_gauss gssrpc_gauss k5crypto_gauss krb5_gauss krb5support_gauss securec ssl) + else() +! target_link_libraries(pq PRIVATE crypto securec ssl) + endif() + target_link_directories(pq PUBLIC + ${LIBOPENSSL_LIB_PATH} ${KERBEROS_LIB_PATH} ${SECURE_LIB_PATH} +--- 118,126 ---- + set(pq_LINK_OPTIONS ${LIB_LINK_OPTIONS}) + add_shared_libtarget(pq TGT_pq_SRC TGT_pq_INC "${pq_DEF_OPTIONS}" "${pq_COMPILE_OPTIONS}" "${pq_LINK_OPTIONS}") + if(NOT "${ENABLE_LITE_MODE}" STREQUAL "ON") +! target_link_libraries(pq PRIVATE com_err_gauss crypto gssapi_krb5_gauss gssrpc_gauss k5crypto_gauss krb5_gauss krb5support_gauss ${SECURE_C_CHECK} ssl) + else() +! target_link_libraries(pq PRIVATE crypto ${SECURE_C_CHECK} ssl) + endif() + target_link_directories(pq PUBLIC + ${LIBOPENSSL_LIB_PATH} ${KERBEROS_LIB_PATH} ${SECURE_LIB_PATH} +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/security/keymgr/CMakeLists.txt opengauss_server_600_edit/src/gausskernel/security/keymgr/CMakeLists.txt +*** opengauss_server_600/src/gausskernel/security/keymgr/CMakeLists.txt 2024-11-19 20:01:27.705621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/security/keymgr/CMakeLists.txt 2024-11-19 20:04:07.773621300 +0800 +*************** +*** 64,70 **** + if("${ENABLE_KT}" STREQUAL "ON") + add_dependencies(keymgr gs_ktool) + endif() +! set(libkey_LINKS -lcjson -lcurl -lsecurec -lssl -lcrypto -ldl -lrt) + if("${ENABLE_KT}" STREQUAL "ON") + list(APPEND libkey_LINKS -lgs_ktool -lkmc) + endif() +--- 64,70 ---- + if("${ENABLE_KT}" STREQUAL "ON") + add_dependencies(keymgr gs_ktool) + endif() +! set(libkey_LINKS -lcjson -lcurl -l${SECURE_C_CHECK} -lssl -lcrypto -ldl -lrt) + if("${ENABLE_KT}" STREQUAL "ON") + list(APPEND libkey_LINKS -lgs_ktool -lkmc) + endif() diff --git a/og-syntax.patch b/og-syntax.patch new file mode 100644 index 0000000000000000000000000000000000000000..2e767a591912bbbb65e45615be4dda877588dcc0 --- /dev/null +++ b/og-syntax.patch @@ -0,0 +1,74 @@ +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/bin/pg_basebackup/pg_basebackup.cpp opengauss_server_600_edit/src/bin/pg_basebackup/pg_basebackup.cpp +*** opengauss_server_600/src/bin/pg_basebackup/pg_basebackup.cpp 2024-11-19 20:01:27.697621300 +0800 +--- opengauss_server_600_edit/src/bin/pg_basebackup/pg_basebackup.cpp 2024-11-19 20:04:07.105621300 +0800 +*************** +*** 1689,1695 **** + struct dirent* ent; + while (1) { + ent = readdir(dir); +! if (ent <= 0) { + break; + } + if ((strcmp(".", ent->d_name) == 0) || (strcmp("..", ent->d_name) == 0)) { +--- 1689,1695 ---- + struct dirent* ent; + while (1) { + ent = readdir(dir); +! if (ent == NULL) { + break; + } + if ((strcmp(".", ent->d_name) == 0) || (strcmp("..", ent->d_name) == 0)) { +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/bin/pg_ctl/backup.cpp opengauss_server_600_edit/src/bin/pg_ctl/backup.cpp +*** opengauss_server_600/src/bin/pg_ctl/backup.cpp 2024-11-19 20:01:27.697621300 +0800 +--- opengauss_server_600_edit/src/bin/pg_ctl/backup.cpp 2024-11-19 20:04:07.109621300 +0800 +*************** +*** 1985,1991 **** + } + while (1) { + de = readdir(dir); +! if (de <= 0) { + break; + } + if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) { +--- 1985,1991 ---- + } + while (1) { + de = readdir(dir); +! if (de == NULL) { + break; + } + if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) { +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/gausskernel/runtime/opfusion/opfusion_util.cpp opengauss_server_600_edit/src/gausskernel/runtime/opfusion/opfusion_util.cpp +*** opengauss_server_600/src/gausskernel/runtime/opfusion/opfusion_util.cpp 2024-11-19 20:01:27.705621300 +0800 +--- opengauss_server_600_edit/src/gausskernel/runtime/opfusion/opfusion_util.cpp 2024-11-19 20:04:07.757621300 +0800 +*************** +*** 446,452 **** + + /* check whether to have order by */ + if (node->aggstrategy != AGG_PLAIN || +! node->groupingSets > 0) { + return NOBYPASS_NOT_PLAIN_AGG; + } + +--- 446,452 ---- + + /* check whether to have order by */ + if (node->aggstrategy != AGG_PLAIN || +! node->groupingSets != NULL) { + return NOBYPASS_NOT_PLAIN_AGG; + } + +diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' opengauss_server_600/src/include/gs_policy/policy_common.h opengauss_server_600_edit/src/include/gs_policy/policy_common.h +*** opengauss_server_600/src/include/gs_policy/policy_common.h 2024-11-19 20:01:27.721621300 +0800 +--- opengauss_server_600_edit/src/include/gs_policy/policy_common.h 2024-11-19 20:04:08.029621300 +0800 +*************** +*** 30,35 **** +--- 30,37 ---- + #include "gs_map.h" + #include "gs_vector.h" + #include "pgaudit.h" ++ #include ++ #include + + struct GsPolicyFQDN { + GsPolicyFQDN():m_value_schema(0), m_value_object(0), is_function(false){} diff --git a/openGauss-server-5.0.1.tar.gz b/openGauss-server-6.0.0.tar.gz similarity index 75% rename from openGauss-server-5.0.1.tar.gz rename to openGauss-server-6.0.0.tar.gz index f9d4da41ad685ee482e3d9209e01b075913a43c0..053a1e0ef2c63599322bc6356a198fbb23d026da 100644 Binary files a/openGauss-server-5.0.1.tar.gz and b/openGauss-server-6.0.0.tar.gz differ diff --git a/opengauss-bashprofile b/opengauss-bashprofile index 012b243208feb7e79b17eb802ed10e14c94a6647..9ed8d745efd5c2030d913e28a2f6756ca7922d1f 100644 --- a/opengauss-bashprofile +++ b/opengauss-bashprofile @@ -2,4 +2,5 @@ export GAUSSHOME=/usr/local/opengauss export LD_LIBRARY_PATH=/usr/local/opengauss/lib:$LD_LIBRARY_PATH export PATH=/usr/local/opengauss/bin:$PATH export PGDATA=/var/lib/opengauss/data -export PORT=7654 +export PGPORT=7654 +export PGDATABASE=postgres diff --git a/opengauss-server.spec b/opengauss-server.spec index 86d2e6943b9c7ec1df2e73ce7a0007e7b97eb6c1..02335e61bbd23952c1c6ac27c3f3997144790944 100755 --- a/opengauss-server.spec +++ b/opengauss-server.spec @@ -1,5 +1,7 @@ %define zlib_name zlib %define zlib_version 1.2.12 +%define krb5_name krb5 +%define krb5_version 1.18.3-final %define xgboost_name xgboost %define xgboost_version v1.4.1 %define dmlc_name dmlc-core @@ -7,44 +9,49 @@ %define port 7654 %define datapath /var/lib/opengauss %define apppath %{_prefix}/local/opengauss -%define tmppath /var/lib/opengauss/pkg_5.0.1 +%define tmppath /var/lib/opengauss/pkg_6.0.0 Name: opengauss -Version: 5.0.1 -Release: 15 +Version: 6.0.0 +Release: 16 Summary: openGauss is an open source relational database management system License: MulanPSL-2.0 and MIT and BSD and zlib and TCL and Apache-2.0 and BSL-1.0 URL: https://gitee.com/opengauss/openGauss-server Source0: openGauss-server-%{version}.tar.gz -Source2: %{zlib_name}-%{zlib_version}.tar.gz +Source1: %{zlib_name}-%{zlib_version}.tar.gz +Source2: %{krb5_name}-%{krb5_version}.tar.gz Source3: %{dmlc_name}-%{dmlc_version}.tar.gz Source4: %{xgboost_name}-%{xgboost_version}.tar.gz -Source5: opengauss-bashprofile -Source6: opengauss.service -Source7: autostart.sh -Source8: version.cfg -Source9: opengauss_upgrade_start.sh -Source10: opengauss_upgrade_common.sh -Source11: opengauss_upgrade_config.sh -Source12: opengauss_upgrade_errorcode.sh - -Patch0: og-edit.patch -Patch1: cmake_compile.patch -Patch2: compile_2309.patch -Patch3: openssl3-adptor.patch -Patch4: upgrade.patch -Patch20: zlib.patch -Patch21: zlib-CVE-2022-37434.patch + +Source20: opengauss-bashprofile +Source21: opengauss.service +Source22: autostart.sh +Source23: version.cfg +Source24: opengauss_upgrade_start.sh +Source25: opengauss_upgrade_common.sh +Source26: opengauss_upgrade_config.sh +Source27: opengauss_upgrade_errorcode.sh + +Patch0: og-cmake.patch +Patch1: og-delete-obs.patch +Patch2: og-openssl3-adptor.patch +Patch3: og-security.patch +Patch4: og-syntax.patch +Patch11: zlib.patch +Patch12: zlib-CVE-2022-37434.patch +Patch21: krb5-backport-Add-a-simple-DER-support-header.patch +Patch22: krb5-backport-CVE-2024-37370-CVE-2024-37371-Fix-vulnerabilities-in-GSS-message-token-handling.patch +Patch23: krb5-cve-2022-42898.patch +Patch24: krb5-CVE-2023-36054.patch +Patch25: krb5.patch BuildRequires: cmake gcc gcc-c++ openssl-devel python tar -BuildRequires: cjson lz4-devel zstd-devel boost-devel cjson-devel -BuildRequires: libcgroup-devel libcurl-devel unixODBC-devel jemalloc-devel krb5-devel +BuildRequires: lz4-devel zstd-devel boost-devel cjson-devel +BuildRequires: libcgroup-devel libcurl-devel unixODBC-devel jemalloc-devel BuildRequires: java-1.8.0-openjdk-devel libedit-devel libaio-devel -BuildRequires: bison flex, DCF >= 5 -BuildRequires: numactl-devel -%ifarch sw_64 -BuildRequires: libatomic -%endif +BuildRequires: bison flex, DCF >= 6 +BuildRequires: numactl-devel libxml2-devel xerces-c-devel pkgconfig(aws-cpp-sdk-core) +BuildRequires: libatomic autoconf %global _privatelibs lib(cjson|ecpg|z|pg|pq)\\.so* %global __provides_exclude %{_privatelibs} @@ -53,8 +60,8 @@ BuildRequires: libatomic Requires: lz4-devel zstd-devel boost-devel cjson-devel tar Requires: libcgroup-devel libcurl-devel unixODBC-devel jemalloc-devel Requires: java-1.8.0-openjdk-devel libedit-devel libaio-devel -Requires: DCF >= 5, lsof -Requires: numactl-devel +Requires: DCF >= 6, lsof +Requires: numactl-devel libxml2-devel xerces-c-devel aws-sdk-cpp %description openGauss kernel : openGauss is an open source relational database management system. @@ -63,28 +70,51 @@ openGauss kernel : openGauss is an open source relational database management sy %prep %setup -q -c -n %{name}-%{version} +%setup -q -D -T -a 1 %setup -q -D -T -a 2 %setup -q -D -T -a 3 %setup -q -D -T -a 4 pushd openGauss-server-%{version} - - -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 +%patch -P0 -p1 +%patch -P1 -p1 +%patch -P2 -p1 +%patch -P3 -p1 +%patch -P4 -p1 popd pushd %{zlib_name}-%{zlib_version} -%patch20 -p1 -%patch21 -p1 +%patch -P11 -p1 +%patch -P12 -p1 +popd + +pushd %{krb5_name}-%{krb5_name}-%{krb5_version} +%patch -P21 -p1 +%patch -P22 -p1 +%patch -P23 -p1 +%patch -P24 -p1 +%patch -P25 -p1 popd %build build_target=$(pwd)/binarylibs/kernel/dependency +########### build krb5 ########### +pushd %{krb5_name}-%{krb5_name}-%{krb5_version} +krb5_dir=${build_target}/kerberos/comm + +cd src +autoconf; autoheader; sed -i 's/lcom_err/lcom_err_gauss/g' configure +./configure --prefix=${krb5_dir} LDFLAGS='-Wl,-z,relro,-z,now' CFLAGS='-fstack-protector-strong -fPIC' --disable-rpath --disable-pkinit --with-system-verto=no + +make -s %{?_smp_mflags} +make install -s %{?_smp_mflags} + +rm -rf ${krb5_dir}/lib/pkgconfig +rm -rf ${krb5_dir}/share +rm -rf ${krb5_dir}/var +popd + ########### build zlib ########### pushd %{zlib_name}-%{zlib_version} zlib_dir=${build_target}/zlib1.2.11/comm @@ -138,16 +168,18 @@ popd ########### build opengauss ########### pushd openGauss-server-%{version} opengauss_source_dir=$(pwd) -export ENABLE_LITE_MODE=ON +export BUILD_TUPLE=$(uname -m) export DEBUG_TYPE=release export THIRD_BIN_PATH=${build_target}/../../../binarylibs export LD_LIBRARY_PATH=$THIRD_BIN_PATH/kernel/dependency/zlib1.2.11/comm/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=$THIRD_BIN_PATH/kernel/dependency/kerberos/comm/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$THIRD_BIN_PATH/kernel/dependency/xgboost/comm/lib:$LD_LIBRARY_PATH export PREFIX_HOME=${opengauss_source_dir}/mppdb_temp_install mkdir -p tmp_build cd tmp_build -cmake .. -DENABLE_MULTIPLE_NODES=OFF -DENABLE_PRIVATEGAUSS=OFF -DENABLE_THREAD_SAFETY=ON -DENABLE_LITE_MODE=ON -DENABLE_OPENEULER_MAJOR=ON -DWITH_OPENEULER_OS=ON +cmake .. -DENABLE_MULTIPLE_NODES=OFF -DENABLE_THREAD_SAFETY=ON -DWITH_OPENEULER_OS=ON -DENABLE_OPENEULER_MAJOR=ON \ + -DENABLE_LLVM_COMPILE=OFF -DENABLE_OBS=OFF -DENABLE_OPENSSL3=ON make %{?_smp_mflags} make install @@ -161,35 +193,41 @@ mkdir -p %{buildroot}%{tmppath}/script # separate_debug_symbol.sh dir cd ${opengauss_source_dir}/build/script chmod +x ./separate_debug_information.sh +sed -i '/"$BIN_DIR\/gaussdb\.map"/d' ./separate_debug_information.sh ./separate_debug_information.sh rm -rf ${opengauss_source_dir}/mppdb_temp_install/packages rm -rf ${opengauss_source_dir}/mppdb_temp_install/symbols -function get_os_kernel() { - kernel="" - if [[ -f "/etc/euleros-release" ]]; then - kernel=$(cat /etc/euleros-release | awk -F ' ' '{print $1}' | tr a-z A-Z) - if [[ "${kernel}" = "Euleros" ]]; then - kernel="Euler" - fi - elif [[ -f "/etc/openEuler-release" ]]; then - kernel=$(cat /etc/openEuler-release | awk -F ' ' '{print $1}') - elif [[ -f "/etc/centos-release" ]]; then - kernel=$(cat /etc/centos-release | awk -F ' ' '{print $1}') - else - kernel=$(lsb_release -d | awk -F ' ' '{print $2}') - fi -} -get_os_kernel -platform_arch=$(uname -p) +# package +os_name=$(cat /etc/os-release | grep -w NAME | awk -F '"' '{print $2}') +if [[ -f "/etc/openEuler-release" ]]; then + os_name="openEuler" +elif [[ -f "/etc/euleros-release" ]]; then + os_name="EulerOS" +elif [[ -f "/etc/centos-release" ]]; then + os_name="CentOS" +elif [[ -f "/etc/FusionOS-release" ]]; then + os_name="FusionOS" +elif [[ -f "/etc/kylin-release" ]]; then + os_name="Kylin" +elif [[ -f "/etc/asianux-release" ]]; then + os_name="Asianux" +elif [[ -f "/etc/CSIOS-release" ]]; then + os_name="CSIOS" +else + os_name=$(lsb_release -d | awk -F ' ' '{print $2}'| tr A-Z a-z | sed 's/.*/\L&/; s/[a-z]*/\u&/g') +fi + +os_version=$(cat /etc/os-release | grep -w VERSION_ID | awk -F '"' '{print $2}') + +platform_arch=$(uname -m) +kernel_package_name=openGauss-Server-%{version}-${os_name}-${os_version}-${platform_arch} cd ${opengauss_source_dir}/mppdb_temp_install -tar -zcf openGauss-Lite-%{version}-${kernel}-${platform_arch}.bin * -sha256sum openGauss-Lite-%{version}-${kernel}-${platform_arch}.bin | awk '{print $1}' > openGauss-Lite-%{version}-${kernel}-${platform_arch}.sha256 +tar -zcf ${kernel_package_name}.tar.bz2 * +sha256sum ${kernel_package_name}.tar.bz2 | awk '{print $1}' > ${kernel_package_name}.sha256 # copy binarylibs packages to %{tmppath} cp -r ${opengauss_source_dir}/mppdb_temp_install/* %{buildroot}%{tmppath} -sed -i "/wal_insert_status_entries/d" ${opengauss_source_dir}/build/script/opengauss_config_file_mini -cp ${opengauss_source_dir}/build/script/opengauss_config_file_mini %{buildroot}%{tmppath}/share/postgresql/ # make package upgrade sql cd ${opengauss_source_dir}/tmp_build @@ -204,23 +242,23 @@ fi cp -r upgrade_sql.tar.gz %{buildroot}%{tmppath} cp -r upgrade_sql.sha256 %{buildroot}%{tmppath} -popd - # opengauss datanode dir. install -d -m 700 $RPM_BUILD_ROOT%{?_localstatedir}/lib/opengauss/data # opengauss .bash_profile -install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{?_localstatedir}/lib/opengauss/.bash_profile +install -m 644 %{SOURCE20} $RPM_BUILD_ROOT%{?_localstatedir}/lib/opengauss/.bash_profile # auto start files -install -m 644 %{SOURCE6} %{buildroot}%{tmppath}/script/opengauss.service -install -m 700 %{SOURCE7} %{buildroot}%{tmppath}/script/autostart.sh +install -m 644 %{SOURCE21} %{buildroot}%{tmppath}/script/opengauss.service +install -m 700 %{SOURCE22} %{buildroot}%{tmppath}/script/autostart.sh # upgrade script -install -m 644 %{SOURCE8} %{buildroot}%{tmppath}/version.cfg -install -m 644 %{SOURCE9} %{buildroot}%{tmppath}/opengauss_upgrade_start.sh -install -m 644 %{SOURCE10} %{buildroot}%{tmppath}/opengauss_upgrade_common.sh -install -m 644 %{SOURCE11} %{buildroot}%{tmppath}/opengauss_upgrade_config.sh -install -m 644 %{SOURCE12} %{buildroot}%{tmppath}/opengauss_upgrade_errorcode.sh +install -m 644 %{SOURCE23} %{buildroot}%{tmppath}/version.cfg +install -m 644 %{SOURCE24} %{buildroot}%{tmppath}/opengauss_upgrade_start.sh +install -m 644 %{SOURCE25} %{buildroot}%{tmppath}/opengauss_upgrade_common.sh +install -m 644 %{SOURCE26} %{buildroot}%{tmppath}/opengauss_upgrade_config.sh +install -m 644 %{SOURCE27} %{buildroot}%{tmppath}/opengauss_upgrade_errorcode.sh + +popd %pre /usr/sbin/groupadd -r opengauss >/dev/null 2>&1 || : @@ -422,18 +460,18 @@ fi %files -%defattr (-,root,root) -%{apppath} -%{tmppath} %doc -%attr(700,opengauss,opengauss) %dir %{?_localstatedir}/lib/opengauss -%attr(700,opengauss,opengauss) %dir %{?_localstatedir}/lib/opengauss/data -%attr(755,opengauss,opengauss) %dir %{apppath} -%attr(755,opengauss,opengauss) %dir %{tmppath} -%attr(644,opengauss,opengauss) %config(noreplace) %{?_localstatedir}/lib/opengauss/.bash_profile +%defattr (755,opengauss,opengauss) +%{apppath} + +%defattr (700,opengauss,opengauss) +%{?_localstatedir}/lib/opengauss %changelog +* Thu Nov 14 2024 liuheng - 6.0.0-16 +- Update version to 6.0.0 + * Thu Jun 20 2024 liuheng - 5.0.1-15 - Fix bugs: Initialize Remove Password diff --git a/opengauss_upgrade_config.sh b/opengauss_upgrade_config.sh index d442d9027c8cf10c18126156c72ababcfd911a1d..d9fc8f0831296c4b4ddb7d2f0a78dd7a2c6bb481 100644 --- a/opengauss_upgrade_config.sh +++ b/opengauss_upgrade_config.sh @@ -13,10 +13,10 @@ GAUSS_ADMIN_USER="opengauss" GAUSS_LOG_PATH="/var/lib/opengauss/opengauss_upgrade" #数据库升级根位置 -GAUSS_UPGRADE_BASE_PATH="/var/lib/opengauss/opengauss_upgrade/pkg_5.0.1" +GAUSS_UPGRADE_BASE_PATH="/var/lib/opengauss/opengauss_upgrade/pkg_6.0.0" #数据库SQL包位置 -GAUSS_SQL_TAR_PATH="/var/lib/opengauss/opengauss_upgrade/pkg_5.0.1" +GAUSS_SQL_TAR_PATH="/var/lib/opengauss/opengauss_upgrade/pkg_6.0.0" #数据库低版本备份位置 GAUSS_BACKUP_BASE_PATH="/var/lib/opengauss/opengauss_upgrade/bak" diff --git a/openssl3-adptor.patch b/openssl3-adptor.patch deleted file mode 100755 index 023d2f49352106a2fe7b9ad59153806257fd60ad..0000000000000000000000000000000000000000 --- a/openssl3-adptor.patch +++ /dev/null @@ -1,89 +0,0 @@ -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/sm2_enc_key.cpp openGauss-server-5.0.1-edit/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/sm2_enc_key.cpp -*** openGauss-server-5.0.1/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/sm2_enc_key.cpp 2024-05-07 20:16:39.548798239 +0800 ---- openGauss-server-5.0.1-edit/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/sm2_enc_key.cpp 2024-05-07 20:17:58.813382746 +0800 -*************** -*** 152,165 **** - EVP_PKEY_free(public_evp_key); - return CMKEM_EVP_ERR; - } -! - ret = EVP_PKEY_set_alias_type(public_evp_key, EVP_PKEY_SM2); - if (ret != 1) { - cmkem_errmsg("EVP_PKEY_set_alias_type to EVP_PKEY_SM2 failed!"); - EVP_PKEY_free(public_evp_key); - return CMKEM_EVP_ERR; - } -! - /* do cipher. */ - ctx = EVP_PKEY_CTX_new(public_evp_key, NULL); - EVP_PKEY_free(public_evp_key); ---- 152,165 ---- - EVP_PKEY_free(public_evp_key); - return CMKEM_EVP_ERR; - } -! #ifndef WITH_OPENEULER_OS - ret = EVP_PKEY_set_alias_type(public_evp_key, EVP_PKEY_SM2); - if (ret != 1) { - cmkem_errmsg("EVP_PKEY_set_alias_type to EVP_PKEY_SM2 failed!"); - EVP_PKEY_free(public_evp_key); - return CMKEM_EVP_ERR; - } -! #endif - /* do cipher. */ - ctx = EVP_PKEY_CTX_new(public_evp_key, NULL); - EVP_PKEY_free(public_evp_key); -*************** -*** 242,255 **** - EVP_PKEY_free(private_evp_key); - return CMKEM_EVP_ERR; - } -! - ret = EVP_PKEY_set_alias_type(private_evp_key, EVP_PKEY_SM2); - if (ret != 1) { - cmkem_errmsg("EVP_PKEY_set_alias_type to EVP_PKEY_SM2 failed!"); - EVP_PKEY_free(private_evp_key); - return CMKEM_EVP_ERR; - } -! - /* do cipher. */ - ctx = EVP_PKEY_CTX_new(private_evp_key, NULL); - EVP_PKEY_free(private_evp_key); ---- 242,255 ---- - EVP_PKEY_free(private_evp_key); - return CMKEM_EVP_ERR; - } -! #ifndef WITH_OPENEULER_OS - ret = EVP_PKEY_set_alias_type(private_evp_key, EVP_PKEY_SM2); - if (ret != 1) { - cmkem_errmsg("EVP_PKEY_set_alias_type to EVP_PKEY_SM2 failed!"); - EVP_PKEY_free(private_evp_key); - return CMKEM_EVP_ERR; - } -! #endif - /* do cipher. */ - ctx = EVP_PKEY_CTX_new(private_evp_key, NULL); - EVP_PKEY_free(private_evp_key); -diff -crN '--exclude=.git' '--exclude=.gitee' '--exclude=.vscode' openGauss-server-5.0.1/src/include/gs_policy/policy_common.h openGauss-server-5.0.1-edit/src/include/gs_policy/policy_common.h -*** openGauss-server-5.0.1/src/include/gs_policy/policy_common.h 2024-05-07 20:16:40.004801601 +0800 ---- openGauss-server-5.0.1-edit/src/include/gs_policy/policy_common.h 2024-05-08 15:15:54.570657064 +0800 -*************** -*** 22,27 **** ---- 22,28 ---- - */ - #ifndef _GS_POLICY_COMMON_H - #define _GS_POLICY_COMMON_H -+ #include - #include "nodes/parsenodes.h" - #include "nodes/plannodes.h" - -*************** -*** 31,36 **** ---- 32,39 ---- - #include "gs_vector.h" - #include "pgaudit.h" - -+ using std::vector; -+ - struct GsPolicyFQDN { - GsPolicyFQDN():m_value_schema(0), m_value_object(0), is_function(false){} - Oid m_value_schema; /* schema */ diff --git a/version.cfg b/version.cfg index 77656eee1bbf0ae4f8a025b67e1c1ff41642cda5..9fc3cff381b8de64bddb8d38b807a9b3826ac611 100644 --- a/version.cfg +++ b/version.cfg @@ -1,3 +1,4 @@ -openGauss-Lite-5.0.1 -92.854 -33b035fd \ No newline at end of file +openGauss-Server-6.0.0 +92.954 +798b1578 +release \ No newline at end of file