Sou autor de uma pequena biblioteca de banco de dados de código aberto e quero fornecer pacotes .deb através do meu ppa. Eu tenho alguns problemas. Eu segui a documentação e vários tutoriais e criei um diretório debian /, mas quando eu executo 'dpkg-buildpackage -rfakeroot' eu recebo o seguinte erro:
dh_install: hamsterdb-dev missing files (usr/lib/pkgconfig/*), aborting
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
eu tenho que fornecer um /usr/lib/pkgconfig/hamsterdb-dev.pc?
Durante o processo de compilação, os unittests são iniciados e muitos arquivos são criados ou modificados. Quando eu executo o dpkg-buildpackage novamente, eu recebo muitos erros, aqui estão alguns trechos:
dpkg-source: error: old version is plain file
dpkg-source: error: cannot represent change to hamsterdb/install-sh:
dpkg-source: error: new version is symlink to /usr/share/automake-1.11/install-sh
dpkg-source: error: old version is plain file
ou estes:
dpkg-source: error: cannot represent change to tools/tests/db1.db: binary file contents changed
dpkg-source: error: add tools/tests/db1.db in debian/source/include-binaries if you want to store the modified binary in the debian tarball
dpkg-source: warning: executable mode 0775 of 'tools/tests/export_import.sh' will not be represented in diff
dpkg-source: warning: executable mode 0775 of 'tools/tests/ham_dump/generate.sh' will not be represented in diff
dpkg-source: warning: executable mode 0775 of 'tools/tests/ham_dump/compare.sh' will not be represented in diff
dpkg-source: warning: executable mode 0775 of 'tools/tests/ham_info/generate.sh' will not be represented in diff
dpkg-source: warning: file hamsterdb/documentation/latex/namespacehamsterdb.tex has no final newline (either original or modified version)
dpkg-source: warning: file hamsterdb/documentation/latex/index.tex has no final newline (either original or modified version)
dpkg-source: error: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b hamsterdb gave error exit status 2
Existe uma maneira de "forçar" a geração de um arquivo deb? Ou simplesmente ignorar os erros "alterações não representáveis na origem"?
Consegui corrigir os erros que listei acima, mas agora me deparo com outro (também pode ser causado por minha falta de conhecimento sobre o automake). debuild executa "libtool" nos fontes da biblioteca, mas não cria nenhum arquivo de saída (pelo menos eu não encontro nenhum). E a criação da amostra falha com um erro:
make[3]: Entering directory '/home/chris/prj/hamsterdb/samples'
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -g -O2 -Wall -DHAM_LITTLE_ENDIAN -fno-tree-vectorize -D_FILE_OFFSET_BITS=64 -c db1.c
make[3]: *** No rule to make target '../src/libhamsterdb.la', needed by 'db1'.
É assim que invoco o comando de compilação:
db1_SOURCES = db1.c
db1_LDADD = $(top_builddir)/src/libhamsterdb.la
O libhamsterdb.la está de fato ausente.