설정 파일 참고

~/.config/jhbuildrc 파일은 표준 파이썬 문법을 활용합니다. 이 파일은 실행 파일이며, 이름 공간에 정의한 결과 변수는 JHBuild 동작 방식을 다룹니다. 기본 값은 사용자 설정 파일 실행 전 이름 공간에 우선 들어갑니다.

부울린 설정값은 다음 예제에서 나타내는 바와 같은 문법으로 설정합니다:

use_local_modulesets = True

문자열 설정 변수는 다음 예제에서 나타내는 바와 같은 문법으로 설정합니다:

autogenargs = '--disable-static --disable-gtk-doc'

리스트 설정 변수는 다음 예제에서 나타내는 바와 같은 문법으로 설정합니다:

skip = ['mozilla', 'pulseaudio']

딕셔너리 설정 변수는 다음 예제에서 나타내는 바와 같은 문법으로 설정합니다:

repos['git.gnome.org'] = 'ssh://username@git.gnome.org/git/'

6.1. 설정 변수

alwaysautogen

부울린 값. True로 설정하면 항상 autogen.sh 스크립트를 실행합니다. JHBuild로 전달하는 --autogen 옵션과 동일합니다. 기본값은 False입니다.

autogenargs

모든 모듈의 autogen.sh 스크립트에 전달할 인자 값이 들어있는 문자열. module_autogenargs 딕셔너리를 활용하여 일부 모듈에 중복 적용할 수 있습니다.

branches

지정 모듈에서 사용할 브랜치를 설정하는 딕셔너리. 모듈 세트에 지정한 브랜치 대신 모듈의 다른 브랜치로 바꾸어 JHBuild로 빌드할 때 활용하면 좋습니다.

모듈 버전 관리 시스템에 따라 브랜치 정의가 다릅니다:

  • CVS: 리비전. E.g. 'BRANCH-PROJECT-0_8'

  • 바자르: 모듈 브랜치 URI. E.g. 'http://bzr.example.net/project/gnome-2-28'

  • 깃: 튜플값. 첫번째 값은 추가 저장소 URI (또는 None 값), 두번째 값은 브랜치 이름. E.g. ('git://git.example.net/project', 'gnome-2-28')

    예제 2간단한 예제
    branches['modulename'] = (None, 'branchname')
  • 서브버전: 모듈 브랜치 URI. E.g. 'svn://svn.example.net/project/gnome-2-28'

builddir_pattern

printf 방식의 형식 패턴을 지녔으며 빌드 디렉터리 이름을 만들 때 씁니다. 소스 트리와 빌드 트리를 구분할 때만 씁니다. 형식 문자열에서 %s 부분은 checkoutdir 변수 값으로 바뀝니다. 기본값은 '%s' 입니다.

buildroot

빌드 트리를 둘 상위 디렉터리를 지정하는 문자열. 기본값은 ~/.cache/jhbuild/build 입니다. None으로 지정하면 소스 트리에서 빌드를 진행합니다.

buildscript

어떤 빌드 스크립트를 사용할 지 지정하는 문자열. 기본값 terminal로 그대로 두시는게 좋습니다. 특히, gtk로 설정하지 마십시오.

build_policy

어떤 모듈을 빌드할 지 지정하는 문자열. 쓸 수 있는 옵션은, 모든 모듈을 빌드하는 all, 최근 바뀐 모듈만 빌드하는 updated, 모듈 그 자체가 바뀌거나 의존 요소만 바뀌었을 경우 해당 모듈 또는 의존 요소 모듈만 빌드하는 updated-deps입니다. 기본값은 updated-deps입니다.

checkoutroot

소스트리의 패키지를 해체할 디렉터리를 지정하는 문자열입니다. buildroot 변수 값을 설정하기 전에는 이 디렉터리에도 빌드합니다. 기본값은 ~/checkout/gnome 입니다.

checkout_mode

A string specifying how the checkout is performed for directories in version control. Defaults to update. This can be set per module using module_checkout_mode. Possible values are update (update checkout directory), clobber (wipe out directory before checking out the sources), export (wipe out directory then create a tarball of the sources containing any patches) and copy (checkout in a directory different from the one it will build).

cmakeargs

모든 모듈에 대해 cmake 명령을 실행할 때 전달할 인자 값이 들어있는 문자열. module_cmakeargs 딕셔너리를 활용하여 일부 모듈에 중복 적용할 수 있습니다.

copy_dir

copy checkout_mode 상태일 때, 복사 대상 디렉터리를 지정하는 문자열. 기본값은 체크아웃 디렉터리입니다.

