ここ私の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
この仕様ファイルには1つのコマンドしかありません。87号線%build
これはマクロにありますが、このエラーは後で実行時に発生します%files
。このsedエラーがどこで発生するのかご存知ですか?このエラーを解決するために、次のような取り組みを試みました。
どちらの試みも失敗し、受信したエラーメッセージも変更されませんでした。私は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
...またはそのようなもの。