Bug #22998
closedbuild-packages-debian12 (and others) failing after nokogiri dependency update
Description
Last successful Rails package build: build-packages-debian12: #739 /consoleFull
First related failure: build-packages-debian12: #752 /consoleFull
Latest failure: build-packages-debian12: #767 /consoleFull
Files
Updated by Brett Smith 9 months ago
- Assigned To changed from Lucas Di Pentima to Brett Smith
Updated by Brett Smith 9 months ago
It looks the main issue is that it's getting the musl build rather than the glibc one. I'm guessing this a new target that nokogiri has started publishing between these versions. Why bundle/gem is picking the wrong target for us is an open question.
Updated by Brett Smith 9 months ago
Well, hrm. When I run the build, it gets the glibc version. That's… aggravating that it's not consistent. But then I still get the same core error:
Because every version of rails depends on actionpack = 7.1.3.4 and every version of actionpack depends on rails-html-sanitizer ~> 1.6, every version of rails requires rails-html-sanitizer ~> 1.6. And because every version of rails-html-sanitizer depends on nokogiri >= 1.15.7, != 1.16.0.rc1, != 1.16.0, != 1.16.1, != 1.16.2, != 1.16.3, != 1.16.4, != 1.16.5, != 1.16.6, != 1.16.7, every version of rails requires nokogiri >= 1.15.7, != 1.16.0.rc1, != 1.16.0, != 1.16.1, != 1.16.2, != 1.16.3, != 1.16.4, != 1.16.5, != 1.16.6, != 1.16.7. So, because nokogiri >= 1.15.7, != 1.16.0.rc1, != 1.16.0, != 1.16.1, != 1.16.2, != 1.16.3, != 1.16.4, != 1.16.5, != 1.16.6, != 1.16.7 could not be found in cached gems or installed locally for any resolution platforms (ruby) and Gemfile depends on rails ~> 7.1.3.4, version solving has failed. The source contains the following gems matching 'nokogiri (>= 1.15.7, != 1.16.0.rc1, != 1.16.0, != 1.16.1, != 1.16.2, != 1.16.3, != 1.16.4, != 1.16.5, != 1.16.6, != 1.16.7)': * nokogiri-1.15.7-x86_64-linux * nokogiri-1.18.8-x86_64-linux ERROR: arvados-api-server package prep failed
Updated by Brett Smith 9 months ago
Note older distros have the more usual error:
22:17:56 nokogiri-1.18.8 requires ruby version >= 3.1.0, which is incompatible with the 22:17:56 current version, 2.7.0
Updated by Brett Smith 9 months ago
22998-gem-fetch-fixes @ cea78daa8414f7fb9eb9e01b28717a9e975b1f30
build-packages-ubuntu2004: #2243 - Was failing on the Ruby 2.7 error, now passing
build-packages-ubuntu2204: #766 - Was failing on the "not found for any resolution platforms" error, now passing
I am going to go ahead and just merge this, because it is basically just three tiny changes:
- Revert the nokogiri upgrade to restore Ruby 2.7 support.
- Pin nokogiri to prevent a repeat of this problem.
- Run our
gem fetchduring the package build with some parallelism as a minor optimization. I thought the real fix was here in an earlier version of the branch so I did this while I was at it. I have left a comment noting that the parallelism factor is arbitrary and eminently bikesheddable.
Updated by Brett Smith 9 months ago
- Related to Support #22974: Upgrade dependencies to address security issues added
Updated by Brett Smith 9 months ago
Note the CVEs CVE-2025-24855 & CVE-2024-55549 are actually in libxslt. If needed, we could mitigate this issue by arranging to build Nokogiri from source and dynamically linking to the ditro-provided libxslt. Then as long as the distro got a security update, we would be fine too.
Updated by Brett Smith 9 months ago
- Related to Idea #23000: Figure out how to consistently target a platform added
Updated by Brett Smith 9 months ago
Filed #23000 with the platform error. We will probably need to deal with that sooner or later, but since this ticket ended up reverting Nokogiri anyway for Ruby 2.7 compatibility, it did not need to be solved here.
Updated by Brett Smith 9 months ago
- Status changed from New to Resolved
Package builds are now passing.