Jak rozwiązać problem ze źródłem źródła dpkg podczas budowania pakietu?

16

Czy ktoś tutaj miał jakieś doświadczenie w tworzeniu pakietu Debian / Ubuntu? Próbuję przywrócić pakiet lammps ( http://packages.ubuntu.com/quantal/lammps ) z Ubuntu 12.10 (Quantal) do Ubuntu 12.04

Potrzebuję go tylko nieoficjalnie - po prostu potrzebuję pakietu .deb dla wygody podczas tworzenia niestandardowych obrazów maszyn wirtualnych do wdrożenia na platformie IaaS.

Postępując zgodnie z instrukcją pakowania Ubuntu pod adresem https://wiki.ubuntu.com/PackagingGuide , mogę pomyślnie budować, z wyjątkiem sytuacji, gdy próbuję przebudować za pomocą polecenia debuild , zwykle pojawia się ten błąd:

 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

Uruchomienie „make clean-all” w katalogu src nadal nie rozwiązuje problemu. Czy jest jakiś sposób, aby całkowicie wyczyścić wszystkie pliki, które zostały wygenerowane podczas procesu kompilacji, lub poprosić debuild o zignorowanie różnic w plikach źródłowych?

Hanxue
źródło

Odpowiedzi:

6

Oznacza to, że zastosowałeś zmiany w rozpakowanym źródłowym źródle, które nie są częścią łatki w debian/patches/katalogu lub są wymienione w seriespliku tam, jeśli są; i / lub występuje pewna niespójność w stanie nakładania łat na kołdrę.

Spojrzenie na wspomniany plik w / tmp pokaże ci zmiany.

dobey
źródło
Bardzo dziękuję za szybką odpowiedź! Czy istnieje szybki sposób na przywrócenie zmian dokonanych przez polecenie „make” zamiast cofania wszystkich rekordów zmian w pliku / tmp / * diff *?
hanxue,
29

Unikaj biurokracji Debiana, budując plik binarny: dpkg-buildpackage -b

hendry
źródło
1
Nie jest to tak przydatne, jeśli zamierzasz przesyłać pliki do Debiana.
jeremiah
4
@jeremiah, ale bardzo przydatne, jeśli poprawiasz pakiet debian do użytku osobistego.
Wyatt8740
10

zmień format w debian / source / format z 3.0 (kołdra) na 3.0 (natywny), jeśli nie chcesz używać kołdry. To i tak rozwiązało problem.

xtrade
źródło
TO! Kołdra jest niemożliwa.
Jay _silly_evarlast_ Wren
1
Naiwnie śledziłem ten komentarz. Efektem netto będzie to, że twoja kompilacja nie będzie już używać łat w debian / łatach. Czy możesz rozwinąć odpowiedź, wyjaśniając, w jaki sposób dodajesz niezbędną magię do debian / rules, aby faktycznie zastosować łatki?
Thomas Vander Stichele
1

Widziałem ten problem, gdy kołdra niepoprawnie myślała, że ​​zastosowałem łaty do mojej kopii roboczej (jej aktualny status znajduje się w folderze .pc). Rozwiązaniem w tym przypadku było zmuszenie kołdry do przecięcia wszystkich łatek quilt pop -a -f.

Stefan van der Walt
źródło
0

Może się tak zdarzyć, jeśli wykonałeś całą „papierkową robotę” Debiana, ale zdarzyło Ci się mieć artefakty z poprzednich prób. W szczególności automatycznie generowane zmiany w „config.sub”, „config.guess” i „Makefile”.

Możesz umieścić to w debian / source / options:

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

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

Stéphane Gourichon
źródło