Skip to content

libglycin-gtk4: init (split out of libglycin)#481377

Merged
jtojnar merged 23 commits intoNixOS:masterfrom
jtojnar:wip/jtojnar/glycin-gtk4-extraction
Feb 4, 2026
Merged

libglycin-gtk4: init (split out of libglycin)#481377
jtojnar merged 23 commits intoNixOS:masterfrom
jtojnar:wip/jtojnar/glycin-gtk4-extraction

Conversation

@jtojnar
Copy link
Member

@jtojnar jtojnar commented Jan 18, 2026

In preparation for gdk-pixbuf switching to glycin.

This contains changes from #364572.

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Checked that all programs have loaders in XDG_DATA_DIRS.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

getchoo and others added 5 commits January 18, 2026 19:06
This appears to have been accidentally introduced in 9a59118.
We are going to switch to a setup hook and this is the last user of the glycin 2 patch.

It probably does not work anyway because it uses glycin 3 loaders.
Avoid pulling in headers, and prepare for setup hook.
Glycin rust library searches `bwrap` on path. This would require every reverse dependency to add `bubblewrap` to its `PATH`, which would be quite annoying to ensure. Especially when libraries start using glycin.

We provide `passthru.glycinPathsPatch` to perform source-level hardcoding but that doesn't work with apps that use `rustPlatform.cargoSetupHook` since it assumes a setup where snapshots of GNOME sources already contain vendored Rust dependencies under `vendor/`.

The setup hook instead provides a much more flexible approach that uses the `$cargoDepsCopy` variable provided by `cargoSetupHook`, which points to the local, modifiable copy of Cargo dependencies, to patch `src/sandbox.rs` just like `glycinPathsPatch`. If `$cargoDepsCopy` is not found, then the old behavior is used where Cargo dependencies are assumed to be under `vendor/`.

Additionally, the patch requires modifying `Cargo.lock` when using `rustPlatform.fetchCargoVendor`. The setup hook fixes that as well.

Rust programs just need to add `libglycin.patchVendorHook` and it should take care of this.

Co-authored-by: Seth Flynn <getchoo@tuta.io>
Co-authored-by: Jan Tojnar <jtojnar@gmail.com>
@jtojnar jtojnar force-pushed the wip/jtojnar/glycin-gtk4-extraction branch 2 times, most recently from e6bb52f to 093bf3e Compare January 18, 2026 18:10
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 6.topic: GNOME GNOME desktop environment and its underlying platform 8.has: documentation This PR adds or changes documentation labels Jan 18, 2026
@jtojnar jtojnar force-pushed the wip/jtojnar/glycin-gtk4-extraction branch 4 times, most recently from 6d9f428 to ab2b73d Compare January 18, 2026 22:33
@jtojnar jtojnar mentioned this pull request Jan 18, 2026
13 tasks
@jtojnar jtojnar marked this pull request as ready for review January 18, 2026 22:38
jtojnar and others added 10 commits January 19, 2026 02:40
These should be updated in lockstep.

Also remove update script – we will consider libglycin the main package.
fontconfig is propagated by cairo propagated by gtk4 but it is a direct dependency of libglycin. Similarly with glib.

Though the pkg-config `Requires` are overly broad – only glib is required by the headers. This should be addressed upstream.
When we try to run `glycin-loaders` tests in Nix build sandbox,
they would fail because the build sandbox lacks `/usr`.

Let’s update our setup hook to patch the crate to have mounting `/usr` fail gracefully.

This was proposed upstream and rejected:
https://gitlab.gnome.org/GNOME/glycin/-/merge_requests/348
gtk4 is only needed for tests, let’s not pull it in unless tests are actually run.

And make tests meson feature conditional on `doCheck`.

Keep not running tests by default since we will want to add glycin to gdk-pixbuf, which is a dependency of gtk4.

Co-authored-by: Max <max@privatevoid.net>
In preparation for gdk-pixbuf switching to glycin.
for loaders discovery.

Also drop `bubblewrap`, which is already being hardcoded in `libglycin` package since bb77c25.
@jtojnar jtojnar force-pushed the wip/jtojnar/glycin-gtk4-extraction branch from ab2b73d to 8f65f52 Compare January 19, 2026 01:43
@nixpkgs-ci nixpkgs-ci bot requested review from baduhai and chuangzhu January 19, 2026 01:48
Copy link
Member

@pluiedev pluiedev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack changes from #364572 - glad it's been getting the attention it needs

@nixpkgs-ci nixpkgs-ci bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Jan 19, 2026
Copy link
Member

@austinbutler austinbutler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved for my own package.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything seems to work the same without glycin-loaders.

@nixpkgs-ci nixpkgs-ci bot added 12.approvals: 2 This PR was reviewed and approved by two persons. 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in any of the changed packages. and removed 12.approvals: 1 This PR was reviewed and approved by one person. labels Jan 20, 2026
@uninsane
Copy link
Contributor

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 481377
Commit: 8f65f5245db43d135a65b5db5cd649f205ad9ed0


x86_64-linux

✅ 62 packages built:
  • adapta-gtk-theme
  • authenticator
  • bazaar
  • budgie-analogue-clock-applet
  • budgie-control-center
  • budgie-control-center.debug
  • budgie-desktop
  • budgie-desktop-with-plugins
  • budgie-desktop.dev
  • budgie-desktop.man
  • budgie-gsettings-overrides
  • budgie-systemmonitor-applet
  • budgie-user-indicator-redux
  • constrict
  • fractal
  • gelly
  • glycin-loaders
  • gnome-browser-connector
  • gnome-control-center
  • gnome-control-center.debug
  • gnome-session
  • gnome-session.debug
  • gnome-session.sessions
  • gnome-shell
  • gnome-shell.debug
  • gnome-shell.devdoc
  • gnome-tweaks
  • gnome.nixos-gsettings-overrides
  • gnomeExtensions.easyScreenCast
  • gnomeExtensions.gsconnect
  • gnomeExtensions.gsconnect.installedTests
  • gst-thumbnailers
  • highscore
  • highscore-unwrapped
  • komikku
  • libglycin
  • libglycin-gtk4
  • libglycin-gtk4.dev
  • libglycin-gtk4.devdoc
  • libglycin.dev
  • libglycin.devdoc
  • loupe
  • marble-shell-theme
  • matrix-gtk-theme
  • mojave-gtk-theme
  • mutter
  • mutter.debug
  • mutter.dev
  • mutter.devdoc
  • mutter.man
  • nixpkgs-manual
  • pantheon.elementary-session-settings
  • phoc
  • phosh
  • phosh-mobile-settings
  • recordbox
  • snapshot
  • themechanger
  • tokyonight-gtk-theme
  • turntable
  • valent
  • vimix-gtk-themes

@baduhai baduhai removed their request for review February 2, 2026 17:22
@nixpkgs-ci nixpkgs-ci bot requested review from austinbutler and baduhai February 2, 2026 17:25
@jtojnar jtojnar added this pull request to the merge queue Feb 4, 2026
Merged via the queue into NixOS:master with commit a4c9180 Feb 4, 2026
33 checks passed
@jtojnar jtojnar deleted the wip/jtojnar/glycin-gtk4-extraction branch February 4, 2026 07:24
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/gnome-release-strategy-for-nixos-stable/74887/4

@pluiedev pluiedev mentioned this pull request Feb 23, 2026
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: GNOME GNOME desktop environment and its underlying platform 8.has: documentation This PR adds or changes documentation 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 12.approvals: 2 This PR was reviewed and approved by two persons. 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in any of the changed packages.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants