Archiwalia w kategorii 'linux'

LGM 2008

W dniach 8-11. maja odbyła się trzecia edycja Libre Graphics Meeting. Ci z was, którzy się nie pojawili (i mam nadzieję, że żałują), mogą obejrzeć zdjęcia i nagrania wideo z poszczególnych prezentacji.

PLD Linux był dzielnie reprezentowany przez czteroosobowy zespół w składzie: DeeJay1, djurban, emes i ja. Djurban gdzieś zagubił się w piątek, prawdopodobnie ukamienowany przez resztę deweloperów KDE. Towarzyszył nam dzielnie Jarv, któremu raz nawet udało się przyjść przed 12:30. Jeśli ktoś się zastanawiał, kim jest ten typ w pomarańczowej bluzie i koszulce z logo GNOME, to przyznaję się do winy.

Chciałem przy okazji serdecznie podziękować organizatorom, choć nie obyło się bez drobnych wpadek. Nie pojawił się na przykład absolutnie nikt z polskiej prasy. O konferencji, która pierwszy — i możliwe, że jedyny — raz odbyła się we Wrocławiu, nie poinformowała nawet gazetka Tesco. To tłumaczy śladową liczbę grafików, którzy przyszli na prezentacje, sporą część reprezentacji Polski stanowili studenci, którzy odwiedzali wykłady w przerwach między normalnymi zajęciami Politechniki Wrocławskiej.

O treści samych prezentacji nie będę się rozpisywał. Co straciliście na wykładach, możecie zobaczyć sami. Najbardziej oczekiwanym momentem była jednak prezentacja projektu Peach, która odbyła się pobliskim Multikinie. Zapominalscy na oficjalną premierę filmu Big Buck Bunny będą musieli poczekać do 20. maja.

Global UMTS pozywa

Nie, nie o patenty. O poprzednią notkę! Uważam, że nic tak dobrze nie reklamuje produktu i dobrych intencji autora, jak solidny cease and desist, zapraszam więc do lektury (autor zapewne postanowi zaraz pozwać mnie z powodu ujawniania korespondencji, ale list adresowany do mnie jest moją własnością):

from	Dariusz R. 
to	patrys@pld-linux.org,
date	Sun, Apr 20, 2008 at 5:28 PM
subject	Global UMTS - pomówienia zgłoszone POLICJI

Witam

Jestem autorem programów Global UMTS i Global GPRS.

Dziś rano złożyłem zawiadomienie o popełnieniu przestępstwa (zdjęcie dokumentu w załączniku). Policja zabezpieczyła dowody – treść kilku stron internetowych.

Popełniono przestępstwo m.in. z art. 212 § 1 oraz § 2 Kodeksu Karnego zagrożone karą pozbawienia wolności do 2 lat.

Przygotowywane jest powództwo cywilne: odszkodowanie za pomówienie mojej osoby, które naraziło mnie m.in. na utratę zaufania potrzebnego dla mojej pracy zawodowej (w kwocie kilkudziesięciu tysięcy złotych) i kolejne odszkodowanie za niszczenie marki i dobrej renomy wśród klientów programów Global GRPS i Global UMTS, którą budowałem dużym kosztem od długiego czasu (kolejne kilkadziesiąt tysięcy złotych).

Dodatkowo trzeba też będzie przez wiele miesięcy pokrywać koszty zakupu reklam internetowych odbudowujących zniszczony wizerunek moich programów. Trzeba będzie zwrócić kwotę przeznaczoną na wynagrodzenie adwokatów.

Sprawy karna i cywilna będą się toczyć w Sądach w Warszawie.

Żądam natychmiastowego usunięcia oszczerczych tekstów (wraz z komentarzami) między innymi z tych stron:

http://room-303.com/blog/
http://10przykazan.com/archive/2008/4/15/4/
http://planet.pld-linux.org/

Każdy kolejny dzień istnienia tych tekstów w internecie jest dokładnie dokumentowany przez prawników i policję i będzie podstawą do zwiększania kwoty odszkodowań i wydatków na reklamy służące odbudowie wizerunku marki i dobrej renomy Global GRPS i Global UMTS.

Dotyczy to też wyświetlania oszczerczych tekstów z archiwum stron Google. Sąd zostanie poinformowany o tym, że istnieje możliwość usunięcia tych stron z pamięci Google (szczegóły w dziale porady dla webmasterów na stronie www.google.com ) więc należy je niezwłocznie usunąć z pamięci Google.

