Нужна помощь в разработке патча для libX11

openSUSE, SUSE Linux Enterprise

Модератор: Модераторы разделов

Ответить
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Нужна помощь в разработке патча для libX11

Сообщение zenitur »

Введение

Привет! Я не люблю Systemd, но разговор не об этом. Opensuse перестал существовать для меня с версии 12.2. Поэтому теперь у меня SUSE Enterprise 11! Я его даже купил.

Как и любой дистрибутив Linux, мой любимый страдает недостатком заранее прекомпилированных программ. Steam очень захотел Glibc 2.15 минимум, 2.17 рекомендуется. Я тупо установил пакеты из Opensuse 12.3 и они работают! Но эта версия Opensuse не поддерживается, поэтому я решил создать пакет в OBS и добавлять в него патчи из CentOS 7 по мере выхода.

Репозиторий я назвал linux4humans и в данный момент он имеет Qt 4.8.7, Qt 5.6 и Mono 2.10. В будущем будут Glibc 2.17, ядро -rt и -bfs, GTK 2.24.

Сейчас плотно занимаюсь Qt 5.6, там есть пакеты Bitcoin, QtBitcoinTrader, Qbittorrent, Qmmp и QTerminal. Возникла проблема с Qt Core 5.6, которую я заткнул "костылём" и теперь прошу у Вас помощи.

Проблема

Одна из зависимостей Qt 5 это xcb-util. Сначала я просто-напросто обновил libxcb с 1.1 до 1.12, и xcb-util с 0.2.1 до 0.4.0. И в принципе всё запахало, но:

1). Пришлось откатить xcb-util обратно. Отвалилось всё что зависит от libxcb-atom.so.0. Я вкинул несколько десятков пакетов в OBS, чтобы они тупо пересобрались с xcb-util 0.4. Потом меня достало и я вернул 0.2.1. А в SPEC-файле Qt поменял -system-xcb на -qt-xcb

2). А вот откатить назад libxcb - не вариант: Qt тогда не собирается даже с -qt-xcb, выдавая ошибку компиляции.

Когда я обновил libxcb, мне также пришлось обновить libX11 до версии из Opensuse 11.4: версия из SLES 11 хочет библиотеку xcb-xlib.so, которую удалили в libxcb 1.4. Поэтому иксы не стартовали.

Мне надо чтобы libX11 оставался старый: версии 7.4, а не 7.6. Потому что этот 7.6 не поддерживается, в нём нет баг-фиксов.

Что я пробовал?

Я нашёл в GIT тот самый патч, который добавил поддержку libxcb 1.4:

https://cgit.freedesktop.org/xorg/lib/libX1...0a3451ea96c299b
https://cgit.freedesktop.org/xorg/lib/libX1...d53da160c22ed75

Оформил его в виде отдельного патча. Наложил. Установил пакет. Сломал иксы :-)
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20741
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Нужна помощь в разработке патча для libX11

Сообщение Bizdelnick »

Ничего не понял из описания. Для библиотеки важна версия API, а Вы из многочисленных упомянутых библиотек указали её только для libxcb-atom.so.0 (да и то так, что я не понял — это старая версия? какая тогда новая?). Если старший номер версии не менялся, её можно безболезненно обновить. Если менялся, то можно держать в системе две версии библиотеки (упакованные в отдельные пакеты, само собой).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Нужна помощь в разработке патча для libX11

Сообщение zenitur »

Привет Bizdelnick!

Насколько мне известно, иксы не собираются без libXCB, и уже давно. В моём дистре используется оч. старая версия libxcb 1.1, а начиная с версии 1.4 удалена либа xcb-xlib.so (прям так, без версии). И когда я обновляю libxcb с 1.1 до 1.12, я ожидаемо получаю отвалившиеся иксы.

К счастью, из всех программ от xcb-xlib.so зависела только одна - libX11 (я нагуглил аналог revdep-rebuild и выполнил его в /usr/lib64). Поэтому я её пересобрал.

Сначала я думал что будет достаточно просто пересобрать, не меняя исходный код! Потом оказалось, что поддержку libxcb >= 1.4 надо добавлять... Я попытался (перенёс изменение из GIT) и у меня не получилось. Чуть позже дам скриншоты и логи.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20741
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Нужна помощь в разработке патча для libX11

