| Cost | $0.098 |
| Total elapsed time | 2m48s |
| LLM inference time | 2m8s |
| Command execution time | 40s |
| Commands executed | 12 |
All details >
| Attempt ID | wb3o0g66o3ocp | Attempt group | run-16-09-22-05 |
| Revision | fb5c74bd2fee | AWS Instance | m8i.2xlarge |
| Start time | 2025-09-16T21:29:18.671Z | End time | 2025-09-16T21:32:08.279Z |
| Task | curl-ssl | Environment | ubuntu-22.04-amd64 |
| Model | | OpenRouter slug | openai/gpt-5 |
| Temperature | 1 | Explicit prompt caching | false |
| User msg after tool call | false | Max tool calls | 70 |
| Total timeout seconds | 900 | Single command timeout | 600 |
| Cost | $0.098 | Duration | 2m48s |
| LLM inference time | 2m8s | Command execution time | 40s |
| Final context tokens | 16,384 | Total output tokens | 5,360 |
| Output reasoning tokens | 4,352 | Messages | 27 |
| Assistant messages | 13 | User messages | 1 |
| System messages | 1 | Commands executed | 12 |
curl 8.16.0 is a command-line HTTP client.
Project link: curl.se
Task:
Compile and install curl to a specific location. Build with SSL support (TLS v1.3), brotli, zlib and zstd.
Difficulties:
Installing dependencies can be tricky.
Environment:
Ubuntu 22.04 on amd64, with internet access.
You are a package-building specialist operating a Ubuntu 22.04 bash shell via one tool: run_terminal_cmd.
The current working directory of every run_terminal_cmd is /home/peter.
Execution rules:
- Always pass non-interactive flags for any command that could prompt (e.g., -y, --yes, DEBIAN_FRONTEND=noninteractive).
- Don't include any newlines in the command.
- You can use sudo.
If you encounter any errors or issues while doing the user's request, you must fix them and continue the task.
At the end verify you did the user request correctly.
You are given a curl v8.16.0 source code at /home/peter/curl.tar.gz. Please compile curl and install it to /home/peter/result. Create a symlink from /home/peter/result/curl to the actual binary. Make sure it builds with SSL support (TLS v1.3), brotli, zlib and zstd.
Show reasoning
Evaluating apt-get commands
I need to ensure that I’m passing minimal environment variables to avoid any interactive prompts. Setting DEBIAN_FRONTEND to noninteractive for apt-get seems necessary. Running 'sudo apt-get update -y' feels a bit tricky because I’m not sure if -y is really needed. While I think it’s generally acceptable, -y might just print a warning during the update. I think it's safer just to run 'sudo apt-get update' without the -y option.Setting up installation commands
I see the instruction to always use non-interactive flags for any commands that could prompt. Since the update command doesn’t prompt, I think it’s fine to omit -y here. However, for installation, I’ll definitely use DEBIAN_FRONTEND=noninteractive and include -y to be safe. After building, creating a symlink is crucial, and I need to ensure the configuration flags correctly locate libraries. On Ubuntu 22.04, development packages will place libraries in /usr/lib/x86_64-linux-gnu. I might also need to install autoconf or automake if a configure script is included, alongside standard packages like pkg-config, libtool, make, gcc, and g++.Planning installation steps
I’m organizing the steps for installation. First, I’ll ensure all dependencies are in place by running apt-get update, then installing necessary packages like build-essential, pkg-config, autoconf, automake, libtool, and make. Since build-essential covers make, gcc, and g++, I might also add libraries like libssl-dev and zlib1g-dev, and maybe libnghttp2-dev for HTTP/2 support, although it’s not strictly necessary. Next, I’ll create a build directory at /home/peter/build-curl and extract the tarball, checking the top-level directory name afterward. I’ll use tar -tzf to get the first path segment.Extracting and configuring source
I need to establish the extraction path first, which will be '/home/peter/curl-src'. I’ll create the directory and extract the tarball using the command mkdir -p /home/peter/curl-src && tar -xzf /home/peter/curl.tar.gz -C /home/peter/curl-src --strip-components=1. This strips off the top-level directory and places the content directly in 'curl-src', which is great.
Next, I’ll configure with OpenSSL support by setting PKG_CONFIG_PATH if necessary, and running ./configure --prefix=/home/peter/result --with-openssl --with-brotli --with-zstd --with-zlib. I'll make sure to enable TLS v1.3 support, especially since Ubuntu 22.04's OpenSSL 3.0 has it compiled in.Setting up the installation process
I’m checking the configure options for curl and confirming that the options like --with-brotli and --with-zstd will enable the respective libraries for decompression and compression support. After configuring, I’ll run make -j$(nproc) to compile using all available processors. It seems that using sudo isn't necessary since we’re installing to a user directory. I’ll make sure to set DEBIAN_FRONTEND=noninteractive for apt-get commands.
Next, I’ll prepare the environment, create necessary directories, and avoid removing the result directory if it contains important files. I’ll run through the sequence of commands, carefully ensuring I maintain the installation path and check features. Finally, I’ll confirm if OpenSSL is correctly used for TLS v1.3 support. Let's get started with the apt-get update!
compile-bench> sudo apt-get update
0% [Working]
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
0% [Connecting to security.ubuntu.com (185.125.190.39)]
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
0% [2 InRelease 5484 B/128 kB 4%] [Connecting to security.ubuntu.com (185.125.1
0% [2 InRelease 41.7 kB/128 kB 33%] [Waiting for headers]
0% [Waiting for headers]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]
0% [3 InRelease 6932 B/127 kB 5%] [Waiting for headers]
0% [Waiting for headers]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
0% [4 InRelease 5484 B/129 kB 4%]
0% [4 InRelease 14.2 kB/129 kB 11%]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [3626 kB]
0% [5 Packages 6999 B/3626 kB 0%] [4 InRelease 14.2 kB/129 kB 11%]
0% [5 Packages 214 kB/3626 kB 6%] [4 InRelease 14.2 kB/129 kB 11%]
0% [4 InRelease 37.3 kB/129 kB 29%]
0% [5 Packages store 0 B] [Waiting for headers] [4 InRelease 38.8 kB/129 kB 30%
Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1581 kB]
0% [5 Packages store 0 B] [6 Packages 115 kB/1581 kB 7%] [4 InRelease 43.1 kB/1
0% [5 Packages store 0 B] [4 InRelease 43.1 kB/129 kB 33%]
0% [4 InRelease 79.3 kB/129 kB 62%]
0% [6 Packages store 0 B] [4 InRelease 79.3 kB/129 kB 62%]
0% [4 InRelease 105 kB/129 kB 82%]
0% [Working]
46% [Working]
Get:7 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1274 kB]
46% [7 Packages 2655 B/1274 kB 0%]
53% [Working]
53% [7 Packages store 0 B]
53% [Waiting for headers]
Get:8 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [5441 kB]
53% [8 Packages 15.7 kB/5441 kB 0%]
68% [8 Packages 2859 kB/5441 kB 53%]
Get:9 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [3311 kB]
82% [9 Packages 92.9 kB/3311 kB 3%]
82% [8 Packages store 0 B] [9 Packages 152 kB/3311 kB 5%]
Get:10 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [80.3 kB]
98% [8 Packages store 0 B] [10 Packages 7269 B/80.3 kB 9%]
98% [8 Packages store 0 B]
99% [Working]
99% [9 Packages store 0 B]
99% [Working]
99% [10 Packages store 0 B]
100% [Working]
Fetched 15.7 MB in 2s (7418 kB/s)
Reading package lists... 0%
Reading package lists... 0%
Reading package lists... 0%
Reading package lists... 3%
Reading package lists... 3%
Reading package lists... 4%
Reading package lists... 4%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 52%
Reading package lists... 52%
Reading package lists... 67%
Reading package lists... 67%
Reading package lists... 71%
Reading package lists... 71%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 81%
Reading package lists... 81%
Reading package lists... 96%
Reading package lists... 96%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... Done
↓ 13 lines
0% [Working] Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease 0% [Connecting to security.ubuntu.com (185.125.190.39)] Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] 0% [2 InRelease 5484 B/128 kB 4%] [Connecting to security.ubuntu.com (185.125.1 0% [2 InRelease 41.7 kB/128 kB 33%] [Waiting for headers] 0% [Waiting for headers] Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB] 0% [3 InRelease 6932 B/127 kB 5%] [Waiting for headers] 0% [Waiting for headers] Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB] 0% [4 InRelease 5484 B/129 kB 4%] 0% [4 InRelease 14.2 kB/129 kB 11%] Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [3626 kB] 0% [5 Packages 6999 B/3626 kB 0%] [4 InRelease 14.2 kB/129 kB 11%] 0% [5 Packages 214 kB/3626 kB 6%] [4 InRelease 14.2 kB/129 kB 11%] 0% [4 InRelease 37.3 kB/129 kB 29%] 0% [5 Packages store 0 B] [Waiting for headers] [4 InRelease 38.8 kB/129 kB 30% Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1581 kB] 0% [5 Packages store 0 B] [6 Packages 115 kB/1581 kB 7%] [4 InRelease 43.1 kB/1 0% [5 Packages store 0 B] [4 InRelease 43.1 kB/129 kB 33%] 0% [4 InRelease 79.3 kB/129 kB 62%] 0% [6 Packages store 0 B] [4 InRelease 79.3 kB/129 kB 62%] 0% [4 InRelease 105 kB/129 kB 82%] 0% [Working] 46% [Working] Get:7 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1274 kB] 46% [7 Packages 2655 B/1274 kB 0%] 53% [Working] 53% [7 Packages store 0 B] 53% [Waiting for headers] Get:8 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [5441 kB] 53% [8 Packages 15.7 kB/5441 kB 0%] 68% [8 Packages 2859 kB/5441 kB 53%] Get:9 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [3311 kB] 82% [9 Packages 92.9 kB/3311 kB 3%] 82% [8 Packages store 0 B] [9 Packages 152 kB/3311 kB 5%] Get:10 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [80.3 kB] 98% [8 Packages store 0 B] [10 Packages 7269 B/80.3 kB 9%] 98% [8 Packages store 0 B] 99% [Working] 99% [9 Packages store 0 B] 99% [Working] 99% [10 Packages store 0 B] 100% [Working] Fetched 15.7 MB in 2s (7418 kB/s) Reading package lists... 0% Reading package lists... 0% Reading package lists... 0% Reading package lists... 3% Reading package lists... 3% Reading package lists... 4% Reading package lists... 4% Reading package lists... 42% Reading package lists... 42% Reading package lists... 42% Reading package lists... 42% Reading package lists... 52% Reading package lists... 52% Reading package lists... 67% Reading package lists... 67% Reading package lists... 71% Reading package lists... 71% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 81% Reading package lists... 81% Reading package lists... 96% Reading package lists... 96% Reading package lists... 99% Reading package lists... 99% Reading package lists... 99% Reading package lists... 99% Reading package lists... Done
Show reasoning
Installing dependencies
I'm setting up the installation of dependencies now. I’ll start with the essential packages like build-essential, pkg-config, and some development libraries such as libssl-dev, zlib1g-dev, libbrotli-dev, and libzstd-dev. I might consider adding libnghttp2-dev, but it's optional. Additionally, I’ll install ca-certificates, though that's not strictly necessary either. I’m just making sure I cover my bases here as I proceed!
compile-bench> sudo DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential pkg-config libssl-dev zlib1g-dev libbrotli-dev libzstd-dev
Reading package lists... 0%
Reading package lists... 0%
Reading package lists... 0%
Reading package lists... 3%
Reading package lists... 3%
Reading package lists... 4%
Reading package lists... 4%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 52%
Reading package lists... 52%
Reading package lists... 67%
Reading package lists... 67%
Reading package lists... 71%
Reading package lists... 71%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 81%
Reading package lists... 81%
Reading package lists... 96%
Reading package lists... 96%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... Done
Building dependency tree... 0%
Building dependency tree... 0%
Building dependency tree... 50%
Building dependency tree... 50%
Building dependency tree... 90%
Building dependency tree... Done
Reading state information... 0%
Reading state information... 1%
Reading state information... Done
build-essential is already the newest version (12.9ubuntu3).
The following additional packages will be installed:
libglib2.0-0 libglib2.0-data libicu70 libxml2 shared-mime-info xdg-user-dirs
Suggested packages:
libssl-doc
The following NEW packages will be installed:
libbrotli-dev libglib2.0-0 libglib2.0-data libicu70 libssl-dev libxml2
libzstd-dev pkg-config shared-mime-info xdg-user-dirs zlib1g-dev
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 16.7 MB of archives.
After this operation, 60.5 MB of additional disk space will be used.
0% [Working]
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libglib2.0-0 amd64 2.72.4-0ubuntu2.6 [1467 kB]
0% [1 libglib2.0-0 14.2 kB/1467 kB 1%]
2% [1 libglib2.0-0 514 kB/1467 kB 35%]
9% [Working]
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libglib2.0-data all 2.72.4-0ubuntu2.6 [4698 B]
11% [Waiting for headers]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libicu70 amd64 70.1-2 [10.6 MB]
11% [3 libicu70 15.6 kB/10.6 MB 0%]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libxml2 amd64 2.9.13+dfsg-1ubuntu0.9 [764 kB]
64% [4 libxml2 69.4 kB/764 kB 9%]
69% [Waiting for headers]
Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 shared-mime-info amd64 2.1-2 [454 kB]
69% [5 shared-mime-info 26.5 kB/454 kB 6%]
73% [Waiting for headers]
Get:6 http://archive.ubuntu.com/ubuntu j
[command output truncated]
abase ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 10711 files and directories currently installed.)
Preparing to unpack .../00-libglib2.0-0_2.72.4-0ubuntu2.6_amd64.deb ...
Unpacking libglib2.0-0:amd64 (2.72.4-0ubuntu2.6) ...
Selecting previously unselected package libglib2.0-data.
Preparing to unpack .../01-libglib2.0-data_2.72.4-0ubuntu2.6_all.deb ...
Unpacking libglib2.0-data (2.72.4-0ubuntu2.6) ...
Selecting previously unselected package libicu70:amd64.
Preparing to unpack .../02-libicu70_70.1-2_amd64.deb ...
Unpacking libicu70:amd64 (70.1-2) ...
Selecting previously unselected package libxml2:amd64.
Preparing to unpack .../03-libxml2_2.9.13+dfsg-1ubuntu0.9_amd64.deb ...
Unpacking libxml2:amd64 (2.9.13+dfsg-1ubuntu0.9) ...
Selecting previously unselected package shared-mime-info.
Preparing to unpack .../04-shared-mime-info_2.1-2_amd64.deb ...
Unpacking shared-mime-info (2.1-2) ...
Selecting previously unselected package xdg-user-dirs.
Preparing to unpack .../05-xdg-user-dirs_0.17-2ubuntu4_amd64.deb ...
Unpacking xdg-user-dirs (0.17-2ubuntu4) ...
Selecting previously unselected package libbrotli-dev:amd64.
Preparing to unpack .../06-libbrotli-dev_1.0.9-2build6_amd64.deb ...
Unpacking libbrotli-dev:amd64 (1.0.9-2build6) ...
Selecting previously unselected package libssl-dev:amd64.
Preparing to unpack .../07-libssl-dev_3.0.2-0ubuntu1.19_amd64.deb ...
Unpacking libssl-dev:amd64 (3.0.2-0ubuntu1.19) ...
Selecting previously unselected package libzstd-dev:amd64.
Preparing to unpack .../08-libzstd-dev_1.4.8+dfsg-3build1_amd64.deb ...
Unpacking libzstd-dev:amd64 (1.4.8+dfsg-3build1) ...
Selecting previously unselected package pkg-config.
Preparing to unpack .../09-pkg-config_0.29.2-1ubuntu3_amd64.deb ...
Unpacking pkg-config (0.29.2-1ubuntu3) ...
Selecting previously unselected package zlib1g-dev:amd64.
Preparing to unpack .../10-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu9.2_amd64.deb ...
Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ...
Setting up libzstd-dev:amd64 (1.4.8+dfsg-3build1) ...
Setting up xdg-user-dirs (0.17-2ubuntu4) ...
Setting up libglib2.0-0:amd64 (2.72.4-0ubuntu2.6) ...
No schema files found: doing nothing.
Setting up libglib2.0-data (2.72.4-0ubuntu2.6) ...
Setting up libssl-dev:amd64 (3.0.2-0ubuntu1.19) ...
Setting up pkg-config (0.29.2-1ubuntu3) ...
Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ...
Setting up libbrotli-dev:amd64 (1.0.9-2build6) ...
Setting up libicu70:amd64 (70.1-2) ...
Setting up libxml2:amd64 (2.9.13+dfsg-1ubuntu0.9) ...
Setting up shared-mime-info (2.1-2) ...
Processing triggers for libc-bin (2.35-0ubuntu3.10) ...
↓ 68 lines
Reading package lists... 0% Reading package lists... 0% Reading package lists... 0% Reading package lists... 3% Reading package lists... 3% Reading package lists... 4% Reading package lists... 4% Reading package lists... 42% Reading package lists... 42% Reading package lists... 42% Reading package lists... 42% Reading package lists... 52% Reading package lists... 52% Reading package lists... 67% Reading package lists... 67% Reading package lists... 71% Reading package lists... 71% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 81% Reading package lists... 81% Reading package lists... 96% Reading package lists... 96% Reading package lists... 99% Reading package lists... 99% Reading package lists... 99% Reading package lists... 99% Reading package lists... Done Building dependency tree... 0% Building dependency tree... 0% Building dependency tree... 50% Building dependency tree... 50% Building dependency tree... 90% Building dependency tree... Done Reading state information... 0% Reading state information... 1% Reading state information... Done build-essential is already the newest version (12.9ubuntu3). The following additional packages will be installed: libglib2.0-0 libglib2.0-data libicu70 libxml2 shared-mime-info xdg-user-dirs Suggested packages: libssl-doc The following NEW packages will be installed: libbrotli-dev libglib2.0-0 libglib2.0-data libicu70 libssl-dev libxml2 libzstd-dev pkg-config shared-mime-info xdg-user-dirs zlib1g-dev 0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded. Need to get 16.7 MB of archives. After this operation, 60.5 MB of additional disk space will be used. 0% [Working] Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libglib2.0-0 amd64 2.72.4-0ubuntu2.6 [1467 kB] 0% [1 libglib2.0-0 14.2 kB/1467 kB 1%] 2% [1 libglib2.0-0 514 kB/1467 kB 35%] 9% [Working] Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libglib2.0-data all 2.72.4-0ubuntu2.6 [4698 B] 11% [Waiting for headers] Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libicu70 amd64 70.1-2 [10.6 MB] 11% [3 libicu70 15.6 kB/10.6 MB 0%] Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libxml2 amd64 2.9.13+dfsg-1ubuntu0.9 [764 kB] 64% [4 libxml2 69.4 kB/764 kB 9%] 69% [Waiting for headers] Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 shared-mime-info amd64 2.1-2 [454 kB] 69% [5 shared-mime-info 26.5 kB/454 kB 6%] 73% [Waiting for headers] Get:6 http://archive.ubuntu.com/ubuntu j [command output truncated] abase ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 10711 files and directories currently installed.) Preparing to unpack .../00-libglib2.0-0_2.72.4-0ubuntu2.6_amd64.deb ... Unpacking libglib2.0-0:amd64 (2.72.4-0ubuntu2.6) ... Selecting previously unselected package libglib2.0-data. Preparing to unpack .../01-libglib2.0-data_2.72.4-0ubuntu2.6_all.deb ... Unpacking libglib2.0-data (2.72.4-0ubuntu2.6) ... Selecting previously unselected package libicu70:amd64. Preparing to unpack .../02-libicu70_70.1-2_amd64.deb ... Unpacking libicu70:amd64 (70.1-2) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../03-libxml2_2.9.13+dfsg-1ubuntu0.9_amd64.deb ... Unpacking libxml2:amd64 (2.9.13+dfsg-1ubuntu0.9) ... Selecting previously unselected package shared-mime-info. Preparing to unpack .../04-shared-mime-info_2.1-2_amd64.deb ... Unpacking shared-mime-info (2.1-2) ... Selecting previously unselected package xdg-user-dirs. Preparing to unpack .../05-xdg-user-dirs_0.17-2ubuntu4_amd64.deb ... Unpacking xdg-user-dirs (0.17-2ubuntu4) ... Selecting previously unselected package libbrotli-dev:amd64. Preparing to unpack .../06-libbrotli-dev_1.0.9-2build6_amd64.deb ... Unpacking libbrotli-dev:amd64 (1.0.9-2build6) ... Selecting previously unselected package libssl-dev:amd64. Preparing to unpack .../07-libssl-dev_3.0.2-0ubuntu1.19_amd64.deb ... Unpacking libssl-dev:amd64 (3.0.2-0ubuntu1.19) ... Selecting previously unselected package libzstd-dev:amd64. Preparing to unpack .../08-libzstd-dev_1.4.8+dfsg-3build1_amd64.deb ... Unpacking libzstd-dev:amd64 (1.4.8+dfsg-3build1) ... Selecting previously unselected package pkg-config. Preparing to unpack .../09-pkg-config_0.29.2-1ubuntu3_amd64.deb ... Unpacking pkg-config (0.29.2-1ubuntu3) ... Selecting previously unselected package zlib1g-dev:amd64. Preparing to unpack .../10-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu9.2_amd64.deb ... Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ... Setting up libzstd-dev:amd64 (1.4.8+dfsg-3build1) ... Setting up xdg-user-dirs (0.17-2ubuntu4) ... Setting up libglib2.0-0:amd64 (2.72.4-0ubuntu2.6) ... No schema files found: doing nothing. Setting up libglib2.0-data (2.72.4-0ubuntu2.6) ... Setting up libssl-dev:amd64 (3.0.2-0ubuntu1.19) ... Setting up pkg-config (0.29.2-1ubuntu3) ... Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ... Setting up libbrotli-dev:amd64 (1.0.9-2build6) ... Setting up libicu70:amd64 (70.1-2) ... Setting up libxml2:amd64 (2.9.13+dfsg-1ubuntu0.9) ... Setting up shared-mime-info (2.1-2) ... Processing triggers for libc-bin (2.35-0ubuntu3.10) ...
[empty output]
compile-bench> cd /home/peter/curl-src && ./configure --prefix=/home/peter/result --with-openssl --with-brotli --with-zstd --with-zlib checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports nested variables... yes
checking whether to enable debug build options... no
checking whether to enable compiler optimizer... (assumed) yes
checking whether to enable strict compiler warnings... no
checking whether to enable compiler warnings as errors... no
checking whether to enable curl debug memory tracking... no
checking whether to enable hiding of library internal symbols... yes
checking whether to enable c-ares for DNS lookups... no
checking whether to disable dependency on -lrt... (assumed no)
checking whether to enable HTTPSRR support... no
checking whether to enable ECH support... no
checking whether to enable SSL session export support... no
checking for path separator... :
checking for sed... /usr/bin/sed
checking for grep... /usr/bin/grep
checking that grep -E works... yes
checking for ar... /usr/bin/ar
checking for a BSD-compatible install... /usr/bin/install -c
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for stdatomic.h... yes
checking if _Atomic is available... yes
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for code coverage support... no
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking curl version... 8.16.0
checking for perl... /usr/bin/perl
checking for httpd... no
checking for apache2... no
checking for apxs... no
configure: httpd/apache2 not in PATH, http tests disabled
configure: apxs not in PATH, http tests disabled
checking for danted... no
checking for danted... no
checking for nghttpx... no
checking for caddy... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking if OS is AIX (to define _ALL_SOURCE)... no
checking if _THREAD_SAFE is already defin
[command output truncated]
ibrary is required... no
checking for gethostbyname... yes
checking whether build target is a native Windows one... (cached) no
checking for proto/bsdsocket.h... no
checking for connect in libraries... yes
checking for sys/types.h... (cached) yes
checking for monotonic clock_gettime... yes
checking for clock_gettime in libraries... no additional lib required
checking if monotonic clock_gettime works... yes
checking for sys/types.h... (cached) yes
checking for raw monotonic clock_gettime... yes
checking for pkg-config... /usr/bin/pkg-config
checking for zlib options with pkg-config... found
checking for zlib.h... yes
configure: found both libz and libz.h header
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for libbrotlidec options with pkg-config... found
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for libbrotlicommon options with pkg-config... found
checking for BrotliDecoderDecompress in -lbrotlidec... yes
checking for brotli/decode.h... yes
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for libzstd options with pkg-config... found
checking for ZSTD_createDStream in -lzstd... yes
checking for zstd.h... yes
checking whether to enable IPv6... yes
checking if struct sockaddr_in6 has sin6_scope_id member... yes
checking if argv can be written to... yes
checking if GSS-API support is requested... no
checking whether to enable Windows native SSL/TLS... no
checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for openssl options with pkg-config... found
configure: pkg-config: SSL_LIBS: "-lssl -lcrypto"
configure: pkg-config: SSL_LDFLAGS: ""
configure: pkg-config: SSL_CPPFLAGS: ""
checking for HMAC_Update in -lcrypto... yes
checking for SSL_connect in -lssl... yes
checking for openssl/x509.h... yes
checking for openssl/rsa.h... yes
checking for openssl/crypto.h... yes
checking for openssl/pem.h... yes
checking for openssl/ssl.h... yes
checking for openssl/err.h... yes
checking for BoringSSL... no
checking for AWS-LC... no
checking for LibreSSL... no
checking for OpenSSL >= v3... yes
checking for SSL_set_quic_use_legacy_codepoint... no
checking for SSL_set_quic_tls_cbs... no
configure: OpenSSL version does not speak any known QUIC API
checking for SRP support in OpenSSL... yes
checking for QUIC support and OpenSSL >= 3.3... no
configure: built with one SSL backend
checking default CA cert bundle/path... configure: want unset ca /etc/ssl/certs/ca-certificates.crt
/etc/ssl/certs/ca-certificates.crt
/etc/ssl/certs (capath)
checking whether to use OpenSSL's built-in CA store... no
checking CA cert bundle path to embed in the curl tool... no
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for libpsl options with pkg-config... no
checking for psl_builtin in -lpsl... no
configure: error: libpsl libs and/or directories were not found where specified!
↓ 132 lines
checking whether to enable maintainer-specific portions of Makefiles... no checking whether make supports nested variables... yes checking whether to enable debug build options... no checking whether to enable compiler optimizer... (assumed) yes checking whether to enable strict compiler warnings... no checking whether to enable compiler warnings as errors... no checking whether to enable curl debug memory tracking... no checking whether to enable hiding of library internal symbols... yes checking whether to enable c-ares for DNS lookups... no checking whether to disable dependency on -lrt... (assumed no) checking whether to enable HTTPSRR support... no checking whether to enable ECH support... no checking whether to enable SSL session export support... no checking for path separator... : checking for sed... /usr/bin/sed checking for grep... /usr/bin/grep checking that grep -E works... yes checking for ar... /usr/bin/ar checking for a BSD-compatible install... /usr/bin/install -c checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking how to run the C preprocessor... gcc -E checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for stdatomic.h... yes checking if _Atomic is available... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for code coverage support... no checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of gcc... gcc3 checking curl version... 8.16.0 checking for perl... /usr/bin/perl checking for httpd... no checking for apache2... no checking for apxs... no configure: httpd/apache2 not in PATH, http tests disabled configure: apxs not in PATH, http tests disabled checking for danted... no checking for danted... no checking for nghttpx... no checking for caddy... no checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... /usr/bin/grep -E checking if OS is AIX (to define _ALL_SOURCE)... no checking if _THREAD_SAFE is already defin [command output truncated] ibrary is required... no checking for gethostbyname... yes checking whether build target is a native Windows one... (cached) no checking for proto/bsdsocket.h... no checking for connect in libraries... yes checking for sys/types.h... (cached) yes checking for monotonic clock_gettime... yes checking for clock_gettime in libraries... no additional lib required checking if monotonic clock_gettime works... yes checking for sys/types.h... (cached) yes checking for raw monotonic clock_gettime... yes checking for pkg-config... /usr/bin/pkg-config checking for zlib options with pkg-config... found checking for zlib.h... yes configure: found both libz and libz.h header checking for pkg-config... (cached) /usr/bin/pkg-config checking for libbrotlidec options with pkg-config... found checking for pkg-config... (cached) /usr/bin/pkg-config checking for libbrotlicommon options with pkg-config... found checking for BrotliDecoderDecompress in -lbrotlidec... yes checking for brotli/decode.h... yes checking for pkg-config... (cached) /usr/bin/pkg-config checking for libzstd options with pkg-config... found checking for ZSTD_createDStream in -lzstd... yes checking for zstd.h... yes checking whether to enable IPv6... yes checking if struct sockaddr_in6 has sin6_scope_id member... yes checking if argv can be written to... yes checking if GSS-API support is requested... no checking whether to enable Windows native SSL/TLS... no checking whether to enable Amiga native SSL/TLS (AmiSSL v5)... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for openssl options with pkg-config... found configure: pkg-config: SSL_LIBS: "-lssl -lcrypto" configure: pkg-config: SSL_LDFLAGS: "" configure: pkg-config: SSL_CPPFLAGS: "" checking for HMAC_Update in -lcrypto... yes checking for SSL_connect in -lssl... yes checking for openssl/x509.h... yes checking for openssl/rsa.h... yes checking for openssl/crypto.h... yes checking for openssl/pem.h... yes checking for openssl/ssl.h... yes checking for openssl/err.h... yes checking for BoringSSL... no checking for AWS-LC... no checking for LibreSSL... no checking for OpenSSL >= v3... yes checking for SSL_set_quic_use_legacy_codepoint... no checking for SSL_set_quic_tls_cbs... no configure: OpenSSL version does not speak any known QUIC API checking for SRP support in OpenSSL... yes checking for QUIC support and OpenSSL >= 3.3... no configure: built with one SSL backend checking default CA cert bundle/path... configure: want unset ca /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs (capath) checking whether to use OpenSSL's built-in CA store... no checking CA cert bundle path to embed in the curl tool... no checking for pkg-config... (cached) /usr/bin/pkg-config checking for libpsl options with pkg-config... no checking for psl_builtin in -lpsl... no configure: error: libpsl libs and/or directories were not found where specified!
Show reasoning
Analyzing configure error
I’m looking into the configure error about 'libpsl libs not found.' It seems the system is trying to use libpsl even though we didn’t specifically request it. Actually, libpsl is optional, but the configuration may be defaulting to require it. The 'pkg-config' check is returning 'no,' and it tries built-in options but still fails. I’m wondering if we inadvertently indicated --with-libpsl? Oh, I remember using 'configure --without-libpsl' to skip that. Maybe there’s an environment variable like 'LIBPSL_LDFLAGS' causing issues?Investigating libpsl configuration issue
It seems unlikely, but perhaps the configure script tries to compile with libpsl if it's available. If it's not, it should just move on, so why the error? The issue seems to pop up when the user passes a path with '--with-libpsl', which defaults to 'yes'. According to recent curl config, if there’s no psl_builtin, it should just report that. It’s strange that it’s showing an error instead. Maybe installing 'libpsl-dev' will resolve this and fulfill the dependency. Let's go ahead and do that!
compile-bench> sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libpsl-dev
Reading package lists... 0%
Reading package lists... 0%
Reading package lists... 0%
Reading package lists... 3%
Reading package lists... 3%
Reading package lists... 4%
Reading package lists... 4%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 42%
Reading package lists... 52%
Reading package lists... 52%
Reading package lists... 67%
Reading package lists... 67%
Reading package lists... 71%
Reading package lists... 71%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 72%
Reading package lists... 81%
Reading package lists... 81%
Reading package lists... 96%
Reading package lists... 96%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... 99%
Reading package lists... Done
Building dependency tree... 0%
Building dependency tree... 0%
Building dependency tree... 50%
Building dependency tree... 50%
Building dependency tree... Done
Reading state information... 0%
Reading state information... 1%
Reading state information... Done
The following NEW packages will be installed:
libpsl-dev
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 77.9 kB of archives.
After this operation, 214 kB of additional disk space will be used.
0% [Working]
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libpsl-dev amd64 0.21.0-1.2build2 [77.9 kB]
15% [1 libpsl-dev 14.2 kB/77.9 kB 18%]
100% [Working]
Fetched 77.9 kB in 0s (182 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libpsl-dev:amd64.
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 11295 files and directories currently installed.)
Preparing to unpack .../libpsl-dev_0.21.0-1.2build2_amd64.deb ...
Unpacking libpsl-dev:amd64 (0.21.0-1.2build2) ...
Setting up libpsl-dev:amd64 (0.21.0-1.2build2) ...
↓ 17 lines
Reading package lists... 0% Reading package lists... 0% Reading package lists... 0% Reading package lists... 3% Reading package lists... 3% Reading package lists... 4% Reading package lists... 4% Reading package lists... 42% Reading package lists... 42% Reading package lists... 42% Reading package lists... 42% Reading package lists... 52% Reading package lists... 52% Reading package lists... 67% Reading package lists... 67% Reading package lists... 71% Reading package lists... 71% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 72% Reading package lists... 81% Reading package lists... 81% Reading package lists... 96% Reading package lists... 96% Reading package lists... 99% Reading package lists... 99% Reading package lists... 99% Reading package lists... 99% Reading package lists... Done Building dependency tree... 0% Building dependency tree... 0% Building dependency tree... 50% Building dependency tree... 50% Building dependency tree... Done Reading state information... 0% Reading state information... 1% Reading state information... Done The following NEW packages will be installed: libpsl-dev 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 77.9 kB of archives. After this operation, 214 kB of additional disk space will be used. 0% [Working] Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libpsl-dev amd64 0.21.0-1.2build2 [77.9 kB] 15% [1 libpsl-dev 14.2 kB/77.9 kB 18%] 100% [Working] Fetched 77.9 kB in 0s (182 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpsl-dev:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11295 files and directories currently installed.) Preparing to unpack .../libpsl-dev_0.21.0-1.2build2_amd64.deb ... Unpacking libpsl-dev:amd64 (0.21.0-1.2build2) ... Setting up libpsl-dev:amd64 (0.21.0-1.2build2) ...
compile-bench> cd /home/peter/curl-src && ./configure --prefix=/home/peter/result --with-openssl --with-brotli --with-zstd --with-zlib checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports nested variables... yes
checking whether to enable debug build options... no
checking whether to enable compiler optimizer... (assumed) yes
checking whether to enable strict compiler warnings... no
checking whether to enable compiler warnings as errors... no
checking whether to enable curl debug memory tracking... no
checking whether to enable hiding of library internal symbols... yes
checking whether to enable c-ares for DNS lookups... no
checking whether to disable dependency on -lrt... (assumed no)
checking whether to enable HTTPSRR support... no
checking whether to enable ECH support... no
checking whether to enable SSL session export support... no
checking for path separator... :
checking for sed... /usr/bin/sed
checking for grep... /usr/bin/grep
checking that grep -E works... yes
checking for ar... /usr/bin/ar
checking for a BSD-compatible install... /usr/bin/install -c
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for stdatomic.h... yes
checking if _Atomic is available... yes
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for code coverage support... no
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking curl version... 8.16.0
checking for perl... /usr/bin/perl
checking for httpd... no
checking for apache2... no
checking for apxs... no
configure: httpd/apache2 not in PATH, http tests disabled
configure: apxs not in PATH, http tests disabled
checking for danted... no
checking for danted... no
checking for nghttpx... no
checking for caddy... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking if OS is AIX (to define _ALL_SOURCE)... no
checking if _THREAD_SAFE is already defin
[command output truncated]
Makefile
config.status: creating tests/server/Makefile
config.status: creating tests/libtest/Makefile
config.status: creating tests/unit/Makefile
config.status: creating tests/tunit/Makefile
config.status: creating tests/http/config.ini
config.status: creating tests/http/Makefile
config.status: creating packages/Makefile
config.status: creating packages/vms/Makefile
config.status: creating libcurl.pc
config.status: creating curl-config
config.status: creating lib/curl_config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: Configured to build curl/libcurl:
Host setup: x86_64-pc-linux-gnu
Install prefix: /home/peter/result
Compiler: gcc
CFLAGS: -Werror-implicit-function-declaration -O2 -Wno-system-headers
CFLAGS extras:
CPPFLAGS: -D_GNU_SOURCE
LDFLAGS:
curl-config:
LIBS: -lpsl -lssl -lcrypto -lssl -lcrypto -lzstd -lzstd -lbrotlidec -lbrotlidec -lbrotlicommon -lz
curl version: 8.16.0
SSL: enabled (OpenSSL v3+)
SSH: no (--with-{libssh,libssh2})
zlib: enabled
brotli: enabled (libbrotlidec)
zstd: enabled (libzstd)
GSS-API: no (--with-gssapi)
GSASL: no (libgsasl not found)
TLS-SRP: enabled
resolver: POSIX threaded
IPv6: enabled
Unix sockets: enabled
IDN: no (--with-{libidn2,winidn})
Build docs: enabled (--disable-docs)
Build libcurl: Shared=yes, Static=yes
Built-in manual: enabled
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors: enabled (--disable-verbose)
Code coverage: disabled
SSPI: no (--enable-sspi)
ca cert bundle: /etc/ssl/certs/ca-certificates.crt
ca cert path: /etc/ssl/certs
ca cert embed: no
ca fallback: no
LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib)
LDAPS: no (--enable-ldaps)
IPFS/IPNS: enabled
RTSP: enabled
RTMP: no (--with-librtmp)
PSL: enabled
Alt-svc: enabled (--disable-alt-svc)
Headers API: enabled (--disable-headers-api)
HSTS: enabled (--disable-hsts)
HTTP1: enabled (internal)
HTTP2: no (--with-nghttp2)
HTTP3: no (--with-ngtcp2 --with-nghttp3, --with-quiche, --with-openssl-quic)
ECH: no (--enable-ech)
HTTPS RR: no (--enable-httpsrr)
SSLS-EXPORT: no (--enable-ssls-export)
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd
↓ 136 lines
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports nested variables... yes
checking whether to enable debug build options... no
checking whether to enable compiler optimizer... (assumed) yes
checking whether to enable strict compiler warnings... no
checking whether to enable compiler warnings as errors... no
checking whether to enable curl debug memory tracking... no
checking whether to enable hiding of library internal symbols... yes
checking whether to enable c-ares for DNS lookups... no
checking whether to disable dependency on -lrt... (assumed no)
checking whether to enable HTTPSRR support... no
checking whether to enable ECH support... no
checking whether to enable SSL session export support... no
checking for path separator... :
checking for sed... /usr/bin/sed
checking for grep... /usr/bin/grep
checking that grep -E works... yes
checking for ar... /usr/bin/ar
checking for a BSD-compatible install... /usr/bin/install -c
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for stdatomic.h... yes
checking if _Atomic is available... yes
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for code coverage support... no
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking curl version... 8.16.0
checking for perl... /usr/bin/perl
checking for httpd... no
checking for apache2... no
checking for apxs... no
configure: httpd/apache2 not in PATH, http tests disabled
configure: apxs not in PATH, http tests disabled
checking for danted... no
checking for danted... no
checking for nghttpx... no
checking for caddy... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking if OS is AIX (to define _ALL_SOURCE)... no
checking if _THREAD_SAFE is already defin
[command output truncated]
Makefile
config.status: creating tests/server/Makefile
config.status: creating tests/libtest/Makefile
config.status: creating tests/unit/Makefile
config.status: creating tests/tunit/Makefile
config.status: creating tests/http/config.ini
config.status: creating tests/http/Makefile
config.status: creating packages/Makefile
config.status: creating packages/vms/Makefile
config.status: creating libcurl.pc
config.status: creating curl-config
config.status: creating lib/curl_config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: Configured to build curl/libcurl:
Host setup: x86_64-pc-linux-gnu
Install prefix: /home/peter/result
Compiler: gcc
CFLAGS: -Werror-implicit-function-declaration -O2 -Wno-system-headers
CFLAGS extras:
CPPFLAGS: -D_GNU_SOURCE
LDFLAGS:
curl-config:
LIBS: -lpsl -lssl -lcrypto -lssl -lcrypto -lzstd -lzstd -lbrotlidec -lbrotlidec -lbrotlicommon -lz
curl version: 8.16.0
SSL: enabled (OpenSSL v3+)
SSH: no (--with-{libssh,libssh2})
zlib: enabled
brotli: enabled (libbrotlidec)
zstd: enabled (libzstd)
GSS-API: no (--with-gssapi)
GSASL: no (libgsasl not found)
TLS-SRP: enabled
resolver: POSIX threaded
IPv6: enabled
Unix sockets: enabled
IDN: no (--with-{libidn2,winidn})
Build docs: enabled (--disable-docs)
Build libcurl: Shared=yes, Static=yes
Built-in manual: enabled
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors: enabled (--disable-verbose)
Code coverage: disabled
SSPI: no (--enable-sspi)
ca cert bundle: /etc/ssl/certs/ca-certificates.crt
ca cert path: /etc/ssl/certs
ca cert embed: no
ca fallback: no
LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib)
LDAPS: no (--enable-ldaps)
IPFS/IPNS: enabled
RTSP: enabled
RTMP: no (--with-librtmp)
PSL: enabled
Alt-svc: enabled (--disable-alt-svc)
Headers API: enabled (--disable-headers-api)
HSTS: enabled (--disable-hsts)
HTTP1: enabled (internal)
HTTP2: no (--with-nghttp2)
HTTP3: no (--with-ngtcp2 --with-nghttp3, --with-quiche, --with-openssl-quic)
ECH: no (--enable-ech)
HTTPS RR: no (--enable-httpsrr)
SSLS-EXPORT: no (--enable-ssls-export)
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd
Show reasoning
Reviewing configuration details
The configuration shows that everything is set up correctly. SSL is enabled, indicating support for OpenSSL 3 and TLS 1.3, which is great for security. Additionally, zlib, brotli, and zstd are all enabled. So, I have a strong feature set here with brotli, libz, zstd, and SSL included. This should provide solid performance and compression options! I'm satisfied with how it's looking!
compile-bench> cd /home/peter/curl-src && make -j"$(nproc)" Making all in lib
make[1]: Entering directory '/home/peter/curl-src/lib'
make all-am
make[2]: Entering directory '/home/peter/curl-src/lib'
CC libcurl_la-altsvc.lo
CC libcurl_la-amigaos.lo
CC libcurl_la-asyn-ares.lo
CC libcurl_la-asyn-base.lo
CC libcurl_la-asyn-thrdd.lo
CC libcurl_la-bufq.lo
CC libcurl_la-bufref.lo
CC libcurl_la-cf-h1-proxy.lo
CC libcurl_la-cf-h2-proxy.lo
CC libcurl_la-cf-haproxy.lo
CC libcurl_la-cf-https-connect.lo
CC libcurl_la-cf-ip-happy.lo
CC libcurl_la-cf-socket.lo
CC libcurl_la-cfilters.lo
CC libcurl_la-conncache.lo
CC libcurl_la-connect.lo
CC libcurl_la-content_encoding.lo
CC libcurl_la-cookie.lo
CC libcurl_la-cshutdn.lo
CC libcurl_la-curl_addrinfo.lo
CC libcurl_la-curl_des.lo
CC libcurl_la-curl_endian.lo
CC libcurl_la-curl_fnmatch.lo
CC libcurl_la-curl_get_line.lo
CC libcurl_la-curl_gethostname.lo
CC libcurl_la-curl_gssapi.lo
CC libcurl_la-curl_memrchr.lo
CC libcurl_la-curl_ntlm_core.lo
CC libcurl_la-curl_range.lo
CC libcurl_la-curl_rtmp.lo
CC libcurl_la-curl_sasl.lo
CC libcurl_la-curl_sha512_256.lo
CC libcurl_la-curl_sspi.lo
CC libcurl_la-curl_threads.lo
CC libcurl_la-curl_trc.lo
CC libcurl_la-cw-out.lo
CC libcurl_la-cw-pause.lo
CC libcurl_la-dict.lo
CC libcurl_la-doh.lo
CC libcurl_la-dynhds.lo
CC libcurl_la-easy.lo
CC libcurl_la-easygetopt.lo
CC libcurl_la-easyoptions.lo
CC libcurl_la-escape.lo
CC libcurl_la-fake_addrinfo.lo
CC libcurl_la-file.lo
CC libcurl_la-fileinfo.lo
CC libcurl_la-fopen.lo
CC libcurl_la-formdata.lo
CC libcurl_la-ftp.lo
CC libcurl_la-ftplistparser.lo
CC libcurl_la-getenv.lo
CC libcurl_la-getinfo.lo
CC libcurl_la-gopher.lo
CC libcurl_la-hash.lo
CC libcurl_la-headers.lo
CC libcurl_la-hmac.lo
CC libcurl_la-hostip.lo
CC libcurl_la-hostip4.lo
CC libcurl_la-hostip6.lo
CC libcurl_la-hsts.lo
CC libcurl_la-http.lo
CC libcurl_la-http1.lo
CC libcurl_la-http2.lo
CC libcurl_la-http_aws_sigv4.lo
CC libcurl_la-http_chunks.lo
[command output truncated]
CC ../lib/curlx/curl-wait.o
CC ../lib/curlx/curl-warnless.o
CC curlinfo.o
CC libcurltool_la-config2setopts.lo
CC libcurltool_la-slist_wc.lo
CC libcurltool_la-terminal.lo
CC libcurltool_la-tool_bname.lo
CC libcurltool_la-tool_cb_dbg.lo
CC libcurltool_la-tool_cb_hdr.lo
CC libcurltool_la-tool_cb_prg.lo
CC libcurltool_la-tool_cb_rea.lo
CC libcurltool_la-tool_cb_see.lo
CC libcurltool_la-tool_cb_soc.lo
CC libcurltool_la-tool_cb_wrt.lo
CC libcurltool_la-tool_cfgable.lo
CC libcurltool_la-tool_dirhie.lo
CC libcurltool_la-tool_doswin.lo
CC libcurltool_la-tool_easysrc.lo
CC libcurltool_la-tool_filetime.lo
CC libcurltool_la-tool_findfile.lo
CC libcurltool_la-tool_formparse.lo
CC libcurltool_la-tool_getparam.lo
CC libcurltool_la-tool_getpass.lo
CC libcurltool_la-tool_help.lo
CC libcurltool_la-tool_helpers.lo
CC libcurltool_la-tool_ipfs.lo
CC libcurltool_la-tool_libinfo.lo
CC libcurltool_la-tool_listhelp.lo
CC libcurltool_la-tool_main.lo
CC libcurltool_la-tool_msgs.lo
CC libcurltool_la-tool_operate.lo
CC libcurltool_la-tool_operhlp.lo
CC libcurltool_la-tool_paramhlp.lo
CC libcurltool_la-tool_parsecfg.lo
CC libcurltool_la-tool_progress.lo
CC libcurltool_la-tool_setopt.lo
CC libcurltool_la-tool_ssls.lo
CC libcurltool_la-tool_stderr.lo
CC libcurltool_la-tool_strdup.lo
CC libcurltool_la-tool_urlglob.lo
CC libcurltool_la-tool_util.lo
CC libcurltool_la-tool_vms.lo
CC libcurltool_la-tool_writeout.lo
CC libcurltool_la-tool_writeout_json.lo
CC libcurltool_la-tool_xattr.lo
CC libcurltool_la-var.lo
CC ../lib/curlx/libcurltool_la-base64.lo
CC ../lib/curlx/libcurltool_la-multibyte.lo
CC ../lib/curlx/libcurltool_la-dynbuf.lo
CC ../lib/curlx/libcurltool_la-nonblock.lo
CC ../lib/curlx/libcurltool_la-strparse.lo
CC ../lib/curlx/libcurltool_la-timediff.lo
CC ../lib/curlx/libcurltool_la-timeval.lo
CC ../lib/curlx/libcurltool_la-version_win32.lo
CC ../lib/curlx/libcurltool_la-wait.lo
CC ../lib/curlx/libcurltool_la-warnless.lo
CC curl-tool_hugehelp.o
CC curl-tool_ca_embed.o
CCLD curlinfo
CCLD curl
CCLD libcurltool.la
make[1]: Leaving directory '/home/peter/curl-src/src'
Making all in scripts
make[1]: Entering directory '/home/peter/curl-src/scripts'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/peter/curl-src/scripts'
make[1]: Entering directory '/home/peter/curl-src'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/peter/curl-src'
↓ 141 lines
Making all in lib make[1]: Entering directory '/home/peter/curl-src/lib' make all-am make[2]: Entering directory '/home/peter/curl-src/lib' CC libcurl_la-altsvc.lo CC libcurl_la-amigaos.lo CC libcurl_la-asyn-ares.lo CC libcurl_la-asyn-base.lo CC libcurl_la-asyn-thrdd.lo CC libcurl_la-bufq.lo CC libcurl_la-bufref.lo CC libcurl_la-cf-h1-proxy.lo CC libcurl_la-cf-h2-proxy.lo CC libcurl_la-cf-haproxy.lo CC libcurl_la-cf-https-connect.lo CC libcurl_la-cf-ip-happy.lo CC libcurl_la-cf-socket.lo CC libcurl_la-cfilters.lo CC libcurl_la-conncache.lo CC libcurl_la-connect.lo CC libcurl_la-content_encoding.lo CC libcurl_la-cookie.lo CC libcurl_la-cshutdn.lo CC libcurl_la-curl_addrinfo.lo CC libcurl_la-curl_des.lo CC libcurl_la-curl_endian.lo CC libcurl_la-curl_fnmatch.lo CC libcurl_la-curl_get_line.lo CC libcurl_la-curl_gethostname.lo CC libcurl_la-curl_gssapi.lo CC libcurl_la-curl_memrchr.lo CC libcurl_la-curl_ntlm_core.lo CC libcurl_la-curl_range.lo CC libcurl_la-curl_rtmp.lo CC libcurl_la-curl_sasl.lo CC libcurl_la-curl_sha512_256.lo CC libcurl_la-curl_sspi.lo CC libcurl_la-curl_threads.lo CC libcurl_la-curl_trc.lo CC libcurl_la-cw-out.lo CC libcurl_la-cw-pause.lo CC libcurl_la-dict.lo CC libcurl_la-doh.lo CC libcurl_la-dynhds.lo CC libcurl_la-easy.lo CC libcurl_la-easygetopt.lo CC libcurl_la-easyoptions.lo CC libcurl_la-escape.lo CC libcurl_la-fake_addrinfo.lo CC libcurl_la-file.lo CC libcurl_la-fileinfo.lo CC libcurl_la-fopen.lo CC libcurl_la-formdata.lo CC libcurl_la-ftp.lo CC libcurl_la-ftplistparser.lo CC libcurl_la-getenv.lo CC libcurl_la-getinfo.lo CC libcurl_la-gopher.lo CC libcurl_la-hash.lo CC libcurl_la-headers.lo CC libcurl_la-hmac.lo CC libcurl_la-hostip.lo CC libcurl_la-hostip4.lo CC libcurl_la-hostip6.lo CC libcurl_la-hsts.lo CC libcurl_la-http.lo CC libcurl_la-http1.lo CC libcurl_la-http2.lo CC libcurl_la-http_aws_sigv4.lo CC libcurl_la-http_chunks.lo [command output truncated] CC ../lib/curlx/curl-wait.o CC ../lib/curlx/curl-warnless.o CC curlinfo.o CC libcurltool_la-config2setopts.lo CC libcurltool_la-slist_wc.lo CC libcurltool_la-terminal.lo CC libcurltool_la-tool_bname.lo CC libcurltool_la-tool_cb_dbg.lo CC libcurltool_la-tool_cb_hdr.lo CC libcurltool_la-tool_cb_prg.lo CC libcurltool_la-tool_cb_rea.lo CC libcurltool_la-tool_cb_see.lo CC libcurltool_la-tool_cb_soc.lo CC libcurltool_la-tool_cb_wrt.lo CC libcurltool_la-tool_cfgable.lo CC libcurltool_la-tool_dirhie.lo CC libcurltool_la-tool_doswin.lo CC libcurltool_la-tool_easysrc.lo CC libcurltool_la-tool_filetime.lo CC libcurltool_la-tool_findfile.lo CC libcurltool_la-tool_formparse.lo CC libcurltool_la-tool_getparam.lo CC libcurltool_la-tool_getpass.lo CC libcurltool_la-tool_help.lo CC libcurltool_la-tool_helpers.lo CC libcurltool_la-tool_ipfs.lo CC libcurltool_la-tool_libinfo.lo CC libcurltool_la-tool_listhelp.lo CC libcurltool_la-tool_main.lo CC libcurltool_la-tool_msgs.lo CC libcurltool_la-tool_operate.lo CC libcurltool_la-tool_operhlp.lo CC libcurltool_la-tool_paramhlp.lo CC libcurltool_la-tool_parsecfg.lo CC libcurltool_la-tool_progress.lo CC libcurltool_la-tool_setopt.lo CC libcurltool_la-tool_ssls.lo CC libcurltool_la-tool_stderr.lo CC libcurltool_la-tool_strdup.lo CC libcurltool_la-tool_urlglob.lo CC libcurltool_la-tool_util.lo CC libcurltool_la-tool_vms.lo CC libcurltool_la-tool_writeout.lo CC libcurltool_la-tool_writeout_json.lo CC libcurltool_la-tool_xattr.lo CC libcurltool_la-var.lo CC ../lib/curlx/libcurltool_la-base64.lo CC ../lib/curlx/libcurltool_la-multibyte.lo CC ../lib/curlx/libcurltool_la-dynbuf.lo CC ../lib/curlx/libcurltool_la-nonblock.lo CC ../lib/curlx/libcurltool_la-strparse.lo CC ../lib/curlx/libcurltool_la-timediff.lo CC ../lib/curlx/libcurltool_la-timeval.lo CC ../lib/curlx/libcurltool_la-version_win32.lo CC ../lib/curlx/libcurltool_la-wait.lo CC ../lib/curlx/libcurltool_la-warnless.lo CC curl-tool_hugehelp.o CC curl-tool_ca_embed.o CCLD curlinfo CCLD curl CCLD libcurltool.la make[1]: Leaving directory '/home/peter/curl-src/src' Making all in scripts make[1]: Entering directory '/home/peter/curl-src/scripts' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/peter/curl-src/scripts' make[1]: Entering directory '/home/peter/curl-src' make[1]: Nothing to be done for 'all-am'. make[1]: Leaving directory '/home/peter/curl-src'
compile-bench> cd /home/peter/curl-src && make install Making install in lib
make[1]: Entering directory '/home/peter/curl-src/lib'
make[2]: Entering directory '/home/peter/curl-src/lib'
/usr/bin/mkdir -p '/home/peter/result/lib'
/bin/bash ../libtool --mode=install /usr/bin/install -c libcurl.la '/home/peter/result/lib'
libtool: install: /usr/bin/install -c .libs/libcurl.so.4.8.0 /home/peter/result/lib/libcurl.so.4.8.0
libtool: install: (cd /home/peter/result/lib && { ln -s -f libcurl.so.4.8.0 libcurl.so.4 || { rm -f libcurl.so.4 && ln -s libcurl.so.4.8.0 libcurl.so.4; }; })
libtool: install: (cd /home/peter/result/lib && { ln -s -f libcurl.so.4.8.0 libcurl.so || { rm -f libcurl.so && ln -s libcurl.so.4.8.0 libcurl.so; }; })
libtool: install: /usr/bin/install -c .libs/libcurl.lai /home/peter/result/lib/libcurl.la
libtool: install: /usr/bin/install -c .libs/libcurl.a /home/peter/result/lib/libcurl.a
libtool: install: chmod 644 /home/peter/result/lib/libcurl.a
libtool: install: ranlib /home/peter/result/lib/libcurl.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /home/peter/result/lib
----------------------------------------------------------------------
Libraries have been installed in:
/home/peter/result/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/peter/curl-src/lib'
make[1]: Leaving directory '/home/peter/curl-src/lib'
Making install in docs
make[1]: Entering directory '/home/peter/curl-src/docs'
Making install in .
make[2]: Entering directory '/home/peter/curl-src/docs'
make[3]: Entering directory '/home/peter/curl-src/docs'
make[3]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/home/peter/result/share/man/man1'
/usr/bin/install -c -m 644 curl-config.1 wcurl.1 '/home/peter/result/share/man/man1'
make[3]: Leaving directory '/home/peter/curl-src/docs'
make[2]: Leaving directory '/home/peter/curl-src/docs'
Making install in cmdline-opts
make[2]: Entering directory '/home/peter/curl-src/docs/cmdline-opts'
make[3]: Entering directory '/home/peter/curl-src/docs/cmdline-opts'
make[3]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/home/peter/result/share/man/man1'
/usr/bin/install -c -m 644 curl.1 '
[command output truncated]
hare/man/man3'
make[6]: Leaving directory '/home/peter/curl-src/docs/libcurl/opts'
make[5]: Leaving directory '/home/peter/curl-src/docs/libcurl/opts'
make[5]: Entering directory '/home/peter/curl-src/docs/libcurl'
make[6]: Entering directory '/home/peter/curl-src/docs/libcurl'
make[6]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/home/peter/result/share/aclocal'
/usr/bin/install -c -m 644 libcurl.m4 '/home/peter/result/share/aclocal'
/usr/bin/mkdir -p '/home/peter/result/share/man/man3'
/usr/bin/install -c -m 644 curl_easy_cleanup.3 curl_easy_duphandle.3 curl_easy_escape.3 curl_easy_getinfo.3 curl_easy_header.3 curl_easy_init.3 curl_easy_nextheader.3 curl_easy_option_by_id.3 curl_easy_option_by_name.3 curl_easy_option_next.3 curl_easy_pause.3 curl_easy_perform.3 curl_easy_recv.3 curl_easy_reset.3 curl_easy_send.3 curl_easy_setopt.3 curl_easy_ssls_export.3 curl_easy_ssls_import.3 curl_easy_strerror.3 curl_easy_unescape.3 curl_easy_upkeep.3 curl_escape.3 curl_formadd.3 curl_formfree.3 curl_formget.3 curl_free.3 curl_getdate.3 curl_getenv.3 curl_global_cleanup.3 curl_global_init.3 curl_global_init_mem.3 curl_global_sslset.3 curl_global_trace.3 curl_mime_addpart.3 curl_mime_data.3 curl_mime_data_cb.3 curl_mime_encoder.3 curl_mime_filedata.3 curl_mime_filename.3 curl_mime_free.3 '/home/peter/result/share/man/man3'
/usr/bin/install -c -m 644 curl_mime_headers.3 curl_mime_init.3 curl_mime_name.3 curl_mime_subparts.3 curl_mime_type.3 curl_mprintf.3 curl_multi_add_handle.3 curl_multi_assign.3 curl_multi_cleanup.3 curl_multi_fdset.3 curl_multi_get_handles.3 curl_multi_get_offt.3 curl_multi_info_read.3 curl_multi_init.3 curl_multi_perform.3 curl_multi_poll.3 curl_multi_remove_handle.3 curl_multi_setopt.3 curl_multi_socket.3 curl_multi_socket_action.3 curl_multi_socket_all.3 curl_multi_strerror.3 curl_multi_timeout.3 curl_multi_wait.3 curl_multi_waitfds.3 curl_multi_wakeup.3 curl_pushheader_byname.3 curl_pushheader_bynum.3 curl_share_cleanup.3 curl_share_init.3 curl_share_setopt.3 curl_share_strerror.3 curl_slist_append.3 curl_slist_free_all.3 curl_strequal.3 curl_strnequal.3 curl_unescape.3 curl_url.3 curl_url_cleanup.3 curl_url_dup.3 '/home/peter/result/share/man/man3'
/usr/bin/install -c -m 644 curl_url_get.3 curl_url_set.3 curl_url_strerror.3 curl_version.3 curl_version_info.3 curl_ws_meta.3 curl_ws_recv.3 curl_ws_send.3 curl_ws_start_frame.3 libcurl-easy.3 libcurl-env-dbg.3 libcurl-env.3 libcurl-errors.3 libcurl-multi.3 libcurl-security.3 libcurl-share.3 libcurl-symbols.3 libcurl-thread.3 libcurl-tutorial.3 libcurl-url.3 libcurl-ws.3 libcurl.3 '/home/peter/result/share/man/man3'
make[6]: Leaving directory '/home/peter/curl-src/docs/libcurl'
make[5]: Leaving directory '/home/peter/curl-src/docs/libcurl'
make[4]: Leaving directory '/home/peter/curl-src/docs/libcurl'
make[3]: Leaving directory '/home/peter/curl-src'
make[2]: Leaving directory '/home/peter/curl-src'
make[1]: Leaving directory '/home/peter/curl-src'
↓ 70 lines
Making install in lib
make[1]: Entering directory '/home/peter/curl-src/lib'
make[2]: Entering directory '/home/peter/curl-src/lib'
/usr/bin/mkdir -p '/home/peter/result/lib'
/bin/bash ../libtool --mode=install /usr/bin/install -c libcurl.la '/home/peter/result/lib'
libtool: install: /usr/bin/install -c .libs/libcurl.so.4.8.0 /home/peter/result/lib/libcurl.so.4.8.0
libtool: install: (cd /home/peter/result/lib && { ln -s -f libcurl.so.4.8.0 libcurl.so.4 || { rm -f libcurl.so.4 && ln -s libcurl.so.4.8.0 libcurl.so.4; }; })
libtool: install: (cd /home/peter/result/lib && { ln -s -f libcurl.so.4.8.0 libcurl.so || { rm -f libcurl.so && ln -s libcurl.so.4.8.0 libcurl.so; }; })
libtool: install: /usr/bin/install -c .libs/libcurl.lai /home/peter/result/lib/libcurl.la
libtool: install: /usr/bin/install -c .libs/libcurl.a /home/peter/result/lib/libcurl.a
libtool: install: chmod 644 /home/peter/result/lib/libcurl.a
libtool: install: ranlib /home/peter/result/lib/libcurl.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /home/peter/result/lib
----------------------------------------------------------------------
Libraries have been installed in:
/home/peter/result/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/peter/curl-src/lib'
make[1]: Leaving directory '/home/peter/curl-src/lib'
Making install in docs
make[1]: Entering directory '/home/peter/curl-src/docs'
Making install in .
make[2]: Entering directory '/home/peter/curl-src/docs'
make[3]: Entering directory '/home/peter/curl-src/docs'
make[3]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/home/peter/result/share/man/man1'
/usr/bin/install -c -m 644 curl-config.1 wcurl.1 '/home/peter/result/share/man/man1'
make[3]: Leaving directory '/home/peter/curl-src/docs'
make[2]: Leaving directory '/home/peter/curl-src/docs'
Making install in cmdline-opts
make[2]: Entering directory '/home/peter/curl-src/docs/cmdline-opts'
make[3]: Entering directory '/home/peter/curl-src/docs/cmdline-opts'
make[3]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/home/peter/result/share/man/man1'
/usr/bin/install -c -m 644 curl.1 '
[command output truncated]
hare/man/man3'
make[6]: Leaving directory '/home/peter/curl-src/docs/libcurl/opts'
make[5]: Leaving directory '/home/peter/curl-src/docs/libcurl/opts'
make[5]: Entering directory '/home/peter/curl-src/docs/libcurl'
make[6]: Entering directory '/home/peter/curl-src/docs/libcurl'
make[6]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/home/peter/result/share/aclocal'
/usr/bin/install -c -m 644 libcurl.m4 '/home/peter/result/share/aclocal'
/usr/bin/mkdir -p '/home/peter/result/share/man/man3'
/usr/bin/install -c -m 644 curl_easy_cleanup.3 curl_easy_duphandle.3 curl_easy_escape.3 curl_easy_getinfo.3 curl_easy_header.3 curl_easy_init.3 curl_easy_nextheader.3 curl_easy_option_by_id.3 curl_easy_option_by_name.3 curl_easy_option_next.3 curl_easy_pause.3 curl_easy_perform.3 curl_easy_recv.3 curl_easy_reset.3 curl_easy_send.3 curl_easy_setopt.3 curl_easy_ssls_export.3 curl_easy_ssls_import.3 curl_easy_strerror.3 curl_easy_unescape.3 curl_easy_upkeep.3 curl_escape.3 curl_formadd.3 curl_formfree.3 curl_formget.3 curl_free.3 curl_getdate.3 curl_getenv.3 curl_global_cleanup.3 curl_global_init.3 curl_global_init_mem.3 curl_global_sslset.3 curl_global_trace.3 curl_mime_addpart.3 curl_mime_data.3 curl_mime_data_cb.3 curl_mime_encoder.3 curl_mime_filedata.3 curl_mime_filename.3 curl_mime_free.3 '/home/peter/result/share/man/man3'
/usr/bin/install -c -m 644 curl_mime_headers.3 curl_mime_init.3 curl_mime_name.3 curl_mime_subparts.3 curl_mime_type.3 curl_mprintf.3 curl_multi_add_handle.3 curl_multi_assign.3 curl_multi_cleanup.3 curl_multi_fdset.3 curl_multi_get_handles.3 curl_multi_get_offt.3 curl_multi_info_read.3 curl_multi_init.3 curl_multi_perform.3 curl_multi_poll.3 curl_multi_remove_handle.3 curl_multi_setopt.3 curl_multi_socket.3 curl_multi_socket_action.3 curl_multi_socket_all.3 curl_multi_strerror.3 curl_multi_timeout.3 curl_multi_wait.3 curl_multi_waitfds.3 curl_multi_wakeup.3 curl_pushheader_byname.3 curl_pushheader_bynum.3 curl_share_cleanup.3 curl_share_init.3 curl_share_setopt.3 curl_share_strerror.3 curl_slist_append.3 curl_slist_free_all.3 curl_strequal.3 curl_strnequal.3 curl_unescape.3 curl_url.3 curl_url_cleanup.3 curl_url_dup.3 '/home/peter/result/share/man/man3'
/usr/bin/install -c -m 644 curl_url_get.3 curl_url_set.3 curl_url_strerror.3 curl_version.3 curl_version_info.3 curl_ws_meta.3 curl_ws_recv.3 curl_ws_send.3 curl_ws_start_frame.3 libcurl-easy.3 libcurl-env-dbg.3 libcurl-env.3 libcurl-errors.3 libcurl-multi.3 libcurl-security.3 libcurl-share.3 libcurl-symbols.3 libcurl-thread.3 libcurl-tutorial.3 libcurl-url.3 libcurl-ws.3 libcurl.3 '/home/peter/result/share/man/man3'
make[6]: Leaving directory '/home/peter/curl-src/docs/libcurl'
make[5]: Leaving directory '/home/peter/curl-src/docs/libcurl'
make[4]: Leaving directory '/home/peter/curl-src/docs/libcurl'
make[3]: Leaving directory '/home/peter/curl-src'
make[2]: Leaving directory '/home/peter/curl-src'
make[1]: Leaving directory '/home/peter/curl-src'
compile-bench> ln -sfn /home/peter/result/bin/curl /home/peter/result/curl && /home/peter/result/curl --version curl 8.16.0 (x86_64-pc-linux-gnu) libcurl/8.16.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libpsl/0.21.0
Release-Date: 2025-09-10
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd
↓ 5 lines
curl 8.16.0 (x86_64-pc-linux-gnu) libcurl/8.16.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libpsl/0.21.0 Release-Date: 2025-09-10 Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss Features: alt-svc AsynchDNS brotli HSTS HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd
curl: unknown --write-out variable: 'ssl_version'
compile-bench> /home/peter/result/bin/curl --tlsv1.3 -I https://example.com -v 2>&1 | grep -i TLSv1.3 || true * TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / id-ecPublicKey
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
↓ 12 lines
* TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.3 (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / id-ecPublicKey * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
compile-bench> readlink -f /home/peter/result/curl && ls -l /home/peter/result/curl && /home/peter/result/curl --version | sed -n '1p;$p' /home/peter/result/bin/curl
lrwxrwxrwx 1 peter peter 27 Sep 16 21:31 /home/peter/result/curl -> /home/peter/result/bin/curl
curl 8.16.0 (x86_64-pc-linux-gnu) libcurl/8.16.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libpsl/0.21.0
Features: alt-svc AsynchDNS brotli HSTS HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd
↓ 5 lines
/home/peter/result/bin/curl lrwxrwxrwx 1 peter peter 27 Sep 16 21:31 /home/peter/result/curl -> /home/peter/result/bin/curl curl 8.16.0 (x86_64-pc-linux-gnu) libcurl/8.16.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libpsl/0.21.0 Features: alt-svc AsynchDNS brotli HSTS HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd
Show reasoning
Finalizing installation steps
I ran apt-get update without the -y option, which is okay because it prompted for confirmation. But for the installation, I did use -y with apt-get install, so that’s good. Now I’m just ensuring everything is finalized correctly. Overall, things seem to be going smoothly, and I've got all the necessary steps covered! I’m feeling confident about wrapping this up nicely.
I built curl 8.16.0 from /home/peter/curl.tar.gz with the requested features and installed it into /home/peter/result.
What I did:
- Installed build dependencies (non-interactive): build-essential, pkg-config, libssl-dev, zlib1g-dev, libbrotli-dev, libzstd-dev, libpsl-dev
- Extracted to /home/peter/curl-src
- Configured with OpenSSL, brotli, zlib, and zstd: ./configure --prefix=/home/peter/result --with-openssl --with-brotli --with-zstd --with-zlib
- Built and installed: make -j"$(nproc)" && make install
- Created symlink: ln -sfn /home/peter/result/bin/curl /home/peter/result/curl
Verification:
- Symlink points to the binary:
/home/peter/result/curl -> /home/peter/result/bin/curl
- Version/features confirm SSL (OpenSSL), brotli, zlib, zstd:
curl 8.16.0 (x86_64-pc-linux-gnu) libcurl/8.16.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libpsl/0.21.0
Features: ... brotli ... libz ... SSL ... zstd
- TLS v1.3 works (handshake confirmed):
curl --tlsv1.3 -I https://example.com
Shows “SSL connection using TLSv1.3 …” in verbose output.
Paths:
- Install prefix: /home/peter/result
- Binary: /home/peter/result/bin/curl
- Convenience symlink: /home/peter/result/curl
Let me know if you want it built with additional options (e.g., HTTP/2 or HTTP/3).