Bibliotecas do Xorg

Introdução às Bibliotecas do Xorg

As bibliotecas do "Xorg" fornecem rotinas de biblioteca que são usadas em todos os aplicativos do Janelas "X".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências das Bibliotecas do "Xorg"

Exigidas

Fontconfig-2.14.2 e libxcb-1.15

Opcionais

asciidoc-10.2.0, xmlto-0.0.28 com um ou mais do seguinte: fop-2.8, Links-2.28, Lynx-2.8.9rel.1, ncompress (para alguns testes) e W3m (para gerar documentação adicional "PDF" ou texto para o pacote "libXfont").

Recomendadas em tempo de execução

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Libraries

Transferindo as Bibliotecas do Xorg

Primeiro, crie uma lista de arquivos a serem baixados. Este arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > lib-7.md5 << "EOF"
ce2fb8100c6647ee81451ebe388b17ad  xtrans-1.4.0.tar.bz2
e932752126240f0846b35eef6b1f2c3d  libX11-1.8.4.tar.xz
964942427fcc5a9fa0539661421857c8  libXext-1.3.5.tar.xz
742863a552ecd53cdb957b7b276213cc  libFS-1.0.9.tar.xz
b444a0e4c2163d1bbc7b046c3653eb8d  libICE-1.1.1.tar.xz
ffa434ed96ccae45533b3d653300730e  libSM-1.2.4.tar.xz
e613751d38e13aa0d0fd8e0149cec057  libXScrnSaver-1.2.4.tar.xz
b122ff9a7ec70c94dbbfd814899fffa5  libXt-1.2.1.tar.bz2
ed52d396115fbc4d05300762aab79685  libXmu-1.1.4.tar.xz
b3c58c94e284fd6940d3615e660a0007  libXpm-3.5.15.tar.xz
c1ce21c296bbf3da3e30cf651649563e  libXaw-1.0.14.tar.bz2
86f182f487f4f54684ef6b142096bb0f  libXfixes-6.0.0.tar.bz2
af0a5f0abb5b55f8411cd738cf0e5259  libXcomposite-0.4.6.tar.xz
ebf7fb3241ec03e8a3b2af72f03b4631  libXrender-0.9.11.tar.xz
4cdd1886fe5cce6f68554296edb46db8  libXcursor-1.2.1.tar.xz
ca55d29fa0a8b5c4a89f609a7952ebf8  libXdamage-1.1.6.tar.xz
6d3f1b15bb5b0bb71ae9f0a5103c1fc4  libfontenc-1.1.7.tar.xz
c179daa707f5f432f1bc13977e5bb329  libXfont2-2.0.6.tar.xz
69dc24ba444a0f6bd99423dbf8fd0260  libXft-2.3.7.tar.xz
74055672a111a98ce2841d2ec4057b05  libXi-1,8.tar.bz2
228c877558c265d2f63c56a03f7d3f21  libXinerama-1.1.5.tar.xz
850cbc7c921c9d5d0135734b114ff6ac  libXrandr-1.5.3.tar.xz
66c9e9e01b0b53052bb1d02ebf8d7040  libXres-1.2.2.tar.xz
02f128fbf809aa9c50d6e54c8e57cb2e  libXtst-1.2.4.tar.xz
70bfdd14ca1a563c218794413f0c1f42  libXv-1.0.12.tar.xz
11a358e7229fa28dc9801c1e64fe2e18  libXvMC-1.0.13.tar.xz
74d1acf93b83abeb0954824da0ec400b  libXxf86dga-1.1.6.tar.xz
5b913dac587f2de17a02e17f9a44a75f  libXxf86vm-1.1.5.tar.xz
d2f1f0ec68ac3932dd7f1d9aa0a7a11c  libdmx-1.1.4.tar.bz2
1466cf950c914ad2db1dbb76c9a724db  libpciaccess-0,17.tar.xz
8af2275955d40166bb647b14e4896ab1  libxkbfile-1.1.2.tar.xz
faa74f7483074ce7d4349e6bdc237497  libxshmfence-1.3.2.tar.xz
EOF

Para baixar os arquivos necessários usando o "wget", use os seguintes comandos:

