Bug 4

Summary: 1Cv77: Не отображаются значки в окне Тестирования и восстановления (Нет необходимых символов в шрифте wingdings)
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: ШрифтыAssignee: Dmitry Timoshkov <dtimoshkov>
Status: CLOSED FIXED QA Contact: Konstantin Artyushkin <akv>
Severity: normal    
Priority: P2 CC: kondratyuk
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Linux   
URL: http://bugs.winehq.org/show_bug.cgi?id=7040
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 22    
Bug Blocks: 620, 1152, 3000    
Attachments: Квадратики
Сравнение wine и windows
terrible fonts

Description Vitaly Lipatov 2005-07-12 19:00:28 MSD
Не те некоторые шрифты на кнопках (галочки в тестировании и исправлении): что  
за шрифт используются? Пробовал Symbol, но вроде не он 
В календаре знак v посередине не показывается.
Comment 1 Vitaly Lipatov 2005-07-18 12:43:11 MSD
Принято. 
Comment 2 Vitaly Lipatov 2006-03-01 15:58:44 MSK
Галочка в окне новостей формируется из шрифта wingding (пока нет в WINE). 
Какими символами - пока не ясно. 
Символы в "Тестировании и исправлении" - не ясно чем. 
Знак v посередине в калькуляторе - нормально. 
Comment 3 Vitaly Lipatov 2006-03-06 22:17:11 MSK
шспользуются 0xA8, 0xFE из wingdings. 
 
Comment 4 Vitaly Lipatov 2006-03-12 14:09:19 MSK
Для галочки и часов в Тестировании и шсправлении используется 0xFC, 0xB9 из  
windings.  
Comment 5 Vitaly Lipatov 2006-03-17 21:46:31 MSK
Сейчас вместо них показывается Ь и ё  
Comment 6 Vitaly Lipatov 2006-04-22 21:47:40 MSD
Всё равно не показывает. Для релиза не принципиально. 
Возможно это связано с #22 
Comment 7 Vitaly Lipatov 2007-01-24 23:03:05 MSK
Скорее всего связано с неверной перекодировкой символов для шрифта Symbol.
Ссылка по теме: http://my.noteworthysoftware.com/?topic=5837

Для 1С этот патч не помог (я его приложил к сборке), но точно ясно что символ (в рекламной окне 1С) берётся из Symbol 
Comment 8 Vitaly Lipatov 2007-01-24 23:04:24 MSK
На галочки в тестировании и исправлении не влияет
Comment 9 Vitaly Lipatov 2008-02-26 22:51:01 MSK
В репозитории wine-etersoft-devel в каталоге fonts/wingdings
лежит два файла, один из них тот, который надо развивать: Wingdings-Regular.sfd
Надо придумать способ проверки того, что идём верным путём - возможно
устанавливать в блокноте этот шрифт и проверять как выглядит?

