Bug 16195

Summary: Versionize /etc/X11/lib directory
Product: Sisyphus Reporter: Sir Raorn <raorn>
Component: libmesaAssignee: Valery Inozemtsev <shrek>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P2 CC: anubix, boris, evg, lakostis, lav, led, mike, sr, zerg
Version: unstableKeywords: patch
Hardware: all   
OS: Linux   
URL: http://git.altlinux.org/people/raorn/packages/?p=mesa.git;a=shortlog;h=refs/heads/biarch
Bug Depends on:    
Bug Blocks: 16227, 16228, 16229, 27263    

Description Sir Raorn 2008-06-27 15:05:59 MSD
В данный момент ссылка %_libdir/libGL.so.1 ведёт на %_x11sysconfdir/lib/libGL.so.1.  Из-за явного "lib" на обоих архитектурах mesa нельзя нормально отбиарчить.

Предлагаю в этом месте использовать %_x11sysconfdir/%_lib/ и дополнительно поменять helper'ы в /usr/libexec/X11/drv*.d чтобы они обрабатывали и lib и lib64 на обоих архитектурах (о чём будут развешаны дополнительные баги).
Comment 1 Valery Inozemtsev 2008-06-27 21:26:43 MSD
о каком биарче речь?
Comment 2 Sir Raorn 2008-06-27 22:24:00 MSD
Архитектура x86_32, пакет arepo.  Сейчас /etc/X11/lib/libGL.so.1 не попадает в пакет i586-libmesa потому как присутствует в бинарных пакетах обоих архитектур.

Я попробую это зафиксить у себя в git и выложу результат на people.
Comment 3 Valery Inozemtsev 2008-06-28 10:23:47 MSD
а что на что ты там планируешь переключать?
Comment 4 Sir Raorn 2008-06-28 16:09:03 MSD
То же, что и сейчас, libGL.so.1.  Только 64-bit отдельно, 32-bit отдельно.

