Тут, как по заказу приоткрылись исходники Xming, который заделан из общего папы xwin именно таким манером. Значит получить требуемого мутанта не является такой уж сверх-трудоемкой задачей. Было бы терпение. Так или иначе обо всем этом уже писано в "Курощении".
В этой теме мечтается увидеть бурное обсуждение процесса разработки и массу искрометных идей.
Также думаю, что эту тему не погонят из раздела "Бизнес и бухгалтерия под Линукс" по причинам: а) хороший терминальный вин-клиент способствует промышленному применению учетных программ под вайном там, где полный переход на OSS пока невозможен. б) давно тут сидим.
А еще конечно мечтается, что "старший брат"© не оставит без внимания данные потуги и поможет информацией с компетентных высот.
Засим вступительную часть кончаю.
Хорошая новость - его надо собирать под линуксом. Собирал под ALS4 бранч. На других системах наверное все похоже плюс-минус лапоть.
Для вдохновения использовалась инструкция с родного сайта Xming.
1) Необходимо установить пакеты кросс-компилятора: i386-mingw32msvc, i386-mingw32msvc-binutils, i386-mingw32msvc-gcc, i386-mingw32msvc-gcc-c++, i386-mingw32msvc-runtime, i386-mingw32msvc-devel. (Для некоторых систем i586-* - не суть, окончание msvc тоже формальность конкретной системы, главное - чтобы mingw32 там было.
А также i386-mingw32msvc-zlib, i386-mingw32msvc-libjpeg, i386-mingw32msvc-libpng + *-devel + *-devel-static.
2) Перелопачивание конфигов и Imakefiles-ов Xming-а на тему исправления путей к нашей кросс-цветомузыке признано нецелесообразным. Проще последовать рецепту из инструкции и выполнить от рута файлик cross_prepare. Нужно для унификации имен компилера, линкера,... etc. Естественно, перед этим надо проверить действительность указанных там каталогов для конкретной системы - установки mingw32.
3) Дальше нужно собрать/установить pthreads. Сам я собрал пакет под Альт, src.rpm прилагаю, может кто не поленится довести его содержимое до ментейнеров, чтобы они его включили в дистрибы от своего имени. А вручную можно сделать так, как написано в оригинальной инструкции, только исходники с патчами брать здесь, а хидеры и либы копировать в свое дерево установки i386-mingw32msvc. (Внимание! Здесь и далее. Т.к. имеем кросс-компиляцию, каталоги инклудов, бинарей и либ ни в коем случае не должны пересекаться с "родными" - выйдет ну чистое порно.)
4) Создаем корневой каталог сборки (nxming), помещаем туда содержимое архива исходников Xming 3.6.9.31. Все родные патчи туда уже наложены. Переименовываем каталог xc0 в nx-X11 - пригодится на будущее.
5) Приложенный архив - в тот же каталог. В нем находятся отсутствующие ресурсы и мой патч под изменившуюся (???) структуру заголовочных файлов mingw-runtime. (Ресурсы/иконки может и не те, но собиралось только с позиции общей работоспособности).
6) Накладываем на дерево патч.
7) Запускаем в nx-X11 файл ./mktree, скрещиваем/расставляем пальцы на удачу.
8) Получаем в scratch/ бинарники, которыми можно заменить аналогичные установленного Xming. Оно в первом приближении работает.
Xming спекся. Можно двигаться дальше.
Добавляем из дерева исходников nx-клиента, каталоги nxcomp, nxcompsh, nxssh, потом интересуемся сделанными nomachine исправлениями в оригиналах (архив тоже здесь). Делаем выводы:
dimbor писал(а): ↑30.06.2009 04:37Заморочился с "nxming". не по-детски. Напишу здесь, и может мне кто-нить даст идеи. В лучшем случае поможет. Работы там валом, один буду долго ковыряться. Даже не факт, что победю.
Задача стоит избавиться от цигвина, собрать под mingw: nxcomp, nxcompext, nxssh, nxwin. Также пересобрать новый libX, добавив туда патчи номашин на тему NX_TRANS_SOCKET.
Имею проблемы портирования:
- отсутствие fork() - решаемо like xming пользованием pthreads-win32, но надо ковыряться в букварях и в коде.
- linux sockets -> windows sockets - документация кой-какая в сети имеется, в xming тоже можно подсмотреть.
- отсутствие setuid/getuid и прочей польз. обвязки - даже где подсмотреть пока не знаю за исключением самого цигвина (MSYS не катит - крив).
- файловый доступ, пути и пр. - в принципе решаемо и даже проще, чем все остальное.
Репу чешем, чешем, чешем....