Skip to content

build: add libcurl-dev to Dockerfiles#172

Merged
timosachsenberg merged 1 commit intomasterfrom
feature/add-libcurl-dependency
Mar 6, 2026
Merged

build: add libcurl-dev to Dockerfiles#172
timosachsenberg merged 1 commit intomasterfrom
feature/add-libcurl-dependency

Conversation

@timosachsenberg
Copy link
Contributor

@timosachsenberg timosachsenberg commented Mar 5, 2026

OpenMS core library now uses libcurl instead of Qt Network for HTTP operations. Add the development packages so the build can find curl headers and libraries.

Summary by CodeRabbit

  • Chores
    • Updated build dependencies to support the build environment.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 5, 2026

📝 Walkthrough

Walkthrough

The pull request adds libcurl4-openssl-dev to the package installation dependencies in the Dockerfile, extending the build environment's capabilities without modifying any application logic or control flow.

Changes

Cohort / File(s) Summary
Build Dependencies
dockerfiles/Dockerfile
Added libcurl4-openssl-dev to the apt-get package installation list to include libcurl development headers in the build environment.

Possibly related PRs

Poem

🐰 A dependency so fine, libcurl now mine,
Building with headers, everything divine,
OpenSSL secured, connections so blessed,
One line added makes our image the best!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'build: add libcurl-dev to Dockerfiles' accurately describes the main change in the pull request, which adds libcurl4-openssl-dev to the Dockerfile apt-get install list.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/add-libcurl-dependency

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
dockerfiles/pyopenms/manylinux/Dockerfile (1)

11-11: Consolidate yum install commands and add cache cleanup to reduce image size.

Lines 10–12 contain three separate RUN yum install commands without cache cleanup, leaving yum metadata in the image (Trivy DS-0015). Combine these into a single RUN command with cleanup:

♻️ Proposed consolidation
-RUN yum install -y wget
-RUN yum install -y xz qt6-qtbase-devel qt6-qtsvg-devel libcurl-devel
-RUN yum install -y libtool cmake3
+RUN yum install -y \
+    wget \
+    xz qt6-qtbase-devel qt6-qtsvg-devel libcurl-devel \
+    libtool cmake3 \
+  && yum clean all \
+  && rm -rf /var/cache/yum
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/pyopenms/manylinux/Dockerfile` at line 11, Consolidate the
multiple RUN yum install invocations into a single RUN that installs all
packages together and add yum/dnf cache cleanup to reduce image size and remove
leftover metadata; locate the RUN yum install lines (e.g., the existing "RUN yum
install -y xz qt6-qtbase-devel qt6-qtsvg-devel libcurl-devel" and the other two
RUN yum install lines) and merge their package lists into one RUN, then append
cache cleanup commands such as "yum clean all" and "rm -rf /var/cache/yum
/var/log/yum.* /var/cache/dnf" (or the appropriate cache paths for the base
image) so the final layer does not retain package metadata.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@dockerfiles/pyopenms/manylinux/Dockerfile`:
- Line 11: Consolidate the multiple RUN yum install invocations into a single
RUN that installs all packages together and add yum/dnf cache cleanup to reduce
image size and remove leftover metadata; locate the RUN yum install lines (e.g.,
the existing "RUN yum install -y xz qt6-qtbase-devel qt6-qtsvg-devel
libcurl-devel" and the other two RUN yum install lines) and merge their package
lists into one RUN, then append cache cleanup commands such as "yum clean all"
and "rm -rf /var/cache/yum /var/log/yum.* /var/cache/dnf" (or the appropriate
cache paths for the base image) so the final layer does not retain package
metadata.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e651f668-abe8-493f-be28-10e731a6a50d

📥 Commits

Reviewing files that changed from the base of the PR and between 52b8eca and 5899519.

📒 Files selected for processing (2)
  • dockerfiles/Dockerfile
  • dockerfiles/pyopenms/manylinux/Dockerfile

OpenMS core library now uses libcurl instead of Qt Network for HTTP
operations. Add the development packages so the build can find
curl headers and libraries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@timosachsenberg timosachsenberg force-pushed the feature/add-libcurl-dependency branch from 5899519 to 8f242de Compare March 6, 2026 09:02
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@dockerfiles/Dockerfile`:
- Line 22: Replace the duplicate package name libcurl4-openssl-dev with
libssl-dev in the apt packages list so the system provides OpenSSL development
headers required by the curl build; update the packages list entry that
currently reads libcurl4-openssl-dev to libssl-dev (the other occurrence of
libcurl4-openssl-dev on the file can remain) to ensure
libraries.cmake/curl.cmake can build with -DCURL_USE_OPENSSL=ON.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9a9f030e-5c9b-4a46-a948-75717f11533c

📥 Commits

Reviewing files that changed from the base of the PR and between 5899519 and 8f242de.

📒 Files selected for processing (1)
  • dockerfiles/Dockerfile

zlib1g-dev \
libxerces-c-dev \
libbz2-dev \
libcurl4-openssl-dev \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== curl build configuration =="
rg -n -C2 'OPENMS_CONTRIB_BUILD_CURL|CURL_USE_OPENSSL|CURL_USE_SCHANNEL|CURL_USE_SECTRANSP' libraries.cmake/curl.cmake

echo
echo "== relevant Dockerfile packages =="
rg -n 'libcurl4-openssl-dev|libssl-dev' dockerfiles/Dockerfile

Repository: OpenMS/contrib

Length of output: 622


🏁 Script executed:

sed -n '15,40p' dockerfiles/Dockerfile | cat -n

Repository: OpenMS/contrib

Length of output: 826


🏁 Script executed:

rg -n 'libssl' dockerfiles/Dockerfile

Repository: OpenMS/contrib

Length of output: 40


Replace libcurl4-openssl-dev with libssl-dev on this line.

libcurl4-openssl-dev is already present on line 35. Since libraries.cmake/curl.cmake builds curl from source with -DCURL_USE_OPENSSL=ON, the required system dependency is OpenSSL development headers (libssl-dev), not a duplicate libcurl package. Without libssl-dev, the curl build will fail.

Proposed fix
-    libcurl4-openssl-dev \
+    libssl-dev \
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
libcurl4-openssl-dev \
libssl-dev \
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dockerfiles/Dockerfile` at line 22, Replace the duplicate package name
libcurl4-openssl-dev with libssl-dev in the apt packages list so the system
provides OpenSSL development headers required by the curl build; update the
packages list entry that currently reads libcurl4-openssl-dev to libssl-dev (the
other occurrence of libcurl4-openssl-dev on the file can remain) to ensure
libraries.cmake/curl.cmake can build with -DCURL_USE_OPENSSL=ON.

@timosachsenberg timosachsenberg merged commit 43611bb into master Mar 6, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant