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.
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.