diff -urN cmake-3.29.0-orig/CMakeLists.txt cmake-3.29.0/CMakeLists.txt
--- cmake-3.29.0-orig/CMakeLists.txt	2024-03-21 22:32:22 +0900
+++ cmake-3.29.0/CMakeLists.txt	2024-04-04 12:14:31 +0900
@@ -160,7 +160,7 @@
 
   # Allow the user to enable/disable all system utility library options by
   # defining CMAKE_USE_SYSTEM_LIBRARIES or CMAKE_USE_SYSTEM_LIBRARY_${util}.
-  set(UTILITIES BZIP2 CPPDAP CURL EXPAT FORM JSONCPP LIBARCHIVE LIBLZMA LIBRHASH LIBUV NGHTTP2 ZLIB ZSTD)
+  set(UTILITIES BZIP2 CPPDAP EXPAT FORM JSONCPP LIBARCHIVE LIBLZMA LIBRHASH LIBUV NGHTTP2 ZLIB ZSTD)
   foreach(util IN LISTS UTILITIES)
     if(NOT DEFINED CMAKE_USE_SYSTEM_LIBRARY_${util}
         AND DEFINED CMAKE_USE_SYSTEM_LIBRARIES)
@@ -191,18 +191,16 @@
   if(CMake_ENABLE_DEBUGGER)
     option(CMAKE_USE_SYSTEM_CPPDAP "Use system-installed cppdap" "${CMAKE_USE_SYSTEM_LIBRARY_CPPDAP}")
   endif()
-  option(CMAKE_USE_SYSTEM_CURL "Use system-installed curl" "${CMAKE_USE_SYSTEM_LIBRARY_CURL}")
   option(CMAKE_USE_SYSTEM_EXPAT "Use system-installed expat" "${CMAKE_USE_SYSTEM_LIBRARY_EXPAT}")
   CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib"
-    "${CMAKE_USE_SYSTEM_LIBRARY_ZLIB}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE;NOT CMAKE_USE_SYSTEM_CURL" ON)
+    "${CMAKE_USE_SYSTEM_LIBRARY_ZLIB}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
   CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_BZIP2 "Use system-installed bzip2"
     "${CMAKE_USE_SYSTEM_LIBRARY_BZIP2}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
   CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_ZSTD "Use system-installed zstd"
     "${CMAKE_USE_SYSTEM_LIBRARY_ZSTD}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
   CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_LIBLZMA "Use system-installed liblzma"
     "${CMAKE_USE_SYSTEM_LIBRARY_LIBLZMA}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
-  CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_NGHTTP2 "Use system-installed nghttp2"
-    "${CMAKE_USE_SYSTEM_LIBRARY_NGHTTP2}" "NOT CMAKE_USE_SYSTEM_CURL" ON)
+  option(CMAKE_USE_SYSTEM_NGHTTP2 "Use system-installed nghttp2" "${CMAKE_USE_SYSTEM_LIBRARY_NGHTTP2}")
   option(CMAKE_USE_SYSTEM_FORM "Use system-installed libform" "${CMAKE_USE_SYSTEM_LIBRARY_FORM}")
   CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_JSONCPP "Use system-installed jsoncpp"
     "${CMAKE_USE_SYSTEM_LIBRARY_JSONCPP}" "NOT CMAKE_USE_SYSTEM_CPPDAP" ON)
@@ -233,7 +231,7 @@
 macro(CMAKE_SETUP_TESTING)
   if(BUILD_TESTING)
     set(CMAKE_TEST_SYSTEM_LIBRARIES 0)
-    foreach(util IN ITEMS CURL EXPAT ZLIB)
+    foreach(util IN ITEMS EXPAT ZLIB)
       if(CMAKE_USE_SYSTEM_${util})
         set(CMAKE_TEST_SYSTEM_LIBRARIES 1)
       endif()
diff -urN cmake-3.29.0-orig/Source/CMakeLists.txt cmake-3.29.0/Source/CMakeLists.txt
--- cmake-3.29.0-orig/Source/CMakeLists.txt	2024-03-21 22:32:22 +0900
+++ cmake-3.29.0/Source/CMakeLists.txt	2024-04-04 12:14:31 +0900
@@ -160,8 +160,6 @@
   cmCPackPropertiesGenerator.cxx
   cmCryptoHash.cxx
   cmCryptoHash.h
-  cmCurl.cxx
-  cmCurl.h
   cmCustomCommand.cxx
   cmCustomCommand.h
   cmCustomCommandGenerator.cxx
@@ -769,7 +767,6 @@
   PUBLIC
     cmstd
     cmsys
-    CURL::libcurl
     EXPAT::EXPAT
     JsonCpp::JsonCpp
     $<TARGET_NAME_IF_EXISTS:kwiml::kwiml>
