%cmake*(*.spec 파일)를 cmake3으로 변환하시겠습니까?

%cmake*(*.spec 파일)를 cmake3으로 변환하시겠습니까?

%cmake*기존 *.spec 파일을 페도라 스타일 명령 에서 %cmake3대체 기반 명령(예: )으로 변환하고 싶습니다 Amazon Linux 2.

기존 것을 무엇으로 교체해야 합니까 %cmake_build?

재현 가능한 최소 예:

 % cat Dockerfile
FROM public.ecr.aws/lambda/dotnet:7
WORKDIR /tmp
RUN curl -O https://kojipkgs.fedoraproject.org//packages/dcmtk/3.6.7/3.fc39/src/dcmtk-3.6.7-3.fc39.src.rpm
RUN yum -y update && yum -y install rpm-build make gcc-c++ cmake3 libjpeg-devel \
 libpng-devel libtiff-devel libxml2-devel openssl-devel zlib-devel doxygen \
 git-core
RUN rpm -i dcmtk-3.6.7-3.fc39.src.rpm
WORKDIR /root/rpmbuild/SPECS/
RUN sed -e '/0017-Increase-sleep-for-tests.patch/ s/^#*/#/' -i dcmtk.spec
RUN sed -e 's/BuildRequires: cmake/BuildRequires: cmake3/g' -i dcmtk.spec
RUN sed -e 's/%cmake /%cmake3 /g' -i dcmtk.spec
RUN rpmbuild -ba dcmtk.spec

다음을 제공합니다:

% docker build .
[...]
-- Build files have been written to: /root/rpmbuild/BUILD/dcmtk-3.6.7
+ %cmake_build
/var/tmp/rpm-tmp.p5JL4r: line 70: fg: no job control
error: Bad exit status from /var/tmp/rpm-tmp.p5JL4r (%build)

다음 명령이 표시되지 않습니다 cmake3_build.

# grep build /usr/lib/rpm/macros.d/macros.cmake3

답변1

이제 다음 방법을 사용했는데 잘 작동하는 것 같습니다.

RUN sed -e 's/%cmake_build/make %{?_smp_mflags}/g' -i dcmtk.spec
RUN sed -e 's/%cmake_install/make install DESTDIR=$RPM_BUILD_ROOT/g' -i dcmtk.spec
RUN sed -e 's/%ctest/make test/g' -i dcmtk.spec

도움이 되었기를 바랍니다

참고로:

관련 정보