Qt 5.9 for SLES 11 and 12

English:

For SLES 11 there is no CUPS support. There is CUPS 1.3 however Qt 5 wants 1.4.

For QMMP and SMplayer, get dependencies in Packman.

For maintainters: for SLES 11, there is an upgraded libXCB because Qt5 needs libXCB 1.5 or newer to be builded. Also I'd upgraded libX11 because libXCB removed libxcb-xlib starting from 1.4 version, and libX11 was the only one software that needs it

I'd upgraded xorg-x11-libs to upgrade xcb-util. Qt5 can use buldled xcb-util library if you set -qt-xcb key (yes, it means xcb-util, not libXCB), but I have some problems with that old realization. For example, QMMP 1.x cannot draw skinned view with an old xcb-util bundled with Qt 5 sources, also Phoenix (the 3DO game console emulator) cannot draw part of the interface. Also Discord Linxu client cannot draw part of the interface with an old xcb-util bundled with Qt 5 sources. So I'd upgraded xorg-x11-libs globally

Русский:

Я тут залил xorg-x11-libxcb и xorg-x11-libX11 более новых версий. Дело в том, что Qt5 хочет для своей сборки Xorg 7.5, а у нас тут Xorg 7.4. Дополнительную сложность создаёт то, что SLE 11 имеет libxcb 1.1, а в версии 1.4 удалили одну из её библиотек, libxcb-xlib. К счастью, существует библиотека-"заглушка", чтобы не сломать SLE 11. Но есть одна прога, для которой эта заглушка не работает - это libX11. Поэтому я обновил их обе. А ещё я предусмотрел возможность того, чтобы пользователь обновил эти библиотеки синхронно: вписал необходимые для этого Conflicts и Requires.

Если бы я компилировал Qt5 просто руками в консольке, то я бы использовал статичные библиотеки libxcb и libX11. А как это делать, создавая RPM-пакеты? Я не знаю. Поэтому обновил эти пакеты.

Дальше. Qt5 хочет CUPS 1.4 и выше для поддержки печати. А у нас 1.3.9. Что делать? Не знаю. Я не могу внести нужные изменения в код, потому что не умею. Я пока запретил сборку поддержки CUPS, а в Qt 5.11, возможно, залью новый CUPS из репозитория printing.

Дальше. Я заметил прикольный баг, который даже не знаю как описать... Но я попробую. В общем, libxcb - не единственная зависимость Qt5. Ещё он хочет xcb-util. В openSUSE он находится в пакете xorg.x11-libs (в версии 12.2 "переехал" в отдельный пакет). Так вот, "./configure --help" говорит, что есть ключи сборки -qt-xcb и просто -xcb (ну, типа системный). Это не libxcb, как можно подумать. Это именно xcb-util.

В репозитории Qt 5.6 я использовал -qt-xcb. Всё скомпилировалось и готово к использованию. А тут я заметил: тут баг, там баг... Оказывается, bundled-версия xcb-util, которая идёт вместе с исходниками qt5base, она то ли старая, то ли ещё что... В общем, программа QMMP не отрисовывает skinned-интерфейс, программа Phoenix (эмулятор 3DO) не отрисовывает часть окна, программа Discord тоже (впрочем, работать можно), а программа Teamviewer не работает. Надо именно обновить xcb-util. Поэтому я обновил xorg-x11-libs. Установите его тоже.

Ну и наконец, последнее. Программы QMMP и SMplayer хотят ffmpeg - берите его из репозитория Packman. qt5multimedia хочет OpenAL - берите его из Packman. И вообще: если какой-то зависимости нет - берите её в Packman

Ах да, ещё я заменил мета-пакет gcc на версию 4.8. В системе и так есть GCC 4.8, но этот компилятор не используется по умолчанию, а используется 4.3. А для openSUSE 11.4 я вообще GCC 5 добавил! Я также буду его использовать для SLE 11 для тех программ, которые хотят GCC 5. В репозитории SLE_11_SP4:Updates есть GCC 5

Name Changed
Comments for home:linux4humans:qt_5.9 0