sdl3: avoid transitive gtk dependency#413222
Conversation
cb117ff to
e118f55
Compare
There was a problem hiding this comment.
The tests above shouldn't be run on libOnly builds, since they don't produce the install tests
This also gives us an excuse to run OfBorg again...weird
error: file 'nar/0qlmqx0zzwx915r5byksf3amq1c4k5x78q8pmp4b4r70czqxnp4g.nar?hash=igis2zjnph73mddw7nl80fpf1y14wxjb' does not exist in binary cache 'http://build02.ofborg.org'
copying path '/nix/store/pfaqz742z4f37fyyzw0kzpck6ikf80zv-audit-4.0.3-lib' from 'http://build03.ofborg.org'...
copying path '/nix/store/mr9ir1liiavmh0nf82g6d59j5m4mzd6y-bash-interactive-5.2p37-dev' from 'http://build03.ofborg.org'...
copying path '/nix/store/hrr0b027v6gy4bnzjkx4a7dfbd1lvaz3-source' from 'https://cache.nixos.org'...
copying path '/nix/store/74x4rpqdv48d91w68v868ln2n8kawq93-unbound-1.23.0-lib' from 'http://build03.ofborg.org'...
error: Nix daemon disconnected unexpectedly (maybe it crashed?)
Motivation: `ibus` carries lots of dependencies on various versions of gtk. These dependencies become transitive dependencies for sdl3, which causes quite expensive compiles in the sdl3 closure. Particularly, this means gtk (and, in turn, gstreamer and everything else) become part of e.g. ffmpeg. `sdl3` itself uses ibus almost exclusively via dbus, and reimplements some of the most important features. It does depend on ibus only to use some of the constants defined in headers. It does not actually load ibus libraries. This means, as long as the headers are identical, all the gtk dependencies can be removed in the ibus for sdl3. This requires this split.
`sdl3` only relies on constant definitions in the ibus headers, which does not require ibus to be compiled with gtk support. This means we can shrink the unnecessarily large closure.
marcin-serwin
left a comment
There was a problem hiding this comment.
Diff lgtm, I also couldn't find any usage of the ibus lib beyond the headers constants. Tests for ibusMinimal and sdl3 run successfully on aarch64-linux.
|
built Detailsibus and ran a eval locally
|
Motivation:
ibuscarries lots of dependencies on various versions of gtk.These dependencies become transitive dependencies for sdl3, which causes quite expensive compiles in the sdl3 closure. Particularly, this means gtk (and, in turn, gstreamer and everything else) become part of e.g. ffmpeg.
sdl3itself uses ibus almost exclusively via dbus, and reimplements some of the most important features. It does depend on ibus only to use some of the constants defined in headers. It does not actually load ibus libraries.This means, as long as the headers are identical, all the gtk dependencies can be removed in the ibus for sdl3. This requires this split.
Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.