Incluir arquivos binários no pacote DEB

5

Eu preciso construir um pacote DEB a partir de arquivos JavaScript Node.js, mas também deve incluir alguns arquivos binários. Eles estão listados dentro de debian / source / include-binários . Caso contrário, recebo a mensagem de erro

dpkg-source: error: unrepresentable changes to source

O comando em questão é:

bzr builddeb -- -us -uc

Depois de adicionar o arquivo include-binaries , ao executar bzr builddeb - -us -uc novamente, agora recebo um erro diferente:

dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/mailadmin_0.0-1.diff.n6m5_6

Eu não tenho ideia de como me livrar disso.

Na próxima linha de saída, ele me diz

dpkg-source: info: you can integrate the local changes with dpkg-source --commit

Mas se eu executar este comando na área de compilação do meu pacote, ele me fornecerá novamente a mensagem de erro não representável para a origem , mesmo que debian / source / include-binários está presente na área de construção também.

Estou perdendo o caminho para fora disso ...

Eu tentei excluir todos os arquivos que são produzidos pelo processo de compilação, ainda sem sucesso.

Mais detalhes:

O diretório de destino é / opt / mailadmin . Como esse diretório é incomum, eu o listei no arquivo debian / mailadmin.install (que contém uma linha:)

opt/mailadmin opt/

O processo bzr builddeb usa este arquivo como esperado.

Não há tarball de envio, porque o projeto é novo.

    
por user22611 03.06.2014 / 17:56

1 resposta

2

Seu erro não tem nada a ver com o arquivo binário. Embora pareça extremamente similar. (Pode valer a pena registrar um bug no dpkg sobre mensagens de erro melhores nesses casos.) Se fosse sobre um arquivo binário, seria semelhante a:

dpkg-source: error: cannot represent change to package_name-X.Y/debian/some_binary_file.png: binary file contents changed

E, mesmo assim, isso só aconteceria se você estivesse usando um pacote% source da versão em estilo antigo1.0.

Isso tem a ver com o tarball do upstream. Se você realmente estiver usando bzr builddeb -- -us -uc , você deve ter convencido bzr builddeb de que você tem um tarball de upstream ou que teria erro ao procurar um. O conteúdo de qualquer tarball que você criou não corresponde ao conteúdo do branch bzr, então você recebe o erro sobre "mudanças inesperadas no upstream".

A maneira mais simples de lidar com este caso é passar o --split flag:

bzr builddeb --split -- -us -uc

De bzr help builddeb :

  --split               Automatically create an .orig.tar.gz from a full
                        source branch.

Isso simplesmente coloca tudo fora de /debian em um tarball e usa isso.

    
por andrewsomething 05.06.2014 / 04:53