#use wml::debian::template title="Nakładka GTK dla instalatora" NOHEADER="true" #use wml::debian::translation-check translation="1.11"

Strona stanu nakładki gtk dla instalatora

Wiadomości

19.06.2003: Aktualizacja od dłuższego czasu. Niestety niewiele się działo przez ostatnie dwa miesiące. Przynajmniej pliki udeb zostały przesłane i wygląda na to, że działają. Dziękuję wszystkim biorącym w tym udział deweloperom. Vikram Singh napisał \ graficzne narzędzie do partycjonowania, które może być użyteczne jeśli znajdziemy sposób na integrację tych kontrolek w cdebconfie.

28.03.2003: Nowa wersja libgtk-directfb. Już nie powoduje konfliktu z libgtk, więc powinna być gotowa i wymaga testów. Pierwsze udane zbudowanie cdebconfa i nakładki gtk.

25.03.2003: Wiele zostało zrobione w kwestii nakładki. Jest teraz możliwość wyświetlania wielu pytań na raz, jest obsługa archiwizacji i można wyświetlać paski postępu. Zobacz zrzuty ekranu.

17.03.2003: Temat pthread został rozwiązany nową wersją libc, która teraz zawiera bibliotekę.

12.03.2003: Dodano działającą wersję gtk+-directfb, która bazuje na pracy Alastaira McKinstry'ego. Dodano również nową wersję libdirectfb. Wprowadza trochę pomysłów Thomasa Viehmanna i zawiera łatkę, która poprawia naruszenie ochrony pamięcie kiedy libdirectfb jest wywoływana przez nakładkę gtk. Komentarze mile widziane.

11.03.2003: Robimy postępy: Pierwszy \ zrzut ekranu

07.03.2003: Nowa wersja libfontconfig w pliku udeb. Łatka przesłana do BTS.

07.03.2003: Małe zmiany w libdirectfb. Opiekun otrzymał łatki.

07.03.2003: Akira Tagoh przesłał atk, glib i pango. Również freetype została przesłana.

06.03.2003: Zmienione zasady dla pakietów udeb-dev: Biblioteki powinny być instalowane w /usr/lib/udeblib zamiast w podkatalogu zależnym od nazwy biblioteki.

05.03.2003: Stworzono pliki udeb dla libexpat i libfontconfig.

04.03.2003: Pango teraz używa libfontconfig jako elementu przetwarzającego dla freetype. Więc teraz trzeba to spakietować, a ponieważ to korzysta z libexpat to mamy kolejnego kandydata... Szukamy wolontariuszy.

04.03.2003 Dodana część o wymuszaniu przestrzeni.

04.03.2003: Zaktualizowane pliki udeb dla zlib i libpng, łatki przesłane do bts.

03.03.2003: Dodano odsyłacz do plików udeb Akiras pango.

03.03.2003: Zaktualizowane zalecenia dotyczące pakietowania udeb bibliotek, znajdziesz je na końcu tej strony. Zalecenia zostały przesłane na debian-boot do przeglądnięcia, wszelkie komentarze mile widziane.

