Update to enblend-enfuse-4.2.

- enable SEPARATE_BUILD while here
 - drop some patches merged upstream.
With some tweaks and OK from sthen@ (MAINTAINER)
This commit is contained in:
kirby 2016-11-24 08:16:03 +00:00
parent 6ea2304d39
commit c1298eedad
11 changed files with 64 additions and 431 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.28 2016/10/25 12:25:32 jca Exp $
# $OpenBSD: Makefile,v 1.29 2016/11/24 08:16:03 kirby Exp $
ONLY_FOR_ARCHS = ${GCC4_ARCHS}
.if (${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "amd64")
@ -11,10 +11,7 @@ BROKEN-alpha = enblend-enblend.o: .got subsegment exceeds 64K (size 77816)
COMMENT = blend seams in panoramic image mosaics
DISTNAME = enblend-enfuse-4.0
PKGNAME = ${DISTNAME:L}
WRKDIST = ${WRKDIR}/enblend-enfuse-4.0-753b534c819d
REVISION = 4
DISTNAME = enblend-enfuse-4.2
CATEGORIES = graphics
HOMEPAGE = http://enblend.sourceforge.net/
@ -24,31 +21,30 @@ MAINTAINER = Stuart Henderson <sthen@openbsd.org>
# GPLv2+, MIT
PERMIT_PACKAGE_CDROM = Yes
WANTLIB += GL GLEW GLU Half ICE Iex IexMath IlmImf IlmThread Imath
WANTLIB += SM X11 Xi Xmu boost_system c glut jpeg lcms m png pthread
WANTLIB += stdc++ tiff xmi z
WANTLIB += Half Iex IexMath IlmImf IlmThread Imath c gsl gslcblas
WANTLIB += jpeg lcms2 m png pthread tiff vigraimpex z
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=enblend/}
BUILD_DEPENDS = math/gnuplot \
MODULES = gcc4
MODGCC4_ARCHS = *
MODGCC4_LANGS +=c++
BUILD_DEPENDS = devel/help2man\
math/gnuplot \
print/texlive/base \
print/transfig \
www/tidyp>=1.04p1
LIB_DEPENDS = devel/boost \
graphics/glew \
graphics/freeglut \
LIB_DEPENDS = devel/gsl \
graphics/ilmbase \
graphics/lcms \
graphics/libxmi \
graphics/openexr \
graphics/png \
graphics/tiff
graphics/lcms2 \
graphics/vigra
SEPARATE_BUILD = Yes
CONFIGURE_STYLE = autoconf
AUTOCONF_VERSION = 2.61
AUTOCONF_VERSION = 2.69
USE_GMAKE = Yes
CPPFLAGS += -I${WRKSRC}/src/vigra_impex \
-I${LOCALBASE}/include \
CPPFLAGS += -I${LOCALBASE}/include \
-I${X11BASE}/include
LDFLAGS += -L${LOCALBASE}/lib \
@ -58,13 +54,11 @@ LDFLAGS += -L${LOCALBASE}/lib \
CONFIGURE_ENV = CPPFLAGS="${CPPFLAGS}" \
LDFLAGS="${LDFLAGS}"
CXXFLAGS += -std=c++11 -pthread
# need to fix bashisms in doc/Makefile.in first
#post-build:
# @cd ${WRKBUILD}/doc && \
# ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} xhtml
# Fix with newer GNUplot versions. From Gentoo bz #334331
post-extract:
@sed -i 's,FreeSans 10,"FreeSans\,10",g' ${WRKSRC}/doc/*.gp.in
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (enblend-enfuse-4.0.tar.gz) = oSpEwqB4lPJ+HVoWdXKBdalDyJuRwayauszmLwjCU8Q=
SIZE (enblend-enfuse-4.0.tar.gz) = 1046677
SHA256 (enblend-enfuse-4.2.tar.gz) = hwPjJJOevXDXav01DlaAD16iwFOgQKX1IYsqGkMAvUg=
SIZE (enblend-enfuse-4.2.tar.gz) = 777747

View File

@ -1,33 +0,0 @@
$OpenBSD: patch-configure_in,v 1.3 2013/03/08 01:30:37 brad Exp $
adapt patch from http://enblend.hg.sourceforge.net/hgweb/enblend/enblend/diff/57db56afb9a9/configure.in
--- configure.in.orig Sat Nov 24 14:57:20 2012
+++ configure.in Sat Nov 24 15:01:33 2012
@@ -196,8 +196,26 @@ AC_CHECK_HEADER(boost/random/mersenne_twister.hpp, [],
AC_MSG_ERROR([Boost "mersenne_twister" header file is required to compile Enblend.]))
AC_CHECK_HEADER(boost/scoped_ptr.hpp, [],
AC_MSG_ERROR([Boost "scoped_ptr" header file is required to compile Enblend.]))
+AC_CHECK_HEADER(boost/system/error_code.hpp, [],
+ AC_MSG_ERROR([Boost "error code" header file is required to compile Enblend.]))
AC_CHECK_HEADER(boost/static_assert.hpp, [],
AC_MSG_ERROR([Boost "static_assert" header file is required to compile Enblend.]))
+
+
+LIBS="-lboost_system $LIBS"
+AC_MSG_CHECKING([for new Boost system library])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "boost/system/error_code.hpp"]],
+ [[boost::system::generic_category();
+ boost::system::system_category()]])],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)
+ AC_MSG_CHECKING([for old Boost system library])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "boost/system/error_code.hpp"]],
+ [[boost::system::get_generic_category();
+ boost::system::get_system_category()]])],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)
+ AC_MSG_ERROR([Boost "system" library is required to compile Enblend.])])])
AC_ARG_WITH([boost-filesystem],
[AS_HELP_STRING([--with-boost-filesystem],

View File

@ -1,33 +0,0 @@
$OpenBSD: patch-doc_enblend_texi,v 1.3 2010/07/15 17:01:58 sthen Exp $
workaround missing @textdegree{}; support was added in texinfo-4.11
--- doc/enblend.texi.orig Sat Jul 10 11:00:30 2010
+++ doc/enblend.texi Sat Jul 10 11:01:55 2010
@@ -474,7 +474,7 @@ in.
@itemx --wrap=@var{MODE}
@opindex -w
@opindex --wrap
-@cindex 360@textdegree{} panoramas
+@cindex 360-degree panoramas
@cindex wrap around
Blend around the boundaries of the panorama.
@@ -546,7 +546,7 @@ $$
S_P(x, y) = \{P(x + m w, y): m \in Z\}.
$$
@end tex
-This is useful for 360@textdegree{} horizontal panoramas as it
+This is useful for 360-degree horizontal panoramas as it
eliminates the left and right borders.
@item vertical
@@ -600,7 +600,7 @@ $$
S_P(x, y) = \{P(x, y + n h): n \in Z\}.
$$
@end tex
-This is useful for 360@textdegree{} vertical panoramas as it
+This is useful for 360-degree vertical panoramas as it
eliminates the top and bottom borders.
@item both

View File

@ -1,33 +0,0 @@
$OpenBSD: patch-doc_enfuse_texi,v 1.3 2010/07/15 17:01:58 sthen Exp $
workaround missing @textdegree{}; support was added in texinfo-4.11
--- doc/enfuse.texi.orig Sat Jul 10 11:04:11 2010
+++ doc/enfuse.texi Sat Jul 10 11:04:22 2010
@@ -599,7 +599,7 @@ details, like the extra features that have been compil
@itemx --wrap=@var{MODE}
@opindex -w
@opindex --wrap
-@cindex 360@textdegree{} panoramas
+@cindex 360-degree panoramas
@cindex wrap around
Blend around the boundaries of the panorama.
@@ -672,7 +672,7 @@ $$
$$
@end tex
-This is useful for 360@textdegree{} horizontal panoramas as it
+This is useful for 360-degree horizontal panoramas as it
eliminates the left and right borders.
@item vertical
@@ -727,7 +727,7 @@ $$
$$
@end tex
-This is useful for 360@textdegree{} vertical panoramas, as it
+This is useful for 360-degree vertical panoramas, as it
eliminates the top and bottom borders.
@item both

View File

@ -1,16 +0,0 @@
$OpenBSD: patch-src_DefaultSig_pm,v 1.1 2014/03/21 00:56:09 sthen Exp $
Fix with perl 5.18
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=719867
--- src/DefaultSig.pm.orig Fri Mar 21 00:54:01 2014
+++ src/DefaultSig.pm Fri Mar 21 00:54:11 2014
@@ -19,7 +19,7 @@ use Sys::Hostname;
our %HAVE_MODULE;
BEGIN {
- foreach my $module qw(Time::Zone) {
+ foreach my $module (qw(Time::Zone)) {
eval "use $module ()"; # import, but keep module's original name space for clarity
$HAVE_MODULE{$module} = $EVAL_ERROR eq '';
}

View File

@ -1,21 +1,21 @@
$OpenBSD: patch-src_Makefile_in,v 1.2 2010/07/11 20:09:00 sthen Exp $
--- src/Makefile.in.orig Wed Nov 25 09:16:30 2009
+++ src/Makefile.in Fri Nov 27 23:55:41 2009
@@ -375,7 +375,7 @@ distclean-compile:
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
$OpenBSD: patch-src_Makefile_in,v 1.3 2016/11/24 08:16:03 kirby Exp $
--- src/Makefile.in.orig Tue Mar 29 10:56:09 2016
+++ src/Makefile.in Sun Nov 20 20:24:40 2016
@@ -652,7 +652,7 @@ distclean-compile:
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
enblend-enblend.o: enblend.cc
-@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enblend_CXXFLAGS) $(CXXFLAGS) -MT enblend-enblend.o -MD -MP -MF $(DEPDIR)/enblend-enblend.Tpo -c -o enblend-enblend.o `test -f 'enblend.cc' || echo '$(srcdir)/'`enblend.cc
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enblend_CXXFLAGS) $(CXXFLAGS) $(CXXNOOPT) -MT enblend-enblend.o -MD -MP -MF $(DEPDIR)/enblend-enblend.Tpo -c -o enblend-enblend.o `test -f 'enblend.cc' || echo '$(srcdir)/'`enblend.cc
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/enblend-enblend.Tpo $(DEPDIR)/enblend-enblend.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='enblend.cc' object='enblend-enblend.o' libtool=no @AMDEPBACKSLASH@
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enblend_CXXFLAGS) $(CXXFLAGS) -MT enblend-enblend.o -MD -MP -MF $(DEPDIR)/enblend-enblend.Tpo -c -o enblend-enblend.o `test -f 'enblend.cc' || echo '$(srcdir)/'`enblend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enblend_CXXFLAGS) $(CXXFLAGS) $(CXXNOOPT) -MT enblend-enblend.o -MD -MP -MF $(DEPDIR)/enblend-enblend.Tpo -c -o enblend-enblend.o `test -f 'enblend.cc' || echo '$(srcdir)/'`enblend.cc
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/enblend-enblend.Tpo $(DEPDIR)/enblend-enblend.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='enblend.cc' object='enblend-enblend.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@@ -473,7 +473,7 @@ enblend-tiff_message.obj: tiff_message.cc
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enblend_CXXFLAGS) $(CXXFLAGS) -c -o enblend-tiff_message.obj `if test -f 'tiff_message.cc'; then $(CYGPATH_W) 'tiff_message.cc'; else $(CYGPATH_W) '$(srcdir)/tiff_message.cc'; fi`
@@ -848,7 +848,7 @@ enfuse-exposure_weight.obj: exposure_weight.cc
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enfuse_CXXFLAGS) $(CXXFLAGS) -c -o enfuse-exposure_weight.obj `if test -f 'exposure_weight.cc'; then $(CYGPATH_W) 'exposure_weight.cc'; else $(CYGPATH_W) '$(srcdir)/exposure_weight.cc'; fi`
enfuse-enfuse.o: enfuse.cc
-@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enfuse_CXXFLAGS) $(CXXFLAGS) -MT enfuse-enfuse.o -MD -MP -MF $(DEPDIR)/enfuse-enfuse.Tpo -c -o enfuse-enfuse.o `test -f 'enfuse.cc' || echo '$(srcdir)/'`enfuse.cc
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enfuse_CXXFLAGS) $(CXXFLAGS) $(CXXNOOPT) -MT enfuse-enfuse.o -MD -MP -MF $(DEPDIR)/enfuse-enfuse.Tpo -c -o enfuse-enfuse.o `test -f 'enfuse.cc' || echo '$(srcdir)/'`enfuse.cc
@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/enfuse-enfuse.Tpo $(DEPDIR)/enfuse-enfuse.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='enfuse.cc' object='enfuse-enfuse.o' libtool=no @AMDEPBACKSLASH@
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enfuse_CXXFLAGS) $(CXXFLAGS) -MT enfuse-enfuse.o -MD -MP -MF $(DEPDIR)/enfuse-enfuse.Tpo -c -o enfuse-enfuse.o `test -f 'enfuse.cc' || echo '$(srcdir)/'`enfuse.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(enfuse_CXXFLAGS) $(CXXFLAGS) $(CXXNOOPT) -MT enfuse-enfuse.o -MD -MP -MF $(DEPDIR)/enfuse-enfuse.Tpo -c -o enfuse-enfuse.o `test -f 'enfuse.cc' || echo '$(srcdir)/'`enfuse.cc
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/enfuse-enfuse.Tpo $(DEPDIR)/enfuse-enfuse.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='enfuse.cc' object='enfuse-enfuse.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-src_enblend_cc,v 1.5 2016/11/24 08:16:03 kirby Exp $
--- src/enblend.cc.orig Sun Nov 20 21:55:15 2016
+++ src/enblend.cc Sun Nov 20 21:55:28 2016
@@ -1827,10 +1827,6 @@ int main(int argc, char** argv)
exit(1);
}
- if (parameter::as_boolean("dump-global-variables", false)) {
- DUMP_GLOBAL_VARIABLES();
- }
-
sig.check();
for (enblend::TraceableFileNameList::iterator i = inputTraceableFileNameList.begin();

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-src_enfuse_cc,v 1.5 2016/11/24 08:16:03 kirby Exp $
--- src/enfuse.cc.orig Sun Nov 20 21:54:29 2016
+++ src/enfuse.cc Sun Nov 20 21:54:40 2016
@@ -2060,10 +2060,6 @@ int main(int argc, char** argv)
exit(1);
}
- if (parameter::as_boolean("dump-global-variables", false)) {
- DUMP_GLOBAL_VARIABLES();
- }
-
sig.check();
for (enblend::TraceableFileNameList::iterator i = inputTraceableFileNameList.begin();

View File

@ -1,272 +0,0 @@
$OpenBSD: patch-src_vigra_impex_png_cxx,v 1.1 2011/07/08 20:37:01 naddy Exp $
Fix build with png-1.5.
http://enblend.hg.sourceforge.net/hgweb/enblend/enblend/diff/9d9b5f3a97cd/src/vigra_impex/png.cxx
http://enblend.hg.sourceforge.net/hgweb/enblend/enblend/diff/101796703d73/src/vigra_impex/png.cxx
--- src/vigra_impex/png.cxx.orig Sun Dec 20 08:32:28 2009
+++ src/vigra_impex/png.cxx Tue Jul 5 12:47:50 2011
@@ -65,10 +65,20 @@ extern "C"
#include <png.h>
}
+#define STRINGIFY(m_argument) #m_argument
+
#if PNG_LIBPNG_VER < 10201
#error "please update your libpng to at least 1.2.1"
#endif
+#if PNG_LIBPNG_VER >= 10400
+#define PNG_SET_EXPAND_GRAY_1_2_4_TO_8_NAME png_set_expand_gray_1_2_4_to_8
+#else
+#define PNG_SET_EXPAND_GRAY_1_2_4_TO_8_NAME png_set_gray_1_2_4_to_8
+#endif
+#define PNG_SET_EXPAND_GRAY_1_2_4_TO_8_FUNCTION_NAME STRINGIFY(PNG_SET_EXPAND_GRAY_1_2_4_TO_8_NAME)
+#define PNG_SET_EXPAND_GRAY_1_2_4_TO_8(m_image) PNG_SET_EXPAND_GRAY_1_2_4_TO_8_NAME(m_image)
+
// TODO: per-scanline reading/writing
namespace {
@@ -81,7 +91,7 @@ extern "C" {
static void PngError( png_structp png_ptr, png_const_charp error_msg )
{
png_error_message = std::string(error_msg);
- longjmp( png_ptr->jmpbuf, 1 );
+ longjmp( png_jmpbuf(png_ptr), 1 );
}
// called on non-fatal errors
@@ -203,9 +213,9 @@ namespace vigra {
// check if the file is a png file
const unsigned int sig_size = 8;
png_byte sig[sig_size];
- std::fread( sig, sig_size, 1, file.get() );
+ std::size_t readCount = std::fread( sig, sig_size, 1, file.get() );
const int no_png = png_sig_cmp( sig, 0, sig_size );
- vigra_precondition( !no_png, "given file is not a png file.");
+ vigra_precondition( (readCount == 1) && !no_png, "given file is not a png file.");
// create png read struct with user defined handlers
png = png_create_read_struct( PNG_LIBPNG_VER_STRING, NULL,
@@ -213,7 +223,7 @@ namespace vigra {
vigra_postcondition( png != 0, "could not create the read struct." );
// create info struct
- if (setjmp(png->jmpbuf)) {
+ if (setjmp(png_jmpbuf(png))) {
png_destroy_read_struct( &png, &info, NULL );
vigra_postcondition( false, png_error_message.insert(0, "error in png_create_info_struct(): ").c_str() );
}
@@ -221,14 +231,14 @@ namespace vigra {
vigra_postcondition( info != 0, "could not create the info struct." );
// init png i/o
- if (setjmp(png->jmpbuf)) {
+ if (setjmp(png_jmpbuf(png))) {
png_destroy_read_struct( &png, &info, NULL );
vigra_postcondition( false, png_error_message.insert(0, "error in png_init_io(): ").c_str() );
}
png_init_io( png, file.get() );
// specify that the signature was already read
- if (setjmp(png->jmpbuf)) {
+ if (setjmp(png_jmpbuf(png))) {
png_destroy_read_struct( &png, &info, NULL );
vigra_postcondition( false, png_error_message.insert(0, "error in png_set_sig_bytes(): ").c_str() );
}
@@ -244,13 +254,13 @@ namespace vigra {
void PngDecoderImpl::init()
{
// read all chunks up to the image data
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_read_info(): ").c_str() );
png_read_info( png, info );
// pull over the header fields
int interlace_method, compression_method, filter_method;
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_get_IHDR(): ").c_str() );
png_get_IHDR( png, info, &width, &height, &bit_depth, &color_type,
&interlace_method, &compression_method, &filter_method );
@@ -264,7 +274,7 @@ namespace vigra {
// transform palette to rgb
if ( color_type == PNG_COLOR_TYPE_PALETTE) {
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_palette_to_rgb(): ").c_str() );
png_set_palette_to_rgb(png);
color_type = PNG_COLOR_TYPE_RGB;
@@ -273,9 +283,9 @@ namespace vigra {
// expand gray values to at least one byte size
if ( color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8 ) {
- if (setjmp(png->jmpbuf))
- vigra_postcondition( false,png_error_message.insert(0, "error in png_set_gray_1_2_4_to_8(): ").c_str());
- png_set_gray_1_2_4_to_8(png);
+ if (setjmp(png_jmpbuf(png)))
+ vigra_postcondition( false, png_error_message.insert(0, "error in " PNG_SET_EXPAND_GRAY_1_2_4_TO_8_FUNCTION_NAME " (): ").c_str());
+ PNG_SET_EXPAND_GRAY_1_2_4_TO_8(png);
bit_depth = 8;
}
@@ -283,7 +293,7 @@ namespace vigra {
#if 0
// strip alpha channel
if ( color_type & PNG_COLOR_MASK_ALPHA ) {
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_set_strip_alpha(): ").c_str() );
png_set_strip_alpha(png);
color_type ^= PNG_COLOR_MASK_ALPHA;
@@ -325,9 +335,13 @@ namespace vigra {
#if (PNG_LIBPNG_VER > 10008) && defined(PNG_READ_iCCP_SUPPORTED)
char * dummyName;
int dummyCompType;
+#if (PNG_LIBPNG_VER < 10500)
char * profilePtr;
+#else
+ png_byte * profilePtr;
+#endif
png_uint_32 profileLen;
- if (info->valid & PNG_INFO_iCCP) {
+ if (png_get_valid( png, info, PNG_INFO_iCCP )) {
png_get_iCCP(png, info, &dummyName, &dummyCompType, &profilePtr, &profileLen) ;
iccProfilePtr = (unsigned char *) profilePtr;
iccProfileLength = profileLen;
@@ -340,7 +354,7 @@ namespace vigra {
// image gamma
double image_gamma = 0.45455;
if ( png_get_valid( png, info, PNG_INFO_gAMA ) ) {
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_get_gAMA(): ").c_str() );
png_get_gAMA( png, info, &image_gamma );
}
@@ -349,26 +363,26 @@ namespace vigra {
double screen_gamma = 2.2;
// set gamma correction
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_set_gamma(): ").c_str() );
png_set_gamma( png, screen_gamma, image_gamma );
#endif
// interlace handling, get number of read passes needed
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false,png_error_message.insert(0, "error in png_set_interlace_handling(): ").c_str());
n_interlace_passes = png_set_interlace_handling(png);
// update png library state to reflect any changes that were made
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_read_update_info(): ").c_str() );
png_read_update_info( png, info );
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false,png_error_message.insert(0, "error in png_get_channels(): ").c_str());
n_channels = png_get_channels(png, info);
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false,png_error_message.insert(0, "error in png_get_rowbytes(): ").c_str());
rowsize = png_get_rowbytes(png, info);
@@ -378,9 +392,10 @@ namespace vigra {
void PngDecoderImpl::nextScanline()
{
- for (int i=0; i < n_interlace_passes; i++) {
- if (setjmp(png->jmpbuf))
- vigra_postcondition( false,png_error_message.insert(0, "error in png_read_row(): ").c_str());
+ if (setjmp(png_jmpbuf(png)))
+ vigra_postcondition( false,png_error_message.insert(0, "error in png_read_row(): ").c_str());
+ for (int i=0; i < n_interlace_passes; i++)
+ {
png_read_row(png, row_data.begin(), NULL);
}
}
@@ -545,7 +560,7 @@ namespace vigra {
vigra_postcondition( png != 0, "could not create the write struct." );
// create info struct
- if (setjmp(png->jmpbuf)) {
+ if (setjmp(png_jmpbuf(png))) {
png_destroy_write_struct( &png, &info );
vigra_postcondition( false, png_error_message.insert(0, "error in png_info_struct(): ").c_str() );
}
@@ -556,7 +571,7 @@ namespace vigra {
}
// init png i/o
- if (setjmp(png->jmpbuf)) {
+ if (setjmp(png_jmpbuf(png))) {
png_destroy_write_struct( &png, &info );
vigra_postcondition( false, png_error_message.insert(0, "error in png_init_io(): ").c_str() );
}
@@ -571,7 +586,7 @@ namespace vigra {
void PngEncoderImpl::finalize()
{
// write the IHDR
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_set_IHDR(): ").c_str() );
png_set_IHDR( png, info, width, height, bit_depth, color_type,
PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
@@ -579,7 +594,7 @@ namespace vigra {
// set resolution
if (x_resolution > 0 && y_resolution > 0) {
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_set_pHYs(): ").c_str() );
png_set_pHYs(png, info, (png_uint_32) (x_resolution / 0.0254 + 0.5),
(png_uint_32) (y_resolution / 0.0254 + 0.5),
@@ -588,7 +603,7 @@ namespace vigra {
// set offset
if (position.x > 0 && position.y > 0) {
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_set_oFFs(): ").c_str() );
png_set_oFFs(png, info, position.x, position.y, PNG_OFFSET_PIXEL);
}
@@ -596,13 +611,17 @@ namespace vigra {
#if (PNG_LIBPNG_VER > 10008) && defined(PNG_WRITE_iCCP_SUPPORTED)
// set icc profile
if (iccProfile.size() > 0) {
- png_set_iCCP(png, info, "icc", 0,
- (char *)iccProfile.begin(), iccProfile.size());
+ png_set_iCCP(png, info, (png_charp)("icc"), 0,
+#if (PNG_LIBPNG_VER < 10500)
+ (png_charp)iccProfile.begin(), (png_uint_32)iccProfile.size());
+#else
+ (png_byte*)iccProfile.begin(), (png_uint_32)iccProfile.size());
+#endif
}
#endif
// write the info struct
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_write_info(): ").c_str() );
png_write_info( png, info );
@@ -634,10 +653,10 @@ namespace vigra {
}
// write the whole image
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_write_image(): ").c_str() );
png_write_image( png, row_pointers.begin() );
- if (setjmp(png->jmpbuf))
+ if (setjmp(png_jmpbuf(png)))
vigra_postcondition( false, png_error_message.insert(0, "error in png_write_end(): ").c_str() );
png_write_end(png, info);
}

View File

@ -1,7 +1,5 @@
@comment $OpenBSD: PLIST,v 1.2 2010/07/11 20:09:00 sthen Exp $
@comment $OpenBSD: PLIST,v 1.3 2016/11/24 08:16:03 kirby Exp $
@bin bin/enblend
@bin bin/enfuse
@info info/enblend.info
@info info/enfuse.info
@man man/man1/enblend.1
@man man/man1/enfuse.1