Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Jun 2014 20:20:42 +0000 (UTC)
From:      Mikhail Teterin <mi@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r357202 - in head/graphics/libimg: . files
Message-ID:  <201406092020.s59KKgGh012283@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mi
Date: Mon Jun  9 20:20:42 2014
New Revision: 357202
URL: http://svnweb.freebsd.org/changeset/ports/357202
QAT: https://qat.redports.org/buildarchive/r357202/

Log:
  Upgrade from 1.2.4 to 1.4.2. Allow for staging.

Added:
  head/graphics/libimg/files/patch-config   (contents, props changed)
Deleted:
  head/graphics/libimg/files/Makefile.bsd
  head/graphics/libimg/files/Makefile.tkstep80
  head/graphics/libimg/files/patch-warnings
  head/graphics/libimg/files/pre-tk84-warnings
  head/graphics/libimg/files/tk84-Tk_PhotoPutBlock
  head/graphics/libimg/files/tk84-warnings
  head/graphics/libimg/files/tk85-Tk_PhotoPutBlock
Modified:
  head/graphics/libimg/Makefile
  head/graphics/libimg/distinfo
  head/graphics/libimg/files/patch-jpeg
  head/graphics/libimg/files/patch-png
  head/graphics/libimg/files/patch-tiff
  head/graphics/libimg/pkg-plist

Modified: head/graphics/libimg/Makefile
==============================================================================
--- head/graphics/libimg/Makefile	Mon Jun  9 19:58:33 2014	(r357201)
+++ head/graphics/libimg/Makefile	Mon Jun  9 20:20:42 2014	(r357202)
@@ -2,57 +2,52 @@
 # $FreeBSD$
 
 PORTNAME=	libimg
-PORTVERSION=	1.2.4
-PORTREVISION=	9
+PORTVERSION=	1.4.2
 CATEGORIES?=	graphics tk
 MASTER_SITES=	SF/tkimg/tkimg/${PORTVERSION:R}
-DISTNAME=	img${PORTVERSION}
+DISTNAME=	tkimg${PORTVERSION}
 
 MAINTAINER=	mi@aldan.algebra.com
 COMMENT=	A library of image format handlers for Tk4.1 and later
 
+BUILD_DEPENDS=	dtplite:${PORTSDIR}/devel/tcllib
 LIB_DEPENDS=	libpng15.so:${PORTSDIR}/graphics/png \
 		libjpeg.so:${PORTSDIR}/graphics/jpeg \
 		libtiff.so:${PORTSDIR}/graphics/tiff
 
-DIR=		lib/Img1.2
-
-SHLIB_NAME=	libimg.so.1
-SHLIB_LINK=	${SHLIB_NAME:R}
-
-PLIST_SUB+=	DIR="${DIR}" SHLIB_NAME="${SHLIB_NAME}" \
+PLIST_SUB+=	SHLIB_NAME="${SHLIB_NAME}" \
 		SHLIB_LINK="${SHLIB_LINK}"
 
-WRKSRC=		${WRKDIR}/img${PORTVERSION}
-MAKEFILE=	${FILESDIR}/Makefile.bsd
+WRKSRC=		${WRKDIR}/tkimg${PORTVERSION:R}
 USES=		tk
-MAKE_ENV+=	TCL_VER=${TCL_VER}
+USE_BZIP2=	yes
 
 # We don't need the bundled libraries:
-EXTRACT_AFTER_ARGS=	--exclude '*/libz/*' \
+EXTRACT_AFTER_ARGS=	--exclude '*/libz/*' --exclude zlib \
+		--exclude 'config.*' --exclude Makefile \
 		--exclude '*/compat/*' --exclude '*/libtiff/*' \
 		--exclude '*/libjpeg/*' --exclude '*/libpng/*'
