Trying to layer a proprietary RPM fails on dbus errors

Hello,
I’m trying to install software for my USB oscilloscope. Since the installer makes changes in firewall and USB udev rules, I figured it would be better to layer it.

rom-ostree is failing and throwing this in the logs:

-- Boot 04308278b77c488aa45d161db8c18bf5 --
Jul 04 18:56:28 flint rpm-ostree(digilent.adept.runtime.post)[5088]: Failed to send reload request: No such file or directory
Jul 04 18:56:31 flint rpm-ostree(digilent.adept.runtime.post)[5148]: Error: DBUS_ERROR: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
Jul 04 18:56:31 flint rpm-ostree(digilent.adept.runtime.post)[5180]: Error: DBUS_ERROR: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory

A quick look reveals that the socket file is in fact present.

Can I do anything to fix this? Is there a way to use software with mandatory USB access out of toolbox? Do I have to switch to a mutable distro?

2 Likes

You can use rpmbuild - how to extract the instructions provided by the rpm spec file - Unix & Linux Stack Exchange to dump the post scripts from an RPM file and look at what they are doing:

$ rpm -qp --scripts foo.rpm > scripts

Another option is to mount a writable overlay on top of /usr and install the RPM:

$ sudo rpm-ostree usroverlay
$ rpm -Uvh foo.rpm

This will be cleaned-up on reboot but that should “make things work” in the meantime.

5 Likes

Added dbus

I’m trying to install the same software (Digilent Adept Runtime to support Digilent Waveforms), and here is the postinstall script: Fedora · GitHub

It’s not at all clear to me what’s causing the error (though I’m not an expert on rpm-ostree). When I edit the file to remove the postinstall stuff, I can even run the script successfully.

From a quick look, the udevadm & firewallcmd command will fail, as this is not a running system.

Makes sense. Is there any way to have it skip those commands? I guess I could temporarily replace the binaries with stubs lol

Another idea: is it possible for Digilent to have their RPM skip those commands when being used in an rpm-ostree context?