`backintime` fails to launch

I’m using NixOS 22.05 and backintime fails on launch. Here is the output:

~ ❯ backintime-qt

Back In Time
Version: 1.3.2

Back In Time comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; type `backintime --license' for details.

Traceback (most recent call last):
  File "/nix/store/1cky5fy5w35wzdgdmjn8ll89h3b077w8-python3-3.9.13-env/lib/python3.9/site-packages/dbus/bus.py", line 177, in activate_name_owner
    return self.get_name_owner(bus_name)
  File "/nix/store/1cky5fy5w35wzdgdmjn8ll89h3b077w8-python3-3.9.13-env/lib/python3.9/site-packages/dbus/bus.py", line 361, in get_name_owner
    return self.call_blocking(BUS_DAEMON_NAME, BUS_DAEMON_PATH,
  File "/nix/store/1cky5fy5w35wzdgdmjn8ll89h3b077w8-python3-3.9.13-env/lib/python3.9/site-packages/dbus/connection.py", line 652, in call_blocking
    reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'net.launchpad.backintime.serviceHelper': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/nix/store/0g52wxdnzxjhd1fvqpj8irwfhvjy4xir-backintime-qt-1.3.2/share/backintime/qt/app.py", line 1592, in <module>
    cfg = backintime.startApp('backintime-qt')
  File "/nix/store/h66zqlqn4zy8fnbcz8j37pi00gfn4bxp-backintime-common-1.3.2/lib/python3.9/site-packages/backintime/common/backintime.py", line 521, in startApp
    return getConfig(args, False)
  File "/nix/store/h66zqlqn4zy8fnbcz8j37pi00gfn4bxp-backintime-common-1.3.2/lib/python3.9/site-packages/backintime/common/backintime.py", line 669, in getConfig
    cfg = config.Config(config_path = args.config, data_path = args.share_path)
  File "/nix/store/h66zqlqn4zy8fnbcz8j37pi00gfn4bxp-backintime-common-1.3.2/lib/python3.9/site-packages/backintime/common/config.py", line 280, in __init__
    self.setupUdev = tools.SetupUdev()
  File "/nix/store/h66zqlqn4zy8fnbcz8j37pi00gfn4bxp-backintime-common-1.3.2/lib/python3.9/site-packages/backintime/common/tools.py", line 1722, in __init__
    conn = bus.get_object(SetupUdev.CONNECTION, SetupUdev.OBJECT)
  File "/nix/store/1cky5fy5w35wzdgdmjn8ll89h3b077w8-python3-3.9.13-env/lib/python3.9/site-packages/dbus/bus.py", line 241, in get_object
    return self.ProxyObjectClass(self, bus_name, object_path,
  File "/nix/store/1cky5fy5w35wzdgdmjn8ll89h3b077w8-python3-3.9.13-env/lib/python3.9/site-packages/dbus/proxies.py", line 250, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/nix/store/1cky5fy5w35wzdgdmjn8ll89h3b077w8-python3-3.9.13-env/lib/python3.9/site-packages/dbus/bus.py", line 182, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/nix/store/1cky5fy5w35wzdgdmjn8ll89h3b077w8-python3-3.9.13-env/lib/python3.9/site-packages/dbus/bus.py", line 277, in start_service_by_name
    return (True, self.call_blocking(BUS_DAEMON_NAME, BUS_DAEMON_PATH,
  File "/nix/store/1cky5fy5w35wzdgdmjn8ll89h3b077w8-python3-3.9.13-env/lib/python3.9/site-packages/dbus/connection.py", line 652, in call_blocking
    reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: Cannot launch daemon, file not found or permissions invalid
WARNING: import keyring failed

In the wiki of ubunutuuser.de there is a launch problem mentioned that can be overcome by changing line 1805 of /usr/share/backintime/common/tools.py from class OrderedSet(collections.MutableSet): to class OrderedSet(collections.abc.MutableSet).

However, i don’t know if this is the problem in my case and if it’s applicable to NixOS. Any help is appreciated.

I never used backintime nor I have a computer to test, but after a quick search it seems like this bug was obtained by many people as reported here : BiT does not start: "Could not get owner of name 'net.launchpad.backintime.serviceHelper': no such name", related to pyqt5 and/or dbus packages · Issue #921 · bit-team/backintime · GitHub

The issue can be triggered due to various reasons, but apparently until version 1.3.2 both backintime-common and backintime-qt (alias to backintime) must be installed as reported in this recent PR that aims to fix (partially?) the bug: https://github.com/bit-team/backintime/pull/1335/files

Important:* Until version 1.3.2 there was a bug that caused backintime failed to start if the package backintime-qt was not installed.
As work-around also install backintime-qt because the missing Udev serviceHelper system D-Bus daemon is packaged there.

Secondly, you also need dbus to be enabled. If you are on NixOs can you maybe add in your configuration services.dbus.enable = true;?

If all of this fails, maybe let us know how you install the package and onwhich system.

Alright, thank you for the hint. I’ll try that, dbus is already enabled.