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


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.