Skip to content

build: migrate to core22 - #92

Merged
jnsgruk merged 1 commit into
candidatefrom
build/core22
Sep 4, 2026
Merged

jnsgruk merged 1 commit into
candidatefrom
build/core22

Conversation

@clwsgruk

@clwsgruk clwsgruk commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the candidate branch snap from core20 to core22
  • remove the stale warning that the core22 move is expected to break the application
  • unblock builds now that the current Snapcraft no longer supports core20

Background

Issue #47 previously documented a failed core22 experiment: the classic snap mixed libraries from the snap and host, then failed with GLIBC_2.33 / GLIBC_2.34 requirements on an older host.

This PR tests the current candidate tree directly rather than assuming that the old failure still applies.

Verification

Built commit 7bd938c158029a03a9c989fa1f0118b8806c2361 using Snapcraft's managed LXD provider:

Created snap package sublime-text_4200_amd64.snap
SHA-256: d9e370ca5b3f3571c652fc7b6d363f5cff2f0f3243b9aead98fc43c9f7712695

The packed metadata reports version: 4200, base: core22, architectures: [amd64], and classic confinement.

The exact local snap was installed in a fresh Ubuntu 24.04 Desktop LXD VM and launched in normal mode with a real test.txt file. The visible window was:

~/test.txt - Sublime Text (UNREGISTERED)

The GUI rendered normally without an error dialog or loader failure. A 1280×800 screenshot was captured.

The live process's /proc/<pid>/maps showed the critical libraries resolving from the Ubuntu 24.04 host rather than from /snap/sublime-text/...:

/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
/usr/lib/x86_64-linux-gnu/libX11.so.6.4.0
/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.8000.0
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.8000.0
/usr/lib/x86_64-linux-gnu/libffi.so.8.1.4
/usr/lib/x86_64-linux-gnu/libbsd.so.0.12.1

Static ELF inspection also showed the upstream executable retaining its generic interpreter /lib64/ld-linux-x86-64.so.2 and $ORIGIN runpath. Snapcraft's library linter warned that libGL.so.1 was not staged, but the running classic snap correctly loaded the host's libGL.so.1.7.0.

This does not reproduce the mixed core/host-library failure from #47.

Review

@popey: you were involved in the earlier core22 investigation in #47. Could you please review and independently test this candidate-based migration?

@om26er: tagging you as the most recent maintainer to change this manifest and the author of the candidate branch's current core20 compatibility commit.

@clwsgruk
clwsgruk requested review from om26er and popey September 3, 2026 19:41
@clwsgruk

clwsgruk commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

I’ll add the older-host regression coverage myself before asking others to spend time testing. I’ll test this exact snap build on Ubuntu 20.04 Desktop first, tear that VM down, then repeat on Ubuntu 22.04 Desktop. For each release I’ll verify installation, real GUI launch, and the live library paths from /proc/<pid>/maps, then post the evidence here.

@clwsgruk

clwsgruk commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Ubuntu 20.04 Desktop result: PASS

Tested the exact locally built sublime-text_4207_amd64.snap from this PR in an isolated Ubuntu 20.04.6 LTS VM with ubuntu-desktop-minimal installed.

  • snap install --dangerous --classic succeeded and installed the core22 base.
  • /snap/bin/sublime-text.subl --multiinstance --new-window ... started PID 29500.
  • The GUI opened successfully and displayed Sublime Text's licence-entry window; a 1280×800 screenshot was captured.
  • There was no GLIBC_2.33/GLIBC_2.34 error and no loader crash.
  • ldd and /proc/29500/maps showed the live process using Ubuntu 20.04's host libraries:
/usr/lib/x86_64-linux-gnu/libc-2.31.so
/usr/lib/x86_64-linux-gnu/ld-2.31.so
/usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.6
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.6
/usr/lib/x86_64-linux-gnu/libffi.so.7.1.0
/usr/lib/x86_64-linux-gnu/libpcre.so.3.13.3
/usr/lib/x86_64-linux-gnu/libbsd.so.0.10.0

