Opened 14 years ago

Closed 14 years ago

#3478 closed defect (fixed)

configure does not detect libGD version dependencies

Reported by: antti Owned by: aboudreault
Priority: lowest Milestone: 6.0 release
Component: Build Problems Version: unspecified
Severity: trivial Keywords: libgd configure
Cc: dmorissette

Description

The configure script in 4.10 does not test the libGD version and will accept older libraries that are missing essential functions. Make fails when functions introduced with later versions of libGD are encountered: (i.e. gdImageCreatePaletteFromTrueColor, gdImageGetTrueColorPixel). Tested 5.6

Solved by upgrading to more recent version of libGD. Should autoconf test known dependencies? Logged a ticket to provide Google bait in case other people find themselves on systems with older libGD installs.

Change History (7)

comment:1 by dmorissette, 14 years ago

Cc: dmorissette added
Milestone: 6.0 release
Owner: changed from dmorissette to aboudreault

Does "Tested 5.6" mean that you tested 5.6 and you confirm that the issue is still present in that version (I would not be surprised if that was the case, but would like to get confirmation before we look into this).

in reply to:  1 comment:2 by antti, 14 years ago

Replying to dmorissette:

Does "Tested 5.6" mean that you tested 5.6 and you confirm that the issue is still present in that version (I would not be surprised if that was the case, but would like to get confirmation before we look into this).

I started testing 5.6.3 for this but was stopped by a detected dependency. I had a look at config.log and it strongly suggests the GD part of the config script hasn't changed:

configure:6081: checking for GD 2.0.16 or higher...
configure:6314: checking for gdFontCacheSetup in -lgd
configure:6344: gcc -o conftest -g -O2 -fPIC   conftest.c -lgd -ljpeg -lfreetype -lpng -lz   -lm -lstdc++  >&5
configure:6350: $? = 0
configure:6354: test -z
                         || test ! -s conftest.err
configure:6357: $? = 0
configure:6360: test -s conftest
configure:6363: $? = 0
configure:6376: result: yes
configure:6462: result:         using libgd 2.0.16 (or higher) from system libs (-L/usr/lib -lgd -ljpeg -lfreetype -lpng -lz  ).
configure:7231: checking for gdImageCreate in -lgd
configure:7261: gcc -o conftest -g -O2 -fPIC   conftest.c -lgd -ljpeg -lfreetype -lpng -lz    -lm -lstdc++  >&5
configure:7267: $? = 0
configure:7271: test -z
                         || test ! -s conftest.err
configure:7274: $? = 0
configure:7277: test -s conftest
configure:7280: $? = 0
configure:7293: result: yes
configure:7305: checking for gdImageGif in -lgd
configure:7335: gcc -o conftest -g -O2 -fPIC   conftest.c -lgd -L/usr/lib -lgd -ljpeg -lfreetype -lpng -lz    -lm -lstdc++  >&5
/tmp/ccEqFR77.o(.text+0x18): In function `main':
/build/mapserv/mapserver-5.6.3/conftest.c:25: undefined reference to `gdImageGif'
collect2: ld returned 1 exit status
configure:7341: $? = 1
...
configure:7931: result:         using GD ( -DUSE_GD_PNG -DUSE_GD_JPEG -DUSE_GD_WBMP -DUSE_GD_FT -DGD_HAS_GETBITMAPFONTS) from system libs.

comment:3 by aboudreault, 14 years ago

The fail about gdImageGif is ok, mapserver will just not support that image format if it isn't available. gdImageGetTrueColorPixel is checked in the configure script. I assume your build fails because gdImageCreatePaletteFromTrueColor wasn't available ? I could add a check for that method.

in reply to:  3 comment:4 by antti, 14 years ago

Replying to aboudreault:

Yes that would work. The bulld of 4.10 failed because gdImageCreatePaletteFromTrueColor was absent. The 5.6.3 build couldn't be done as there's a bunch of other obsolete libraries. Ignorant question: Why not use 'gdlib-config --version'?

comment:5 by aboudreault, 14 years ago

Not sure why... it could have been use but I guess they kept the way they begin with. So, with the use ofgdImageCreatePaletteFromTrueColor, the gd dependencies is 2.0.28. I'm going to bump the dependency to that version and add a check using gdlib-config --version.

comment:6 by dmorissette, 14 years ago

gdlib-config has not always been available. Not sure when it was added, but if we start relying on it we should make sure all versions of GD that we accept come with gdlib-config. Please also update the README.CONFIGURE accordingly

comment:7 by aboudreault, 14 years ago

Resolution: fixed
Status: newclosed

Since the users are used to pass the gd installation path to the configure and that I could easily modify the script to detect gd version 2.0.28, I've not used gdlib-config.

Fixed and committed in r10241.

Note: See TracTickets for help on using tickets.