Bug 206239

Summary: [patch] fix graphics/pfstools build for octave 4.0
Product: Ports & Packages Reporter: Iouri V. Ivliev <fbsd>
Component: Individual Port(s)Assignee: Kurt Jaeger <pi>
Status: Closed FIXED    
Severity: Affects Some People CC: darius, pi
Priority: --- Keywords: patch
Version: LatestFlags: pi: maintainer-feedback+
Hardware: Any   
OS: Any   
Attachments:
Description Flags
patch fixes port build for octave 4.0
none
patch fixes port build for octave 4.0 and portlint failures and some wrnings
none
patch fixes port build for octave 4.0, portlint failures and some wrnings and NETPBM option none

Description Iouri V. Ivliev 2016-01-14 16:45:10 UTC
Created attachment 165567 [details]
patch fixes port build for octave 4.0
Comment 1 Daniel O'Connor 2016-01-16 22:08:44 UTC
Looks fine to me.

I haven't used the port in quite a while so if you do perhaps you could take maintainership of it.

Thanks.
Comment 2 Kurt Jaeger freebsd_committer freebsd_triage 2016-02-10 19:57:58 UTC
what about an update to 2.0.4, the most recent version of pfstools ?
Comment 3 Kurt Jaeger freebsd_committer freebsd_triage 2016-02-11 03:09:36 UTC
The port has many portlint -AC warnings and some FATAL messages as well.
Comment 4 Kurt Jaeger freebsd_committer freebsd_triage 2016-02-11 03:12:50 UTC
Testbuilds are fine.
Comment 5 Iouri V. Ivliev 2016-02-13 13:15:12 UTC
Created attachment 166930 [details]
patch fixes port build for octave 4.0 and portlint failures and some wrnings
Comment 6 Iouri V. Ivliev 2016-02-13 13:26:44 UTC
Comment on attachment 166930 [details]
patch fixes port build for octave 4.0 and portlint failures and some wrnings

diff -ruN pfstools.orig/Makefile pfstools/Makefile
--- pfstools.orig/Makefile	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/Makefile	2016-02-13 13:42:47.950025822 +0300
@@ -14,8 +14,6 @@
 
 RUN_DEPENDS+=	bash:${PORTSDIR}/shells/bash
 
-PFS_CPPFLAGS=	-I${LOCALBASE}/include
-PFS_LDFLAGS=	-L${LOCALBASE}/lib
 PFS_BUILD=	${MACHINE_ARCH}-portbld-freebsd${OSREL}
 PLIST_SUB+=	PFS_BASE=${PREFIX}
 
@@ -23,9 +21,7 @@
 CONFIGURE_TARGET=	${PFS_BUILD}
 CONFIGURE_ARGS=	--disable-jpeghdr --disable-matlab \
 		--with-bash=${LOCALBASE}/bin/bash
-CONFIGURE_ENV=	CPPFLAGS="${PFS_CPPFLAGS}" \
-		LDFLAGS="${PFS_LDFLAGS}" \
-		PKG_CONFIG_PATH=${LOCALBASE}/libdata/pkgconfig
+CONFIGURE_ENV=	PKG_CONFIG_PATH=${LOCALBASE}/libdata/pkgconfig
 USE_LDCONFIG=	yes
 USES=		gmake pkgconfig libtool
 
@@ -71,7 +67,7 @@
 OCTAVE_VERSION!=${OCTAVE_BASE}/bin/octave-config -v 2>&1 || ${ECHO} "0"
 OCTAVE_SITE_OCT!=${OCTAVE_BASE}/bin/octave-config --oct-site-dir 2>&1 || ${ECHO} ""
 OCTAVE_SITE_M!=	${OCTAVE_BASE}/bin/octave-config --m-site-dir 2>&1 || ${ECHO} ""
-PLIST_SUB+=	OCTAVE="" \
+PLIST_SUB+=	\
 		OCTAVE_BASE=${OCTAVE_BASE} \
 		OCTAVE_SITE_M=${OCTAVE_SITE_M:S|^${OCTAVE_BASE}/||} \
 		OCTAVE_SITE_OCT=${OCTAVE_SITE_OCT:S|^${OCTAVE_BASE}/||}
@@ -79,7 +75,7 @@
 SHEBANG_FILES=	src/octave/*
 SHEBANG_LANG+=	octave
 octave_OLD_CMD?=/usr/bin/octave
-octave_CMD?=	${LOCALBASE}/bin/octave
+octave_CMD?=	${OCTAVE_BASE}/bin/octave
 .endif
 
 .include <bsd.port.mk>
diff -ruN pfstools.orig/files/patch-config.h.in pfstools/files/patch-config.h.in
--- pfstools.orig/files/patch-config.h.in	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-config.h.in	2016-02-12 20:11:41.000000000 +0300
@@ -1,5 +1,5 @@
---- config.h.in.orig	2011-10-27 08:40:42.000000000 +0000
-+++ config.h.in	2014-02-20 19:04:01.536587053 +0000
+--- config.h.in.orig	2011-10-27 08:40:42 UTC
++++ config.h.in
 @@ -99,13 +99,13 @@
  
  /* Output stream for debug messages. */
diff -ruN pfstools.orig/files/patch-configure pfstools/files/patch-configure
--- pfstools.orig/files/patch-configure	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-configure	2016-02-12 20:11:41.000000000 +0300
@@ -1,15 +1,6 @@
---- configure.orig	2011-10-27 08:40:31.000000000 +0000
-+++ configure	2014-02-20 19:04:01.546588828 +0000
-@@ -14827,7 +14827,7 @@
-   imagemagick_support="no"
- else
- 	IMAGEMAGICK_CFLAGS=$pkg_cv_IMAGEMAGICK_CFLAGS
--	IMAGEMAGICK_LIBS=$pkg_cv_IMAGEMAGICK_LIBS
-+	IMAGEMAGICK_LIBS="$pkg_cv_IMAGEMAGICK_LIBS /usr/local/lib/gcc47/libstdc++.so"
-         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
- 
-@@ -15411,7 +15411,7 @@
+--- configure.orig	2011-10-27 08:40:31 UTC
++++ configure
+@@ -15411,7 +15411,7 @@ fi #end of PKG_CHECK_MODULES
  if test -z "$QTDIR"; then
    MOC="moc-qt4"
  else
diff -ruN pfstools.orig/files/patch-src-fileformat-exrio.cpp pfstools/files/patch-src-fileformat-exrio.cpp
--- pfstools.orig/files/patch-src-fileformat-exrio.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-exrio.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/exrio.cpp.orig	2005-06-15 13:36:54.000000000 +0000
-+++ src/fileformat/exrio.cpp	2014-02-20 19:04:01.546588828 +0000
-@@ -54,14 +54,14 @@
+--- src/fileformat/exrio.cpp.orig	2005-06-15 13:36:54 UTC
++++ src/fileformat/exrio.cpp
+@@ -54,14 +54,14 @@ OpenEXRReader::OpenEXRReader( const char
    }
  
    DEBUG_STR << "OpenEXR file \"" << filename << "\" ("
@@ -17,7 +17,7 @@
    
    Imf::Rgba* tmp_img = new Imf::Rgba[width*height];
  
