Bug 1466846 - RFE: Xpresent 1.1 and Development headers
Summary: RFE: Xpresent 1.1 and Development headers
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-proto-devel
Version: 28
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: X/OpenGL Maintenance List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-06-30 14:20 UTC by Ali Akcaagac
Modified: 2018-03-21 16:40 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-03-21 16:40:46 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Xfce 4.13.x with gdbus ported xfce4-panel :) (958.56 KB, image/png)
2017-06-30 19:42 UTC, Ali Akcaagac
no flags Details

Description Ali Akcaagac 2017-06-30 14:20:27 UTC
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.

Thank you.

Comment 1 Kevin Fenzi 2017-06-30 18:53:23 UTC
I would be perfectly happy to update it... but I don't see version 1.1 anywhere. 

https://cgit.freedesktop.org/xorg/lib/libXpresent/

Is there somewhere you are seeing a 1.1 version?

Perhaps we should ask xfwm4 developers?

Comment 2 Kevin Fenzi 2017-06-30 18:58:21 UTC
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?

Comment 3 Ali Akcaagac 2017-06-30 19:41:04 UTC
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:
https://bugzilla.xfce.org/show_bug.cgi?id=13696
https://bugzilla.xfce.org/show_bug.cgi?id=13519

Specifically:
https://bugzilla.xfce.org/show_bug.cgi?id=13696#c8
https://bugzilla.xfce.org/show_bug.cgi?id=13696#c9

https://bugzilla.xfce.org/show_bug.cgi?id=13519#c3
https://bugzilla.xfce.org/show_bug.cgi?id=13519#c5

Btw: Xfce4 4.13.x is shaping up nicely.

Comment 4 Ali Akcaagac 2017-06-30 19:42:07 UTC
Created attachment 1293332 [details]
Xfce 4.13.x with gdbus ported xfce4-panel :)

Comment 5 Ali Akcaagac 2017-06-30 20:47:12 UTC
I think I figured something now...

The Xfwm 4.13.0 release wants only:

xpresent 1.0

m4_define([libepoxy_minimum_version], [1.0])
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:

https://www.x.org/archive/individual/proto/
https://www.x.org/archive/individual/proto/presentproto-1.1.tar.bz2

That's most likely what the configure script is asking for...

Is it possible to get an RPM for this ?

Edit: Just found this

xorg-x11-proto-devel-7.7-22.fc26.noarch.rpm

But it includes presentproto 1.0 (from 2013) rather than 1.1 (from 2017).
Now found the right package... with old development stuff inside :(

Comment 6 Kevin Fenzi 2017-06-30 20:57:41 UTC
Ah ha. Moving this to xorg-x11-proto-devel. :)

Comment 7 Ali Akcaagac 2017-06-30 21:07:53 UTC
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...

Comment 8 Ali Akcaagac 2017-07-01 15:12:11 UTC
Please also add "libXpresent-devel" in the "X Software Development" meta package!

Comment 9 Olivier Fourdan 2017-07-03 07:24:05 UTC
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 [1], 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

[1] https://cgit.freedesktop.org/xorg/proto/presentproto/commit/?id=8405ee4

Comment 10 Ali Akcaagac 2018-03-21 16:40:46 UTC
Fixed for F28 branch. Therefore closing.


Note You need to log in before you can comment on or make changes to this bug.