Czytelnia

Fossil SCM, a repozytorium NetBSD

Fossil SCM to system kontroli wersji, wiki i bugtracker – wszystko to w rozproszonym stylu. Jest to prawdopodobnie jeden z najbardziej innowacyjnych projektów zarządzania oprogramowaniem od czasu powstania Darcs i Trac.

Obecny trend w świecie otwartych źródeł to przejście z centralnie zarządzanych systemów kontroli wersji na rozproszone odpowiedniki. Liczne projekty już teraz korzystają z Gita czy Mercuriala. W przypadku NetBSD też się nad tym zastanawiano, ale natrafiono na wiele problemów.

Większość takich systemów ma spore zależności. W przypadku Darcs jest to środowisko GHC (Haskell), Monotone wymaga ogromnej biblioteki Boost, Bazaar i Mercurial potrzebują Pytona, natomiast SVK i Git są zależne od Perla.

W przypadku NetBSD jest to szczególnie problematyczne, ponieważ słowo przenośny oznacza bardzo dużo. Powyżej wymienione zależności, nękają ogromne problemy z kompilacja krzyżową (cross compiling). Z tego powodu raczej nie znajdą się one w bazowej dystrybucji NetBSD.

Gita można zbudować co prawda bez udziału Perla, jednak pojawia się kolejna przeszkoda. Skalowalność systemów kontroli wersji można ocenić pod względem trzech parametrów – ilości zmian, wielkości poprawek i objętości repozytorium. Git skaluje się świetnie w dwóch ostatnich przypadkach na tle innych rozwiązań.

Należy pamiętać, że NetBSD posiada jedno z najstarszych i największych repozytorii. 17 lat historii i ponad 300 tysięcy poprawek robi wrażenie. Świetnie obrazuje to wizualizacja wykonana za pomocą Gource. Mimo niskiej jakości nagrania, nadal robi wrażenie:

NetBSD gource visualization [LQ sample]Vimeo.

Jak ten problem rozwiązały inne projekty? W przypadku jądra Linuksa, repozytorium podzielono na dwie części. Historyczne jest używane do przeglądania starych zmian, natomiast obecne prace są prowadzone na „wyczyszczonej” wersji. Społeczność NetBSD dosyć jednomyślnie oceniła to rozwiązanie i to w negatywny sposób. Niektórzy optowali nawet za wciągnięciem historii CSRG do repozytorium, mimo potencjalnych przeszkód prawnych.

Inna kwestia to przepływ pracy, która wygląda trochę inaczej w środowisku BSD. Zmiany są dodawane często i gęsto w postaci małych poprawek. Większość systemów DVC natomiast skupia się na branchowaniu i forkowaniu, co w rezultacie daje duże poprawki, dodawane znacznie rzadziej.

Jakie są więc alternatywy? Jedną jest przejście na SVN, ale prawdopodobnie plusy takiego rozwiązania są mniejsze niż pochłonięty wysiłek. Drugim być może jest Fossil SCM, o których wspomniałem we wstępie.

Za tym młodym projektem stoi twórca SQLite i CVSTrac – Richard D. Hipp. Zależności Fossila są niewielkie i wszystkie wymagane biblioteki znajdują w bazowej dystrybucji NetBSD, co można sprawdzić instalując go za pomocą pkgsrc. Standardowy tryb pracy to automatyczna synchronizacja z głównym repozytorium, co przypomina pracę z CVS.

Problem z zależnościami i ze specyficznym przepływem pracy wydaje się rozwiązany, co jednak ze skalowalnością? Na to pytanie ciężko odpowiedzieć, ponieważ Fossil nie został sprawdzony jeszcze w odniesieniu do tak dużego repozytorium, jakie posiada NetBSD. Jednak z każda kolejną wersją szybkość działania wzrasta. Oczekiwany jest spory przyrost wydajności po dodaniu obsługi WAL oferowanej przez SQLite – bazy danych, z której korzysta Fossil.

Celowo pominąłem sprawę licencjonowania, ponieważ większość istniejących rozwiązań jest dostępnych na GPLu. Co ciekawe Richard D. Hipp zapowiedział, że przyszłe wersje Fossila będą dostępne na licencji Apache, BSD lub innym liberalnym rozwiązaniu (SQLite jest rozpowszechniany jako Domena Publiczna, co sporo wyjaśnia). Nie muszę chyba mówić, że jest to mocna karta przetargowa.

