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.0.
Informação do Pacote
Transferências Adicionais
Dependências de GLib
Recomendada
libxslt-1.1.38 e pcre2-10.42
Opcionais
dbus-1.14.8 (para alguns testes), Fuse-3.16.1 e
bindfs (ambos
necessários para um teste), GDB-13.2 (para vinculações), docbook-xml-4.5,
docbook-xsl-nons-1.79.2, GTK-Doc-1.33.2 (para construir a documentação
da API), glib-networking-2.76.1 (para
alguns testes, porém isso é uma dependência circular) e sysprof-3.48.0
Dependências Adicionais de Tempo de Execução
gobject-introspection-1.76.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.2 e desktop-file-utils-0.26,
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.38, 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.38 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.76.4 &&
cp -r ../docs/reference/{gio,glib,gobject} /usr/share/doc/glib-2.76.4
Você deveria agora instalar desktop-file-utils-0.26 e shared-mime-info-2.2 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
. Um
teste chamado glib:gio / file
é
conhecido por falhar.
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.