Relevant host versions were libc6 2.31-0ubuntu9.18, libx11-6 1.6.9, and GLib 2.64.6. None of these critical mappings came from /snap/sublime-text/..., so the exact cross-base failure reported in #47 did not recur on Focal.

The VM was used only for this test and will now be removed before the Ubuntu 22.04 run.

@jnsgruk

jnsgruk commented Sep 3, 2026

Copy link
Copy Markdown
Member

FYI @jnsgruk

@clwsgruk

clwsgruk commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Ubuntu 22.04 Desktop result: PASS

Tested the exact locally built sublime-text_4207_amd64.snap from this PR in an isolated Ubuntu 22.04 LTS VM with the desktop runtime installed.

  • snap install --dangerous --classic succeeded and installed the core22 base.
  • /snap/bin/sublime-text.subl --multiinstance --new-window started PID 5435.
  • The GUI opened successfully; xdotool identified the visible window as Enter License - Sublime Text, and a 1280×800 screenshot was captured.
  • There was no loader crash or GLIBC error.
  • /proc/5435/maps showed the live process using Jammy's host libraries, including:
/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
/usr/lib/x86_64-linux-gnu/libX11.so.6.4.0
/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7200.4
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7200.4
/usr/lib/x86_64-linux-gnu/libffi.so.8.1.0
/usr/lib/x86_64-linux-gnu/libpcre.so.3.13.3
/usr/lib/x86_64-linux-gnu/libbsd.so.0.11.5

Relevant host package versions were libc6 2.35-0ubuntu3.14, libx11-6 1.7.5, and GLib 2.72.4. None of these critical mappings came from /snap/sublime-text/....

Together with the Ubuntu 20.04 result above, this confirms the old mixed host/core library failure is not reproduced on either Focal or Jammy. The test VM will now be removed.

om26er
om26er previously approved these changes Sep 3, 2026
@clwsgruk

clwsgruk commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Correction: the earlier local artifact and Focal/Jammy results were from a branch based on dev, not candidate. Those results are useful background but do not validate the requested candidate-based change. I am rebasing this PR onto candidate, rebuilding that exact tree, and will post replacement runtime/linker evidence from the candidate-based artifact. I will keep no more than one test VM running at a time.

@clwsgruk
clwsgruk changed the base branch from dev to candidate September 4, 2026 07:06
@clwsgruk

clwsgruk commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Candidate-based Ubuntu 24.04 Desktop result: PASS

This supersedes my earlier dev-based test comments.

  • PR base: candidate
  • Tested commit: 7bd938c158029a03a9c989fa1f0118b8806c2361
  • Artifact: sublime-text_4200_amd64.snap
  • SHA-256: d9e370ca5b3f3571c652fc7b6d363f5cff2f0f3243b9aead98fc43c9f7712695
  • Installed in a fresh Ubuntu 24.04 Desktop LXD VM with core22
  • Normal-mode GUI launch succeeded on test.txt; visible title: ~/test.txt - Sublime Text (UNREGISTERED)
  • Screenshot captured at 1280×800 with no error dialog
  • Live mappings resolved libc, the loader, X11, GL, GLib/GObject, libffi, and libbsd from /usr/lib/x86_64-linux-gnu on the host, not /snap/sublime-text/...

The old mixed host/core loader failure was not reproduced. The disposable VM is being deleted before work starts on Sublime Merge, keeping only one VM running at a time.

@clwsgruk
clwsgruk requested a review from om26er September 4, 2026 07:26
@clwsgruk

clwsgruk commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Reopening to trigger the candidate-branch pull-request workflow after correcting the PR base.

@clwsgruk clwsgruk closed this Sep 4, 2026
@clwsgruk clwsgruk reopened this Sep 4, 2026
@jnsgruk
jnsgruk marked this pull request as ready for review September 4, 2026 07:52
@jnsgruk
jnsgruk merged commit 1a87aa7 into candidate Sep 4, 2026
1 check passed
@jnsgruk
jnsgruk deleted the build/core22 branch September 4, 2026 07:58
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