*** 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)