Pozdrawiam
Darek

Na koniec treść kilku artykułów z Kodeksu Karnego:

Przestępstwo z art. 212 § 1 oraz § 2

Art. 212 Kodeks Karny

§ 1. Kto pomawia inną osobę, grupę osób, instytucję, osobę prawną lub jednostkę organizacyjną nie mającą osobowości prawnej o takie postępowanie lub właściwości, które mogą poniżyć ją w opinii publicznej lub narazić na utratę zaufania potrzebnego dla danego stanowiska, zawodu lub rodzaju działalności, podlega grzywnie, karze ograniczenia albo pozbawienia wolności do roku.

§ 2. Jeżeli sprawca dopuszcza się czynu określonego w § 1 za pomocą środków masowego komunikowania, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2.

§ 3. W razie skazania za przestępstwo określone w § 1 lub 2 sąd może orzec nawiązkę na rzecz pokrzywdzonego, Polskiego Czerwonego Krzyża albo na inny cel społeczny wskazany przez pokrzywdzonego.

Art. 488 Kodeksu Postępowania Karnego

§ 1. Policja na żądanie pokrzywdzonego przyjmuje ustną lub pisemną skargę i w razie potrzeby zabezpiecza dowody, po czym przesyła skargę do właściwego sądu.

Jestem więc teraz przestępcą. Czujecie już respekt? Następna notka ukaże się grypserą.

Autora zaś informuję, że straszenie mnie prokuratorem jest bezcelowe. Moja kobieta jest prawnikiem i znam swoje prawa. Jeśli chcesz domagać się usunięcia jakiejkolwiek treści z mojego bloga, to staraj się o to kulturalnie, przez kontakt ze mną (którą to szansę właśnie zmarnowałeś, pokazując jednocześnie buractwo — uwaga, drugie pomówienie), albo dochodź swoich praw w sądach USA, gdzie blog się znajduje.

Po drugie, uważam, że jesteś słabym programistą i mam do tego pełne prawo. To nie gazeta. Co więcej, powiedziałem ci, co zrobić, żeby poprawić swój program. Jeśli masz ego większe od mózgu, to już problem dla psychologów, a nie sądu (uwaga, tutaj autor notki trzeci raz dopuścił się pomówienia, mamy więc recydywę). Och nie, w Internecie ktoś się myli! Pozwij mnie od razu o przemoc w stosunku do nieletnich, szerzenie pornografii i akty lubieżne w miejscach publicznych, może w końcu trafisz z jakimś zarzutem. Najlepiej w sądzie w Gdańsku.

Global GPRS, Global UMTS

Są sobie takie dwa programy niejakiego Dariusza Rakowskiego. Nie podlinkuję, dopóki nie napiszę, dlaczego w ogóle o nich wspominam. Bo osoba reklamująca je jest cholernym spamerem i nigdy nie należy ufać programom z niewiadomego źródła.

Pierwszy rzut oka na Global UMTS: binarka bez źródeł. Nie dotykać, pomacać przez ldd i strings. Ten drugi pokazuje, że program szuka gksu albo kdesu. Po co? Pokazuje też, że autor jest słabym programistą i szuka urządzeń przez dmesg | grep.

Więcej kwiatków nie chciało mi się szukać. Wygląda jednak na to, że wbrew naszym pierwszym skojarzeniom, program nie wysyła waszych danych do autora. Wygląda — nie poświęciliśmy mu więcej czasu, więc proszę nie brać tego za pewnik i najlepiej programu zwyczajnie unikać, zamiast tego posiłkując się najnowszym Network Managerem.

Dariuszowi zaś, jeśli to prawdziwe imię i ma faktycznie dobre zamiary, polecam skasować program, napisać od nowa po ludzku (z użyciem HALa, PolicyKit i bez sprawdzania, czy dystrybucja to czasem nie OpenSuSE) i udostępnić w postaci źródeł. Na licencji, która zezwala na dystrybucję. Aha, radziłbym się upewnić, czy rozprowadzanie loginów i haseł operatorów komórkowych z całego świata jest zgodne z ich wolą i prawem.

Terminal velocity

Jak widać, od sierpnia wiele się nie zmieniło:

$ history | awk '{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’|sort -rn|head
270 vim
107 cvs
96 cd
87 ./builder
81 svn
36 sudo
31 ssh
31 poldek
30 ../pld-builder.new/client/make-request.sh
27 ls

Pierwszy z demonów

Na każdym zebraniu jest taka sytuacja, że ktoś musi zacząć. Przy komputerze nikt kogo pod pistoletem nie trzyma, a skoro pan nie mówi o przyrodzie, możemy przejść do spraw ciekawszych. Jeśli wiesz, czym jest dæmon init i jaka jest jego rola w systemie uniksowym, możesz śmiało przeskoczyć nad płytkim, powierzchownym i łopatologicznym wprowadzeniem, którego się nie spodziewasz, a którym za chwilę uraczę całą resztę. Wpadliście w zasadzkę, marny wasz los.

Głupi kaowiec

init nie jest wielki, ale lekceważyć go nie wolno. Jest alfą i omegą, krótkie starcie z nim szybko upewni cię, że może to oznacząć początek twojego końca. Jak to? — pytasz ze zdziwieniem w oczach, gdy ja przypominam ci radosny komunikat:

Kernel panic: Attempted to kill init

init jest nieśmiertelny. Rodzi się jako pierwszy i, niczym dobry kapitan, pozostaje na pokładzie do samego końca. Inne procesy traktują go jako dobrotliwego wujka, który przygarnia zbłąkane sieroty, bądź jako wielkiego przedwiecznego, który wszelkie nieposłuszeństwo karze globalną zagładą.

Czy powinienem się go bać? — zapytujesz, a twarz twą oblewa rumieniec. Nie — odpowiadam, wzbudzając tym większą ciekawość. init to bardzo specyficzna bestia. Uruchamiany jest jako pierwszy proces przestrzeni użytkownika (nie licząc tak zwanego early userspace zawartego w initramfs, odpowiadającego za przygotowanie urządzeń do właściwego uruchomienia systemu) i zawsze jest numerem jeden (chodzi oczywiście o PID, czyli identyfikator procesu). Przygarnia również sieroty, czyli procesy, które wyrzekają się rodziców. Jądro systemu operacyjnego automatycznie przypisuje wszystkim bezpańskim procesom zastępczego opiekuna w postaci procesu init właśnie.

Mało tego, to właśnie biografia inita zawierać mogłaby i rzekł “niech staną się inne procesy”; i poczęły się uruchamiać usługi; i zobaczył, że było to dobre. Dæmon init pełni rolę nadzorcy całego systemu i troszczy się o to, by uruchomione zostały wszystkie niezbędne do działania komputera usługi (oczywiście mówię o działaniu w pojęciu użytkownika, komputer w pełni zadowoli się samym jądrem i użytkownika do szczęścia nie potrzebuje).

SysVinit

Dawno, dawno temu, gdy SCO nie straszyło świata patentami, a głównym zajęciem AT&T nie było sprzedawanie iPhonów stadom amerykańskich nastoletek, ci ostatni, znani jako Laboratoria Bella, opracowywali standard systemu Unix. W owych mrocznych czasach, poprzedzających erę komputera łupanego (gdy komputer zajmuje sporą część budynku, nikomu nie przychodzi do głowy naprawianie go poprzez walenie pięścią w monitor), pojawiła się koncepcja głównego nadzorcy. Sposób jego działania pozostał przez lata właściwie niezmieniony, różniąc się tylko nieco implementacją pomiędzy architekturami i pokoleniami uniksowej rodziny.

Do dziś za wzorcową implementację uznaje się ponad dwudziestoletnią skamielinę, pochodzącą ze standardu System V (właścicielom cyfowych zegarków spieszę wyjaśnić, że tak wygląda rzymska piątka). Obsługuje start usług i przypisywanie ich do różnych profili (System V posiada system siedmiu profili nazywanych poziomami i numerowanych od 0 do 6), potrafi dodatkowo wskrzeszać swoje dzieci, jeśli taka jest wola administratora.

Dlaczego zatem usługi uruchamiane są poza nadzorem systemu? Problemem jest ich elastyczna konfiguracja, możliwość zatrzymywania i uruchamiania w dowolnym momencie, a także fakt, że w przypadku problemów init z System V zupełnie nie interesuje się przyczyną nagłego zgonu.

W pozostałych rolach