Костя, с тебя - определить порядок работ, попробовать что получается, и передать Саше дальшейшую разработку.
Можно в первую очередь нарисовать то, что подойдёт для Метатрейдера.
Comment 10 Константин Кондратюк 2008-02-28 10:17:11 MSK
Подготовил "пустые" символы шрифта, которые содержат описания, идентичные оригинальному win-шрифту. Осталось "всего лишь" нарисовать символы взамен пустышек.
Comment 11 Константин Кондратюк 2008-03-17 12:03:13 MSK
Первоначальная реализация шрифта есть в сборке, но нужно ещё дошлифовать для отправки в wine-patches.
Comment 12 Константин Кондратюк 2008-03-20 14:04:35 MSK
Переделываем, всё плохо...
Comment 13 Vitaly Lipatov 2008-07-15 21:46:58 MSD
Предлагаю в самое ближайшее время начать отправку в wine.
Comment 14 Константин Кондратюк 2008-11-14 23:27:26 MSK
Отсутствие дизайнера блокирует решение данной баги.
Comment 15 Vitaly Lipatov 2009-03-03 18:54:11 MSK
Нас  этим шрифтом ждут уже третий год:
http://wiki.winehq.org/CreateFonts
Comment 16 Vitaly Lipatov 2012-01-18 03:09:35 MSK
Откладываем, bugs@ в ближайшее время делать ничего не будет.
Comment 17 Vitaly Lipatov 2018-06-08 12:45:51 MSK
Нужно проверить в 1С 7.7 символы в календаре и в диалоге Тестирование и исправление. Возможно, багу можно закрыть.
Comment 18 Konstantin Artyushkin 2018-06-18 18:15:24 MSK
(Ответ Vitaly Lipatov на комментарий #17)
> Нужно проверить в 1С 7.7 символы в календаре и в диалоге Тестирование и
> исправление. Возможно, багу можно закрыть.

В календаре отображается всё. В Тестировании и исправлении галки тоже присутствуют.

Нашёл странный артефакт, которого нет в windos - справа после каждой надписи синий квадрат. Приложу скриншот. 

Насчёт шрифтов всё хорошо, можно закрывать.
Comment 19 Konstantin Artyushkin 2018-06-18 18:15:48 MSK
Created attachment 3711 [details]
Квадратики
Comment 20 Konstantin Artyushkin 2018-06-18 18:18:35 MSK
Забыл указать версию wine в которой проверял:
 
wine-etersoft-2.1.4-alt31.M80P.32.i586
wine-etersoft-sql-2.1.4-alt7.i586
wine-etersoft-gl-2.1.4-alt31.M80P.32.i586
Comment 21 Vitaly Lipatov 2018-06-20 14:51:13 MSK
Видимо, надо добавить скриншот из Windows, до и после нажатия кнопки «Выполнить» с расставленными слева галочками.
Comment 22 Konstantin Artyushkin 2018-06-20 14:58:32 MSK
Оказалось что речь идёт как раз о символах, которые расположены справа от текста.
Данные символы в windows появляются после нажатия кнопки "Выполнить" и они отображают процесс выполнения.

Как найти окно "Тестирование и исправление":
1) Запуск 1С77 в режиме конфигуратора
2) Далее из меню Администрирование "Тестирование и исправление ИБ"

Первое отличие : в windows нет никаких символов справа от каждого действия, в wine пустой синий квадрат.
В windows используют 2 символа: часы - в процессе выполнения действия, галочка - действие выполнено. В wine отображаются только синие и красные квадратики.

Для наглядности приложу скриншот сравнение wine и windows.
Comment 23 Konstantin Artyushkin 2018-06-20 14:58:57 MSK
Created attachment 3712 [details]
Сравнение wine и windows
Comment 24 Konstantin Artyushkin 2018-06-20 18:53:05 MSK
Бутылка swine 2.1 bugs/4

server:/net/wine/eter-2.1/bottles/bugs/wine-4.tar.gz 127M
md5sum 53bc33d3c733e20f4501646241d0fe22 

Воспроизведение через скомпилированный autoit скрипт:
wine "C:\Program Files\CheckAndFix.ua3.exe"
Comment 25 Vitaly Lipatov 2018-06-20 19:25:52 MSK
Дмитрий, посмотрите, пожалуйста. В наши дни это должна быть совсем простая проблема.
Comment 26 Dmitry Timoshkov 2018-06-21 11:59:14 MSK
(In reply to Konstantin Artyushkin from comment #22)
> Оказалось что речь идёт как раз о символах, которые расположены справа от
> текста.
> Данные символы в windows появляются после нажатия кнопки "Выполнить" и они
> отображают процесс выполнения.
> 
> Как найти окно "Тестирование и исправление":
> 1) Запуск 1С77 в режиме конфигуратора
> 2) Далее из меню Администрирование "Тестирование и исправление ИБ"
> 
> Первое отличие : в windows нет никаких символов справа от каждого действия,
> в wine пустой синий квадрат.
> В windows используют 2 символа: часы - в процессе выполнения действия,
> галочка - действие выполнено. В wine отображаются только синие и красные
> квадратики.
> 
> Для наглядности приложу скриншот сравнение wine и windows.

Галочка в вайновском wingding.sfd присутствует, однако там нет часов как на
скриншоте. В OpenSymbol часов тоже нет, поэтому для тестирования скопировал
символ в виде солнца (для наглядности) и сгенерировал новый wingding.ttf.
Однако тестирование показало, что по прежнему вместо галочки и часов 1С
в диалоге проверок рисует синие и красные квадратики.

