LINUX.ORG.RU

Зачем в системе по зависимостям тянется пакет mesa?

Значит mesa необходима.

Видео дайвера установлены nvidia-drivers.

Какое это ^ имеет отношение к зависимостям от mesa?

init_6 ★★★★★ ()

Вопрос из серии «Зачем людям нужны лыжи если я стою посреди заасфальтированной шестиполосной дороги в июле и на мне одеты коньки?»

init_6 ★★★★★ ()

она нужня для сборки некоторых пакетов. ты можешь отключить все флаги, если мешает.

Deleted ()

ЕМНИП к иксам прибита гвоздями, к s3tc еще
если получится выкинуть steam, wine и xorg-server - не нужна ;)

anTaRes ★★★★ ()
equery d mesa

тебе всё расскажет.

r3lgar ★★★★★ ()

Из неё нужны хедеры и pkgconfig файлы, чтобы канпелять. Всё кроме pkgconfig файлов (*.pc) можно брать из тарбола с исходниками месы. Список (libgl и ко ссылками на нвидиевские тоже для канпеляния):

/usr/include/GL/gl.h
/usr/include/GL/glext.h
/usr/include/GL/glcorearb.h

/usr/include/GL/glx.h
/usr/include/GL/glxext.h

/usr/include/EGL/egl.h
/usr/include/EGL/eglext.h
/usr/include/EGL/eglplatform.h
/usr/include/KHR/khrplatform.h

/usr/include/EGL/eglextchromium.h
/usr/include/EGL/eglmesaext.h

/usr/include/GL/internal/dri_interface.h

/usr/lib64/pkgconfig/dri.pc
/usr/lib64/pkgconfig/egl.pc
/usr/lib64/pkgconfig/gl.pc

/usr/lib64/libGL.so    -> /usr/lib64/opengl/nvidia/lib/libGL.so
/usr/lib64/libGL.so.1  -> /usr/lib64/opengl/nvidia/lib/libGL.so.1

/usr/lib64/libEGL.so   -> /usr/lib64/opengl/nvidia/lib/libEGL.so
/usr/lib64/libEGL.so.1 -> /usr/lib64/opengl/nvidia/lib/libEGL.so.1
Говно-ебилд (в my_mesa.tar.xz лежат *.pc):
EAPI=6
my_pv=11.1.0-rc3

IUSE='egl gles2 nptl'
KEYWORDS=~amd64
S=${WORKDIR}
SLOT=0
SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/${my_pv/-*}/${PN}-${my_pv}.tar.xz http://example.com/my_mesa.tar.xz"

src_install(){
  mkdir --parents ${D}/usr/{include,lib64/pkgconfig}

  ln --symbolic /usr/lib64/opengl/nvidia/lib/lib{,E}GL.so{,.1} ${D}/usr/lib64

  cp ${WORKDIR}/{dri,egl,gl}.pc ${D}/usr/lib64/pkgconfig

  cd ${WORKDIR}/${PN}-${my_pv}/include

  cp --parents \
  \
  GL/gl.h \
  GL/glext.h \
  GL/glcorearb.h \
  \
  GL/glx.h \
  GL/glxext.h \
  \
  EGL/egl.h \
  EGL/eglext.h \
  EGL/eglplatform.h \
  KHR/khrplatform.h \
  \
  EGL/eglextchromium.h \
  EGL/eglmesaext.h \
  \
  GL/internal/dri_interface.h \
  \
  ${D}/usr/include
}

anonymous ()

Заголовочные файлы mesa нужны для компиляции много чего. Посмотри сколько заголовочников кладет в /usr/include пакет nvidia-drivers и сравни с mesa - будешь удивлен :-)

Хотя идея анонимуса выпилить заголовочники в отдельный пакет мне чем-то даже импонирует. Ведь действительно - нахрена собирать еще одну реализацию OpenGL, если ей все равно никто не будет пользоваться.

Правда есть кое-какие нюансы с EGL и GLES, о которых даже я подозреваю(а уж мэйнтэйнеры mesa наверняка знают). Наверное именно поэтому такое разделение до сих пор не было сделано.

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Спасибо что зашли.

Да, собственно, это я и хотел поднять на обсуждение.

brothermechanic ★★★★ ()
Ответ на: комментарий от Pinkbyte

есть sys-kernel/linux-headers, sys-power/cpupower, ...
которые по сути куски ядра
таким-же макаром можно было бы и месу попилить

ну или флаг добавить в ебилд месы, чтоб не собирать а только хедеры закинуть, и в остальных ебилдах прописать что конкретно нужно ему от месы
как вариант, было бы неплохо

anTaRes ★★★★ ()
Ответ на: комментарий от Pinkbyte

А симлинки на библиотеки ставить в зависимости от video_cards_fglrx video_cards_nvidia.

anonymous ()
Ответ на: комментарий от anTaRes

Нет. eselect прописывает путь до библиотек в /etc/ld.so.conf

anonymous ()
Ответ на: комментарий от anonymous

И это работает только для собранных програм, не при ликовке при сборке.

anonymous ()

Тоже мучаюсь.

На FreeBSD стоит nvidia-driver, а тут Mesa в последнее время зачастила с обновлениями, а ей нужен clang/llvm36 - одна часть для рантайма (который по сути не используется), другая часть для компиляции. Вот нахера так делать неотключаемо?!

iZEN ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.