GLib-2.80.4

Introdução ao 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.2.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/glib/2.80/glib-2.80.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4334211338220a165350d1c4a1597b0e

  • Tamanho da transferência: 5,3 MB

  • Espaço em disco estimado exigido: 189 MB (adicionar 22 MB para os testes)

  • Tempo de construção estimado: 0,9 UPC (adicionar 0,4 UPC para testes; ambos usando paralelismo=4)

Transferências Adicionais

GObject Introspection (Recomendado)

Remendo para Seleção de Nível de Registro (Opcional)

Dependências de GLib

Exigidas

packaging-24.1

Recomendadas

Opcionais

Cairo-1.18.0 (para alguns testes do GObject Introspection), dbus-1.14.10 (para alguns testes), Fuse-3.16.2 e bindfs (ambos necessários para um teste), GDB-15.1 (para ligações), Gjs-1.80.2 (para alguns testes do GObject Introspection), GTK-Doc-1.34.0 (para documentação do GObject Introspection), docbook-xml-4.5, docbook-xsl-nons-1.79.2, Gi-DocGen-2024.1 (para construir documentação de API), glib-networking-2.80.0 (para alguns testes, mas isso é uma dependência circular), Mako-1.3.5 e Markdown-3.6 (ambos para g-ir-doc-tool) e sysprof

Dependências Adicionais de Tempo de Execução

Instalação do 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.43, 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]

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       \
      -D introspection=disabled \
      -D man-pages=enabled      &&
ninja

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.

Como o(a) usuário(a) root, instale esse pacote pela primeira vez para permitir construir o GObject Introspection:

ninja install

Construa GObject Introspection:

tar xf ../../gobject-introspection-1.80.1.tar.xz &&

meson setup gobject-introspection-1.80.1 gi-build \
            --prefix=/usr --buildtype=release     &&
ninja -C gi-build

Para testar os resultados do GObject Introspection, emita: ninja -C gi-build test.

Como o(a) usuário(a) root, instale o GObject Introspection para gerar os dados de introspecção das bibliotecas GLib (requeridos por vários pacotes usantes do Glib, especialmente alguns pacotes do GNOME):

ninja -C gi-build install

Agora gere os dados de introspecção:

meson configure -D introspection=enabled &&
ninja

Se você tiver Gi-DocGen-2024.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed 's/glib-2.0/glib-2.80.4/'        \
    -i ../docs/reference/meson.build &&
meson configure -D documentation=true &&
ninja

Como o(a) usuário(a) root, instale esse pacote novamente para os dados de introspecção (e, opcionalmente, a documentação):

ninja install

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]

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.

[Nota]

Nota

Se você tiver instalado o glib-skip_warnings-1.patch e tiver a variável de ambiente GLIB_LOG_LEVEL configurada, desconfigure-a antes de executar os testes. Isso fará com que vários testes falhem.

Para testar os resultados, depois de ter instalado os pacotes, 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.

-D man-pages=enabled: Essa chave faz com que a construção crie e instale as páginas de manual do pacote.

Conteúdo

Conteúdo do GLib

Aplicativos Instalados: gapplication, gdbus, gdbus-codegen, gi-compile-repository, gi-decompile-typelib, gi-inspect-typelib gio, gio-querymodules, glib-compile-resources, glib-compile-schemas, glib-genmarshal, glib-gettextize, glib-mkenums, gobject-query, gresource, gsettings, gtester e gtester-report
Bibliotecas Instaladas: libgio-2.0.so, libgirepository-2.0.so, libglib-2.0.so, libgmodule-2.0.so, libgobject-2.0.so e libgthread-2.0.so
Diretórios Instalados: /usr/include/gio-unix-2.0, /usr/include/glib-2.0, /usr/lib/gio, /usr/lib/glib-2.0, /usr/share/glib-2.0 e /usr/share/doc/glib-2.80.4 (opcional)

Conteúdo do GObject Introspection

