INSTALL.txt for Tux Paint

Tux Paint - A simple drawing program for children.

Copyright 2002-2007 by Bill Kendrick and others
bill@newbreedsoftware.com
http://www.tuxpaint.org/

June 27, 2002 - July 12, 2007
$Id$


Requirements:
-------------
  Windows Users:
  --------------
    The Windows version of Tux Paint comes pre-packaged with the
    necessary pre-compiled libraries (in ".DLL" form), so no extra
    downloading is needed.
    
  libSDL
  ------
    Tux Paint requires the Simple DirectMedia Layer Library (libSDL),
    an Open Source multimedia programming library available under the
    GNU Lesser General Public License (LGPL).

    Along with libSDL, Tux Paint depends on a number of other SDL 'helper'
    libraries:  SDL_Image (for graphics files), SDL_TTF and (optionally)
    SDL_Pango (for True Type Font support) and, optionally,
    SDL_Mixer (for sound effects).

    Linux/Unix Users:
    -----------------
      The SDL libraries are available as source-code, or as RPM or Debian
      packages for various distributions of Linux.  They can be downloaded
      from:

        libSDL:      http://www.libsdl.org/
        SDL_Image:   http://www.libsdl.org/projects/SDL_image/
        SDL_TTF:     http://www.libsdl.org/projects/SDL_ttf/
        SDL_Pango:   http://sourceforge.net/projects/sdlpango/   [OPTIONAL]
        SDL_Mixer:   http://www.libsdl.org/projects/SDL_mixer/   [OPTIONAL]

      They are also typically available along with your Linux distribution
      (e.g. on an installation CD, or available via package maintainance
      software like Debian's "apt-get").

      NOTE: When installing from packages, be sure to ALSO install the
      "-devel" versions of the packages.  (For example, install both
      "SDL-1.2.4.rpm" AND "SDL-1.2.4-devel.rpm")

  Other Libraries:
  ----------------
    Tux Paint also takes advantage of a number of other
    free, LGPL'd libraries.  Under Linux, just like SDL, they should
    either already be installed, or are readily available for installation
    as part of your Linux distribution.
    
    libPNG
    ------
      Tux Paint uses PNG (Portable Network Graphics) format for its
      data files.  SDL_image will require libPNG be installed.

        http://www.libpng.org/pub/png/libpng.html

    gettext
    -------
      Tux Paint uses your system's locale settings along with the
      "gettext" library to support various languages (e.g., Spanish).
      You'll need the gettext library installed.

        http://www.gnu.org/software/gettext/

    libpaper (Linux/Unix only)
    --------------------------
      As of Tux Paint 0.9.17, Tux Paint can determine your system's
      default paper size (e.g., A4 or Letter), or can be told to use a
      particular paper size, thanks to libpaper.

        http://www.debian.org/

    SVG graphics support
    --------------------
      As of Tux Paint 0.9.17, Tux Paint can load SVG
      (Scalable Vector Graphics) images as stamps.
      Two sets of libraries are supported, and SVG support can be
      completely disabled (via "make nosvg")

      librsvg-2, libCairo2  [newer libraries; default "make" target]
      --------------------------------------------------------------
        libRSVG 2
          http://librsvg.sourceforge.net/

        Cairo 2
          http://www.cairographics.org/

        Also depends on:
          GdkPixbuf
          GLib
            http://www.gtk.org/

          Pango
            http://www.pango.org/

      Older libraries ("make oldsvg")
      -------------------------------
        libcairo1
        libsvg1
        libsvg-cairo1
          http://www.cairographics.org/

        Also depends on:
          libxml2

    NetPBM Tools  [OPTIONAL]  [No longer used, by default]
    ------------------------
      Under Linux and Unix, the NetPBM tools are what are currently
      used for printing.  (A PNG is generated by TuxPaint, and converted
      into a PostScript using the 'pngtopnm' and 'pnmtops' NetPBM command-line
      tools.)

        http://netpbm.sourceforge.net/
	

Compiling and Installation:
---------------------------
  Tux Paint is released under the GNU General Public License (GPL)
  (see "COPYING.txt" for details), and therefore the 'source code' to
  the program is included.

  Windows Users:
  --------------
    Compiling:
    ----------
      Tux Paint comes pre-compiled for Windows, so no compilation is
      necessary.
      
      As of February 2005 (starting with Tux Paint 0.9.15), the Makefile
      includes support for building on a Windows system using MinGW/MSYS.
      ( http://www.mingw.org/ )
      
      After building and installing all the dependencies, use these commands,
      in MSYS, to build, install and run:
      
        $ export set CPATH=/usr/local/include
	$ export set LIBRARY_PATH=/usr/local/bin:/usr/local/lib
	$ make win32
	$ make install-win32
	$ tuxpaint

      Or use the following command to build a version suitable for
      redistribution with the installer or in a zip-file:

        $ make bdist-win32

      Before either of these will work, you need to build or install the
      libraries that Tux Paint depends upon.  John Popplewell put together some
      instructions for doing that here:

        http://johnnypops.demon.co.uk/mingw/index.html
      

    Installer:
    ----------
      Double-click the Tux Paint installer executable (.EXE file) and
      follow the instructions.

      First, you will be asked to agree to the license.
      (It is the GNU General Public License (GPL), which is also
      available as "COPYING.txt".)

      You will then be asked whether you want to install shortcuts
      to Tux Paint in your Windows Start Menu and on your Windows Desktop.
      (Both options are set by default.)

      Then you will be asked where you wish to install Tux Paint.
      The default should be suitable, as long as there is space available.
      Otherwise, pick a different location.

      At this point, you can click 'Install' to install Tux Paint!

    Changing the Settings Using the Shortcut:
    -----------------------------------------
      To change program settings, right-click on the TuxPaint shortcut
      and select 'Properties' (at the bottom).
       
      Make sure the 'Shortcut' tab is selected in the window that
      appears, and examine the 'Target:' field.  You should see
      something like this :

        "C:\Program Files\TuxPaint\TuxPaint.exe"

      You can now add command-line options which will be enabled when
      you double-click the icon.
       
      For example, to make the game run in fullscreen mode,
      with simple shapes (no rotation option) and in French,
      add the options (after 'TuxPaint.exe'), like so:

        "C:\Program Files\TuxPaint\TuxPaint.exe" -f -s --lang french

      (See "README.txt" for a full list of available command-line options.)
       
      If you make a mistake or it all disappears use Ctrl-Z to undo or
      just hit the [ESC] key and the box will close with no changes made
      (unless you pushed the "Apply" button!).
       
      When you have finished, click "OK."

    If Something Goes Wrong
    -----------------------
      If, when you double-click on the shortcut to run the game,
      nothing happens, it is probably because some of these command-line
      options are wrong. Open an Explorer like before, and look for a file
      called 'stderr.txt' in the TuxPaint folder.
	
      It will contain a description of what was wrong. Usually it will
      just be due to incorrect character-case (capital 'Z' instead
      of lowercase 'z') or a missing (or extra) '-' (dash).
  
  
  Linux/Unix Users:
  -----------------
    Compiling:
    ----------
      Note: Currently, Tux Paint does not use autoconf/automake, so there
      is no "./configure" script to run.  (Sorry!)  Compiling should be
      straight-forward though, assuming everything Tux Paint needs is installed.

      To compile the program from source, simply run the following command
      from a shell prompt (e.g., "$"):

        $ make

    Disabling SVG support (and hence Cairo, libSVG and svg-cairo dependencies):
    ---------------------------------------------------------------------------
      To disable SVG support (e.g., if your system is not currently supported
      by the Cairo library or other SVG-related dependencies), you can
      run "make" with "SVG_LIB= SVG_CFLAGS= NOSVGFLAG=NOSVG" added:

        $ make SVG_LIB= SVG_CFLAGS= NOSVGFLAG=NOSVG

    Disabling Pango support (and hence Pango, Cairo, etc. dependencies):
    --------------------------------------------------------------------
      Prior to version 0.9.18, Tux Paint used the libSDL_ttf library for
      rendering text using TrueType Fonts.  Since 0.9.18, libSDL_Pango is
      used, as it has much greater support for internationalization.
      However, if you wish to disable the use of SDL_Pango, you may do so
      running "make" with "NOPANGOFLAG=NO_SDLPANGO SDL_PANGO_LIB=" added:

        $ make NOPANGOFLAG=NO_SDLPANGO SDL_PANGO_LIB=

    Disabling Sound at Compile-time:
    --------------------------------
      If you don't have a sound card, or would prefer to build the program
      with no sound support (and therefore without a the SDL_mixer dependency),
      you can run "make" with "SDL_MIXER_LIB= NOSOUNDFLAG=NOSOUND" added:

        $ make SDL_MIXER_LIB= NOSOUNDFLAG=NOSOUND

    If you get errors:
    ------------------
      If you receive any errors during compile-time, make sure you have
      the appropriate libraries installed (see above).  If using packaged
      versions of the libraries (e.g., RPMs under RedHat or DEBs under Debian),
      be sure to get the corresponding "-dev" or "-devel" packages as well,
      otherwise you won't be able to compile Tux Paint (and other programs)
      from source!


    Installing:
    -----------
      Assuming no fatal errors occured, you can now install the program
      so that it can be run by users on the system.  By default, this must
      be done by the "root" user ('superuser').  Switch to "root" by
      typing the command:

        $ su

      Enter "root"'s password at the prompt.  You should now be "root"
      (with a prompt like "#").  To install the program and its
      data files, type:

        # make install

      Finally, you can switch back to your regular user by exiting
      superuser mode:

        # exit


      Alternatively, you may be able to simply use the "sudo" command
      (e.g., on Ubuntu Linux):

        $ sudo make install


      NOTE: By default, "tuxpaint", the executable program, is
      placed in "/usr/local/bin/".  The data files (images, sounds, etc.)
      are placed in "/usr/local/share/tuxpaint/".


      Changing Where Things Go
      ------------------------
        You can change where things will go by using the 'prefix'
        variables in Makefile.  "PREFIX" is the basis of where all other
        files go, and is, by default, set to "/usr/local".

        Other variables are:
          BIN_PREFIX
	    Where the "tuxpaint" binary will be installed.
	    (Set to "$(PREFIX)/bin" by default - e.g., "/usr/local/bin")
	  
	  DATA_PREFIX
	    Where the data files (sound, graphics, brushes, stamps, fonts)
 	    will go, and where Tux Paint will look for them when it's run.
	    (Set to "$(PREFIX)/share/tuxpaint")
	
	  DOC_PREFIX
	    Where the documentation text files (the "docs" directory) will go.
	    (Set to "$(PREFIX)/share/doc/tuxpaint")
	
	  MAN_PREFIX
	    Where the manual page for Tux Paint will go.
	    (Set to "$(PREFIX)/share/man")
	
	  ICON_PREFIX                      $(PREFIX)/share/pixmaps
	  X11_ICON_PREFIX                  $(PREFIX)/X11R6/include/X11/pixmaps
	  GNOME_PREFIX                     $(PREFIX)/share/gnome/apps/Graphics
	  KDE_PREFIX                       $(PREFIX)/share/applnk/Graphics
	    Where the icons and launchers (for GNOME and KDE) will go.
	
	  LOCALE_PREFIX
	    Where the translation files for Tux Paint will go, and where
	    Tux Paint will look for them.
	    (Set to "$(PREFIX)/share/locale/")
	    (Final location of a translation file will be
	    under the locale's directory (e.g., "es" for Spanish),
	    within the "LC_MESSAGES" subdirectory.)

        FIXME: This list is out of date.  See Makefile and Makefile-i18n for
        a complete list.
	
	
Uninstalling Tux Paint:
-----------------------
  Windows
  -------
    Using the Uninstaller
    ---------------------
      If you installed the Start Menu shortcuts (the default), then go to the 
      TuxPaint folder and select "Uninstall". A box will be displayed that will 
      confirm that you are about to uninstall Tux Paint and, if you are certain
      that you want to permanently remove Tux Paint, click on the 'Uninstall'
      button. 

      When it has finished, click on the close button.

      It is also possible to use the entry "TuxPaint (remove only)" in the
      Control Panel Add/Remove programs section.

      NOTE: because the pictures that are created are saved inside the Tux Paint 
      folder, this folder and the 'userdata' folder inside it are NOT removed.


  Linux
  -----
    Within the Tux Paint source directory (where you compiled Tux Paint),
    you can use a 'Makefile' target to uninstall Tux Paint.
    By default, this must be done by the "root" user ('superuser').
    (See the installation instructions above for further information.)

    Switch to "root" by typing the command:

      $ su

    Enter "root"'s password at the prompt.  You should now be "root"
    (with a prompt like "#").  To uninstall the program and its data files
    (the default rubber-stamp images, if any, will also be removed), type:

      # make uninstall

    Finally, you can switch back to your regular user by exiting
    superuser mode:

      # exit

