Esse problema surgiu ao tentar ajudar um usuário com as perguntas: Quais são as dependências de compilação necessárias do mesa para distribuições baseadas no Debian ? e Como faço para backport Mesa no Debian Wheezy? .
O Mesa no Debian não consegue criar a partir da fonte sob certas condições. Veja o relatório de erros do Debian: libdrm-nouveau1a: afirma ser 2.4.33, mas parece ser realmente 0.6 . Consegui reproduzir este edifício Mesa 9.1.3-1 (do snapshot.debian.org) no Wheezy. Recebo a seguinte mensagem de erro:
checking for NOUVEAU... no
configure: error: Package requirements (libdrm_nouveau >= 2.4.33) were not
met:
Requested 'libdrm_nouveau >= 2.4.33' but version of libdrm_nouveau is 0.6
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables NOUVEAU_CFLAGS
and NOUVEAU_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Veja o registro completo em gist.github.com .
Não tenho certeza do que está acontecendo aqui. Existe uma "explicação" no relatório de erros, mas eu não entendo isso. A saber:
It's not a bug in the debian libdrm 2.4.33 package. In libdrm git they bumped the soname to 2 and changed the version exported in libdrm_nouveau.pc from 0.6 to 2.4.33 without releasing a new version. Mesa now requires the newer libdrm that hasn't been released yet. In libdrm 2.4.33 the version in libdrm_nouveau.pc is 0.6
http://cgit.freedesktop.org/mesa/drm/commit/?id=292da616fe1f936ca78a3fa8e1b1b19883e343b6 is the commit this all took place today.
O arquivo /usr/lib/x86_64-linux-gnu/pkgconfig/libdrm_nouveau.pc
existe no meu sistema. Este é um arquivo pkg-config. Tem o seguinte conteúdo.
prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib/x86_64-linux-gnu
includedir=${prefix}/include
Name: libdrm_nouveau
Description: Userspace interface to nouveau kernel DRM services
Version: 0.6
Libs: -L${libdir} -ldrm_nouveau
Cflags: -I${includedir} -I${includedir}/libdrm -I${includedir}/nouveau
Requires.private: libdrm
Isso é presumivelmente onde o configure está obtendo as informações que
libdrm_nouveau
é 0,6.
No entanto, não estou claro por que a versão foi definida como 0,6 quando o valor real é
2.4.40-1~deb7u2
(padrão do wheezy do Debian). Eu também não tenho certeza da maneira correta de corrigir isso no contexto atual - construindo o Mesa 0.9.3.1 em wheezy.
Existem duas mudanças óbvias que podem ser feitas que (provavelmente) permitirão que o Mesa seja construído.
/usr/lib/x86_64-linux-gnu/pkgconfig/libdrm_nouveau.pc
a 2.4.33 ou
maior Eu não gosto muito de nenhuma dessas alternativas. No primeiro caso, eu não gosto de brincar com um sistema em execução. Nunca é claro quais efeitos ele pode ter. Neste último caso, mudar um sistema de construção sem entender corretamente o efeito que ele terá também não parece uma ótima idéia.
NOTA: Se você quiser reproduzir o erro no Wheezy, você pode fazer o seguinte:
faça o download dos arquivos:
mesa_9.1.3.orig.tar.gz
(wget - c link ) mesa_9.1.3-1.diff.gz
(wget - c link ) mesa_9.1.3-1.dsc
(wget -c < href="http://snapshot.debian.org/archive/debian/20130529T040126Z/pool/main/m/mesa/mesa_9.1.3-1.dsc"> link ) Executar
dpkg-source -x mesa_9.1.3-1.dsc
cd
no diretório de origem meda-9.1.3
e executar
debuild -uc -us
e instale dependências de compilação ausentes.