Qual é a maneira correta de corrigir o erro de configuração: “Solicitado 'libdrm_nouveau = 2.4.33' mas a versão do libdrm_nouveau é 0.6”?

2

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.

  1. Altere o número da versão em /usr/lib/x86_64-linux-gnu/pkgconfig/libdrm_nouveau.pc a 2.4.33 ou maior
  2. Altere o script de configuração do Mesa para aceitar o libdrm na versão 0.6.

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:

  1. vá para o link
  2. faça o download dos arquivos:

  3. Executar

    dpkg-source -x mesa_9.1.3-1.dsc
    
  4. cd no diretório de origem meda-9.1.3 e executar

    debuild -uc -us
    

    e instale dependências de compilação ausentes.

por Faheem Mitha 28.10.2014 / 06:39

0 respostas