build: handle GLib 2.88 lgi enum-class break#590
Merged
Conversation
GLib 2.88 changed enum-class introspection so GEnumClass.values is a table rather than a record; an lgi without the upstream fix (lgi-devs/lgi#352) crashes in core.record.fromarray when any namespace loads. Vendor that patch in package.nix so the flake builds on current nixpkgs, and split the build-time check so it reports "installed but unusable" instead of telling users to reinstall lgi.
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.
Description
On GLib 2.88, an lgi without the upstream fix (lgi-devs/lgi#352) crashes in
core.record.fromarray, but somewm's build check reported this as "lgi not installed" and told users to reinstall a package that was already there. This splits the check so it tells a missing lgi apart from an installed-but-broken one, and vendors the lgi#352 patch inpackage.nixso the Nix flake builds on current nixpkgs. Fixes #588.Test Plan
makeandmake test-unit(752 passing) are green.lgi-check.cstandalone across all paths: healthy lgi passes; missing lgi shows the install message; a GLib-2.88-broken lgi shows the new "installed but unusable" message;SOMEWM_IGNORE_LGI=1is honored in both failure cases.nix buildwas not run here — no nix daemon on this box).Checklist
lua/awful/,lua/gears/,lua/wibox/,lua/naughty/) are not modified — if a bug surfaces in Lua, the fix belongs in Cmake test-unit && make test-integration)