mkdir lib &&
cd lib &&
grep -v '^#' ../lib-7.md5 | awk '{print $2}' | wget -i- -c \
   -B https://www.x.org/pub/individual/lib/ &&
md5sum -c ../lib-7.md5

Instalação das Bibliotecas do Xorg

[Nota]

Nota

Ao instalar-se múltiplos pacotes em um "script", a instalação precisa ser feita como o(a) usuário(a) "root". Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o "script" inteiro como o(a) usuário(a) "root" (não recomendado).

  2. Usar o comando "sudo" oriundo do pacote Sudo-1.9.13p1.

  3. Usar su -c "argumentos do comando" (aspas exigidas) o qual solicitará a senha do(a) "root" para cada interação do "loop".

Uma maneira de se lidar com essa situação é a de criar uma função curta do "bash" que seleciona automaticamente o método apropriado. Tão logo o comando seja configurado no ambiente, ele não precisa ser novamente configurado.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Algumas bibliotecas vem com uma suíte de teste. Se desejar executá-las, [então] comente o "rm -rf ..." abaixo, para que, depois que todas as bibliotecas estiverem instaladas, você consiga voltar ao diretório correspondente e executar "make check ", ou fazer construções individuais, executando os testes para cada um daqueles distribuídos com suítes funcionais de teste. Alternativamente, você pode descomentar a linha "#make check ..." e, no final, verificar os resultados do teste com:

grep -A9 summary *make_check.log

Os(As) desenvolvedores(as) do BLFS confirmaram que "libX11", "libXt", "libXmu", "libXpm" e "libxshmfence" são distribuídos com suítes funcionais de testes.

Primeiro, inicie um sub "shell" que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../lib-7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
  docdir="--docdir=$XORG_PREFIX/share/doc/$packagedir"
  case $packagedir in
    libXfont2-[0-9]* )
      ./configure $XORG_CONFIG $docdir --disable-devel-docs
    ;;

    libXt-[0-9]* )
      ./configure $XORG_CONFIG $docdir \
                 --with-appdefaultdir=/etc/X11/app-defaults
    ;;

    libXpm-[0-9]* )
      sed -i '/TestAll.*TRUE/s|^|//|' test/TestAllFiles.h
      ./configure $XORG_CONFIG $docdir --disable-open-zfile
    ;;
    
    * )
      ./configure $XORG_CONFIG $docdir
    ;;
  esac

  make
  #make check 2>&1 | tee ../$packagedir-make_check.log
  as_root make install
  popd
  rm -rf $packagedir
  as_root /sbin/ldconfig
done

Finalmente, saia do "shell" que foi iniciado anteriormente:

exit

Explicações do Comando

sed ... test/TestAllFiles.h: Corrija um arquivo de teste para funcionar sem o aplicativo opcional "compress".

--disable-open-zfile: Permitir que a "libXpm" construa sem o comando opcional "compress" presente.

--disable-devel-docs: Desabilite a geração de documentação de texto no pacote "libXfont2", se o "xmlto-0.0.28" estiver instalado, sem um navegador de texto. Omita esse parâmetro (ou toda a instrução "case") se um navegador de texto estiver instalado.

--with-fop: Use o "fop-2.8" para gerar documentação em "PDF" (somente para o pacote "libXfont").

Configuração das Bibliotecas do Xorg

Se tiver escolhido instalar o "Xorg" em "/usr", então nenhuma configuração adicional será necessária e você poderá ignorar o restante desta seção. Se tiver optado por um prefixo alternativo, [então] você deveria criar dois links simbólicos para satisfazer o ambiente esperado de vários pacotes. Execute os seguintes comandos como o(a) usuário(a) "root":

ln -sv $XORG_PREFIX/lib/X11 /usr/lib/X11 &&
ln -sv $XORG_PREFIX/include/X11 /usr/include/X11

Conteúdo

