Skip navigation.

Romhacker's Guide to the Galaxy

Życie, wszechświat i cała reszta ;)

Posts tagged with "testy"

KDE 4.3 beta 2

, ,

Po dłuższej zwłoce spowodowanej brakiem weny do pisania nadszedł czas na kolejny post ze spostrzeżeniami na temat nowego snapshotu KDE4. Z powodu paru irytujących bugów, które zostały poprawione zaraz po wydaniu tejże darowałem sobie opisywanie wrażeń z pierwszej bety KDE 4.3. Nie było znowu tak źle, ale po co mam psioczyć na błędy, których już nie ma, prawda? :smile:

Cóż więc zmieniło się w porównaniu z KDE 4.2? O ile zmiany między 4.0 a 4.1 i 4.1 a 4.2 nazwałbym rewolucyjnymi, w 4.3 jest już dużo bardziej ewolucyjnie. Dostajemy z grubsza to samo, ale tu i ówdzie jest ładniej, szybciej czy też pojawiły się nowe opcje.

Ze zmian na plus mogę wymienić:
+ Popupy przy zmianie pulpitu w końcu działają i są ładne w moim osobistym odczuciu
+ Poprawiono wygląd KRunnera, wprowadzając przy okazji podpowiedzi na temat składni
+ Klasyczny aplet menu ma teraz więcej opcji, w tym wyświetlanie ostatnio używanych aplikacji i dokumentów oraz obsługę prawokliku dla wpisów
+ Dolphin ma dodatkowy panel z drzewem katalogów i pasek wyszukiwania używający
+ KWin ma kilka nowych efektów, w tym Fade i Highlight Window
+ Dodano panel do ustawiania działań Solida
+ Dopracowane powiadomienia: informacja o aktywnych zadaniach, grupowanie, wybór jakie typy mają być wyświetlane
+ Upiększony i rozbudowany plazmoid Pastebin (tu dołożyłem swoją cegiełkę, podsyłając jakiś czas temu łatkę ze wstępną obsługą Imageshack)
+ Wyeliminowano w pewnym stopniu marnotrawstwo pamięci spowodowane ładowaniem wielu libGL z nvidia-drivers (nawet 40MB oszczędności)
+ Płyty CD/DVD można znowu odmontowywać wciskając eject na napędzie, jeśli ktoś ma taki nawyk

Co mi się podoba trochę mniej:
- Dymki w Folder View są może i przydatne, ale nie można ich wyłączyć, co mnie lekko irytuje przy szybkim klikaniu ikon
- Ikona od powiadomień siedzi cały czas w zasobniku i nie bardzo daje się wyłączyć
- KRunner przy pierwszym uruchomieniu lubi wyskoczyć w losowym miejscu, a dopiero potem przesuwa się na środek
- Nadal nie można przypisać appmenu pod prawoklik na pulpicie. Na szczęście funkcja ta ma szansę pojawić się w KDE 4.4.

Poza tym wytropiłem dwa bugi, które już załatano:
- Pasek zadań lubi się powiesić, jeśli odmontowywanie urządzenia za pomocą przycisku eject się nie powiodło
- Zegar analogowy przy pierwszym wejściu do konfiguracji pokazywał strefę czasową wbrew ustawieniom (problem zależny od locale)

Ogólnie nie jest źle. Używam u siebie snapshotu KDE 4.2.91 + dwóch backportów na wyżej wymienione bugi. Po aktualizacji do Qt 4.5 wszystko zaczęło chodzić jeszcze szybciej. Niech znajdzie się jeszcze jakiś w miarę elegancki sposób na wyłączenie tych tooltipów i prawoklikowe menu rodem z fluxboksa, a nie będę miał na co narzekać :smile:

GCC 4.3.3

, ,

