TclMagick binaries

kroc - 17 dec 2004 : I've done TclMagick 0.43 binary package for linux x86 using Tcl/Tk 8.4 headers and ImageMagick-6.1.8.

ImageMagick-6.1.8

ImageMagick-6.1.8 was built from 6.1.8-2 official sources with this command:

 ./configure --prefix=/usr/local --without-perl --with-quantum-depth=8 --disable-installed --disable-shared\
 --with-gslib -without-magick-plus-plus --disable-largefile

TclMagick

TclMagick0.44 was built from SF sources with this command:

 ./configure --prefix=/usr/local --with-magick=/usr/local/bin/Wand-config --with-tcl=/usr/local/lib\
 -with-tk=/usr/local/lib --with-tclinclude=/usr/local/include --with-tkinclude=/usr/local/include

As I want this package could be starkified, I linked binaries to .a libs (instead of .so).

Compatibility

I tried this binary package with Tclkit 8.4.8, 8.4.9 and 8.5.a2 and the only problem I've found was that TclMagick doesn't work if you load TkImg too!

2004/12/17 sheila Which platforms did you check Img compatibility on? It works for me.

2005/01/10 kroc this was due to a bug davidw fixed 2005/01/09.


1) Would you be willing to put these on the sourceforge TclMagick download site now and in the future if we give you access?

2) Are you able to distill a test case that demonstrates the interaction problems between TclMagick and Img? I am not sure we will be able to fix it soon, but at least we will have a record of it.

Thanks, davidw

Kroc - 2004/12/24

1) Of course, with pleasure.

2) I'll post something on TclMagick mailing list ASAP. I warned Jeff about this too.

MM I some form of authentication involved in this? I'm interested in binaries and I can trust davidw, but Kroc I do not know who you are (nothing personal).

davidw Right, this is one reason among many that keeping the downloads on the official site would be a good idea. By the way, I've met David (Kroc), and he's a nice guy, you can trust him :-) But the point stands.

Kroc I fully explained how to do it yourself here so nobody have to trust me: you can build your own binaries instead of using mine.


Simple compilation Here's how I compile tclmagick to avoid a lot of problems:

    gcc -shared -DUSE_TCL_STUBS -fPIC -DUSE_TK_STUBS -DUSE_TK_STUBS -I. \
        -I/usr/local/include -L/usr/local/lib -L/usr/lib -lWand \
        -o tclmagick.so -O2 -DNDEBUG -Wl,-s TclMagick.c

It works fine with the Img extension, of course.

If you want pre-compiled binaries and examples to avoid tkmagick (which isn't needed anyway), see http://pragana.net -- Rildo Pragana

davidw - Rildo, I see on your web page that you mention some problems and bugfixes. Rolf and I do our best to make the package work as best as possible on as many platforms as possible, but we can't improve it if you don't file problem reports on sourceforge, or at least send mail to the list explaining what's wrong. I would be "muito obrigado" if you were to do so:-) sheila: afaik it's the comma after "dissolve" on line 1034 in TclMagick.c, but I have not diffed every file.

aricb writes: Rildo, in the above call to gcc, is the "-DUSE_TK_STUBS -DUSE_TK_STUBS" intentional, and if so, can you explain what it does that plain old "-DUSE_TK_STUBS" doesn't do?

Rildo Pragana - Sorry, I din't intended to start a flame war... The duplicate use of USE-TK_STUBS is just because of my lazyness. About the "simple compilation", I just found that the configure script is generating too much dependencies (more that really needed) on the library, so it is less portable that way. You notice I only link against libWand (-lWand) and that way the tclmagick extension will be able to run in systems with older glibc versions, for instance. David, I suggest you review the autoconf generating procedure, though I'm no expert in such things. Sorry for any loud noise I made...

davidw - I'll have a look at the auto* procedure, although I'm not sure much can be done... it's ugly stuff. Do file these sorts of reports on the mailing list or with sourceforge in the future, so that both Rolf and I are sure to see them. Thanks!


Providing binaries is great, but let's try and find a way to get them on the official site so that there is some degree of reliability and continuity associated with them.

TkMagick isn't needed, that's one of the advantages of TclMagick over Img. However, it is convenient if you use Tk with your images!

2004/12/20 sheila I'm curious about how people handle the use of TclMagick without TkMagick. I find TkMagick to be useful because it allows me to use the results of TclMagick without requiring the intermediate step of writing to a file and then using it with an image create command. Is there another way to get around this? I preferred not to have the overhead of worrying about where I should write an intermediary file, and then cleaning it up afterwards (have to include a lot more error handling).

Rildo Pragana - You may use readblob and writeblob functions to convert magick wand images into strings suitable to use with tk image put subcommand. Please see example I included in the binaries cited above. The examples use Img because tk core only support gif and pnm image formats, and I wanted to do the same with jpegs.


One of the principal reasons I got involved with TclMagick is because of Rivet. I needed something that didn't require an X connection to function, and TclMagick was perfect because of that. I can create images for the web on the fly.


Tcl 8.5 compatibility?

I have a TclMagick.dll built on Windows 2000 against Tcl/Tk 8.4. This DLL immediately crashes (exits the process on segment violation) when I load it into tclsh 8.5a2 (same in earlier 8.5's also). What is the expected behavior? If I re-build the Tclmagick.dll against 8.5 should I expect it to work? Thanks for any reports or feedback. RT


Tcl 8.6 compatibility?

HolgerJ 2015-06-26 Unfortunately, TclMagick is (no longer?) included in the repositories of Ubuntu. Is it in any other Linux distribution?

Trying to build TclMagick (which obviously hasn't been touched for over ten years) on a current (64-bit) Linux system doesn't work. After unzipping (no tar file available) with the -a option in order to change the crlf line end characters to lf, so the scripts can be run, installing the sources for Tcl, Tk and ImageMagick, adding options for threading and shared libraries, removing the references to special versions (1.8) of auto tools, I could run 'sh genconf.sh' thus creating the 'configure' file.

  ./configure --with-tcl=/usr/lib/tcl8.6 --with-tk=/usr/lib/tk8.6 --enable-threads -with-magick=/usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/bin-Q16/Magick-config --enable-64bit --enable-shared 

suceeded as well, but the 'make' failed with a lot of obscure errors from 'libtool'.