diff --git a/build.sh b/build.sh index c40a824..b6cdae5 100644 --- a/build.sh +++ b/build.sh @@ -8,6 +8,11 @@ set -e trap 'read -p "Press any key..." x' EXIT +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# cURL version +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +readonly MY_VERSION=8.5.0 + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Set up compiler # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -52,7 +57,7 @@ wget -4 -O "${LIBS_DIR}/.pkg/nghttp3.tar.gz" https://github.com/ngtcp2/nghttp3/ wget -4 -O "${LIBS_DIR}/.pkg/ngtcp2.tar.gz" https://github.com/ngtcp2/ngtcp2/releases/download/v1.1.0/ngtcp2-1.1.0.tar.gz wget -4 -O "${LIBS_DIR}/.pkg/libidn2.tar.gz" https://ftp.gnu.org/gnu/libidn/libidn2-2.3.4.tar.gz wget -4 -O "${LIBS_DIR}/.pkg/libgsasl.tar.gz" https://ftp.gnu.org/gnu/gsasl/libgsasl-1.10.0.tar.gz -wget -4 -O "${LIBS_DIR}/.pkg/curl.tar.gz" https://curl.se/download/curl-8.5.0.tar.gz +wget -4 -O "${LIBS_DIR}/.pkg/curl.tar.gz" https://curl.se/download/curl-${MY_VERSION}.tar.gz wget -4 -O "${LIBS_DIR}/.pkg/cacert.pem" https://curl.se/ca/cacert.pem wget -4 -O "${LIBS_DIR}/.pkg/manpage.html" https://curl.se/docs/manpage.html @@ -230,7 +235,6 @@ pushd "${CURL_DIR}" sed -i -E 's/\bmain[[:space:]]*\(([^\(\)]*)\)/wmain(\1)/g' configure patch -p1 -b < "${BASE_DIR}/patch/curl_getenv.diff" patch -p1 -b < "${BASE_DIR}/patch/curl_threads.diff" -patch -p1 -b < "${BASE_DIR}/patch/curl_tool_cb_wrt.diff" patch -p1 -b < "${BASE_DIR}/patch/curl_tool_doswin.diff" patch -p1 -b < "${BASE_DIR}/patch/curl_tool_getparam.diff" patch -p1 -b < "${BASE_DIR}/patch/curl_tool_parsecfg.diff" @@ -288,7 +292,7 @@ unix2dos -n "${ZSTD_DIR}/README.md" legal/zstandard.README.md mkdir -p "${OUT_DIR}/patch" cp -vf "${BASE_DIR}/patch/"*.diff "${OUT_DIR}/patch" find "${OUT_DIR}" -type f -exec chmod 444 "{}" \; -readonly zfile="${BASE_DIR}/curl-windows-${MY_CPU}.$(date +"%Y-%m-%d").zip" +readonly zfile="${BASE_DIR}/curl-${MY_VERSION}-windows-${MY_CPU}.$(date +"%Y-%m-%d").zip" rm -rf "${zfile}" && zip -v -r -9 "${zfile}" "." chmod 444 "${zfile}" popd diff --git a/patch/curl_getenv.diff b/patch/curl_getenv.diff index 4f46c1b..e0b86b5 100644 --- a/patch/curl_getenv.diff +++ b/patch/curl_getenv.diff @@ -1,11 +1,11 @@ - lib/getenv.c | 49 +++++++++++++++++++++++++++++++++---------------- - 1 file changed, 33 insertions(+), 16 deletions(-) + lib/getenv.c | 47 ++++++++++++++++++++++++++++++----------------- + 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/lib/getenv.c b/lib/getenv.c -index 5f00fd1..3eff07a 100644 +index 48ee972..fe27a24 100644 --- a/lib/getenv.c +++ b/lib/getenv.c -@@ -26,25 +26,23 @@ +@@ -26,26 +26,23 @@ #include #include "curl_memory.h" @@ -14,35 +14,36 @@ index 5f00fd1..3eff07a 100644 #include "memdebug.h" -static char *GetEnv(const char *variable) -+#ifdef WIN32 -+static TCHAR *GetEnv(const TCHAR *variable) ++#if defined(_WIN32) ++static wchar_t *GetEnv(const wchar_t *variable) { --#if defined(_WIN32_WCE) || defined(CURL_WINDOWS_APP) +-#if defined(_WIN32_WCE) || defined(CURL_WINDOWS_APP) || \ +- defined(__ORBIS__) || defined(__PROSPERO__) /* PlayStation 4 and 5 */ - (void)variable; - return NULL; --#elif defined(WIN32) +-#elif defined(_WIN32) /* This uses Windows API instead of C runtime getenv() to get the environment variable since some changes aren't always visible to the latter. #4774 */ - char *buf = NULL; - char *tmp; -+ TCHAR *buf = NULL; -+ TCHAR *tmp; ++ wchar_t *buf = NULL; ++ wchar_t *tmp; DWORD bufsize; DWORD rc = 1; const DWORD max = 32768; /* max env var size from MSCRT source */ for(;;) { - tmp = realloc(buf, rc); -+ tmp = (TCHAR*)realloc(buf, rc * sizeof(TCHAR)); ++ tmp = (wchar_t*)realloc(buf, rc * sizeof(wchar_t)); if(!tmp) { free(buf); return NULL; -@@ -55,25 +53,44 @@ static char *GetEnv(const char *variable) +@@ -56,25 +53,41 @@ static char *GetEnv(const char *variable) /* It's possible for rc to be 0 if the variable was found but empty. Since getenv doesn't make that distinction we ignore it as well. */ - rc = GetEnvironmentVariableA(variable, buf, bufsize); -+ rc = GetEnvironmentVariable(variable, buf, bufsize); ++ rc = GetEnvironmentVariableW(variable, buf, bufsize); if(!rc || rc == bufsize || rc > max) { free(buf); return NULL; @@ -61,11 +62,11 @@ index 5f00fd1..3eff07a 100644 + +char *curl_getenv(const char *variable) +{ -+#if defined(_WIN32_WCE) || defined(CURL_WINDOWS_APP) ++#if defined(_WIN32_WCE) || defined(CURL_WINDOWS_APP) || \ ++ defined(__ORBIS__) || defined(__PROSPERO__) /* PlayStation 4 and 5 */ + (void)variable; + return NULL; -+#elif defined(WIN32) -+#ifdef UNICODE ++#elif defined(_WIN32) + char *value = NULL; + wchar_t *variable_w = curlx_convert_UTF8_to_wchar(variable); + if(variable_w) { @@ -77,9 +78,6 @@ index 5f00fd1..3eff07a 100644 + free(variable_w); + } + return value; -+#else -+ return GetEnv(variable); -+#endif #else char *env = getenv(variable); return (env && env[0])?strdup(env):NULL; diff --git a/patch/curl_tool_getparam.diff b/patch/curl_tool_getparam.diff index 3762c45..d434d1c 100644 --- a/patch/curl_tool_getparam.diff +++ b/patch/curl_tool_getparam.diff @@ -1,11 +1,8 @@ - src/tool_getparam.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/tool_getparam.c b/src/tool_getparam.c -index e446762..a3be6ac 100644 ---- a/src/tool_getparam.c -+++ b/src/tool_getparam.c -@@ -562,8 +562,13 @@ static void cleanarg(argv_item_t str) +diff --git "a/src/tool_getparam.c" "b/src/tool_getparam.c" +index 5fa1ace..a1b54f4 100644 +--- "a/src/tool_getparam.c" ++++ "b/src/tool_getparam.c" +@@ -563,8 +563,13 @@ static void cleanarg(argv_item_t str) * argument out so that the username:password isn't displayed in the * system process list */ if(str) { diff --git a/patch/curl_tool_parsecfg.diff b/patch/curl_tool_parsecfg.diff index 9285e78..1682899 100644 --- a/patch/curl_tool_parsecfg.diff +++ b/patch/curl_tool_parsecfg.diff @@ -1,14 +1,11 @@ - src/tool_parsecfg.c | 42 ++++++++++++++++-------------------------- - 1 file changed, 16 insertions(+), 26 deletions(-) - -diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c -index a166757..6a00b80 100644 ---- a/src/tool_parsecfg.c -+++ b/src/tool_parsecfg.c +diff --git "a/src/tool_parsecfg.c" "b/src/tool_parsecfg.c" +index da48700..60e7b44 100644 +--- "a/src/tool_parsecfg.c" ++++ "b/src/tool_parsecfg.c" @@ -47,29 +47,20 @@ static const char *unslashquote(const char *line, char *param); static bool my_get_line(FILE *fp, struct curlx_dynbuf *, bool *error); - #ifdef WIN32 + #ifdef _WIN32 -static FILE *execpath(const char *filename, char **pathp) +static FILE *execpath(const TCHAR *filename) { @@ -58,7 +55,7 @@ index a166757..6a00b80 100644 if(!file) { @@ -100,14 +91,13 @@ int parseconfig(const char *filename, struct GlobalConfig *global) } - #ifdef WIN32 /* Windows */ + #ifdef _WIN32 /* Windows */ else { - char *fullp; /* check for .curlrc then _curlrc in the dir of the executable */ diff --git a/patch/curl_tool_cb_wrt.diff b/patch/old/curl_tool_cb_wrt.diff similarity index 100% rename from patch/curl_tool_cb_wrt.diff rename to patch/old/curl_tool_cb_wrt.diff