From 1ff5c0d21aeccc82f07cecbba20c8725f9db53e2 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 1 Apr 2021 21:48:26 +0300 Subject: Upgrade to 7.76.0 --- README-DEV | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) (limited to 'README-DEV') diff --git a/README-DEV b/README-DEV index 94a128b..bf242fe 100644 --- a/README-DEV +++ b/README-DEV @@ -28,11 +28,14 @@ Debian and Fedora distributions. The configuration options defining these sets are specified in the Debian's rules and Fedora's RPM .spec files. These files can be obtained as follows: -$ wget http://deb.debian.org/debian/pool/main/c/curl/curl_7.67.0-2.debian.tar.xz -$ tar xf curl_7.67.0-2.debian.tar.xz debian/rules +$ wget http://deb.debian.org/debian/pool/main/c/curl/curl_7.74.0-1.1.debian.tar.xz +$ tar xf curl_7.74.0-1.1.debian.tar.xz debian/rules -$ wget https://kojipkgs.fedoraproject.org//packages/curl/7.67.0/2.fc32/src/curl-7.67.0-2.fc32.src.rpm -$ rpm2cpio curl-7.67.0-2.fc32.src.rpm | cpio -civ '*.spec' +Note that at the time of upgrade curl 7.76.0 is not available for the Debian +distribution, so we take the latest available version. + +$ wget https://kojipkgs.fedoraproject.org/packages/curl/7.76.0/1.fc35/src/curl-7.76.0-1.fc35.src.rpm +$ rpm2cpio curl-7.76.0-1.fc35.src.rpm | cpio -civ '*.spec' As a side note, on Debian and Fedora the source, library, headers, and tools are packaged as follows: @@ -42,7 +45,7 @@ Debian/Ubuntu: curl libcurl4 libcurl4-openssl-dev curl Fedora/RHEL: curl libcurl libcurl-devel curl Search for the Debian and Fedora packages at https://packages.debian.org/search -and https://apps.fedoraproject.org/packages/. +and https://src.fedoraproject.org/. Here are the discovered configuration options. @@ -53,6 +56,7 @@ Debian: --with-gssapi=/usr --with-libssh2 --with-nghttp2 --with-zsh-functions-dir=/usr/share/zsh/vendor-completions --with-ca-path=/etc/ssl/certs + --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt Fedora: @@ -80,11 +84,13 @@ explicitly request to use zlib and end up with the following options: --disable-ares --disable-esni --disable-manual --without-lber-lib --without-gssapi --without-libssh --without-libssh2 --without-nghttp2 --without-zsh-functions-dir --without-brotli --without-libidn2 - --without-libmetalink --without-libpsl --without-ca-bundle --without-ca-path - --with-ca-fallback + --without-libmetalink --without-libpsl + --without-bearssl --without-libgsasl --disable-hsts --without-hyper + --without-rustls --without-wolfssh + --without-ca-bundle --without-ca-path --with-ca-fallback See the configuration options description at the "Install from source" page -(https://curl.haxx.se/docs/install.html). +(https://curl.se/docs/install.html). On Windows and MacOS we also enable the SSL backend provided by the system and make it a default one. On MacOS we add the following configuration options: @@ -93,7 +99,7 @@ make it a default one. On MacOS we add the following configuration options: Note, though, that on MacOS building curl with GCC fails for the Secure Transport backend enabled (see curl issue 4821 for details). Thus, we disable -it for GCC on MacOS. +it for GCC on MacOS (see libcurl/curl_config.h for details). For MSVC there is no easy way to request that via the configuration script, so we apply the following patch to winbuild/MakefileBuild.vc: @@ -111,18 +117,20 @@ we apply the following patch to winbuild/MakefileBuild.vc: Normally, when packaging a project, we need to replace some auto-generated headers with our own implementations and deduce compilation/linking options. -For cURL we can rely for that on m4/curl-compilers.m4, {lib,src}/Makefile.am, -and winbuild/MakefileBuild.vc. In practice, however, that can be uneasy and -error prone, so you may also need to see the auto-generated files and the -actual compiler and linker command lines in the build log. If that's the case, -you can configure/build the upstream package on the platform of interest -running the following commands in the upstream project root directory. - -On POSIX and for MinGW GCC (add --with-secure-transport ---with-default-ssl-backend=secure-transport for MacOS and --with-schannel ---with-default-ssl-backend=schannel for MinGW GCC): - -$ ./buildconf +For cURL we can rely for that on configure.ac, m4/curl-compilers.m4, +{lib,src}/Makefile.am, and winbuild/MakefileBuild.vc. In practice, however, +that can be uneasy and error prone, so you may also need to see the +auto-generated files and the actual compiler and linker command lines in the +build log. If that's the case, you can configure/build the upstream package on +the platform of interest running the following commands in the upstream +project root directory. + +On POSIX and for MinGW GCC (add +--with-secure-transport --with-default-ssl-backend=secure-transport for MacOS +and +--with-schannel --with-default-ssl-backend=schannel for MinGW GCC): + +$ autoreconf -fi $ mkdir build $ cd build $ ../configure --enable-symbol-hiding --enable-versioned-symbols \ @@ -131,6 +139,8 @@ $ ../configure --enable-symbol-hiding --enable-versioned-symbols \ --disable-manual --without-lber-lib --without-gssapi --without-libssh \ --without-libssh2 --without-nghttp2 --without-zsh-functions-dir \ --without-brotli --without-libidn2 --without-libmetalink --without-libpsl \ + --without-bearssl --without-libgsasl --disable-hsts --without-hyper \ + --without-rustls --without-wolfssh \ --without-ca-bundle --without-ca-path --with-ca-fallback >build.log 2>&1 $ make V=1 >>build.log 2>&1 -- cgit v1.1