Konkurencja nie spała. Pomijam systemy oparte o szkielet BSD, który jako model systemu powstał jeszcze przed System V, więc informacja o używaniu innego nadzorcy nie powinna cię zdziwić.

Najszerzej kojarzoną jest z pewnością implementacja daemontools. Jedni twierdzą, że to ze względu na kontrowersyjną postać autora, inni, że jest to wynik radykalnego podejścia do procesu nadzorcy. Rewolucyjnych zmian nie ma tam co szukać, podstawową różnicą jest większa konfigurowalność nadzorowanych usług i rezygnacja z profili uruchomieniowych. O sukcesie podejścia wystarczy powiedzieć tyle, że w 90% przypadków daemontools uruchamiane jest przez… SysVinit.

Nieco inne podejście zastosowali autorzy initng, rozwijanego przez deweloperów Gentoo. Do tradycyjnego nadzorcy dodano możliwość równoległego uruchamiania wielu usług i wprowadzono prosty system zależności. Zaowocowało to skróceniem czasu startu systemu — usługi nie musiały stać gęsiego w kolejce i uruchamiane były, gdy tylko zaspokojone zostały ich podstawowe wymagania (zaznaczyć wypada, że większość usług zadowala się działającą siecią bądź samym faktem włączenia komputera, tylko nieliczni domagają się prywatnego apartamentu z widokiem na morze).

Apple z kolei stworzyło launchd, który jest hybrydą pomiędzy tradycyjnym procesem init, dæmonem inetd i usługą cron. Podstawowym udogodnieniem dla użytkowników była tu wprowadzona możliwość uruchamiania usług na żądanie, rozszerzona później przez grupę freedesktop.org i zintegrowana z zarządcą magistrali DBus.

upstart already!

Mamy wreszcie projekt upstart, o którym krótko opowiem. Myślałem, że nigdy do tego nie dojdziesz — wzdychasz pod nosem, sprawdzając, czy mikrofon laptopa na pewno jest wyłączony. Pamiętaj jednak, że dla niektórych Linux to żółty pasek postępu z napisem Loading Ubuntu i każda okazja do postraszenia ich bebechami systemu jest dobra.

upstart łączy zalety większości wspomnianych wyżej implementacji. Potrafi emulować zachowanie System V, uruchamiać usługi równolegle, wspiera zależności, a autorzy obiecują, że niedługo może też zastąpić dæmona inetd. Przejście na niego jest bezproblemowe, bo usługi ze starego do nowego formatu przenosić można stopniowo, z każdym krokiem zyskując pełen nadzór nad ich działaniem, automatyczny restart w przypadku awarii i powiadamianie administratora o występujących problemach.

upstart dodaje też unikalny system reakcji na zdarzenia, nowe procesy mogą więc zostać uruchomione lub zakończone w odpowiedzi na zmiany zachodzące w działającym systemie. Chcesz, aby system obsługi wydruku działał tylko, jeśli do komputera podłączona jest drukarka? Nie ma problemu. Zatrzymać mniej krytyczne usługi, gdy serwer korzysta z zasilania awaryjnego? Proszę bardzo. Wszystko w automatycznie i z pełnym wglądem w listę tego, co aktualnie działa, co nie działa i dlaczego.

Oczywiście, nie piszę tego wszystkiego bez przyczyny. Wczoraj upstart pojawił się w PLD i skutecznie zastąpił swego pradziadka na wszystkich moich komputerach. Daj mu szansę i zainstaluj pakiet upstart-SysVinit, a jeśli ktoś spyta cię, jaki jest cel projektu, odpowiesz spokojnie:

Attempting to kill init

GNOME 2.22

GNOME 2.22

Dzisiaj (a właściwie to już wczoraj) oficjalnie został wydany GNOME 2.22. Dostępny we wszystkich dobrych dystrybucjach, więc także w PLD.

Rhythmbox i trzeszcząca muzyka

W PLD przez dłuższy czas ludzie skarżyli się na artefakty przy odtwarzaniu muzyki przez Rhythmboksa. Problem rozwiązany został dopiero wczoraj.

Zacznę może od rozwiązania, trzeba zaktualizować pakiet alsa-lib do wersji 1.0.16.

