Revision: 134525 https://trac.macports.org/changeset/134525 Author: khindenburg@macports.org Date: 2015-03-28 10:27:55 -0700 (Sat, 28 Mar 2015) Log Message: ----------- ipe: update to 7.1.7 maintainer #47280 Modified Paths: -------------- trunk/dports/graphics/ipe/Portfile Added Paths: ----------- trunk/dports/graphics/ipe/files/patch-ipelets-qvoronoi-qvoronoi.cpp.diff trunk/dports/graphics/ipe/files/patch-ipelib-ipebitmap.cpp.diff trunk/dports/graphics/ipe/files/patch-ipelua-ipeluaipelet.cpp.diff Modified: trunk/dports/graphics/ipe/Portfile =================================================================== --- trunk/dports/graphics/ipe/Portfile 2015-03-28 17:16:00 UTC (rev 134524) +++ trunk/dports/graphics/ipe/Portfile 2015-03-28 17:27:55 UTC (rev 134525) @@ -5,10 +5,10 @@ PortGroup qt4 1.0 name ipe -version 7.1.4 +version 7.1.7 set branch [join [lrange [split ${version} .] 0 1] .] categories graphics -maintainers jacobs-university.de:m.thon openmaintainer +maintainers gmail.com:m7.thon openmaintainer description The Ipe extensible drawing editor long_description \ Ipe is a drawing editor for creating figures in PDF or \ @@ -23,22 +23,37 @@ distname ${name}-${version}-src worksrcdir ${name}-${version}/src -checksums sha1 48a5aebd6e54a3832e4841b12ed5dd8bb6ec8ec6 \ - rmd160 ab90157ae53a72b1a04bddb5f62aa645bdc9b20b +checksums sha1 ace0628f9e8a1d752f4a1837ac705e0457498a00 \ + rmd160 e77099d2d24d195d4ef541311b6114dc38580dc8 depends_lib-append port:freetype \ path:lib/pkgconfig/cairo.pc:cairo \ path:lib/pkgconfig/lua.pc:lua \ port:lua \ + path:lib/libjpeg.dylib:jpeg \ + port:libpng \ port:zlib -patchfiles ipe-cstdlib.patch +patchfiles patch-ipelib-ipebitmap.cpp.diff \ + patch-ipelets-qvoronoi-qvoronoi.cpp.diff \ + patch-ipelua-ipeluaipelet.cpp.diff use_configure no variant universal {} +variant qvoronoi description {Add qvoronoi ipelet} { + depends_lib-append port:qhull + build.post_args subdirs="ipelib ipelets/lua ipelets/qvoronoi ipetoipe ipe6upgrade \ + ipeextract ipescript ipecairo iperender ipecanvas ipeview ipelua ipeui ipe" \ + QHULL_CFLAGS=-I${prefix}/include/qhull + destroot.post_args subdirs="ipelib ipelets/lua ipelets/qvoronoi ipetoipe ipe6upgrade \ + ipeextract ipescript ipecairo iperender ipecanvas ipeview ipelua ipeui ipe" +} + +default_variants +qvoronoi + pre-build { set lua_pc [lindex [split [glob ${prefix}/lib/pkgconfig/lua*] "/"] end] set lua_version [join [lrange [split ${lua_pc} "."] 0 end-1] "."] @@ -48,6 +63,9 @@ build.args IPEPREFIX=${prefix} \ ZLIB_CFLAGS="`pkg-config --cflags zlib`" \ ZLIB_LIBS="`pkg-config --libs zlib`" \ + JPEG_LIBS="-ljpeg" \ + PNG_CFLAGS="`pkg-config --cflags libpng`" \ + PNG_LIBS="`pkg-config --libs libpng`" \ FREETYPE_CFLAGS="`pkg-config --cflags freetype2`" \ FREETYPE_LIBS="`pkg-config --libs freetype2`" \ CAIRO_CFLAGS="`pkg-config --cflags cairo`" \ Added: trunk/dports/graphics/ipe/files/patch-ipelets-qvoronoi-qvoronoi.cpp.diff =================================================================== --- trunk/dports/graphics/ipe/files/patch-ipelets-qvoronoi-qvoronoi.cpp.diff (rev 0) +++ trunk/dports/graphics/ipe/files/patch-ipelets-qvoronoi-qvoronoi.cpp.diff 2015-03-28 17:27:55 UTC (rev 134525) @@ -0,0 +1,12 @@ +--- ipelets/qvoronoi/qvoronoi.cpp.orig 2015-03-27 12:21:50.000000000 +0100 ++++ ipelets/qvoronoi/qvoronoi.cpp 2015-03-27 12:22:16.000000000 +0100 +@@ -29,7 +29,8 @@ + */ + + #include <stdio.h> +-#include <stdlib.h> ++#include <cstdlib> ++ + + extern "C" { + #include "qhull_a.h" Added: trunk/dports/graphics/ipe/files/patch-ipelib-ipebitmap.cpp.diff =================================================================== --- trunk/dports/graphics/ipe/files/patch-ipelib-ipebitmap.cpp.diff (rev 0) +++ trunk/dports/graphics/ipe/files/patch-ipelib-ipebitmap.cpp.diff 2015-03-28 17:27:55 UTC (rev 134525) @@ -0,0 +1,87 @@ +--- ipelib/ipebitmap.cpp.orig 2015-03-27 12:12:31.000000000 +0100 ++++ ipelib/ipebitmap.cpp 2015-03-27 12:15:36.000000000 +0100 +@@ -32,7 +32,10 @@ + #include "ipeutils.h" + #include <zlib.h> + +-#include <turbojpeg.h> ++#include <cstdio> ++#include <csetjmp> ++#include <jpeglib.h> ++ + #include <png.h> + + using namespace ipe; +@@ -332,36 +335,47 @@ + + // -------------------------------------------------------------------- + ++// The following is error-handling code for decopressing jpeg using the ++// standard libjpeg API. Taken from the example.c and stackoverflow. ++struct jpegErrorManager { ++ struct jpeg_error_mgr pub; ++ jmp_buf setjmp_buffer; ++}; ++char jpegLastErrorMsg[JMSG_LENGTH_MAX]; ++void jpegErrorExit (j_common_ptr cinfo) { ++ jpegErrorManager *myerr = (jpegErrorManager*) cinfo->err; ++ (*(cinfo->err->format_message)) (cinfo, jpegLastErrorMsg); ++ longjmp(myerr->setjmp_buffer, 1); ++} ++ ++// Decode jpeg image using the standard libjpeg API with errorhandling + bool dctDecode(Buffer dctData, Buffer pixelData, int components) + { +- tjhandle handle = tjInitDecompress(); +- if (!handle) { +- ipeDebug("tjInitDecompress failed: %s", tjGetErrorStr()); ++ struct jpeg_decompress_struct cinfo; ++ // Error handling: ++ struct jpegErrorManager jerr; ++ cinfo.err = jpeg_std_error(&jerr.pub); ++ jerr.pub.error_exit = jpegErrorExit; ++ if (setjmp(jerr.setjmp_buffer)) { ++ ipeDebug("jpeg decompression failed: %s", jpegLastErrorMsg); ++ jpeg_destroy_decompress(&cinfo); + return false; + } +- +- int width, height, jpegSubsamp; +- if (tjDecompressHeader2(handle, (uchar *) dctData.data(), dctData.size(), +- &width, &height, &jpegSubsamp) < 0) { +- ipeDebug("tjDecompressHeader2 failed: %s", tjGetErrorStr()); +- tjDestroy(handle); +- return false; +- } +- +- int flags = 0; +- // if (fast) +- // flags |= TJFLAG_FASTDCT; +- +- if (tjDecompress2(handle, (uchar *) dctData.data(), dctData.size(), +- (uchar *) pixelData.data(), +- width, components * width, height, +- (components == 3) ? TJPF_RGB : TJPF_GRAY, +- flags) < 0) { +- ipeDebug("tjDecompress2 failed: %s", tjGetErrorStr()); +- tjDestroy(handle); +- return false; ++ // Decompression: ++ jpeg_create_decompress(&cinfo); ++ jpeg_mem_src(&cinfo, (unsigned char *) dctData.data(), dctData.size()); ++ jpeg_read_header(&cinfo, 1); ++ cinfo.out_color_space = ((components == 3) ? JCS_RGB : JCS_GRAYSCALE); ++ jpeg_start_decompress(&cinfo); ++ while (cinfo.output_scanline < cinfo.output_height) { ++ int row_stride = cinfo.output_width * cinfo.output_components; ++ int index = cinfo.output_scanline * row_stride; ++ unsigned char *buffer[1]; ++ buffer[0] = (unsigned char *) &(pixelData[index]); ++ jpeg_read_scanlines(&cinfo, buffer, 1); + } +- tjDestroy(handle); ++ jpeg_finish_decompress(&cinfo); ++ jpeg_destroy_decompress(&cinfo); + return true; + } + Added: trunk/dports/graphics/ipe/files/patch-ipelua-ipeluaipelet.cpp.diff =================================================================== --- trunk/dports/graphics/ipe/files/patch-ipelua-ipeluaipelet.cpp.diff (rev 0) +++ trunk/dports/graphics/ipe/files/patch-ipelua-ipeluaipelet.cpp.diff 2015-03-28 17:27:55 UTC (rev 134525) @@ -0,0 +1,11 @@ +--- ipelua/ipeluaipelet.cpp.orig 2015-03-27 13:38:43.000000000 +0100 ++++ ipelua/ipeluaipelet.cpp 2015-03-27 13:39:02.000000000 +0100 +@@ -67,7 +67,7 @@ + #ifdef WIN32 + fname += ".dll"; + #else +- fname += ".so"; ++ fname += ".dylib"; + #endif + ipeDebug("Loading dll '%s'", fname.z()); + PNewIpeletFn pIpelet = 0;