Red Hat Bugzilla – Bug 1466846
RFE: Xpresent 1.1 and Development headers
Last modified: 2017-07-03 03:24:05 EDT
I am requesting an update of the Xpresent library and Headers towards 1.1 version.
With Xfce4 (specially Xfwm4) moving towards 4.13.x and 4.14.x, the Window Manager has an option to test and compile in support for Xpresent when used together with the build in compositor (how exactly this mechanism all works is beyond my scope). Xfwm4 mandatorily requests Version 1.1 of Xpresent.
To test and support Xfce4 it would be necessary to find suitable development headers on a brand new Fedora system.
Therefore I request an update of Xpresent to Version 1.1 (and/or later) and matching header files, so we can build and test certain components of Xfce4 and - if necessary - report issues to upstream, so they can be addressed and fixed.
I would be perfectly happy to update it... but I don't see version 1.1 anywhere.
Is there somewhere you are seeing a 1.1 version?
Perhaps we should ask xfwm4 developers?
Looking at xfwm4, it looks like it needs 1.0 of libXpresent, but using the 1.1 prooclol.
What error(s) do you get when building it?
Well here some background:
Xfwm4 as in 4.12.x had some own Vsync and Vblank checking code inside. This has now recently (after the 4.13.0 release) been removed and now seem to cause some trouble with stuttering (tearing) window refreshs. I am not 100% sure whether this is related to the removal of Vsync and Vblank and still investigating into the issue (could also be a regression from other Fedora 26 updates that came in the same day when playing with a few Xfce4 Git stuff). Right now I am in the transition from glib-dbus to gdbus within Xfce4 and things work nicely. Even the panel (big gdbus transition) is working nicely now.
It was said that Xpresent could reduce that "stuttering" issue. Unfortunately all I was able to find within Fedora repo was Xpresent 1.0 and the configure script from Xfwm4 complains because it requires the 1.1 protos. It's also said that the 1.0 protos might be broken and shouldn't be used (even if it allows compiling).
;--- here the configure script output ---
checking LIBSTARTUP_NOTIFICATION_CFLAGS... -I/usr/include/startup-notification-1.0
checking LIBSTARTUP_NOTIFICATION_LIBS... -lstartup-notification-1
checking for XSyncQueryExtension in -lXext... yes
checking for RENDER... yes
checking for XRRUpdateConfiguration in -lXrandr... yes
checking for X11/extensions/Xrandr.h... yes
Package xpresent was not found in the pkg-config search path.
Perhaps you should add the directory containing `xpresent.pc'
to the PKG_CONFIG_PATH environment variable
Package 'xpresent', required by 'virtual:world', not found
checking for COMPOSITOR... yes
checking whether to build with debugging support... minimum
checking that generated files are newer than configure... done
configure: creating ./config.status
when installing the Xpresent 1.0 devel package the output looks differently. It then complains that 1.0 is too old and that it requires 1.1
More on that topic here:
Btw: Xfce4 4.13.x is shaping up nicely.
Created attachment 1293332 [details]
Xfce 4.13.x with gdbus ported xfce4-panel :)
I think I figured something now...
The Xfwm 4.13.0 release wants only:
m4_define([xpresent_minimum_version], [1.0]) <--- 1.0
The Xfwm 4.13.x from Git wants:
m4_define([xpresent_minimum_version], [1.0]) <--- 1.0
m4_define([presentproto_minimum_version], [1.1]) <--- 1.1
... added presentproto 1.1 but the configure script made me believe that "just" installing the xpresent-devel package is enough. At least I thought it was part of it and all I needed ...
Unfortunately there is no presentproto(-devel) in the Fedora repos. Thus can't be installed...
The presentproto-1.1 release from January this year can be found here:
That's most likely what the configure script is asking for...
Is it possible to get an RPM for this ?
Edit: Just found this
But it includes presentproto 1.0 (from 2013) rather than 1.1 (from 2017).
Now found the right package... with old development stuff inside :(
Ah ha. Moving this to xorg-x11-proto-devel. :)
Yes thanks... I was a bit unsure because I am out dealing with X11 specific things for over 13 years now... I do some development with Gtk+ every now and then but usually pull in the metapackage:
dnf group install "X Software Development"
... and never look back :)
But the proto-devel package needs some love as it looks like...
Please also add "libXpresent-devel" in the "X Software Development" meta package!
Sorry there is some confusion and this is mostly my fault, it seems some (other) distributions are shipping and using an older version of presentproto which don't have a fix from upstream , which is causing a bug in xfwm4 (development version from git) when using libXpresent.
The presentproto included in Fedora xorg-x11-proto-devel has that fix (thanks ajax!) for quite a long time now (Jan. 2014) so there is no real need for presentproto 1.1 other than a fake requirement in xfwm4.
The reason I bumped the requirement for presentproto 1.1 in xfwm4 in git (not released) was to avoid the older, unpatched version of presentproto but it appears it's not a good idea, because distributions may update the presentproto headers only, which is useless unless libXpresent is rebuilt with the patched version, so making that requirement in xfwm4 has little benefit.
tl;dr; xfwm4 doesn't really need presentproto 1.1 and Fedora has the fix anyway, even if it's not shipping presentproto 1.1