Bagaimana cara mengatasi masalah sumber sumber dpkg saat membangun sebuah paket?

16

Adakah yang punya pengalaman membuat paket Debian / Ubuntu di sini? Saya mencoba untuk membuat backport paket lammps ( http://packages.ubuntu.com/quantal/lammps ) dari Ubuntu 12.10 (Quantal) ke Ubuntu 12.04

Saya hanya memerlukannya secara tidak resmi - hanya perlu paket deb untuk kenyamanan saat membuat gambar mesin virtual kustom untuk ditempatkan ke platform IaaS.

Mengikuti Panduan Pengemasan Ubuntu di https://wiki.ubuntu.com/PackagingGuide , saya dapat membangun dengan sukses, kecuali ketika saya mencoba membangun kembali menggunakan perintah debuild , saya biasanya mendapatkan kesalahan ini:

 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

Menjalankan 'make clean-all' di direktori src masih tidak menyelesaikan masalah. Apakah ada cara untuk benar-benar membersihkan semua file yang dihasilkan selama proses build, atau meminta debuild untuk mengabaikan perbedaan dalam file sumber?

hanxue
sumber

Jawaban:

6

Ini berarti Anda telah menerapkan perubahan pada sumber upstream yang tidak dibongkar yang bukan merupakan bagian dari tambalan di debian/patches/direktori, atau terdaftar dalam seriesfile di sana jika ada; dan / atau ada beberapa ketidakkonsistenan dalam kondisi aplikasi selimut.

Melihat file yang disebutkan di / tmp akan menunjukkan kepada Anda perubahan yang dimaksud.

dobey
sumber
Terima kasih banyak atas jawaban cepatnya! Apakah ada cara cepat untuk mengembalikan perubahan yang dilakukan oleh 'make' daripada membatalkan semua catatan perubahan dalam file / tmp / * diff *?
hanxue
29

Hindari birokrasi Debian hanya dengan membangun biner: dpkg-buildpackage -b

hendry
sumber
1
Ini tidak begitu berguna jika Anda ingin mengunggah ke debian.
jeremiah
4
@ Jeremiah tetapi sangat berguna jika Anda men-tweak paket debian untuk penggunaan pribadi.
Wyatt8740
10

ubah format dalam debian / source / format dari 3.0 (quilt) menjadi 3.0 (native) jika Anda tidak ingin menggunakan quilt. Ini memecahkan masalah bagi saya.

xtrade
sumber
INI! Selimut tidak mungkin.
Jay _silly_evarlast_ Wren
1
Saya dengan naif mengikuti komentar ini apa adanya. Efek bersihnya adalah bangunan Anda tidak akan lagi menggunakan tambalan di debian / tambalan. Bisakah Anda memperluas jawabannya dengan menjelaskan bagaimana Anda menambahkan sihir yang diperlukan ke debian / aturan untuk benar-benar menerapkan tambalan?
Thomas Vander Stichele
1

Saya melihat masalah ini ketika selimut salah mengira saya telah menerapkan tambalan ke copy pekerjaan saya (Anda dapat menemukan statusnya saat ini di folder .pc). Cara mengatasinya adalah dengan memaksa quilt untuk membuka semua patch quilt pop -a -f.

Stefan van der Walt
sumber
0

Ini dapat terjadi jika Anda melakukan semua "dokumen" Debian tetapi kebetulan memiliki artefak yang tersisa dari upaya sebelumnya. Secara khusus, perubahan yang dihasilkan secara otomatis menjadi "config.sub", "config.guess" dan "Makefile".

Anda bisa meletakkan ini di 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
sumber