설정 파일 참고
~/.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. 설정 변수
- 6.2. 기타 설정 파일 구조
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에서 환경을 바꾸고 나서 환경 변수가 바뀌고 난 경우는 제외합니다.