Skip to content

Conversation

@aoliveram
Copy link
Member

Problem

The ubuntu-latest (release) check was failing with:

unable to load shared object 'curl.so': libssl.so.3.1: cannot open shared object file

Root Cause

  • GitHub Actions ubuntu-latest now uses Ubuntu 24.04 (Noble Numbat)
  • Ubuntu 24.04 uses OpenSSL 3.1.x
  • Workflow was configured for Ubuntu 20.04 (Focal) which uses OpenSSL 1.x
  • Package manager URLs pointed to focal instead of noble

Solution

  1. Updated RSPM URLs to use noble instead of focal
  2. Explicitly install libssl-dev and libcurl4-openssl-dev before R package installation
  3. Updated system_requirements() call to target Ubuntu 24.04

Testing

This PR is based on #60 (arma::is_finite fix) and should:

  • ✅ Pass all 5 CI checks (including ubuntu-latest release)
  • ✅ Not affect existing functionality

Related Issues

Copilot AI and others added 4 commits September 29, 2025 15:46
- Update RSPM URLs from focal (20.04) to noble (24.04)
- Explicitly install libssl-dev and libcurl4-openssl-dev
- Update system_requirements() to target Ubuntu 24.04
- Fixes ubuntu-latest (release) check failure with libssl.so.3.1

Resolves #60
- Install libglpk-dev (required by igraph)
- Install libgmp3-dev and libxml2-dev (additional dependencies)
- Update local check script to include knitr
- Fixes igraph.so loading error in GitHub Actions

Related to #60
@aoliveram
Copy link
Member Author

Hey @gvegayon, I wanted to learn how to use Copilot, so I got some hands-on practice by working on PR #60.

It seems the error came from missing dependencies (libssl.so.3.1, libglpk.so.40), so I updated the system requirement calls ("20.04" → "24.04") and everything is working now.

Are these fixes enough for CRAN? Also, do you know how to run the CRAN checks locally?

Copy link
Member

@gvegayon gvegayon left a comment

Choose a reason for hiding this comment

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

Thank you, @aoliveram! The main issue I have is that the new approach is a bit overkill. @copilot, can you address my comments instead and try to use r-lib to setup the R environment? That's the modern way.

Copy link
Member

Choose a reason for hiding this comment

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

Cool! But we need to ensure that scripts is in the .Rbuildignore. Can you check that?

Comment on lines 60 to +73
- name: Install system dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libssl-dev \
libcurl4-openssl-dev \
libglpk-dev \
libgmp3-dev \
libxml2-dev
while read -r cmd
do
eval sudo $cmd
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))')
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "24.04"))')
Copy link
Member

Choose a reason for hiding this comment

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

This sounds a bit overkill.

Copy link
Member

Choose a reason for hiding this comment

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

copilot was fixing this in #60. Just closed that in favor of this.

Copy link
Member

Choose a reason for hiding this comment

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

Copy link

Copilot AI commented Dec 3, 2025

@gvegayon I've opened a new pull request, #63, to work on those changes. Once the pull request is ready, I'll request review from you.

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.

3 participants