How do you get picom vNext pre-release to work on dom0?

I’ve tried building and installing picom on a Debian 10 based AppVM and installing the installed files into dom0 using a custom script of mine. The only thing I haven’t gotten to work so far is the configuration for picom’s “blur-background-exclude” and “focus-exclude”. Trying to add such configuration just causes picom to crash on startup. I get a “Segmentation fault (core dumped)”. Is there a foolproof way to fix this? Better yet, could someone on the Qubes team package the pre-release so that users could easily have a compositor with dual-filter Kawase blur on their Qubes systems?

I doubt this will happen. The Qubes team is probably already very thinly stretched and this does not really add any significant capabilities to Qubes. Not to mention that the number of people who would use it would probably be tiny (I had to look up myself what picom is).

dom0 in Qubes 4.0 is based on Fedora 25. You should figure out how to install whatever you want to install in Fedora 25 and then it should work for dom0.

Yeah I figured that.

Maybe it doesn’t hurt to ask though. I think picom’s quite popular among people who use tiling window managers.

So where can I find a Fedora 25 template if that’s what I need to build RPMs for dom0? I can’t find information on this matter.

It looks like it is not available for Qubes 4, which I’m sure you already checked. I guess you can try to install Fedora 25 in a standalone HVM.

You know, I think the Qubes team should be more transparent about this to take the guesswork out of the game. User error could be avoided if they provided us with proper instructions. Not only would it be user-friendly, but it could actually increase system security, I think. Especially since Fedora 25’s life has already ended.

They discuss this at Supported Versions | Qubes OS

Do you mean for compiling RPMs for dom0? It’s a niche scenario and as you are finding out, not that straightforward. I mean you can always just compile things in dom0 but this goes against the idea of minimizing dom0.

Yes, I’m talking about compiling RPMs for dom0. I came to Qubes for more system security, but not at the expense of it feeling like a walled garden. This is Linux after all.

This is in part a question about Fedora. There’s no need to have a Fedora 25 template, you can just use a chroot. The simplest way to build a fc25 rpm is to install the package mock. Copy /etc/mock/fedora-32-x86_64.cfg to fedora-25-x86_64.cfg and edit releasever to build for Fedora 25. Then just run mock -r fedora-25-x86_64.cfg $srpm for your source rpm you want to build.

(If you want your chroot to persist in an AppVM, you might want to change the configurations for basedir and cache_topdir to local directories. These are documented in /usr/share/doc/mock/site-defaults.cfg.)

1 Like

I tried creating the SRPM for picom vNext manually because mock wouldn’t do it using the option --buildsrpm. However I always end up getting the same error when running mock:

Transaction Check Error:
  file /usr/libexec/getconf/default conflicts between attempted installs of gcc-6.4.1-1.fc25.i686 and gcc-6.4.1-1.fc25.x86_64

I found and extracted the spec file from picom-8.2-1.fc32.src.rpm | RPM Info | koji and just changed the version string in it into “vNext”. Also I’m using a Debian 10 based AppVM for the entire task.

I get the same error when running mock with the linked picom-8.2-1.fc32.src.rpm. Could someone try to build the picom 8.2 or vNext RPM using mock and explain how to do it successfully?

expense of it feeling like a walled garden.

No idea what you are talking about.

  • install Fedora 25 into a HVM, compile & transfer
  • compile directly in dom0 (and then reinstall Qubes OS if you are not
    sure what you did)
  • install Fedora 25 on another machine, compile & transfer

The options are limitless.

This is Linux after all.


Maybe you’d understand if you were in my shoes. Let me explain. I’m still pretty new to Qubes, and I’m used to just be able to compile and install stuff without any extra hassle. I didn’t think it’s too much to ask for documentation since I want to do things correctly. I didn’t even know if there’s a recommended Qubes-specific way to compile RPMs for dom0. How does the Qubes team do it? If I don’t know how to do stuff, then it’s just natural that it could feel almost the same as if I used a closed system.

I hadn’t even thought about using an HVM, I think I’ll go this route.