RPM 매크로 덤프의 "-14"는 무엇을 의미합니까?

RPM 매크로 덤프의 "-14"는 무엇을 의미합니까?

RPM 사양 파일을 작성할 때 다음 명령을 사용하여 사용 가능/정의된 매크로를 덤프할 수 있습니다.

rpm --showrc또는rpm --eval %dump

또는 %dump사양 파일 자체에 내장 매크로를 포함하고 RPM 빌드 프로세스의 출력을 확인합니다(빌드 출력에는 매크로 정의가 포함되어 있음).

두 경우 모두 일부 줄에는 "-14" 또는 "-11"이라는 접두사가 붙습니다. 여러 줄 정의의 대상이 되는 단일 줄은 없습니다.

이 출력에서 ​​"-14"(또는 덜 일반적으로 "-11")는 무엇을 의미합니까? 더 중요한 것은 이 내용이 어디서 녹음되었는지 알고 싶습니다.

예제 출력:

-14: __autoconf autoconf
-14: __autoheader   autoheader
-14: __automake automake
-11= _target_cpu    x86_64
-11= _target_os linux

인용하다:

답변1

RPM 매크로에는 재귀 깊이라는 관련 수준이 있습니다.

이 수준의 매크로는 재귀 확장에서 돌아올 때 자동으로 정의되지 않습니다.

레벨 <= 0의 매크로는 항상 정의됩니다(어떤 의미에서는 전역).

음수 수준은 처음에 매크로가 정의된 위치(rpm 내에서 또는 구성 파일 읽기)를 표시하는 데 사용됩니다.

실제로 RPM의 어떤 것도 매크로 수준을 사용하거나 요구하지 않습니다.

하지만 이것이 "-14"가 의미하는 바입니다.

또한 정의되거나 사용되는 매크로를 알려주는 --showrc 출력의 ":"에서 "="로의 변경도 제외됩니다.

답변2

나는 rpm-ecosystem 메일링 리스트에 질문했습니다. 바라보다: http://lists.rpm.org/pipermail/rpm-ecosystem/2017-March/000476.html

"rpm --showrc"의 경우 이와 같은 음수는 매크로 정의의 "소스" 또는 "위치"를 나타냅니다.

-14 = -13 - 1: 매크로가 매크로 파일(예: /etc/rpm/macros.*)에 정의됩니다.

-11: 매크로는 rpmrc 파일(예: /usr/lib/rpm/rpmrc)에 정의됩니다.

-8 = -7 - 1: 매크로는 명령줄에서 정의됩니다(예: rpm -D "zzz 42" --showrc를 통해).

등.

답변3

내가 찾을 수 있는 가장 좋은 정보는 소스 코드를 보는 것입니다.여기즉, %dump는 모든 매크로를 반복하고 다음을 사용하여 인쇄합니다.rpmDumpMacroTable

MacroEntry구조 에서 멤버를 인쇄합니다. level정의에 따르면여기- "범위 수준"입니다(매크로 중첩과 관련이 있을 수 있지만 추측일 뿐입니다).

문서가 많지 않기 때문에 심층적인 지식을 가진 다른 사람이 더 많은 정보에 답변/제공할 때까지 기다리겠습니다.

관련 정보