LINUX.ORG.RU

зачем mesa если в системе есть nvidia-drivers?

 , ,


0

1

Здравствуйте.

Зачем в системе по зависимостям тянется пакет mesa? Видео дайвера установлены nvidia-drivers.

Получается ненужный дубль, или я не прав?

★★★★★

Последнее исправление: brothermechanic (всего исправлений: 1)

Зачем в системе по зависимостям тянется пакет 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 ★★★★
()
Ответ на: комментарий от anonymous

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

anonymous
()

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

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

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