Jeśli kogoś ciekawi przyczyna problemu, to służę informacjami. Rhythmbox do odtwarzania dźwięku używa szkieletu GStreamer. GStreamer odpowiada za dekodowanie strumieni i nakładanie efektów, sam jednak do komunikacji z urządzeniem wyjściowym wykorzystuje jedną z bibliotek audio. Najczęściej używana jest w tym przypadku wspomniana ALSA.

Na każdym styku elementów następuje negocjacja obsługiwanych formatów danych. Rhythmbox przed otwarciem pliku sprawdza, czy GStreamer potrafi go obsłużyć. Następnie tworzony jest łańcuszek elementów GStreamera. Każde dwa elementy w kolejce ustalają między sobą preferowany format przekazywanych danych. Ostatnim elementem w łańcuchu odtwarzania jest odpływ (sink), przekazujący dane do biblioteki ALSA.

Również tutaj odbywa się negocjacja i tu pojawia się problem trzeszczenia. GStreamer od niedawna oferuje wsparcie dla 32-bitowych próbek dźwięku. Zapewnia to większą precyzję przy przetwarzaniu, a w przypadku droższego sprzętu także wyższą jakość dźwięku kierowanego na głośniki. Oczywiście, większość z nas słucha muzyki w formatach kompresowanych i nie usłyszymy raczej różnicy, ale GStreamer robi WłaściwąRzecz™.

Problemem jest jednak ALSA, która również od niedawna zmieniła sposób skalowania próbek w przypadku 16-bitowych kart muzycznych. Do niedawna operacja ta polegała na obcięciu 16 mniej znaczących bitów. Zastąpił go nieco bardziej skomplikowany wzór, który — w przypadku dużej siły sygnału — podatny był na przepełnienie arytmetyczne. Ten właśnie drobny szczegół poprawiono w wersji 1.0.16.

Miłego słuchania muzyki zatem, Rhythmbox jest niewinny ;)

Drodzy deweloperzy dystrybucji…

Nie interesuje mnie, czy bazujecie na jądrze Solarisa, Linuksa, czy może BSD. Jeśli chcecie naprawić jakiś pakiet — bo się nie buduje — droga wolna — lokalne patche są często potrzebne.

Jeżeli zaś chcecie rozbudować program, czy ogólniej zmienić jego działanie, to róbcie to upstream. Gdyby każdy obywatel forknął każdy używany projekt i gdyby nawet wasze dzieci — i nie mówcie mi, że nie macie, bo zawsze możecie mieć (sprawdzić, czy nie ksiądz) — to byśmy żyli w takim burdelu, że wolałbym używać Windowsa.

Winni nie muszą się zgłaszać, bo pewnie nie czytają tego bloga. Podejrzewam też, że nie znają polskiego — tak, jak ja pospołu z autorami nie znam łatek nakładanych lokalnie. Przodują w tym panowie z Ubuntu, trzon peletonu stanowią zaś Novell, Sun i RedHat. Każdy z dużych ma generalnie w dupie, że autor pakietu nigdy nie dowie się ani o błędach, które załatali zainteresowani, ani o oczekiwaniach użytkowników.

Długofalowy efekt jest taki, że w Ubuntu wszystko działa inaczej, niektóre aplikacje mają problemy, które Novell u siebie poprawił trzy lata temu, a użytkownik nie ma się komu poskarżyć, bo przecież autor programu za cudze łaty spowiadał się nie będzie, autor zaś łatek od dwóch lat pracuje pewnie dla innej korporacji. Nie uwierzycie pewnie, ile radości sprawia szukanie łat w repozytoriach innych dystrybucji, kiedy bugzilla danego projektu świeci pustkami.

Postscript: Byliśmy dzisiaj w kinie na trzeciej części Resident Evil. Streszczenie filmu:

  1. Cela
  2. Cube 2
  3. Mad Max
  4. Szklana Pułapka
  5. www.Strach
  6. Mad Max
  7. Ptaki
  8. X-Men
  9. Mission: Impossible
  10. Gwiezdne Wojny
  11. Mad Max
  12. Pitch Black
  13. Liga Niezwykłych Dżentelmenów
  14. Star Trek
  15. X-Men
  16. Cube 2
  17. Matrix

Warto obejrzeć, poważnie. Brakowało mi tylko Generała Daimosa.

Strip #NaN: Lord of the Patents

Lord of the Patents

PLD Th: fixing a vserver

Niniejszy post jest oparty o historię z pola bitwy. Bardzo techniczny i nieszczególnie ciekawy, jeśli ktoś nie używa wymienionych technologii. Być może komuś się przyda.

