Dodanie zmodyfikowanych lub nowych plików tekstowych do mojego pakietu PPA jest dość proste:
Krok 1:
apt-get source [foo-package]
cd [foo-package]
Krok 2: dodaj lub zmodyfikuj nowe pliki tekstowe zawierające zmiany
Krok 3 - Zaktualizuj dziennik zmian:
dch -i
Krok 4 - utwórz łatkę
dpkg-source --commit
Krok 5 - utwórz pakiet źródłowy
debuild -S
Krok 6 - prześlij do startera
cd ..
dput [myppa]/[foo_source.changes]
Jednak teraz muszę dodać nowy plik ikony (plik .png) do istniejącego pakietu.
Więc w kroku 2 - właśnie skopiowałem do [pakietu foo]
W kroku 4 - otrzymuję następujące błędy:
dpkg-source: error: cannot represent change to foo-package/foo-icon.png: binary file contents changed
dpkg-source: error: unrepresentable changes to source
Jeśli spróbuję przejść do kroku 5, otrzymuję następujące dodatkowe błędy do powyższego:
dpkg-source: error: add foo-package/foo-icon.png in debian/source/include-binaries if you want to store the modified binary in the Debian tar-ball
...
dpkg-buildpackage -rfakeroot -d -us -uc -S failed
Wszelkie pomysły, jak dodać plik ikony binarnej do mojego istniejącego pakietu PPA?
Więcej informacji
Biegiem:
debuild -S --source-option=--include-binaries
Pozwala to następnie na zbudowanie pakietu źródłowego i możliwy jest krok 6 .
Jednak tak naprawdę nie jest to odpowiedź - ponieważ później nie mogę dokonać dalszych zmian kodu ( krok 2 ), ponieważ wciąż pojawiają się te same błędy.
Nie wygląda na to, że mogę to zrobić, dpkg-source --commit --source-option=--include-binaries
ponieważ to tylko daje błędy:
dpkg-source --commit --source-option=--include-binaries
dpkg-source: warning: --source-option=--include-binaries is not a valid option for Dpkg::Source::Package::V3::quilt
dpkg-source: error: cannot represent change to foo-package/foo-icon.png: binary file contents changed
dpkg-source: error: unrepresentable changes to source
źródło
Wystarczy pobrać dpkg-source --commit, aby zignorować pliki binarne za pomocą
extend-diff-ignore
przełącznikaOto inny prostszy sposób: po prostu powiedz dpkg-source, aby ignorował to, czego nie może zrozumieć (tj. Pliki binarne), i miał na uwadze własny biznes;)
Po dodaniu pliku binarnego (y) po raz pierwszy, klucz jest do korzystania
dpkg-source --commit
z--extend-diff-ignore
przełącznika, wraz z odpowiednimi Ścieżki / nazw plików do formatu regex Ignoruj (Perl).Załóżmy na przykład, że umieściłeś kilka plików PNG w
llyrics
katalogu, a następnie zmodyfikujesz niektóre pliki tekstowe. Prawidłowe wywołanie zatwierdzenia to:Śledź to za pomocą:
aby otrzymać plik PPA.
Przetestujmy to z
rhythmbox-plugin-llyrics
pakietem z PPA „placu zabaw” fossfreedom:Uzyskaj źródło:
apt-get source rhythmbox-plugin-llyrics
Zmodyfikuj plik tekstowy i dodaj PNG:
Dodaj do dziennika zmian i wersji przyrostowej za pomocą
dch -v 0.1-3ubuntu6~izx1
Zatwierdź zmiany tekstu, ignorując PNG za pomocą:
Kompiluj źródło / zmiany:
I ... voila! ( Deb wbudowany w Launchpad - zauważ różnicę wielkości ~ 200k ... )
źródło
Jest to trochę trudniejsze niż zwykłe dodanie pliku.
Najpierw musisz przebudować .orig.tar.gz z dołączonymi plikami binarnymi w nowym pakiecie źródłowym, i prawdopodobnie będziesz musiał zwiększyć wersję oprogramowania (
package_1.0.0.orig.tar.gz
->package_1.0.1.orig.tar.gz
lub coś) zarówno w tar, jak i wdebian/changelog
.Po zmodyfikowaniu pliku orig.tar.gz nowymi plikami (NIE dołączaj plików debian / do pliku orig.tar.gz), należy dodać
debian/changelog
wpis, zmieniając wersję, aby zwiększyć ją tak, jak w przypadku pliku orig.tar. gz.Następnie przebuduj pakiet źródłowy (
debuild -S
) i prześlij nowy pakiet źródłowy do PPA. Ten nowy pakiet źródłowy zastąpi „starszy” pakiet PPA.Z czatu:
źródło