Comment résoudre le problème de source dpkg-source lors de la construction d'un package?

16

Quelqu'un ici a-t-il une certaine expérience de la création d'un paquet Debian / Ubuntu? J'essaie de rétroporter le paquet lammps ( http://packages.ubuntu.com/quantal/lammps ) d'Ubuntu 12.10 (Quantal) à Ubuntu 12.04

Je n'en ai besoin que de manière non officielle - j'ai juste besoin d'un package .deb pour plus de commodité lors de la création d'images de machine virtuelle personnalisées pour le déploiement sur la plate-forme IaaS.

En suivant le Guide de packaging Ubuntu sur https://wiki.ubuntu.com/PackagingGuide , je peux construire avec succès, sauf lorsque j'essaie de reconstruire à l'aide de la commande debuild , j'obtiens généralement cette erreur:

 dpkg-source: error: aborting due to unexpected upstream changes, see
 /tmp/lammps_0~20120615.gite442279-1.diff.aie32n dpkg-source: info: you
 can integrate the local changes with dpkg-source --commit
 dpkg-buildpackage: error: dpkg-source --include-binaries -i -b
 lammps-0~20120615.gite442279 gave error exit status 2

L'exécution de «make clean-all» dans le répertoire src ne résout toujours pas le problème. Existe-t-il un moyen de nettoyer complètement tous les fichiers générés pendant le processus de construction ou de demander à debuild d'ignorer les différences dans les fichiers source?

hanxue
la source

Réponses:

6

Cela signifie que vous avez appliqué des modifications à la source en amont décompressée qui ne font pas partie d'un correctif dans le debian/patches/répertoire ou qui sont répertoriées dans le seriesfichier s'il y en a; et / ou il y a une certaine incohérence dans l'état d'application des patchs par quilt.

En regardant le fichier mentionné dans / tmp, vous verrez les changements en question.

dobey
la source
Merci beaucoup pour la réponse rapide! Existe-t-il un moyen rapide de restaurer les modifications effectuées par 'make' au lieu d'annuler tous les enregistrements de modifications dans le fichier / tmp / * diff *?
hanxue
29

Évitez la bureaucratie Debian en construisant simplement le binaire: dpkg-buildpackage -b

hendry
la source
1
Ce n'est pas très utile si vous avez l'intention de télécharger sur debian.
jeremiah
4
@jeremiah mais très utile si vous ajustez un paquet Debian pour un usage personnel.
Wyatt8740
10

changez le format dans debian / source / format de 3.0 (quilt) en 3.0 (native) si vous ne voulez pas utiliser quilt. Cela a résolu le problème pour moi de toute façon.

xtrade
la source
CETTE! La courtepointe est impossible.
Jay _silly_evarlast_ Wren
1
J'ai suivi naïvement ce commentaire tel quel. L'effet net sera que votre build n'utilisera plus les correctifs dans debian / patches. Pourriez-vous développer la réponse en expliquant comment vous ajoutez la magie nécessaire à debian / rules pour appliquer réellement les correctifs?
Thomas Vander Stichele
1

J'ai vu ce problème lorsque la courtepointe pensait à tort que j'avais appliqué des correctifs à ma copie de travail (vous pouvez trouver son état actuel dans le dossier .pc). La solution dans ce cas était de forcer quilt à faire apparaître tous les patchs quilt pop -a -f.

Stefan van der Walt
la source
0

Cela peut se produire si vous avez fait toutes les "formalités administratives" de Debian mais que vous avez des artefacts persistants des tentatives précédentes. En particulier, les modifications générées automatiquement en «config.sub», «config.guess» et «Makefile».

Vous pouvez mettre ceci dans debian / source / options:

# Don't store changes on autogenerated files
extend-diff-ignore = "(^|/)(config\.sub|config\.guess|Makefile)$"

Réf: https://raphaelhertzog.com/2011/01/28/3-ways-to-not-clutter-your-debian-source-package-with-autogenerated-files/

Stéphane Gourichon
la source