Meta Trader под Linux - удачный опыт

 
Использовалась система ASPLinux 11 Deluxe.
wine-0.9.5-2.110asp.i386.rpm - родная rpm и никаких дополнительных конфигурационных донастроек. От M$ только mfc42.dll.

Результаты:
1) Все иконки наконец-то отображаются нормально (УРА!!!).
2) Отображается содержимое регистрационного письма: при первом запуске wine говорит, что нужно установить Mozilla ActiveX Control v1.7.12, потом устанавливает его и в дальнейшем нормально работает. Внимание! При обновлении до wine-0.9.12-1.110asp.i386.rpm Mozilla ActiveX Control выдает ошибку и окно появляется пустым. Так что пока не рекомендую.
3) В Meta Editor какая-то проблема с высотой букв в шрифте Courier. Помогает смена шрифта на Lucida Sans Typewriter.
4) Проблема с отображением файлов справки. Не зафиксировал на радостях состояние системы, но изначально справка отображалась, хотя и с шрифтовыми глюками. Это удалось обойти установкой дополнительных шрифтов. Потом было установлено/удалено несколько пакетов и файлы справки перестали вообще запускаться. Короче говоря, точно видел, что запускается, но что на это влияет - не понял. Ошибки дебагера:
err:ole:CoGetClassObject class {4955dd33-b159-11d0-8fcf-00aa006bcc59} not registered
err:ole:CoGetClassObject no class object {4955dd33-b159-11d0-8fcf-00aa006bcc59} could be created for for context 0x1
fixme:ole:CoCreateInstance no classfactory created for CLSID {4955dd33-b159-11d0-8fcf-00aa006bcc59}, hres is 0x80040154
fixme:htmlhelp:HtmlHelpW Not all HH cases handled correctly



5) Печать на сетевой принтер под управлением WindowsXP прошла нормально. Только наклон страницы нужно указывать непосредственно в свойствах принтера, а не в настройках печати MT.

список установленных у меня пакетов можно загрузить по ссылке ниже (9 кб). Разумеется, это не "необходимый и достаточный" набор. Чего-то может не хватать, что-то может мешать, а остальное вообще не про эту тему (я на этой машине еще и другими делами занимаюсь :) ). Но если кто-то попробует повторить, то может быть будет легче составить именно тот "необходимый и достаточный" список...
Установленные пакеты: http://www.teletrade-sam.ru/temp/yum-list-installed.zip

Скриншот: http://www.teletrade-sam.ru/temp/wine-tt.png

 
Отличный опыт!

Как смотрите на предложение написать статью для "MQL4: automated forex trading" о пошаговом запуске MT4 под Линуксом? За статью заплатим.
 
Да я бы с радостью превеликой, честное слово - мне эта тема черезвычайно интересна, причем именно в практической плоскости. Но у меня только на одной машине пока тестирование проводилось, да и то - результат не до конца осознан. А пока вопрос с отображением справки не решу - на остальные машины ставить не хочется. Разве что второй операционкой в то время, когда клиентов не сидит за ней. Отдельные вопросы - как оно на других дистрибутивах будет, на разных оконных менеджерах и на более ранних/поздних версиях wine... Короче, время нужно...
Впрочем, надеюсь до конца месяца все эти вопросы утрясти и постараюсь написать. Да и статью, насколько я понимаю, можно уточнять по ходу пьесы?
Кстати, обзавелся ноутбуком на днях - буду ставить на него Линукс. Заодно и МТ поковыряю и последовательность действий запишу. А там, глядишь и до статьи рукой подать...

Отдельная просьба всем, кто компетентен в следующем вопросе: нужно сформулировать, как обойтись покупкой одной лицензии на windows и легально использовать библиотеку mfc42.dll из её дистрибутива на нескольких машинах в локальной сети (например, шарить по сетке резервную копию дистрибутива). Возможно ли это вообще?


И еще вариант: я не сугубый профессионал в этом вопрос, но на winehq.org вычитал такую информацию (тоже в статью пойдет :) ):
http://www.winehq.org/site/docs/wine-faq/index#WILL-MFC-WORK-WITH-WINE-WHAT-DO-I-NEED-TO-DO
----------------------------------------------------------------

9.2. Will MFC work with Wine? What do I need to do?

Wine is not implementing an MFC replacement nor does it intend to. However it is possible (with a lot of work) to compile the MFC from source and thus produce an mfc42.dll.so library.

