7 , gobject-introspection
9 , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
10 , gsettings-desktop-schemas
22 , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd
25 stdenv.mkDerivation rec {
26 pname = "at-spi2-core";
29 outputs = [ "out" "dev" ];
30 separateDebugInfo = true;
33 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
34 hash = "sha256-1+7n51vt3MJyztwrYFNWAPOq5uSBWJ68Znr8Q3wKYHk=";
43 ] ++ lib.optionals withIntrospection [
50 # at-spi2-core can be build without X support, but due it is a client-side library, GUI-less usage is a very rare case
53 # libXext is a transitive dependency of libXi
55 ] ++ lib.optionals systemdSupport [
56 # libsystemd is a needed for dbus-broker support
60 # In atspi-2.pc dbus-1 glib-2.0
61 # In atk.pc gobject-2.0
62 propagatedBuildInputs = [
67 # fails with "AT-SPI: Couldn't connect to accessibility bus. Is at-spi-bus-launcher running?"
71 # Provide dbus-daemon fallback when it is not already running when
72 # at-spi2-bus-launcher is executed. This allows us to avoid
73 # including the entire dbus closure in libraries linked with
74 # the at-spi2-core libraries.
75 "-Ddbus_daemon=/run/current-system/sw/bin/dbus-daemon"
76 ] ++ lib.optionals systemdSupport [
77 # Same as the above, but for dbus-broker
78 "-Ddbus_broker=/run/current-system/sw/bin/dbus-broker-launch"
79 ] ++ lib.optionals (!systemdSupport) [
84 updateScript = gnome.updateScript {
86 versionPolicy = "odd-unstable";
91 # Cannot use wrapGAppsHook'due to a dependency cycle
92 wrapProgram $out/libexec/at-spi-bus-launcher \
93 --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \
94 --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}
98 description = "Assistive Technology Service Provider Interface protocol definitions and daemon for D-Bus";
99 homepage = "https://gitlab.gnome.org/GNOME/at-spi2-core";
100 license = licenses.lgpl21Plus;
101 maintainers = teams.gnome.members ++ (with maintainers; [ raskin ]);
102 platforms = platforms.unix;