В общем подожди немного.  А я ищу добровольца с x86_64 Sisyphus и XOrg'овым glx (не fglrx и не nvidia).
Comment 5 Valery Inozemtsev 2008-06-28 16:55:40 MSD
да я и не спешу.
1. я не сказал что буду это делать
2. поддерживать x86_32 я точно не буду
Comment 6 Michael Shigorin 2008-06-28 18:30:00 MSD
(In reply to comment #4)
> А я ищу добровольца с x86_64 Sisyphus и XOrg'овым glx
Тебя на стенд с ati запустить?
Comment 7 Sir Raorn 2008-07-01 15:28:42 MSD
Люди говорят работает.  Патч по ссылке (изменения только в spec'е).
Comment 8 Valery Inozemtsev 2008-07-01 16:45:46 MSD
а как по твоему должен работать /usr/libexec/X11/drv.d/x11
Comment 9 Sir Raorn 2008-07-01 17:08:51 MSD
Обновлять оба линка независимо от архитектуры.  См. такж. bug #16227.
Comment 10 Sergey V Turchin 2008-08-26 17:46:50 MSD
А может, разнести /usr/libexec/X11/drv.d/ в /usr/lib{,64}/X11/drv.d/ ?
Comment 11 Sir Raorn 2008-08-26 18:19:44 MSD
Те же яйца, только вид сбоку.  Симлинков (libGL.so.1 -> xxx/libGL.so.1) один или два (32 или 32 и 64 bit).  Скрипт, который их обновляет один (x11updatedrv).

Надо либо научить drv.d/* обновлять эти "один или два" симлинка (как я предложил первый раз), либо научить x11updatedrv запускать "один или два" drv.d/XXX.  Из-за nvidia_glx я начинаю склоняться ко второму варианту.

А сделать разные drv.d/XXX можно и средствами arepo.

Comment 12 Sergey V Turchin 2008-08-26 19:05:57 MSD
(In reply to comment #11)
> первый раз), либо научить x11updatedrv запускать "один или два" drv.d/XXX.  
> Из-за nvidia_glx я начинаю склоняться ко второму варианту.
> А сделать разные drv.d/XXX можно и средствами arepo.
Я о том же.
Только, поизвращаюсь сначала с drv.d/nvidia , т.к. лучше без arepo, конечно же.

2 shrek:
Будет ли достаточно проверки на существование каталога /etc/X11/lib64 для определения, что включилась новая схема?
Как думаешь?
Comment 13 Valery Inozemtsev 2008-08-28 11:31:47 MSD
давайте проще. /usr/libexec/X11/drv.d/чтототам будет проверять наличие файлов/каталогов lib/lib64 и симлинкать соответственно
Comment 14 Valery Inozemtsev 2008-08-28 11:32:31 MSD
*** Bug 16227 has been marked as a duplicate of this bug. ***
Comment 15 Sir Raorn 2008-08-28 12:11:36 MSD
Т.е. возвращаемся к первому варианту?  Что-то типа:

for LIB in lib lib64; do
  [ -d "/etc/X11/$LIB" ] || continue
  ln -sf ...../libFOO.so.X "/etc/X11/$LIB/libFOO.so.X"
  ...
done
Comment 16 Valery Inozemtsev 2008-08-28 12:28:55 MSD
ну еще и наличие файлов проверять
Comment 17 Zerg 2008-08-28 15:37:02 MSD
(In reply to comment #13)
> давайте проще. /usr/libexec/X11/drv.d/чтототам будет проверять наличие
> файлов/каталогов lib/lib64 и симлинкать соответственно
Нет, это ошибка. У меня в данный момент на 4.1/branch есть файлы в /usr/lib и /usr/lib64, но ссылки в /etc/X11/lib64 создавать нельзя.

Нужно проверять, произошел ли переход на новую схему. Например на наличие каталога /etc/X11/lib64 (или еще каким-то способом).
Это можно делать только на x86_64.

Проверку на наличие библиотек в /usr/lib нужно делать только на x86_64 и это уже несколько другая тема. Она касается только окончательной работоспособности программ в drv.d/*
Comment 18 Zerg 2008-08-28 15:39:51 MSD
А так же, все изменения _с_проверками_ нужно сделать везде до перехода на новую схему пакета, содержащего /usr/lib{,64}/libGL.so.1, т.е. libmesa
Тогда переход будет прозрачен.
Comment 19 Valery Inozemtsev 2008-08-28 15:45:31 MSD
(In reply to comment #17)
> (In reply to comment #13)
> > давайте проще. /usr/libexec/X11/drv.d/чтототам будет проверять наличие
> > файлов/каталогов lib/lib64 и симлинкать соответственно
> Нет, это ошибка. У меня в данный момент на 4.1/branch есть файлы в /usr/lib и /usr/lib64, но
> ссылки в /etc/X11/lib64 создавать нельзя.

что мешает создать ссылки в /etc/X11/lib64 если будет /etc/X11/lib и /etc/X11/lib64
Comment 20 Sergey V Turchin 2008-08-28 16:28:31 MSD
(In reply to comment #19)
> что мешает создать ссылки в /etc/X11/lib64 если будет
> /etc/X11/lib и /etc/X11/lib64
то, что на x86_64 ссылки, лежащие в /etc/X11/lib будут ошибочно указывать не в /usr/lib64

Comment 21 Sergey V Turchin 2008-08-28 16:32:27 MSD
(In reply to comment #19)
> что мешает создать ссылки в /etc/X11/lib64 если будет
> /etc/X11/lib и /etc/X11/lib64
Для пакета libmesa ничего не мешает. В нем не нужно делать проверок, только поставить конфликты на всякие fglrx_glx и nvidia_glx_common, в которых проверка на новую схему еще не сделана

Comment 22 Valery Inozemtsev 2008-08-28 16:36:51 MSD
так я про mesa и говорю, всякие fglrx_glx и nvidia_glx_common мне до лампочки
Comment 23 Sergey V Turchin 2008-08-28 16:39:19 MSD
(In reply to comment #21)
> поставить конфликты на всякие fglrx_glx и nvidia_glx_common,
> в которых проверка на новую схему еще не сделана
Т.е. именно подождать, пока везде появиться и только тогда конфликт c *_glx* < клевая-версия-релиз и только после этого новый libmesa отправлять в Сизиф.
Comment 24 Sergey V Turchin 2008-08-28 16:40:05 MSD
(In reply to comment #22)
> всякие fglrx_glx и nvidia_glx_common мне до лампочки
Это ошибка.
Comment 25 Valery Inozemtsev 2008-08-28 16:43:44 MSD
это ошибка в fglrx_glx и nvidia_glx_common, которую я не могу исправить
Comment 26 Sergey V Turchin 2008-08-28 17:13:30 MSD
(In reply to comment #25)
> это ошибка в fglrx_glx и nvidia_glx_common, которую я не могу исправить
Блин! Я только что разжевал, как тебе исправить эту твою ошибку.
Comment 27 Sergey V Turchin 2008-08-28 19:08:59 MSD
(In reply to comment #12)
> 2 shrek:
> Будет ли достаточно проверки на существование каталога /etc/X11/lib64 для
> определения, что включилась новая схема?
Если у кого-то стоит fglrx, который успел нагадить в /etc/X11/lib64, то не подходит.
Как однозначно определить переход на /etc/X11/lib64 ?
Comment 28 Valery Inozemtsev 2008-08-28 22:29:12 MSD
не знаю. не изобретай велосипеды, обновляй оба каталога при наличии файлов в lib и lib64
Comment 29 Zerg 2008-08-28 22:57:23 MSD
(In reply to comment #28)
> не знаю. не изобретай велосипеды, обновляй оба каталога при наличии файлов в
> lib и lib64
У меня в данный момент на x86_64 4.1/branch есть файлы в lib и lib64.
3D в cedega работает.
Представь, что я собрал и установил новый nvidia_glx (в чем я лично не вижу никаких проблем, если он будет правильно работать).
Перечисли конкретно весь список, какие файлы куда и откуда линковать?
Comment 30 Valery Inozemtsev 2008-08-28 23:04:33 MSD
для branch4.1 делать это я не планирую (во всяком случае пока). это быдет в mesa-7.1/xorg-server-1.5. что и куда линковать - когда сделаю, пришлю коменты и посмотришь
Comment 31 Zerg 2008-08-28 23:35:09 MSD
(In reply to comment #30)
> для branch4.1 делать это я не планирую
Я и не прошу. Ответь на мой вопрос.
Comment 32 Zerg 2008-08-29 01:09:08 MSD
(In reply to comment #31)
> Ответь на мой вопрос.
В общем, забей.
Я буду проверять переход на новую схему по наличию каталога /etc/X11/lib64
А кто его без просу создаст, тому по шапке.
2 lakostis:
Смотри, чтоб в 4.1 Desktop опять не напортить. И не говори, что кто-нибудь тебя с толку сбил.
Comment 33 Konstantin A Lepikhov (L.A. Kostis) 2008-08-29 01:59:11 MSD
(In reply to comment #32)
> (In reply to comment #31)
> > Ответь на мой вопрос.
> В общем, забей.
> Я буду проверять переход на новую схему по наличию каталога /etc/X11/lib64
> А кто его без просу создаст, тому по шапке.
> 2 lakostis:
> Смотри, чтоб в 4.1 Desktop опять не напортить. И не говори, что кто-нибудь тебя с
> толку сбил.
> 
Мне пофиг. И тот патч не мой, а raorn@ ;)
Comment 34 Zerg 2008-08-29 02:16:46 MSD
(In reply to comment #33)
> Мне пофиг. И тот патч не мой, а raorn@ ;)
А голова чья? ;-)
Comment 36 Sergey V Turchin 2008-08-29 18:45:56 MSD
Только не забудь, что конфликты нужно поставить на *_glx* <= последняя_версия_без_etc64, иначе поломается как-минимум 3D.
Версию nvidia_glx_common я сообщу в понедельник. Потестить нужно на всякий.
Comment 37 Sergey V Turchin 2008-09-01 17:49:20 MSD
Conflicts: nvidia_glx_common <= 173.14.12-alt47
Именно так, как написано.