-
-MAKE_ARGS=	PORTVERSION="${PORTVERSION}" LOCALBASE="${LOCALBASE}" \
-		MKDIR="${MKDIR}" INSTALL_DATA="${INSTALL_DATA}" \
-		SHLIB_NAME="${SHLIB_NAME}" \
-		DIR="${DIR}"
-
-USE_LDCONFIG=	yes
+MAKE_ARGS+=	INSTALL_ROOT="${STAGEDIR}"
+USE_AUTOTOOLS=	autoconf
+CONFIGURE_ARGS=	--with-tcl="${TCL_LIBDIR}" --with-tk="${TK_LIBDIR}"
+CONFIGURE_ENV=	WRKDIR="${WRKDIR}"
+
+post-patch:
+	${REINPLACE_CMD} -E -e 's,"(zlib|tiff|jpeg|png)tcl.h",<\1.h>,' \
+		-e 's,jpeg\.h,jpeglib.h,' ${WRKSRC}/*/*.[ch]
+.for d in jpeg png tiff zlib
+	touch ${WRKDIR}/$dtclConfig.sh
+.endfor
+
+post-configure:
+.for l in jpeg png tiff
+	${REINPLACE_CMD} -E -e 's,^SHLIB_LD_LIBS[[:space:]]*=[[:space:]]*(.*),SHLIB_LD_LIBS=\1 -l$l,' \
+		-e 's,-lpng$$,-lpng15,' ${WRKSRC}/$l/Makefile
+.endfor
 
 post-install:
-	${MKDIR} ${STAGEDIR}${DOCSDIR}
-	${INSTALL_DATA} ${WRKSRC}/doc/* ${STAGEDIR}${DOCSDIR}
-
-.include <bsd.port.pre.mk>
-
-.if ${TCL_VER} == 8.4
-PKGNAMESUFFIX=	-tk84
-EXTRA_PATCHES=	${FILESDIR}/tk84-Tk_PhotoPutBlock ${FILESDIR}/tk84-warnings
-CONFLICTS=	libimg-tkstep-1.*
-.else
-EXTRA_PATCHES=	${FILESDIR}/tk85-Tk_PhotoPutBlock ${FILESDIR}/tk84-warnings
-CONFLICTS=	libimg-tk84-1.* libimg-tkstep-1.*
-.endif
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/msgs/
+	${INSTALL_DATA} ${WRKSRC}/msgs/*.msg ${STAGEDIR}${EXAMPLESDIR}/msgs/
+	${INSTALL_SCRIPT} ${WRKSRC}/demo.tcl ${WRKSRC}/tkv.tcl ${STAGEDIR}${EXAMPLESDIR}/
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>

Modified: head/graphics/libimg/distinfo
==============================================================================
--- head/graphics/libimg/distinfo	Mon Jun  9 19:58:33 2014	(r357201)
+++ head/graphics/libimg/distinfo	Mon Jun  9 20:20:42 2014	(r357202)
@@ -1,2 +1,2 @@
-SHA256 (img1.2.4.tar.gz) = 1e3cb9c28fdf1ef87cd7c379ba1eb46988524d42120ae2d22d856a2dfee71fa0
-SIZE (img1.2.4.tar.gz) = 1672758
+SHA256 (tkimg1.4.2.tar.bz2) = bcced9c9e799e256683885ab703bc6777c95e415ed6f0b8c18793057fd87b866
+SIZE (tkimg1.4.2.tar.bz2) = 5541116

Added: head/graphics/libimg/files/patch-config
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/libimg/files/patch-config	Mon Jun  9 20:20:42 2014	(r357202)
@@ -0,0 +1,60 @@
+--- base/Makefile.in	2013-11-21 17:03:14.000000000 -0500
++++ base/Makefile.in	2014-06-09 15:29:06.000000000 -0400
+@@ -432,5 +432,5 @@
+ 	    $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir); \
+ 	fi
+-	$(INSTALL_DATA) tkimgConfig.sh $(DESTDIR)$(libdir)
++	$(INSTALL_DATA) tkimgConfig.sh $(DESTDIR)$(libdir)/Img
+ 
+ #========================================================================
+--- Makefile.in	2013-11-21 17:03:12.000000000 -0500
++++ Makefile.in	2014-06-09 15:13:46.000000000 -0400
+@@ -58,5 +58,5 @@
+ 
+ # Directory where libimg.a is at run-time:
+-LIB_RUNTIME_DIR =	$(libdir)/$(PACKAGE_NAME)$(PACKAGE_VERSION)
++LIB_RUNTIME_DIR =	$(libdir)/$(PACKAGE_NAME)
+ 
+ # Directory in which to install the archive libimg.a:
+@@ -145,5 +145,5 @@
+ 	mv pkgIndex.tcl Img/exec_prefix/lib/Img/pkgIndex.tcl
+ 	chmod ugo+w     Img/exec_prefix/lib/Img/pkgIndex.tcl
+-	for p in Img/exec_prefix/lib/*.sh ; do \
++	for p in Img/exec_prefix/lib/Img/*.sh ; do \
+ 		sed -e 's#$(libdir)/[^/ ]*\([/ ]\)#$(LIB_RUNTIME_DIR)\1#' \
+ 			$$p > $$p.1 && mv -f $$p.1 $$p ; \
+@@ -156,5 +156,5 @@
+ 	done
+ 	mkdir -p $(INSTALL_ROOT)$(libdir)
+-	for p in Img/exec_prefix/lib/*.sh ; do \
++	for p in Img/exec_prefix/lib/Img/*.sh ; do \
+ 		$(INSTALL_PROGRAM) $$p $(INSTALL_ROOT)$(libdir)/`basename $$p` ; \
+ 	done
+--- configure.in	2014-06-09 15:13:46.000000000 -0400
++++ configure.in	2013-11-21 17:03:14.000000000 -0500
+@@ -110,16 +110,12 @@
+ 
+ TEA_CONFIG_COLLECT
+-TEA_CONFIG_SUBDIR(zlib,       [--disable-option-checking])
+-TEA_CONFIG_SUBDIR(libpng,     [--with-zlibtcl=`pwd`/zlib --disable-option-checking])
+-TEA_CONFIG_SUBDIR(libtiff,    [--disable-option-checking])
+-TEA_CONFIG_SUBDIR(libjpeg,    [--disable-option-checking])
+ TEA_CONFIG_SUBDIR(base,       [--disable-option-checking])
+ TEA_CONFIG_SUBDIR(bmp,        [--with-tkimg=`pwd`/base --disable-option-checking])
+ TEA_CONFIG_SUBDIR(gif,        [--with-tkimg=`pwd`/base --disable-option-checking])
+ TEA_CONFIG_SUBDIR(ico,        [--with-tkimg=`pwd`/base --disable-option-checking])
+-TEA_CONFIG_SUBDIR(jpeg,       [--with-tkimg=`pwd`/base --with-jpegtcl=`pwd`/libjpeg --disable-option-checking])
++TEA_CONFIG_SUBDIR(jpeg,       [--with-tkimg=`pwd`/base --with-jpegtcl="$WRKDIR" --disable-option-checking])
+ TEA_CONFIG_SUBDIR(pcx,        [--with-tkimg=`pwd`/base --disable-option-checking])
+ TEA_CONFIG_SUBDIR(pixmap,     [--with-tkimg=`pwd`/base --disable-option-checking])
+-TEA_CONFIG_SUBDIR(png,        [--with-tkimg=`pwd`/base --with-pngtcl=`pwd`/libpng --with-zlibtcl=`pwd`/zlib --disable-option-checking])
++TEA_CONFIG_SUBDIR(png,        [--with-tkimg=`pwd`/base --with-pngtcl="$WRKDIR" --with-zlibtcl="$WRKDIR" --disable-option-checking])
+ TEA_CONFIG_SUBDIR(ppm,        [--with-tkimg=`pwd`/base --disable-option-checking])
+ TEA_CONFIG_SUBDIR(ps,         [--with-tkimg=`pwd`/base --disable-option-checking])
+@@ -127,5 +123,5 @@
+ TEA_CONFIG_SUBDIR(sun,        [--with-tkimg=`pwd`/base --disable-option-checking])
+ TEA_CONFIG_SUBDIR(tga,        [--with-tkimg=`pwd`/base --disable-option-checking])
+-TEA_CONFIG_SUBDIR(tiff,       [--with-tkimg=`pwd`/base --with-tifftcl=`pwd`/libtiff --with-zlibtcl=`pwd`/zlib --with-jpegtcl=`pwd`/libjpeg --disable-option-checking])
++TEA_CONFIG_SUBDIR(tiff,       [--with-tkimg=`pwd`/base --with-tifftcl="$WRKDIR" --with-zlibtcl="WRKDIR" --with-jpegtcl="$WRKDIR" --disable-option-checking])
+ TEA_CONFIG_SUBDIR(window,     [--with-tkimg=`pwd`/base --disable-option-checking])
+ TEA_CONFIG_SUBDIR(xbm,        [--with-tkimg=`pwd`/base --disable-option-checking])

Modified: head/graphics/libimg/files/patch-jpeg
==============================================================================
--- head/graphics/libimg/files/patch-jpeg	Mon Jun  9 19:58:33 2014	(r357201)
+++ head/graphics/libimg/files/patch-jpeg	Mon Jun  9 20:20:42 2014	(r357202)
@@ -1,606 +1,100 @@
---- imgJPEG.c	Thu Jun  9 06:36:41 2005
-+++ imgJPEG.c	Thu Jun  9 20:27:11 2005
-@@ -173,115 +173,4 @@
- 		    j_common_ptr cinfo));
- static int	load_jpeg_library _ANSI_ARGS_((Tcl_Interp *interp));
--static int	CreateCompress _ANSI_ARGS_((j_compress_ptr, int, size_t));
--static int	CreateDecompress _ANSI_ARGS_((j_decompress_ptr, int, size_t));
--
--/*
-- * Stuff to support dynamic loading of libjpeg
-- */
--
--static struct JpegFunctions {
--    VOID *handle;
--    int (* abort_decompress) _ANSI_ARGS_((j_decompress_ptr));
--    int (* destroy_compress) _ANSI_ARGS_((j_compress_ptr));
--    int (* destroy_decompress) _ANSI_ARGS_((j_decompress_ptr));
--    int (* finish_compress) _ANSI_ARGS_((j_compress_ptr));
--    int (* finish_decompress) _ANSI_ARGS_((j_decompress_ptr));
--    int (* read_header) _ANSI_ARGS_((j_decompress_ptr, int));
--    JDIMENSION (* read_scanlines) _ANSI_ARGS_((j_decompress_ptr,
--			JSAMPARRAY, JDIMENSION));
--    boolean (* resync_to_restart) _ANSI_ARGS_((j_decompress_ptr, int));
--    int (* set_defaults) _ANSI_ARGS_((j_compress_ptr));
--    int (* start_compress) _ANSI_ARGS_((j_compress_ptr, int));
--    int (* start_decompress) _ANSI_ARGS_((j_decompress_ptr));
--    struct jpeg_error_mgr *(* std_error) _ANSI_ARGS_((struct jpeg_error_mgr *));
--    JDIMENSION (* write_scanlines) _ANSI_ARGS_((j_compress_ptr,
--			JSAMPARRAY, JDIMENSION));
--    int (* set_colorspace) _ANSI_ARGS_((j_compress_ptr, J_COLOR_SPACE));
--    int (* set_quality) _ANSI_ARGS_((j_compress_ptr, int, int));
--    int (* simple_progression) _ANSI_ARGS_((j_compress_ptr));
--    int (* CreateCompress) _ANSI_ARGS_((j_compress_ptr, int, size_t));
--    int (* CreateDecompress) _ANSI_ARGS_((j_decompress_ptr, int, size_t));
--    int (* create_compress) _ANSI_ARGS_((j_compress_ptr));
--    int (* create_decompress) _ANSI_ARGS_((j_decompress_ptr));
--    void (* destroy) _ANSI_ARGS_((j_common_ptr));
--    JDIMENSION (* write_raw_data) _ANSI_ARGS_((j_compress_ptr,
--	    JSAMPIMAGE, JDIMENSION));
--    void (* suppress_tables) _ANSI_ARGS_((j_compress_ptr, boolean));
--    void (* write_tables) _ANSI_ARGS_((j_compress_ptr));
--    JDIMENSION (* read_raw_data) _ANSI_ARGS_((j_decompress_ptr,
--	    JSAMPIMAGE, JDIMENSION));
--    void (* abort) _ANSI_ARGS_((j_common_ptr));
--} jpeg = {0};
--
--static char *symbols[] = {
--#ifdef NEED_SHORT_EXTERNAL_NAMES
--    "jAbrtDecompress",
--    "jDestCompress",
--    "jDestDecompress",
--    "jFinCompress",
--    "jFinDecompress",
--    "jReadHeader",
--    "jReadScanlines",
--    "jResyncRestart",
--    "jSetDefaults",
--    "jStrtCompress",
--    "jStrtDecompress",
--    "jStdError",
--    "jWrtScanlines",
--    /*	the following 3 symbols are not crucial. They implement
--	resp. the "-grayscale", "-quality" and "-progressive"
--	options. If any of the symbols are missing from the
--	library, the corresponding option just has no effect. */
--    "jSetColorspace",
--    "jSetQuality",
--    "jSimProgress",
--    "jCreaCompress",
--    "jCreaDecompress",
--    "jCreaCompress",
--    "jCreaDecompress",
--    "jDestroy",
--    "jWrtRawData",
--    "jSuppressTables",
--    "jWrtTables",
--    "jReadRawData",
--    "jAbort",
--#else
--    "jpeg_abort_decompress",
--    "jpeg_destroy_compress",
--    "jpeg_destroy_decompress",
--    "jpeg_finish_compress",
--    "jpeg_finish_decompress",
--    "jpeg_read_header",
--    "jpeg_read_scanlines",
--    "jpeg_resync_to_restart",
--    "jpeg_set_defaults",
--    "jpeg_start_compress",
--    "jpeg_start_decompress",
--    "jpeg_std_error",
--    "jpeg_write_scanlines",
--    /*	the following 3 symbols are not crucial. They implement
--	resp. the "-grayscale", "-quality" and "-progressive"
--	options. If any of the symbols are missing from the
--	library, the corresponding option just has no effect. */
--    "jpeg_set_colorspace",
--    "jpeg_set_quality",
--    "jpeg_simple_progression",
--    /* In later versions, jpeg_create_compress and jpeg_create_decompress
--       are macros pointing to jpeg_CreateCompress and jpeg_CreateDecompres.
--       Which one is found depends on the version. */
--    "jpeg_CreateCompress",
--    "jpeg_CreateDecompress",
--    "jpeg_create_compress",
--    "jpeg_create_decompress",
--    "jpeg_destroy",
--    "jpeg_write_raw_data",
--    "jpeg_suppress_tables",
--    "jpeg_write_tables",
--    "jpeg_read_raw_data",
--    "jpeg_abort",
--#endif
--    (char *) NULL
--};
--
- 
- static int
-@@ -292,21 +181,10 @@
-     struct my_error_mgr jerror;	/* for controlling libjpeg error handling */
-     int i;
-+    static int initialized;
+--- jpeg/jpeg.c	2013-04-09 15:10:34.000000000 -0400
++++ jpeg/jpeg.c	2014-06-09 13:53:53.000000000 -0400
+@@ -56,5 +56,9 @@
+ #endif
+ #include "tkimg.h"
+-#include "jpegtcl.h"
++#ifdef EXTERN
++#	undef EXTERN
++#endif
++#include <jpeglib.h>
++#include <jerror.h>
  