export_dir

A string specifying the directory to export to, if the export checkout_mode is in use. Defaults to the checkout directory.

cvs_program

CVS 기능을 수행하는 프로그램을 지정하는 문자열. git-cvsimport, cvs 둘 중 하나가 될 수 있습니다. 기본값은 cvs 입니다.

disable_Werror

automake 빌드에 --disable-Werror 옵션을 전달하는 부울린 값(기본값 True). 대부분 패키지에서는 치명적인 컴파일러 경고를 끄는 방법으로 이 플래그를 사용합니다. True 값은 다른 사람의 모듈에서 빌드 실패로 않은 최신 버전을 가져오겠다...는 의미에서 타당한 기본값입니다. False 값으로의 설정은 연속 통합 시스템 또는 테스트 시스템의 일부로서 jhbuild를 사용할 때 적절합니다.

dvcs_mirror_dir

로컬 미러 디렉터리를 지정하는 문자열. JHBuild에서는 지정 디렉터리에 저장소 로컬 미러를 만듭니다. 이 미러는 다중 저장소 그룹에서 시공간을 절약하는 용도로 공유할 수 있는데, 로컬 클론에 하드링크를 사용하기 때문입니다. update 명령과 updateone 명령은 미러를 만들고 온라인 저장소에서 새 커밋을 가져옵니다. 이 옵션은 깃과 바자르 저장소에 대해서만 지원합니다.

exit_on_error

모듈 빌드에 실패했을 때 즉시 종료 여부를 지정하는 부울린 값. 이후 다른 모듈 빌드시 실패를 막으려는 목적으로(도) 비대화식 모드에서 근본적으로 쓸만합니다. True 값 설정은 --exit-on-error 옵션 전달과 동일합니다. 기본값은 False 입니다.

extra_prefixes

추가 선행 경로목록을 순서대로 지정하는 문자열 리스트입니다. JHBuild에서는 prefix 변수 값에 따라 여러 환경 변수(LD_LIBRARY_PATH, PKG_CONFIG_PATH, XDG_DATA_DIRS)를 설정합니다. extra_prefixes 변수에 디렉터리 값을 추가하면 이 선행 지정 경로 마찬가지로 JHBuild prefix 값보단 후순위로 들어가긴 하지만 시스템 디렉터리보다는 우선합니다. 이 변수값은 /usr/local 디렉터리에 프로그램을 시스템에 설치할 경우 이 디렉터리를 변수가 값으로 설정하나, 이렇게 하지 않은 이상 기본적으로 값을 넣지 않습니다.

help_website

도움말 웹사이트 이름과 URL을 지정하는 튜플. 실패한 모듈에 대한 틴더박스 html의 내용을 웹사이트로 나타냅니다. URL에서 %(module)s은 모듈 이름입니다. 비활성화하려면 help_website 값을 None으로 설정합니다. 기본값은 ('Gnome Live!', 'http://live.gnome.org/JhbuildIssues/%(module)s') 입니다.

installprog

/usr/bin/install 프로그램 대신 사용할 프로그램을 지정하는 문자열.

ignore_suggests

의존성 트리를 계산할 때 약 의존성 무시 여부를 지정하는 부울린 값. 기본값은 False 입니다.

interact

사용자와 상호 대화 진행 여부를 지정하는 부울린 값. False 값으로의 설정은 --no-interact 옵션 전달과 동일합니다. 기본값은 True 입니다.

makeargs

make 명령에 전달할 추가 인자 값 목록 문자열입니다. JHBuild에서는 가용 CPU 코어 수에 따라 자동으로 병렬 실행 옵션(-j)을 붙입니다. 기본값은 ''입니다.

makecheck

make 명령 실행 후 make check 명령을 실행 여부를 지정하는 부울린 값. 기본 값은 False 입니다.

makecheck_advisory

make check 명령 실행시 문제점 보고 용도로만 동작하고 빌드 실패를 일으키게 하지 못하도록 할 지 여부를 정하는 부울린 값. 기본값은 False 입니다.

makeclean

make 명령 실행 전 make clean 명령 실행 여부를 지정하는 부울린 값. 기본값은 False 입니다.

makedist

make 명령 실행 후 make dist 명령 실행 여부를 지정하는 부울린 값. 기본값은 False 입니다. 이 설정은 --dist 옵션 전달과 동일합니다.

makedistcheck

