2011-08-15 6 views
0

목표는 서브 패키지를 동적으로 정의하는 스펙 파일을 작성하는 것입니다.서브 패키지를 동적으로 정의하는 방법

현재 스펙 파일에 정의 된 매크로가 있으므로 다른 매개 변수를 사용하여 다른 % 패키지 섹션을 생성 할 수 있습니다. 예 : -n subpackage- % 1 \ 요약 % 패키지 \ 하위 패키지 % 1 \ ... \ % {닐}

% create_pkg SUB1 % create_pkg SUB2 :

퍼센트 (n)은 create_pkg 정의 % create_pkg sub3

그러나 specfile의 create_pkg 매크로 매개 변수 (sub1, sub2, sub3) 만 하드 코딩 할 수 있습니다. specfile이 원하는 하위 패키지의 이름을 포함하는 별도의 파일을 읽게 만드는 방법이 있습니까? 예.

SUB1 SUB2 SUB3

및 사양 파일 subpackages.txt을 읽고 txt 파일에서 읽은 이름 %의 create_pkg를 부를 것이다 : subpackages.txt는 다음있을 것입니다.

답변

2

내 질문에 답해주세요. rpm에 lua 스크립트 빌드가있는 경우 (생각한 빌드 타임 옵션입니다), 파일에 lua 스크립트를 사용할 수 있습니다.

1) 하위 패키지를 별도의 파일로 정의하십시오. targets.txt :

:
%include targets.txt 

3) 프리앰블 섹션에서 대상을 반복하는 루아 스크립트를 사용

:

%define build_targets sub1 sub2 sub3 

2) 사양 파일의 시작 부분에 targets.txt 포함

%{lua: 
for target in string.gmatch(rpm.expand("%{build_targets}"), "[%w_-]+") 
do 
    print("%package "..target.."\n") 
    print("Summary: subpackage "..target.."\n") 
    ... 
    print("%description "..target.."\n") 
end 

그러면 하위 패키지에 대한 % package 지시문이 동적으로 생성됩니다.

관련 문제