Como eu corrijo este arquivo de especificações: ele continua me dando erros sed, mas o único sed é longo antes que o erro ocorra?

0

Aqui está o meu arquivo codelite.spec. Ele compila as fontes bem, mas, em seguida, ele dá esse erro (e sim estou incluindo algumas linhas extras para dar contexto):

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

existe apenas um comando sed neste arquivo de especificações, na linha 87 que está na macro %build , mas esse erro ocorre mais tarde na execução do %files . Alguma idéia de onde este erro sed vem? Eu tentei os seguintes esforços para corrigir esse erro:

  1. Removendo L118-120
  2. Removendo L122 e alterando L127 de %files -f %{name}.lang a %files .

Nenhuma das tentativas foi bem-sucedida ou até mesmo a mensagem de erro que recebi. Eu estou construindo este pacote localmente (com rpmbuild -ba codelite.spec ) no meu sistema Fedora 25 de 64 bits.

    
por Brenton Horne 02.01.2017 / 15:24

1 resposta

4

É o %filter_from_requires na linha 60 que está errado.

De acordo com EPEL: O empacotamento é automático e requer filtragem :

The %filter_from_requires macro is used to filter "requires"; it does for requires what the %filter_from_provides macro does for provides and is invoked in the same fashion.

Em relação à macro %filter_from_provides , diz

This macro can be fed a sed expression to filter from the stream of auto-found provides.

Na linha 60, você não fornece uma expressão sed.

Eu acho que você poderia usar

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

... ou algo semelhante.

    
por 02.01.2017 / 16:24