런치 패드 빌드 환경 외부에서 재생할 수없는 빌드 실패를 디버그하는 방법은 무엇입니까?


8

수정 된 libdbusmenu 패키지를 작성하려고합니다. 로컬로 빌드하면 올바르게 빌드됩니다.

sudo apt-get build-dep libdbusmenu
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1.diff.gz
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1.dsc
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913.orig.tar.gz
dpkg-source -x libdbusmenu*.dsc
cd libdbusmenu*
dpkg-buildpackage

그러나 PPA에서 테스트 중 하나가 실행되지 않아 빌드가 실패합니다. 실제 테스트 출력은 빌드 로그에 기록되지 않습니다.

https://launchpadlibrarian.net/155471644/buildlog_ubuntu-saucy-amd64.libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1_FAILEDTOBUILD.txt.gz

이 문제를 어떻게 해결할 수 있습니까?

PPA 빌더가 사용하는 빌드 환경을보다 밀접하게 재현해야 할 수도 있습니다. 그렇다면 어떻게해야합니까?

pbuilder chroot를 사용하여 빌드를 시도했지만 로컬 시스템에서 올바르게 작동합니다.

Lintian은 패키지에 대해 다음과 같은 경고를 생성합니다.

W: libdbusmenu source: quilt-build-dep-but-no-series-file
W: libdbusmenu source: patch-system-but-no-source-readme
W: libdbusmenu source: ancient-standards-version 3.9.2 (current is 3.9.4)

예, lintian은 패키지에서 많은 오류를 생성합니다. 그러나 이것은 실제로 PPA를 제외하고 모든 곳에서 빌드되는 수정되지 않은 우분투 패키지 (변경 로그 범프 만)이므로 중요하지 않습니다.
— Alistair Buxton

이것이 답변인지 여부는 확실하지 않지만 공식 우분투 패키지의 빌드 로그와 빌드 로그를 비교할 수 있습니다. 실패하면 전체 테스트 스위트 출력이 빌드 로그에 작성되도록 추가 export VERBOSE=1할 수 있습니다 debian/rules. 대신는 pbuilder의 sbuild를 사용하여 시도해 볼 수도, 볼 wiki.ubuntu.com/SimpleSbuild을 .
— Mike Miller

답변:


1

로그를 살펴보면 특히 로컬 컴퓨터에 경고가 표시되지 않는 경우 살펴보아야 할 경고가 있지만 실패한 테스트의 이름은 glib에 있다고 생각합니다. glib -이벤트.

이벤트는 거의 항상 I / O와 관련되어 있으므로 로컬 시스템의 XAUTHORITY 및 DISPLAY 설정 해제 오류를 강제로 적용하려면 표준 입력을 닫거나 / dev / null로 리디렉션하고 표준 출력 및 오류를 파일로 리디렉션하십시오. nohup은 리디렉션을 수행하지만 환경을 건드리지 않거나 nohup 대신 at 또는 batch를 사용하여 세션 리더를 변경할 수 있다는 이점을 제공합니다.


좋은 생각이지만 안타깝게도 작동하지 않았습니다. 환경없이 pbuilder를 실행할 때 모든 테스트가 여전히 통과됩니다.
— Alistair Buxton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.