web-dev-qa-db-fra.com

Inclure les fichiers binaires dans le paquet DEB

Je dois créer un paquet DEB à partir principalement de fichiers Javascript Node.js, mais il devrait également inclure des fichiers binaires. Ils sont listés dans debian/source/include-binaries . Sinon je reçois le message d'erreur

dpkg-source: error: unrepresentable changes to source

La commande en question est:

bzr builddeb -- -us -uc

Après avoir ajouté le fichier , inclure-binaries , lors de l'exécution bzr builddeb - -us -uc encore, maintenant je reçois une erreur différente: il dit

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

Je ne sais pas comment m'en débarrasser.

Dans la ligne suivante de sortie, il me dit

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

Mais si je lance cette commande dans la zone de construction de mon paquet, cela me donne à nouveau le message d'erreur non représenté de la source , même si Les fichiers debian/source/include-binaries sont également présents dans la zone de construction.

Je manque le moyen de sortir de cette ...

J'ai essayé de supprimer tous les fichiers produits par le processus de construction, toujours sans succès.

Plus de détails:

Le répertoire cible est /opt/mailadmin . Comme ce répertoire est inhabituel, je l’ai listé dans le fichier debian/mailadmin.install (qui contient une ligne :)

opt/mailadmin opt/

Le processus bzr builddeb utilise ce fichier comme prévu.

Il n'y a pas d'archive en amont, car le projet est nouveau.

5
user22611

Votre erreur n'a rien à voir avec un fichier binaire. Bien que cela semble extrêmement similaire. (Cela pourrait valoir la peine de signaler un bogue sur dpkg concernant de meilleurs messages d'erreur dans ces cas.) S'il s'agissait d'un fichier binaire, il ressemblerait à ceci:

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

Et même dans ce cas, cela ne se produirait que si vous utilisiez un paquet source ancienne version 1.0.

Cela a à voir avec l'archive en amont. Si vous utilisez réellement bzr builddeb -- -us -uc, vous devez avoir convaincu bzr builddeb que vous avez une archive en amont, sinon elle en aurait erré à la recherche. Le contenu de l'archive que vous avez créée ne correspond pas au contenu de la branche bzr. Vous obtenez donc l'erreur relative aux "modifications inattendues en amont".

Le moyen le plus simple de traiter ce cas est de passer le drapeau --split:

bzr builddeb --split -- -us -uc

De bzr help builddeb:

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

Ceci met simplement tout ce qui est en dehors de /debian dans une archive et l'utilise.

2
andrewsomething