various: (re-)disable introspection if no emulator#219155
various: (re-)disable introspection if no emulator#219155Artturin merged 12 commits intoNixOS:stagingfrom
Conversation
pkgs/development/libraries/gsettings-desktop-schemas/default.nix
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Perhaps just use a single withIntrospection flag? The withGtkDoc was only introduced for cross-compilation purposes in the first place. I would like to keep the cross-compilation related changes as minimal as possible.
There was a problem hiding this comment.
It was actually introduced to avoid building the documentation on Darwin, and then later modified to also be disabled when cross compiling. So I'm happy to try getting rid of it, but that problem might not have been resolved. We'll have to test.
There was a problem hiding this comment.
Yeah, that should no longer be issue with gi-docgen.
There was a problem hiding this comment.
why glib in nativeBuildInputs here and in tracker
There was a problem hiding this comment.
at-spi2-core> WARNING: Could not detect glib version, assuming 2.54. You may get build errors if your glib is older.
at-spi2-core> Program glib-genmarshal found: NO
at-spi2-core>
at-spi2-core> atspi/meson.build:76:0: ERROR: Program 'glib-genmarshal' not found or not executable
There was a problem hiding this comment.
can't repro nix build ".#pkgsCross.aarch64-multiplatform.at-spi2-core" ".#at-spi2-core"
nix build ".#pkgsCross.aarch64-multiplatform.tracker" ".#tracker"
x86_64-linux
There was a problem hiding this comment.
though i think thats because gir(and maybe something else) is propagating glib
There was a problem hiding this comment.
Exactly. It's required when introspection is disabled, which is why it's needed now and not before.
e.g. when cross compiling from Linux to FreeBSD.
e.g. when cross compiling from Linux to FreeBSD. Fixes: 2472364 ("gsettings-desktop-schemas: build gir when cross")
e.g. when cross compiling from Linux to FreeBSD. Fixes: e31262c ("at-spi2-core: make introspection unconditional")
e.g. when cross compiling from Linux to FreeBSD. Fixes: 1bd8727 ("various: enable gobject-introspection when cross-compiling")
e.g. when cross compiling from Linux to FreeBSD. Fixes: 1bd8727 ("various: enable gobject-introspection when cross-compiling")
e.g. when cross compiling from Linux to FreeBSD. Fixes: 1bd8727 ("various: enable gobject-introspection when cross-compiling")
e.g. when cross compiling from Linux to FreeBSD. We have to get the build libical from pkgsBuildBuild, to avoid picking up a propagated gobject-introspection host dependency. Fixes: 1bd8727 ("various: enable gobject-introspection when cross-compiling")
e.g. when cross compiling from Linux to FreeBSD.
e.g. when cross compiling from Linux to FreeBSD.
e.g. when cross compiling from Linux to FreeBSD. Fixes: 1bd8727 ("various: enable gobject-introspection when cross-compiling")
6baecdc to
3a59219
Compare
e.g. when cross compiling from Linux to FreeBSD.
3a59219 to
0913507
Compare
|
Let's test whether we can build the GTK 3 docs on Darwin now: @ofborg build gtk3 |
|
One more try because x86_64-darwin hit a Nix bug: @ofborg build gtk3 |
|
|
||
| depsBuildBuild = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ | ||
| # provides ical-glib-src-generator that runs during build | ||
| libical |
There was a problem hiding this comment.
Explained in the commit message.
Description of changes
We can cross-compile with gobject-introspection in some cases, but not all, because it requires us to have an emulator for the host platform (which we don't for e.g. Linux → BSD). Recent changes have changed gobject-introspection support in various packages from being native-only to unconditional, which was good for cross setups where we have the emulator as they got g-i support in the cross-compiled packages, but broke cross entirely for setups with no emulator. So we need to partially go back on that, by restricting gobject-introspection to only be enabled for setups where we can actually support it.
Things done
sandbox = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)