Compiz compiling help

I’m trying to get compiz working - I had used it for years, but now I’m having problems.

This is a new/fresh install from: manjaro-xfce-21.2.1-220103-linux515.iso

So I’m using xfce.

I installed compiz-easy-patch - using pamac GUI with AUR enabled.

It compiled and worked - at first time of installing.

But there was a bug/crash that I got.

When I drag out a new window/object, compiz throws an exception, that gets caught - but all the windows are moved into the same workspace/screen. After that first crash/recover, compiz has fixed itself and the crash does not happen again.

eg. in mousepad, if I drag-out a tab to become a separate new window for the tab/file, or if I drag an email to a different folder in thunderbird.

I would say the crash sounds exactly like the one described here:

but my cause may be different.

So then I tried removing compiz-easy-patch, and installing compiz from other sources (like the 0.8 version), and they were not complete, so everything got removed.

Now with all my previous efforts removed and cleaned, when I try to install compiz-easy-patch again, it error’s out when compiling:

[ 16%] Generating zh_TW/LC_MESSAGES/
[ 16%] Linking CXX static library libcompiz_grid_grabhandler.a
[ 16%] Generating zu/LC_MESSAGES/
/var/tmp/pamac-build-coach/compiz-easy-patch/src/compiz- warning: header field 'Language' missing in header
/var/tmp/pamac-build-coach/compiz-easy-patch/src/compiz- warning: header field 'Language' missing in header
/var/tmp/pamac-build-coach/compiz-easy-patch/src/compiz- warning: header field 'Language' missing in header
/var/tmp/pamac-build-coach/compiz-easy-patch/src/compiz- warning: header field 'Language' missing in header
/var/tmp/pamac-build-coach/compiz-easy-patch/src/compiz- warning: header field 'Language' missing in header
[ 16%] Built target compiz_grid_grabhandler
[ 16%] Linking CXX static library libcompiz_string.a
[ 16%] Built target compiz_string
[ 16%] Built target nls
make: *** [Makefile:166: all] Error 2
==> ERROR: A failure occurred in build().

It does that with both the pamac GUI and from:

$ pikaur -S --noconfirm compiz-easy-patch

Any help on how to build, or track down the error better would be helpful.


Alright, I’m seeing some bizarre behavior when compiling that package.

Compiling using the following:

git clone
cd compiz-easy-patch && makepkg -s --noconfirm

The first time i compile it, it works. However, if I remove the compiz-easy-patch folder, then compile it again (using the same commands as above), it fails with that error message.

If I reboot, I can compile it again, but subsequent compilations give that error. Clearing /tmp and .cache folders don’t appear to make a difference.

the compizAUR package has the same compiling issue (first time works, subsequent times fail). compiling either of these packages once will prevent either from successfully compiling until after a reboot.

On the bright side, we now know how to re-create that issue at will (just compile it once, then compile it again immediately afterward).

So I may have found a workaround…

half the time, if i go to compile it and it fails, it will succeed after some cleanup and switching to a different terminal.

try the build:

git clone
cd compiz-easy-patch && makepkg -s

If it fails, run the following:

sudo rm -rf pkg
rm -rf ./src/compiz-*/build

close the terminal, then open another in the same location (compiz-easy-patch) and run the following:

sleep 60; makepkg -si --noextract

i’m not sure why this appears to work. maybe a race condition, and/or leftover items set in the bash environment (although I’ve compared printenv for before and after and there doesn’t appear to be any differences).

You could try removing the "${srcdir}/${_name}-${pkgver}/build" dir if it exist

possibly adding a remove command in the build() function


build() {
    cd "${srcdir}/${_name}-${pkgver}"
    [[ -d ./build ]] && rm -rf ./build
    mkdir build; cd build


Another option to build is using chrootbuild as the makepkg process will look at the system packages and include those in .SCRINFO and this could - perhaps - I really have no idea what I am talking about … :scream:

 sudo pacman -Syu manjaro-chrootbuild

Assuming a tree like this sources/compiz-easy-patch

├── compiz-easy-patch
│   ├── compiz-easy-defaults.patch
│   ├── compiz-easy.gschema.override
│   ├── compiz-easy-patch.install
│   ├── compiz-gtk-decorator-theme-selector
│   ├── compiz-gtk-decorator-theme-selector.desktop
│   ├── compiz-xfce-autostart-setup
│   ├── compiz-xfce-autostart-setup.desktop
│   ├── compiz-xfce-uninstall-helper
│   ├── compiz-xfce-uninstall-helper.desktop
│   ├── focus-prevention-disable.patch
│   ├── gcc10_common_fix.patch
│   ├── gtk-extents.patch
│   ├── LICENSE
│   ├── no-compile-gschemas.patch
│   ├── PKGBUILD
│   ├──
│   ├── remove-unused-or-broken-buttons.patch
│   ├── reverse-unity-config.patch
│   └── screenshot-launch-fix.patch

Navigate to the sources folder and run chrootbuild

sudo chrootbuild -p compiz-easy-patch

The resulting packages differs in size - I have no idea why - that would require some deeper investigation - a task for another time - one quick-draw is the size of .SRCINFO :person_shrugging: due to the lesser amount of packages in the chroot.

  • makepkg -s
    -rw-r--r-- 1 fh fh 6771081 Mar 27 08:27 compiz-easy-patch-
  • chrootbuild -p compiz-easy-patch
    -rw-r--r-- 1 fh fh 6756568 Mar 27 08:58 compiz-easy-patch-

Thanks @lectrode - the first build worked, so now I have:

compiz- = 3903188
compiz-easy-patch- = 6771406

Which one do I install (using pacman -U ./XXX)?

Or should I run:

makepkg --install


make install

and from which sub-directory?

And, should I also install metacity too?

the .pkg.tar.zst is the installation package. you can install it with

sudo pacman -U *.pkg.tar.zst

metacity should be automatically installed as a dependency for compiz-easy-patch when you install it.

Thanks - so far, so good.

It’s running, no crash.

I’ll do my config and use it for a bit…


Ah, that didn’t last long.

The ‘no crash’ was just for the first running of compiz, right after the compile.

Ever since then, I get the crash when dragging out a new window (eg. 2 tabs in mousepad, drag one out).

It does output this error:

/usr/include/c++/11.2.0/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = float; _Alloc = std::allocator<float>; std::vector<_Tp, _Alloc>::reference = float&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__n < this->size()' failed.

[1]+  Aborted                 (core dumped) compiz --replace

Again, only crashed for the first run. There after, it does not crash.

Also, with the window style/appearance theme of ‘Adwaita’, the xfce4-terminal is missing its window borders.

I think that may be related to /usr/share/themes/Adwaita not having a ‘metacity-1’ sub-directory?

So I installed’ xfce-theme-greybird’ and use Greybird for my themes.

It’s not exactly the look I want, but I can live with it.

Thank you sir! The chrootbuild worked. Compiz is running again.

One thing I’m wondering: At start chrootbuild seemed to download a bunch of packages. Are these files permanently installed, or will the only reside during build?

The default is to create the root in /var/lib/chrootbuild and the destination is not removed afterwards but reused/updated when chrootbuild is run next time.

$ sudo du --si /var/lib/chrootbuild | tail -1
2,5G    /var/lib/chrootbuild/
1 Like

sudo du -si /var/lib/chrootbuild|tail -1

produces: du: invalid option -- 'i'

without “i” it boils down to:
2155520 /var/lib/chrootbuild

So what am I missing?

the i is likely supposed to be an h for “human readable”


It is a typo - it should have –si