Introdução a GLib
O pacote GLib contém bibliotecas
de baixo nível úteis para fornecer manipulação de estrutura de
dados para C, amarradores de portabilidade e interfaces para
funcionalidades em tempo de execução, como um loop de eventos,
camadas, carregamento dinâmico e um sistema de objetos.
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.1.
Informação do Pacote
-
Transferência (HTTP):
https://download.gnome.org/sources/glib/2.78/glib-2.78.4.tar.xz
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
0781e889cab64f1f7dbb6e8357c6a95f
-
Tamanho da transferência: 5,1 MB
-
Espaço em disco estimado exigido: 130 MB (adicionar 20 MB
para testes)
-
Tempo de construção estimado: 0,8 UPC (adicionar 0,5 UPC para
testes; ambos usando paralelismo=4)
Transferências Adicionais
Dependências de GLib
Recomendadas
libxslt-1.1.39 e pcre2-10.42
Opcionais
dbus-1.14.10 (para alguns testes), Fuse-3.16.2 e bindfs (ambos necessários para um teste),
GDB-14.1 (para
ligações), docbook-xml-4.5, docbook-xsl-nons-1.79.2, GTK-Doc-1.33.2 (para construir documentação de
API), glib-networking-2.78.0 (para
alguns testes, mas essa é uma dependência circular) e sysprof
Dependências Adicionais de Tempo de Execução
gobject-introspection-1.78.1
(deveria ser instalado antes de gtk+, atk, etc.)
Citado diretamente do arquivo INSTALL
: “Algumas das funcionalidades relacionadas ao tipo mime no
GIO exigem os utilitários update-mime-database e
update-desktop-database”,
os quais são parte de shared-mime-info-2.4 e desktop-file-utils-0.27,
respectivamente. Esses dois utilitários também são necessários para
alguns testes.
Instalação de GLib
Se desejado, aplique o remendo opcional. Em muitos casos, os
aplicativos que usam essa biblioteca, direta ou indiretamente, por
meio de outras bibliotecas, tais como GTK+-3.24.41, emitem
numerosos avisos quando executados a partir da linha de comando.
Esse remendo habilita o uso de uma variável de ambiente,
GLIB_LOG_LEVEL
, que suprime mensagens
indesejadas. O valor da variável é um dígito que corresponde a:
1 Alerta
|
2 Crítico
|
3 Erro
|
4 Aviso
|
5 Informe
|
Por exemplo, export
GLIB_LOG_LEVEL=4
pulará a saída gerada de mensagens
Warning e Notice (e mensagens de Informação/Depuração se estiverem
ativadas). Se GLIB_LOG_LEVEL
não estiver
definida, a saída gerada normal de mensagem não será afetada.
patch -Np1 -i ../glib-skip_warnings-1.patch
Atenção
Se uma versão anterior da glib estiver instalada, [então] mova os
cabeçalhos para fora do caminho, de modo que os pacotes
posteriores não encontrem conflitos:
if [ -e /usr/include/glib-2.0 ]; then
rm -rf /usr/include/glib-2.0.old &&
mv -vf /usr/include/glib-2.0{,.old}
fi
Instale GLib executando os
seguintes comandos:
mkdir build &&
cd build &&
meson setup .. \
--prefix=/usr \
--buildtype=release \
-Dman=true &&
ninja
Nota
Se libxslt-1.1.39 estiver instalado, [então] o
comando acima possivelmente indique vários (cerca de 33) erros
que começam com "Error: no ID for constraint linkend:" ao gerar
as páginas de manual. Esses são inofensivos.
A suíte de teste da GLib exige
desktop-file-utils para alguns
testes. No entanto, desktop-file-utils exige a GLib para a finalidade de compilar; portanto,
você precisa primeiro instalar a GLib e então executar a suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install &&
mkdir -p /usr/share/doc/glib-2.78.4 &&
cp -r ../docs/reference/{gio,glib,gobject} /usr/share/doc/glib-2.78.4
Você deveria agora instalar desktop-file-utils-0.27 e shared-mime-info-2.4 e proceder à
execução da suíte de teste.
Atenção
Não execute a suíte de teste como root
ou alguns testes falharão
inesperadamente e deixarão alguns diretórios não compatíveis com
FHS na hierarquia /usr
.
Para testar os resultados, depois de ter instalado o pacote, emita:
LC_ALL=C ninja test
como um(a) usuário(a) não root
.
Explicações do Comando
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza binários
não otimizados.
-Dman=true
: Essa chave faz
com que a construção crie e instale as páginas de manual do pacote.
-Dgtk_doc=true
: Essa chave faz com que
a construção crie e instale a documentação da API.