When tiff was upgraded to 4.0, camlimages stopped building. Both
caml and tiff redefine several common typedefs such as uint32. Unlike
the 3-series of tiff, tiff-4.0 also redefined int64 and uint64. The
existing hack didn't foresee int64 and uint64 getting used, and so
camlimages broke.
One patch was created and another revised to override the caml typedef
definitions with macros before tiff.h is included. The original
tiffread.c patch was reworked to override uint16 and uint32 *again*
after the tiff.h include and not before as it was originally. Very ugly
all around, but I just extended what camlimages was already doing.
4.0.1
* Minor bug fixes, patch submitted by Damien Doligez
4.0.0
* Stop supporting the autoconf build. (It might works though.)
* Instead of autoconf, using omake and ocamlfind
* Subpackages: no need to link codes for uninterested format.
* Stop supporting lablgtk1
- Ximage2 module is now Ximage, and the older Ximage is removed
- OXimage2 module is now OXimage, and the older OXimage is removed
3.2.0
* Misnamed version. It should have been 3.0.3 or something.
* Small bug fix for image load memory allocation vulnerability
3.0.2
* O'Caml 3.11 port.
* Integer overflow vulnerability fix for pngread.c
3.0.1
* Alpha channel support for png images.
3.0.0
* new version numbering scheme
* autoconf and makefiles cleanup
* fix examples compilation
2.2.1
* Now compiling with -warn-error -A
alternative from mk/jpeg.buildlink3.mk
This allows selection of an alternative jpeg library (namely the x86 MMX,
SSE, SSE2 accelerated libjpeg-turbo) via JPEG_DEFAULT=libjpeg-turbo, and
follows the current standard model for alternatives (fam, motif, fuse etc).
The mechanical edits were applied via the following script:
#!/bin/sh
for d in */*; do
[ -d "$d" ] || continue
for i in "$d/"Makefile* "$d/"*.mk; do
case "$i" in *.orig|*"*"*) continue;; esac
out="$d/x"
sed -e 's;graphics/jpeg/buildlink3\.mk;mk/jpeg.buildlink3.mk;g' \
-e 's;BUILDLINK_PREFIX\.jpeg;JPEGBASE;g' \
< "$i" > "$out"
if cmp -s "$i" "$out"; then
rm -f "$out"
else
echo "Edited $i"
mv -f "$i" "$i.orig" && mv "$out" "$i"
fi
done
done
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
packages with the modular Xorg equivalent. Those are falling back
to the old location by default, so this commmit doesn't change
dependencies.
graphics/xpm ==> x11/libXpm
fonts/Xft2 ==> x11/libXft
x11/Xfixes ==> x11/libXfixes
x11/xcursor ==> x11/libXcursor
x11/Xrender ==> x11/libXrender
x11/Xrandr ==> libXrandr
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto