[Discuss] Essentially all free apps will soon be available on Windows

Alan W. Irwin irwin at beluga.phys.uvic.ca
Thu Feb 15 19:39:36 PST 2007


I am writing this post because there is an unprecedented opportunity now for
free (as in freedom) applications to be ported to windows because of CMake.
Furthermore, I am all for such ports since I strongly believe that once most
typical Linux apps are available on windows, the MS desktop monopoly power
will finally start to weaken as a result.

If you are a developer of a free software package, and you are still using
an autotools-based build system, I suggest it is time to start doing some
research about the opportunity presented by CMake.  Basically, CMake
completely blows away autotools (the system that produces the "configure"
script and Makefiles used for the usual "configure, make, make install"
Linux build) on Linux/Unix. For example, CMake provides substantially faster
configuration and build speeds than autotools and it is much easier to
understand and maintain a CMake build system compared to an autotools build
system. Furthermore, (unlike autotools) the CMake build system also provides
good builds on Windows.  This, of course, makes porting of free apps to
windows much simpler and easier.

Note, the only thing I dislike about CMake is its name which confuses
would-be users that it is a replacement for make.  In fact, it is a
replacement for autotools (autoconf, automake, and libtool) with various
back ends depending on platform.  For Linux, that back end is the native GNU
make. So the typical free Linux app build with CMake is done with the
"cmake, make, and make install" commands where the last two use strictly
native commands, rather than "autoconf, automake, configure, make (with the
libtool script), and make install (with the libtool script)".

I am a developer for two projects (lasi.sf.net and plplot.sf.net) which have
recently converted their build systems from autotools to CMake, and the
results have been just as good as summarized in the article "Why the KDE
project switched to CMake" http://lwn.net/Articles/188693/.  Although I have
no windows experience myself, both libLASi and PLplot have attracted windows
developers that are extremely enthusiastic about how they have been
empowered by CMake.

So from listening to their comments and also paying attention to the many
posts on the CMake mailing list discussing converting projects to CMake, I
believe that we are about to see a wave of free apps (lead by KDE) that were
initially developed on Linux that will shortly be ported to windows.

>From this perspective the windows platforms come in at least three flavours.

One such flavour is Cygwin, but I have to say that our experiences with
Cygwin libraries has not been that good.  However, most of those libraries
are currently built with autotools, and I expect the reliability of the
results to rapidly improve as more and more free software packages convert
to the CMake build system (which provides a special back end for the Cygwin
case).

Another windows flavour is MinGW or MinGW/MSYS.  My understanding is MinGW
is essentially the gcc compiler collection for windows while MSYS provides
shell capability. CMake has both a MinGW back-end and a MinGW/MSYS backend.
MinGW is wildly popular on SourceForge; 3 million users (presumably
developers) have downloaded MinGW in the last year. The only problem with
MinGW is that nobody seems to have organized a coherent set of binary
libraries to be distributed so that everybody tends to build their own.
(There is an effort at http://mingwrep.sourceforge.net/ to provide such
a service, but it is extremely limited at this point, and a much larger
effort is required.)

Another windows flavour I designate as "bare" windows since the only
compilers available for it are those provided (usually at substantial cost)
by MS. CMake provides back ends for these compilers as well.  Like the MinGW
case, however, nobody seems to have organized a coherent set of binary
libraries.

As the CMake revolution continues to progress through the free software
world, I believe some volunteers will step forward to start organizing a
coherent set of free binary libraries for both MinGW and bare windows. A
large number of additional libraries and software packages (such as KDE)
will be made available for Cygwin as well. Since there are some 400 Linux
distributions (most of them volunteer efforts), I think that volunteer
packaging energy will spread to Cygwin, MinGW and bare windows as soon as
enough free apps have been ported to those platforms.  Such packaging
efforts should make life much easier to port additional free software
packages to these windows platforms and thus will provide a positive feedback
mechanism and the usual exponential growth associated with such feedback.
The result should be virtually all applications that we enjoy on Linux will
be available on windows within a year or so, and life will be good as the MS
desktop monopoly finally starts to weaken as a result.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the
Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the Discuss mailing list