--    if (ImgLoadLib(interp, JPEG_LIB_NAME, &jpeg.handle, symbols, 13)
--	    != TCL_OK) {
--	return TCL_ERROR;
--    }
--    if (jpeg.CreateCompress == NULL) {
--	if (jpeg.create_compress == NULL) {
--	    goto load_failed;
--	}
--	jpeg.CreateCompress = CreateCompress;
--    }
--    if (jpeg.CreateDecompress == NULL) {
--	if (jpeg.create_decompress == NULL) {
--	    goto load_failed;
--	}
--	jpeg.CreateDecompress = CreateDecompress;
--    }
-+    if (initialized)
-+	return TCL_OK;
-+
-+    initialized = 1;
- 
-     /* The followin code tries to determine if the JPEG library is
-@@ -322,5 +200,5 @@
-     cinfo = (struct jpeg_compress_struct *)
- 	    ckalloc(8*sizeof(struct jpeg_compress_struct));
--    cinfo->err = jpeg.std_error(&jerror.pub);
-+    cinfo->err = jpeg_std_error(&jerror.pub);
-     jerror.pub.error_exit = my_error_exit;
-     jerror.pub.output_message = my_output_message;
-@@ -328,18 +206,16 @@
-     if (setjmp(jerror.setjmp_buffer)) {
-       /* If we get here, the JPEG library is invalid. */
--      jpeg.destroy_compress(cinfo);
-+      jpeg_destroy_compress(cinfo);
-       ckfree((char *)cinfo);
--load_failed:
-       if (interp) {
--	Tcl_AppendResult(interp, "couldn't load \"", JPEG_LIB_NAME,
--		"\": please upgrade to at least version 6a", (char *) NULL);
-+	Tcl_AppendResult(interp, "JPEG library mismatch, expecting \"",
-+	    JPEG_LIB_NAME, NULL);
-       }
--      ImgLoadFailed(&jpeg.handle);
-       return TCL_ERROR;
-     }
- 
-     /* Now we can initialize libjpeg. */
-     ((char *) cinfo)[sizeof(struct jpeg_compress_struct)] = 53;
--    jpeg.CreateCompress(cinfo, JPEG_LIB_VERSION,
-+    jpeg_CreateCompress(cinfo, JPEG_LIB_VERSION,
- 			(size_t) sizeof(struct jpeg_compress_struct));
-     if (((char *) cinfo)[sizeof(struct jpeg_compress_struct)] != 53) {
-@@ -359,5 +235,5 @@
-     cinfo->X_density = 0;
-     cinfo->Y_density = 0;
--    jpeg.set_defaults(cinfo);
-+    jpeg_set_defaults(cinfo);
+ static int SetupJPegLibrary(Tcl_Interp *interp);
+@@ -137,86 +141,11 @@
  
-     if ((cinfo->data_precision != BITS_IN_JSAMPLE) ||
-@@ -375,5 +251,5 @@
- 	}
-     }
--    jpeg.destroy_compress(cinfo);
-+    jpeg_destroy_compress(cinfo);
-     ckfree((char *) cinfo);
-     return TCL_OK;
-@@ -383,13 +259,6 @@
- ImgLoadJpegLibrary()
- {
--    if ((load_jpeg_library(NULL) == TCL_OK)
--	    && jpeg.destroy
--	    && jpeg.write_raw_data
--	    && jpeg.suppress_tables
--	    && jpeg.write_tables
--	    && jpeg.read_raw_data
--	    && jpeg.abort) {
-+    if (load_jpeg_library(NULL) == TCL_OK)
- 	return TCL_OK;
--    }
-     return TCL_ERROR;
- }
-@@ -420,179 +289,4 @@
- 			JSAMPARRAY, JDIMENSION));
  
