*** Release notes for GIMP version 0.6 ***

		Prepared by:
			Spencer Kimball
			Peter Mattis


GIMP release 0.6 has been long in the coming and represents at least 4
months of constant modification.  This release is intended STRICTLY
for gimp developers, and we do not intend it for public distribution.
This is primarily because the features we want to see haven't been
finished and the code itself isn't stable enough yet.  Hopefully a
more complete, public release will follow in the next month.

Pete and I have recently been diverted from GIMP development.  Pete is
busy working at HP, and I'm prostituting myself as a java programmer
for money.  Still, development continues, albeit slowly.

Here are some features of this release that I can recall:

1)  Bloatif has been zorched.

2)  Much improved painting tools (sub-pixel sampling, brush spacing)

3)  An airbrush that actually works

4)  Clone between all image types  (RGB -> indexed, for example)

5)  Cut and pasting between all image types

6)  Lots of new brushes (some were taken from commercial sites, and
will not appear after this release, so everyone should feel free to
contribute any nice brushes they create themselves.)

7)  A new brush file format with nicer amenities including version
numbers and a magic number.

8)  Transparency for grayscale and rgb images -- indexed images with
transparency / palette entry will appear soon.

9)  A start on the layers dialog -- this will be fleshed out in the
coming weeks.

10) Patterns!!! A pattern selection dialog, a pattern file format
(gpattern) clone tool can clone from either image sources or the
selected pattern. A whole directory full of patterns, Bucket fill tool
can fill from the selected pattern.

11) Paint modes integrated everywhere.  You can bucket fill with a
paint mode, blend with a paint mode, and of course paint with a paint
mode.  Layers can also be combined with the available paint modes.

12) Border and Feather selection commands, which do not have an
interface yet, so use a hard coded radius--this will change soon

13) A new selection tool: "select by color", which allows selection of
areas over the entire image by color.  Something like a global fuzzy
select tool.

14) Lots of the available plug-ins have been included and modified to
work with transparency.  (WARNING: not all of them have been correctly
set up and may need more tinkering)

15) The old channel operation plug-ins have been combined into a
"calculations" plug-in.

16) Palettes have been improved significantly so that they can be
saved and colors named.  A palettes directory comes with the
distribution.  It includes some sample palettes that I threw together.
PLEASE, please, please everyone contribute palette files, because the
ones I created suck.

17) Blend tool has a couple of new modes: conical & square.  I'm
probably going to do some additional work on the interface to this
tool, because it sucks.

18) A new transform type for the transform tool: Perspective.  Allows
any floating selection to be warped in cool ways.  Experiment with
this one!

19) A tool options dialog that can be invoked with control-alt-T, or
from the image popup menu under "dialogs".  This has a bug which cause
it to shrink to nothing on certain tools, but this will be fixed soon.