make 명령 실행 후 make distcheck 명령 실행 여부를 지정하는 부울린 값. 기본값은 False 입니다. 이 설정은 --distcheck 옵션 전달과 동일합니다.

mesonargs

모든 모듈에 대해 meson 실행시 전달하는 인지 값이 들어있는 문자열. module_mesonargs 딕셔너리를 활용하여 일부 모듈에 중복 적용할 수 있습니다. 기본값은 '' 입니다.

module_autogenargs

autogen.sh 스크립트에 전달할 인자값을 모듈 이름 별로 문자열로 지정한 딕셔너리. module_autogenargs 딕셔너리의 설정 값은 autogenargs 전역 설정 대신 사용합니다. 일부 모듈이 딕셔너리에 없으면 autogenargs 전역 설정을 사용합니다.

module_checkout_mode

모듈에 따라 체크아웃 모드를 지정하는 딕셔너리. checkout_mode 전역 설정을 대신합니다.

module_cmakeargs

cmake 명령으로 전달할 인자값을 모듈 이름 별로 문자열로 지정한 딕셔너리. module_cmakeargs 변수의 설정은 cmakeargs 전역 설정 대신 사용합니다. 일부 모듈이 딕셔너리에 없으면, cmakeargs 전역 설정을 사용합니다.

module_makeargs

make 명령으로 전달할 인자값을 모듈 이름 별로 문자열로 지정한 딕셔너리. module_makeargs 변수의 설정은 makeargs 전역 설정 대신 사용합니다. 일부 모듈이 딕셔너리에 없으면, makeargs 전역 설정을 사용합니다.

module_makecheck

make 명령 실행 후 make check 명령 실행 여부를 모듈 이름 별로 부울린 값으로 지정한 딕셔너리. module_makecheck의 설정은 makecheck 값 대신 사용합니다. 일부 모듈이 딕셔너리에 없으면, makecheck 전역 설정을 사용합니다.

module_mesonargs

meson 명령으로 전달할 인자값을 모듈 이름별로 문자열로 지정한 딕셔너리. module_mesonargs 설정은 mesonargs 전역 설정 대신 사용합니다. 일부 모듈이 딕셔너리에 없으면, mesonargs 전역 설정을 사용합니다.

module_ninjaargs

ninja 명령으로 전달할 인자값을 모듈 이름별로 문자열로 지정한 딕셔너리. module_ninjaargs 설정은 ninjaargs 전역 설정 대신 사용합니다. 일부 모듈이 딕셔너리에 없으면, ninjaargs 전역 설정을 사용합니다.

module_nopoison

모듈 이름별로 부울린 값으로 지정하는 딕셔너리. True로 설정하면, JHBuild에서는 지정 모듈이 빌드에 실패하더라도 의존 모듈 빌드를 시도합니다. module_nopoison 설정은 nopoison 값을 대신합니다. 일부 모듈이 딕셔너리에 없으면, nopoison 전역 설정을 사용합니다.

module_extra_env

모듈에 대해 명령을 실행할 때 추가로 전달할 환경 변수를 모듈 이름별로 딕셔너리로 지정하는 딕셔너리입니다.

module_static_analyzer

모듈을 빌드할 때 정적 분석을 수행할 지 여부를 모듈 이름별로 부울린 값으로 설정하는 딕셔너리. 이 설정은 static_analyzer 전역 설정 옵션을 대신할 수 있습니다.

modules

빌드할 모듈을 지정하는 문자열 목록입니다. 모듈 목록은 실제로 buildone 명령을 사용하기까지 모든 의존 요소를 넣으려 재귀적으로 확장합니다. 기본 값은 ['meta-gnome-desktop'] 입니다.

moduleset

활용할 모듈 세트 이름을 지정하는 문자열, 문자열 목록입니다. (경로와 확장을 뺀) JHBuild에 들어간 모듈 세트의 파일 이름이거나 모듈 세트를 외부에서 관리하는 전체 HTTP URL일 수 있습니다. HTTP URL 모듈 세트는 로컬에 캐싱할 수 있습니다. 동일한 이름을 지닌 모듈이 모듈 세트에 한번 이상 나타나면 가장 마지막에 나타난 모듈을 우선 활용합니다. JHBuild에서 제공하는 모듈 세트는 현재 그놈 개발 출시 주기에 맞춰 업데이트합니다.

modulesets_dir

활용할 모듈 세트가 들어있는 디렉터리를 지정하는 문자열. 기본 값은 JHBuild 소스가 들어있는 modulesets/ 디렉터리입니다.

nice_build

