FS#37728 - [libxcb] 1.9.3 introduce API breakage

Attached to Project: Arch Linux
Opened by Andrea Scarpino (BaSh) - Monday, 11 November 2013, 11:25 GMT
Last edited by Jan de Groot (JGC) - Monday, 23 December 2013, 17:09 GMT
Task Type Bug Report
Category Upstream Bugs
Status Closed
Assigned To Jan de Groot (JGC)
Andreas Radke (AndyRTR)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 10
Private No

Details

Description:
Qt5 applications segfaults after the update to libxcb 1.9.3.

Rebuilding Qt5, I got:
qxcbconnection.cpp:1712:24: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]

I reported this to qt devs, but looks like XCB guys changed API without bumping the library so?

Additional info:
* libxcb 1.9.3-1
This task depends upon

Closed by  Jan de Groot (JGC)
Monday, 23 December 2013, 17:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed in 1.10.
Comment by Jan de Groot (JGC) - Monday, 11 November 2013, 12:19 GMT
Qt is shuffling some fields around in the xcb_ge_event_t structure. The updated libxcb removed the definition of this struct and replaced it with an autogenerated version. The autogenerated definition of xcb_ge_event_t is ABI compatible, but not API compatible, as the 1st padding is called "extension" now and the 2nd and 3rd padding are concated together into pad0. As Qt is shuffling around the struct by accessing pad0, it hits the 2nd+3rd padding field instead of the original pad0 field.
Comment by Andrea Scarpino (BaSh) - Monday, 11 November 2013, 13:26 GMT
Thanks for the explanation Jan. I'll try to make and send a patch for Qt.
Comment by Andrea Scarpino (BaSh) - Monday, 11 November 2013, 15:43 GMT
  • Field changed: Status (Unconfirmed → Assigned)
  • Field changed: Category (Packages: Extra → Upstream Bugs)
Comment by Gustavo Alvarez (sl1pkn07) - Thursday, 14 November 2013, 21:37 GMT Comment by Andrea Scarpino (BaSh) - Monday, 18 November 2013, 11:26 GMT
I removed libxcb from [testing], please downgrade your package to the version in [extra].
Comment by Curtis (foxcm2000) - Tuesday, 19 November 2013, 02:12 GMT
Thanks for the downgrade. This fixes the issue until either or both the x-developers and Qt folks work out a longer term solution.
Comment by Yuval Adam (yuvadm) - Monday, 09 December 2013, 14:07 GMT
I have apps that are breaking with qt5-base 5.1.1-5 and libxcb 1.9.1-2.

Is this expected? If not, what do I need to fix?
Comment by Andrea Scarpino (BaSh) - Monday, 09 December 2013, 14:12 GMT
@Yuval, run pacman -Suu
Comment by Yuval Adam (yuvadm) - Monday, 09 December 2013, 14:15 GMT
qt5-base and libxcb have both _just_ been installed. What will a full-system upgrade do?
Comment by Andrea Scarpino (BaSh) - Monday, 09 December 2013, 14:26 GMT
-Suu means downgrade, not upgrade (see the manual page).
We removed libxcb from the [testing] repo, then you have to manually downgrade to the version in [extra].
Comment by Yuval Adam (yuvadm) - Monday, 09 December 2013, 14:36 GMT
Got it, will try, thanks :)
Comment by Yuval Adam (yuvadm) - Monday, 09 December 2013, 18:44 GMT
OK this isn't working, and I've confirmed on another system.

pacman -Suu does nothing (on both systems), and it actually _upgrades_.

Both systems are running the aforementioned versions of qt5-base and libxcb.
Comment by Dave Reisner (falconindy) - Monday, 09 December 2013, 18:53 GMT
> pacman -Suu does nothing (on both systems), and it actually _upgrades_.
No, it does exactly what the manpage says it does -- it enables package downgrades, but it's still an upgrade. If a local package is older than what's in the repos, it does an upgrade. If a local package is newer than what's in the repos, it does a downgrade.
Comment by Yuval Adam (yuvadm) - Monday, 09 December 2013, 18:55 GMT
Got it. Either way, qt5-base and libxbc were not affected by pacman -Suu and the problem remains.
Comment by Andrea Scarpino (BaSh) - Saturday, 21 December 2013, 14:13 GMT
Just to let you know this is fixed in current libxcb master; next release should be "safe".

Loading...