Menambahkan file teks yang dimodifikasi atau baru ke paket PPA saya cukup sederhana:
Langkah 1:
apt-get source [foo-package]
cd [foo-package]
Langkah 2: menambah atau memodifikasi file teks baru yang berisi perubahan
Langkah 3 - perbarui changelog:
dch -i
Langkah 4 - buat tambalan
dpkg-source --commit
Langkah 5 - buat paket sumber
debuild -S
Langkah 6 - unggah ke launchpad
cd ..
dput [myppa]/[foo_source.changes]
Namun, sekarang saya perlu menambahkan file ikon baru (file .png) ke paket yang ada.
Jadi pada langkah 2 - cukup salin ke [paket foo]
Pada langkah 4 - Saya mendapatkan kesalahan berikut:
dpkg-source: error: cannot represent change to foo-package/foo-icon.png: binary file contents changed
dpkg-source: error: unrepresentable changes to source
Jika saya mencoba untuk pindah ke langkah 5 saya mendapatkan kesalahan tambahan berikut untuk yang di atas:
dpkg-source: error: add foo-package/foo-icon.png in debian/source/include-binaries if you want to store the modified binary in the Debian tar-ball
...
dpkg-buildpackage -rfakeroot -d -us -uc -S failed
Adakah ide bagaimana cara menambahkan file ikon biner ke paket PPA saya yang ada?
Informasi lebih lanjut
Dengan menjalankan:
debuild -S --source-option=--include-binaries
Ini kemudian memungkinkan paket source untuk dibangun dan langkah 6 dimungkinkan.
Namun ini benar-benar bukan jawaban - karena saya kemudian tidak bisa membuat perubahan kode lebih lanjut ( langkah 2 ) karena saya masih mendapatkan kesalahan yang sama.
Sepertinya tidak bisa saya lakukan dpkg-source --commit --source-option=--include-binaries
karena ini hanya memberikan kesalahan:
dpkg-source --commit --source-option=--include-binaries
dpkg-source: warning: --source-option=--include-binaries is not a valid option for Dpkg::Source::Package::V3::quilt
dpkg-source: error: cannot represent change to foo-package/foo-icon.png: binary file contents changed
dpkg-source: error: unrepresentable changes to source
sumber
Dapatkan saja dpkg-source --commit untuk mengabaikan file biner dengan
extend-diff-ignore
sakelarBerikut cara lain yang lebih mudah untuk melakukannya: Anda pada dasarnya memberi tahu dpkg-source untuk mengabaikan apa yang tidak dapat dipahami (yaitu, file biner), dan memikirkan urusannya sendiri;)
Setelah menambahkan file biner (s) pertama kali, kuncinya adalah menggunakan
dpkg-source --commit
dengan--extend-diff-ignore
switch, bersama dengan jalur / nama file yang sesuai untuk diabaikan (format Perl regex).Misalnya, anggap Anda menempelkan sekelompok PNG di
llyrics
direktori, dan kemudian Anda memodifikasi beberapa file teks. Panggilan komit yang benar adalah:Ikuti itu dengan:
untuk mendapatkan unggahan PPA Anda.
Mari kita uji ini dengan
rhythmbox-plugin-llyrics
paket dari PPA "taman bermain" fossfreedom:Dapatkan sumber:
apt-get source rhythmbox-plugin-llyrics
Ubah file teks dan tambahkan PNG:
Tambahkan ke changelog dan versi kenaikan dengan
dch -v 0.1-3ubuntu6~izx1
Komit teks berubah saat mengabaikan PNG dengan:
Bangun sumber / perubahan:
Dan ... voila! ( Debit buatan Launchpad - perhatikan perbedaan ukuran ~ 200k ... )
sumber
Ini sedikit lebih sulit daripada hanya menambahkan file.
Pertama, Anda perlu membangun kembali .orig.tar.gz dengan binari yang disertakan dalam paket sumber baru, dan kemungkinan akan perlu untuk meningkatkan versi perangkat lunak (
package_1.0.0.orig.tar.gz
->package_1.0.1.orig.tar.gz
atau sesuatu) baik di tar, dan didebian/changelog
.Setelah memodifikasi orig.tar.gz dengan file baru (JANGAN menyertakan debian / file di orig.tar.gz), Anda kemudian akan menambahkan
debian/changelog
entri, mengubah versi untuk menambahnya seperti yang Anda lakukan pada orig.tar. gz.Kemudian bangun kembali paket sumber (
debuild -S
), dan unggah paket sumber baru ke PPA. Paket sumber baru itu akan menimpa yang "lama" di PPA.Dari Obrolan:
sumber