Я пытаюсь перенести 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
и перезаписи моих изменений.
Как правильно это делать?
Даже при том, что существует -w
опция, которая говорит backportpackage сохранять рабочий каталог, нет все еще никакого способа сказать, что это сохраняет распакованный (и измененный) источниками также. Таким образом, вот то, что работало на меня:
Скопируйте программу локально для изменения его:
cp /usr/bin/backportpackage ~
Откройте локальный файл и найдите функцию do_backport. Его последняя строка должна быть похожей
shutil.rmtree (srcdir)
Удалите ту строку, сохраните файл и запустите скрипт, поскольку Вы обычно делаете это, удостоверьтесь, что обеспечили -w
опция указать рабочий каталог.
cd
к тому каталогу сделайте любые изменения, которые Вы хотите сделать.Сделайте debian пакет. Подпишите и загрузите результат:
debuild --no-lintian -S -nc -uc -us -sd
debsign ../<package-version>_source.changes
dput -u ppa:<user>/<repo> <package-version>_source.changes