Как скопировать пакет из Debian в мой PPA?

10

Я хотел бы добавить последний пакет для гурманов Debian sid в PPA нашей команды, чтобы пользователи Ubuntu, которые хотели бы использовать последнюю версию Gourmet, могли добавить этот PPA в свои программные источники. (В зависимости от этого, это не должно быть большой проблемой, так как почти все наши текущие зависимости уже доступны во всех поддерживаемых в настоящее время версиях Ubuntu.)

Я скачал *.dscфайл, архивы debian и orig, и даже понял, что могу использовать это для source.changesфайла пакета . Я также скачал открытый ключ сопровождающего Debian, чтобы dputпроверить пакет. Затем я попытался загрузить пакет к нашему PPA с помощью dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(я также попытался без тильды.) Это , казалось , чтобы добиться успеха, но я не получил подтверждение по электронной почте, и никаких пакетов не теперь отображаются в нашем PPA , что приводит меня поверить , что пакет был отклонен, потому что ключ сопровождающего Debian явно не входит в число ключей нашей команды.

Так какой же самый простой способ «скопировать» пакет из Debian (sid) в PPA Launchpad? Нужно ли мне перестраивать весь пакет локально, прежде чем я смогу загрузить его?

Бернхард Рейтер
источник
Кстати, поскольку версия для разработки Ubuntu автоматически синхронизирует свои пакеты из Debian (то есть до DebianImportFreeze, то есть), я с радостью приму ответ, рассказывающий мне, как скопировать пакет из Utopic.
Бернхард Рейтер

Ответы:

12

Вам необходимо перекомпилировать исходный пакет локально перед загрузкой, чтобы настроить журнал изменений и заново создать файл изменений. Несмотря на то, что обратная портирование пакета является довольно распространенной задачей, это было написано в сценарии. Проверьте пакет backportpackage Значок Manpageкоманды ubuntu-dev-toolsУстановите Ubuntu-Dev-инструменты .

Чтобы создать бэкпорт пакета из Debian, просто укажите целевой дистрибутив, PPA и файл dsc для пакета:

backportpackage -d trusty -u ppa:gourmet/ppa http://ftp.de.debian.org/debian/pool/main/g/gourmet/gourmet_0.17.3-1.dsc

Еще проще перенести пакет из одного выпуска Ubuntu в другой, поскольку вам не нужно искать файл dsc. Допустим, мы хотим сделать бэкпорт из утопического в верный:

backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet
andrewsomething
источник
Потрясающие! Единственное, что для меня немного похоже на ошибку - это то, что пакет оказался в моем личном PPA (~ ockham-razor / ppa), даже если я передал в ~gourmet/ppaкачестве аргумента -uпараметр. (Но, к счастью, мне удалось скопировать его из моего PPA в команду Gourmet через Launchpad.)
Бернхард Рейтер
1

Есть несколько способов сделать это.

Когда я сделал это для Rhythmbox, я последовал следующему рецепту:

а. Возьмите исходный файл и файлы debian

введите описание изображения здесь

б. Распакуйте источник (.orig.tar.xz)

с. переименовать исходную папку что-то вродеrhythmbox-3.0.3

с. распакуйте файл debian (.debian.tar.xz)

д. переместите папку debian в исходную директорию

е. dch -iизменить файл журнала изменений

е. измените «нестабильное» имя пакета на имя цели ubuntu - здесь я использовал точный для 12.04. Измените версию в соответствии с вашим приложением. Здесь ритмбокс был 3.0.3 - так что я только что добавил-1~ppafossfreedom

rhythmbox (3.0.3-1~ppafossfreedom) precise; urgency=low

  * rebuild

 -- fossfreedom <fossfreedom@somewheremail.com>  Thur, 07 Jun 2012 13:19:18 +0100

г. создайте новый пакет исходного кода:dh_build --createorig

час Создайте только источник с вашим ключом: debuild -S -k0xABCDEFGгде ABCDEFGваш ключ

я. загрузить пакет для сборки:

cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes    
свобода ископаемых
источник
Ну, это в основном восстановление пакета. Ну что ж. Я надеялся на более легкий путь, но я думаю, что нет никакого.
Бернхард Рейтер
Посмотрите на dgetкоманду из devscriptsпакета. Это немного упростит это.
Andrewsomething
@andrewsomething - превратить это в ответ с примером :) - мне было бы интересно посмотреть, может ли это также упростить мою упаковку.
fossfreedom
Ну, у меня есть совершенно другой ответ, но вы все равно должны узнать о dget=) Файл dsc содержит всю информацию о других частях исходного пакета. Так dgetчто все схватит и распакует правильно, если вы дадите ему ссылку на файл dsc. dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
Andrewsomething
аккуратный ответ - молодец +1
свобода действий