-@@ -93,7 +93,7 @@
+@@ -93,7 +93,7 @@ void OpenEXRReader::readImage( pfs::Arra
  OpenEXRReader::~OpenEXRReader()
  {
    delete file;
diff -ruN pfstools.orig/files/patch-src-fileformat-hdrtiffio.cpp pfstools/files/patch-src-fileformat-hdrtiffio.cpp
--- pfstools.orig/files/patch-src-fileformat-hdrtiffio.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-hdrtiffio.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/hdrtiffio.cpp.orig	2011-10-27 08:39:07.000000000 +0000
-+++ src/fileformat/hdrtiffio.cpp	2014-02-20 19:04:01.546588828 +0000
-@@ -66,7 +66,7 @@
+--- src/fileformat/hdrtiffio.cpp.orig	2011-10-27 08:39:07 UTC
++++ src/fileformat/hdrtiffio.cpp
+@@ -66,7 +66,7 @@ HDRTiffReader::HDRTiffReader( const char
    }
  
    DEBUG_STR << "TIFF file \"" << filename << "\" ("
@@ -9,7 +9,7 @@
  
  	//--- image parameters
    if(!TIFFGetField(tif, TIFFTAG_COMPRESSION, &comp)) // compression type
-@@ -81,7 +81,7 @@
+@@ -81,7 +81,7 @@ HDRTiffReader::HDRTiffReader( const char
    switch(phot)
    {
      case PHOTOMETRIC_LOGLUV:
@@ -18,7 +18,7 @@
        if (comp != COMPRESSION_SGILOG && comp != COMPRESSION_SGILOG24)
        {
  	TIFFClose(tif);
-@@ -96,7 +96,7 @@
+@@ -96,7 +96,7 @@ HDRTiffReader::HDRTiffReader( const char
        relative_values=true;
        break;
      case PHOTOMETRIC_RGB:
@@ -27,7 +27,7 @@
       // read extra samples (# of alpha channels)
        if (TIFFGetField( tif, TIFFTAG_EXTRASAMPLES,
                          &extra_samples_per_pixel, &extra_sample_types )!=1)
-@@ -121,36 +121,36 @@
+@@ -121,36 +121,36 @@ HDRTiffReader::HDRTiffReader( const char
        if( bps==8 )
        {
  	TypeOfData = BYTE;
@@ -70,7 +70,7 @@
  	TIFFClose(tif);
  	throw pfs::Exception("TIFF: unsupported bits per sample for "
  			     "grayscale image.");
-@@ -160,7 +160,7 @@
+@@ -160,7 +160,7 @@ HDRTiffReader::HDRTiffReader( const char
        relative_values=true;
        break;
      default:
@@ -79,7 +79,7 @@
        TIFFClose(tif);
        strcpy(format_string,"unknown");
        relative_values=false;
-@@ -184,12 +184,12 @@
+@@ -184,12 +184,12 @@ void HDRTiffReader::readImage( pfs::Arra
    //--- image length
    uint32 imagelength;
    TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength);
diff -ruN pfstools.orig/files/patch-src-fileformat-pfsinexr.cpp pfstools/files/patch-src-fileformat-pfsinexr.cpp
--- pfstools.orig/files/patch-src-fileformat-pfsinexr.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-pfsinexr.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/pfsinexr.cpp.orig	2008-01-01 13:01:21.000000000 +0000
-+++ src/fileformat/pfsinexr.cpp	2014-02-20 19:04:01.546588828 +0000
-@@ -234,7 +234,7 @@
+--- src/fileformat/pfsinexr.cpp.orig	2008-01-01 13:01:21 UTC
++++ src/fileformat/pfsinexr.cpp
+@@ -234,7 +234,7 @@ void readFrames( int argc, char* argv[] 
      }
      
      file.setFrameBuffer( frameBuffer );
diff -ruN pfstools.orig/files/patch-src-fileformat-pfsinimgmagick.cpp pfstools/files/patch-src-fileformat-pfsinimgmagick.cpp
--- pfstools.orig/files/patch-src-fileformat-pfsinimgmagick.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-pfsinimgmagick.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/pfsinimgmagick.cpp.orig	2008-10-03 19:07:34.000000000 +0000
-+++ src/fileformat/pfsinimgmagick.cpp	2014-02-20 19:04:01.546588828 +0000
-@@ -108,6 +108,7 @@
+--- src/fileformat/pfsinimgmagick.cpp.orig	2008-10-03 19:07:34 UTC
++++ src/fileformat/pfsinimgmagick.cpp
+@@ -108,6 +108,7 @@ void readFrames( int argc, char* argv[] 
      if( ff.fh == NULL ) break; // No more frames
      it.closeFrameFile( ff );
  
@@ -8,7 +8,7 @@
      VERBOSE_STR << "reading file '" << ff.fileName << "'" << std::endl;
      Magick::Image imImage( ff.fileName );
  
-@@ -172,7 +173,7 @@
+@@ -172,7 +173,7 @@ void readFrames( int argc, char* argv[] 
      frame->getTags()->setString( "FILE_NAME", fileNameTag );
   
      char strbuf[3];
diff -ruN pfstools.orig/files/patch-src-fileformat-pfsinjpeghdr.cpp pfstools/files/patch-src-fileformat-pfsinjpeghdr.cpp
--- pfstools.orig/files/patch-src-fileformat-pfsinjpeghdr.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-pfsinjpeghdr.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/pfsinjpeghdr.cpp.orig	2005-11-04 08:54:27.000000000 +0000
-+++ src/fileformat/pfsinjpeghdr.cpp	2014-02-20 19:04:01.546588828 +0000
-@@ -123,8 +123,8 @@
+--- src/fileformat/pfsinjpeghdr.cpp.orig	2005-11-04 08:54:27 UTC
++++ src/fileformat/pfsinjpeghdr.cpp
+@@ -123,8 +123,8 @@ void readFrames( int argc, char* argv[] 
      case JPEG_HEADER_HDR:  // HDR image          
        jpeghdr_start_decompress(&jhinf);
        frame = pfsio.createFrame( jhinf.cinfo.output_width, jhinf.cinfo.output_height );
@@ -11,7 +11,7 @@
        // Important: test jhinf.output_scanline, not jhinf.cinfo
        int index ;
        index = 0;
-@@ -144,7 +144,7 @@
+@@ -144,7 +144,7 @@ void readFrames( int argc, char* argv[] 
          (Z->getRawData())[i] = hdrscan[3*i + 2];
        }       
        pfs::transformColorSpace( pfs::CS_RGB, X, Y, Z, pfs::CS_XYZ, X, Y, Z );	  
diff -ruN pfstools.orig/files/patch-src-fileformat-pfsoutimgmagick.cpp pfstools/files/patch-src-fileformat-pfsoutimgmagick.cpp
--- pfstools.orig/files/patch-src-fileformat-pfsoutimgmagick.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-pfsoutimgmagick.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/pfsoutimgmagick.cpp.orig	2011-03-15 08:47:24.000000000 +0000
-+++ src/fileformat/pfsoutimgmagick.cpp	2014-02-20 19:04:01.546588828 +0000
-@@ -190,6 +190,7 @@
+--- src/fileformat/pfsoutimgmagick.cpp.orig	2011-03-15 08:47:24 UTC
++++ src/fileformat/pfsoutimgmagick.cpp
+@@ -190,6 +190,7 @@ void writeFrames( int argc, char* argv[]
          if( alpha != NULL )
            imgBuffer[i++] = (unsigned short)(maxValue-clamp((*alpha)(pix),0.f,1.f)*maxValue);
        }
diff -ruN pfstools.orig/files/patch-src-fileformat-pfsoutjpeghdr.cpp pfstools/files/patch-src-fileformat-pfsoutjpeghdr.cpp
--- pfstools.orig/files/patch-src-fileformat-pfsoutjpeghdr.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-pfsoutjpeghdr.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/pfsoutjpeghdr.cpp.orig	2005-11-04 08:54:27.000000000 +0000
-+++ src/fileformat/pfsoutjpeghdr.cpp	2014-02-20 19:04:01.546588828 +0000
-@@ -69,8 +69,7 @@
+--- src/fileformat/pfsoutjpeghdr.cpp.orig	2005-11-04 08:54:27 UTC
++++ src/fileformat/pfsoutjpeghdr.cpp
+@@ -69,8 +69,7 @@ void writeHDRJPEGGray( FILE *fh, int wid
     jhinf.correction = correction;
     jpeg_stdio_dest(&jhinf.cinfo, fh);
     
@@ -10,7 +10,7 @@
     
     for(int i=0;i<width * height;i++)
     {
-@@ -91,7 +90,7 @@
+@@ -91,7 +90,7 @@ void writeHDRJPEGGray( FILE *fh, int wid
     // Or, assign jhinf.tmi 8-bit grayscale values in scanline order
     jpeghdr_do_compress(&jhinf);
     jpeghdr_destroy_compress(&jhinf);
@@ -19,7 +19,7 @@
  }
  
  void writeHDRJPEGRGB( FILE *fh, int width, int height,
-@@ -111,8 +110,7 @@
+@@ -111,8 +110,7 @@ void writeHDRJPEGRGB( FILE *fh, int widt
     jhinf.beta = beta;
     jpeg_stdio_dest(&jhinf.cinfo, fh);
     
@@ -29,7 +29,7 @@
     
     for(int i=0;i<width * height;i++)
     {
-@@ -135,7 +133,7 @@
+@@ -135,7 +133,7 @@ void writeHDRJPEGRGB( FILE *fh, int widt
     jpeghdr_do_compress(&jhinf);
     jpeghdr_destroy_compress(&jhinf);
  
diff -ruN pfstools.orig/files/patch-src-fileformat-pfsoutpfm.cpp pfstools/files/patch-src-fileformat-pfsoutpfm.cpp
--- pfstools.orig/files/patch-src-fileformat-pfsoutpfm.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-pfsoutpfm.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/pfsoutpfm.cpp.orig	2005-06-15 13:36:54.000000000 +0000
-+++ src/fileformat/pfsoutpfm.cpp	2014-02-20 19:04:01.546588828 +0000
-@@ -74,7 +74,7 @@
+--- src/fileformat/pfsoutpfm.cpp.orig	2005-06-15 13:36:54 UTC
++++ src/fileformat/pfsoutpfm.cpp
+@@ -74,7 +74,7 @@ void writePFMFileColor( FILE *fh, int wi
      }
      int written = fwrite( line, sizeof( float ), lineSize, fh );
      if( written != lineSize )
@@ -9,7 +9,7 @@
    }
    delete[] line;  
  }
-@@ -94,7 +94,7 @@
+@@ -94,7 +94,7 @@ void writePFMFileGrayscale( FILE *fh, in
      }
      int written = fwrite( line, sizeof( float ), lineSize, fh );
      if( written != lineSize )
diff -ruN pfstools.orig/files/patch-src-fileformat-ppmio.cpp pfstools/files/patch-src-fileformat-ppmio.cpp
--- pfstools.orig/files/patch-src-fileformat-ppmio.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-ppmio.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/ppmio.cpp.orig	2009-05-25 19:24:49.000000000 +0000
-+++ src/fileformat/ppmio.cpp	2014-02-20 19:04:01.556587853 +0000
-@@ -34,6 +34,8 @@
+--- src/fileformat/ppmio.cpp.orig	2009-05-25 19:24:49 UTC
++++ src/fileformat/ppmio.cpp
+@@ -34,6 +34,8 @@ extern "C" {
  #include <math.h>
  #include <assert.h>
  
diff -ruN pfstools.orig/files/patch-src-fileformat-rgbeio.cpp pfstools/files/patch-src-fileformat-rgbeio.cpp
--- pfstools.orig/files/patch-src-fileformat-rgbeio.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-fileformat-rgbeio.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/fileformat/rgbeio.cpp.orig	2007-12-06 11:00:49.000000000 +0000
-+++ src/fileformat/rgbeio.cpp	2014-02-20 19:04:01.556587853 +0000
-@@ -141,7 +141,7 @@
+--- src/fileformat/rgbeio.cpp.orig	2007-12-06 11:00:49 UTC
++++ src/fileformat/rgbeio.cpp
+@@ -141,7 +141,7 @@ void rgb2rgbe( float r, float g, float b
  // Reading RGBE files
  void readRadianceHeader( FILE *file, int &width, int &height, float &exposure )
  {
@@ -9,7 +9,7 @@
  
    // read header information
    char head[255];
-@@ -208,7 +208,7 @@
+@@ -208,7 +208,7 @@ void readRadianceHeader( FILE *file, int
  	height = height - width;
  	}
  */
@@ -18,7 +18,7 @@
  }
  
  
-@@ -389,7 +389,7 @@
+@@ -389,7 +389,7 @@ void writeRadiance( FILE *file, pfs::Arr
    int width = X->getCols();
    int height = X->getRows();
  
diff -ruN pfstools.orig/files/patch-src-filter-Makefile.am pfstools/files/patch-src-filter-Makefile.am
--- pfstools.orig/files/patch-src-filter-Makefile.am	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-filter-Makefile.am	2016-02-12 20:11:41.000000000 +0300
@@ -1,5 +1,5 @@
---- src/filter/Makefile.am.orig	2009-05-30 06:59:10.000000000 +0000
-+++ src/filter/Makefile.am	2014-02-20 19:04:01.556587853 +0000
+--- src/filter/Makefile.am.orig	2009-05-30 06:59:10 UTC
++++ src/filter/Makefile.am
 @@ -1,6 +1,7 @@
  ###
  bin_PROGRAMS = pfsgamma pfsclamp pfstag pfssize pfsextractchannels pfspanoramic \
@@ -9,7 +9,7 @@
  
  man_MANS = pfsgamma.1 pfsclamp.1 pfstag.1 pfssize.1 pfsextractchannels.1 \
  	pfspanoramic.1 pfsrotate.1 pfsflip.1 pfscut.1 pfspad.1 pfscat.1 \
-@@ -34,6 +35,8 @@
+@@ -34,6 +35,8 @@ pfscat_SOURCES = pfscat.cpp
  
  pfsabsolute_SOURCES = pfsabsolute.cpp
  
diff -ruN pfstools.orig/files/patch-src-filter-Makefile.in pfstools/files/patch-src-filter-Makefile.in
--- pfstools.orig/files/patch-src-filter-Makefile.in	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-filter-Makefile.in	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/filter/Makefile.in.orig	2011-10-27 08:40:29.000000000 +0000
-+++ src/filter/Makefile.in	2014-02-20 19:04:01.556587853 +0000
-@@ -38,7 +38,8 @@
+--- src/filter/Makefile.in.orig	2011-10-27 08:40:29 UTC
++++ src/filter/Makefile.in
+@@ -38,7 +38,8 @@ bin_PROGRAMS = pfsgamma$(EXEEXT) pfsclam
  	pfssize$(EXEEXT) pfsextractchannels$(EXEEXT) \
  	pfspanoramic$(EXEEXT) pfsrotate$(EXEEXT) pfsflip$(EXEEXT) \
  	pfscut$(EXEEXT) pfspad$(EXEEXT) pfscat$(EXEEXT) \
@@ -10,7 +10,7 @@
  subdir = src/filter
  DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-@@ -54,6 +55,9 @@
+@@ -54,6 +55,9 @@ CONFIG_CLEAN_FILES =
  CONFIG_CLEAN_VPATH_FILES =
  am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
  PROGRAMS = $(bin_PROGRAMS)
@@ -20,7 +20,7 @@
  am_pfsabsolute_OBJECTS = pfsabsolute.$(OBJEXT)
  pfsabsolute_OBJECTS = $(am_pfsabsolute_OBJECTS)
  pfsabsolute_LDADD = $(LDADD)
-@@ -120,13 +124,15 @@
+@@ -120,13 +124,15 @@ SOURCES = $(pfsabsolute_SOURCES) $(pfsca
  	$(pfscut_SOURCES) $(pfsdisplayfunction_SOURCES) \
  	$(pfsextractchannels_SOURCES) $(pfsflip_SOURCES) \
  	$(pfsgamma_SOURCES) $(pfspad_SOURCES) $(pfspanoramic_SOURCES) \
@@ -38,7 +38,7 @@
  am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
  am__vpath_adj = case $$p in \
      $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-@@ -314,6 +320,7 @@
+@@ -314,6 +320,7 @@ pfscut_SOURCES = pfscut.cpp
  pfspad_SOURCES = pfspad.cpp
  pfscat_SOURCES = pfscat.cpp
  pfsabsolute_SOURCES = pfsabsolute.cpp
@@ -46,7 +46,7 @@
  INCLUDES = -I${srcdir}/../pfs
  all: all-am
  
-@@ -392,6 +399,9 @@
+@@ -392,6 +399,9 @@ clean-binPROGRAMS:
  	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
  	echo " rm -f" $$list; \
  	rm -f $$list
diff -ruN pfstools.orig/files/patch-src-filter-pfscat.cpp pfstools/files/patch-src-filter-pfscat.cpp
--- pfstools.orig/files/patch-src-filter-pfscat.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-filter-pfscat.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,5 +1,5 @@
---- src/filter/pfscat.cpp.orig	2008-01-01 13:01:21.000000000 +0000
-+++ src/filter/pfscat.cpp	2014-02-20 19:04:01.556587853 +0000
+--- src/filter/pfscat.cpp.orig	2008-01-01 13:01:21 UTC
++++ src/filter/pfscat.cpp
 @@ -27,6 +27,7 @@
  #include <pfs.h>
  #include <climits>
@@ -8,7 +8,7 @@
  #include <getopt.h>
  #include <fcntl.h>
  #include <stdlib.h>
-@@ -202,16 +203,12 @@
+@@ -202,16 +203,12 @@ if (alignment==UNSP) throw pfs::Exceptio
  
  pfs::FrameFileIterator it ( argc, argv, "rb", NULL, NULL, optString, cmdLineOptions);
  int pipe_no = 0;
@@ -27,7 +27,7 @@
  if(pipe_no == 0) { // no named pipes
      pipe_no = 1;
      pipes = false;
-@@ -408,7 +405,6 @@
+@@ -408,7 +405,6 @@ if(!pipes) {
      }
  
  for (int i=0; i<pipe_no; i++) it.closeFrameFile(ff[i]);
diff -ruN pfstools.orig/files/patch-src-filter-pfsclamp.cpp pfstools/files/patch-src-filter-pfsclamp.cpp
--- pfstools.orig/files/patch-src-filter-pfsclamp.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-filter-pfsclamp.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/filter/pfsclamp.cpp.orig	2005-11-02 13:35:42.000000000 +0000
-+++ src/filter/pfsclamp.cpp	2014-02-20 19:04:01.556587853 +0000
-@@ -151,8 +151,8 @@
+--- src/filter/pfsclamp.cpp.orig	2005-11-02 13:35:42 UTC
++++ src/filter/pfsclamp.cpp
+@@ -151,8 +151,8 @@ void clampFrames( int argc, char* argv[]
    }
    else
    {
diff -ruN pfstools.orig/files/patch-src-filter-pfsextractchannels.cpp pfstools/files/patch-src-filter-pfsextractchannels.cpp
--- pfstools.orig/files/patch-src-filter-pfsextractchannels.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-filter-pfsextractchannels.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/filter/pfsextractchannels.cpp.orig	2005-06-15 13:36:54.000000000 +0000
-+++ src/filter/pfsextractchannels.cpp	2014-02-20 19:04:01.556587853 +0000
-@@ -46,7 +46,7 @@
+--- src/filter/pfsextractchannels.cpp.orig	2005-06-15 13:36:54 UTC
++++ src/filter/pfsextractchannels.cpp
+@@ -46,7 +46,7 @@ void printHelp()
      "See man page for more information.\n" );
  }
  
diff -ruN pfstools.orig/files/patch-src-filter-pfspanoramic.cpp pfstools/files/patch-src-filter-pfspanoramic.cpp
--- pfstools.orig/files/patch-src-filter-pfspanoramic.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-filter-pfspanoramic.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/filter/pfspanoramic.cpp.orig	2010-02-18 11:27:03.000000000 +0000
-+++ src/filter/pfspanoramic.cpp	2014-02-20 19:04:01.556587853 +0000
-@@ -93,7 +93,7 @@
+--- src/filter/pfspanoramic.cpp.orig	2010-02-18 11:27:03 UTC
++++ src/filter/pfspanoramic.cpp
+@@ -93,7 +93,7 @@ class Vector3D
    }
  
    //TODO: optimize rotations by precomputing sines and cosines
@@ -9,7 +9,7 @@
    {
      angle *= (M_PI / 180);
  
-@@ -107,7 +107,7 @@
+@@ -107,7 +107,7 @@ class Vector3D
      z = z2;
    }
  
@@ -18,7 +18,7 @@
    {
      angle *= (M_PI / 180);
  
-@@ -121,7 +121,7 @@
+@@ -121,7 +121,7 @@ class Vector3D
      z = z2;
    }
  
@@ -27,7 +27,7 @@
    {
      angle *= (M_PI / 180);
  
-@@ -195,7 +195,7 @@
+@@ -195,7 +195,7 @@ class ProjectionFactory
      {
        char *opts;
        
diff -ruN pfstools.orig/files/patch-src-filter-pfstag.cpp pfstools/files/patch-src-filter-pfstag.cpp
--- pfstools.orig/files/patch-src-filter-pfstag.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-filter-pfstag.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/filter/pfstag.cpp.orig	2005-06-15 13:36:54.000000000 +0000
-+++ src/filter/pfstag.cpp	2014-02-20 19:04:01.556587853 +0000
-@@ -58,7 +58,7 @@
+--- src/filter/pfstag.cpp.orig	2005-06-15 13:36:54 UTC
++++ src/filter/pfstag.cpp
+@@ -58,7 +58,7 @@ struct TagOperation
    string channel;
  };
  
@@ -9,7 +9,7 @@
  
  TagOperation parseTagOperation( const char *tag, bool remove )
  {
-@@ -133,9 +133,9 @@
+@@ -133,9 +133,9 @@ void setTagsOnFrames( int argc, char* ar
      for( it = setTags.begin(); it != setTags.end(); it++ ) {
        TagOperation &tagop = *it;
        if( tagop.remove )       
diff -ruN pfstools.orig/files/patch-src-filter-pfswb.cpp pfstools/files/patch-src-filter-pfswb.cpp
--- pfstools.orig/files/patch-src-filter-pfswb.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-filter-pfswb.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,5 +1,5 @@
---- src/filter/pfswb.cpp.orig	2014-02-20 19:04:01.556587853 +0000
-+++ src/filter/pfswb.cpp	2014-02-20 19:06:49.706586923 +0000
+--- src/filter/pfswb.cpp.orig	2016-02-12 17:10:27 UTC
++++ src/filter/pfswb.cpp
 @@ -0,0 +1,297 @@
 +/**
 + * @file pfswb.cpp
diff -ruN pfstools.orig/files/patch-src-hdrhtml-hdrhtml.cpp pfstools/files/patch-src-hdrhtml-hdrhtml.cpp
--- pfstools.orig/files/patch-src-hdrhtml-hdrhtml.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-hdrhtml-hdrhtml.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,5 +1,5 @@
---- src/hdrhtml/hdrhtml.cpp.orig	2009-03-11 21:45:55.000000000 +0000
-+++ src/hdrhtml/hdrhtml.cpp	2014-02-20 19:04:01.566588122 +0000
+--- src/hdrhtml/hdrhtml.cpp.orig	2009-03-11 21:45:55 UTC
++++ src/hdrhtml/hdrhtml.cpp
 @@ -27,6 +27,7 @@
  
  #include "hdrhtml.h"
@@ -17,7 +17,7 @@
  // ================================================
  //        Parameters controllig the web page 
  // ================================================
-@@ -94,8 +97,8 @@
+@@ -94,8 +97,8 @@ public:
      
      if( min_val > max_val )             // missing min/max info
      {
@@ -28,7 +28,7 @@
  
        for( int k=0; k < d_size; k++ ) {
          if( data[k] > max_val ) max_val = data[k];
-@@ -195,6 +198,7 @@
+@@ -195,6 +198,7 @@ public:
      this->y_i = new float[lut_size];
      own_y_i = true;
      memcpy(this->y_i, other.y_i, lut_size * sizeof(float));
@@ -36,7 +36,7 @@
    }
  
    ~UniformArrayLUT()
-@@ -341,7 +345,7 @@
+@@ -341,7 +345,7 @@ public:
      for( int k = 1; k < bin_n; k++ )
        hist.n[k] += hist.n[k-1];
  
@@ -45,7 +45,7 @@
      assert( hist.n[bin_n-1] == d_size );    
    }
  
-@@ -361,7 +365,7 @@
+@@ -361,7 +365,7 @@ public:
  //            Text template file utils
  // ================================================
  
@@ -54,7 +54,7 @@
  
  class ReplacePattern
  {
-@@ -403,7 +407,7 @@
+@@ -403,7 +407,7 @@ public:
    {
    }
    
@@ -63,7 +63,7 @@
    {
      if( callback != NULL )
        callback( out, user_data, parameter );
-@@ -567,7 +571,7 @@
+@@ -567,7 +571,7 @@ public:
          // Skip white spaces
          while( line_str[pos] == ' ' || line_str[pos] == '\t' ) pos++;
          int new_pos = line_str.find_first_of( ',', pos );
@@ -72,7 +72,7 @@
          if( new_pos == std::string::npos ) {
            if( k != columns-1 ) {
              std::string full_message( "Missing column data in the file: " );
-@@ -576,16 +580,16 @@
+@@ -576,16 +580,16 @@ public:
            }
            len = std::string::npos;
          } else
@@ -92,7 +92,7 @@
            value = strtof( str_beg, &str_end );
            if( str_beg == str_end ) {
              std::ostringstream error_message;
-@@ -643,15 +647,15 @@
+@@ -643,15 +647,15 @@ void HDRHTMLSet::add_image( int width, i
      basis_table.data[0][k] = log2f( basis_table.data[0][k] );
    
  // Fix zero and negative values in the image, convert to log2 space, find min and max values
@@ -111,7 +111,7 @@
        for( int i=0; i < pixels; i++ ) {
          if( x[i] < min_val && x[i] > 0)
            min_val = x[i];
-@@ -741,7 +745,7 @@
+@@ -741,7 +745,7 @@ void HDRHTMLSet::add_image( int width, i
    for( int k=1; k <= f8_stops+1; k++ ) {
  
  
@@ -120,7 +120,7 @@
  
      float exp_multip = log2f(1/powf( 2, l_start + k*8 ));
  
-@@ -796,9 +800,9 @@
+@@ -796,9 +800,9 @@ void HDRHTMLSet::add_image( int width, i
    
  }
  
@@ -133,7 +133,7 @@
  
  void HDRHTMLSet::generate_webpage( const char *page_template, const char *image_template,
    const char *object_output, const char *html_output)
-@@ -852,11 +856,11 @@
+@@ -852,11 +856,11 @@ void HDRHTMLSet::generate_webpage( const
    
  }
  
@@ -147,7 +147,7 @@
    for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {  
      std::string obj_name( "hdr_" );
      obj_name.append( it->base_name );
-@@ -882,7 +886,7 @@
+@@ -882,7 +886,7 @@ void print_image_objects( ostream &out, 
    
  }
  
@@ -156,7 +156,7 @@
  {
      std::string obj_name( "hdr_" );
      obj_name.append( it.base_name );
-@@ -907,13 +911,13 @@
+@@ -907,13 +911,13 @@ void print_image_htmlcode( ostream &out,
   
  }
  
@@ -172,7 +172,7 @@
      for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {
        if( it->base_name.compare( parameter ) == 0 )
          break;
-@@ -925,7 +929,7 @@
+@@ -925,7 +929,7 @@ void print_image_htmlcode( ostream &out,
      
    } else {
      
@@ -181,7 +181,7 @@
      for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {
        
        print_image_htmlcode( out, hdrhtml_set, *it );
-@@ -935,7 +939,7 @@
+@@ -935,7 +939,7 @@ void print_image_htmlcode( ostream &out,
    
  }
  
diff -ruN pfstools.orig/files/patch-src-matlab-compatibility.h pfstools/files/patch-src-matlab-compatibility.h
--- pfstools.orig/files/patch-src-matlab-compatibility.h	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-matlab-compatibility.h	2016-02-12 20:11:41.000000000 +0300
@@ -1,5 +1,5 @@
---- src/matlab/compatibility.h.orig	2007-03-01 14:10:57.000000000 +0000
-+++ src/matlab/compatibility.h	2014-02-20 19:04:01.566588122 +0000
+--- src/matlab/compatibility.h.orig	2007-03-01 14:10:57 UTC
++++ src/matlab/compatibility.h
 @@ -59,6 +59,6 @@
  
  #endif
diff -ruN pfstools.orig/files/patch-src-octave-pfsclose.cpp pfstools/files/patch-src-octave-pfsclose.cpp
--- pfstools.orig/files/patch-src-octave-pfsclose.cpp	1970-01-01 03:00:00.000000000 +0300
+++ pfstools/files/patch-src-octave-pfsclose.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -0,0 +1,14 @@
+--- src/octave/pfsclose.cpp.orig	2016-02-12 17:10:27 UTC
++++ src/octave/pfsclose.cpp
+@@ -53,9 +53,9 @@ DEFUN_DLD( pfsclose, args, , helpString 
+     return retval;
+   }
+ 
+-  Octave_map pfsStream = args(0).map_value();
++  octave_map pfsStream = args(0).map_value();
+ 
+-  Octave_map::const_iterator itFH = pfsStream.seek( "FH" );
++  octave_map::const_iterator itFH = pfsStream.seek( "FH" );
+   if( itFH == pfsStream.end() ||
+     !pfsStream.contents( itFH )(0).is_real_scalar() )
+   {
diff -ruN pfstools.orig/files/patch-src-octave-pfsget.cpp pfstools/files/patch-src-octave-pfsget.cpp
--- pfstools.orig/files/patch-src-octave-pfsget.cpp	1970-01-01 03:00:00.000000000 +0300
+++ pfstools/files/patch-src-octave-pfsget.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -0,0 +1,58 @@
+--- src/octave/pfsget.cpp.orig	2016-02-12 17:10:27 UTC
++++ src/octave/pfsget.cpp
+@@ -52,9 +52,9 @@ DEFUN_DLD( pfsget, args, , helpString)
+     return retval;
+   }
+ 
+-  Octave_map pfsStream = args(0).map_value();
++  octave_map pfsStream = args(0).map_value();
+ 
+-  Octave_map::const_iterator itFH = pfsStream.seek( "FH" );
++  octave_map::const_iterator itFH = pfsStream.seek( "FH" );
+   if( itFH == pfsStream.end() ||
+     !pfsStream.contents( itFH )(0).is_real_scalar() )
+   {
+@@ -63,7 +63,7 @@ DEFUN_DLD( pfsget, args, , helpString)
+   }  
+   FILE *fh = (FILE*)((long)(pfsStream.contents( itFH )(0).double_value()));
+ 
+-  Octave_map::const_iterator itMode = pfsStream.seek( "MODE" );
++  octave_map::const_iterator itMode = pfsStream.seek( "MODE" );
+   if( itMode == pfsStream.end() || !pfsStream.contents( itMode )(0).is_string() )
+   {
+     error( SCRIPT_NAME ": MODE field missing in the structure or it has wrong type");
+@@ -95,7 +95,7 @@ DEFUN_DLD( pfsget, args, , helpString)
+     
+       // Add channels as matrices to pfs stream struct
+       {
+-        Octave_map channels;
++        octave_scalar_map channels;
+         
+         pfs::ChannelIteratorPtr cit( frame->getChannelIterator() );
+         while( cit->hasNext() ) {
+@@ -115,7 +115,7 @@ DEFUN_DLD( pfsget, args, , helpString)
+ 
+       //Add tags
+       {
+-        Octave_map tags;
++        octave_scalar_map tags;
+         
+         pfs::TagIteratorPtr it( frame->getTags()->getIterator() );        
+         while( it->hasNext() ) {
+@@ -124,14 +124,14 @@ DEFUN_DLD( pfsget, args, , helpString)
+         }
+         pfsStream.assign( "tags", tags );
+         
+-        Octave_map channelTagList;
++        octave_scalar_map channelTagList;
+ 
+         //Copy all channel tags
+         pfs::ChannelIteratorPtr cit( frame->getChannelIterator() );
+         while( cit->hasNext() ) {
+           pfs::Channel *ch = cit->getNext();
+ 
+-          Octave_map channelTags;
++          octave_scalar_map channelTags;
+           
+           pfs::TagIteratorPtr tit( ch->getTags()->getIterator() );        
+           while( tit->hasNext() ) {
diff -ruN pfstools.orig/files/patch-src-octave-pfsopen.cpp pfstools/files/patch-src-octave-pfsopen.cpp
--- pfstools.orig/files/patch-src-octave-pfsopen.cpp	1970-01-01 03:00:00.000000000 +0300
+++ pfstools/files/patch-src-octave-pfsopen.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -0,0 +1,20 @@
+--- src/octave/pfsopen.cpp.orig	2016-02-12 17:10:27 UTC
++++ src/octave/pfsopen.cpp
+@@ -137,7 +137,7 @@ DEFUN_DLD( pfsopen, args, , helpString)
+     }    
+   }
+ 
+-  Octave_map pfsStream;
++  octave_map pfsStream;
+   pfsStream.assign( "FH", octave_value((double)((long)fh)) );
+   pfsStream.assign( "MODE", writeMode ? octave_value("W") : octave_value("R") );
+   pfsStream.assign( "EOF", octave_value(false) );
+@@ -145,7 +145,7 @@ DEFUN_DLD( pfsopen, args, , helpString)
+   if( writeMode ) {
+     pfsStream.assign( "columns", octave_value(width) );
+     pfsStream.assign( "rows", octave_value(height) );
+-    Octave_map channels;
++    octave_map channels;
+     pfsStream.assign( "channels", octave_value(channels) );    
+   }
+   
diff -ruN pfstools.orig/files/patch-src-octave-pfsput.cpp pfstools/files/patch-src-octave-pfsput.cpp
--- pfstools.orig/files/patch-src-octave-pfsput.cpp	1970-01-01 03:00:00.000000000 +0300
+++ pfstools/files/patch-src-octave-pfsput.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -0,0 +1,103 @@
+--- src/octave/pfsput.cpp.orig	2016-02-12 17:10:27 UTC
++++ src/octave/pfsput.cpp
+@@ -52,9 +52,9 @@ DEFUN_DLD( pfsput, args, , helpString)
+     return retval;
+   }
+   
+-  Octave_map pfsStream = args(0).map_value();
++  octave_map pfsStream = args(0).map_value();
+ 
+-  Octave_map::const_iterator itFH = pfsStream.seek( "FH" );
++  octave_map::const_iterator itFH = pfsStream.seek( "FH" );
+   if( itFH == pfsStream.end() ||
+     !pfsStream.contents( itFH )(0).is_real_scalar() )
+   {
+@@ -65,7 +65,7 @@ DEFUN_DLD( pfsput, args, , helpString)
+ 
+   // Check mode
+   {                             
+-    Octave_map::const_iterator itMode = pfsStream.seek( "MODE" );
++    octave_map::const_iterator itMode = pfsStream.seek( "MODE" );
+     if( itMode == pfsStream.end() || !pfsStream.contents( itMode )(0).is_string() )
+     {
+       error( SCRIPT_NAME ": MODE field missing in the structure or it has wrong type");
+@@ -80,8 +80,8 @@ DEFUN_DLD( pfsput, args, , helpString)
+   // Get width & height
+   int width, height;
+   {                             
+-    Octave_map::const_iterator itCols = pfsStream.seek( "columns" );
+-    Octave_map::const_iterator itRows = pfsStream.seek( "rows" );
++    octave_map::const_iterator itCols = pfsStream.seek( "columns" );
++    octave_map::const_iterator itRows = pfsStream.seek( "rows" );
+     if( itCols == pfsStream.end() || itRows == pfsStream.end() ||
+       !pfsStream.contents( itCols )(0).is_real_scalar() ||
+       !pfsStream.contents( itRows )(0).is_real_scalar() )
+@@ -94,9 +94,9 @@ DEFUN_DLD( pfsput, args, , helpString)
+   }
+ 
+   // Get channels
+-  Octave_map channels;
++  octave_map channels;
+   {
+-    Octave_map::const_iterator itChannels = pfsStream.seek( "channels" );
++    octave_map::const_iterator itChannels = pfsStream.seek( "channels" );
+     if( itChannels == pfsStream.end() ||
+       !pfsStream.contents( itChannels )(0).is_map() )
+     {
+@@ -111,7 +111,7 @@ DEFUN_DLD( pfsput, args, , helpString)
+     pfs::Frame *frame = ctx.createFrame( width, height );
+ 
+     // For each channel in the 'channels' map
+-    for( Octave_map::iterator itCh = channels.begin(); itCh != channels.end(); itCh++ ) {
++    for( octave_map::iterator itCh = channels.begin(); itCh != channels.end(); itCh++ ) {
+       std::string channelName = channels.key(itCh);
+ 
+       if( !channels.contents( itCh )(0).is_real_matrix() ) {
+@@ -135,15 +135,15 @@ DEFUN_DLD( pfsput, args, , helpString)
+ 
+     // Copy frame tags
+     {
+-      Octave_map::const_iterator itTags = pfsStream.seek( "tags" );
++      octave_map::const_iterator itTags = pfsStream.seek( "tags" );
+       if( itTags != pfsStream.end() ) {
+         if( !pfsStream.contents( itTags )(0).is_map() )
+         {
+           throw pfs::Exception( "'tags' field must be a structure" );  
+         }
+         
+-        Octave_map tags = pfsStream.contents( itTags )(0).map_value();
+-        for( Octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
++        octave_map tags = pfsStream.contents( itTags )(0).map_value();
++        for( octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
+           std::string tagName = tags.key(itTag);
+ 
+           if( !tags.contents( itTag )(0).is_string() ) 
+@@ -156,14 +156,14 @@ DEFUN_DLD( pfsput, args, , helpString)
+ 
+     // Copy channel tags
+     {
+-      Octave_map::const_iterator itChTags = pfsStream.seek( "channelTags" );
++      octave_map::const_iterator itChTags = pfsStream.seek( "channelTags" );
+       if( itChTags != pfsStream.end() ) {
+         if( !pfsStream.contents( itChTags )(0).is_map() )
+         {
+           throw pfs::Exception( "'channelTags' field must be a structure" );  
+         }
+-        Octave_map tagChannels = pfsStream.contents( itChTags )(0).map_value();
+-        for( Octave_map::iterator itCh = tagChannels.begin(); itCh != tagChannels.end(); itCh++ ) {
++        octave_map tagChannels = pfsStream.contents( itChTags )(0).map_value();
++        for( octave_map::iterator itCh = tagChannels.begin(); itCh != tagChannels.end(); itCh++ ) {
+           std::string channelName = tagChannels.key(itCh);
+           if( !tagChannels.contents( itCh )(0).is_map() ) {
+             throw pfs::Exception( "each channelTags file must be a structure" );  
+@@ -173,8 +173,8 @@ DEFUN_DLD( pfsput, args, , helpString)
+             throw pfs::Exception( "can not set channel tag if channel is missing" );
+           }
+           
+-          Octave_map tags = tagChannels.contents( itCh )(0).map_value();
+-          for( Octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
++          octave_map tags = tagChannels.contents( itCh )(0).map_value();
++          for( octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) {
+             std::string tagName = tags.key(itTag);
+             if( !tags.contents( itTag )(0).is_string() ) 
+               throw pfs::Exception( "all channel tags must be given as strings" );
diff -ruN pfstools.orig/files/patch-src-pfs-Makefile.in pfstools/files/patch-src-pfs-Makefile.in
--- pfstools.orig/files/patch-src-pfs-Makefile.in	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-pfs-Makefile.in	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/pfs/Makefile.in.orig	2011-10-27 08:40:30.000000000 +0000
-+++ src/pfs/Makefile.in	2014-02-20 19:04:01.566588122 +0000
-@@ -259,7 +259,7 @@
+--- src/pfs/Makefile.in.orig	2011-10-27 08:40:30 UTC
++++ src/pfs/Makefile.in
+@@ -259,7 +259,7 @@ libpfs_1_2_la_SOURCES = pfs.cpp pfsutils
  library_includedir = $(includedir)/pfs-1.2
  library_include_HEADERS = pfs.h array2d.h
  #INCLUDES = 
diff -ruN pfstools.orig/files/patch-src-pfs-pfs.cpp pfstools/files/patch-src-pfs-pfs.cpp
--- pfstools.orig/files/patch-src-pfs-pfs.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-pfs-pfs.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/pfs/pfs.cpp.orig	2010-07-14 09:44:27.000000000 +0000
-+++ src/pfs/pfs.cpp	2014-02-20 19:04:01.566588122 +0000
-@@ -71,7 +71,7 @@
+--- src/pfs/pfs.cpp.orig	2010-07-14 09:44:27 UTC
++++ src/pfs/pfs.cpp
+@@ -71,7 +71,7 @@ const char *PFSFILEID="PFS1\x0a";
  // TagContainer implementation  
  //------------------------------------------------------------------------------
  
@@ -9,7 +9,7 @@
  
  class TagIteratorImpl: public TagIterator
  {
-@@ -570,7 +570,7 @@
+@@ -570,7 +570,7 @@ public:
  
      //Read channel IDs and tags
      //       FrameImpl::ChannelID *channelID = new FrameImpl::ChannelID[channelCount];
@@ -18,7 +18,7 @@
      for( int i = 0; i < channelCount; i++ ) {
        char channelName[MAX_CHANNEL_NAME+1], *rs;
        rs = fgets( channelName, MAX_CHANNEL_NAME, inputStream );
-@@ -592,7 +592,7 @@
+@@ -592,7 +592,7 @@ public:
      
  
      //Read channels
diff -ruN pfstools.orig/files/patch-src-pfs-pfs.h pfstools/files/patch-src-pfs-pfs.h
--- pfstools.orig/files/patch-src-pfs-pfs.h	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-pfs-pfs.h	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/pfs/pfs.h.orig	2006-03-01 17:21:16.000000000 +0000
-+++ src/pfs/pfs.h	2014-02-20 19:04:01.566588122 +0000
-@@ -115,6 +115,7 @@
+--- src/pfs/pfs.h.orig	2006-03-01 17:21:16 UTC
++++ src/pfs/pfs.h
+@@ -115,6 +115,7 @@ namespace pfs
    class TagIterator 
      {
      public:
@@ -8,7 +8,7 @@
        /**
         * Get next item on the list.
         *
-@@ -135,6 +136,7 @@
+@@ -135,6 +136,7 @@ namespace pfs
    class TagContainer
      {
      public:
@@ -16,7 +16,7 @@
        /**
         * Get a string tag of the name tagName from the TagContainer.
         * @param tagName name of the tag to retrieve
-@@ -181,6 +183,7 @@
+@@ -181,6 +183,7 @@ namespace pfs
   */
    class Channel : public Array2D {
    public:
@@ -24,7 +24,7 @@
      /**
       * Gets width of the channel (in pixels).
       * This is a synonym for Array2D::getCols().
-@@ -226,6 +229,7 @@
+@@ -226,6 +229,7 @@ namespace pfs
    class ChannelIterator 
      {
      public:
@@ -32,7 +32,7 @@
        /**
         * Get next item on the list.
         */
-@@ -580,7 +584,9 @@
+@@ -580,7 +584,9 @@ namespace pfs
         */
        Exception( const char* const message )
  	{
diff -ruN pfstools.orig/files/patch-src-pfs-pfsutils.cpp pfstools/files/patch-src-pfs-pfsutils.cpp
--- pfstools.orig/files/patch-src-pfs-pfsutils.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-pfs-pfsutils.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/pfs/pfsutils.cpp.orig	2006-09-21 21:42:54.000000000 +0000
-+++ src/pfs/pfsutils.cpp	2014-02-20 19:04:01.566588122 +0000
-@@ -81,7 +81,7 @@
+--- src/pfs/pfsutils.cpp.orig	2006-09-21 21:42:54 UTC
++++ src/pfs/pfsutils.cpp
+@@ -81,7 +81,7 @@ class FrameFileIteratorImpl
    char fileName[1024];
    FILE *stdinout;
  
diff -ruN pfstools.orig/files/patch-src-pfsglview-picture_io.cpp pfstools/files/patch-src-pfsglview-picture_io.cpp
--- pfstools.orig/files/patch-src-pfsglview-picture_io.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-pfsglview-picture_io.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/pfsglview/picture_io.cpp.orig	2006-11-20 12:13:13.000000000 +0000
-+++ src/pfsglview/picture_io.cpp	2014-02-20 19:04:01.566588122 +0000
-@@ -87,7 +87,7 @@
+--- src/pfsglview/picture_io.cpp.orig	2006-11-20 12:13:13 UTC
++++ src/pfsglview/picture_io.cpp
+@@ -87,7 +87,7 @@ void PictureIO::setFrame(pfs::Frame *fra
  		return;
  
  	// only XYZ channels are taken into consideration
@@ -9,7 +9,7 @@
  		if(verbose)
  			fprintf( stderr, "WARNING: wrong channel (PictureIO::setFrame())\n");
  		return;
-@@ -573,7 +573,7 @@
+@@ -573,7 +573,7 @@ float PictureIO::getDynamicRange(void) {
  	}	
  	std::sort(vec.begin(), vec.end());
  	
@@ -18,7 +18,7 @@
  	
  	val = vec[0];
  	std::vector<unsigned int> svec;
-@@ -589,7 +589,7 @@
+@@ -589,7 +589,7 @@ float PictureIO::getDynamicRange(void) {
  	
  	float dr = svec[ svec.size()-1] / svec[0];
  			
diff -ruN pfstools.orig/files/patch-src-pfsglview-picture_io.h pfstools/files/patch-src-pfsglview-picture_io.h
--- pfstools.orig/files/patch-src-pfsglview-picture_io.h	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-pfsglview-picture_io.h	2016-02-12 20:11:41.000000000 +0300
@@ -1,5 +1,5 @@
---- src/pfsglview/picture_io.h.orig	2008-07-29 16:14:30.000000000 +0000
-+++ src/pfsglview/picture_io.h	2014-02-20 19:04:01.566588122 +0000
+--- src/pfsglview/picture_io.h.orig	2008-07-29 16:14:30 UTC
++++ src/pfsglview/picture_io.h
 @@ -6,7 +6,9 @@
  
  #define MAX_FRAMES_IN_MEMORY 10
diff -ruN pfstools.orig/files/patch-src-pfsview-pfsview_widget.cpp pfstools/files/patch-src-pfsview-pfsview_widget.cpp
--- pfstools.orig/files/patch-src-pfsview-pfsview_widget.cpp	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/files/patch-src-pfsview-pfsview_widget.cpp	2016-02-12 20:11:41.000000000 +0300
@@ -1,6 +1,6 @@
---- src/pfsview/pfsview_widget.cpp.orig	2011-04-30 14:01:17.000000000 +0000
-+++ src/pfsview/pfsview_widget.cpp	2014-02-20 19:04:01.566588122 +0000
-@@ -142,7 +142,7 @@
+--- src/pfsview/pfsview_widget.cpp.orig	2011-04-30 14:01:17 UTC
++++ src/pfsview/pfsview_widget.cpp
+@@ -142,7 +142,7 @@ void PFSViewWidget::setFrame( pfs::Frame
      // Chose first available channel
      pfs::ChannelIterator *it = frame->getChannels();
      if( !it->hasNext() )      // TODO: failover
@@ -9,7 +9,7 @@
      visibleChannel = it->getNext()->getName();
    } else if( visibleChannel != COLOR_CHANNELS ) {
      // Get a new pointer, as the old frame object
-@@ -335,8 +335,8 @@
+@@ -335,8 +335,8 @@ static void mapFrameToImage( pfs::Array2
    assert( !color || (color && B != NULL) );
  
    
diff -ruN pfstools.orig/pkg-plist pfstools/pkg-plist
--- pfstools.orig/pkg-plist	2016-02-13 07:24:49.000000000 +0300
+++ pfstools/pkg-plist	2016-02-13 14:53:14.400025000 +0300
@@ -52,7 +52,7 @@
 man/man1/pfsextractchannels.1.gz
 man/man1/pfsflip.1.gz
 man/man1/pfsgamma.1.gz
-%%OPENGL%%man/man1/pfsglview.1.gz
+man/man1/pfsglview.1.gz
 man/man1/pfsin.1.gz
 man/man1/pfsindcraw.1.gz
 man/man1/pfsinexr.1.gz
@@ -108,3 +108,27 @@
 %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_image_templ_slider-above.html
 %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_image_templ.html
 %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_page_templ_short.html
+@dir include/pfs-1.2
+%%IMAGEMAGICK%%@dir %%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets
+%%IMAGEMAGICK%%@dir %%DATADIR%%/hdrhtml_hdrlabs_templ
+%%IMAGEMAGICK%%@dir %%DATADIR%%/hdrhtml_default_templ
+%%IMAGEMAGICK%%@dir %%DATADIR%%
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsclose.oct
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsget.oct
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsopen.oct
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsput.oct
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsread.oct
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfstransform_colorspace.oct
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfswrite.oct
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_close_frames.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_open_frames.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_read_luminance.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_read_rgb.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_read_xyz.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_write_rgb.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfssize.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfsview.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfsview_list.m
+%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfsview_rgb.m
+%%OCTAVE%%@dir %%OCTAVE_SITE_OCT%%/pfstools
+%%OCTAVE%%@dir %%OCTAVE_SITE_M%%/pfstools
Comment 7 Iouri V. Ivliev 2016-02-13 15:39:12 UTC
Created attachment 166933 [details]
patch fixes port build for octave 4.0, portlint failures and some wrnings and NETPBM option
Comment 8 Kurt Jaeger freebsd_committer freebsd_triage 2016-02-13 16:15:43 UTC
Testbuilds@work. Submitter is willing to become maintainer.
Comment 9 Kurt Jaeger freebsd_committer freebsd_triage 2016-02-13 16:32:25 UTC
Testbuilds are fine. Portlint is much nicer now 8-)
Comment 10 commit-hook freebsd_committer freebsd_triage 2016-02-13 16:35:52 UTC
A commit references this bug:

Author: pi
Date: Sat Feb 13 16:35:00 UTC 2016
New revision: 408808
URL: https://svnweb.freebsd.org/changeset/ports/408808

Log:
  graphics/pfstools: some fixes

  - fixes for octave 4.0
  - fixes for netpbm
  - submitter becomes maintainer

  PR:		206239
  Submitted by:	Iouri V. Ivliev <fbsd@any.COM.ru>
  Approved by:	darius@dons.net.au (maintainer)

Changes:
  head/graphics/pfstools/Makefile
  head/graphics/pfstools/files/patch-config.h.in
  head/graphics/pfstools/files/patch-configure
  head/graphics/pfstools/files/patch-src-fileformat-exrio.cpp
  head/graphics/pfstools/files/patch-src-fileformat-hdrtiffio.cpp
  head/graphics/pfstools/files/patch-src-fileformat-pfsinexr.cpp
  head/graphics/pfstools/files/patch-src-fileformat-pfsinimgmagick.cpp
  head/graphics/pfstools/files/patch-src-fileformat-pfsinjpeghdr.cpp
  head/graphics/pfstools/files/patch-src-fileformat-pfsoutimgmagick.cpp
  head/graphics/pfstools/files/patch-src-fileformat-pfsoutjpeghdr.cpp
  head/graphics/pfstools/files/patch-src-fileformat-pfsoutpfm.cpp
  head/graphics/pfstools/files/patch-src-fileformat-ppmio.cpp
  head/graphics/pfstools/files/patch-src-fileformat-rgbeio.cpp
  head/graphics/pfstools/files/patch-src-filter-Makefile.am
  head/graphics/pfstools/files/patch-src-filter-Makefile.in
  head/graphics/pfstools/files/patch-src-filter-pfscat.cpp
  head/graphics/pfstools/files/patch-src-filter-pfsclamp.cpp
  head/graphics/pfstools/files/patch-src-filter-pfsextractchannels.cpp
  head/graphics/pfstools/files/patch-src-filter-pfspanoramic.cpp
  head/graphics/pfstools/files/patch-src-filter-pfstag.cpp
  head/graphics/pfstools/files/patch-src-filter-pfswb.cpp
  head/graphics/pfstools/files/patch-src-hdrhtml-hdrhtml.cpp
  head/graphics/pfstools/files/patch-src-matlab-compatibility.h
  head/graphics/pfstools/files/patch-src-octave-pfsclose.cpp
  head/graphics/pfstools/files/patch-src-octave-pfsget.cpp
  head/graphics/pfstools/files/patch-src-octave-pfsopen.cpp
  head/graphics/pfstools/files/patch-src-octave-pfsput.cpp
  head/graphics/pfstools/files/patch-src-pfs-Makefile.in
  head/graphics/pfstools/files/patch-src-pfs-pfs.cpp
  head/graphics/pfstools/files/patch-src-pfs-pfs.h
  head/graphics/pfstools/files/patch-src-pfs-pfsutils.cpp
  head/graphics/pfstools/files/patch-src-pfsglview-picture_io.cpp
  head/graphics/pfstools/files/patch-src-pfsglview-picture_io.h
  head/graphics/pfstools/files/patch-src-pfsview-pfsview_widget.cpp
  head/graphics/pfstools/pkg-plist
Comment 11 Kurt Jaeger freebsd_committer freebsd_triage 2016-02-13 16:37:55 UTC
Committed, thanks!