Repository navigation
[4.1 port] Node 24 and apt changes - #858
Merged
antobinary merged 4 commits intoOct 8, 2026
Merged
antobinary merged 4 commits into
antobinary merged 4 commits into
Conversation
apt refuses to use a repository whose Release Origin or Label changed until the change is accepted once, and a rejected fetch leaves the previously cached package lists in place. bbb-install.sh called bare `apt-get update` in five places and has no `set -e`, so the rejection was ignored: the dist-upgrade that follows found nothing new, need_pkg saw everything already installed, and the script restarted the server and reported success while leaving it on its old version. This is not hypothetical. noble-400 gained Origin: and Label: on 2026-09-04 (they had been empty, inherited from a verbatim Release copy). Every 4.0 server whose apt cache predates that is blocked, and re-running this script cannot clear it - which is how a server asked for 4.0.0-rc.3 and stayed on rc.2 with a clean-looking run. Route the five call sites through a helper that passes --allow-releaseinfo-change. Because the installer is fetched fresh from GitHub on every run, this also unsticks servers that are already blocked: the next normal upgrade accepts the pending change and proceeds, with no per-server intervention. Verified against apt 2.8.3 with a local HTTP repo. Starting from a cache holding the old empty-Origin Release and a server at rc.2, publishing rc.4 with Origin/Label set gives two blocking errors and the cache stays at rc.2 under the current code; the helper takes the same cache to rc.4. The helper warns rather than aborting. `apt-get update` returns non-zero for any configured repository, so making it fatal would turn a transient Ubuntu mirror hiccup into a failed install - a worse regression than the one being fixed. The silent-success path is closed either way, since the known cause is now handled and anything else is reported. Fixes bigbluebutton#851
Differential ShellCheck failed on bigbluebutton#852 with six new findings: SC2120 on the function itself (references arguments, but none are ever passed) and SC2119 at each of the five call sites, suggesting the callers forward the script's own arguments. The "$@" was speculative. No caller passes anything to apt_update, so it expanded to nothing everywhere and removing it changes no behaviour. Baseline on v4.0.x-release is a single pre-existing SC2086; with this the branch reports that same single finding and introduces none.
Companion to the bigbluebutton 40-nodejs-24 branch, whose debs will require nodejs (>= 24) (<< 25). Node 22 leaves maintenance 2027-04-30, mid-4.0 lifetime; Node 24 is Active LTS (maintained until 2028-04-30). Must ship together with packages built against Node 24 - old debs (nodejs << 23) are not installable once this repo change is in place.
The nodesource.list setup was guarded by a file-existence check, so on an existing server (installed with Node 22 or earlier) the block was skipped entirely: the repo stayed on node_22.x, dist-upgrade kept nodejs at 22, and installing the new packages that require nodejs (>= 24) failed with unmet dependencies. Fresh installs were unaffected, which is why CI (always a clean runner) could not catch it. Key the guard on the repo line content instead: rewrite whenever the list does not already point at node_$NODE_MAJOR.x (grep -qs also treats a missing file as a mismatch). The subsequent apt-get update + dist-upgrade then moves nodejs across the major cleanly, and the block stays idempotent on re-runs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
IMPORTANT: Only merge once BBB v4.0.0-rc.5 has been merged onto BBB v4.1.x-develop (otherwise 4.1 will be unprepared for Node 24)
Ports the following v4.0.x-release PRs to v4.1.x-release: