mwp on cygwin - stronnag/mwptools GitHub Wiki

mwp on Cygwin

From 2015-12-30, it is possible to build and run pretty much all of the mwptools suite in cygwin. It is the best performing Windows option after Windows 11 / wsl2g and is the most feature complete.

  • Runs from a desktop short cut
  • Audio works (sort of)
  • Easy device names translation

Installation

  • Install the required packages. The file cygwin-example-packages.txt.gz is taken from a cygwin installation that is capable of building and running mwp. Note that while this seems like a large list, many of the items are automagically installed as dependencies of other items. See also Automation Hints below.

  • At run time, you need to have started the a X server. MobaXterm is recommended for its stability and performance (and OpenGL hardware suport). VcXsrv works as well. Mobaxterm -hideterm is useful as a Start Menu / Startup option.

  • Serial devices must be prefixed /dev/ and are zero indexed, e.g. COM3: => /dev/ttyS2

Once the dependencies are installed, mwp is easily built from the cygwin shell:

  • Clone the repository git clone https://github.com/stronnag/mwptools
  • cd mwptools
  • one off : meson build --buildtype=release --strip --prefix /usr
  • cd build
  • ninja && ninja install

Automation hints

It's quite easy to install the dependencies as follows:

  • Install the base cygwin package using the graphical installer from cygwin.

  • Install a few (additional) packages git, wget and gzip, using the graphical installer.

  • Open the cygwin terminal

  • Fetch and make executable the apt-cyg script

    wget https://rawgit.com/transcode-open/apt-cyg/master/apt-cyg
    install apt-cyg /bin
    
  • Clone the mwp repsoitory

    git clone --depth 1 https://github.com/stronnag/mwptools
    
  • Install most of the dependencies in one hit:

    apt-cyg install $(zcat mwptools/docs/cygwin-example-packages.txt.gz)
    
  • Reportedly (#120), libgstinterfaces1.0-devel is also required.

  • Install ninja and meson (now done by the above package list)

  • Build mwp

    cd mwptools
    # one off
    meson build --buildtype=release --strip --prefix /usr
    # each build
    cd build
    ninja && ninja install
    

Runtime

For blackbox replay, you need the Windows versions of

  • flightlog2kml / fl2ltm
  • blackbox_decode

These need to be installed in a place where they can be found by their caller (mwp must be able to find fl2ltm, fl2ltm must be able to find blackbox_decode).

For terrain analysis, Windows versions of:

  • mwp-plot-elevations
  • gnuplot

It's convenient to set the following in .bash_profile

# This *may* work, otherwise it may be necessary to set DISPLAY to the IP address of the Windows host (export DISPLAY=a.b.c.d:0, where a.b.c.d = IP of Windows host)
export DISPLAY=:0
export NO_AT_BRIDGE=1
# for VcXsvr, MobaXterm does not need it. ***In fact, it will crash mwp with it set****
export LIBGL_ALWAYS_INDIRECT=Y

The X server (MobaXterm, VcXsrv) must be running, it may be convenient to start this automatically from the Windows Startup directory.

A Windows batch file is provided that may be used as a desktop shortcut docs/mwp-cywin.bat; it may need customising.

A Windows icon is provided (src/common/mwp_icon.ico)

mwp on WSL

In theory, no support is offered for running under cygwin.