--static int
--CreateCompress(cinfo, version, size)
--    j_compress_ptr cinfo;
--    int version;
--    size_t size;
--{
--    return jpeg.create_compress(cinfo);
--}
 -
--static int
--CreateDecompress(cinfo, version, size)
--    j_decompress_ptr cinfo;
--    int version;
--    size_t size;
--{
--    return jpeg.create_decompress(cinfo);
--}
--
--int
--Imgjpeg_CreateCompress(cinfo, version, size)
--    j_compress_ptr cinfo;
--    int version;
--    size_t size;
--{
--    return jpeg.CreateCompress(cinfo, version, size);
--}
--
--int
--Imgjpeg_CreateDecompress(cinfo, version, size)
--    j_decompress_ptr cinfo;
--    int version;
--    size_t size;
--{
--    return jpeg.CreateDecompress(cinfo, version, size);
--}
--
--boolean
--Imgjpeg_resync_to_restart(a,b)
--    j_decompress_ptr a;
--    int b;
--{
--    return jpeg.resync_to_restart(a,b);
--}
--
--JDIMENSION
--Imgjpeg_read_scanlines(a,b,c)
--    j_decompress_ptr a;
--    JSAMPARRAY b;
--    JDIMENSION c;
--{
--    return jpeg.read_scanlines(a,b,c);
--}
--
--int
--Imgjpeg_set_colorspace(a,b)
--    j_compress_ptr a;
--    J_COLOR_SPACE b;
--{
--    return jpeg.set_colorspace(a,b);
--}
--
--int
--Imgjpeg_set_defaults(a)
--    j_compress_ptr a;
--{
--    return jpeg.set_defaults(a);
--}
--
--int
--Imgjpeg_start_decompress(a)
--    j_decompress_ptr a;
--{
--    return jpeg.start_decompress(a);
--}
--
--void
--Imgjpeg_destroy(a)
--    j_common_ptr a;
--{
--    jpeg.destroy(a);
--}
--
--struct jpeg_error_mgr *
--Imgjpeg_std_error(a)
--    struct jpeg_error_mgr *a;
--{
--    return jpeg.std_error(a);
--}
--
--JDIMENSION Imgjpeg_write_raw_data(a,b,c)
--    j_compress_ptr a;
--    JSAMPIMAGE b;
--    JDIMENSION c;
--{
--    return jpeg.write_raw_data(a,b,c);
--}
--
--void
--Imgjpeg_suppress_tables(a,b)
--    j_compress_ptr a;
--    boolean b;
--{
--    jpeg.suppress_tables(a,b);
--}
--
--void
--Imgjpeg_abort(a)
--    j_common_ptr a;
--{
--    jpeg.abort(a);
--}
--
--int
--Imgjpeg_read_header(a,b)
--    j_decompress_ptr a;
--    int b;
--{
--    return jpeg.read_header(a,b);
--}
--
--int
--Imgjpeg_start_compress(a,b)
--    j_compress_ptr a;
--    int b;
--{
--    return jpeg.start_compress(a,b);
--}
--
--void
--Imgjpeg_write_tables(a)
--    j_compress_ptr a;
--{
--    jpeg.write_tables(a);
--}
+ static int
+ SetupJPegLibrary (interp)
+     Tcl_Interp *interp;
+ {
+-    struct jpeg_compress_struct *cinfo; /* libjpeg's parameter structure */
+-    struct my_error_mgr jerror;	/* for controlling libjpeg error handling */
+-    int i;
 -
--int
--Imgjpeg_finish_decompress(a)
--    j_decompress_ptr a;
--{
--    return jpeg.finish_decompress(a);
--}
+-    if (Jpegtcl_InitStubs(interp, JPEGTCL_VERSION, 0) == NULL) {
+-        return TCL_ERROR;
+-    }
 -
--int
--Imgjpeg_finish_compress(a)
--    j_compress_ptr a;
--{
--    return jpeg.finish_compress(a);
--}
+-    /* The followin code tries to determine if the JPEG library is
+-       valid at all. The library might be configured differently,
+-       which will produce core dumps. Also it might be that
+-       fields appear in different places in jpeg_compress_struct
+-       or jpeg_decompress_struct. This will make the library totally
+-       unusable. In stead of a core-dump, we better have a proper
+-       error message */
+-
+-    /* overallocat size, so we don't get a core-dump if the library
+-       thinks that the structure is much larger */
+-
+-    cinfo = (struct jpeg_compress_struct *) ckalloc(8*sizeof(struct jpeg_compress_struct));
+-    cinfo->err = jpeg_std_error(&jerror.pub);
+-    jerror.pub.error_exit = my_error_exit;
+-    jerror.pub.output_message = my_output_message;
+-    /* Establish the setjmp return context for my_error_exit to use. */
+-    if (setjmp(jerror.setjmp_buffer)) {
+-      /* If we get here, the JPEG library is invalid. */
+-      jpeg_destroy_compress(cinfo);
+-      ckfree((char *)cinfo);
 -
--JDIMENSION
--Imgjpeg_read_raw_data(a,b,c)
--    j_decompress_ptr a;
--    JSAMPIMAGE b;
--    JDIMENSION c;
--{
--    return jpeg.read_raw_data(a,b,c);
--}
+-      if (interp) {
+-	Tcl_AppendResult(interp, "couldn't use \"", "jpegtcl",
+-		"\": please upgrade to at least version 6a", (char *) NULL);
+-      }
+-      return TCL_ERROR;
+-    }
 -
--int
--Imgjpeg_set_quality(a,b,c)
--    j_compress_ptr a;
--    int b;
--    int c;
--{
--    return jpeg.set_quality(a,b,c);
--}
+-    /* Now we can initialize libjpeg. */
+-    ((char *) cinfo)[sizeof(struct jpeg_compress_struct)] = 53;
+-    jpeg_create_compress(cinfo);
+-    if (((char *) cinfo)[sizeof(struct jpeg_compress_struct)] != 53) {
+-	/* Oops. The library changed this value, which is outside the
+-	 * structure. Definitely, the library is invalid!!!! */
+-	ERREXIT(cinfo, JMSG_NOMESSAGE);
+-    }
 -
--JDIMENSION
--Imgjpeg_write_scanlines(a,b,c)
--    j_compress_ptr a;
--    JSAMPARRAY b;
--    JDIMENSION c;
--{
--    return jpeg.write_scanlines(a,b,c);
--}
- 
- 
-@@ -794,5 +488,5 @@
-     /* Initialize JPEG error handler */
-     /* We set up the normal JPEG error routines, then override error_exit. */
--    cinfo.err = jpeg.std_error(&jerror.pub);
-+    cinfo.err = jpeg_std_error(&jerror.pub);
-     jerror.pub.error_exit = my_error_exit;
-     jerror.pub.output_message = my_output_message;
-@@ -803,10 +497,10 @@
-       Tcl_AppendResult(interp, "couldn't read JPEG string: ", (char *) NULL);
-       append_jpeg_message(interp, (j_common_ptr) &cinfo);
--      jpeg.destroy_decompress(&cinfo);
-+      jpeg_destroy_decompress(&cinfo);
-       return TCL_ERROR;
-     }
- 
-     /* Now we can initialize libjpeg. */
--    jpeg.CreateDecompress(&cinfo, JPEG_LIB_VERSION,
-+    jpeg_CreateDecompress(&cinfo, JPEG_LIB_VERSION,
- 			(size_t) sizeof(struct jpeg_decompress_struct));
-     jpeg_channel_src(&cinfo, chan);
-@@ -817,5 +511,5 @@
- 
-     /* Reclaim libjpeg's internal resources. */
--    jpeg.destroy_decompress(&cinfo);
-+    jpeg_destroy_decompress(&cinfo);
- 
-     return result;
-@@ -865,5 +559,5 @@
-     /* Initialize JPEG error handler */
-     /* We set up the normal JPEG error routines, then override error_exit. */
--    cinfo.err = jpeg.std_error(&jerror.pub);
-+    cinfo.err = jpeg_std_error(&jerror.pub);
-     jerror.pub.error_exit = my_error_exit;
-     jerror.pub.output_message = my_output_message;
-@@ -874,10 +568,10 @@
-       Tcl_AppendResult(interp, "couldn't read JPEG string: ", (char *) NULL);
-       append_jpeg_message(interp, (j_common_ptr) &cinfo);
--      jpeg.destroy_decompress(&cinfo);
-+      jpeg_destroy_decompress(&cinfo);
-       return TCL_ERROR;
-     }
- 
-     /* Now we can initialize libjpeg. */
--    jpeg.CreateDecompress(&cinfo, JPEG_LIB_VERSION,
-+    jpeg_CreateDecompress(&cinfo, JPEG_LIB_VERSION,
- 			(size_t) sizeof(struct jpeg_decompress_struct));
-     jpeg_obj_src(&cinfo, data);
-@@ -888,5 +582,5 @@
- 
-     /* Reclaim libjpeg's internal resources. */
--    jpeg.destroy_decompress(&cinfo);
-+    jpeg_destroy_decompress(&cinfo);
- 
-     return result;
-@@ -926,5 +620,5 @@
- 				 * in image being read. */
- {
--    static char *jpegReadOptions[] = {"-fast", "-grayscale", NULL};
-+    static const char *jpegReadOptions[] = {"-fast", "-grayscale", NULL};
-     int fileWidth, fileHeight, stopY, curY, outY, outWidth, outHeight;
-     myblock bl;
-@@ -935,5 +629,5 @@
- 
-     /* Ready to read header data. */
--    jpeg.read_header(cinfo, TRUE);
-+    jpeg_read_header(cinfo, TRUE);
- 
-     /* This code only supports 8-bit-precision JPEG files. */
-@@ -972,5 +666,5 @@
-     }
- 
--    jpeg.start_decompress(cinfo);
-+    jpeg_start_decompress(cinfo);
- 
-     /* Check dimensions. */
-@@ -1029,5 +723,5 @@
-     outY = destY;
-     for (curY = 0; curY < stopY; curY++) {
--      jpeg.read_scanlines(cinfo, buffer, 1);
-+      jpeg_read_scanlines(cinfo, buffer, 1);
-       if (curY >= srcY) {
- 	Tk_PhotoPutBlock(imageHandle, &block, destX, outY, outWidth, 1, TK_PHOTO_COMPOSITE_SET);
-@@ -1038,7 +732,7 @@
-     /* Do normal cleanup if we read the whole image; else early abort */
-     if (cinfo->output_scanline == cinfo->output_height)
--	jpeg.finish_decompress(cinfo);
-+	jpeg_finish_decompress(cinfo);
-     else
--	jpeg.abort_decompress(cinfo);
-+	jpeg_abort_decompress(cinfo);
- 
-     return TCL_OK;
-@@ -1086,5 +780,5 @@
-     /* Initialize JPEG error handler */
-     /* We set up the normal JPEG error routines, then override error_exit. */
--    cinfo.err = jpeg.std_error(&jerror.pub);
-+    cinfo.err = jpeg_std_error(&jerror.pub);
-     jerror.pub.error_exit = my_error_exit;
-     jerror.pub.output_message = my_output_message;
-@@ -1096,11 +790,11 @@
- 		       "\": ", (char *) NULL);
-       append_jpeg_message(interp, (j_common_ptr) &cinfo);
--      jpeg.destroy_compress(&cinfo);
-+      jpeg_destroy_compress(&cinfo);
-       Tcl_Close(interp, chan);
-       return TCL_ERROR;
-     }
- 
-     /* Now we can initialize libjpeg. */
--    jpeg.CreateCompress(&cinfo, JPEG_LIB_VERSION,
-+    jpeg_CreateCompress(&cinfo, JPEG_LIB_VERSION,
- 			(size_t) sizeof(struct jpeg_compress_struct));
-     jpeg_channel_dest(&cinfo, chan);
-@@ -1109,5 +803,5 @@
-     result = CommonWriteJPEG(interp, &cinfo, format, blockPtr);
- 
--    jpeg.destroy_compress(&cinfo);
-+    jpeg_destroy_compress(&cinfo);
-     if (Tcl_Close(interp, chan) == TCL_ERROR) {
- 	return TCL_ERROR;
-@@ -1154,5 +848,5 @@
-     /* Initialize JPEG error handler */
-     /* We set up the normal JPEG error routines, then override error_exit. */
--    cinfo.err = jpeg.std_error(&jerror.pub);
-+    cinfo.err = jpeg_std_error(&jerror.pub);
-     jerror.pub.error_exit = my_error_exit;
-     jerror.pub.output_message = my_output_message;
-@@ -1167,6 +861,6 @@
-     }
- 
-     /* Now we can initialize libjpeg. */
--    jpeg.CreateCompress(&cinfo, JPEG_LIB_VERSION,
-+    jpeg_CreateCompress(&cinfo, JPEG_LIB_VERSION,
- 	    (size_t) sizeof(struct jpeg_compress_struct));
-     jpeg_string_dest(&cinfo, dataPtr);
-@@ -1177,5 +871,5 @@
- writeend:
- 
--    jpeg.destroy_compress(&cinfo);
-+    jpeg_destroy_compress(&cinfo);
-     if (dataPtr == &data) {
- 	if (result == TCL_OK) {
-@@ -1210,5 +904,5 @@
-     Tk_PhotoImageBlock *blockPtr;
- {
--    static char *jpegWriteOptions[] = {"-grayscale", "-optimize",
-+    static const char *jpegWriteOptions[] = {"-grayscale", "-optimize",
- 	"-progressive", "-quality", "-smooth", NULL};
-     JSAMPROW row_pointer[1];	/* pointer to original data scanlines */
-@@ -1239,5 +933,5 @@
-     cinfo->in_color_space = JCS_RGB;
- 
--    jpeg.set_defaults(cinfo);
-+    jpeg_set_defaults(cinfo);
- 
-     /* Parse options, if any, and alter default parameters */
-@@ -1262,7 +956,7 @@
- 		}
- 		case 2: {
--		    if (jpeg.simple_progression != NULL) {
-+		    if (jpeg_simple_progression != NULL) {
- 			/* Select simple progressive mode. */
--			jpeg.simple_progression(cinfo);
-+			jpeg_simple_progression(cinfo);
- 		    }
- 		    break;
-@@ -1278,5 +972,5 @@
- 			return TCL_ERROR;
- 		    }
--		    jpeg.set_quality(cinfo, quality, FALSE);
-+		    jpeg_set_quality(cinfo, quality, FALSE);
- 		    break;
- 		}
-@@ -1301,11 +995,11 @@
-     greenOffset = blockPtr->offset[1] - blockPtr->offset[0];
-     blueOffset = blockPtr->offset[2] - blockPtr->offset[0];
--    if ((jpeg.set_colorspace != NULL) &&
-+    if ((jpeg_set_colorspace != NULL) &&
- 	    (grayscale || (!greenOffset && !blueOffset))) {
- 	/* Generate monochrome JPEG file if source block is grayscale. */
--	jpeg.set_colorspace(cinfo, JCS_GRAYSCALE);
-+	jpeg_set_colorspace(cinfo, JCS_GRAYSCALE);
-     }
- 
--    jpeg.start_compress(cinfo, TRUE);
-+    jpeg_start_compress(cinfo, TRUE);
-     
-     /* note: we assume libjpeg is configured for standard RGB pixel order. */
-@@ -1315,5 +1009,5 @@
- 	for (h = blockPtr->height; h > 0; h--) {
- 	    row_pointer[0] = (JSAMPROW) pixLinePtr;
--	    jpeg.write_scanlines(cinfo, row_pointer, 1);
-+	    jpeg_write_scanlines(cinfo, row_pointer, 1);
- 	    pixLinePtr += blockPtr->pitch;
- 	}
-@@ -1341,10 +1035,10 @@
- 		pixelPtr += blockPtr->pixelSize;
- 	    }
--	    jpeg.write_scanlines(cinfo, buffer, 1);
-+	    jpeg_write_scanlines(cinfo, buffer, 1);
- 	    pixLinePtr += blockPtr->pitch;
- 	}
-     }
- 
--    jpeg.finish_compress(cinfo);
-+    jpeg_finish_compress(cinfo);
+-    /* Set up JPEG compression parameters. */
+-    cinfo->image_width = 16;
+-    cinfo->image_height = 16;
+-    cinfo->input_components = 3;
+-    cinfo->in_color_space = JCS_RGB;
+-    cinfo->data_precision = -1;
+-    cinfo->optimize_coding = TRUE;
+-    cinfo->dct_method = -1;
+-    cinfo->X_density = 0;
+-    cinfo->Y_density = 0;
+-    jpeg_set_defaults(cinfo);
+-
+-    if ((cinfo->data_precision != BITS_IN_JSAMPLE) ||
+-	    (cinfo->optimize_coding != FALSE) ||
+-	    (cinfo->dct_method != JDCT_DEFAULT) ||
+-	    (cinfo->X_density != 1) ||
+-	    (cinfo->Y_density != 1)) {
+-	ERREXIT(cinfo, JMSG_NOMESSAGE);
+-    }
+-    for (i = 0; i < NUM_ARITH_TBLS; i++) {
+-	if ((cinfo->arith_dc_L[i] != 0) ||
+-		(cinfo->arith_dc_U[i] != 1) ||
+-		(cinfo->arith_ac_K[i] != 5)) {
+-	    ERREXIT(cinfo, JMSG_NOMESSAGE);
+-	}
+-    }
+-    jpeg_destroy_compress(cinfo);
+-    ckfree((char *) cinfo);
      return TCL_OK;
  }
-@@ -1370,5 +1064,5 @@
-   src->pub.fill_input_buffer = fill_input_buffer;
-   src->pub.skip_input_data = skip_input_data;
--  src->pub.resync_to_restart = jpeg.resync_to_restart; /* use default method */
-+  src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */
-   src->pub.term_source = dummy_source;
- 
-@@ -1443,5 +1137,5 @@
-   src->pub.fill_input_buffer = fill_input_buffer;
-   src->pub.skip_input_data = skip_input_data;
--  src->pub.resync_to_restart = jpeg.resync_to_restart; /* use default method */
-+  src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */
-   src->pub.term_source = dummy_source;
  
+-
+ /*
+  *----------------------------------------------------------------------

Modified: head/graphics/libimg/files/patch-png
==============================================================================
--- head/graphics/libimg/files/patch-png	Mon Jun  9 19:58:33 2014	(r357201)
+++ head/graphics/libimg/files/patch-png	Mon Jun  9 20:20:42 2014	(r357202)
@@ -1,414 +1,39 @@
---- imgPNG.c	Tue Jan 15 16:00:08 2002
-+++ imgPNG.c	Thu Jun  9 20:11:01 2005
-@@ -104,5 +104,4 @@
- static void tk_png_error _ANSI_ARGS_((png_structp, png_const_charp));
- static void tk_png_warning _ANSI_ARGS_((png_structp, png_const_charp));
--static int load_png_library _ANSI_ARGS_((Tcl_Interp *interp));
+--- png/png.c	2013-11-21 17:03:12.000000000 -0500
++++ png/png.c	2014-06-09 13:57:22.000000000 -0400
+@@ -36,7 +36,8 @@
+  */
+ 
+-#include "pngtcl.h"
++#include <png.h>
+ #include <string.h>
+ #include <stdlib.h>
++#include <tcl.h>
  
- /*
-@@ -116,87 +115,4 @@
- static void	tk_png_flush _ANSI_ARGS_((png_structp));
- 
--static struct PngFunctions {
--    VOID *handle;
--    png_structp (* create_read_struct) _ANSI_ARGS_((png_const_charp,
--	png_voidp, png_error_ptr, png_error_ptr));
--    png_infop (* create_info_struct) _ANSI_ARGS_((png_structp));
--    png_structp (* create_write_struct) _ANSI_ARGS_((png_const_charp,
--	png_voidp, png_error_ptr, png_error_ptr));
--    void (* destroy_read_struct) _ANSI_ARGS_((png_structpp,
--	png_infopp, png_infopp));
--    void (* destroy_write_struct) _ANSI_ARGS_((png_structpp, png_infopp));
--    void (* error) _ANSI_ARGS_((png_structp, png_charp));
--    png_byte (* get_channels) _ANSI_ARGS_((png_structp, png_infop));
--    png_voidp (* get_error_ptr) _ANSI_ARGS_((png_structp));
--    png_voidp (* get_progressive_ptr) _ANSI_ARGS_((png_structp));
--    png_uint_32 (* get_rowbytes) _ANSI_ARGS_((png_structp, png_infop));
--    png_uint_32 (* get_IHDR) _ANSI_ARGS_((png_structp, png_infop,
--	   png_uint_32*, png_uint_32*, int*, int*, int*, int*, int*));
--    png_uint_32 (* get_valid) _ANSI_ARGS_((png_structp, png_infop, png_uint_32));
--    void (* read_image) _ANSI_ARGS_((png_structp, png_bytepp));
--    void (* read_info) _ANSI_ARGS_((png_structp, png_infop));
--    void (* read_update_info) _ANSI_ARGS_((png_structp, png_infop));
--    int (* set_interlace_handling) _ANSI_ARGS_ ((png_structp));
--    void (* set_read_fn) _ANSI_ARGS_((png_structp, png_voidp, png_rw_ptr));
--    void (* set_text) _ANSI_ARGS_((png_structp, png_infop, png_textp, int));
--    void (* set_write_fn) _ANSI_ARGS_((png_structp, png_voidp,
--	    png_rw_ptr, png_voidp));
--    void (* set_IHDR) _ANSI_ARGS_((png_structp, png_infop, png_uint_32,
--	    png_uint_32, int, int, int, int, int));
--    void (* write_end) _ANSI_ARGS_((png_structp, png_infop));
--    void (* write_info) _ANSI_ARGS_((png_structp, png_infop));
--    void (* write_row) _ANSI_ARGS_((png_structp, png_bytep));
--    void (* set_expand) _ANSI_ARGS_((png_structp));
--    void (* set_filler) _ANSI_ARGS_((png_structp, png_uint_32, int));
--    void (* set_strip_16) _ANSI_ARGS_((png_structp));
--    png_uint_32 (* get_sRGB) _ANSI_ARGS_((png_structp, png_infop, int *));
--    void (* set_sRGB) _ANSI_ARGS_((png_structp, png_infop, int));
--    png_uint_32 (* get_gAMA) _ANSI_ARGS_((png_structp, png_infop, double *));
--    void (* set_gAMA) PNGARG((png_structp png_ptr, png_infop, double));
--    void (* set_gamma) _ANSI_ARGS_((png_structp, double, double));
--    void (* set_sRGB_gAMA_and_cHRM) _ANSI_ARGS_((png_structp, png_infop, int));
--    void (* write_iTXt) _ANSI_ARGS_((png_structp, int, png_charp, png_charp,
--	    png_charp, png_charp));
--} png = {0};
--
--static char *symbols[] = {
--    "png_create_read_struct",
--    "png_create_info_struct",
--    "png_create_write_struct",
--    "png_destroy_read_struct",
--    "png_destroy_write_struct",
--    "png_error",
--    "png_get_channels",
--    "png_get_error_ptr",
--    "png_get_progressive_ptr",
--    "png_get_rowbytes",
--    "png_get_IHDR",
--    "png_get_valid",
--    "png_read_image",
--    "png_read_info",
--    "png_read_update_info",
--    "png_set_interlace_handling",
--    "png_set_read_fn",
--    "png_set_text",
--    "png_set_write_fn",
--    "png_set_IHDR",
--    "png_write_end",
--    "png_write_info",
--    "png_write_row",
--    /* The following symbols are not crucial. All of them
--       are checked at runtime. */
--    "png_set_expand",
--    "png_set_filler",
--    "png_set_strip_16",
--    "png_get_sRGB",
--    "png_set_sRGB",
--    "png_get_gAMA",
--    "png_set_gAMA",
--    "png_set_gamma",
--    "png_set_sRGB_gAMA_and_cHRM",
--    "png_write_iTXt", /* Only used to check if libpng has iTXt support at runtime */
--    (char *) NULL
--};
--
- typedef struct cleanup_info {
+ static int SetupPngLibrary(Tcl_Interp *interp);
+@@ -171,7 +172,4 @@
      Tcl_Interp *interp;
-@@ -209,5 +125,5 @@
-     png_const_charp error_msg;
- {
--    cleanup_info *info = (cleanup_info *) png.get_error_ptr(png_ptr);
-+    cleanup_info *info = (cleanup_info *) png_get_error_ptr(png_ptr);
-     Tcl_AppendResult(info->interp, error_msg, (char *) NULL);
-     longjmp(info->jmpbuf,1);
-@@ -228,7 +144,7 @@
-     png_size_t length;
- {
--    if (ImgRead((MFile *) png.get_progressive_ptr(png_ptr),
-+    if (ImgRead((MFile *) png_get_progressive_ptr(png_ptr),
- 	    (char *) data, (size_t) length) != (int) length) {
--	png.error(png_ptr, "Read Error");
-+	png_error(png_ptr, "Read Error");
-     }
- }
-@@ -240,7 +156,7 @@
-     png_size_t length;
  {
--    if (ImgWrite((MFile *) png.get_progressive_ptr(png_ptr),
-+    if (ImgWrite((MFile *) png_get_progressive_ptr(png_ptr),
- 	    (char *) data, (size_t) length) != (int) length) {
--	png.error(png_ptr, "Write Error");
-+	png_error(png_ptr, "Write Error");
-     }
- }
-@@ -303,15 +219,4 @@
- }
- 
--static int
--load_png_library(interp)
--    Tcl_Interp *interp;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406092020.s59KKgGh012283>