Już jakiś czas temu doszedłem do wniosku, że GCC 4.3.3 powinno być dostatecznie bezpieczne do codziennego użytku i kusiła mnie migracja na tę wersję. Większość bugów na bugzilli Gentoo jest zamknięta, a niedobitki to pakiety, których w życiu nie używałem. Postanowiłem więc zakasać rękawy i przystąpić do aktualizacji i przebudowy systemu :smile:

Spostrzeżenia i uwagi:
* Odmaskowałem glibc 2.8*, bo nie chciałem się pakować od razu w 2.9
* Najpierw odmaskowałem nowe wersje boost, boost-build i aspella. Wersje ze stable rzekomo nie lubią się z GCC 4.3
* Dodatkowo zaktualizowałem VirtualBoksa do wersji 2.1.4 z overlaya jokey. Wersje 2.1.0+ dodają wsparcie dla GCC 4.3
* Po przełączeniu kompilatora zmieniłem -march na -march=native, żeby przerzucić dobór optymalizacji na kompilator :smile:
* emerge -e @system przebiegło bezboleśnie
* Pierwszy problematycznym pakietem przy emerge -e @world okazała się enca. Wystarczyło odmaskować enca i jej zależność - recode
* Dużo później wyłożył się dev86, zależność m.in. VirtualBoksa i kernelowego uvesafb. Wystarczyło odmaskować.
* Dzięki -march=native wyłożyła się oczywiście (z racji boostrapowania) rekompilacja starego GCC, ale to już rozwiązałem za pomocą portage-bashrc-ng i package.*flags.
* Wyłożyła się też Stepmania z roslina. Dodałem do repo stosowną łatkę, głównie dodającą brakujące nagłówki.
* Na koniec wyłożył się stary Amarok. I to byłby najdziwniejszy problem. Po zmniejszeniu MAKEOPTS na -j1 przeszło bez problemu (choć pod GCC 4.1.2 i -j5 było wszystko cacy). Mało tego, później na -j5 i GCC 4.3 poszło jak gdyby nigdy nic. Nie będę nawet starał się tego zrozumieć. Tak będzie lepiej :smile:
* Na koniec na wszelki wypadek przekompilowałem kernel i zrobiłem module-rebuild.
* Stary kompilator zostawiłem na potrzeby distcc (o pewnej sztuczce z tym związanej napiszę w późniejszym poście)

Uwagi końcowe:
Wszystko przebiegło pomyślnie i, o ile pamięć służy, było dużo mniej wpadek niż jakiś czas temu przy przejściu na 4.1. Tym razem skończyło się na odmaskowaniu 5 pakietów (+ VirtualBoksa z overlaya) i jednej własnej łatce. Wynik uważam za korzystny. Podczas rekompilacji system był w pełni sprawny. Normalnie z niego korzystałem. Jedyną usterką, jaką zaobserwowałem była ciut ogłupiała konsola Pythona zanim ten został przekompilowany :smile: Nowe GCC wypluwa dużo więcej ostrzeżeń, głównie za sprawą domyślnie włączonych -D_FORTIFY_SOURCE=2 i -Wformat-security. Na razie nie zauważyłem cudownych wzrostów wydajności ani zmniejszenia rozmiaru binarek. Z drugiej strony, nie robiłem żadnych pomiarów przed i po. Niemniej jednak efekt placebo jest bardzo satysfakcjonujący P: Zresztą GCC 4.3 i tak trafi do stable w perspektywie najbliższych tygodni. Przyśpieszyłem tylko nieuniknione :smile: O ile jesteście gotowi odmaskować parę pakietów i przekompilować system, mogę wam z powodzeniem polecić tę wersję GCC.

UPDATE:
Nowy VirtualBox właśnie wylądował w portage. Nie jest już potrzebny overlay.
Z mniej optymistycznych wieści:
* cvs wykłada się z "*** %n in writable segment detected ***" przy cvs diff. Na szczęście wystarczyło odmaskować najnowszą wersję.
* zsnes wykłada się z powodu -D_FORTIFY_SOURCE. Jest już na to łatka. Zaraz będzie w roslinie :smile:

UPDATE 2:
Po odpaleniu debuggera w emulatorze snes9x odkryłem problem na linii FORTIFY_SOURCE i glibc 2.8. Ma on wpływ na programy używające sprintf (i inne jego warianty) do doklejania tekstu do końca bufora w taki sposób:
sprintf(buf, "%sfail", buf);

Teoria jest taka, że taki kod jest nieprawidłowy i nie powinno się tak pisać. W praktyce mamy wiele programów, które tego nadużywają. Kilka wystąpień znalazłem nawet w źródłach kernela. Błąd występuje tylko przy włączonym FORTIFY_SOURCE i optymalizacji -O2 (i pewnie wyższych. Na szczęście jest na to łatwe obejście. Wystarczy nałożyć tę łatkę na glibc. Przywraca on stare zachowanie. Po nałożeniu łatki nie trzeba przekompilowywać systemu, ale jeśli bardzo chcecie, to proszę bardzo :smile: Gdyby ktoś chciał poczytać więcej o tym bugu, zapraszam tutaj.

KDE 4.2 RC1

, ,

Jak na pewno wiecie, przed paroma dniami upubliczniono nową wersję KDE 4.2. Z kronikarskiego obowiązku postanowiłem więc napisać o niej parę słów. Będzie to jednak bardzo krótki post. Dlaczego? Poza usunięciem multum błędów, w tym zgłaszanych przeze mnie, praktycznie nic nie zmieniło się od czasu drugiej bety. Nie musiałem już nakładać żadnych łatek na Arka, Gwenview, Okulara, Pykde4 czy Plasmę. Prawie wszystkie bugi, które zgłosiłem, zostały naprawione, a reszta to sprawy tak drobne, że zupełnie mi nie przeszkadzają. Z wizualnych zmian zauważyłem tylko inną tapetę w KDMie :smile: Tu i ówdzie zdarzają się jeszcze brakujące polskie tłumaczenia, ale to raczej dlatego, że tłumacze czekali na string-freeze. Do do czasu wersji finalnej sprawa powinna rozwiązać się sama. KDE 4.2 RC1 i nvidia-drivers w najnowszej wersji 180.22 to naprawdę dobry tandem, który w zupełności spełnia moje oczekiwania. Mam nadzieję, że wasze odczucia będą podobne.

KDE 4.2 beta2

, , , ...

Co prawda w tak zwanym międzyczasie wyszedł jeden snapshot, a źródła drugiej bety były dostępne parę dni wcześniej, ale postanowiłem wstrzymać się z tym postem aż do oficjalnej premiery. Post ten będzie raczej moją osobistą listą zaobserwowanych zmian na plus. Ostatnio dość często bywam na bugzilli KDE i zgłaszam niedoróbki, które rzucają mi się w oczy. I muszę przyznać, że znakomita większość zgłoszonych przeze mnie usterek została usunięta w KDE 4.2 beta2 lub w trunku, a to, co pozostało to drobiazgi, na które mogę przymknąć oko.

Moje spostrzeżenia:
+ Usunięto crash Plasmy przy ponownym wejściu do konfiguracji plazmoida.
+ W nowej becie ani raz nie pojawiło mi się tajemnicze puste miejsce na panelu.
+ Nowe powiadomienia w systrayu można wyłączyć, choć na razie wymaga to edycji plasma-appletsrc.
+ Problem z dziwnym zachowaniem efektów z pełnoekranowymi oknami można obejść wyłączając "unredirect fullscreen windows".
+ Pasek zadań znowu wyładniał :smile:
- Nadal nie działa mi wyświetlanie nazwy pulpitu przy przełączaniu (w trybie composite, w normalnym działają).

Jest też parę innych niedoróbek, które naprawiono za późno na beta2, ale są naprawione w svn. Oto mój zestaw łatek, w większość wygenerowanych z svn:
* ark-libarchive-emit.patch - poprawka na pustą listę plików przy archiwach tar.gz/tar.gz2 w Arku, moja własna łatka
* dolphin-tabs.patch - sprawia, że nowe karty w Dolphinie respektują tryb podzielonego widoku
* kwin-screen-edges.patch - poprawka na powracające ustawienia rogów ekranu
* libkonq-copytomenu.patch - poprawka na duplikaty ostatnio wybranych katalogów w Kopiuj/Przenieś do
* okular-cbz-fix.patch - poprawka na crash przy otwieraniu archiwów CBZ
* okular-cbz-multidir.patch - poprawka na wielokatalogowe archiwa CBZ
* okular-menubar.patch - poprawka na znikające menu po wyjściu z trybu pełnoekranowego
* plasma-workspace-fix-extender.patch - poprawka na błędne ukrywanie

W moim katalogu files jest jeszcze parę innych łatek, w tym moja próba poprawienia popupów z nazwą pulpitu, poprawka na jeden niegroźny warning i obejście na niekompilujące się pykde4.

Dodam jeszcze, że pod nvidia-drivers w wersji 180.16 nie ma już wycieków pamięci, dzięki czemu daje się już całkiem normalnie pracować. Jeśli używacie 180.11 albo 180.06, upgrade jest wysoce zalecany.

KDE 4.2 beta2 działa u mnie całkiem dobrze. Nie mogę narzekać. Już nie potrafiłbym wrócić do używania KDE 3.5. Od samych screenshotów swojego starego pulpitu robi mi się strasznie dziwnie :smile: Po raz pierwszy od dawna mam uczucie, że mój pulpit jest ładny i funkcjonalny jednocześnie. KDE 4.2 to zaiste jedna dziesiąta odpowiedzi na życie, wszechświat i całą resztę :smile:

KDE 4.2 beta 1

, , ,

Po dłuższej przerwie w testowaniu KDE4 postanowiłem spróbować jeszcze raz. Impulsem do tego były dwie rzeczy. Po pierwsze, nowe sterowniki od NVidii, które znacznie poprawiają wydajność środowiska. Po drugie, pierwsza beta KDE 4.2, które przynosi wiele poprawek i nowych funkcji.

Najpierw parę słów o działaniu nowych sterowników od NVidii. Po raz pierwszy mogę powiedzieć, że KDE4 chodzi u mnie jak błyskawica, nawet z włączonymi efektami pulpitu! Jedyną rzeczą, jaką musiałem zrobić było włączenie InitialPixmapPlacement=2 przy starcie środowiska (a właściciele GF8 i nowszych nie muszą nawet tego robić, bo dla tych modeli to domyślne ustawienie). Przełączanie między oknami, minimalizacja, okienka Konsole... wszystko chodzi płynnie. Jedyną rzeczą, która chodzi wyraźnie gorzej jest zmiana rozmiaru okien. Na wszystkim pozostałym mam stabilne 60 klatek na sekundę (sprawdzane kwinowym pluginem do pomiaru fps). Mój problem z wolnym przewijaniem dużych katalogów w Dolphinie zniknął jak ręką odjął. Warto jednak wspomnieć, że sterowniki w wersji 180.08 miały drobny błąd z wyświetlaniem czcionek, ale został on usunięty w dzisiejszej odsłonie, 180.11. Zasadniczo nie mogę narzekać. Wszystko, czego używam często, działa niesamowicie płynnie.

Przejdźmy jednak do tego, co tygryski lubią najbardziej czyli spisu obserwacji z najnowszej wersji KDE4.

Plusy:
+ Skróty klawiszowe w końcu działają, z tymi do programów włącznie. To jedna z rzeczy, na które najbardziej czekałem.
+ Konfiguracja panelu została znacznie rozbudowana. Można go teraz powiększać, zmieniać ułożenie czy też włączyć autoukrywanie.
+ Rzeczony panel zdecydowanie wyładniał, szczególnie w wersji composite.
+ Pasek zadań pozwala na wymuszenie kilku rzędów i obsługuje grupowanie elementów.
+ Poprawiono większość problemów z przezroczystością systraya.
+ Lancelot jest teraz dostarczany z KDE. Uważam go za dużo wygodniejszego od standardowego Kickoffa.
+ Można zmieniać pulpity scrollem w myszce. Ot, mała rzecz, a cieszy :smile:

Braki:
- Nowych powiadomień w systrayu nie da się wyłączyć, co potrafi zirytować.
- Brak zapowiadanych wtyczek menu. Krótko mówiąc, nie można ustawić sobie menu aplikacji pod prawy przycisk.
- Nie można odmontować płyty wciskając eject na napędzie DVD.

Niedoróbki:
- Sporadyczne crashe przy konfigurowaniu apletów.
- Czasem na panelu lubi się pojawić pusty aplet, który zaraz znika.
- Nie udało mi się skompilować pykde4, więc nie mogłem sprawdzić pisania plazmoidów w Pythonie.
- Ustawienia rogów ekranu w ustawieniach efektów zachowują się kapryśnie. Czasem nie chcą się "oduczyć"
- Efekt "Lista okien" gryzie się z SMPlayerem, co nie zdarzało się w KDE 4.1.

Jak widać, braków (które mogę przeżyć) i niedoróbek (które na szczęście często nie przypominają o sobie) jeszcze trochę pozostało, ale KDE 4.2 beta2 jest na tyle funkcjonalne i dopracowane, że parę dni temu na dobre porzuciłem KDE3. Wszystko, czego używam na co dzień działa wystarczająco dobrze. Bez kilku rzeczy już nie mogę żyć (KRunner, nowy Dolphin). Wszystko wygląda ładnie i chodzi bez większych przycinek. I w ten oto sposób rewolucja dotarła także na mój pulpit :smile: W najbliższym czasie postaram się napisać o kilku ciekawych sztuczkach związanych pośrednio z KDE4. To tyle na dzisiaj.

UPDATE: Podobno problemy z konfiguracją rogów ekranu i crashami przy konfiguracji plazmoidów zostały już poprawione :smile:

KDE 4.1 RC1

, ,

Kolejny post, kolejna wersja KDE4 :smile: Tym razem będzie krótko, bo i zmian wiele nie uraczyłem:

+ Ark jest nieco mądrzejszy, ale poważniejszych zmian należy spodziewać się dopiero w KDE 4.2
+ Poprawiono błąd, który powodował, że po ściągnieciu nowego stylu Plasma, był wybrany niewłaściwy styl z listy
+ Nowa wersja znacznie szybciej się włącza, ale nie pojawił mi się splash. Nie wiem czy to celowe.
- Skróty klawiszowe nadal chodzą dość dziwnie. Podobno ma się to zmienić w KDE 4.2.
- Przewijanie w Dolphinie nadal dziwnie powolne, ale nie wiem czy to nie wina Nvidii

Już lada dzień premiera finalnej wersji KDE 4.1. Wiele osób zapewne przejdzie przy jej okazji na KDE4. Inne, podobnie jak ja, poczekają na KDE 4.2 i/lub nowe sterowniki od Nvidii, na których będzie to żwawiej chodzić. Bo w gruncie rzeczy poza skrótami klawiszowymi, które nie chodzą jak trzeba, mierzi mnie właśnie to uczucie powolnego działania. Mam nadzieję, że z jakieś pół roku, kiedy wyjdzie KDE 4.2, wszyscy zapomnimy o tych bolączkach.

KDE 4.1 beta 2

, ,

Parę dni temu wyszła długo oczekiwana druga wersja beta KDE 4.1. Wszystkie zmiany, jakie zauważyłem to w gruncie rzeczy poprawki błędów z poprzednich wersji i usprawnienia plazmoidu Folderview.

Zmiany i odczucia:
+ Zmiany tematu Plazmy są teraz uwzględniane od razu, bez konieczności przelogowywania się
+ Elementy Folderview posiadają już właściwe dla plików menu kontekstowe
+ Folderview wyświetla pasek przewijania, jeśli jest na tyle dużo elementów
+ KRunner jest ładniejszy i mniejszy
+ Nowy, całkiem efektowny splash-screen
+ Po skompilowaniu Arka z USE="archive" program obsługuje więcej typów archiwów
+ Po zastosowaniu się do tego przepisu KDE dostaje wyraźnego kopa
- Przewijanie w Dolphinie nadal z lekka powolne
- Skróty klawiszowe nadal działają piąte przez dziesiąte (skróty Plazmy i KWina działają, skróty do programów z menu nie)
- Ikony w zasobniku systemowym nadal mają zepsutą przezroczystość tła
- Rozpakowywanie w Arku raz działa, raz nie działa (żadnego komunikatu z błędem)

Osobiście najbardziej przeszkadzają mi niedziałające skróty klawiszowe. Z kolei oczekiwana przeze mnie możliwość podpięcia menu aplikacji pod prawoklik ma się pojawić dopiero w KDE 4.2. Możliwe więc, że z migracją wstrzymam się właśnie do 4.2, które powinno wyjść gdzieś na początku przyszłego roku.

KDE 4.1 beta1

, , ,

Ponieważ nie mogę się doczekać finalnego wydania KDE 4.1, zainstalowałem sobie ostatnio jego pierwszą betę z repozytorium kdesvn-portage i muszę przyznać, że dość szybko nabiera to kształtu. Wiele rzeczy zmieniło się na plus, ale parę irytujących bugów sprawia, że z migracją wstrzymam się co najmniej do KDE 4.1 final.

Moje odczucia:
+ W końcu w miarę kompletna konfiguracja panela
+ Chodzi wyraźniej szybciej niż 4.0
+ Nareszcie można wyłączyć powiadomienia dźwiękowe, uff
+ Dzięki folderview można mieć ikony pulpitu, które zachowują się bardziej "tradycyjnie"
+ Odpowiednio skonfigurowane folderview naprawdę ułatwia życie, a dzięki tej łatce nie narzuca się wyglądem
+ Dolphin jest niesamowicie wygodny
+ Podoba mi się zunifikowane API do zakładek
+ Gwenview dostało mocnego kopa i jest teraz naprawdę szybkie
- Na nvidia-drivers konsole potrafi dziwnie przymulić przy włączonej przezroczystości
- Brak "udawanej" przezroczystości, a jednak czasem by się przydała
- Własne skróty klawiszowe coś nie działają
- Ark nie chce działać z archiwami tar.gz/tar.bz2
- Okazjonalne błędy przezroczystości w zasobniku systemowym
- Device notifier nie pokazuje udziałów NFS
- Klasyczne menu trochę odbiega funkcjonalnością od poprzednika
- Nie można zamienić menu pulpitu na kmenu jak w KDE3 (fluxbox-style)
- Brak kio_rar

Do mety już naprawdę niedaleko. Przyszłość zapowiada się ciekawie. Pozostaje tylko czekać :smile:

GCC 4.3 - moje testy

, , ,

Ostatnio z ciekawości postanowiłem przetestować GCC 4.3.0 (wersję z oficjalnego drzewa portage) w oddzielnym chroocie zawierającym kopię mojego roboczego systemu. Chciałem po prostu sprawdzić na ile problemów natknę się podczas rekompilacji systemu :smile: Wynik? Nie jest aż tak źle. Większość problemów udało się rozwiązać przez proste odmaskowanie nowszej wersji. W prawie wszystkich wypadkach błąd był powodowany przez brakujące deklaracje nagłówków <cstring>, <cstdlib> czy też <memory>.

Oto szczegółowa lista pakietów, które się "wyłożyły":

Portage:
dev-libs/libsigc++-2.0.18
dev-libs/libebml-0.7.7-r1
media-libs/musicbrainz-2.1.4
sci-libs/cln-1.1.13
media-libs/flac-1.2.1-r1
app-backup/dar-2.3.3
dev-libs/boost-1.34.1-r2
media-libs/netpbm-10.40.0
media-libs/tunepimp-0.5.3
app-cdr/cdrdao-1.2.2
games-emulation/dosbox-0.72
sci-libs/libqalculate-0.9.6
dev-cpp/gtkmm-2.12.1
media-libs/libgpod-0.5.2
app-dicts/stardict-3.0.1
media-video/mjpegtools-1.8.0-r1
media-sound/lastfmplayer-1.4.2.58240
sci-calculators/qalculate-kde-0.9.6

Roslin Uberlay:
games-emulation/ps2emu-zerogs (dodałem łatkę do repo)
games-emulation/ps2emu-zerospu2 (j/w)
games-emulation/pcsx2 (j/w)
games-emulation/zsnes (bumpnięte do nowszej wersji z łatką)
dev-util/exmap (dodałem łatkę)

Dodatkowe łatki:
dev-cpp/glibmm-2.14.2 (2.16 ma stosowną łatkę, ale wymaga nowego gliba, łatka)
app-emulation/virtualbox-1.5.6 (dwie łatki od Ubuntu: łatka1, łatka2)

Natomiast przy kompilacji kernela (gentoo-sources-2.6.25-r4) dostałem ostrzeżenie o dziesięciu "section mismatches". Nie ma się jednak czym przejmować, bo stosowne łatki zostały już włączone do kernela 2.6.26, który niebawem powinien ujrzeć światło dziennie.

Jeśli chodzi o prędkość, nie zauważyłem żadnych większych różnic w prędkości kompilacji i działania programów. SDLmame i mplayer w trybie benchmark pokazują na tyle zbliżone wyniki, że nie będę ich przytaczał. Może inne aplikacje dostały większego kopa. Możliwe też, że poza chrootem wyniki byłyby lepsze. W każdym razie, sam kompilator "robił" się dwa razy dłużej niż 4.1, a binarki przezeń tworzone są minimalnie większe (różnica rzędu kilku procent).

Tu właściwie powinienem napisać jakieś podsumowanie, ale sam nie wiem co myśleć. Kompilator w miarę bezproblemowy, a większość łatek została już włączona do portage. Z drugiej strony, różnic w wydajności nie dostrzegłem (co nie oznacza, że ich nie ma). Wybór czy przejść teraz na nową wersję czy też poczekać aż zostanie ona odmaskowana pozostawiam wam.

EDIT: GCC 4.3.1 trafiło do ~arch. Powtórzyłem więc test. Wyniki bez zmian.

OpenRC: moje doświadczenia

, , ,

Od dłuższego czasu używałem baselayouta w wersji 2.0.0_rc6. Chodziło to to całkiem zgrabnie. Włączało i wyłączało się dużo szybciej niż baselayout-1.12.x. Jednak natura bardzo nie lubi stać w miejscu. I w ten sposób z drzewa Portage wyleciała wyżej wymieniona wersja, a jej miejsce zastąpił fork o nazwie OpenRC. Z początku podchodziłem do sprawy ze sporą dozą sceptycyzmu. Obawiałem się, że out-sourcing systemu startowego może negatywnie wpłynąć na jego jakość. No, ale w końcu przezwyciężyłem strach zainstalowałem OpenRC (oczywiście zrobiłem najpierw backupa... tak, do ciebie piję, lazy_bum P:). Ogólnie rzecz biorąc, jest bardzo fajnie. Zyskałem nawet parę sekund podczas startu. Szczegóły dot. migracji i pułapek, na jakie się natknąłem, znajdziecie poniżej.

Dodałem odpowiednie wpisy do package.unmask i package.keywords. Potem odmaskowałem udeva, bo OpenRC domaga się nowszej wersji. Biorąc do serca ostrzeżenia, odmaskowałem też nowsze splash-utils i wygenerowałem ponownie initrd ze splashem. Dobra, na razie żadnych problemów. Merdżnąłem openrc-0.2-r2. Przyszła kolej na zabawę z konfiguracją.

Ustawienia z /etc/conf.d/rc przeniosły się do /etc/rc.conf. Parę zmiennych zniknęło, wszystkie są teraz pisane małymi literami. Parę starych skryptów wyleciało, pojawiło się parę nowych. Wyleciał m.in. clock, którego miejsce zajął hwclock. Ustawienia strefy czasowej powinno się teraz przechowywać w /etc/timezone, a nie jako zmienną w /etc/conf.d/clock. Automatycznie ładowane moduły dopisuje się do /etc/conf.d/modules zamiast /etc/modules.autoload.d/*. Ebuild powinien teoretycznie automatycznie przenieść te rzeczy gdzie trzeba. Nie wiedzieć czemu u mnie tak się nie stało.

Niemniej jednak system włączył się mniej więcej poprawnie. Czemu mniej więcej? Dodana w ostatniej chwili łatka multilib skopała mark_service_* w skryptach sieciowych. Neostrada wymagała restartu net.ppp0, żeby zadziałać. Poprawiłem ręcznie dwie linijki i wszystko zaczęło śmigać. Potem przeczytałem, że w wersji GIT ten błąd został ładniej naprawiony. A że apetyt rośnie w miarę jedzenia, postanowiłem zainstalować openrc-9999 z oficjalnego drzewa.

I tu w sumie spotkało mnie najwięcej niespodzianek. Pierwsza sprawa, /etc/modules.autoload.d poleciało w kosmos. Tak po prostu, bez ostrzeżenia. Kod migrujący nie wygląda za ciekawie. Może mnie oczy mylą, ale wyraźnie najpierw KASUJE modules.autoload.d, a POTEM próbuje importować ustawienia. Jakaś bzdura. Na szczęście miałem kopię. Poza tym jedna zmiana, o której wyczytałem w commit-logu: ustawianie kodowania konsoli zostało wydzielone do skryptu termencoding. Dodałem go profilaktycznie do runlevelu boot.

Merdżując coś, zauważyłem błąd z KV_MINOR, a rc-update pokazywało, że cryptoloop wymaga nieistniejącego checkroot. Na to pierwsze już dodano łatkę. Można też odmaskować nowsze module-init-tools i problem z głowy. Co do cryptoloopa, starczyło przemerdżować util-linux. Zdaje się, że w międzyczasie poprawiono skrypt startowy. Nie, żebym tego używał P:

Ostatnim problemem jest to, że OpenRC jest... za szybkie P: Zanim modem od Neostrady zdążył się zsynchronizować, już uruchomione było net.ppp0, które wykładało się na łopatki. Co ciekawe, błąd pojawił się dopiero w wersji GIT, nie w 0.2. Czyżby coś popsuli? W każdym razie, problem rozwiązałem malutkim skryptem, który sprawdza czy modem jest "operational" i opóźnia net.ppp0 do skutku. O tym workaroundzie postaram się napisać w oddzielnym poście.

Na deser, dla tych, którzy dotrwali do końca, parę obrazków:
Baselayout-2.0.0_rc6
OpenRC 0.2
OpenRC GIT

Jak widać nie zyskałem wiele - tylko 4 sekundy. lazy_bum zyskał troszkę więcej. Szczerze mówiąc, nie spodziewałem się żadnego przyśpieszenia, bo Baselayout 2.0.0_rc6 to praktycznie to samo co OpenRC. Z wykresów najbardziej intrygujący jest ten z wersji GIT. Czas dokładnie ten sam, co w OpenRC 0.2, ale przepustowość półtora raza większa! Nie wiem skąd ten efekt, ale narzekać nie będę :smile:
December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31