Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 811789

Summary: app-accessibility/at-spi2-core-2.40.3 misses dependencies on systemd
Product: Gentoo Linux Reporter: Alexey <alexey+gentoo>
Component: Current packagesAssignee: Gentoo Linux Gnome Desktop Team <gnome>
Status: CONFIRMED ---    
Severity: normal CC: alexey+gentoo, bebl, prefix, sam
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=811795
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build.log
emerge --info

Description Alexey 2021-09-05 20:22:45 UTC
Created attachment 737833 [details]
build.log

Did not find CMake 'cmake'
Found CMake: NO
Run-time dependency libsystemd found: NO (tried pkgconfig)

../at-spi2-core-2.40.3/bus/meson.build:75:2: ERROR: Dependency "libsystemd" not found, tried pkgconfig
Comment 1 Alexey 2021-09-05 20:23:40 UTC
Created attachment 737836 [details]
emerge --info
Comment 2 Alexey 2021-09-05 20:53:29 UTC
I suspect the problem is this:

Program dbus-daemon found: YES (/home/user/gentoo/usr/bin/dbus-daemon)
Program dbus-broker-launch found: YES (/usr/bin/dbus-broker-launch)

which triggers this dependency on systemd in bus/meson.build:

  dbus_broker = find_program('dbus-broker-launch',
                             required: false)
  if dbus_broker.found()
    launcher_args += '-DDBUS_BROKER="@0@"'.format(dbus_broker.path())
    needs_systemd = true
  endif

maybe find_program() should ignore programs outside of EPREFIX?
Comment 3 Matt Turner gentoo-dev 2021-09-06 19:50:25 UTC
If Meson fails to find a dependency with pkgconfig, it tries with cmake. cmake is not a dependency of the package.
Comment 4 Matt Turner gentoo-dev 2021-09-06 20:15:59 UTC
I think you're right.

Looks like we need to fix meson.build to not check for dbus-broker if default_bus == dbus-daemon.
Comment 5 Benjamin Block 2023-04-04 15:37:31 UTC
I have the same problem now in =app-accessibility/at-spi2-core-2.48.0 and prefix. It used to work with =app-accessibility/at-spi2-core-2.46.0, but I think that was not due to any change in the package, but because the underlying Fedora (the host for the Gentoo prefix) started to use `dbus-broker` over the last upgrade I did on it.

Because of the this, the check in `bus/meson.build`:

    needs_systemd = false
    if get_option('dbus_broker') != 'default'
      launcher_args += '-DDBUS_BROKER="@0@"'.format(get_option('dbus_broker'))
      needs_systemd = true
    else
      dbus_broker = find_program('dbus-broker-launch',
                                 required: false)
      if dbus_broker.found()
        launcher_args += '-DDBUS_BROKER="@0@"'.format(dbus_broker.full_path())
        needs_systemd = true
      endif
    endif

now finds `dbus-broker-launch`, and wants libsystemd, which can't be installed in prefix (which is probably expected).

The dependency is pulled in by gtk+, which is pulled by gvim, and a couple of other things I have installed in the prefix.

For now I can just mask the update and pretend nothing changed, but that will probably not work for all that much longer going forwards.
Comment 6 Benjamin Block 2023-06-13 09:03:27 UTC
(In reply to Benjamin Block from comment #5)
> I have the same problem now in =app-accessibility/at-spi2-core-2.48.0 and
> prefix. It used to work with =app-accessibility/at-spi2-core-2.46.0, but I
> think that was not due to any change in the package, but because the
> underlying Fedora (the host for the Gentoo prefix) started to use
> `dbus-broker` over the last upgrade I did on it.
> 
> Because of the this, the check in `bus/meson.build`:
> 
>     needs_systemd = false
>     if get_option('dbus_broker') != 'default'
>       launcher_args +=
> '-DDBUS_BROKER="@0@"'.format(get_option('dbus_broker'))
>       needs_systemd = true
>     else
>       dbus_broker = find_program('dbus-broker-launch',
>                                  required: false)
>       if dbus_broker.found()
>         launcher_args +=
> '-DDBUS_BROKER="@0@"'.format(dbus_broker.full_path())
>         needs_systemd = true
>       endif
>     endif
> 
> now finds `dbus-broker-launch`, and wants libsystemd, which can't be
> installed in prefix (which is probably expected).

This went away again with at least `app-accessibility/at-spi2-core-2.48.3`, as that now has a use-flag `dbus-broker`, which is disabled by default (at least in Gentoo prefix), and so that check presumably intentionally disables this; making the package build again.