LINUX.ORG.RU

Запуск древних иксовых бинарников


0

0

Насколько реально под современным линуксом запустить бинарную коммерческую программу под XFree86, собранную в 2000 году? Все библиотеки, вроде, находит, но ругается на отсутствие системного шрифта. Куда копать?

★★★★★
Ответ на: комментарий от gaa

> Секция Files в xorg.conf

FontPath "/usr/share/fonts/corefonts/"
FontPath "/usr/share/fonts/cyrillic"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/Type1"
FontPath "/usr/share/fonts/100dpi"
FontPath "/usr/share/fonts/75dpi"
FontPath "/usr/local/share/fonts"

Во всех директориях что-то есть (как минимум, файл fonts.alias). Как узнать, какой шрифт программа считает "системным"?

question4 ★★★★★
() автор топика
Ответ на: комментарий от gaa

> fixed

С минуту думал, к чему это :)

> Имелся в виду шрифт "fixed"


Спасибо. Fontconfig говорит, что такие шрифты существуют:

$ fc-list fixed
Fixed:style=Bold
Fixed:style=Bold SemiCondensed
Fixed:style=SemiCondensed
Fixed:style=Oblique SemiCondensed
Fixed:style=Oblique
Fixed:style=ko
Fixed:style=ja
Fixed:style=Regular

$ fc-match Fixed:style=Regular
7x13.pcf.gz: "Fixed" "Regular"

$ find /usr/share/fonts/ -iname 7x13.pcf.gz
/usr/share/fonts/misc/7x13.pcf.gz

Другие программы, например gucharmap, шрифт "Fixed" видят.

Или Fontconfig действует только на программы, которые о нём знают?

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

> Или Fontconfig действует только на программы, которые о нём знают?

На те программы, которые используют xft.

user@host:/usr/share/fonts/X11/misc$ cat fonts.alias | grep ^.fixed
!fixed -rfx-fixed-medium-r-semicondensed--13-120-75-75-c-60-microsoft-cp1251
!fixed -rfx-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r
!fixed -rfx-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-u
!fixed -rfx-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
!fixed -cronyx-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-5

Для того, чтобы программы его видели, должна быть хоть одна раскомментированная строчка.

Или можно попробовать echo "*font: -any-font-that-you-want-" | xrdb -merge, а шрифт выбрать через xfontsel -print.

gaa ★★
()
Ответ на: комментарий от gaa

> user@host:/usr/share/fonts/X11/misc$ cat fonts.alias | grep ^.fixed

$ grep ^.fixed /usr/share/fonts/*/fonts.alias

не даёт ничего, зато

$ grep ^fixed /usr/share/fonts/*/fonts.alias
/usr/share/fonts/cyrillic/fonts.alias:fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r
/usr/share/fonts/misc/fonts.alias:fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1

То есть шрифты есть, но программа их не видит. Или ищет не их.

Немного копнув, выяснил, что программа использует библиотеку TWIN — аналог winelib, разрабатывавшийся при участии Новела в 1990-х.

question4 ★★★★★
() автор топика
Ответ на: комментарий от ovegio

> xlsfonts, xfontsel, xset.

$ xlsfonts | grep -i system
$ xlsfonts | grep -i fixed
-misc-fixed-bold-r-normal--0-0-100-100-c-0-iso10646-1
-misc-fixed-bold-r-normal--0-0-100-100-c-0-iso8859-1
...[480 строк]
-sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0
fixed

$ xfontsel
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Правда, показывает окно и даёт там что-то выбирать.

$ xset fc s
server does not have extension for fc option

Всё это очень интересно, но как указать программе, какой шрифт использовать в качестве системного?

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

> Всё это очень интересно, но как указать программе, какой шрифт использовать в качестве системного?

Если считать системным "system", то надо вписать на него алиас (скопипасть с fixed).

gaa ★★
()
Ответ на: комментарий от gaa

> Если считать системным "system", то надо вписать на него алиас (скопипасть с fixed).

Не помогло.

question4 ★★★★★
() автор топика

а можно на pastebin ругань от и до увидеть без купюр? вариантов-то многовастенько. и если прога старая, то есть подозрения на отсутствие растровых шрифтов...

sda00 ★★★
()
Ответ на: комментарий от question4

>> Всего одна строка.
не, так не бывает. где-то должен быть лог с указанием на конкретную причину. возьми там gdb что-ли и прям посмотри где валится

sda00 ★★★
()
Ответ на: комментарий от sda00

> не, так не бывает. где-то должен быть лог с указанием на конкретную причину. возьми там gdb что-ли и прям посмотри где валится

Как пользоваться gdb? Можно ссылку на какое-нибудь руководство для чайников? У меня получается следующее:

$ gdb ./exile3-binary
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu"...
(no debugging symbols found)
(gdb) run
Starting program: /home/oleg/exile3/exile3-binary
(no debugging symbols found)
... [то же 16 раз]
FatalAppExit: Fatal Error: No system font

Program exited normally.
(gdb)

В /var/log/messages и /var/log/Xorg.0.log тоже ничего интересного.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

извините, а шрифты MS Web Core и иже с ними (Times New Roman, Comic Sans и т.п.) на той машине, где запускаете бинарь, стоят? :)

sda00 ★★★
()
Ответ на: комментарий от sda00

> шрифты MS Web Core и иже с ними (Times New Roman, Comic Sans и т.п.) на той машине, где запускаете бинарь, стоят?

Да. Ставил через ебилд media-fonts/corefonts, в директорию /usr/share/fonts/corefonts/. Вопрос в том, как узнать, видит ли их эта программа. gucharmap видит.

question4 ★★★★★
() автор топика
Ответ на: комментарий от sda00

> посмотри в xorg.conf чтобы были прописаны пути к шрифтам

> FontPath "/usr/share/fonts/corefonts/"

Прописан. Выше я уже писал об этом.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

последняя идея. есть некая попытка взять вот это:

"-*-*-*-*-*--*-*-75-75-*-*-*-*"

и очевидно, что это маразм. попробуй прописать альяс на эту строку чем-нить глобальным типа DejaVu Sans

sda00 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.