Merge pull request #219155 from alyssais/gobject-introspection-emulator

various: (re-)disable introspection if no emulator
This commit is contained in:
Artturi 2023-03-04 02:20:52 +02:00 committed by GitHub
commit 77afa1fb6c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 109 additions and 42 deletions

View file

@ -5,6 +5,8 @@
, ninja
, pkg-config
, gobject-introspection
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, gsettings-desktop-schemas
, makeWrapper
, dbus
@ -30,11 +32,13 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
glib
meson
ninja
pkg-config
gobject-introspection
makeWrapper
] ++ lib.optionals withIntrospection [
gobject-introspection
];
buildInputs = [
@ -58,7 +62,6 @@ stdenv.mkDerivation rec {
doCheck = false;
mesonFlags = [
"-Dintrospection=yes"
# Provide dbus-daemon fallback when it is not already running when
# at-spi2-bus-launcher is executed. This allows us to avoid
# including the entire dbus closure in libraries linked with

View file

@ -14,19 +14,21 @@
, libjpeg
, libpng
, gnome
, gobject-introspection
, buildPackages
, doCheck ? false
, makeWrapper
, lib
, testers
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, gobject-introspection
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gdk-pixbuf";
version = "2.42.10";
outputs = [ "out" "dev" "man" "devdoc" ]
outputs = [ "out" "dev" "man" ]
++ lib.optional withIntrospection "devdoc"
++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) "installedTests";
src = let
@ -56,13 +58,14 @@ stdenv.mkDerivation (finalAttrs: {
python3
makeWrapper
glib
gi-docgen
gobject-introspection
# for man pages
docutils
] ++ lib.optionals stdenv.isDarwin [
fixDarwinDylibNames
] ++ lib.optionals withIntrospection [
gi-docgen
gobject-introspection
];
propagatedBuildInputs = [
@ -74,7 +77,8 @@ stdenv.mkDerivation (finalAttrs: {
mesonFlags = [
"-Dgio_sniffing=false"
"-Dgtk_doc=true"
(lib.mesonBool "gtk_doc" withIntrospection)
(lib.mesonEnable "introspection" withIntrospection)
];
postPatch = ''
@ -104,7 +108,7 @@ stdenv.mkDerivation (finalAttrs: {
install_name_tool -change @rpath/libgdk_pixbuf-2.0.0.dylib $out/lib/libgdk_pixbuf-2.0.0.dylib $f
mv $f ''${f%.dylib}.so
done
'' + ''
'' + lib.optionalString withIntrospection ''
# We need to install 'loaders.cache' in lib/gdk-pixbuf-2.0/2.10.0/
${stdenv.hostPlatform.emulator buildPackages} $dev/bin/gdk-pixbuf-query-loaders --update-cache
'';
@ -116,7 +120,7 @@ stdenv.mkDerivation (finalAttrs: {
done
'';
postFixup = ''
postFixup = lib.optionalString withIntrospection ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
moveToOutput "share/doc" "$devdoc"
'';

View file

@ -3,6 +3,8 @@
, pkg-config
, glib
, gobject-introspection
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, meson
, ninja
, python3
@ -27,9 +29,14 @@ stdenv.mkDerivation rec {
ninja
pkg-config
python3
] ++ lib.optionals withIntrospection [
gobject-introspection
];
mesonFlags = [
(lib.mesonBool "introspection" withIntrospection)
];
postPatch = ''
chmod +x build-aux/meson/post-install.py
patchShebangs build-aux/meson/post-install.py

View file

@ -8,6 +8,7 @@
, docbook_xml_dtd_43
, gtk-doc
, meson
, mesonEmulatorHook
, ninja
, python3
, makeWrapper
@ -21,6 +22,8 @@
, atk
, at-spi2-atk
, gobject-introspection
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, fribidi
, xorg
, libepoxy
@ -39,7 +42,6 @@
, wayland-protocols
, xineramaSupport ? stdenv.isLinux
, cupsSupport ? stdenv.isLinux
, withGtkDoc ? stdenv.isLinux && (stdenv.buildPlatform == stdenv.hostPlatform)
, cups
, AppKit
, Cocoa
@ -63,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
pname = "gtk+3";
version = "3.24.36";
outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
outputBin = "dev";
setupHooks = [
@ -94,7 +96,6 @@ stdenv.mkDerivation (finalAttrs: {
];
nativeBuildInputs = [
gettext
gobject-introspection
makeWrapper
meson
ninja
@ -102,12 +103,15 @@ stdenv.mkDerivation (finalAttrs: {
python3
sassc
gdk-pixbuf
] ++ finalAttrs.setupHooks ++ lib.optionals withGtkDoc [
] ++ finalAttrs.setupHooks ++ lib.optionals withIntrospection [
gobject-introspection
docbook_xml_dtd_43
docbook-xsl-nons
gtk-doc
# For xmllint
libxml2
] ++ lib.optionals (withIntrospection && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
] ++ lib.optionals waylandSupport [
wayland-scanner
];
@ -157,12 +161,13 @@ stdenv.mkDerivation (finalAttrs: {
];
mesonFlags = [
"-Dgtk_doc=${lib.boolToString withGtkDoc}"
"-Dgtk_doc=${lib.boolToString withIntrospection}"
"-Dtests=false"
"-Dtracker3=${lib.boolToString trackerSupport}"
"-Dbroadway_backend=${lib.boolToString broadwaySupport}"
"-Dx11_backend=${lib.boolToString x11Support}"
"-Dquartz_backend=${lib.boolToString (stdenv.isDarwin && !x11Support)}"
"-Dintrospection=${lib.boolToString withIntrospection}"
];
doCheck = false; # needs X11

View file

@ -7,6 +7,8 @@
, nixosTests
, pkg-config
, gettext
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, buildPackages
, gobject-introspection
, gi-docgen
, libxslt
@ -18,7 +20,8 @@ stdenv.mkDerivation rec {
pname = "json-glib";
version = "1.6.6";
outputs = [ "out" "dev" "devdoc" "installedTests" ];
outputs = [ "out" "dev" "installedTests" ]
++ lib.optional withIntrospection "devdoc";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
@ -43,10 +46,11 @@ stdenv.mkDerivation rec {
gettext
glib
libxslt
gobject-introspection
gi-docgen
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
fixDarwinDylibNames
] ++ lib.optionals withIntrospection [
gobject-introspection
gi-docgen
];
propagatedBuildInputs = [
@ -55,6 +59,8 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dinstalled_test_prefix=${placeholder "installedTests"}"
(lib.mesonEnable "introspection" withIntrospection)
(lib.mesonEnable "gtk_doc" withIntrospection)
];
# Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)

View file

@ -1,7 +1,8 @@
{ lib
, stdenv
, fetchFromGitHub
, buildPackages
, pkgsBuildBuild
, pkgsBuildHost
, cmake
, glib
, icu
@ -13,6 +14,7 @@
, python3
, tzdata
, fixDarwinDylibNames
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable pkgsBuildHost
, gobject-introspection
, vala
}:
@ -31,20 +33,24 @@ stdenv.mkDerivation rec {
};
strictDeps = true;
depsBuildBuild = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# provides ical-glib-src-generator that runs during build
libical
];
nativeBuildInputs = [
cmake
ninja
perl
pkg-config
] ++ lib.optionals withIntrospection [
gobject-introspection
vala
# Docs building fails:
# https://github.com/NixOS/nixpkgs/pull/67204
# previously with https://github.com/NixOS/nixpkgs/pull/61657#issuecomment-495579489
# gtk-doc docbook_xsl docbook_xml_dtd_43 # for docs
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# provides ical-glib-src-generator that runs during build
libical
] ++ lib.optionals stdenv.isDarwin [
fixDarwinDylibNames
];
@ -63,10 +69,10 @@ stdenv.mkDerivation rec {
cmakeFlags = [
"-DENABLE_GTK_DOC=False"
"-DGOBJECT_INTROSPECTION=True"
"-DICAL_GLIB_VAPI=True"
"-DGOBJECT_INTROSPECTION=${if withIntrospection then "True" else "False"}"
"-DICAL_GLIB_VAPI=${if withIntrospection then "True" else "False"}"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DIMPORT_ICAL_GLIB_SRC_GENERATOR=${lib.getDev buildPackages.libical}/lib/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
"-DIMPORT_ICAL_GLIB_SRC_GENERATOR=${lib.getDev pkgsBuildBuild.libical}/lib/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
];
patches = [

View file

@ -6,6 +6,8 @@
, pkg-config
, vala
, gobject-introspection
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, gtk-doc
, docbook-xsl-nons
, docbook_xml_dtd_43
@ -19,7 +21,7 @@ stdenv.mkDerivation rec {
pname = "libmanette";
version = "0.2.6";
outputs = [ "out" "dev" "devdoc" ];
outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
@ -30,23 +32,29 @@ stdenv.mkDerivation rec {
meson
ninja
pkg-config
glib
] ++ lib.optionals withIntrospection [
vala
gobject-introspection
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
] ++ lib.optionals (withIntrospection && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [
glib
libgudev
libevdev
] ++ lib.optionals withIntrospection [
libgudev
];
mesonFlags = [
"-Ddoc=true"
(lib.mesonBool "doc" withIntrospection)
(lib.mesonEnable "gudev" withIntrospection)
(lib.mesonBool "introspection" withIntrospection)
(lib.mesonBool "vapi" withIntrospection)
];
doCheck = true;

View file

@ -12,6 +12,8 @@
, docbook_xml_dtd_42
, libgcrypt
, gobject-introspection
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, vala
, gi-docgen
, gnome
@ -24,7 +26,7 @@ stdenv.mkDerivation rec {
pname = "libsecret";
version = "0.20.5";
outputs = [ "out" "dev" "devdoc" ];
outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
@ -44,10 +46,11 @@ stdenv.mkDerivation rec {
docbook-xsl-nons
docbook_xml_dtd_42
libintl
gobject-introspection
vala
gi-docgen
glib
] ++ lib.optionals withIntrospection [
gi-docgen
gobject-introspection
];
buildInputs = [
@ -66,7 +69,12 @@ stdenv.mkDerivation rec {
gjs
];
doCheck = stdenv.isLinux;
mesonFlags = [
(lib.mesonBool "introspection" withIntrospection)
(lib.mesonBool "gtk_doc" withIntrospection)
];
doCheck = stdenv.isLinux && withIntrospection;
postPatch = ''
patchShebangs ./tool/test-*.sh

View file

@ -9,7 +9,9 @@
, libsysprof-capture
, sqlite
, glib-networking
, buildPackages
, gobject-introspection
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, vala
, libpsl
, python3
@ -22,7 +24,7 @@ stdenv.mkDerivation rec {
pname = "libsoup";
version = "3.2.2";
outputs = [ "out" "dev" "devdoc" ];
outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
@ -39,6 +41,7 @@ stdenv.mkDerivation rec {
pkg-config
glib
python3
] ++ lib.optionals withIntrospection [
gi-docgen
gobject-introspection
vala
@ -61,15 +64,16 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dtls_check=false" # glib-networking is a runtime dependency, not a compile-time dependency
"-Dgssapi=disabled"
"-Dvapi=enabled"
"-Dintrospection=enabled"
"-Dntlm=disabled"
# Requires wstest from autobahn-testsuite.
"-Dautobahn=disabled"
# Requires gnutls, not added for closure size.
"-Dpkcs11_tests=disabled"
] ++ lib.optionals (!stdenv.isLinux) [
"-Dsysprof=disabled"
(lib.mesonEnable "docs" withIntrospection)
(lib.mesonEnable "introspection" withIntrospection)
(lib.mesonEnable "sysprof" stdenv.isLinux)
(lib.mesonEnable "vapi" withIntrospection)
];
# TODO: For some reason the pkg-config setup hook does not pick this up.

View file

@ -15,6 +15,8 @@
, gnomeSupport ? true
, sqlite
, glib-networking
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
}:
stdenv.mkDerivation rec {
@ -37,6 +39,7 @@ stdenv.mkDerivation rec {
ninja
pkg-config
glib
] ++ lib.optionals withIntrospection [
gobject-introspection
vala
];
@ -58,6 +61,8 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dtls_check=false" # glib-networking is a runtime dependency, not a compile-time dependency
"-Dgssapi=disabled"
"-Dvapi=${if withIntrospection then "enabled" else "disabled"}"
"-Dintrospection=${if withIntrospection then "enabled" else "disabled"}"
"-Dgnome=${lib.boolToString gnomeSupport}"
"-Dntlm=disabled"
] ++ lib.optionals (!stdenv.isLinux) [

View file

@ -24,6 +24,8 @@
, useSystemd ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal
, systemdMinimal
, elogind
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
# A few tests currently fail on musl (polkitunixusertest, polkitunixgrouptest, polkitidentitytest segfault).
# Not yet investigated; it may be due to the "Make netgroup support optional"
# patch not updating the tests correctly yet, or doing something wrong,
@ -65,14 +67,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
glib
gtk-doc
pkg-config
gettext
meson
ninja
perl
rsync
gobject-introspection
(python3.pythonForBuild.withPackages (pp: with pp; [
dbus-python
(python-dbusmock.overridePythonAttrs (attrs: {
@ -85,7 +85,10 @@ stdenv.mkDerivation rec {
libxslt
docbook-xsl-nons
docbook_xml_dtd_412
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
] ++ lib.optionals withIntrospection [
gobject-introspection
gtk-doc
] ++ lib.optionals (withIntrospection && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
@ -113,7 +116,9 @@ stdenv.mkDerivation rec {
"-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
"-Dpolkitd_user=polkituser" #TODO? <nixos> config.ids.uids.polkituser
"-Dos_type=redhat" # only affects PAM includes
"-Dintrospection=${lib.boolToString withIntrospection}"
"-Dtests=${lib.boolToString doCheck}"
"-Dgtk_doc=${lib.boolToString withIntrospection}"
"-Dman=true"
] ++ lib.optionals stdenv.isLinux [
"-Dsession_tracking=${if useSystemd then "libsystemd-login" else "libelogind"}"

View file

@ -7,6 +7,8 @@
, pkg-config
, asciidoc
, gobject-introspection
, buildPackages
, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
, python3
, docbook-xsl-nons
, docbook_xml_dtd_45
@ -52,12 +54,14 @@ stdenv.mkDerivation rec {
pkg-config
asciidoc
gettext
glib
libxslt
wrapGAppsNoGuiHook
gobject-introspection
docbook-xsl-nons
docbook_xml_dtd_45
(python3.pythonForBuild.withPackages (p: [ p.pygobject3 ]))
] ++ lib.optionals withIntrospection [
gobject-introspection
];
buildInputs = [
@ -77,6 +81,8 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Ddocs=true"
(lib.mesonEnable "introspection" withIntrospection)
(lib.mesonBool "test_utils" withIntrospection)
] ++ (
let
# https://gitlab.gnome.org/GNOME/tracker/-/blob/master/meson.build#L159