Aplicativos Instalados: cxpm e sxpm
Bibliotecas Instaladas: libdmx.so, libfontenc.so, libFS.so, libICE.so, libpciaccess.so, libSM.so, libX11.so, libX11-xcb, libXaw6.so, libXaw7.so, libXaw.so, libXcomposite.so, libXcursor.so, libXdamage.so, libXext.so, libXfixes.so, libXfont2.so, libXft.so, libXinerama.so, libXi.so, libxkbfile.so, libXmu.so, libXmuu.so, libXpm.so, libXrandr.so, libXrender.so, libXRes.so, libxshmfence.so, libXss.so, libXt.so, libXtst.so, libXvMC.so, libXvMCW.so, libXv.so, libXxf86dga.so e libXxf86vm.so
Diretórios Instalados: $XORG_PREFIX/include/X11/fonts, $XORG_PREFIX/include/X11/ICE, $XORG_PREFIX/include/X11/SM, $XORG_PREFIX/include/X11/Xmu, $XORG_PREFIX/include/X11/Xtrans, $XORG_PREFIX/share/doc/libFS, $XORG_PREFIX/share/doc/libICE-1.1.1, $XORG_PREFIX/share/doc/libSM-1.2.4, $XORG_PREFIX/share/doc/libX11-1.8.4, $XORG_PREFIX/share/doc/libXaw, $XORG_PREFIX/share/doc/libXext, $XORG_PREFIX/share/doc/libXi, $XORG_PREFIX/share/doc/libXmu-1.1.4, $XORG_PREFIX/share/doc/libXrender, $XORG_PREFIX/share/doc/libXt, $XORG_PREFIX/share/doc/libXtst, $XORG_PREFIX/share/doc/libXvMC, $XORG_PREFIX/share/doc/xtrans e $XORG_PREFIX/share/X11/locale

Descrições Curtas

cxpm

verifica o formato de um arquivo "XPM"

sxpm

mostra um arquivo "XPM" e(ou) converte arquivos "XPM" 1 ou 2 em "XPM" 3

libdmx.so

é a biblioteca de extensão "Distributed Multihead X" ("DMX") do Sistema de Janelas "X"

libfontenc.so

é a biblioteca de codificação de fontes "X11"

libFS.so

é a interface da biblioteca para o Servidor de Fontes do "X"

libICE.so

é a Biblioteca de Intercâmbio "Inter Client" do "X"

libpciaccess.so

é a biblioteca genérica Acesso "PCI" para o "X"

libSM.so

é a Biblioteca de Gerenciamento de Sessões do "X"

libX11.so

é a biblioteca "Xlib"

libXaw6.so

é a Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 6

libXaw7.so

é a Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 7

libXaw.so

são links simbólicos para a atual Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 7

libXcomposite.so

é a Biblioteca Composta do "X"

libXcursor.so

é a biblioteca de gerenciamento de Cursor do "X"

libXdamage.so

é a Biblioteca Danos do "X"

libXext.so

é a Biblioteca de Extensão Misc do "X"

libXfixes.so

fornece versões aumentadas de solicitações de protocolo principais

libXfont2.so

é a biblioteca de fontes do "X"

libXft.so

é a biblioteca de interface "FreeType" do "X"

libXinerama.so

é a Biblioteca "Xinerama"

libXi.so

é a Biblioteca de Extensão de Entrada do "X"

libxkbfile.so

é a Biblioteca "xkbfile"

libXmu.so

é a biblioteca de interface do "X" para utilitários diversos não partes do padrão "Xlib"

libXmuu.so

é a Biblioteca "Mini Xmu"

libXpm.so

é a Biblioteca "Pixmap" do "X"

libXrandr.so

é a biblioteca de extensões "Resize", "Rotate" e "Reflection" do "X"

libXrender.so

é a Biblioteca de Renderização do "X"

libXRes.so

é a biblioteca cliente de extensão "X-Resource"

libxshmfence.so

expõe uma "API" de eventos no topo de "futexes" do Linux

libXss.so

é a biblioteca cliente da extensão Protetor de Tela "X11"

libXt.so

é a Biblioteca Kit de Ferramentas do "X"

libXtst.so

é a Biblioteca "Xtst"

libXvMC.so

é a Biblioteca de Compensação de Movimento de Vídeo do "X"

libXvMCW.so

é o Envólucro "XvMC" incluindo a extensão "VLD" não padrão

libXv.so

é a biblioteca de extensão de vídeo do Sistema de Janelas "X"

libXxf86dga.so

é a biblioteca cliente para a extensão "DGA" do "XFree86"

libXxf86vm.so

é a biblioteca cliente para a extensão "VidMode" do "XFree86" do "X"