dbus-1.16.0

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

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 \
            -D systemd=disabled    \
            .. &&
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

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-255.17, [então] crie um link simbólico para o arquivo /var/lib/dbus/machine-id:

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

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 systemd=disabled: Não instale arquivos de suporte do systemd mesmo que libsystemd exista (ou seja, o pacote elogind-255.17 esteja instalado).

-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"

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

make install-dbus

Se essa for a primeira vez que instala o D-Bus no sistema e não estiver operando em um ambiente chroot, você consegue iniciar imediatamente o dbus-daemon sem reinicializar o sistema:

/etc/init.d/dbus start

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