명령어/Linux

[RHEL] rpmdev-spectool spec의 소스·패치 관리

jykim23 2026. 8. 7. 21:48
반응형

부제: spec 파일의 Source/Patch 매크로를 펼치고 내려받는다

rpmdev-spectool -l demo.spec        # Source/Patch URL 목록(매크로 전개)
rpmdev-spectool --sources demo.spec # Source만
rpmdev-spectool -g demo.spec        # 나열된 소스를 실제로 다운로드
Source0: https://example.com/demo-1.0.tar.gz
Source1: demo.service
Patch0: fix-build.patch

rpmdev-spectool은 rpmdevtools에 들어 있는 소스 관리 도구다. spec 파일에는 %{name}·%{version} 같은 매크로가 섞인 Source/Patch 항목이 들어 있는데, 이걸 사람이 직접 계산하지 않고 spectool이 전개해 실제 URL과 파일명을 뽑아 준다. -l은 목록만, -g는 그 URL들을 SOURCES 디렉토리로 내려받는다. 패키지를 새로 빌드하거나 버전을 올릴 때 소스 tarball을 손으로 챙기는 수고를 덜어 준다.

데비안 패키징에는 uscan(devscripts)이 upstream 소스를 추적·다운로드하는 비슷한 역할을 한다. spec 매크로를 그대로 이해해 펼친다는 점이 spectool 고유의 편의다.

이렇게도 쓴다

내려받기 전에 어떤 URL을 건드릴지 미리 확인한다(조합).

rpmdev-spectool -g --dry-run demo.spec

 

매크로 값을 주입해 특정 버전의 URL을 뽑는다.

rpmdev-spectool -l --define 'version 2.0' demo.spec

 

패치 파일 목록만 따로 확인한다.

rpmdev-spectool --patches demo.spec

 

빌드 트리를 만들고 소스를 SOURCES로 받는다(조합).

rpmdev-setuptree && rpmdev-spectool -g --sourcedir demo.spec

 

소스를 받은 뒤 곧바로 SRPM을 만든다(조합).

rpmdev-spectool -g demo.spec && rpmbuild -bs demo.spec
반응형