Imager.pm needs a concept index
[imager.git] / README
CommitLineData
02d1d628 1================================================================
7ad895ee 2Copyright (c) 1999-2001 Arnar M. Hrafnkelsson. All rights reserved.
8f22b8d8 3Copyright (c) 2004 Anthony Cook.
02d1d628
AMH
4This program is free software; you can redistribute it and/or
5modify it under the same terms as Perl itself.
6================================================================
7
8>> THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY WHATSOEVER <<
b8c2033e
AMH
9If you like or hate Imager, please let us know by sending mail
10to imager@imager.perl.org
02d1d628
AMH
11
12================================================================
13
14
15========================
161. Patent infringements?
17========================
18
19Imager as such contains no patented algorithms. The external
20libraries (which are not written by me) may or may not contain
21patented algorithms. YOU ARE SOLELY RESPONSIBLE FOR OBTAINING
22LICENSE(S) TO USE SUCH LIBRARIES SHOULD YOU NEED ANY.
23
24
25========================
262. Compiling and testing
27========================
28
29Some care has been taken to make the installation as smooth as
30possible. This is rather hard due to the difference between operating
31systems and site setups. To get started just type
32
33$ perl Makefile.PL
34
35It should blurb out a list of which libraries were found and which
36not. If you add a library to the machine after installing Imager it
37does not automatically become available in Imager. It only uses the
38libraries that are found. If the list of found libraries is not what
39you expected, then the Makefile.PL is either not searching in the
40right directories or your box does not have the libraries you think it
41does. For a list of where to get the libraries have a look at
423. External dependencies. To widen the search path for libraries and
43include files set the IM_INCPATH and IM_LIBPATH variables. The
44environment variables that matter when Makefile.PL is run are
45
46IM_INCPATH colon separated list of paths to extra include files
47IM_LIBPATH colon separated list of paths to extra library files
48
49IM_VERBOSE turns on verbose mode for the library scanning and such
50IM_MANUAL to manually select which libraries are used and which not
51IM_NOLOG if true logging will not be compiled into the module
52IM_DEBUG_MALLOC if true malloc debugging will be compiled into the module
53 do not use IM_DEBUG_MALLOC in production - this slows
54 everything down
55
56IM_CFLAGS Extra flags to pass to the compiler
57IM_LFLAGS Extra flags to pass to the linker
58IM_DFLAGS Extra flags to pass to the preprocessor
59
60
61
62When finding the libraries has been sorted out it's time for
63
64$ make
65
66and if that works then do
67
68$ make test
69
70If either fails do take a peek at the file errep.perl. It's creates a
71file report.txt. This is some information which will help me discover
72where the problem is so I can try to fix it in future releases. If
73you find running it ok (just remember - no warranty!) please send the
74report.txt via email to addi@umich.edu .
75
76Troubleshooting tips:
77
78A common problem is that libgif/libungif are sometimes linked to the X
79libraries and then running the tests fails. In that case something
80like:
81
82$ IM_LFLAGS="-L/usr/X11R6/lib -lX11" perl Makefile.PL
83
84Which simply sets the environment variables for the extra libraries
85to include the X libraries (which we do not use at all, but must
86included since libgif has been linked with it).
87
feba68a3
TC
88Otherwise you could just build giflib without any X11 dependencies:
89
90 # must be a clean tree
91 cd giflib-4.1.0
92 ./configure --without-x ...
93
02d1d628
AMH
94Also note that libgif has a few bugs: You can run something like
95
e3ddf807 96$ perl -Iblib/lib -Iblib/arch t/t105gif.t
02d1d628
AMH
97
98This way you can see what comments the test script prints out.
e3ddf807 99t/t105gif.t checks for an bug in libgif and prints out a patch
02d1d628
AMH
100if that bug is present, note that this bug only affects the more
101"advanced" features of libgif.
102
48412c20
AMH
103If for some reason you have libungif-devel package installed but
104not libungif on RedHat then you will probably get lots of errors
105like undefined symbol: FreeSavedImages when running make test.
106Install libungif package to fix it.
107
0b836ff8
TC
108Stock libungif 4.1.2 or later seems to fix all of the bugs, if you
109have a problem that version of linungif (or later), let us know and
110we'll look into it.
48412c20 111
4f337d03
AMH
112Imager needs to have a libtiff version of at least 3.5.5. In the
113future we might consider supporting older libtiff versions. For
114now you can either configure Imager manually (by
02d1d628
AMH
115setting the IM_MANUAL environment variable to 1, in sh:
116
117$ IM_MANUAL=1 perl Makefile.PL
118
119and simply say no to tiff support when asked if you want it, the same thing
120can be used to circumvent problems in gifs to get Imager going.
121
122
123If it worked just continue with the installation as normally
124(with make install).
125
126========================
1273. External dependencies
128========================
129
130Some hints about getting the Imager module to find the libraries it
131needs for specific features. The libraries it uses are:
132
31c01e81
TC
133 jpeg: http://www.ijg.org/files/
134 ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
135
136ftp.uu.net is still linked from many places, including the Independent
137JPEG Groups's home page, but it is non-functional.
138
139 png: http://www.libpng.org/pub/png/libpng.html
02d1d628 140
ee0083bf 141 you also need zlib to use png: http://www.gzip.org/zlib/
31c01e81
TC
142We have encountered problems with libpng 1.0.1, which were fixed in 1.0.5
143Note: you should probably be using zlib 1.1.4, since 1.1.3 has a
144potential security problem.
02d1d628 145
31c01e81 146 gif: http://sourceforge.net/projects/libungif
02d1d628 147
31c01e81
TC
148giflib/libungif has come a long way since the buggy versions around
149when Imager's gif support code was written. Preferably you should get
f1967c11 150at least version 4.1.3. If you have a recent Linux distribution you
31c01e81
TC
151should be safe with whatever giflib it provides, but if you're
152building from source, please try to use the latest version.
feba68a3 153
f1967c11
TC
154If you download giflib (as opposed to libungif) 4.1.3 from
155sourceforge, make sure you apply the patch referenced at:
156
157https://sourceforge.net/tracker/index.php?func=detail&aid=981255&group_id=102202&atid=631306
158
159libungif 4.1.3 does not need this patch.
160
31c01e81
TC
161At the time of writing you will need to manually select to install the
1624.1.2-1 of cygwin's libungif package.
feba68a3 163
02d1d628
AMH
164 tiff: http://www.libtiff.org/
165
31c01e81 166 t1: http://www.ibiblio.org/pub/Linux/libs/graphics/
02d1d628
AMH
167
168 tt: http://www.freetype.org/
169
02d1d628
AMH
170Precompiled versions of some of the libraries might be found at:
171
172AIX:
31c01e81 173 http://www.bullfreeware.com/
02d1d628
AMH
174
175
176
177========================
1784. Logging and debugging
179========================
180
181Logging is compiled in by default - if you should want to get of it
182from the binaries you can do so by setting the env IMAGER_NOLOG
183to something. If you want to enable malloc debugging to check for leaks
184then set IMAGER_DEBUG_MALLOC to something. Needless to say it is
185pretty pointless to have malloc debug enabled with no logging since you
186can never see the malloc information that way.
187
188
02d1d628 189=================
8f22b8d8 1905. Win32 Support
02d1d628
AMH
191=================
192
193Imager can be installed on Win32 systems. This was ported and tested
faa9b3e7
TC
194with Microsoft Visual C++ 6.0 with build 623 of ActivePerl. You can
195use all of the features of Imager. You can also use Win32 GDI fonts
196directly by supplying the 'face' parameter to Imager::Font->new(...).
197
198I've tested with both MSVC++ 6.0 and cygwin (perl 5.6.1).
02d1d628 199
31c01e81
TC
200If you see an error under cygwin during testing along the lines of:
201
202 C:\cygwin\bin\perl.exe: *** unable to remap C:\cygwin\...some dll to the
203 same address as parent (0x...) != 0x....
204
205you will need to install the cygwin rebase package and run:
206
207 $ rebaseall -v
208
209Under cygwin you will need at least libungif 4.1.2 installed to
210prevent lockups in the gif test scripts. At the time of writing you
211need to select libungif-4.1.2-1 manually in the setup.exe installation
212tool.
213
02d1d628
AMH
214If you have any problems with the Win32 support, please email
215tony@develop-help.com (don't forget to use nmake instead of make).
216
217=======================
8f22b8d8 2186. General information
02d1d628
AMH
219=======================
220
221The Imager module homepage is currently at:
222
31c01e81 223 http://imager.perl.org/
02d1d628
AMH
224
225The current docs are rather bad as I've been busy adding features
226but hopefully they will be updated soon. Until then you'll just
227have to use the source. The test scripts might also be a good idea.
228By activating the the #init_log lines in the test script you can get
229rather verbose debugging output from the C code.
230
231
232========================
8f22b8d8 2337. Thanks
02d1d628
AMH
234========================
235
236Thanks go to:
237 Tony Cook ( TonyC )
238 Claes Jacobson ( Claes )
239 Philip Gwyn ( Leolo )
df917a00 240 Michael Slade ( Micksa )
23bf355e 241 ( Cogent )
02d1d628
AMH
242 Brad Murray ( HalfJack )
243 Nicholas Dronen ( Veblen )
244 Michael G Schwern ( Schwern )
245 Rocco Caputo ( Dngor )
246 Graham barr ( Gbarr )
247 Mark-Jason Dominus ( Mjd )
248 Jerome
249 Jason Alexander ( Jalex )
250 Randal R. Schwartz ( Merlyn )
251 Tkil ( )
252 Artur Bergman ( Sky )
253 Luc St-Louis ( Lucs )
254 PerlJam ( )
255 Roderick Schertler ( Roderick )
256 Nathan Torkington ( gnat )
257
258(and just to play it safe) all those I forgot to mention.