Skupię się na pytaniu nr 2 -
Powiedziałeś „Próbowałem wczoraj z jhbuildem i tylko niektóre moduły zostały zbudowane, ale gnome-shell i gtk3 nie zostały uwzględnione w tych, które zbudowały”, a następnie zapytałeś
„Czy można naprawić skrypt instalacyjny jhbuild gnome-shell, aby umożliwić czystą kompilację?”
Tak myślałbym. Po pierwsze, http://live.gnome.org/JhbuildDependencies/Ubuntu informuje, jakie pakiety Ubuntu należy zainstalować - skorzystaj z instalacji Lucid, pamiętając o komentarzach z sekcji Maverick.
Zatem - jaki jest zestaw modułów w .jhbuildrc? Domyślnie jest to gnome-3.0, więc założę, że tak. Plik rc wskazuje zestaw modułów, którego będziesz używać.
Zwykle ludzie wykonujący pełną kompilację „jhbuild” pomijają niektóre pakiety i umieszczają to pomijanie w pliku .jhbuildrc. Możesz przeczytać gdzie indziej, ale budowanie mozilli w środowisku tylko w celu przetestowania gnome jest czymś, co większość ludzi pomija.
Właściwie, jeśli masz problemy, sugerowałbym, aby w ogóle nie robić „kompilacji jhbuild” bez argumentów. „jhbuild build” bez argumentów buduje wszystko w twoim zestawie modułów, co zakładam, że to gnome-3.0 (spójrz do .jhbuildrc, aby zobaczyć). Lepiej zrobić „jhbuild build gnome-shell”, który buduje tylko gnome-shell i jego zależności (uważam, że gnome-shell ma obecnie łącznie 36 zależności w jhbuild - obejmuje to nie tylko zależności, ale i zależności zależności i tak dalej). Po zbudowaniu możesz wykonać „jhbuild run gnome-shell”, aby uruchomić gnome-shell przy użyciu bibliotek, które zbudowałeś.
Powinienem zauważyć, że jeśli robisz jhbuild z najnowszego kodu, może to być trudne żeglowanie, chociaż nadal jest to najłatwiejszy sposób, jeśli nie ma PPA dla Ubuntu, który lubisz. Właśnie zrobiłem świeży jhbuild. gtk + przerwał niektóre rozmowy, więc przejrzałem git, zobaczyłem, że zostało to zmienione w przeddzień instalacji git, więc zresetowałem ten katalog do jednego z 24 godzin wcześniej. Potem pracowałem. Ponadto pakiet, który chciałem zbudować, nie zostałby skompilowany. Przeszukałem stronę Bugzilli w poszukiwaniu łatek, które aktualizowały niektóre połączenia, które były przestarzałe dawno temu i ostatnio usunięte przez zależność gtk +. Zastosowałem je, a następnie zbudowałem moją zależną od GTK + 3. Więc to nie było automagiczne, musiałem naprawić dwie zepsute wersje. Ale w końcu zbudował.