Как редактировать бэкпортированный пакет перед его загрузкой в ​​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. Установите gcc-4.7 и gobjc-4.7 Установить gobjc-4.7 пакеты вместо. Моя проблема в том, что я понятия не имею, как внести изменения перед загрузкой пакета в мой PPA.

Я пытался инструктировать backportpackage не загружать в мой PPA и сбрасывать файлы в /tmp/clang3.2 где я их редактировал. Тем не менее, попытка загрузить пакет просто приводит к оригиналу .tar.gz загружается снова и перезаписывает мои изменения.

Как правильно это сделать?

1 ответ

Хотя есть -w Опция, которая сообщает backportpackage о сохранении рабочего каталога, до сих пор нет способа сказать, что он сохраняет также распакованные (и измененные) источники. Вот что сработало для меня:

  1. Скопируйте программу локально, чтобы изменить ее:

    cp /usr/bin/backportpackage ~

  2. Откройте локальный файл и найдите функцию do_backport. Последняя строка должна выглядеть так

    shutil.rmtree(SRCDIR)

  3. Удалите эту строку, сохраните файл и запустите скрипт, как обычно, убедитесь, что -w Возможность указать рабочий каталог.

  4. Перейти в рабочий каталог. Должен быть подкаталог с именем вроде -, например, gcc-xenial.
  5. cd в этот каталог, делайте любые изменения, которые вы хотите сделать.
  6. Сделайте пакет Debian. Подпишите и загрузите результат:

    debuild --no-lintian -S -nc -uc -us -sd

    debsign ../<package-version>_source.changes

    dput -u ppa:<user>/<repo> <package-version>_source.changes

Другие вопросы по тегам