mousepad
D-BusなしでDebian 10で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'
dbus-launch
したがって、Debian 10の標準パッケージであるMousepadはD-Busを使用してバイナリを起動すると信じています。
答え1
Debian 10mousepad
パッケージは 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
2行目がタブ文字で始まることを確認してください。
見つかったログメッセージは、dconf
マウスパッド自体ではなくで発生します。これを無効にするには、メインファイル設定バックエンドに切り替えてみてください。
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
。