Для дальнейшего исследования скопировал wingding.ttf из Windows в
c:\windows\fonts в префиксе с 1С и повторил проверку - и снова 1С рисует
только квадратики. Повторил операцию копирования так же для marlett.ttf
и symbol.ttf - и по-прежнему 1С упорно рисует только квадратики.

Далее я сгенерировал +font лог для исследования. В логе нашел следующую
интересную последовательность вызовов:
hfont = CreateFont("Wingdings", -16);
SelectObject(hdc, hfont);
ExtTextOut(hdc, 0x0451, 1);
Напишу программу для проверки, как это работает. Дело в том, что для шрифтов
в кодировке SYMBOL коды глифов располагаются в диапазоне 0xf000 - 0xf0ff, и
что происходит при указании 0x451 неясно.

В связи с результатами исследования пока можно сказать следующее:
1. Новая проблема никакого отношения к шрифту Wingdings не имеет.
2. Эту задачу нужно закрыть и открыть новую.
3. На будущее - необходимо проверять теории об источнике возможных проблем,
чтобы избежать потери времени.

Заметка себе: Гусарам на слово верить не нужно :)
Comment 27 Dmitry Timoshkov 2018-06-21 14:43:24 MSK
(In reply to Dmitry Timoshkov from comment #26)
> Далее я сгенерировал +font лог для исследования. В логе нашел следующую
> интересную последовательность вызовов:
> hfont = CreateFont("Wingdings", -16);
> SelectObject(hdc, hfont);
> ExtTextOut(hdc, 0x0451, 1);
> Напишу программу для проверки, как это работает. Дело в том, что для шрифтов
> в кодировке SYMBOL коды глифов располагаются в диапазоне 0xf000 - 0xf0ff, и
> что происходит при указании 0x451 неясно.

Написал тестовую программу, которая создает шрифт "Wingdings" с lpCharSet
SYMBOL_CHARSET и рисует в окне строку, сосотящую из одного юникодного символа
0x451. Под Windows моя программа выводит в окно символ часов, под Wine -
квадратик.
Comment 28 Vitaly Lipatov 2018-06-21 15:09:28 MSK
(Ответ Dmitry Timoshkov на комментарий #27)
> (In reply to Dmitry Timoshkov from comment #26)
> > Далее я сгенерировал +font лог для исследования. В логе нашел следующую
> > интересную последовательность вызовов:
> > hfont = CreateFont("Wingdings", -16);
> > SelectObject(hdc, hfont);
> > ExtTextOut(hdc, 0x0451, 1);
> > Напишу программу для проверки, как это работает. Дело в том, что для шрифтов
> > в кодировке SYMBOL коды глифов располагаются в диапазоне 0xf000 - 0xf0ff, и
> > что происходит при указании 0x451 неясно.
> 
> Написал тестовую программу, которая создает шрифт "Wingdings" с lpCharSet
> SYMBOL_CHARSET и рисует в окне строку, сосотящую из одного юникодного символа
> 0x451. Под Windows моя программа выводит в окно символ часов, под Wine -
> квадратик.

Очень круто!
Видимо, там есть какая-то никому не известная хитрость с кодами символов?
Задачу закрывать не будем, но я её переименую. 
Мне кажется, это будет очень почётно, исправить багу №4 :)
Comment 29 Dmitry Timoshkov 2018-06-21 16:01:06 MSK
(In reply to Vitaly Lipatov from comment #28)
> > > Далее я сгенерировал +font лог для исследования. В логе нашел следующую
> > > интересную последовательность вызовов:
> > > hfont = CreateFont("Wingdings", -16);
> > > SelectObject(hdc, hfont);
> > > ExtTextOut(hdc, 0x0451, 1);
> > > Напишу программу для проверки, как это работает. Дело в том, что для шрифтов
> > > в кодировке SYMBOL коды глифов располагаются в диапазоне 0xf000 - 0xf0ff, и
> > > что происходит при указании 0x451 неясно.
> > 
> > Написал тестовую программу, которая создает шрифт "Wingdings" с lpCharSet
> > SYMBOL_CHARSET и рисует в окне строку, сосотящую из одного юникодного символа
> > 0x451. Под Windows моя программа выводит в окно символ часов, под Wine -
> > квадратик.
> 
> Очень круто!
> Видимо, там есть какая-то никому не известная хитрость с кодами символов?

Да, видимо что-то подобное. Я сейчас попробовал хак с WideCharToMultiByte и
0x451 с CP_SYMBOL (кодовая страница для SYMBOL_CHARSET) и вызов завершается
неудачей, однако WideCharToMultiByte(CP_ACP, 0x451) завершается успешно и
возвращает 0xb8. После добавления 0xb8 + 0xf000 freetype возвращает индекс
глифа часов и моя программа рисует часы как в Windows.

Нужно будет попробовать написать тестовую программу.

К слову: 0x451 - это русская буква 'ё'.

> Задачу закрывать не будем, но я её переименую. 
> Мне кажется, это будет очень почётно, исправить багу №4 :)

:))
Comment 30 Vitaly Lipatov 2018-06-21 19:10:26 MSK
(Ответ Dmitry Timoshkov на комментарий #29)
> Да, видимо что-то подобное. Я сейчас попробовал хак с WideCharToMultiByte и
> 0x451 с CP_SYMBOL (кодовая страница для SYMBOL_CHARSET) и вызов завершается
> неудачей, однако WideCharToMultiByte(CP_ACP, 0x451) завершается успешно и
> возвращает 0xb8. После добавления 0xb8 + 0xf000 freetype возвращает индекс
> глифа часов и моя программа рисует часы как в Windows.
> 
> Нужно будет попробовать написать тестовую программу.
> 
> К слову: 0x451 - это русская буква 'ё'.
На всякий случай добавлю, что 1С использует 8-битную кодировку (например, cp1251), в которой, действительно, 0xb8 — это буква «ё». Но о Unicode она понятия не имеет, потому что выпущена до того, как в Windows в 2001 году добавили поддержку Unicode (в Windows 9x — задним числом, с помощью библиотеки unicows.dll)

Никакого смысла перекодировать 0xb8 в Unicode нет, а вот про 0xf000 это интересно. Но это уже хитрости общения с freetype.
Comment 31 Dmitry Timoshkov 2018-06-22 09:48:29 MSK
(In reply to Vitaly Lipatov from comment #30)
> > Да, видимо что-то подобное. Я сейчас попробовал хак с WideCharToMultiByte и
> > 0x451 с CP_SYMBOL (кодовая страница для SYMBOL_CHARSET) и вызов завершается
> > неудачей, однако WideCharToMultiByte(CP_ACP, 0x451) завершается успешно и
> > возвращает 0xb8. После добавления 0xb8 + 0xf000 freetype возвращает индекс
> > глифа часов и моя программа рисует часы как в Windows.
> > 
> > Нужно будет попробовать написать тестовую программу.
> > 
> > К слову: 0x451 - это русская буква 'ё'.
> На всякий случай добавлю, что 1С использует 8-битную кодировку (например,
> cp1251), в которой, действительно, 0xb8 — это буква «ё». Но о Unicode она
> понятия не имеет, потому что выпущена до того, как в Windows в 2001 году
> добавили поддержку Unicode (в Windows 9x — задним числом, с помощью
> библиотеки unicows.dll)

Юникод поддерживается в Windows начиная с самых первых пре-релизов NT 3.1
1991 года, еще до официального выпуска стандандарта Unicode 1.0, именно
этим фактом (выпуск раньше стандарта) объясняется несовместимость кодировки
первых 256 символов между Windows и Unicode, которая ведет к необходимости
патчения автоматически сгенерированных таблиц в Wine для обеспечения работы
некоторых программ (включая 1С). В Windows 95 юникод так же поддерживается,
но только для вывода текста и файловой системы. Информация о unicows и
2001 год не соответствует действительности, но я бы не хотел развивать
эту тему здесь.

> Никакого смысла перекодировать 0xb8 в Unicode нет, а вот про 0xf000 это
> интересно. Но это уже хитрости общения с freetype.

Нумерация глифов в Symbol шрифте TrueType начиная с 0xf000 - это стандарт,
и этот факт не специфичен для freetype.

Что касается перекодировки из Юникода, то это и есть интересный момент, для
которого пришлось делать небольшое исследование.

Есть два способа вывода не юникод текста в Win32 (текста в cp1251 и других):
1. DrawTextA/ExtTextOutA: A версии API используют кодировку текущего шрифта,
выбранного на HDC, для перекодирования переданного текста в юникод и затем
вызывают W версию API.
2. 1С делает примерно следующее:
hfont = CreateFont("Wingdings", SYMBOL_CHARSET);
SendMessageA(hwnd, WM_SETFONT, hfont);
SendMessageA(hwnd, WM_SETTEXT, textA);
Обработчик сообщения WM_SETTEXT использует текущую системную ANSI кодировку
для перекодирования переданного текста в юникод и затем вызывают W версию API.

Сейчас способ #1 работает корректно в Wine так как шрифтовая подсистема
всегда использует юникод для получения индексов глифов от freetype и никаких
трюков не требуется (за исключением поддержки старых Symbol шрифтов, которые
не следовали стандарту нумерации глифов в Symbol шрифте TrueType начиная с 0xf000).

Способ #2 же сейчас не работает, так как фактически юникодный текст был
сконвертирован с использованием неверной кодировки. Именно поэтому и нужна
обратная перекодировка.

Я создал патч, добавляющий поддержку #2 и отправил его для принятия в winehq.
Ждем комментариев от Huw и AJ, возможно они предложат другой способ решения
данной проблемы.
Comment 32 Dmitry Timoshkov 2018-06-22 12:04:09 MSK
(In reply to Dmitry Timoshkov from comment #26)
> Галочка в вайновском wingding.sfd присутствует, однако там нет часов как на
> скриншоте. В OpenSymbol часов тоже нет, поэтому для тестирования скопировал
> символ в виде солнца (для наглядности) и сгенерировал новый wingding.ttf.

Для добавления в вайновский wingding.sfd пришлось поискать шрифт, содержащий
глифы с похожим начертанием и совместимой с LGPL лицензией. Нашел Android
Emoji и скопировал из него 12 глифов с часиками. После перегенерирования
wingding.ttf 1С успешно рисует часики и галочки в диалоге тестирования базы
(патч с перекодировкой так же должен быть приложен).

Отправил патч с новыми глифами Wingdings для принятия в winehq.
Comment 33 Vitaly Lipatov 2018-06-22 12:51:53 MSK
(Ответ Dmitry Timoshkov на комментарий #31)
...
> Юникод поддерживается в Windows начиная с самых первых пре-релизов NT 3.1
> 1991 года, еще до официального выпуска стандандарта Unicode 1.0, именно
Ну я не считаю, что NT это Windows :) Всё же WinAPI не оттуда растёт.

> этим фактом (выпуск раньше стандарта) объясняется несовместимость кодировки
> первых 256 символов между Windows и Unicode, которая ведет к необходимости
> патчения автоматически сгенерированных таблиц в Wine для обеспечения работы
> некоторых программ (включая 1С). В Windows 95 юникод так же поддерживается,
> но только для вывода текста и файловой системы. Информация о unicows и
> 2001 год не соответствует действительности, но я бы не хотел развивать
> эту тему здесь.
Ясно.

...
> Что касается перекодировки из Юникода, то это и есть интересный момент, для
> которого пришлось делать небольшое исследование.
> 
..
> 2. 1С делает примерно следующее:
> hfont = CreateFont("Wingdings", SYMBOL_CHARSET);
> SendMessageA(hwnd, WM_SETFONT, hfont);
> SendMessageA(hwnd, WM_SETTEXT, textA);
> Обработчик сообщения WM_SETTEXT использует текущую системную ANSI кодировку
> для перекодирования переданного текста в юникод и затем вызывают W версию
> API.
...
Да... Надо же, сколько мы там когда-то копались, и так и не разгадали это...
 
> Способ #2 же сейчас не работает, так как фактически юникодный текст был
> сконвертирован с использованием неверной кодировки. Именно поэтому и нужна
> обратная перекодировка.
> 
> Я создал патч, добавляющий поддержку #2 и отправил его для принятия в winehq.
> Ждем комментариев от Huw и AJ, возможно они предложат другой способ решения
> данной проблемы.
Круто!


(Ответ Dmitry Timoshkov на комментарий #32)
> (In reply to Dmitry Timoshkov from comment #26)
> > Галочка в вайновском wingding.sfd присутствует, однако там нет часов как на
> > скриншоте. В OpenSymbol часов тоже нет, поэтому для тестирования скопировал
> > символ в виде солнца (для наглядности) и сгенерировал новый wingding.ttf.
> 
> Для добавления в вайновский wingding.sfd пришлось поискать шрифт, содержащий
> глифы с похожим начертанием и совместимой с LGPL лицензией. Нашел Android
> Emoji и скопировал из него 12 глифов с часиками. После перегенерирования
> wingding.ttf 1С успешно рисует часики и галочки в диалоге тестирования базы
> (патч с перекодировкой так же должен быть приложен).
> 
> Отправил патч с новыми глифами Wingdings для принятия в winehq.

Теперь остались такие вопросы:
1. Вы в обычном Wine запускали 1С ? То есть никаких проблем с его запуском в обычном wine сейчас нет?
2. Нам нужно сделать патч для WINE@Etersoft 2.1 (патч с перекодировкой, и шрифт, видимо, целиком скопировать можно).

Патч для W@E, наверное, имеет смысл делать после принятия в апстрим вашего решения.
Comment 34 Dmitry Timoshkov 2018-06-22 13:05:14 MSK
(In reply to Vitaly Lipatov from comment #33)
> Теперь остались такие вопросы:
> 1. Вы в обычном Wine запускали 1С ? То есть никаких проблем с его запуском в
> обычном wine сейчас нет?

Да 1С прекрасно работает в текущем winehq. Я делаю только 1 манипуляции:
1. удаляю c:\windows\system32\drivers (там .sys драйвера, которые иногда
падали раньше, так как они не нужны - по привычке удаляю).
2. необходимо менять текущую кодовую страницу в 1С Конфигураторе (так как
проблема с галочками и часами не требует запуска 1С, а только Конфигуратора,
то этот шаг можно не делать).

> 2. Нам нужно сделать патч для WINE@Etersoft 2.1 (патч с перекодировкой, и
> шрифт, видимо, целиком скопировать можно).
> 
> Патч для W@E, наверное, имеет смысл делать после принятия в апстрим вашего
> решения.

Да, я планирую портировать исправления в W@E после принятия патчей.

Сейчас AJ написал, что у Android Emoji несовместимая с LGPL лицензия
(я думал, что так как этот шрифт - часть кода Андроид, то и шрифт под
BSD-like лицензией). Видимо нужно будет найти другой шрифт или нарисовать
часы самим.
Comment 35 Dmitry Timoshkov 2018-06-22 13:05:49 MSK
(In reply to Dmitry Timoshkov from comment #34)
> Да 1С прекрасно работает в текущем winehq. Я делаю только 1 манипуляции:

"2" :)
Comment 36 Dmitry Timoshkov 2018-06-25 14:42:20 MSK
(In reply to Dmitry Timoshkov from comment #31)
> Способ #2 же сейчас не работает, так как фактически юникодный текст был
> сконвертирован с использованием неверной кодировки. Именно поэтому и нужна
> обратная перекодировка.
> 
> Я создал патч, добавляющий поддержку #2 и отправил его для принятия в winehq.
> Ждем комментариев от Huw и AJ, возможно они предложат другой способ решения
> данной проблемы.

Патч принят.

(In reply to Dmitry Timoshkov from comment #32)
> Для добавления в вайновский wingding.sfd пришлось поискать шрифт, содержащий
> глифы с похожим начертанием и совместимой с LGPL лицензией. Нашел Android
> Emoji и скопировал из него 12 глифов с часиками. После перегенерирования
> wingding.ttf 1С успешно рисует часики и галочки в диалоге тестирования базы
> (патч с перекодировкой так же должен быть приложен).
> 
> Отправил патч с новыми глифами Wingdings для принятия в winehq.

Так как оказалось, что у Android Emoji несовместимая с LGPL лицензия, то
пришлось искать замену. Меня бы устроили либо набор иконок в векторном
формате, либо шрифт с LGPL совместимой лицензией. Я нашел несколько вариантов
шрифтов, но либо лицензия была сразу "non-free", либо free как у wikimedia,
но не совместимая с LGPL 2.1 (однако совместимая с LGPL 3.0). Гугловские
Noto и Android шрифты используют несовместимую с LGPL лицензию. Набор иконок
Tango к сожалению не содержит максимально простых избражений часов, пригодных
для адаптирования для глифов шрифта. Промучавшись с поисками и поняв, что
скорее всего я ничего не найду, я решил попробовать нарисовать глифы сам,
используя для изображения круг (циферблат), прямоугольники (стрелки часов)
и 4 квадрата (метки для 12, 3, 6 и 9 часовых отметок на циферблате). Так
как я не великий художник да и fontforge временами вызывает бурные эмоции
при невозможности найти простой способ для реализации моих мыслей, то пришлось
помучиться. Затем пришлось еще помучиться с кодировкой и именованием новых
глифов. Однако в результате получились вполне приличные глифы (если не
рассматривать их слишком пристально).

Отправил новый патч для принятия в winehq.
Comment 37 Dmitry Timoshkov 2018-06-26 05:36:12 MSK
(In reply to Dmitry Timoshkov from comment #36)
> Так как оказалось, что у Android Emoji несовместимая с LGPL лицензия, то
> пришлось искать замену. Меня бы устроили либо набор иконок в векторном
> формате, либо шрифт с LGPL совместимой лицензией. Я нашел несколько вариантов
> шрифтов, но либо лицензия была сразу "non-free", либо free как у wikimedia,
> но не совместимая с LGPL 2.1 (однако совместимая с LGPL 3.0). Гугловские
> Noto и Android шрифты используют несовместимую с LGPL лицензию. Набор иконок
> Tango к сожалению не содержит максимально простых избражений часов, пригодных
> для адаптирования для глифов шрифта. Промучавшись с поисками и поняв, что
> скорее всего я ничего не найду, я решил попробовать нарисовать глифы сам,
> используя для изображения круг (циферблат), прямоугольники (стрелки часов)
> и 4 квадрата (метки для 12, 3, 6 и 9 часовых отметок на циферблате). Так
> как я не великий художник да и fontforge временами вызывает бурные эмоции
> при невозможности найти простой способ для реализации моих мыслей, то
> пришлось
> помучиться. Затем пришлось еще помучиться с кодировкой и именованием новых
> глифов. Однако в результате получились вполне приличные глифы (если не
> рассматривать их слишком пристально).
> 
> Отправил новый патч для принятия в winehq.

Патч принят.

Портировал исправление с перекодировкой Symbol шрифтов для eter-2.1 и так же
импортировал wingding.sfd/wingding.ttf с добавленными глифами часов из winehq
в eter-2.1.

Отмечаю эту задачу как решенную. Пожалуйста протестируйте исправления.
Comment 38 Vitaly Lipatov 2018-06-27 21:43:15 MSK
Патч вошёл в сборку
wine-etersoft-2.1.4-alt34.src.rpm
нужно проверить, что символы появились.
Comment 39 Konstantin Artyushkin 2018-06-28 17:27:54 MSK
Created attachment 3714 [details]
terrible fonts
Comment 40 Konstantin Artyushkin 2018-06-28 17:29:32 MSK
(Ответ Vitaly Lipatov на комментарий #38)
> Патч вошёл в сборку
> wine-etersoft-2.1.4-alt34.src.rpm
> нужно проверить, что символы появились.

Часы и галки появились, но также появилась проблема с отображением шрифтов в некоторых классах окон. На скриншоте показаны окна,в которых это сразу заметно.
Comment 41 Dmitry Timoshkov 2018-06-28 17:34:21 MSK
(In reply to Konstantin Artyushkin from comment #40)
> Часы и галки появились, но также появилась проблема с отображением шрифтов в
> некоторых классах окон. На скриншоте показаны окна,в которых это сразу
> заметно.

Константин, можете сделать тест на регрессию и выяснить, какой патч вызывает
такой эффект со шрифтами?
Comment 42 Konstantin Artyushkin 2018-06-28 17:58:56 MSK
Это оказалась параллельная проблема. Она отсутствует в сборке alt32
Comment 43 Konstantin Artyushkin 2018-06-28 17:59:17 MSK
Эту закрываю