Fedora
如何修復此規範文件:它不斷給我 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/fusion809/rpmbuild/BUILD + cd codelite-10.0 + DOCDIR=/home/fusion809/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite + export DOCDIR + /usr/bin/mkdir -p /home/fusion809/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite + cp -pr AUTHORS /home/fusion809/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite + cp -pr LICENSE /home/fusion809/rpmbuild/BUILDROOT/codelite-10.0-1.fc25.x86_64/usr/share/doc/codelite + cp -pr COPYING /home/fusion809/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/fusion809/rpmbuild/BUILD/codelite-10.0/debugfiles.list RPM build errors: Empty %files file /home/fusion809/rpmbuild/BUILD/codelite-10.0/debugfiles.list
sed
此規範文件中只有一個命令,位於宏中的第 87 行%build
,但此錯誤在執行時稍後發生%files
。這個 sed 錯誤來自哪裡的任何想法?我已嘗試以下努力來修復此錯誤:兩種嘗試都沒有成功,甚至沒有改變我得到的錯誤資訊。我
rpmbuild -ba codelite.spec
在我的 64 位 Fedora 25 系統上本地(使用 )建構這個包。
是
%filter_from_requires
第60行是錯誤的。根據EPEL:Packaging Autoprovides and Requires Filtering:
該
%filter_from_requires
宏用於過濾“需求”;它的作用需要%filter_from_provides
宏的作用提供並以相同的方式呼叫。關於
%filter_from_provides
宏,它說可以為這個宏提供一個 sed 表達式以從自動找到的提供流中進行過濾。
在第 60 行,您沒有提供 sed 表達式。
我想你可以使用
%filter_from_requires /lib\(codelite\|plugin\|wxscintilla\|wxsqlite3\)u\.so/d
…或類似的東西。