Ask Your Question

How do I fix this spec file: it keeps giving me sed errors yet the only sed is long before the error occurs?

asked 2017-01-02 08:26:13 -0600

Here is my codelite.spec file. It compiles the sources fine, but then it gives this error (and yes I am including a few extra lines to give context):

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 ';;;;'"
/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 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

there's only one sed command in this spec file, on line 87 which is in the %build macro but this error occurs later around the time of running %files. Any ideas where this sed error comes from? I have tried the following efforts to fix this error:

  1. Removing L118-120
  2. Removing L122 and changing L127 from %files -f %{name}.lang to %files.

Neither attempt has succeeded, or even changed the error message I get. I am building this package locally (with rpmbuild -ba codelite.spec) on my 64-bit Fedora 25 system.

edit retag flag offensive close merge delete


  1. Removing L118-120 #This part was needed to validate the desktopfile and should be readded as it had nothing to do with the failure.

  2. Removing L122 and changing L127 from %files -f %{name}.lang to %files #Should be readded as it installs the lang files, removing it will break %files install section.

geforce gravatar imagegeforce ( 2017-01-02 10:11:27 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-01-02 09:54:54 -0600

geforce gravatar image

updated 2017-01-02 09:56:13 -0600

The sed issue can be resolved by changing

# Filter out these false-alarms from 'requires', as the package itself supplies them!


# Filter out these false-alarms from 'requires', as the package itself supplies them!
%global __requires_exclude ^|^|^|^

The second issue is caused by no debugging symbols, maybe installing redhat-rpm-config package will fix

If it doesn't, add this to the top of the spec file

%global debug_package      %{nil}
edit flag offensive delete link more

Question Tools

1 follower


Asked: 2017-01-02 08:26:13 -0600

Seen: 771 times

Last updated: Jan 02 '17