summaryrefslogtreecommitdiff
path: root/README-DEV
diff options
context:
space:
mode:
Diffstat (limited to 'README-DEV')
-rw-r--r--README-DEV52
1 files changed, 31 insertions, 21 deletions
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