리눅스에서는 SCHED_IDLE 우선 순위에 따라, 유닉스에서는 nice 명령 기반으로 빌드를 실행합니다. 빌드 처리량에는 미미한 영향을 미치나, 병렬 빌드에 있너서는 어마어마한 데스크톱 반응성의 개선을 볼 수 있습니다.

ninjaargs

ninja 명령에 전달할 추가 인자 값 목록 문자열입니다. 기본값은 ''입니다.

nobuild

부울린 값. True로 설정하면 모듈을 빌드하지 않지만 소스를 다운로드하고 패키지를 해제합니다. 기본값은 False 입니다.

nonetwork

네트워크 접근 여부를 지정하는 부울린 값. CVS 모듈을 체크아웃, 업데이트하거나, 타르볼 다운로드, 모듈 세트 업데이트에 영향을 줍니다. True 값 설정은 --no-network 옵션 전달과 동일합니다. 기본값은 False 입니다.

nonotify

알림 데몬을 활용한 알림 동작 여부를 지정하는 부울린 값. False로 설정하면 알림을 울립니다. 기본값은 True 입니다.

nopoison

부울린 값. True로 설정하면 JHBuild에서 하나 이상의 모듈 의존 요소 빌드에 실패했다 하더라도 모듈 빌드를 시도합니다. 이 옵션은 --no-poison 인자와 동일합니다. 기본값은 False 입니다.

notrayicon

제니티로 시스템 트레이에 아이콘을 표시할 지 여부를 지정하는 부울린 값. False 값을 설정하면 아이콘이 나타납니다. 기본값은 True 입니다.

noxvfb

부울린 값. True로 설정하면 Xvfb 대신 실제 X 서버에서 그래픽 테스트를 진행합니다. 이 옵션은 --no-xvfb 인자 전달과 동일합니다. 기본값은 False 입니다.

partial_build

부울린 값. True로 설정하면 JHBuild에서 관련 시스템 패키지를 설치했고 버전 조건이 충분할 경우 의존 관계 모듈을 빌드하지 않습니다. 기본값은 True 입니다.

prefix

모듈 설치 경로를 지정하는 문자열입니다. prefix는 절대 경로여야합니다. 이 디렉터리에 기록할 수 있어야합니다. 기본 값은 '~/jhbuild/install/' 입니다.

pretty_print

하위 프로세스 출력을 깔끔하게 다듬어 보여줄지 여부를 설정하는 부울린 값. CVS 출력에서만 이쁜 출력 기능을 지원합니다. 이쁜 출력 기능에 문제가 있을 경우 끄십시오. 기본값은 True 입니다.

print_command_pattern

JHBuild에서 명령을 실행하기 전에 보여줄 문자열. 문자열에서 %(command)s는 실행할 명령 문자열로 바뀝니다. %(cwd)s는 현재 작업 디렉터리로 바뀝니다. 기본값은 '%(command)s' 입니다.

progress_bar

quiet mode에서 진행 표시줄 표시 여부를 지정하는 부울린 값. 기본값은 True 입니다.

quiet_mode

부울린 값. True 값으로 설정하면 실행 명령 출력을 끕니다. 기본값은 False 입니다.

repos

개별 저장소의 대체 저장소 위치를 지정하는 딕셔너리. 이 설정 변수는 모듈 개발자에게 쓸모있습니다. 기본적으로 JHBuild에서는 익명 저장소 위치로 저장소에서 코드를 체크아웃합니다. 딕셔너리 키는 단축 저장소 이름이며, 값은 대체 저장소 위치 문자열입니다. 예를 들면:

repos['git.gnome.org'] = 'ssh://username@git.gnome.org/git/'
skip

건너뛸 모듈의 리스트. 이 --skip 명령행 옵션은 목록 원소를 확장합니다. 이 목록은 기본적으로 비어있습니다. 목록에 '*' 특수값이 들어있다면, JHBuild에서는 modules 변수에 직접 언급하지 않아도 모든 모듈을 건너뜁니다. 암시적 의존성 없이 모듈을 빌드하려 할 경우 쓸만한 변수입니다.

static_analyzer

부울린 값. True로 설정하면 빌드하는 각각의 모듈에 대해 정적 분석 도구를 실행합니다. 기본값은 False 입니다.

static_analyzer_outputdir

(static_analyzer 값이 True일 경우)정적 분석 보고서를 저장할 루트 디렉터리입니다. 기본값은 /tmp/jhbuild_static_analyzer 입니다.

static_analyzer_template