Awaria

Poszukiwanie przyczyn pozwoliło nam ustalić następujące fakty:

  • W jednej z maszyn wirtualnych ktoś zainstalował pakiety rpm i poldek, a następnie użył ich do instalacji oprogramowania;
  • Maszyna miała cały czas zamontowaną zewnętrzną bazę rpm (prawdopodobnie utils-vserver zdechło i pozostawiło po sobie bałagan, ale o tym później);
  • Wewnętrzny rpm miał inną wersję i w jakiś sposób uszkodził bazę zainstalowanych pakietów;
  • Następujący po nim rpm --rebuilddb bezpowrotnie wyczyścił bazę pakietów maszyny;
  • W międzyczasie miał miejsce upgrade pakietów rpm i poldek w zewnętrznym systemie;

Postanowiliśmy zatem przeinstalować maszynę od nowa, rekonstruując na podstawie działających usług listę niezbędnych pakietów.

Nosem w dół

Dość szybko okazało się, że nie będzie tak łatwo:

ncontext: vc_net_create(): Invalid argument

Tak właśnie kończyło się każde wywołanie narzędzi vrpm i vpoldek. Winnym okazało się wywołanie chbind, a poprawka wygląda tak:

--- /usr/lib/util-vserver/functions~    2007-09-05 16:09:16.967334575 +0200
+++ /usr/lib/util-vserver/functions     2007-09-05 16:10:29.456275993 +0200
@@ -1171,5 +1171,5 @@
     export RPM_FAKE_CHROOT RPM_FAKE_CTX RPM_FAKE_CAP RPM_FAKE_FLAGS

     LD_PRELOAD=$_RPM_FAKE_SO${LD_PRELOAD:+:$LD_PRELOAD} \
-       exec $_CHBIND "${CHBIND_OPTS[@]}” “$@”
+       exec $_CHBIND –nid $RPM_FAKE_CTX “${CHBIND_OPTS[@]}” “$@”
 }

Dość szybko okazało się, że radość jest przedwczesna. O ile vrpm i vpoldek zaczęły działać, to żadne z nich nie potrafiło nic zmienić. Odpytywanie bazy nie przysparzało żadnych trudności, próba instalacji lub usunięcia pakietu kończyły się kolejnym radosnym komunikatem:

error: cannot open Basenames index using db3 - No such file or directory (2)

Winny

Okazało się, że winny jest rpm-4.4.9 w połączeniu z db4.6. Nie miałem okazji sprawdzić, co dokładnie powoduje nieprawidłowe działanie, dość było upewnić się, że działa wersja rpm-4.4.9-1, zbudowana z pakietem db4.5-devel.

Problemem jest fakt, że db4.6 automatycznie konwertuje każdą otwartą bazę do swojego formatu, co oznacza, że po wykonaniu downgrade pakietu rpm zostaniemy z bezużytecznym narzędziem.

Rozwiązanie

Jeff, autor rpm pomógł mi cofnąć upgrade:

  1. Instalujemy pakiet db4.6-utils, kopiujemy z niego program db_dump;
  2. Odinstalowujemy db4.6-utils, zachowując sam db4.6;
  3. Instalujemy pakiet db4.5-utils;
  4. Cofamy wersję rpm i instalujemy pakiet poldek zbudowany dla tej wersji rpm;
  5. Wykonujemy:
    cd /var/lib/rpm
    rm __db*
    mv Packages{,.old}
    db_dump_4.6 Packages.old > Packages.dump
    db_load Packages < Packages.dump
    rpm --rebuilddb
  6. Powyższą czynność powtarzamy dla wszystkich katalogów /vservers/.pkg/*/rpm/state, które zdążyły się zaktualizować do nowej wersji, odpowiednio modyfikując pierwszą linię i do ostatniej dopisując --dbpath <sciezka_do_katalogu_state>

Kolejny problem

Ostatnim krokiem było przekonanie narzędzia vpoldek, że instalowane pakiety są dla właściwej architektury. Tutaj rozwiązaniem było dopisanie do każdego pliku /vservers/.pkg/*/rpm/etc/macros linijki:

%_host_os %_os

Voila, wszystko działa, maszyna została przebudowana. Następnym razem postaram się pozbyć irytujących komunikatów LD_PRELOAD.