비표준 옵션으로 데비안 패키지 빌드하기

비표준 옵션으로 데비안 패키지 빌드하기

을 사용하여 소스에서 Debian 패키지를 빌드하고 싶습니다 dpkg-buildpackage. 패키지 소스를 다운로드했습니다.

apt-get -t wheezy-backports source gnucash

문서를 보면 gnucash-2.6.9/configure패키지를 빌드할 때 일부 옵션을 선택/선택 취소할 수 있다고 나와 있습니다.

데비안 관리자가 나를 대신해 결정을 내렸습니다. 하지만 특정 옵션을 비활성화하려면 어떻게 해야 합니까?

없이 컴파일하고 싶다고 가정해 보겠습니다 --enable-aqbanking. 이 옵션은 여러 구성 파일에 나타납니다.

$ grep -rl enable-aqbanking gnucash-2.6.9/
gnucash-2.6.9/packaging/gnucash.spec
gnucash-2.6.9/packaging/gnucash.spec.in
gnucash-2.6.9/configure.ac
gnucash-2.6.9/configure

어느 것을 편집해야 합니까?

올바른 접근 방식은 무엇입니까?

답변1

gnucash-2.6.9/packaging/gnucash.specgnucash-2.6.9/packaging/gnucash.spec.in데비안 패키지의 일부가 아닙니다 . 이는 RPM 형식으로 gnucash를 패키징하기 위한 프로젝트 자체 사양 파일(두 번째는 템플릿)입니다.

gnucash-2.6.9/configure.ac또한 업스트림의 일부입니다. 이것은 빌드에 사용되는 Autoconf 파일입니다 gnucash-2.6.9/configure. 이 autoconf.ac파일은 데비안 패키지에서 사용되지만 패키지의 일부는 아닙니다.

debian/모든 데비안 패키지는 이 하위 디렉터리에 있습니다 .

실제 빌드 스크립트(실제로는 Makefile)가 debian/rules여기에서 관심을 가져야 할 전부입니다. 대부분의 데비안 패키지는debhelper프로그램. 이 패키지 dhdebhelper.

간단히 말해서 "전통적인" 작업 방식은 debhelper처음부터 모든 작업을 수행하는 대신 패키지를 빌드하는 데 사용할 수 있는 표준 명령 세트를 제공하는 것입니다. 각 표준 단계에는 필요한 경우 재정의할 수 있는 기본값이 있는 dh최신 변형입니다 . debhelper이는 AP가 말한 것과 관련이 있다. 이 경우 규칙 파일은 기본 구성 단계를 재정의합니다. 그러므로. override_dh_auto_configure구성 단계의 기능을 변경하려면 이 대상을 수정해야 합니다 . override_dh_auto_configure목표 는 다음과 같습니다 .

override_dh_auto_configure:
        dh_auto_configure -- \
                --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)/gnucash \
                --infodir=/noinst \
                --mandir=/noinst \
                --docdir=/noinst \
                --disable-static \
                --enable-dbi \
                --enable-ofx \
                --enable-aqbanking \
                --enable-locale-specific-tax \
                --enable-python

그래서 이것은 dh_auto_configure debhelper목표를 초과했습니다. man dh_auto_configure이 목표에 대한 자세한 정보를 확인하세요 .

이 경우 기본값은 인수 없이 실행 dh_auto_configure되는 것입니다 . 즉, 재정의는 지정된 인수/옵션을 통해서만 실행됩니다. 따라서 여기서 매개변수/옵션을 제거해야 합니다 .configure./configureconfigure--enable-aqbanking

다음은 dh에 관한 슬라이드입니다.네 할아버지의 Debhelper가 아니야. 온라인에 추가 정보가 있습니다.

답변2

좋아요, 한번 보세요 gnucash-2.6.x/debian/rules.

표시된 줄 override_dh_auto_configure:(내 경우에는 23번 줄)을 찾아 그 아래에 재정의를 추가하세요.

귀하의 경우 --enable-aqbanking이미 존재하므로(적어도 wheeze 백포트의 경우) 삭제하면 됩니다.

자세한 내용은 다음에서 확인할 수 있습니다.매뉴얼 페이지.

고쳐 쓰다:또한 파일 rules에 사용자 정의 콘텐츠를 configure.DEB_CONFIGURE_EXTRA_FLAGS

관련 정보