정적 분석기의 명령 양식입니다. outputdir 매개 변수(static_analyzer_outputdir 설정 변수값)와 module 매개 변수(현재 빌드할 모듈 이름)를 printf 함수처럼 나누어 지니고 있습니다. 명령 결과는 모듈을 빌드할 때 make 명령의 prefix 값으로 사용할 수 있습니다. 기본 값은 scan-build 입니다.

sticky_date

이 문자열 값을 설정했으며 버전 관리 시스템에서 지원할 경우 JHBuild에서 빌드를 시작하기 전 소스 트리를 지정 날짜로 업데이트합니다. ISO 날짜 형식('yyyy-mm-dd')이 필요합니다. 기본값은 None 입니다.

svn_program

서브버전 기능을 지원하는 프로그램을 지정하는 문자열. svn, git-svn, bzr 값을 설정할 수 있습니다. 기본값은 svn 입니다.

system_libdirs

시스템 라이브러리 경로를 지정하는 문자열의 리스트. PKG_CONFIG_PATH와 같은 일부 환경 변수의 기본 값을 설정할 때 씁니다.

tarballdir

이 변수에 문자열을 지정하면, 타르볼을 checkoutroot 대신 지정 디렉터리로 다운로드합니다. 여러 JHBuild 환경에서 또는 주기적으로 checkoutroot 위치를 비우고 대역폭 사용량을 줄이려 할 경우, 이 설정 값을 용이하게 활용할 수 있습니다. 기본값은 '~/.cache/jhbuild/downloads' 입니다.

tinderbox_outputdir

jhbuild tinderbox 출력을 저장할 디렉터리를 지정하는 문자열. --output 옵션이 이 문자열 값을 대신할 수 있습니다. 기본값은 None 이기에, 명령행 옵션을 사용하거나 이 변수 값을 설정 파일에 설정해야 합니다.

trycheckout

부울린 값. True로 설정하면 1) autogen.sh 스크립트를 다시 실행하고, 2) 버전 관리 시스템에서 모듈 새 버전을 체크아웃 하는 방식으로 JHBuild에서 실패 상황을 자동으로 만회 시도합니다. 이 설정은 --try-checkout 옵션 전달과 동일합니다.

use_local_modulesets

JHBuild 소스 코드를 따라 체크아웃한 모듈 세트의 사용 여부를 지정하는 부울린 값. 그놈 버전 관리 시스템에서 실시간으로 다운로드하는 동작을 대신합니다. 기본값은 False 입니다.

xvfbargs

그래픽 테스트를 실행할 경우 Xvfb에 전달할 인자 값 목록 문자열입니다.

conditions

빌드할 모듈과 빌드할 때 사용할 옵션에 영향을 줄 조건(문자열) 집합입니다. 설정을 바꾸려 할 경우 리스트를 수정할 때 conditions.add() 함수와 conditions.discard() 함수를 사용해야합니다.

기본 조건 세트는 운영체제에 따라 다르게 결정하지만 --conditions= 명령행 인자를 사용하여 수정할 수 있습니다. jhbuildrc에 --conditions 옵션을 넣었다면 바꾼 설정이 보이므로, 세트의 현재 값에 기반하여 다른 변수도 보일 수 있겠지만, jhbuildrc에서 설정을 바꾸고 난 후면 --conditions 설정이 다시 적용됩니다.

6.2. 기타 설정 파일 구조

위 변수에 덧붙여 설정 파일을 설정할 수 있는 다른 설정도 있습니다:

os.environ

환경을 나타내는 딕셔너리. 이 환경 변수 값은 JHBuild 배포 프로세스에 전달합니다.

CPPFLAGS, CFLAGS, INSTALL, LDFLAGS 과 같이 영향도가 높은 환경 변수도 있습니다. 예를 들면:

os.environ['CFLAGS'] = '-O0 -g'
addpath(envvar, pathname)

이 코드는 PATH 환경 변수에 디렉터리를 추가합니다. 환경 변수가 완전히 비어있을 경우 addpath가 이 경우를 제대로 다룹니다(환경 변수 앞 뒤 어딘가에 콜론이 남아있으면 예상치 못한 결과를 가져올 수 있습니다).

prependpath(envvar, pathname)

설정 파일을 처리하고 나면, JHBuild에서 prefix 와 같은 변수를 기반으로 일부 경로를 대체합니다(예: PATH$prefix/bin 추가)

prependpath 함수는 addpath 처럼 동작하나 JHBuild에서 환경을 바꾸고 나서 환경 변수가 바뀌고 난 경우는 제외합니다.