Search code examples
awesome-wm

No RandR 1.5 support in test install of awesome 4.0, what to check?


Of course I think I've installed all the dependencies. The new API docs look great but I can't find any installation debugging tips. I'm chasing references to RandR in the build directory with grep, trying to figure out what exactly the version check isn't finding. Any better advice?

Here are all the dependency checks during cmake:

-- git -> /usr/bin/git
-- asciidoc -> /usr/bin/asciidoc
-- xmlto -> /usr/bin/xmlto
-- gzip -> /bin/gzip
-- ldoc -> /usr/local/bin/ldoc
-- convert -> /usr/bin/convert
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Found Lua: /usr/lib/x86_64-linux-gnu/liblua5.1.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "5.1.5") 
-- Using version from git: v4.0-105-gbfb3534
-- Checking for module 'xcb>=1.6'
--   Found xcb, version 1.11.1
-- Checking for module 'glib-2.0'
--   Found glib-2.0, version 2.48.1
-- Checking for module 'gdk-pixbuf-2.0'
--   Found gdk-pixbuf-2.0, version 2.32.2
-- Checking for module 'cairo'
--   Found cairo, version 1.14.6
-- Checking for module 'x11'
--   Found x11, version 1.6.3
-- Checking for module 'xcb-cursor'
--   Found xcb-cursor, version 0.1.1
-- Checking for module 'xcb-randr'
--   Found xcb-randr, version 1.11.1
-- Checking for module 'xcb-xtest'
--   Found xcb-xtest, version 1.11.1
-- Checking for module 'xcb-xinerama'
--   Found xcb-xinerama, version 1.11.1
-- Checking for module 'xcb-shape'
--   Found xcb-shape, version 1.11.1
-- Checking for module 'xcb-util>=0.3.8'
--   Found xcb-util, version 0.4.0
-- Checking for module 'xcb-keysyms>=0.3.4'
--   Found xcb-keysyms, version 0.4.0
-- Checking for module 'xcb-icccm>=0.3.8'
--   Found xcb-icccm, version 0.4.1
-- Checking for module 'xcb-xkb'
--   Found xcb-xkb, version 1.11.1
-- Checking for module 'xkbcommon'
--   Found xkbcommon, version 0.5.0
-- Checking for module 'xkbcommon-x11'
--   Found xkbcommon-x11, version 0.5.0
-- Checking for module 'cairo-xcb'
--   Found cairo-xcb, version 1.14.6
-- Checking for module 'libstartup-notification-1.0>=0.10'
--   Found libstartup-notification-1.0, version 0.12
-- Checking for module 'xproto>=7.0.15'
--   Found xproto, version 7.0.28
-- Checking for module 'libxdg-basedir>=1.0.0'
--   Found libxdg-basedir, version 1.2.0
-- Checking for module 'xcb-xrm'
--   Found xcb-xrm, version 1.2
-- Checking for modules 'glib-2.0;gdk-pixbuf-2.0;cairo;x11;xcb-cursor;xcb-randr;xcb-xtest;xcb-xinerama;xcb-shape;xcb-util>=0.3.8;xcb-keysyms>=0.3.4;xcb-icccm>=0.3.8;xcb-xkb;xkbcommon;xkbcommon-x11;cairo-xcb;libstartup-notification-1.0>=0.10;xproto>=7.0.15;libxdg-basedir>=1.0.0;xcb-xrm'
--   Found glib-2.0, version 2.48.1
--   Found gdk-pixbuf-2.0, version 2.32.2
--   Found cairo, version 1.14.6
--   Found x11, version 1.6.3
--   Found xcb-cursor, version 0.1.1
--   Found xcb-randr, version 1.11.1
--   Found xcb-xtest, version 1.11.1
--   Found xcb-xinerama, version 1.11.1
--   Found xcb-shape, version 1.11.1
--   Found xcb-util, version 0.4.0
--   Found xcb-keysyms, version 0.4.0
--   Found xcb-icccm, version 0.4.1
--   Found xcb-xkb, version 1.11.1
--   Found xkbcommon, version 0.5.0
--   Found xkbcommon-x11, version 0.5.0
--   Found cairo-xcb, version 1.14.6
--   Found libstartup-notification-1.0, version 0.12
--   Found xproto, version 7.0.28
--   Found libxdg-basedir, version 1.2.0
--   Found xcb-xrm, version 1.2
-- Looking for backtrace_symbols
-- Looking for backtrace_symbols - found
-- checking for execinfo -- found
-- Looking for round
-- Looking for round - not found
-- Looking for round
-- Looking for round - found
-- checking for round -- in libm
-- Checking for module 'dbus-1'
--   Found dbus-1, version 1.10.6

It doesn't appear to check for libxrandr2 (version 1.5.0), that's installed too.


Solution

  • First: Do you need RandR 1.5 support? If the answer is "no" or "I don't know", then, well.... ;-)

    Then, to actually answer your question: For RandR 1.5 support you need a version of libxcb built with RandR 1.5 support. Which means you need a version of libxcb built with xcb-proto 1.12 (and might mean that you need libxcb 1.12).

    You can check yourself via the following:

    $ grep _VERSION /usr/include/xcb/randr.h          
    #define XCB_RANDR_MAJOR_VERSION 1
    #define XCB_RANDR_MINOR_VERSION 5
    #define XCB_RANDR_QUERY_VERSION 0
    

    (Ignore the last line of the result, the first two show that this is RandR 1.5)