The central resource for all Q development is the
SourceForge project
website, which provides
CVS access to the
latest development sources. You can also find all released packages in the
download
area at this site. For your convenience, we provide a quick map of the
sources for the current versions below, as well as pointers to ready-to-use
ports and binary packages. Q is known to work on Linux, OS X and Windows, but
should also compile (with the usual amount of tweaking) on most other modern
UNIX systems and POSIX-compatible platforms. Linux is the primary development
platform, so all packages should compile right out of the box on all recent
Linux systems (do the usual "./configure; make; make install",
or just "make" for some packages).
License: Unless explicitly noted otherwise, the software on this
page is distributed under the GNU General Public
License.
Ports and Packages
Thanks to the (much appreciated!) work of Toni Graffy, Gerard Milmeister
and Ryan Schmidt, ready-to-use Q packages for Linux (SUSE, Fedora) and Mac
OS X are available from the Packman, Fedora and MacPorts projects, see below
for details. Additional packages for MS Windows, the ASUS eee PC and the
Sharp Zaurus PDA can be found in the Binaries section
below.
Fedora:
Gerard Milmeister's q package
from the Fedora Linux distribution
includes the interpreter core and some of the core modules. If you're
interested in computer music applications, you should also take a look at
Stanford's PlanetCCRMA project
maintained by Fernando Lopez-Lezcano, which provides additional software like
MidiShare, Pd and SuperCollider required by Q's multimedia library. (The Q
multimedia modules themselves have not been packaged for Fedora yet,
so you will have to compile these yourself.)
Mac OS X:
Ryan Schmidt's port
of Q to OS X is available from the MacPorts project. This currently comprises
the core package only, but additional modules might become available in the
future. Note that MacPorts already provides the necessary third party
libraries to compile and run most addon modules, so porting these to OS X
should be a piece of cake now.
openSUSE:
Toni Graffy's Q packages provide a complete Q system
including all core and addon modules for recent
openSUSE versions. These are supplied as
two sets of packages, see
q-core and
q-addons on
the Packman site.
Note that Packman is a full YaST repository, so all required packages can
easily be installed from YaST once you added Packman using YaST's
"Community Repositories" applet.
Binary Packages
Debian/ASUS
eeePC: While Q compiles out of the box on recent
Debian systems, there don't seem to be any Debian packages for Q yet, so I've
put together a little collection of packages which let eeePC users enjoy Q
on this nifty little Linux machine. Reportedly these also work on
other i386 Debian systems, but YMMV. You can find the packages here:
Zaurus:
For Zaurus users who want to run Q on their Linux PDA, we have a little
software feed with binary packages for the latest
OpenZaurus. You can find
the current feed here:
Please check the README file in the feed
for instructions on how to install and use these packages. The latest packages
are for clamshell (armv5tel-based) Zaurii only, but you can find some (fairly
ancient) packages which work on older Zaurus models like the "Collie" here, and some older pdaXrom packages here.
MS Windows:
The Qpad package is a complete binary distribution of
the Q programming system for Windows 98/2000/ME/XP. Besides the Q programming
tools, the standard library and most of the modules it also includes the Qpad
application, a simple Windows IDE for
the Q interpreter which allows you to edit and run your Q scripts. You can
grab the package here:
This package is in MSI
format which can be installed simply with a
double-click. To make this work on older Windows versions, you may have to
install Windows Installer 2.0, which is available
here
(Windows NT/2000) and
here
(Windows 9x/ME). (For Windows XP and Vista no additional software should be
required.) Please note that at this time the ncurses, Qt/Q and
Pd/Q modules have not been ported to Windows yet and thus are not included in
the Windows package. Also, I didn't have the opportunity to test the package on
Vista yet, any feedback on that is appreciated.
Requirements: The Qpad application requires Microsoft's MFC
libraries; if these aren't available on your system then you should install the
VC6RedistSetup package which can be obtained
here.
Most other required libraries are included, except ImageMagick, Tcl/Tk and
Gnocl, which are needed for the magick and tk modules
and GQBuilder, respectively. These are available under the following URLs:
ImageMagick
(you need version 6.2.9-x-Q16-windows-dll);
Tcl/Tk
(you need version 8.4); Gnocl (you need the
0.9.91-win32 build which is available here; please see the README file included in this package for
instructions on how to install Gnocl on Windows).
In addition, the opengl module needs the OpenGL library, but this
will usually be supplied with the drivers of your graphics card. For the
openal module you'll also need OpenAL 1.1, available
here.
Source Packages
Here you can find the source tarballs that you need if you want
to compile Q yourself. (Please note that the source tarballs for the multimedia
examples are not listed here, but can be found on the
Examples page.) The source packages are divided
into the core package (containing the interpreter and the core modules) and
separate tarballs for the different add-on modules. When compiling from the
sources, you'll always need the Q core package, the other source packages are
optional.
The Q core (interpreter, standard library, core modules and related
stuff).
Source:
Requires:
Only the GMP library is required for a basic installation; for thread and
unicode support you'll also need the pthread and GNU
iconv libraries (or compatible replacements). Other
third-party libraries are required to make the various modules included in
the core package work, see Core for details. Most
required libraries should be readily available on recent Linux and *BSD
systems.
An interface module and GUI builder for Peter G. Baum's Gnocl. This lets you create GNOME/GTK-based
applications via Tcl. (This used to be included in the core distribution
but is now available as a separate source package.)
A Q Apache module. This lets you run Q scripts in the Apache web
server. (This used to be included in the core distribution but is now
available as a separate source package.)
Compiles Q bytecodes to C code. (This used to be included in the core
distribution but is now available as a separate source package.) Please
note that this is not a "real" compiler, it just wraps up Q
bytecode files in a C program which can be compiled so that you can
distribute Q programs as (more or less) standalone executables.
An interface to Faust, Grame's functional audio processing and synthesis
language. With this module you can run Faust DSPs to perform realtime
audio processing in your Q scripts.
Source:
Requires:
Faust. SUSE RPMs for Faust can be
found on the PackMan website.
OpenAL. This should be readily
available on most Linux and *BSD systems. For Windows the necessary OpenAL
runtime can be found here. Please note that this version of the module requires OpenAL 1.1.
If you are still using OpenAL 1.0, use version 1.3 of the module instead.
OpenGL, FreeGlut (or a suitable
replacement). These should be readily available on most Linux and *BSD
systems. On Windows the required libraries are usually provided with
your graphics driver.
OSC software synth interface, featuring special support for James
McCartney's SuperCollider. Includes a sample Tcl/Tk frontend for
SuperCollider.
Source:
Requires:
SuperCollider (to
utilize the SuperCollider interface), Q-Audio and Q-Midi (for the included
examples), Tcl/Tk (for the SuperCollider
GUI). SUSE RPMs for SuperCollider can be found on the
PackMan website, and a
Windows port of SuperCollider is available here.
Q's interface to Trolltech's popular GUI
toolkit. Based on the
SmokeQt library. Provides
all necessary operations to program Qt GUIs in Q, and allows you to
create widgets from Qt Designer XML code (.ui files). Support
for the Qt assistant html help system is also included.
Source:
Requires:
Qt and
SmokeQt
(readily available on most Linux and *BSD systems, as well as OSX and
Windows). The current version of this module requires Qt3; a Qt4 version is
being worked on.
A version of SWIG (http://www.swig.org)
which has been patched to add support for the Q language. You'll need this
if you want to employ SWIG to create Q modules interfacing to C/C++
code. This package is only provided as a source tarball, which can be
installed on Un*x systems with the usual ./configure; make; make
install. (Windows users don't need this package, since a suitable
SWIG version is already included in the binary Qpad package.)
Source:
Dependencies
Virtually all 3rd party software required by Q and its modules is readily
available on Linux systems nowadays. However, you'll need the following updated
gnuplot package (built from CVS sources) if you want to run gnuplot inside the
QCalc application.
Gnuplot from 2007-12-04 CVS sources. See http://www.gnuplot.info for licensing
information. This version can be used with the QCalc program (see above).