Debian에서 Mousepad를 실행할 때 모든 D-Bus 추적을 제거합니다.

Debian에서 Mousepad를 실행할 때 모든 D-Bus 추적을 제거합니다.

mousepadD-Bus 없이 데비안 10에서 데비안 패키지를 다시 빌드하려고 합니다 .

먼저 아무런 변경 없이 패키지를 만들어 보았습니다.

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 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마우스패드 자체가 아닌 에서 발생합니다. 이를 비활성화하려면 주요 파일 설정 백엔드로 전환해 보세요.

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.0libatk-bridge-2.0.so.0libdbus-1.so.3

정말로 D-Bus를 없애고 싶다면 다시 빌드해야 합니다.at-spi2-atk, 그리고 빌드가 의존하는 시스템의 다른 모든 것 libdbus-1-dev.

관련 정보