Please refer to the Winelib User's Guide for how to do this.
------------------
Что означает приблизительно следующее:
В: Будет ли MFC работать с wine? Что мне надо сделать для этого?
О: Замена MFC в wine не реализована и даже не планируется. Однако возможно (со значительными усилиями) скомпилировать MFC из исходных кодов и получить на выходе библиотеку mfc42.dll.so

см. ссылку http://www.winehq.org/site/docs/winelib-guide/index
-----------------------------------------------------------------------
Собственно эта вторая ссылка ведет нас на руководство для девелоперов WineLib User Guide, где в главе 4.1 коротко сказано, что реализовывать функции из mfc42.dll под wine - дело неблагодарное ввиду ряда объективных причин. Типа, и сами не делаем и вам не советуем - погрязнете и всё равно ничего хорошего не получите... Но выход есть и он описан в главе 4.2:

-----------------------------
First you must legally get MFC source code on your computer. The MFC source code comes as a part of Visual Studio. The license for Visual Studio implies it is a single product that cannot be broken up into its components. So the cleanest way to get MFC on your system is to buy Visual Studio and install it on a dual boot Linux box.

Then you must check that you are allowed to recompile MFC on a non-Microsoft operating system! This varies with the version of MFC. The MFC license from Visual Studio 6.0 reads in part:

1.1 General License Grant. Microsoft grants to you as an individual, a personal, nonexclusive license to make and use copies of the SOFTWARE PRODUCT for the sole purposes of designing, developing, and testing your software product(s) that are designed to operate in conjunction with any Microsoft operating system product. [Other unrelated stuff deleted.]

So it appears you cannot even compile MFC for Winelib using this license. Fortunately the Visual Studio 6.0 service pack 3 license reads (the Visual Studio 5.0 license is similar):

1.1 General License Grant. Microsoft grants to you as an individual, a personal, nonexclusive license to make and use copies of the SOFTWARE PRODUCT for the purpose of designing, developing, and testing your software product(s). [Other unrelated stuff deleted]

So under this license it appears you can compile MFC for Winelib.

Finally you must check whether you have the right to distribute an MFC library. Check the relevant section of the license on "redistributables and your redistribution rights". The license seems to specify that you only have the right to distribute binaries of the MFC library if it has no debug information and if you distribute it with an application that provides significant added functionality to the MFC library.

-------------
Опять же коротко:
Нужно купить Visual Studio, причем не какую попало, а ту, у которой в лицензии написано, что на ней можно компилировать и делать копии откомпилированного для собственных нужд. По их сведениям подходит версия 5.0 и версия 6.0 SP3. А версия 6.0 не подходит. Также в этой лицензии нужно обязательно почитать касательно распространения исходников и полученных бинарников. Типа, скорее всего бинарники распространять можно (если они не содержат отладочной информации и если вы распространяете их вместе с существенными добавлениями, ощутимо увеличивающими функциональность), а исходники нельзя.

-----------------------------
В главе 4.3 дается несколько подсказок, для того, кто будет енто дело компилировать.


... С ходу найти в инете скомпилированный файл mfc42.dll.so у меня не получилось...

Т.е. эту сторону вопроса можно поставить так:
а) найдется ли грамотный юрист, который сможет обосновать, каким образом легально использовать родную библиотеку mfc42.dll (возможно еще несколько файлов) на нескольких машинах, купив только одну лицензию.
б) найдется ли безумный храбрец, который: 1) уже имеет или купит лицензионный пакет Visual Studio нужной версии; 2) Добавит в библиотеку mfc42.dll "существенной функциональности" и откомпилирует ее под Линуксом; 3) Выложит сие творение на радость людям :)
в) Может всё гораздо проще и кто-то уже откомпилил заюзаную уже в этой статье mfc42.dll.so. Други!!! Киньте ссылку :))
г) Есть еще один вариант, но это скорее для галочки - если MT не сильно зависит от mfc42.dll, то переписать его [терминал] таким образом, чтобы надобность в этой библиотечке отпала...


Рассуждая практически, не думаю, что проверяющие органы будут настолько дотошны, чтобы искать одну библиотечку на линуксовых машинах и уж тем более проверять легальность получения именно mfc42.dll.so, но тем не менее, если закрыть и этот вопрос, то будет просто шоколадно...

Вот такие рассуждения вслух...
Причина обращения: