Skip to content

[4.1 port] Node 24 and apt changes - #858

Merged
antobinary merged 4 commits into
bigbluebutton:v4.1.x-releasefrom
antobinary:41-apt-releaseinfo-nodejs-24
Oct 8, 2026
Merged

antobinary merged 4 commits into
bigbluebutton:v4.1.x-releasefrom
antobinary:41-apt-releaseinfo-nodejs-24

Conversation

@antobinary

Copy link
Copy Markdown
Member

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:

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.
@antobinary
antobinary marked this pull request as ready for review October 8, 2026 19:58
@antobinary
antobinary merged commit fdade68 into bigbluebutton:v4.1.x-release Oct 8, 2026
2 checks passed
@antobinary
antobinary deleted the 41-apt-releaseinfo-nodejs-24 branch October 8, 2026 20:00
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