Aplicativo Instalado: g-ir-annotation-tool, g-ir-compiler, g-ir-doc-tool (opcional), g-ir-generate, g-ir-inspect e g-ir-scanner
Bibliotecas Instaladas: libgirepository-1.0.so e _giscanner.cpython-312-<arch>-linux-gnu.so
Diretórios Instalados: /usr/include/gobject-introspection-1.0, /usr/lib/girepository-1.0, /usr/lib/gobject-introspection, /usr/share/gir-1.0 e /usr/share/gobject-introspection-1.0

Descrições Curtas

gapplication

pode ser usado para iniciar aplicativos e para enviar mensagens para instâncias já em execução de outros aplicativos

gdbus

é uma ferramenta simples usada para trabalhar com objetos D-Bus

gdbus-codegen

é usado para gerar código e (ou) documentação para uma ou mais interfaces D-Bus

gi-compile-repository

converte um ou mais arquivos GIR em um ou mais arquivos typelib

gi-decompile-typelib

é um descompilador GIR que usa a API do repositório

gi-inspect-typelib

é um utilitário que fornece informações acerca de um typelib do GI

gio

é um utilitário que torna muitos recursos do GIO disponíveis a partir da linha de comando

gio-querymodules

é usado para criar um arquivo giomodule.cache nos diretórios listados. Esse arquivo lista os pontos implementados de extensão para cada módulo que tenha sido encontrado

glib-compile-resources

é usado para ler a descrição do recurso a partir de um arquivo e os arquivos aos quais ele referencia para criar um pacote binário de recurso que seja adequado para uso com a API GResource

glib-compile-schemas

é usado para compilar todos os arquivos de esquema XML do GSettings em um diretório para um arquivo binário com o nome gschemas.compiled que pode ser usado pelo GSettings

glib-genmarshal

é um utilitário de geração de código marechal C para encerramentos GLib

glib-gettextize

é uma variante do utilitário de internacionalização gettext

glib-mkenums

é um utilitário de geração de descrição de enumeração em linguagem C

gobject-query

é um pequeno utilitário que desenha uma árvore de tipos

gresource

oferece uma interface simples de linha de comando para GResource

gsettings

oferece uma interface simples de linha de comando para GSettings

gtester

é um utilitário de execução de teste

gtester-report

é um utilitário de formatação de informe de teste

libgio-2.0.so

é uma biblioteca que fornece classes úteis para E/S de uso geral, rede de intercomunicação, IPC, configurações e outras funcionalidades de aplicativos de alto nível

libgirepository-2.0.so

é uma biblioteca que fornece acesso a typelibs e dados de introspecção que descrevem APIs da C

libglib-2.0.so

é uma biblioteca de utilitários portável de uso geral, que fornece muitos tipos úteis de dados, macros, conversões de tipo, utilitários de sequências de caracteres, utilitários de arquivo, uma abstração de mainloop e assim por diante

libgmodule-2.0.so

fornece API portável para carregar dinamicamente módulos

libgobject-2.0.so

fornece o sistema de tipo base do GLib e a classe de objeto

libgthread-2.0.so

é uma biblioteca básica para retro compatibilidade; costumava ser a biblioteca de camadas do GLib, mas as funcionalidades foram mescladas na libglib-2.0

g-ir-annotation-tool

cria ou extrai dados de anotação a partir de typelibs do GI

g-ir-compiler

é uma contraparte de gi-compile-repository para a antiga API libgirepository-1.0

g-ir-doc-tool

gera arquivos Mallard que podem ser visualizados com yelp ou renderizados para HTML com yelp-build originários das ferramentas yelp

g-ir-inspect

é uma contraparte de gi-inspect-typelib para a antiga API libgirepository-1.0

g-ir-generate

é uma contraparte de gi-decompile-typelib para a antiga API libgirepository-1.0

g-ir-scanner

é uma ferramenta que gera arquivos XML GIR analisando cabeçalhos e introspectando bibliotecas baseadas em GObject

libgirepository-1.0.so

é uma contraparte de libgirepository-2.0 com a antiga API 1.0