Jak skopiować pakiet z Debiana do mojego PPA?

10

Chciałbym dodać najnowszy pakiet dla smakoszy z sid Debiana do PPA naszego zespołu, aby użytkownicy Ubuntu, którzy chcieliby uruchomić aktualną wersję Gourmet, mogli dodać ten PPA do swoich źródeł oprogramowania. (Zależnie od zależności, nie powinno to stanowić większego problemu, ponieważ prawie wszystkie nasze obecne zależności są już dostępne we wszystkich obecnie obsługiwanych wersjach Ubuntu.)

Pobrałem *.dscplik oraz pliki tar debian i orig, a nawet doszedłem do wniosku, że mogę użyć tego do source.changespliku pakietu . Pobrałem również klucz publiczny opiekuna Debiana, aby dputsprawdzić poprawność pakietu. Następnie próbowałem załadować pakiet do naszego PPA przy użyciu dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(próbowałem również bez tilda). Wyglądało na to, że się udało, ale nie dostałem e-maila z potwierdzeniem i żadne pakiety nie są teraz wyświetlane w naszym PPA , co prowadzi mnie do przekonania że pakiet został odrzucony, ponieważ klucz opiekuna Debiana oczywiście nie znajduje się wśród kluczy członków naszego zespołu.

Więc jaki jest najprostszy sposób na „skopiowanie” pakietu z Debiana (sid) na PPA Launchpad? Czy naprawdę muszę odbudować cały pakiet lokalnie, zanim będę mógł go załadować?

Bernhard Reiter
źródło
BTW, ponieważ wersja deweloperska Ubuntu automatycznie synchronizuje swoje pakiety z Debiana (to znaczy przed DebianImportFreeze), chętnie przyjmę odpowiedź, w której powie mi, jak skopiować pakiet z Utopic.
Bernhard Reiter

Odpowiedzi:

12

Przed przesłaniem musisz odbudować pakiet źródłowy lokalnie, aby dostosować dziennik zmian i ponownie wygenerować plik zmian. Chociaż ponieważ backportowanie pakietu jest dość powszechnym zadaniem, zostało to skrypty. Sprawdź pakiet backportpackage Ikona stronypoleceń ubuntu-dev-toolsZainstaluj ubuntu-dev-tools .

Aby backportować pakiet z Debiana, po prostu podaj docelową serię dystrybucji, PPA i plik dsc dla pakietu:

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

Jeszcze prostsze jest przeniesienie pakietu z jednej wersji Ubuntu do innej, ponieważ nie trzeba znajdować pliku dsc. Powiedzmy, że chcemy cofnąć się z utopii na zaufaną:

backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet
andrews coś
źródło
Niesamowite! Jedyną rzeczą, która wygląda mi trochę jak błąd, jest to, że pakiet skończył w moim osobistym PPA (~ ockham-razor / ppa), mimo że przekazałem ~gourmet/ppajako argument do -uparametru. (Ale na szczęście udało mi się skopiować go z mojego PPA do zespołu Gourmet przez Launchpad.)
Bernhard Reiter
1

Można to zrobić na kilka sposobów.

Kiedy zrobiłem to dla Rhythmbox, postępowałem według następującego przepisu:

za. Weź plik źródłowy i pliki debian

wprowadź opis zdjęcia tutaj

b. Rozpakuj źródło (.orig.tar.xz)

do. zmień nazwę folderu źródłowego na nprhythmbox-3.0.3

do. rozpakuj plik debian (.debian.tar.xz)

re. przenieś folder debian do katalogu źródłowego

mi. dch -izmienić plik dziennika zmian

fa. zmień nazwę „niestabilnego” pakietu na nazwę celu Ubuntu - tutaj użyłem precyzyjnego dla 12.04. Zmień wersję odpowiednio do swojej aplikacji. Tutaj rhythmbox to 3.0.3 - więc właśnie dodałem-1~ppafossfreedom

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

  * rebuild

 -- fossfreedom <[email protected]>  Thur, 07 Jun 2012 13:19:18 +0100

sol. utwórz nowy pakiet źródłowy:dh_build --createorig

h. Zbuduj tylko źródło za pomocą klucza: debuild -S -k0xABCDEFGgdzie ABCDEFGjest twój klucz

ja. prześlij swój pakiet do budowy:

cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes    
fossfreedom
źródło
To właściwie przebudowanie pakietu. No cóż. Miałem nadzieję na łatwiejszy sposób, ale chyba nie ma.
Bernhard Reiter
Spójrz na dgetpolecenie z devscriptspakietu. Uprości to nieco.
andrewsomething
@andrewsomething - zmień to w odpowiedź z przykładem :) - Byłbym zainteresowany, czy to również uprości moje pakowanie.
fossfreedom
Cóż, mam zupełnie inną odpowiedź, ale nadal powinieneś dowiedzieć się o dget=) Plik dsc zawiera wszystkie informacje o innych częściach pakietu źródłowego. Więc dgetweźmie wszystko i wyodrębni poprawnie, jeśli podasz link do pliku dsc. dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
andrewsomething
zgrabna odpowiedź - dobra robota +1
fossfreedom