Cygwin Port

From ScarletDME
Jump to navigation Jump to search

Discussion Google Group Slow speed/possible poor Cygwin IPC implementation.

Note that the qm runtime built here only requires a smallish cygwin1.dll (not the full cygwin install) to provide some posix functionality that is not provided by mingw/msvc.

July 2006

Here it is. The file is a bit big since I put some screen caps of the
generic cygwin install process to try and get people up to speed quickly.

I couldn't make a proper install script yet.

Also I can only get telnet (to qm) working by running xinetd service from a
cygwin command line and not as a proper installed service. I'm pretty
certain that it is a permissions issue. Perhaps someone can explain how to
get the usual inetd daemon running instead of xinetd. The command is
"/usr/sbin/xinetd -d".



- install cygwin default (for all users not "just me")
add the following:
- development - GCC compiler
- net - xinetd
- admin - cygrunsrv
- editors - vim

- unpack openqm distro file to be /usr/qmsys (c:\cygwin\usr\qmsys)

in cygwin:
cd /usr/qmsys
./buildgpl            (should be no errors/warnings except maybe qmconv
doesn't compile)

create a file /etc/qmconfig containing: (caps required!)

To enable qmconsole
in My Computer properties, Advanced, Environment Variables, Add SYSTEM Env
- CYGWIN system environment variable to include the word "server" space to
sep other words
then *CLOSE* and reopen all cygwin consoles!

in cygwin
cygserver-config to install as a service
chmod 666 /var/log/cygserver.log
net start cygserver
/usr/sbin/cygserver -d
and read the screen to see that cygserver is running
(nb service permissions may be less than console permissions)

cd /usr/qmsys
bin/qm -start   (if you get Bad System Command then close and restart all
cygwin consoles and restart cygserver service)
          (it should reply QM has been started
bin/qm    (should open a console for you with no login required)

To enable telnet and client
cd /usr/qmsys
bin/qm -start (if you haven't already done so)

- copy sample file from this folder (qmclient and qmsrvr) service def files
to /etc/xinetd.d folder
- change to a valid administrator user name embedded in the above files
- dos2unix /etc/xinetd.d/*

- /etc/services to have lines for qmclient tcp 4242 and qmsrvr tcp 4243
qmsrvr           4242/tcp                           #OpenQM Telnet Server
qmclient         4243/tcp                           #OpenQM Client Access

- start xinetd.d as follows
cd /usr/sbin
./xinetd -d
and read screen log to ensure qmclient and qmsrvr services are loaded
control+c to stop
the following to add as a service
cygrunsrv -I xinetd -p /usr/sbin/xinetd

look in win application event log if fail to start
/var/log/service log records connections
maybe need to chmod 666 /var/log/servicelog

telnet localhost 4242

login with any valid win32 user name and password
for account put qmsys