20) A file selection dialog box that has really cool tab-completion.
There are still bugs in there that will be worked out eventually.  You
can do things like ../../images/*.j?g and hit TAB, and it will expand.

21) Rulers for images--aren't quite set up right yet

22) A magnifying glass tool, for all the people who complained about '+', '-'

23) A pencil tool for very straightforward painting.

24) An eraser tool that erases to transparency on an alpha image and
to the background color otherwise.

25) A move tool for moving layers (not functional yet), and floating
selections.

26) A text dialog with a preview of the chosen font--this dialog has
some problems that will eventually be fixed.

27) Much faster panning in images.

28) Uses less memory by having only one tiling X Image for putting the
image onto the window.  This has advantages and disadvantages.  It's
basically a space/ speed tradeoff.

29) Eliminated floyd-steinberg dithering--some people might not see
this as an improvement.

30) Dithering is done immediately now, not relegated to an idle cycle
process.  This is much nicer on the eyes, and really doesn't make much
difference unless you're running on a very slow machine.

31) Indexed color mode no longer uses it's own colormap, but dithers
to the RGB colormap instead.  (Only applies if your display is 8-bit)
This was necessary for a whole slew of reasons.

32) _Much_ improved handling of colormaps in an effort to alleviate
the colormap flashing experienced by people running the XFree86
server. (and some other X servers as well).  If you run the gimp and
it tells you that you don't have enough colors to satisfy the
requested color cube, don't bother trying to run with the -install
option, because the gimp doesn't take command line arguments right
now.  You can however specify "install-colormap" in your .gimprc file.

33) Gamma adjustment.  This can be very useful for people with
incredibly dim monitors, and for people who work with POV-ray images
or other images that haven't already been gamma corrected.  If you
have gamma correction on, many images you pull off the net will look
like the colors have been "washed out" because they've already been
corrected.  It can also be a bit confusing when saved images don't
look the same when viewed with XV without gamma correction.  This is
set to 1.0 (none) by default.  Use it if you know what you're doing.

34) The representation of transparency in images can be set to your
liking either through the "preferences" dialog invoked from the main
menu, or from the gimprc.

35) Tiff and Png plug-ins have been modified to support transparent
images; both will save and load them.

36) The speed of marching ants used to represent selected areas can be
set through the gimprc.

37) Marching ants can be use color-cycling on 8-bit displays.  This
might be an extremely desirable option for people who have XFree86.
There are unfortunately some bugs in the timeout functions of gtk, so
the ants sometimes go on the fritz.  Another problem with this option
is that it steals 8 additional colors.

38) You can paste into an existing selection with the "paste into"
command from the edit menu.  This allows you to use the existing
selection as a mask--a very nifty feature.

39) Image scaling causes image resizing.  We will include an option in
the magnify tool's option dialog that toggles this behavior.

40) GIMP_DIRECTORY environment variable specifies the directory to
search in to find the gimprc file if a ".gimprc" file is not found in
the users home directory. This opens up the ability for a system
administrator to place the necessary gimp files anywhere on their
system and then to have the gimp be a script which sets the
environment variable to the appropriate location and then calls the
real gimp binary. Note, however, that the gimp still looks in the
users home directory first and no "merging" of gimprc files is done as
of yet.


Have fun...We know there are a ton of bugs, and we know about quite a
few of them.  In order to avoid bug reports clogging up the
gimp-developer mailing list, we've created a gimp-bugs@xcf mail alias
that you can use to submit bug reports.  We'll file these into a
folder and try to get around to fixing them.  We should continue to
use the gimp-developer mailing list as a forum for the bigger design
issues.

In other news, I was planning on starting the gimp-manual, which I
envision as more of a tutorial with appendices for all of the dry,
boring technical details.  I was thinking of writing it in latex, but
since people on the list seem to think SGML is the way to go, I'll
look into that when I get time.  For now, I'm just generating text, so
the formatting can be applied in the future.  Since others seem
interested in the gimp manual, I think we need a good basic outline of
the topics to cover and then divide up the work from there.  I think
it might be nice to have a goal-based manual where you start from
scratch and build up a number of complicated final images, touching on
all of the tools throughout the process.  Maybe using some of
Quartic's stunning title images as final products.  I would also like
to sprinkle page-long tips throughout the book that illustrate some of
the cool hacks people have on their web pages.

Pete claims to be working on documentation for Gtk/Gdk, so that will
hopefully appear in the next few months as well.


Spencer & Peter, (aka S&P :-)

These are the installation instructions for the GIMP.

To compile the GIMP
-------------------

WARNING: Do not remake the `configure' script using autoconf. The
  script has been created using a modified version of autoconf that
  knows how to handle the `--motif-includes' and `--motif-libraries'
  command line options.

1. Configure the GIMP for your system. In the directory that this file
is in type `./configure'. If you're using `csh' on an old version of
System V, you might need to type `sh configure' instead to prevent
`csh' from trying to execute `configure' itself.

The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation, and crates
the Makefile and a configuration header file (`config.h').

If the `configure' script fails for some reason and you know it
shouldn't then you should probably examine the output file
`config.log' for error messages. For instance, if you have motif, but
the configure script says it can't find the library, then you can
check the `config.log' file to find out what went wrong with the test.

On some systems, the `configure' script may be unable to find the X11
include and library directories. These may be specified as arguments
to the `configure' script. For example:

 configure --x-includes="/usr/X11/include" --x-libraries="/usr/X11/lib"

This specifies that the directory "/usr/X11/include" contains the X11
include files and the directory "/usr/X11/lib" contains the X11
libraries. This specification is only necessary if the `configure'
script cannot find them automatically. (The `configure' script will
emit a warning if it fails to locate them).


  Requirements
  ------------

  - The GIMP requires the operating system to support shared memory.
  That is, the `shmget', `shmat' and `shmctl' system calls must exist.
  On several systems we've encountered, the shared memory is
  configurable. See the section on shared memory at the end of this
  document.

  - The GIMP requires X11 R5 or R6. (Actually, it may work on R4, but we
  have not had a chance to test it). The GIMP currently requires that the X
  shared memory extension header files be present. The X-server does not
  actually need to support shared memory and this is only a temporary
  situation until we integrate the configure information with the source
  code.


  If Configuration Fails
  ----------------------

  If automatic configuration fails you will have to edit the makefiles by
  hand. The GIMP comes with 3 standard `Makefiles' and a standard
  `config.h'. These are the files `Makefile.std', `app/Makefile.std',
  `plug-ins/Makefile.std' and `config.h.std'. You will need to copy them
  to the files `Makefile', `app/Makefile', `plug-ins/Makefile' and
  `config.h' respectively. Each file should be examined for anything
  that needs to be changed. For the most part the makefiles should be
  ok. The items that might need to be changed are the include and
  library include directories and the compiler to be used.


2. Configure the plug-ins for your system. In the `plug-ins' directory
you will need to manually edit the Makefile. (This is temporary until
we fix `configure'.) Currently, 2 makefiles exist in the `plug-ins'
directory, `Makefile.make' and `Makefile.gmake'. One is for use with
BSD make (Makefile.make) and the other is for use with GNU make
(Makefile.gmake).

The plug-ins are a vital and necessary part of the GIMP. For example,
all file operations take place through plug-ins. The file format
plug-ins are the most likely to cause problems when compiling.

The basic difficulty in compiling file format plug-ins is that they
depend on various libraries to provide their functionality. For
example, the `jpeg' file format plug-in uses the wonderful
`libjpeg'. The `png' file format plug-in uses `libpng' and `libgz'
(zlib). These libraries may already exist on your system or you may
have to download them (See the next section for pointers to source).


  Dependencies
  ------------

  - `gif' requires no extra libraries.

  - `jpeg' requires the `libjpeg' library, either v5 or v6. `libjpeg' is
  available from: ftp://ftp.uu.net/graphics/jpeg. Compiling `libjpeg' is
  straight forward. In fact, it is one of the easiest packages to
  compile that I've ever encountered. (No troubles what so ever in
  compilation on several different systems).

  - `png' requires the `libpng' library and the `libgz'
  library. (Actually, it only requires `libpng' which requires
  `libgz'). `libpng' is available from: ftp://ftp.uu.net/graphics/png
  and ftp://ftp.group42.com/pub/png. `libgz' (zlib) is available from:
  ftp://ftp.uu.net/graphics/png. (Note: version 0.71 of libpng is known
  to work...later versions may work but there are no guarantees.)

  - `tiff' requires the `libtiff' library. `libtiff' is available from:
  ftp://ftp.uu.net/graphics/tiff.

  - `xpm' requires the `libXpm' libray and the `libX11' library. If
  you have X11 running then you almost definately have `libX11' and
  probably have `libXpm'. `libXpm' is also available from:
  ftp://ftp.x.org/contrib.

3. Install the `gimprc' file in your home directory. This involves
moving (or copying) the `gimprc' file that comes with the GIMP into
your home directory and renaming it `.gimprc'. The GIMP needs to be
able to find this file in order to load or save any images. You may
also need to edit certain paths specified in the file. Such as the
"plug-in-path" and the "swap-path". Doing so should be
self-explanatory (as the file is heavily commented) or you can refer
to the GIMP documentation.


Compiling Tips
--------------

This section contains tips for compiling under certains systems. The
tips come from us and from you. So if you compile the GIMP on a new
system send us a note explaining any problems and, if possible
solutions, and we will include it here.


  Linux
  -----

  HPUX
  ----

  Using gcc and gmake we've had no troubles compiling under HPUX on
  some HP 9000 715/80's and 712/80's.

  Solaris
  -------

  SunOS
  -----

  IRIX
  ----

  AIX
  ---


Shared Memory
-------------

Shared memory is a means of communicating large pieces of information
between separate processes. Basically, UNIX restricts one process from
examining or modifying another processes memory. Shared memory is a
means by which a process can allocate a piece of memory which is
viewable by other processes. However, some systems restrict the size
of a piece of shared memory and/or the number of pieces of shared
memory that may exist at any one time.

If you have one of the following systems then you can read what we
have had to do to adjust the shared memory configuration. (Note: you
may have to ask your system administrator to make these
changes...unless, of course, you are the system administrator).

  Linux
  -----

  Linux is a free POSIX operating system for IBM PCs and
  compatibles. By default, the kernel is configured with a maximum
  shared memory segment size of 3.98 megs. This is probably large enough
  for most users, but if you need to work with large images (larger than
  1024x1024), then you will need to increase this value. It is easily
  done by anyone who has recompiled their kernel before. In the
  "include/linux/shm.h" header file in the kernel source tree, change
  the value of `SHMMAX' to a larger value. The largest possible value is
  `0x2000000'. (The current value is `0x3fa000'). This change will make
  it possible for shared memory segments to be up to 32 megs in
  size. (Which would be an RGB image of 2890x2890). I'm not sure what,
  if any, side effects this may have. But I have made this change and
  have experienced no negative effects...yet.


  Solaris
  -------

  By default Solaris restricts both the maximum size of a shared
  memory segment and the number of shared memory segments to
  ridiculously small values. To change these values you must edit the
  "/etc/system" file. The lines in question refer to setting the symsys
  values. Specifically the following changes have worked well for us:

   set shmsys:shminfo_shmmax = 0x2000000
   set shmsys:shminfo_shmmni = 0x1000
   set shmsys:shminfo_shmseg = 0x100

  This sets the maximum shared memory segment size to 32 megs and the
  number of shared memory segments to 256.


  HPUX
  ----

  HP seems to have very reasonable limits for shared memory.  We have
  had no problems with the default values.

  SGI IRIX
  --------

  Like HP, seems reasonable.

  SUNOS
  -----

  The default values are too low for useful work.  They can be set
  by recompiling the kernel.  (Need precise details here)