dbus-1.14.8

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.0.

Informação do Pacote

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

  • Transferência (FTP):

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

  • Tamanho da transferência: 1,3 MB

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

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

Dependências do "D-Bus"

Recomendadas

Opcionais

Systemd-254 (para registrar serviços iniciados pelo processo de segundo plano de sessão D-Bus como serviços de usuário(a) systemd); Para os testes: D-Bus Python-1.3.2, PyGObject-3.44.1 e Valgrind-3.21.0; para documentação: Doxygen-1.9.7, xmlto-0.0.28, Ducktype e Yelp Tools

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/dbus

Instalação do "D-Bus"

Instale o D-Bus executando os seguintes comandos (você possivelmente revise a saída gerada a partir de ./configure --help primeiro e adicione quaisquer parâmetros desejados ao comando configure mostrado abaixo):

./configure --prefix=/usr                       \
            --sysconfdir=/etc                    \
            --localstatedir=/var                 \
            --runstatedir=/run                   \
            --enable-user-session                \
            --disable-doxygen-docs               \
            --disable-xml-docs                   \
            --disable-static                     \
            --docdir=/usr/share/doc/dbus-1.14.8  \
            --with-system-socket=/run/dbus/system_bus_socket &&
make

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

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

make 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

Muitos testes são desabilitados, a menos que D-Bus Python-1.3.2 e PyGObject-3.44.1 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 make check.

Se você deseja executar os testes de regressão de unidade, [então] o "configure" 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, [então] emita os seguintes comandos (para os testes, você não precisa construir os documentos):

make distclean                                   &&
PYTHON=python3 ./configure --enable-tests         \
                           --enable-asserts       \
                           --disable-doxygen-docs \
                           --disable-xml-docs     &&
make                                              &&
make check

Existiram informes de que os testes possivelmente falhem se executados dentro de um "shell" do "Midnight Commander". Você possivelmente receba mensagens de erro de falta de memória ao executar os testes. Elas são normais e podem ser seguramente ignoradas.

Explicações do Comando

--disable-doxygen-docs: Essa chave desabilita a construção e instalação da documentação do "doxygen", se você tiver o doxygen instalado. Se doxygen estiver instalado e você desejar construí-la, [então] remova esse parâmetro.

--disable-xml-docs: Essa chave desabilita a construção e instalação da documentação "HTML", se você tiver o xmlto instalado. Se xmlto estiver instalado e você desejar construí-la, [então] remova esse parâmetro.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-user-session: Esse parâmetro habilita sessões do DBus por usuário(a) com systemd.

--with-system-pid-file=/run/dbus/pid: Esse parâmetro especifica o local do arquivo "PID".

--with-system-socket=/run/dbus/system_bus_socket: Esse parâmetro especifica o local do soquete do barramento do sistema.

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

--enable-embedded-tests: Constrói partes extras do código para suportar somente testes de unidade. Não use em uma construção de produção.

--enable-asserts: Habilita código de depuração para executar asserções para declarações normalmente presumidas serem verdadeiras. Isso evita um aviso que '--enable-tests' 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.0-systemd/chapter08/dbus.html#contents-dbus.