Debian
在 Debian 中執行 Mousepad 時刪除所有 D-Bus 痕跡
我正在嘗試
mousepad
在 Debian 10 上重建沒有 D-Bus 的 Debian 軟體包。首先,我嘗試建構包而不做任何更改。
apt-get source mousepad cd mousepad-0.4.1 dpkg-buildpackage --build=binary --no-sign
這樣可行。
現在我想在禁用 D-Bus 的情況下建構。我看到滑鼠墊有
--disable-dbus
建構選項,但我應該把它放在哪裡?該
debian/rules
文件如下所示:#!/usr/bin/make -f export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed -Wl,-O1 -Wl,-z,defs export DEB_BUILD_MAINT_OPTIONS=hardening=+all override_dh_missing: dh_missing --fail-missing override_dh_autoreconf: mkdir -p m4 dh_autoreconf %: dh $@
當我在 Debian 10 上啟動 Mousepad 時,我在日誌中看到以下消息。
dbus-daemon: [session uid=1000 pid=10430] Activating service name='ca.desrt.dconf' requested by ':1.0' (uid=1000 pid=10425 comm="mousepad ") dbus-daemon: [session uid=1000 pid=10430] Successfully activated service 'ca.desrt.dconf'
因此,我相信 Debian 10 上的標準包 Mousepad 確實使用了 D-Bus 並且它啟動了
dbus-launch
二進製文件。
Debian 10
mousepad
軟體包已經在沒有 D-Bus 支持的情況下建構;您可以通過查看版本 0.4.1-2 的建構日誌amd64
並蒐索“D-BUS”來驗證這一點:Build Configuration: * D-BUS support: no * Debug Support: minimum * Use keyfile backend: default * Build with GTK+ 3: yes
為了明確這一點,您需要覆蓋自動配置;將此添加到末尾
debian/rules
:override_dh_auto_configure: dh_auto_configure -- --disable-dbus
確保第二行以製表符開頭。
您發現的日誌消息來自
dconf
,而不是 Mousepad 本身;要禁用這些,您可以嘗試切換到密鑰文件設置後端:override_dh_auto_configure: dh_auto_configure -- --without-dbus --enable-keyfile-settings
當您使用它時,添加一個
changelog
條目以確保您的包不會dbus
從儲存庫“升級”到相同的啟用版本:dch --local +400cat 'Rebuild without dbus.' dch -r ignored
(這
dch
從devscripts
包中使用)。現在建構包:
dpkg-buildpackage -us -uc
並安裝它。
這仍然會產生一個依賴於(間接)的二進製文件
libdbus-1.so.3
,但那是因為它依賴於libgtk-3.so.0
,它本身依賴於libatk-bridge-2.0.so.0
,它依賴於libdbus-1.so.3
。如果您真的想擺脫 D-Bus,則必須重新
at-spi2-atk
建構,以及系統上建構依賴的任何其他內容libdbus-1-dev
。