03.03.2003: Wypełniono zgłoszenie o tym, że pthreads jest potrzebne przeciwko libc-udeb (#188155). Opiekunowie glib nie byli zbyt szczęśliwi, musimy zrobić małe śledztwo czy obsługa thread jest rzeczywiście konieczna.

02.03.2003: Początek dokumentacji na temat tego co jest potrzebne przy tworzeniu pakietów udeb bibliotek. Wkrótce prześlę to na debian-boot do przeglądnięcia.

Ogólny przegląd

Instalator Debiana jest aktualnie przepisywany by być bardziej modularnym i elastycznym w stosunku do boot-floppies. Ogólne informacje możesz uzyskać na stronie instalatora. Ta strona jest poświęcona nakładce gtk nowego instalatora. Jeśli chciałbyś pomóc to jest to dobre miejsce na początek. Przeczytaj również dokumentację z repozytorium subversion debian-installera.

Jeśli masz coś do dodania albo chcesz przesłać poprawki wyślij je do mnie: .

Co musi zostać zrobione

Jak pomóc

Jeśli chcesz pomóc z nakładką gtk przeczytaj najpierw dokumentację znajdującą się w repozytorium subversion instalatora. Przyglądnij się plikom udeb wymienionym poniżej i potestuj je. Większość z nich nie całkiem spełnia specyfikacje, znajdź więc błędy i przygotuj łatki. Pakietowanie bibliotek do plików udeb przysparza trochę problemów. Kilka wskazówek znajdziesz na końcu tego dokumentu. Jeśli znajdziesz w nim jakieś błędy prześlij mi o tym informację. Dyskusje odbywają się na liście dyskusyjnej debian-boot.

Rozmiar ma znaczenie

Nie ma możliwości zmieścić wszelkich potrzebnych dla graficznego instalatora plików na dyskietce o pojemności 1,44 MB. Jest to również niemożliwe na dyskietce 2,88 MB, która jest górnym ograniczeniem standardu uruchamiania z CD ElTorito.

W konsekwencji pliki udeb muszą być załadowane do ramdysku z sieci lub z repozytorium CD. Rozmiar ramdysk jest oczywiście ograniczony i byłoby wspaniale gdyby graficzny instalator działał również z małym ramdyskiem. Tak więc głównym priorytetem jest utrzymywanie rzeczy jak najmniejszych. Wyrzucaj niepotrzebne śmieci, zależności gdzie tylko to możliwe.

Stan plików udeb

Kolory stanów mają nastęujące znaczenie:

PakietWstępny pakietKto nad tym pracuje? Przesłany?Do zrobienia, komentarze
gtk+-directfb http://www.mmweg.rwth-aachen.de/~sebastian.ley/d-i/udebs Michael Cardenas,
Sebastian Ley
tak udeb powinien być gotowy, wymaga testów
libdirectfb http://www.mmweg.rwth-aachen.de/~sebastian.ley/d-i/udebs Sebastian Ley no udeb powinien być gotowy, wymaga testów
libpango brak Akira Tagoh tak udeb powinien być gotowy, wymaga testów
glib brak Akira Tagoh tak powinien być gotowy, wymaga testów
libatk brak Akira Tagoh tak powinien być gotowy, wymaga testów
zlib brak brak tak udeb powinien być gotowy, wymaga testów
libpng http://www.mmweg.rwth-aachen.de/~sebastian.ley/d-i/udebs Sebastian Ley tak udeb powinien być gotowy, wymaga testów
libc brak brak tak udeb powinien być gotowy, wymaga testów
libfreetype brak brak tak udeb powinien być gotowy, wymaga testów
ttf-freefont brak brak tak Musi być mneijszy. Niektóre czcionki trzeba odrzucić.
libfontconfig http://www.mmweg.rwth-aachen.de/~sebastian.ley/d-i/udebs Sebastian Ley tak udeb powinien być gotowy, wymaga testów
libexpat brak brak tak udeb powinien być gotowy, wymaga testów

Integracja z nakładką gtk

Ponieważ wszystkie biblioteki potrzebne przez nakładkę gtk nigdy nie zmieszczą się na dysku, potrzebujemy rozwiązania definiującego jak nakładka będzie używana. Do tej pory są dwa pomysły:

To są na razie pomysły, żadne prace w tym kierunku nie zostały jeszcze wykonane.

Pakietowanie bibliotek do plików udeb

To tylko propozycje bazujące na moich doświadczeniach. Wszelkie komentarze należy kierować do mnie lub na listę dyskusyjną debian-boot.

Na początku przeczytaj ogólne instrukcje na temat budowania plików udeb. Możesz je znaleźć w repozytorium subversion instalatora. Następujące tematy są specyficzne dla bibliotek:

Przygotowując pakiet biblioteki należy zachować dodatkową ostrożność. Ten dokument opisuje podstawowe informacje w tej materii.

Zanim to przeczytasz, dobrym pomysłem jest przeczytanie wszystkich innych dokumentów projektu instalatora. Przewodnik o pakietowaniu bibliotek od Junichi Uekawa opisuje ogólne praktyki pakietowania bibliotek. Tak więc dobrze również to przeczytać.

Nazewnictwo

Moduły bibliotek powinny być nazywane jak ich odpowiedniki deb z dodatkiem "-udeb" na końcu. Na przykład libc6 będzie miało odpowiednika libc6-udeb, a libglib2.0-0 stanie się libglib2.0-0-udeb. Ważne by zawierać numer sonazwy (soname) w nazwie modułu, ponieważ zmiana ABI biblioteki zepsuje wszystkie moduły zależące od niej i całą instalację sieciową zanim zależne moduły zostaną przebudowane.

Zależności

Normalnym sposobem odnajdywania zależności pakietu Debiana jest system shlibs. Każda zainstalowana biblioteka dostarcza plik shlibs, który stwierdza jakie pakiety dostarcza dana biblioteka. To nie działa przy znajdywaniu zależności dla modułów instalatora, ponieważ pliki shlibs wskazują na pakiety deb dostarczające szukanej biblioteki, a nie na moduły instalatora.

Jednakże by móc korzystać z dh_shlibdeps każdy moduł biblioteki powinien zawierać linię "Provides" z odpowiednim wpisem dotyczącym normalnego pakietu Debiana danej biblioteki. Np. libc6-udeb powinno wskazywać na libc6.

Zawartość

Moduł musi zawierać samą bibliotekę oraz dowiązanie symboliczne nazwane tak jak SONAZWA biblioteki wskazujące na bibliotekę. Rozwojowe dowiązania takie jak pliki .a libtools są niepotrzebne. Jeśli biblioteka zawiera moduły lub dane (przechowywane w /usr/share) dobrym pomysłem jest sprawdzenie czy wszystkie są potrzebne, a jeśli nie to czy mogą być w jakiś sposób usunięte.

Zmiana opcji kompilacji

Czasem może wystąpić potrzeba zmiany opcji kompilacyjnych danego modułu, a więc zepsuć binarną zgodność. Nie wszystkie opcje kompilacyjne zmieniają ABI, np. używanie różnych flag -O jest nieszkodliwe.

Zmiana ABI była konieczna na przykład w przypadku libdirectfb, ponieważ biblioteka w pakiecie deb była skompilowana z obsługą SDL i X, co niepotrzebnie obciążało by instalator.

Jeśli binarna zgodność zostaje zepsuta, sonazwa biblioteki musi zostać zmieniona by odzwierciedlić tę sytuację. Zalecane jest by umieścić wpis "udeb" w sonazwie. Zmiana sonazwy może być prosta jeśli biblioteka jest budowana przez libtool i używa autoconfa. Zobacz do podręczników libtool i autoconf.

Zbudowanie pakietu nowej biblioteki dla instalatora nie jest wystarczające. Jeśli inny moduł zawiera programy, które odnoszą się do tej biblioteki, sama biblioteka musi znajdować się w systemie budowania.

Ponieważ moduły nie powinny być instalowane na normalnych systemach, potrzeba stworzyć pakiet deb zawierający tę bibliotekę jak i potrzebne dowiązania rozwojowe. Pakiet powinien być nazwany libfoo-udeb-dev i powinien być zależny od libfoo-dev. Jedyne pliki jakie powinny znaleźć się w libfoo-udeb-dev to biblioteka ze zmienionym ABI i potrzebne dowiązania. Ponieważ rozwojowe dowiązania są takie same jak te w libfoo-dev, sama biblioteka i dowiązania powinny być zainstalowane w katalogu /usr/lib/udeblib.

Teraz żeby program instalatora był połączony z biblioteką ze zmienionym ABI, podczas łączenia należy dodać opcję "-L/usr/lib/udeblib", by przekazać, gdzie powinno się szukać dowiązań dla libfoo. Ta procedura powinna zostać opisana w pliku README.Debian pakietu libfoo-udeb-dev.

By wszystko zostało obsłużone przez system shlibs odpowiednio należy dokonać jeszcze małych poprawek. Żeby otrzymać odpowiednie zależności dla modułów instalatora zależnych od libfoo-udeb, trzeba stworzyć pakiet libfoo-udeb-dev z plikiem shlibs który wskazuje na pakiet libfoo-udeb Przykładowo plik shlibs pakietu libdirecfb-udeb-dev zawiera:

libdirectfb-0.9-udeb 16 libdirectfb-0.9-16-udeb

Pozostaje jeszcze jeden problem. Jeśli istnieje moduł instalatora libbar-udeb zależny od libfoo-udeb, który sam jest zależny od libbar-udeb-dev z powodu nizgodności binarnych, libbar-udeb-dev będzie zależny od libfoo-udeb, który jest modułem instalatora i nie może być zainstalowany w systemie budowanym. By rozwiązać ten problem każdy pakiet udeb-dev powinien dostarczać odpowiedni pakiet udeb, np. libdirectfb-udeb-dev powinien zawierać linię

Provides: libdirectfb-0.9-16-udeb