opennx
Модераторы: dimbor, Модераторы разделов
Re: opennx
А между тем... opennx.exe уже может быть запущен переименованным в nxclient.exe (все установленные ярлыки должны сработать).
+ запуск приведен в соответствие с NXClient: OpenNX не понимал OpenNX.exe path+file.nxs и хотел OpenNX.exe -session=path+file.nxs, сессия автоматом при этом не запускалась (теперь запускается в обоих случаях). fixed;
+ немного улучшена обработка ошибок, надеюсь, висеть в состоянии "соединяюсь" уже не будет;
- по прежнему не известно что за "длинный параметр display" и зачем его передает (nxwin? при выходе, почему то не всегда, хочет почистить процессы что-ли?);
- добавить новую сессию можно пока только с помощью Мастера/Wizard
OpenNX.exe win32 0.16.0.444-5: http://slil.ru/28450159
+ запуск приведен в соответствие с NXClient: OpenNX не понимал OpenNX.exe path+file.nxs и хотел OpenNX.exe -session=path+file.nxs, сессия автоматом при этом не запускалась (теперь запускается в обоих случаях). fixed;
+ немного улучшена обработка ошибок, надеюсь, висеть в состоянии "соединяюсь" уже не будет;
- по прежнему не известно что за "длинный параметр display" и зачем его передает (nxwin? при выходе, почему то не всегда, хочет почистить процессы что-ли?);
- добавить новую сессию можно пока только с помощью Мастера/Wizard
OpenNX.exe win32 0.16.0.444-5: http://slil.ru/28450159
Спасибо сказали:
Re: opennx
Багрепорта хочешь? Его есть у меня. Сначала о хорошем: русификация радует.
Потом о не очень хорошем: Где упоминание Djelf во вкладке "О программе"? Себя надо любить!
О совсем не хорошем: Имеется флажок "Включение SSL шифрование всего трафика". Это, как я пол, антипод приснопамятной "Disable encryption of all traffic". - Не пущается при отключенном шифровании. На родном с тем же nxs - работает.
Симптоматика: застываем на стадии "Запуск сессии". nxwin, nxssh есть. Логов nxwin-a нет никаких. На серваке отваленая сессия (nxagent) с руганью:
А пацанский старт там выглядит так:
ЭскрЭксперименты продолжаются.
Потом о не очень хорошем: Где упоминание Djelf во вкладке "О программе"? Себя надо любить!
О совсем не хорошем: Имеется флажок "Включение SSL шифрование всего трафика". Это, как я пол, антипод приснопамятной "Disable encryption of all traffic". - Не пущается при отключенном шифровании. На родном с тем же nxs - работает.
Симптоматика: застываем на стадии "Запуск сессии". nxwin, nxssh есть. Логов nxwin-a нет никаких. На серваке отваленая сессия (nxagent) с руганью:
Info: Waiting for connection from '192.168.1.1' on port '5502'.
Info: Aborting the procedure due to signal '1'.
Error: Aborting session with 'Unable to open display 'nx/nx,options=/home/dim/.nx/C-dimsrv.hm.dimbor.ru-1502-8ED33413AA6AEC8C487E7A52D629C6CE/options:1502''.
Session: Aborting session at 'Thu Jan 7 23:58:24 2010'.
А пацанский старт там выглядит так:
Info: Waiting for connection from '192.168.1.1' on port '5502'.
Info: Accepted connection from '192.168.1.1'.
Info: Connection with remote proxy completed.
ЭскрЭксперименты продолжаются.
Re: opennx
Чорд... это надо было сделать в первым фиксом
Ок, пошел проверять.
Ага, сломал Спасибо!
Понял, это виновато "+ немного улучшена обработка ошибок, надеюсь, висеть в состоянии "соединяюсь" уже не будет;"
А... нет... он и раньше этого не умел... но все равно...
Будем чинить (увы, даже попыток на это в коде не заметил, покопаться придется).
Значит еще один минус в клиенте:
- соединение без шифрования пока не поддерживается;
З.Ы. А я вот думал... будет ли время когда не я у dimbor, а он у меня тестером станет
Re: opennx
А патчи где брать?
Re: opennx
Пока координатора проекта нет... патчей как таковых и не делали. Кто б этим занялся?
Изменения, как я уже говорил 1-2 строки но в куче разных мест.
Например RX не принимает строку подключения шары, если пароль находится не в конце строки. Поменял в соответствии с клиентом от NoMachine заработало.
Поэтому разве что комплексный делать и от него отталкиваться.
diff к 0.16.0.444
Компилирую на MinGW/MSYS от felfert http://www.fritz-elfert.de/downloads/
+ wxWidgets 2.8.9 cкомпилированных так:
Код: Выделить всё
./configure -q --with-msw --disable-debug --disable-debug_gdb --disable-shared --enable-unicode --disable-compat24 --disable-compat26 --without-libtiff CXXFLAGS=-ffunction-sections -fdata-sections -Os LDFLAGS=-Wl,--gc-sections
OpenNX
Код: Выделить всё
./configure --enable-staticwx --with-nxproto=3.3.0 CXXFLAGS=-ffunction-sections -fdata-sections -Os LDFLAGS=-Wl,--gc-sections
Известные нерешенные проблемы:
- nxwin странно запускается в полноэкранном режиме и режиме "без декораций" (пока решено запуском без ключа hide);
- не работает подключение без шифрования;
- при закрытии клиента изредка выскакивает надпись "неизвестная длинная опция display" (это сообщение "Соединение потеряно");
- некоторые опции в клиенте не запоминаются (например опция "disable backing store");
- логика работы окна подсоединения к режиму шадоу и восстановления сессий (блокировка лишних кнопок) не доделана (пока разрешено все);
- хотелось бы изменить порядок запуска nxwin (после выяснения параметров сессии) для возможности подключения в режиме дисплея "как на сервере" (или подождать ответа dimbor - может ли nxwin менять разрешение в процессе);
- непонятно почему появляются строки вида "NX> 105 NX> код", у NoMachine такого нет, пришлось под них парсер доделывать, это неправильно;
- добавить новую сессию можно только с помощью Мастера/Wizard;
- доработать логгер (чтоб как и в nxclient побольше информации было и не в дебажном варианте, а обычном);
- у felfert`а есть наметки по хранению логин/паролей в шифрованном виде, наверное стоит доделать;
Вроде ничего не забыл...
Re: opennx
Луркнул, что было обещанно. nxwin не имеет возможности смены изначально инициализированных параметров геометрии скрина(ов).
Т.е. ключик его запуска -screen 0 XxY это один раз на всю сессию. По идее это правильно: про объект nxwin-а screen сервер (nxagent) и знать не должен, в этот скрин пишет только nxwin своими виндовыми средствами. А X-сервер (nxagent+nxwin) и приложение оперируют окнами, размеры которых могут быть любыми. Но это уже nx-протокол, до которого менеджменту (opennx) дела быть не должно.
Короче, --screen - это "физические" ограничения nxwin по геометрии.
Насчет shadow не скажу. Не так давно узнал, что это вообще такое, не щупал. Но!
Твое IMHO может быть неверным из таких соображений. Оч. вероятное предположение: nxssh всегда запускается после nxwin, т.к. nxssh нужны уже имеющиеся локалхост-сокеты для данных сессии. Вот nxwin посредством nxcomp их и создает заблаговременно.
Re: opennx
dimbor писал(а): ↑08.01.2010 16:10Насчет shadow не скажу. Не так давно узнал, что это вообще такое, не щупал. Но!
Твое IMHO может быть неверным из таких соображений. Оч. вероятное предположение: nxssh всегда запускается после nxwin, т.к. nxssh нужны уже имеющиеся локалхост-сокеты для данных сессии. Вот nxwin посредством nxcomp их и создает заблаговременно.
Да, попробовал... не цепляется, вычеркиваем.
Re: opennx
Re: opennx
Спасибо! Но первый же хунк не подходил для тарбола с 444 ревизией скачаной с sf.net. Причесал слегка патч, получилось так.
UPD: Неуспел, попробую снова.
- Вложения
-
- opennx444_5.diff.gz
- (8.15 КБ) 30 скачиваний
Спасибо сказали:
Re: opennx
ОК! А с точки зрения юзера очень даже ничего смотрится.
Еще подкину дерьмеца:
- Вкладка "Расширенные", не один радиобокс не выбран (По факту - "Прямое соединение")
- Общие - Польз. настройки. Чекбокс "Use custom image quality" не имеет ничего общего с родным "Use custom JPEG quality". Сохраняется в конфиг видимо где-то отдельно. На что влияет и влияет ли?
- Там же в групбоксе "Производительность" состояния чекбоксов с родными не коррелируют, не сохраняются - для красоты пока они там.
ЗЫ: Какое незнакомое ощущение. Написал фразу, а кому-то она отливается часами геморроя.
И исчо мне все совместимость nxs и русские шары покоя не дают. Есть не сильно сложная схемка, позволяющая реализовать дальнейшее счастливое неведение фриэныкса о существовании нового клиента. Выглядит она так:
Opennx при чтении имени и точки монтирования из nxs получает список smb-ресурсов локалхоста. При ненахождении в этом списке шары делается вывод, что nxs читается не собственный, а родного клиента, и для дальнейшего пользования делается 1252->CP_ACP (1252->1251). При сохранении также само все учитывается.
С другой стороны патчится freenx, чтобы подключениии шары аналогичным образом получался список шар клиента (у меня там этот код уже есть по "мультишарам"). Далее по надобности точно также производится перекодировка.
Идея понятна? Ну и какое мнение?
Re: opennx
dimbor писал(а): ↑09.01.2010 00:03Идея понятна? Ну и какое мнение?
Проще добавить опцию --nxclient="OpenNX" и дальше по ней разруливать.
freenx`у она совершенно не мешает работать.
Re: opennx
Да понятно, что проще. С фриэныксом можно по разному сделать. И так, и сяк. Но меня больше беспокоит Гондурас совместимость nxs. Очень желательно добиться полной совместимости конфигов. А меня лично напрягает, что в данный момент с opennx руская шара мало того, что не цепляется (еще раз повторяю - решаемо), да еще и в opennx она с кривым именем и "Currently not available". Т.е. ее приходится удалять/добавлять, если nxs последний раз был сохранен в родном клиенте.
Унификация наше все.
Унификация наше все.
Re: opennx
dimbor писал(а): ↑09.01.2010 02:08Да понятно, что проще. С фриэныксом можно по разному сделать. И так, и сяк. Но меня больше беспокоит Гондурас совместимость nxs. Очень желательно добиться полной совместимости конфигов. А меня лично напрягает, что в данный момент с opennx руская шара мало того, что не цепляется (еще раз повторяю - решаемо), да еще и в opennx она с кривым именем и "Currently not available". Т.е. ее приходится удалять/добавлять, если nxs последний раз был сохранен в родном клиенте.
Унификация наше все.
Опция --nxclient="opennx" зашита в код, дополнений в nxs не требуется. http://slil.ru/28455553
Если opennx заработает, а он уже и так неплохо работает, то зачем нужен будет nxclient?
Re: opennx
Зри в даль! Карашо, предположим все станет карашо. А потом в номашин кто-то чихнет, появится 3.5.0, и все придется перелопачивать. Да не просто, а с учетом многочисленных разниц (которые забудутся конечно). Попытки не отдаляться от отцов-основателей очень мне зачлись при курощении.
Re: opennx
dimbor писал(а): ↑09.01.2010 02:37
Зри в даль! Карашо, предположим все станет карашо. А потом в номашин кто-то чихнет, появится 3.5.0, и все придется перелопачивать. Да не просто, а с учетом многочисленных разниц (которые забудутся конечно). Попытки не отдаляться от отцов-основателей очень мне зачлись при курощении.
Тут есть один момент: freenx и сейчас работает со старыми протоколами, а NoMachine встряли будет серьезно менять протокол даже в 4й версии, а если и будет то кардинально, тогда в первую очередь придется потеть создателям freenx, а это ой не быстро будет...
Re: opennx
В общем, получился ебилд с 444-6 и моим переводом. Клиент под 64 бита работает сносно, правда немного напрягает большая задержка между исчезновением окошка opennx и появлением окна сеанса (у оригинального клиента висит надпись "Established connection..." если правильно помню). Клиент под 32 бита валится с сегфолтом где-то в нутрях libc, nxssh при этом в процессах висит, ошибок в его логах не видно. Возможно причина в сервере, который 64-битный, но nxclient-2xterminalserver с тем же сервером работает сносно.
Ещё одна заковырка в клавиатурных раскладках. Приложения у нас запускаются в рутлесс режиме через враппер, который содержит строчку
Т.к. клавиатуры на рабочих станциях настроены через evdev, именно эту модель приходится прописывать, с nxclient-2xterminalserver всё работает. Opennx и оригинальный клиент в таком случае работают неверно, для них нужно указывать модель pc105!
Ещё одна заковырка в клавиатурных раскладках. Приложения у нас запускаются в рутлесс режиме через враппер, который содержит строчку
Код: Выделить всё
/usr/bin/setxkbmap -layout "us,ru(winkeys)" -option grp:alt_shift_toggle -option grp_led:scrol -model evdev
Т.к. клавиатуры на рабочих станциях настроены через evdev, именно эту модель приходится прописывать, с nxclient-2xterminalserver всё работает. Opennx и оригинальный клиент в таком случае работают неверно, для них нужно указывать модель pc105!
Re: opennx
Без патча не падало? Тогда, думаю, копать надо в MySession.cpp где-то здесь (я в 2 местах такое правил для скрытия окон на Win, и у DjSpike, я так думаю, клиент падал именно в этом месте):
С раскладкой надо сличать логи запуска... причем побитно Хотя про клавиатуру я там ничего не замечал... но я nxclient-2xterminalserver не запускал...
З.Ы. А где можно пощупать твой перевод?
Код: Выделить всё
- return ::wxExecute(cmd) ? wxString() : cookie;
+ wxProcess *process = new wxProcess(wxPROCESS_REDIRECT);
+ return wxExecute(cmd, wxEXEC_ASYNC, process) ? wxString() : cookie;
С раскладкой надо сличать логи запуска... причем побитно Хотя про клавиатуру я там ничего не замечал... но я nxclient-2xterminalserver не запускал...
З.Ы. А где можно пощупать твой перевод?
Re: opennx
Падало, тут возможно даже не в opennx дело, а в комбинации glibc и wxWidgets, никак не доберусь gdb.
UPD: Глянул в коде, указанные строки обёрнуты в #ifdef __WXMSW__ т.е. к линуксу ни каким боком...
Там не логах дело, а в той версии иксов что есть на сервере и клиенте, в случае с nxclient-2xterminalserver они сильно различаются, ИМХО. Да ещё протокол у 2x древний.
Перевод неполный, совсем не переводились строки относящиеся с установке/сносе под виндовс.
- Вложения
-
- ru.po.gz
- (11.93 КБ) 7 скачиваний
Re: opennx
А между тем felfert выложил патч 445 "Retry after a delay, if a hotplug event was received and the corresponding device has not yet shown up in libusb."
А пока под Win это не надо...
OpenNX.exe 444-7 http://slil.ru/28490532
изменения совсем небольшие:
- с мерзким окошком display вопрос решился, это сообщение от nxwin "Соединение потеряно", fixed
- не запоминались параметры "backingstore" и т.п., fixed
- переключатель "Использовать прямое соединение" не выставлялся, fixed
- опция --nxclient="opennx" оставлена в параметрах монтирования (freenx она не мешает), а русским шарам (в перспективе) может помочь.
Diff c 444й: Изменения 444-6/444-7
На очереди контроль и убивание "залипающего" в процессах при ошибках nxwin.
По прежнему не понимаю как заставить nxwin, запущенный с ключем "-hide" в скрытом режиме (wxPROCESS_REDIRECT), показать окно после запуска полноэкранной сессии. Нужна помощь зала
Процесс потихоньку идет...
nxwin показывается... на секунду... и опять прячется... по моему он сам прячется...
dimbor, у nxwin случаем нет команды "Выйти из тени"?
А пока под Win это не надо...
OpenNX.exe 444-7 http://slil.ru/28490532
изменения совсем небольшие:
- с мерзким окошком display вопрос решился, это сообщение от nxwin "Соединение потеряно", fixed
- не запоминались параметры "backingstore" и т.п., fixed
- переключатель "Использовать прямое соединение" не выставлялся, fixed
- опция --nxclient="opennx" оставлена в параметрах монтирования (freenx она не мешает), а русским шарам (в перспективе) может помочь.
Diff c 444й: Изменения 444-6/444-7
На очереди контроль и убивание "залипающего" в процессах при ошибках nxwin.
По прежнему не понимаю как заставить nxwin, запущенный с ключем "-hide" в скрытом режиме (wxPROCESS_REDIRECT), показать окно после запуска полноэкранной сессии. Нужна помощь зала
Процесс потихоньку идет...
Код: Выделить всё
wxProcess *procNXWin = new wxProcess(wxPROCESS_REDIRECT);
procNXWinPID = wxExecute(wxWinCmd, wxEXEC_ASYNC, procNXWin);
HWND h = ::GetTopWindow(0 );
while ( h ) {
DWORD pid;
DWORD dwTheardId = ::GetWindowThreadProcessId( h,&pid);
if ( pid == procNXWinPID) {
ShowWindow(h, SW_SHOW);
break;
}
h = ::GetNextWindow( h , GW_HWNDNEXT);
}
nxwin показывается... на секунду... и опять прячется... по моему он сам прячется...
dimbor, у nxwin случаем нет команды "Выйти из тени"?
Спасибо сказали:
Re: opennx
Зал почесал репу, полазил в исходниках nxwin и сейчас изречет информацию к размышлению.
1) ключ -hide nxwin-а работает только в десктоп-режиме и означает, что основному окну после создания будет поставлен флажок nxwinHideStart=TRUE и будет сделано ShowWindow(*phwnd, SW_HIDE). Т.е. дело ограничивается только винапи, север о интересном состоянии клиента в известность не ставится.
2) Любопытство потребовало выяснить, что же происходит дальше. А дальше получается цепочка ProcEstablishConnection() - SendConnSetup() - showNXWin() - ShowWindow(*phwnd, SW_SHOW).
ProcEstablishConnection() - это ловушка внедренная в недра x-сервера, как я пол, на событие установления соединения.
Глубже пока не рыл.
Вывод: окно должно появиться само, видимо дело в таймауте.
Зал замер.
Нет, "всем выйти из сумрака" игнорируется. Окно снаружи за выступающие части дергать тоже бесполезно.
Ночкой еще посмотрю, ставится ли там этот капкан (адрес ловушки) где-нить. А то от !М можно всякого ожидать веселого.
Re: opennx
dimbor писал(а): ↑15.01.2010 20:301) ключ -hide nxwin-а работает только в десктоп-режиме и означает, что основному окну после создания будет поставлен флажок
...
Нет, "всем выйти из сумрака" игнорируется. Окно снаружи за выступающие части дергать тоже бесполезно.
...
Ночкой еще посмотрю, ставится ли там этот капкан (адрес ловушки) где-нить. А то от !М можно всякого ожидать веселого.
Спасибо, но странно работает только fullscreen (и nodecoration) т.е. особые режимы запуска. С остальными проблемы нет.
Как сейчас я сделал ты наверное видел... но это не дело. И действительно за выступающие не дергается, но ведь NoMachine то его всплывать заставляют!
Сессия запускается, на клиенте и сервере все в порядке, nxwin не всплывает... У меня подозрение на то что окну надо что то еще особо хитрое выставить...
Re: opennx
Можно пойти двумя путями. Первый - изучить runlog родного клиента по фулскрину тщательнЕе. А для второго в nxwin-е могу логи повключать на эту тему. Ваше слово, товарищ маузер!
Re: opennx
Первый уже почти попиксельно сходится... Только и остается: дебажные логи nxwin смотреть...
Re: opennx
это сломало запуск
раньше можно было попасть в настройки сессии указав opennx --session=<session name> (без path+file.nxs) теперь же автоматом сессия начинает стартовать.
в итоге в диалог настройки сессии вообще не попасть минуя wizard без одного успешного соединения (т.е. пока не появится LastSession в конфиге opennx)
Re: opennx
чуть причесал патч, обновил локализацию.
локализацию надо слать в upstream, чтоб патч не замусоривать. слать?
локализацию надо слать в upstream, чтоб патч не замусоривать. слать?
- Вложения
-
- 0001_add_patch_from_linuxforum.ru_update_russian_translat.patch.gz
- (22.13 КБ) 10 скачиваний
Re: opennx
dimbor проверил с дебажной,
Dispatch: SendConnSetup() -> showNXWin()
winWindowProc - WM_NXSHOW
послылаются, но увы...
кстати в оригинальном клиенте есть строка
LoginDialog::showNxWin
т.е. можно предположить что "выйти из тени" все таки есть... но это пока не получается
Я ориентировался на поведение nxclient, он примерно так и делает, а в диалог попасть можно запустив opennx без ключей.
Огромное спасибо!
Dispatch: SendConnSetup() -> showNXWin()
winWindowProc - WM_NXSHOW
послылаются, но увы...
кстати в оригинальном клиенте есть строка
LoginDialog::showNxWin
т.е. можно предположить что "выйти из тени" все таки есть... но это пока не получается
bsavelev писал(а): ↑16.01.2010 13:53это сломало запуск
раньше можно было попасть в настройки сессии указав opennx --session=<session name> (без path+file.nxs) теперь же автоматом сессия начинает стартовать.
в итоге в диалог настройки сессии вообще не попасть минуя wizard без одного успешного соединения (т.е. пока не появится LastSession в конфиге opennx)
Я ориентировался на поведение nxclient, он примерно так и делает, а в диалог попасть можно запустив opennx без ключей.
--session FILENAME
Run a session reading the configuration settings from FILENAME.
Огромное спасибо!
Re: opennx
Djelf писал(а): ↑16.01.2010 16:44bsavelev писал(а): ↑16.01.2010 13:53это сломало запуск
раньше можно было попасть в настройки сессии указав opennx --session=<session name> (без path+file.nxs) теперь же автоматом сессия начинает стартовать.
в итоге в диалог настройки сессии вообще не попасть минуя wizard без одного успешного соединения (т.е. пока не появится LastSession в конфиге opennx)
Я ориентировался на поведение nxclient, он примерно так и делает, а в диалог попасть можно запустив opennx без ключей.
--session FILENAME
Run a session reading the configuration settings from FILENAME.
так я и говорю, что если запускать без опций и LastSession в конфиге не определен, то запустится wizard. При этом LastSession появляется только после успешной сессии, что совершенно не обязательно. Наверно вот тут и надо поправить, выставлять LastSession не только после успешной сессии...
Re: opennx
bsavelev писал(а): ↑16.01.2010 16:51так я и говорю, что если запускать без опций и LastSession в конфиге не определен, то запустится wizard. При этом LastSession появляется только после успешной сессии, что совершенно не обязательно. Наверно вот тут и надо поправить, выставлять LastSession не только после успешной сессии...
Да, есть такой баг, на машине без сессий я opennx не запускал. Я бы кнопочку "Add" добавил, вот ее точно не хватает.