Jednak Fossil jest projektem zbyt młodym, żeby spełnić wszystkie wymagane warunki. Nie wszystkie funkcje są dopracowane – w tyle pozostaje m.in. wiki ze względu na brak użycia standardowego języka znaczników czy bugtracker, który oferuje dosyć małe możliwości. Ze względu na dynamiczny rozwój brakuje nawet numeracji wydań Fossila.

Dlatego ciężko ocenić stabilność działania programu Richarda, a jest to chyba podstawowy wymóg, jaki stawia społeczność NetBSD. Potencjał jest jednak spory, ze względu na unikalne cechy Fossila, które z czasem zapewne zostaną udoskonalone. Warto też zapoznać się z dyskusją jaka miała miejsce na kanale IRC.

pkgsrc na OpenSolarisie – prezentacja

Michael Moll w ramach spotkania grupy MUCOSUG wygłosił mowę na temat zastosowań pkgsrc na platformie OpenSolaris. Dostępne jest 60 minutowe nagranie z tej konferencji, „niestety” w języku niemieckim.

MUCOSUG: Pkgsrc and OpenSolarisVimeo.

Oprócz tego do pobrania są slajdy prezentacji, które dla odmiany są anglojęzyczne. Do ciekawszych informacji należy, szerokie zastosowanie pkgsrc na serwerach firmy Joyent, która zajmuje się chmurami obliczeniowymi.

Niepokojąca sprawa obsługi KMS

Mode-setting pozwala na zmianę „w locie” rozdzielczości i głębi kolorów, a także obsługę wielu monitorów, oraz co najważniejsze hot plugging. Kod może działać w przestrzeni użytkownika, bądź jądrze – stąd nazwa „kernel mode setting”.

Sterownik Xorg dla kart Intela (xf86-video-intel) od wersji 2.10.0 wzwyż, nie działa bez obsługi KMS. Problem w tym, że NetBSD nie posiada takowej funkcjonalności, a prac nad dodaniem jej obsługi jeszcze nie podjęto.

Oczywiście można korzystać ze starszej wersji sterownika. Jednak Xorg znane jest z tego, że poszczególne jego moduły współpracują ze sobą tylko w wybranych wersjach. Oznacza to, że nowsze wersje tego serwera X11 na NetBSD, nie zadziałają z kartami Intela.

Jest to dosyć niepokojąca sytuacja, ponieważ NetBSD nie tak dawno, jako jeden z ostatnich systemów przeszedł (częściowo) z XFree86 na rzecz Xorg. Brak obsługi KMS może oznaczać dalszą marginalizację, ponieważ zintegrowane karty Intela są szeroko stosowane w tańszych laptopach i netbookach.

Co ciekawe nawet OpenBSD uważane za ortodoksyjny system, podjęło stosowne kroki. Dodana została już obsługa GEM, która jest sporą zależnością, jaką należy spełnić przed wprowadzeniem KMS.

Jeden z deweloperów NetBSD – Yorick Hardy oświadczył, że zapewne podejmie się tej pracy. Brak jednak konkretniejszych informacji na temat terminu, bądź samej implementacji.

BSDmag elektronicznie

Od lutego 2010 BSD magazine zaczęło udostępniać swoje czasopisma drogą elektroniczną. Po zapisaniu się do newslettera, dostaje się informację o wydaniu nowego numeru oraz link do ściągnięcia go, oczywiście za darmo. ;-)

I tak w najnowszym numerze jest artykuł o PC-BSD 8, instalacji i zabezpieczaniu jaili we FreeBSD, serwery plików oparte o FreeBSD, OpenBSD oraz NetBSD, artykuły o IPsec, LDAP na FreeBSD czy poczta na qmail na OpenBSD.

Na stronie można też ściągnąć zaległe numery, jeśli ktoś je przegapił. To wszystko można obejrzeć na http://bsdmag.org/

NetBSD 5.0 na Netrze T1-200

Bartosz „cancer” Maciejewski umieścił na swoim blogu kolejny wpis związany z NetBSD.

Jest to relacja/HowTo z instalacji i uruchomienia wersji 5.0 na SPARCowym sprzęcie T1-AC200. Warta przeczytania także (a nawet szczególnie) dla osób, które nie miały do czynienia z tego rodzaju sprzętem.

http://maciejewski.org/2009/05/20/netbsd-50-na-netrze-t1-200/