@@ -972,8 +969,7 @@
     "$<$<COMPILE_LANGUAGE:CXX>:cmGeneratorExpression.h>"
     "$<$<COMPILE_LANGUAGE:CXX>:cmArgumentParser.h>"
     "$<$<COMPILE_LANGUAGE:CXX>:cmake.h>"
-    "$<$<COMPILE_LANGUAGE:CXX>:cmCMakePath.h>"
-    "$<$<COMPILE_LANGUAGE:CXX>:cmCurl.h>")
+    "$<$<COMPILE_LANGUAGE:CXX>:cmCMakePath.h>")
 
     set_source_files_properties(
       "LexerParser/cmFortranLexer.cxx"
@@ -1038,7 +1034,6 @@
   CTest/cmCTestConfigureHandler.cxx
   CTest/cmCTestCoverageCommand.cxx
   CTest/cmCTestCoverageHandler.cxx
-  CTest/cmCTestCurl.cxx
   CTest/cmParseMumpsCoverage.cxx
   CTest/cmParseCacheCoverage.cxx
   CTest/cmParseGTMCoverage.cxx
@@ -1117,7 +1112,7 @@
     "<cm3p/uv.h>")
 
   if(WIN32)
-    target_precompile_headers(CTestLib PRIVATE "cmCurl.h" "CTest/cmCTestMultiProcessHandler.h")
+    target_precompile_headers(CTestLib PRIVATE "CTest/cmCTestMultiProcessHandler.h")
   else()
     set_source_files_properties("LexerParser/cmCTestResourceGroupsLexer.cxx" PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
   endif()
diff -urN cmake-3.29.0-orig/Source/CTest/cmCTestSubmitHandler.cxx cmake-3.29.0/Source/CTest/cmCTestSubmitHandler.cxx
--- cmake-3.29.0-orig/Source/CTest/cmCTestSubmitHandler.cxx	2024-03-21 22:32:22 +0900
+++ cmake-3.29.0/Source/CTest/cmCTestSubmitHandler.cxx	2024-04-04 12:14:31 +0900
@@ -10,7 +10,9 @@
 #include <cm/iomanip>
 #include <cmext/algorithm>
 
+#if 0
 #include <cm3p/curl/curl.h>
+#endif
 #include <cm3p/json/reader.h>
 #include <cm3p/json/value.h>
 
@@ -155,6 +157,7 @@
   const std::string& localprefix, const std::vector<std::string>& files,
   const std::string& remoteprefix, const std::string& url)
 {
+#if 0
   CURL* curl;
   FILE* ftpfile;
   char error_buffer[1024];
@@ -469,6 +472,10 @@
   ::curl_slist_free_all(headers);
   ::curl_global_cleanup();
   return true;
+#else
+  cmCTestLog(this->CTest, ERROR_MESSAGE, "Uploading not supported by this build.\n");
+  return false;
+#endif
 }
 
 void cmCTestSubmitHandler::ParseResponse(
@@ -507,6 +514,7 @@
 int cmCTestSubmitHandler::HandleCDashUploadFile(std::string const& file,
                                                 std::string const& typeString)
 {
+#if 0
   if (file.empty()) {
     cmCTestLog(this->CTest, ERROR_MESSAGE, "Upload file not specified\n");
     return -1;
@@ -729,6 +737,10 @@
                      "Upload file response: [" << response << "]\n",
                      this->Quiet);
   return 0;
+#else
+  cmCTestLog(this->CTest, ERROR_MESSAGE, "Uploading not supported by this build.\n");
+  return -1;
+#endif
 }
 
 int cmCTestSubmitHandler::ProcessHandler()
diff -urN cmake-3.29.0-orig/Source/Modules/CMakeBuildUtilities.cmake cmake-3.29.0/Source/Modules/CMakeBuildUtilities.cmake
--- cmake-3.29.0-orig/Source/Modules/CMakeBuildUtilities.cmake	2024-03-21 22:32:22 +0900
+++ cmake-3.29.0/Source/Modules/CMakeBuildUtilities.cmake	2024-04-04 12:14:31 +0900
@@ -138,6 +138,7 @@
 
 #---------------------------------------------------------------------
 # Build Curl library for CTest.
+if(FALSE)
 if(CMAKE_USE_SYSTEM_CURL)
   find_package(CURL)
   if(NOT CURL_FOUND)
@@ -175,6 +176,7 @@
     CMAKE_SET_TARGET_FOLDER(cmnghttp2 "Utilities/3rdParty")
   endif()
 endif()
+endif()
 
 #---------------------------------------------------------------------
 # Build expat library for CMake, CTest, and libarchive.
diff -urN cmake-3.29.0-orig/Source/cmCTest.cxx cmake-3.29.0/Source/cmCTest.cxx
--- cmake-3.29.0-orig/Source/cmCTest.cxx	2024-03-21 22:32:22 +0900
+++ cmake-3.29.0/Source/cmCTest.cxx	2024-04-04 12:20:03 +0900
@@ -24,7 +24,9 @@
 #include <cmext/algorithm>
 #include <cmext/string_view>
 
+#if 0
 #include <cm3p/curl/curl.h>
+#endif
 #include <cm3p/uv.h>
 #include <cm3p/zlib.h>
 
@@ -247,7 +249,11 @@
   // is the time at which the nightly dashboard was opened or
   // will be opened on the date of the current client machine.
   // As such, this time may be in the past or in the future.
+#if 0
   time_t ntime = curl_getdate(buf, &tctime);
+#else
+  time_t ntime = tctime;
+#endif
   cmCTestLog(this, DEBUG, "   Get curl time: " << ntime << std::endl);
   tctime = time(nullptr);
   cmCTestLog(this, DEBUG, "   Get the current time: " << tctime << std::endl);
@@ -3062,7 +3068,11 @@
            lctime->tm_mon + 1, lctime->tm_mday, time_str.c_str(),
            tzone_offset);
 
