dh_install: libnanomsg-dev faltando arquivos (usr / lib / * / lib * .a), abortando

3

Estou tentando fazer o backport de libnanomsg-dev de jessie para squeeze e seguindo este tutorial . Aqui está o que eu recebo:

$ fakeroot debian/rules binary
...
   dh_testroot -O--parallel
   dh_prep -O--parallel
   dh_installdirs -O--parallel
   dh_auto_install -O--parallel
make[1]: Entering directory '/home/yuri/build/nanomsg-0.4~beta+dfsg'
make[2]: Entering directory '/home/yuri/build/nanomsg-0.4~beta+dfsg'
test -z "/usr/lib" || /bin/mkdir -p "/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib"
 ./doltlibtool   --mode=install /usr/bin/install -c   libnanomsg.la '/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib'
libtool: install: /usr/bin/install -c .libs/libnanomsg.so.0.2.0 /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib/libnanomsg.so.0.2.0
libtool: install: (cd /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib && { ln -s -f libnanomsg.so.0.2.0 libnanomsg.so.0 || { rm -f libnanomsg.so.0 && ln -s libnanomsg.so.0.2.0 libnanomsg.so.0; }; })
libtool: install: (cd /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib && { ln -s -f libnanomsg.so.0.2.0 libnanomsg.so || { rm -f libnanomsg.so && ln -s libnanomsg.so.0.2.0 libnanomsg.so; }; })
libtool: install: /usr/bin/install -c .libs/libnanomsg.lai /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib/libnanomsg.la
libtool: install: /usr/bin/install -c .libs/libnanomsg.a /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib/libnanomsg.a
libtool: install: chmod 644 /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib/libnanomsg.a
libtool: install: ranlib /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib/libnanomsg.a
libtool: install: warning: remember to run 'libtool --finish /usr/lib'
test -z "/usr/bin" || /bin/mkdir -p "/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/bin"
  ./doltlibtool   --mode=install /usr/bin/install -c nanocat '/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/bin'
libtool: install: warning: 'libnanomsg.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/nanocat /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/bin/nanocat
make  install-exec-hook
make[3]: Entering directory '/home/yuri/build/nanomsg-0.4~beta+dfsg'
cd /home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/bin && \
      ln -s -f nanocat nn_push && \
      ln -s -f nanocat nn_pull && \
      ln -s -f nanocat nn_pub && \
      ln -s -f nanocat nn_sub && \
      ln -s -f nanocat nn_req && \
      ln -s -f nanocat nn_rep && \
      ln -s -f nanocat nn_surveyor && \
      ln -s -f nanocat nn_respondent && \
      ln -s -f nanocat nn_bus && \
      ln -s -f nanocat nn_pair
make[3]: Leaving directory '/home/yuri/build/nanomsg-0.4~beta+dfsg'
test -z "/usr/share/doc/nanomsg" || /bin/mkdir -p "/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/share/doc/nanomsg"
test -z "/usr/share/man/man1" || /bin/mkdir -p "/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/share/man/man1"
test -z "/usr/share/man/man3" || /bin/mkdir -p "/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/share/man/man3"
test -z "/usr/share/man/man7" || /bin/mkdir -p "/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/share/man/man7"
test -z "/usr/include/nanomsg" || /bin/mkdir -p "/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/include/nanomsg"
 /usr/bin/install -c -m 644 src/nn.h src/inproc.h src/ipc.h src/tcp.h src/pair.h src/pubsub.h src/reqrep.h src/pipeline.h src/survey.h src/bus.h '/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/include/nanomsg'
test -z "/usr/lib/pkgconfig" || /bin/mkdir -p "/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib/pkgconfig"
 /usr/bin/install -c -m 644 libnanomsg.pc '/home/yuri/build/nanomsg-0.4~beta+dfsg/debian/tmp/usr/lib/pkgconfig'
make[2]: Leaving directory '/home/yuri/build/nanomsg-0.4~beta+dfsg'
make[1]: Leaving directory '/home/yuri/build/nanomsg-0.4~beta+dfsg'
   dh_install -O--parallel
dh_install: libnanomsg-dev missing files (usr/lib/*/lib*.a), aborting
make: *** [binary] Error 20

UPD Graças a Stephen Kitt, consegui fazer o backport do pacote.

O que exatamente eu fiz ...

debian/libnanomsg-dev.install :

'usr/lib/*/lib*.a' -> 'usr/lib/lib*.a',<br>
'usr/lib/*/lib*.so' -> 'usr/lib/lib*.so',<br>
'usr/lib/*/pkgconfig/*.pc' -> 'usr/lib/pkgconfig/*.pc'

debian/libnanomsg0.install :

'usr/lib/*/lib*.so.*' -> 'usr/lib/lib*.so.*'

Depois disso, fakeroot foi concluído com sucesso. Mas havia outras questões:

Eu tinha um daemon rodando em 5555 port, então eu tive que alterar tests/tcp.c test ( antes do problema com caminhos em *.install files):

#define SOCKET_ADDRESS "tcp://127.0.0.1:5555"

Além disso, dpkg-buildpackage -us -uc apresentou o seguinte erro:

   dh_autoreconf_clean -O--parallel
   dh_clean -O--parallel
 dpkg-source -b nanomsg-0.4~beta+dfsg
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building nanomsg using existing ./nanomsg_0.4~beta+dfsg.orig.tar.gz
dpkg-source: error: cannot represent change to nanomsg-0.4~beta+dfsg/test.ipc: device or socket is not allowed
dpkg-source: error: cannot represent change to nanomsg-0.4~beta+dfsg/test-separation.ipc: device or socket is not allowed
dpkg-source: error: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b nanomsg-0.4~beta+dfsg gave error exit status 2

Então, excluí os arquivos test.ipc e test-separation.ipc supostamente criados por fakeroot e eles foram bem-sucedidos.

E havia um problema com debian-keyring .

    
por x-yuri 27.01.2015 / 12:01

1 resposta

3

O Squeeze não sabe (muito) sobre multiarch, mas o pacote fonte que você está construindo usa caminhos multiarch ( usr/lib/*/lib*.a , onde o primeiro * acaba sendo substituído pelo triplet multiarch para a arquitetura que você está construindo em). Para corrigir a etapa dh_install , você precisa editar o arquivo <package>.install apropriado em debian e alterar os caminhos para os não multiarch (neste caso, usr/lib/lib*.a ). Você provavelmente também precisará editar os caminhos para lib*.so e remover as sub-rotinas multiarch de debian/control ...

    
por 28.01.2015 / 09:38