Jak ustalić, jakiej czcionki potrzebuje aplikacja X.

1

Próbuję uruchomić aplikację na serwerze X i otrzymuję następujący komunikat:

X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  45 (X_OpenFont)
  Serial number of failed request:  6
  Current serial number in output stream:  9

O ile rozumiem ze wszystkiego, co przeczytałem, oznacza to, że komputer, na którym próbuję wyświetlić, nie ma czcionki. Problem w tym, że nie wiem, jakiej czcionki brakuje. Powyższy komunikat jest jedynym wyświetlanym komunikatem.

Jak ustalić, jakiej czcionki brakuje?

Zagryźć:

Zmieniłem zmienną DISPLAY na localhost: ... i obserwowałem przepływające pakiety za pomocą wireshark. Wygląda na to, że nazwa żądanej czcionki to „*”. Czy jest problem z tym żądaniem? Wydaje mi się, że spowoduje to załadowanie dowolnej czcionki. Czy jest problem z konfiguracją mojej czcionki?

Więcej działań następczych:

Potwierdziłem na działającym komputerze, że żąda również czcionki „*”. Wiem to, ponieważ wychwytuję wywołania XLoadFont za pomocą gdb, a parametr name pojawia się jako „*”.

Co się stanie w tym przypadku? Czy ma to zwracać dosłownie dowolną czcionkę?

CrazyCasta
źródło
Naprawdę istotne pytanie! W standardowej sytuacji narzędzie powinno poprawnie zadeklarować swoje zależności czcionek w opisie pakietu specyficznym dla dystrybucji GNU / Linux. Aby rozwiązać taki problem, większość użytkowników wydaje się stosować pętlę instalacyjną pakietu zgadywania i wypróbowania, dopóki narzędzie nie będzie już narzekać ...
Yves Martin
Mówisz mi, że nie ma narzędzia do sprawdzania, jakich czcionek używa aplikacja? Mam system, na którym on działa, więc gdyby istniał jakiś sposób, aby dowiedzieć się, jakich czcionek używa, to by mi pasowało.
CrazyCasta
Możesz więc zainstalować wszystkie paczki czcionek z działającego systemu. Lub możesz użyć „ltrace”, aby poradzić sobie z wywołaniami libX11 i prawdopodobnie znaleźć nazwę czcionki przekazaną do metody „X_OpenFont” ...
Yves Martin
@YvesMartin Czy możesz skomentować, co się stanie, nie prosząc o czcionkę „*”?
CrazyCasta
Jeśli inne aplikacje działają poprawnie, myślę, że twoje czcionki są OK. Co to jest xlsfontswynik? Czy można wiedzieć, która aplikacja ma problemy w systemie?
Yves Martin

Odpowiedzi:

1

Zgodnie z dokumentacją XLoadFont zapytanie z '*'powinno zwrócić dowolne dopasowanie Font.

ltracezrzuca wywołania do bibliotek do stderr. Jeśli porównasz ltracewyniki pod kątem poprawnego i nieudanego wykonania, powinieneś zgadnąć, jaka czcionka została użyta z działającego systemu.

Opcją jest także porównanie wyników xlsfontsi fc-listpoleceń. W razie wątpliwości wywołanie fc-cache -fvmoże pomóc, jeśli pamięć podręczna została uszkodzona.

Yves Martin
źródło
Ups, zapomniałem o tym tutaj wspomnieć. Problem polegał na tym, że w plikach font.alias w Gentoo napisano „komentarz” na początku, który brzmi „! $ Xorg: fonts.alias, v 1.3 2000/08/21 16:42:31 coskrey Exp $”. Albo to nie jest poprawny komentarz (jak sądzę), albo nie jest traktowany jako komentarz. Rozumiem tę linię i wszystko działa. Dzięki za pomoc, twoja sztuczka z ltrace skłoniła mnie do myślenia o gdb, i tak właśnie się domyśliłem, że to „*”.
CrazyCasta
Więc w twoim przypadku, myślę xlsfontsi fc-listnie doszłoby do skutku z odpowiednim komunikatem o błędzie, prawda? Jeśli tak, myślę, że możesz zaakceptować moją odpowiedź jako właściwy sposób zdiagnozowania zgłoszonego problemu
Yves Martin
Nie, xlsfontsnie istnieje na moim komputerze i fc-listwydaje się, że nie pokazuje żadnego błędu, o ile mogę powiedzieć. Po prostu drukuje ton „nazw plików: informacje”.
CrazyCasta