이 사양 파일을 어떻게 수정합니까? 계속 sed 오류가 발생하지만 유일한 sed 파일은 오류가 발생하기 오래 전입니까?

이 사양 파일을 어떻게 수정합니까? 계속 sed 오류가 발생하지만 유일한 sed 파일은 오류가 발생하기 오래 전입니까?

여기내 codelite.spec 파일입니다. 소스 코드는 문제 없이 컴파일되지만 다음과 같은 오류가 발생합니다(예, 컨텍스트를 제공하기 위해 몇 줄을 추가했습니다).

Processing files: codelite-10.0-1.fc25.x86_64
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.zYPKNH
+ umask 022
+ cd /home/username/rpmbuild/BUILD
+ cd codelite-10.0
+ DOCDIR=/home/username/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite
+ export DOCDIR
+ /usr/bin/mkdir -p /home/username/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite
+ cp -pr AUTHORS /home/username/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite
+ cp -pr LICENSE /home/username/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite
+ cp -pr COPYING /home/username/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite
+ exit 0
Finding  Provides: /bin/sh -c " while read FILE; do echo "${FILE}" | /usr/lib/rpm/rpmdeps -P; done | /bin/sort -u "
Finding  Requires(interp): 
Finding  Requires(rpmlib): 
Finding  Requires(verify): 
Finding  Requires(pre): 
Finding  Requires(post): 
Finding  Requires(preun): 
Finding  Requires(postun): 
Finding  Requires(pretrans): 
Finding  Requires(posttrans): 
Finding  Requires: /bin/sh -c "  while read FILE; do echo "${FILE}" | /usr/lib/rpm/rpmdeps -R; done | /bin/sort -u  | /usr/bin/sed -e 'libcodeliteu.so; libpluginu.so; libwxscintillau.so; libwxsqlite3u.so;'"
/usr/bin/sed: -e expression #1, char 2: extra characters after command
Provides: application() application(codelite.desktop) codelite = 10.0-1.fc25 codelite(x86-64) = 10.0-1.fc25 libdatabaselayersqlite.so()(64bit) liblibcodelite.so()(64bit) libplugin.so()(64bit) libwxshapeframework.so()(64bit) libwxsqlite3.so()(64bit) mimehandler(application/x-codelite-project) mimehandler(application/x-codelite-workspace)
Requires(interp): /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /bin/sh
Requires(postun): /bin/sh
Requires(posttrans): /bin/sh
Processing files: codelite-debuginfo-10.0-1.fc25.x86_64
error: Empty %files file /home/username/rpmbuild/BUILD/codelite-10.0/debugfiles.list


RPM build errors:
    Empty %files file /home/username/rpmbuild/BUILD/codelite-10.0/debugfiles.list

sed이 사양 파일에는 명령이 하나만 있습니다.87호선%build이는 매크로 에 있지만 이 오류는 나중에 런타임에 발생합니다 %files. 이 sed 오류가 어디서 발생하는지 아시나요? 이 오류를 해결하기 위해 다음과 같은 노력을 시도했습니다.

  1. 제거하다L118-120
  2. 제거하다L122그리고 변화L127에서부터 .%files -f %{name}.lang%files

두 시도 모두 실패했으며 받은 오류 메시지도 변경되지 않았습니다. 저는 rpmbuild -ba codelite.spec이 패키지를 64비트 Fedora 25 시스템에서 로컬로 구축하고 있습니다(다음을 사용).

답변1

%filter_from_requires오류는 60번째 줄입니다.

~에 따르면EPEL: 패키지가 자동으로 제공되며 필터링이 필요합니다.:

%filter_from_requires매크로는 "requires"를 필터링하는 데 사용됩니다. 매크로가 제공에 대해 수행하는 것과 동일한 작업을 수행하며 %filter_from_provides동일한 방식으로 호출됩니다.

매크로에 관해서는 다음 과 같이 %filter_from_provides말합니다.

자동으로 발견된 제공된 스트림에서 필터링하기 위해 이 매크로에 sed 표현식을 제공할 수 있습니다.

60행에서는 sed 표현식을 제공하지 않았습니다.

사용하시면 될 것 같아요

%filter_from_requires /lib\(codelite\|plugin\|wxscintilla\|wxsqlite3\)u\.so/d

...또는 그런 것.

관련 정보