+#if 0
   time_t stop_time = curl_getdate(buf, &current_time);
+#else
+  time_t stop_time = -1;
+#endif
   if (stop_time == -1) {
     this->Impl->StopTime = std::chrono::system_clock::time_point();
     return;
diff -urN cmake-3.29.0-orig/Source/cmFileCommand.cxx cmake-3.29.0/Source/cmFileCommand.cxx
--- cmake-3.29.0-orig/Source/cmFileCommand.cxx	2024-03-21 22:32:22 +0900
+++ cmake-3.29.0/Source/cmFileCommand.cxx	2024-04-04 12:14:31 +0900
@@ -60,10 +60,12 @@
 #include "cmWorkingDirectory.h"
 #include "cmake.h"
 
-#if !defined(CMAKE_BOOTSTRAP)
+#if 0
 #  include <cm3p/curl/curl.h>
 
 #  include "cmCurl.h"
+#endif
+#if !defined(CMAKE_BOOTSTRAP)
 #  include "cmFileLockResult.h"
 #endif
 
@@ -1665,7 +1667,7 @@
   return HandlePathCommand(args, ToNativePath, status);
 }
 
-#if !defined(CMAKE_BOOTSTRAP)
+#if 0
 
 // Stuff for curl download/upload
 using cmFileCommandVectorOfChar = std::vector<char>;
@@ -1844,7 +1846,7 @@
 bool HandleDownloadCommand(std::vector<std::string> const& args,
                            cmExecutionStatus& status)
 {
-#if !defined(CMAKE_BOOTSTRAP)
+#if 0
   auto i = args.begin();
   if (args.size() < 2) {
     status.SetError("DOWNLOAD must be called with at least two arguments.");
@@ -2256,7 +2258,7 @@
 
   return true;
 #else
-  status.SetError("DOWNLOAD not supported by bootstrap cmake.");
+  status.SetError("DOWNLOAD not supported by this build.");
   return false;
 #endif
 }
@@ -2264,7 +2266,7 @@
 bool HandleUploadCommand(std::vector<std::string> const& args,
                          cmExecutionStatus& status)
 {
-#if !defined(CMAKE_BOOTSTRAP)
+#if 0
   if (args.size() < 3) {
     status.SetError("UPLOAD must be called with at least three arguments.");
     return false;
@@ -2559,7 +2561,7 @@
 
   return true;
 #else
-  status.SetError("UPLOAD not supported by bootstrap cmake.");
+  status.SetError("UPLOAD not supported by this build.");
   return false;
 #endif
 }
diff -urN cmake-3.29.0-orig/Source/cmake.cxx cmake-3.29.0/Source/cmake.cxx
--- cmake-3.29.0-orig/Source/cmake.cxx	2024-03-21 22:32:22 +0900
+++ cmake-3.29.0/Source/cmake.cxx	2024-04-04 12:14:31 +0900
@@ -73,7 +73,9 @@
 #if !defined(CMAKE_BOOTSTRAP)
 #  include <unordered_map>
 
+# if 0
 #  include <cm3p/curl/curl.h>
+# endif
 #  include <cm3p/json/writer.h>
 
 #  include "cmConfigureLog.h"
@@ -377,7 +379,9 @@
   std::vector<cmake::GeneratorInfo> generatorInfoList;
   this->GetRegisteredGenerators(generatorInfoList);
 
+#if 0
   auto* curlVersion = curl_version_info(CURLVERSION_FIRST);
+#endif
 
   JsonValueMapType generatorMap;
   for (cmake::GeneratorInfo const& gi : generatorInfoList) {
@@ -413,7 +417,11 @@
   obj["generators"] = generators;
   obj["fileApi"] = cmFileAPI::ReportCapabilities();
   obj["serverMode"] = false;
+#  if 0
   obj["tls"] = static_cast<bool>(curlVersion->features & CURL_VERSION_SSL);
+#  else
+  obj["tls"] = false;
+#  endif
 #  ifdef CMake_ENABLE_DEBUGGER
   obj["debugger"] = true;
 #  else
