Как редактировать бэкпортированный пакет перед его загрузкой в PPA?
Я пытаюсь вернуть Clang 3.2 в Quantal из Raring. Думая, что это будет относительно безболезненным процессом, я выполнил следующую команду:
backportpackage -s raring -d quantal -u ppa:george-edison55/clang3.2-backports clang
Пакет был загружен в PPA без ошибок и также собран без ошибок. К сожалению, его нельзя установить, потому что debian/control
Файл содержит следующие зависимости:
Depends: ... libgcc-4.7-dev, libobjc-4.7-dev ...
Эти пакеты не существуют в Quantal. Содержимое этих пакетов содержится в gcc-4.7. и gobjc-4.7 пакеты вместо. Моя проблема в том, что я понятия не имею, как внести изменения перед загрузкой пакета в мой PPA.
Я пытался инструктировать backportpackage
не загружать в мой PPA и сбрасывать файлы в /tmp/clang3.2
где я их редактировал. Тем не менее, попытка загрузить пакет просто приводит к оригиналу .tar.gz
загружается снова и перезаписывает мои изменения.
Как правильно это сделать?
1 ответ
Хотя есть -w
Опция, которая сообщает backportpackage о сохранении рабочего каталога, до сих пор нет способа сказать, что он сохраняет также распакованные (и измененные) источники. Вот что сработало для меня:
Скопируйте программу локально, чтобы изменить ее:
cp /usr/bin/backportpackage ~
Откройте локальный файл и найдите функцию do_backport. Последняя строка должна выглядеть так
shutil.rmtree(SRCDIR)
Удалите эту строку, сохраните файл и запустите скрипт, как обычно, убедитесь, что
-w
Возможность указать рабочий каталог.- Перейти в рабочий каталог. Должен быть подкаталог с именем вроде
- , например, gcc-xenial. cd
в этот каталог, делайте любые изменения, которые вы хотите сделать.Сделайте пакет Debian. Подпишите и загрузите результат:
debuild --no-lintian -S -nc -uc -us -sd
debsign ../<package-version>_source.changes
dput -u ppa:<user>/<repo> <package-version>_source.changes