Добавить измененные или новые текстовые файлы в мой пакет PPA достаточно просто:
Шаг 1:
apt-get source [foo-package]
cd [foo-package]
Шаг 2: добавьте или измените новые текстовые файлы, содержащие изменения
Шаг 3 - обновить журнал изменений:
dch -i
Шаг 4 - создать патч
dpkg-source --commit
Шаг 5 - создайте исходный пакет
debuild -S
Шаг 6 - загрузка на панель запуска
cd ..
dput [myppa]/[foo_source.changes]
Однако теперь мне нужно добавить новый файл значков (файл .png) в существующий пакет.
Итак, на шаге 2 - просто скопируйте в [foo-package]
На шаге 4 - я получаю следующие ошибки:
dpkg-source: error: cannot represent change to foo-package/foo-icon.png: binary file contents changed
dpkg-source: error: unrepresentable changes to source
Если я попытаюсь перейти к шагу 5, я получу следующие дополнительные ошибки, указанные выше:
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
Есть идеи, как добавить двоичный файл значков в существующий пакет PPA?
Дополнительная информация
Запустив:
debuild -S --source-option=--include-binaries
Затем это позволяет создать пакет с исходным кодом, и возможен шаг 6 .
Однако это на самом деле не ответ - потому что впоследствии я не могу вносить дальнейшие изменения в код ( шаг 2 ), потому что я все еще получаю те же ошибки.
Это не похоже, что я могу сделать, dpkg-source --commit --source-option=--include-binaries
потому что это просто дает ошибки:
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
источник
Просто получите dpkg-source --commit, чтобы игнорировать двоичные файлы с помощью
extend-diff-ignore
переключателяВот еще один более простой способ сделать это: вы в основном говорите dpkg-source игнорировать то, что он не может понять (например, двоичные файлы), и заниматься своим делом;)
После первого добавления двоичного файла (-ов) ключ должен использоваться
dpkg-source --commit
с--extend-diff-ignore
коммутатором вместе с соответствующими путями / именами файлов, которые следует игнорировать (формат регулярного выражения Perl).Например, предположим, что вы вставили кучу PNG в
llyrics
каталог, а затем изменили некоторые текстовые файлы. Правильный вызов коммита:Следуйте этому с:
чтобы получить ваш PPA.
Давайте проверим это с
rhythmbox-plugin-llyrics
пакетом из PPA "fossfreedom":Получить источник:
apt-get source rhythmbox-plugin-llyrics
Измените текстовый файл и добавьте PNG:
Добавить в список изменений и увеличить версию с
dch -v 0.1-3ubuntu6~izx1
Примите изменения текста, игнорируя PNG с:
Источник сборки / изменения:
И ... вуаля! ( Deb-сборка на Launchpad - обратите внимание на разницу в размере ~ 200k ... )
источник
Это немного сложнее, чем просто добавить файл.
Во-первых, вам нужно перестроить файл .orig.tar.gz с включенными двоичными файлами в новый пакет с исходным кодом, и, вероятно, потребуется увеличить версию программного обеспечения (
package_1.0.0.orig.tar.gz
->package_1.0.1.orig.tar.gz
или что-то еще) как в tar, так и вdebian/changelog
.После изменения файла orig.tar.gz новыми файлами (НЕ включайте debian / files в файл orig.tar.gz), вы должны добавить
debian/changelog
запись, изменив версию, увеличивая ее, как вы делали это для orig.tar. GZ.Затем пересоберите пакет с исходным кодом (
debuild -S
) и загрузите новый пакет с исходным кодом в PPA. Этот новый пакет исходного кода перезапишет «более старый» в PPA.Из чата:
источник