dbus-1.14.6

Introdução ao "D-Bus"

D-Bus é um sistema de barramento de mensagens, uma maneira simples para os aplicativos se comunicarem entre si. D-Bus fornece um processo de segundo plano de sistema (para eventos como novo dispositivo de hardware adicionado ou fila de impressora mudou) e um processo de segundo plano de sessão de login por usuário(a) (para necessidades gerais de "IPC" entre aplicativos de usuário(a)). Além disso, o barramento de mensagens é construído sobre uma estrutura geral de passagem de mensagens um-para-um, a qual pode ser usada por quaisquer dois aplicativos para se comunicarem diretamente (sem passar pelo processo de segundo plano do barramento de mensagens).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

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

  • Transferência (FTP):

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

  • 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,7 UPC para os testes)

Dependências do "D-Bus"

Recomendadas

Opcionais

Para os testes: D-Bus Python-1.3.2, PyGObject-3.42.2 e Valgrind-3.20.0; para documentação: Doxygen-1.9.6, xmlto-0.0.28, Ducktype e Yelp Tools

Observações de Usuário(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                     \
            --with-systemduserunitdir=no         \
            --with-systemdsystemunitdir=no       \
            --docdir=/usr/share/doc/dbus-1.14.6  \
            --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

Se você ainda estiver construindo seu sistema em "chroot" ou ainda não iniciou o processo de segundo plano, mas deseja compilar alguns pacotes que exigem o D-Bus, [então] gere o "UUID" do D-Bus, para evitar avisos ao compilar alguns pacotes, com o seguinte comando como o(a) usuário(a) root:

dbus-uuidgen --ensure

Se usar elogind-246.10, [então] crie um link simbólico para o arquivo /var/lib/dbus/machine-id:

ln -sfv /var/lib/dbus/machine-id /etc

Os testes "dbus" não podem ser executados até que D-Bus Python-1.3.2 e PyGObject-3.42.2 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 elogind.

--with-systemd{user,system}unitdir=no: Essas chaves desabilitam a instalação de unidades do "systemd" em sistemas baseados em "elogind".

--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 algum pacote instalar um arquivo .service do D-Bus fora do diretório padrão /usr/share/dbus-1/services, [então] esse diretório deveria ser adicionado à configuração local da sessão. Por exemplo, /usr/local/share/dbus-1/services pode ser adicionado realizando 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"

Para iniciar automaticamente o dbus-daemon quando o sistema for reinicializado, instale o "script" de inicialização /etc/rc.d/init.d/dbus a partir do pacote blfs-bootscripts-20230101.

make install-dbus

Observe que esse "script" de inicialização somente inicia o processo de segundo plano D-Bus abrangente ao sistema. Cada usuário(a) solicitante de acesso aos serviços do D-Bus também precisará executar um processo de segundo plano de sessão. 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

Aplicativos Instalados: dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor, dbus-run-session, dbus-send, dbus-test-tool, dbus-update-activation-environment e dbus-uuidgen
Biblioteca Instalada: libdbus-1.so
Diretórios Instalados: /etc/dbus-1, /usr/{include,lib}/dbus-1.0, /usr/lib/cmake/DBus1, /usr/share/dbus-1, /usr/share/xml/dbus-1, /usr/share/doc/dbus-1.14.6 e /var/{lib,run}/dbus

Descrições Curtas

dbus-cleanup-sockets

é usado para limpar soquetes restantes em um diretório

dbus-daemon

é o processo de segundo plano de barramento de mensagens do D-Bus

dbus-launch

é usado para iniciar o dbus-daemon a partir de um "script" do "shell". Normalmente seria chamado a partir dos "scripts" de login de um(a) usuário(a)

dbus-monitor

é usado para monitorar mensagens que passam por um barramento de mensagens D-Bus

dbus-run-session

inicia um processo como uma nova sessão do D-Bus

dbus-send

é usado para enviar uma mensagem para um barramento de mensagens do D-Bus

dbus-test-tool

é um gerador de tráfego e ferramenta de teste do D-Bus; é uma ferramenta multifuncional para depuração e perfilamento do D-Bus

dbus-update-activation-environment

é usado para atualizar o ambiente usado para serviços de sessão do D-Bus; atualiza a lista de variáveis de ambiente usadas por dbus-daemon --session quando ativa serviços de sessão sem usar o "systemd"

dbus-uuidgen

é usado para gerar um "ID" universalmente único

libdbus-1.so

contém as funções da "API" usadas pelo processo de segundo plano de mensagens do D-Bus. D-Bus é primeiro uma biblioteca que fornece comunicação "um para um" entre quaisquer duas aplicações; dbus-daemon é um aplicativo que usa essa biblioteca para implementar um processo de segundo plano de barramento de mensagens