DBus woes with Fedora in a chroot
If you try to run Fedora in a chroot you may encounter a very annoying issue of DBus simply not working at all. I was trying to install XFCE4.12 inside my Fedora 23 chroot in the GNURoot application and I was getting these errors:
(xfce4-session:32537): xfce4-session-CRITICAL **: Unable to contact D-Bus session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
The same error was also present in the GNURoot Debian app. Fortunately it wasn’t showing in the old, old Fedora 17 chroot, where XFCE4.8 worked like a charm.
So I thought it is a XFCE4 issue. Sadly this wasn’t the case and I lost much precious time trying to debug this. Fortunately after much trial and error I can offer a simple solution (which isn’t pretty) but it works. You will have to downgrade DBus. You will not be able to do it with dnf, since dnf itself depends on it. So we will have to it manually.
You will need the following RPMs (just find a close F21 mirror and you will be able to find them):
dbus-1.8.6-3.fc21.armv7hl.rpm dbus-glib-0.100.2-4.fc21.armv7hl.rpm dbus-libs-1.8.6-3.fc21.armv7hl.rpm python3-dbus-1.2.0-7.fc21.armv7hl.rpm dbus-x11-1.8.6-3.fc21.armv7hl.rpm
So, first install XFCE with:
dnf install @xfce
dnf install @xfce-desktop
if you want the full package, then you will have to download the 5 RPMs mentioned above and unpack them to
cd / rpm2cpio [path to rpm] | cpio -idmvu
Do this for all 5 files and restart the chroot. Afterwards you should be able to run XFCE with a simple:
DISPLAY=:0 XARGS='-nolisten tcp' HOME=/root startxfce4
This is a pretty bad hack, and even though I haven’t noticed any weird behavior YMMV so be careful.
I haven’t tried this in GNURoot Jessie version but I’m pretty sure it will work there too, just find the appropriate packages.
GNURoot sometimes binds
/etc in fedora chroot which may get in the way. If that’s the case, you can rename your chroot and support folder to
wheezy or download the updated chroot I’ve built here which fixes the problem:
https://drive.google.com/file/d/0B-Bo26Xjw1ecanRDUmFPbTFXaUk/view?usp=sharing SHA256: ccde15611b84c4b7cf2657c4984889e72850700611f645b2e1bc02a9f5af90e5