dbus-1.16.0

Introdução ao "D-Bus"

Embora o D-Bus tenha sido construído no LFS, existem alguns recursos fornecidos pelo pacote que outros pacotes do BLFS precisam, mas as dependências deles não cabem no LFS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.

Informação do Pacote

  • Transferência (HTTP): https://dbus.freedesktop.org/releases/dbus/dbus-1.16.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 66bfcf1f42d4ebc634ca558d14335e92

  • Tamanho da transferência: 1,3 MB

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

  • Tempo de construção estimado: 0,2 UPC (adicionar 0,4 UPC para testes)

Dependências do "D-Bus"

Recomendadas

Opcionais

Systemd-257.3 (tempo de execução, para registrar serviços iniciados pelo processo de segundo plano de sessão D-Bus como serviços de usuário(a) do systemd); Para os testes: D-Bus Python-1.3.2, PyGObject-3.50.0 e Valgrind-3.24.0; para documentação: Doxygen-1.13.2, xmlto-0.0.29, Ducktype e Yelp Tools

Instalação do "D-Bus"

Instale o D-Bus executando os seguintes comandos (você possivelmente deseje revisar o arquivo meson_options.txt primeiro e adicionar quaisquer opções adicionais desejadas à linha setup do meson abaixo):

mkdir build &&
cd    build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            .. &&
ninja

Veja-se abaixo para instruções de teste.

Agora, como o(a) usuário(a) root:

ninja install

Se você estiver usando uma instalação "DESTDIR", [então] o dbus-daemon-launch-helper precisa ser corrigido posteriormente. Emita, como usuário(a) root:

chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &&
chmod -v     4750       /usr/libexec/dbus-daemon-launch-helper

Finalmente, ainda como o(a) usuário(a) root, renomeie o diretório da documentação (ele só existe se as dependências opcionais forem satisfeitas para pelo menos um formato de documentação) para torná-lo versionado:

if [ -e /usr/share/doc/dbus ]; then
  rm -rf /usr/share/doc/dbus-1.16.0    &&
  mv -v  /usr/share/doc/dbus{,-1.16.0}
fi

Muitos testes estão desabilitados, a menos que D-Bus Python-1.3.2 e PyGObject-3.50.0 tenham sido instalados. Eles precisam ser executados como um(a) usuário(a) sem privilégios a partir de uma sessão local com endereço de barramento. Para executar os testes padrão, emita ninja test.

Se você deseja executar os testes de regressão de unidade, o meson exige parâmetros adicionais os quais expõem funcionalidades adicionais nos binários que não se destinam a serem usadas em uma construção de produção do D-Bus. Se você gostaria de executar os testes, emita os seguintes comandos (para os testes, você não precisa construir os documentos):

meson configure -D asserts=true -D intrusive_tests=true &&
ninja test

Explicações do Comando

--wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema.

-D intrusive_tests=true: Constrói partes extras do código para suportar todos os testes. Não use em uma construção de produção.

-D asserts=true: Habilita código de depuração para executar asserções para declarações normalmente presumidas serem verdadeiras. Isso evita um aviso de que '-D asserts=true' por si só é útil somente para perfilamento e pode não fornecer resultados verdadeiros para todos os testes, mas adiciona a própria OBSERVAÇÃO dele de que isso não deveria ser usado em uma construção de produção.

Configurando o "D-Bus"

Arquivos de Configuração

/etc/dbus-1/session.conf, /etc/dbus-1/system.conf e /etc/dbus-1/system.d/*

Informação de Configuração

Os arquivos de configuração listados acima provavelmente não deveriam ser modificados. Se mudanças forem necessárias, [então] você deveria criar /etc/dbus-1/session-local.conf e(ou) /etc/dbus-1/system-local.conf e fazer quaisquer mudanças desejadas nesses arquivos.

Se quaisquer pacotes instalarem um arquivo .service do D-Bus fora do diretório padrão /usr/share/dbus-1/services, esse diretório deveria ser adicionado à configuração local da sessão. Por exemplo, /usr/local/share/dbus-1/services pode ser adicionado realizando-se os seguintes comandos como o(a) usuário(a) root:

cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

 <!-- Search for .service files in /usr/local -->
 <servicedir>/usr/local/share/dbus-1/services</servicedir>

</busconfig>
EOF

Processo de Segundo Plano de Sessão do "D-Bus"

Existem muitos métodos que você pode usar para iniciar um processo de segundo plano de sessão usando o comando dbus-launch. Revise a página de manual do dbus-launch para detalhes a respeito dos parâmetros e opções disponíveis. Aqui estão algumas sugestões e exemplos:

  • Adicione dbus-launch à linha no arquivo ~/.xinitrc que inicia seu ambiente gráfico de área de trabalho.

  • Se você usar gdm ou algum outro gerenciador de tela que chame o arquivo ~/.xsession, [então] você pode adicionar dbus-launch à linha no seu arquivo ~/.xsession que inicia seu ambiente gráfico de área de trabalho. A sintaxe seria semelhante ao exemplo no arquivo ~/.xinitrc.

  • Os exemplos mostrados anteriormente usam dbus-launch para especificar um aplicativo a ser executado. Isso tem a vantagem (ao usar também o parâmetro --exit-with-x11) de parar o processo de segundo plano de sessão quando o aplicativo especificado for interrompido. Você também pode iniciar o processo de segundo plano de sessão em seus "scripts" de inicialização de sistema ou os pessoais, adicionando as seguintes linhas:

    # Inicia o processo de segundo plano de sessão do "D-Bus"
    eval `dbus-launch`
    export DBUS_SESSION_BUS_ADDRESS

    Esse método não parará o processo de segundo plano de sessão quando você sair do seu "shell"; portanto você deveria adicionar a seguinte linha ao seu arquivo ~/.bash_logout:

    # Mata o processo de segundo plano de sessão do "D-Bus"
    kill $DBUS_SESSION_BUS_PID

Conteúdo

Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.3-systemd/chapter08/dbus.html#contents-dbus.