Сообщение Bizdelnick »

Покажите, что в дистрибутивном пакете libxcb и в том, который Вы собрали, чтобы понимать, о чём речь. Я не в курсе, как принято пакетировать либы в SUSE, но вообще по идее должна быть возможность установить две версии одновременно. Надо только смотреть, по каким файлам они могут конфликтовать.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Нужна помощь в разработке патча для libX11

Сообщение Stauffenberg »

zenitur писал(а):
06.11.2016 07:50
Оформил его в виде отдельного патча. Наложил. Установил пакет. Сломал иксы :-)

"Все падают в первый раз" (с) The Matrix

Привет! Я не люблю Systemd, но разговор не об этом. Opensuse перестал существовать для меня с версии 12.2. Поэтому теперь у меня SUSE Enterprise 11! Я его даже купил.

Как и любой дистрибутив Linux, мой любимый страдает недостатком заранее прекомпилированных программ. Steam очень захотел Glibc 2.15 минимум, 2.17 рекомендуется. Я тупо установил пакеты из Opensuse 12.3 и они работают! Но эта версия Opensuse не поддерживается, поэтому я решил создать пакет в OBS и добавлять в него патчи из CentOS 7 по мере выхода.

Т.е. у Вас SLE (с поддержкой), в который Вы устанавливаете пакеты из openSUSE с патчами из CentOS? Делать этого конечно никто не запрещает, но точно ли поддержка, которую Вы купили, не справилась с проблемой? Теперь будет труднее получить помощь (за которую Вы заплатили).
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Нужна помощь в разработке патча для libX11

Сообщение zenitur »

Блииин, забыл! Кароч, там если обновить xorg-x11-libxcb с версии 1.1 до 1.4 (или выше), то иксовые приложения начинают сыпаться с ошибкой. Нашёл какой-то аналог revdep-rebuild для SUSE, узнал что проблема в xorg-x11-libX11. Обновил до версии из Opensuse 11.4 и всё зашибись.

А теперь я хочу xorg-x11-libX11 из SLE 11 (Opensuse 11.1), потому что для него регулярно приходят патчи-фиксы. И решил бэкпортировать поддержку libxcb 1.4 в libX11 7.4. Не получилось, но ошибка уже другая :-)

Обе ошибки будут завтра.

Что касается техподдержки. SLED можно купить self-support (9 тыс за 3 года), 8-часовая поддержка (дорого) и круглосуточная (оч. дорого). У меня self-support.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Нужна помощь в разработке патча для libX11

Сообщение zenitur »

Как и обещал.

Вот картина с обновлённым libxcb 1.1 - 1.4 и дефолтным системным libX11

Код: Выделить всё

gcalctool: symbol lookup error: /usr/lib64/libX11.so.6: undefined symbol: xcb_xlib_lock


Вот картина с обновлённым libxcb 1.1 - 1.4 и дефолтным системным libX11, запатченным вот этим самым патчем:

Код: Выделить всё

gcalctool: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.0.


С libX11 из openSUSE 11.4 (естественно пересобранным в целевой системе) всё норм, только эта версия давно не обновлялась, а это не энтерпрайз.

Скрин 1, скрин 2.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Нужна помощь в разработке патча для libX11

Сообщение zenitur »

Смотрите, вот коммит (плюс предыдущий), который добавляет поддержку XCB 1.4:

https://cgit.freedesktop.org/xorg/lib/libX1...0a3451ea96c299b

Я решил открыть список изменений каждого файла, перечисленного в коммите. Вот первый:

https://cgit.freedesktop.org/xorg/lib/libX1...039c37c234cdfe7

Перематываем на 2008-11-04. В тот день было ещё несколько изменений. Похоже, мне нужно добавить и их.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
zenitur
Сообщения: 594
Статус: Одмин
ОС: openSuSE 10.2

Re: Нужна помощь в разработке патча для libX11

Сообщение zenitur »

Решено. Помогли именно недостающие коммиты из 1.1.99.2. Теперь в моём репозитории - libX11 1.1.5, а не 1.4.0. И это здорово: мейнтейнеры всегда напишут мне патчи-багфиксы.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Спасибо сказали:
Ответить