Date: Tuesday, November 22, 2016 @ 17:38:34
  Author: anthraxx
Revision: 196548

archrelease: copy trunk to community-i686, community-x86_64

Added:
  xv/repos/community-i686/PKGBUILD
    (from rev 196547, xv/trunk/PKGBUILD)
  xv/repos/community-i686/license.txt
    (from rev 196547, xv/trunk/license.txt)
  xv/repos/community-i686/xv-3.10a-libpng15.patch
    (from rev 196547, xv/trunk/xv-3.10a-libpng15.patch)
  xv/repos/community-x86_64/PKGBUILD
    (from rev 196547, xv/trunk/PKGBUILD)
  xv/repos/community-x86_64/license.txt
    (from rev 196547, xv/trunk/license.txt)
  xv/repos/community-x86_64/xv-3.10a-libpng15.patch
    (from rev 196547, xv/trunk/xv-3.10a-libpng15.patch)
Deleted:
  xv/repos/community-i686/PKGBUILD
  xv/repos/community-i686/license.txt
  xv/repos/community-i686/xv-3.10a-libpng15.patch
  xv/repos/community-x86_64/PKGBUILD
  xv/repos/community-x86_64/license.txt
  xv/repos/community-x86_64/xv-3.10a-libpng15.patch

------------------------------------------+
 /PKGBUILD                                |   92 ++
 /license.txt                             |  278 +++++++
 /xv-3.10a-libpng15.patch                 | 1040 +++++++++++++++++++++++++++++
 community-i686/PKGBUILD                  |   46 -
 community-i686/license.txt               |  139 ---
 community-i686/xv-3.10a-libpng15.patch   |  520 --------------
 community-x86_64/PKGBUILD                |   46 -
 community-x86_64/license.txt             |  139 ---
 community-x86_64/xv-3.10a-libpng15.patch |  520 --------------
 9 files changed, 1410 insertions(+), 1410 deletions(-)

Deleted: community-i686/PKGBUILD
===================================================================
--- community-i686/PKGBUILD     2016-11-22 17:38:21 UTC (rev 196547)
+++ community-i686/PKGBUILD     2016-11-22 17:38:34 UTC (rev 196548)
@@ -1,46 +0,0 @@
-# $Id$
-# Maintainer: Eric Bélanger <e...@archlinux.org>
-
-pkgname=xv
-pkgver=3.10a
-pkgrel=18
-pkgdesc="A nice image viewer"
-arch=('i686' 'x86_64')
-url="http://www.trilon.com/xv/";
-license=('custom')
-depends=('libpng' 'libx11' 'libtiff' 'jasper')
-makedepends=('libxt')
-options=('!emptydirs')
-source=(ftp://ftp.trilon.com/pub/xv/${pkgname}-${pkgver}.tar.gz \
-        
http://downloads.sourceforge.net/sourceforge/png-mng/xv-3.10a-jumbo-patches-20070520.tar.gz
 \
-        
http://www.sonic.net/~roelofs/code/xv-3.10a-enhancements.20070520-20081216.diff 
\
-        license.txt xv-3.10a-libpng15.patch)
-sha1sums=('092f8eb100f16d6b91c88b126c2b2b998eb09b99'
-          'd00308c1687d9d803d26ef40c73d19a0f593c626'
-          '40bfb0889b820e0f9d3bd7d771144ec3458acc66'
-          '4561344e8f2c30eee9c55b14a14f062d89d6e7b7'
-          '3d19aa0c6ecc8b554081906babe0b4f9a6946da3')
-
-prepare() {
-  tar -cJf xv-${pkgver}-source.tar.xz xv-${pkgver}
-  cd ${pkgname}-${pkgver}
-  patch -p1 -i "${srcdir}/xv-3.10a-jumbo-fix-enh-patch-20070520.txt"
-  patch -p1 -i "${srcdir}/xv-3.10a-enhancements.20070520-20081216.diff"
-  patch -p0 -i "${srcdir}/xv-3.10a-libpng15.patch"
-}
-
-build() {
-  cd ${pkgname}-${pkgver}
-  make JP2KLIB=-ljasper
-}
-
-package() {
-  cd ${pkgname}-${pkgver}
-  install -d "${pkgdir}"/usr/{bin,lib,share/man/man1}
-  make DESTDIR="${pkgdir}" PREFIX=/usr install
-  install -D -m644 "${srcdir}/license.txt" 
"${pkgdir}/usr/share/licenses/${pkgname}/license.txt"
-
-# installing source tarball (to comply with license)
-  install -D -m644 "${srcdir}/xv-${pkgver}-source.tar.xz" 
"${pkgdir}/usr/share/doc/xv/xv-${pkgver}-source.tar.xz"
-  ln -s "/usr/share/licenses/${pkgname}/license.txt" 
"${pkgdir}/usr/share/doc/xv/license.txt"
-}

Copied: xv/repos/community-i686/PKGBUILD (from rev 196547, xv/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD                             (rev 0)
+++ community-i686/PKGBUILD     2016-11-22 17:38:34 UTC (rev 196548)
@@ -0,0 +1,46 @@
+# $Id$
+# Maintainer: Eric Bélanger <e...@archlinux.org>
+
+pkgname=xv
+pkgver=3.10a
+pkgrel=20
+pkgdesc="A nice image viewer"
+arch=('i686' 'x86_64')
+url="http://www.trilon.com/xv/";
+license=('custom')
+depends=('libpng' 'libx11' 'libtiff' 'jasper')
+makedepends=('libxt')
+options=('!emptydirs')
+source=(ftp://ftp.trilon.com/pub/xv/${pkgname}-${pkgver}.tar.gz \
+        
http://downloads.sourceforge.net/sourceforge/png-mng/xv-3.10a-jumbo-patches-20070520.tar.gz
 \
+        
http://www.sonic.net/~roelofs/code/xv-3.10a-enhancements.20070520-20081216.diff 
\
+        license.txt xv-3.10a-libpng15.patch)
+sha1sums=('092f8eb100f16d6b91c88b126c2b2b998eb09b99'
+          'd00308c1687d9d803d26ef40c73d19a0f593c626'
+          '40bfb0889b820e0f9d3bd7d771144ec3458acc66'
+          '4561344e8f2c30eee9c55b14a14f062d89d6e7b7'
+          '3d19aa0c6ecc8b554081906babe0b4f9a6946da3')
+
+prepare() {
+  tar -cJf xv-${pkgver}-source.tar.xz xv-${pkgver}
+  cd ${pkgname}-${pkgver}
+  patch -p1 -i "${srcdir}/xv-3.10a-jumbo-fix-enh-patch-20070520.txt"
+  patch -p1 -i "${srcdir}/xv-3.10a-enhancements.20070520-20081216.diff"
+  patch -p0 -i "${srcdir}/xv-3.10a-libpng15.patch"
+}
+
+build() {
+  cd ${pkgname}-${pkgver}
+  make JP2KLIB=-ljasper
+}
+
+package() {
+  cd ${pkgname}-${pkgver}
+  install -d "${pkgdir}"/usr/{bin,lib,share/man/man1}
+  make DESTDIR="${pkgdir}" PREFIX=/usr install
+  install -D -m644 "${srcdir}/license.txt" 
"${pkgdir}/usr/share/licenses/${pkgname}/license.txt"
+
+# installing source tarball (to comply with license)
+  install -D -m644 "${srcdir}/xv-${pkgver}-source.tar.xz" 
"${pkgdir}/usr/share/doc/xv/xv-${pkgver}-source.tar.xz"
+  ln -s "/usr/share/licenses/${pkgname}/license.txt" 
"${pkgdir}/usr/share/doc/xv/license.txt"
+}

Deleted: community-i686/license.txt
===================================================================
--- community-i686/license.txt  2016-11-22 17:38:21 UTC (rev 196547)
+++ community-i686/license.txt  2016-11-22 17:38:34 UTC (rev 196548)
@@ -1,139 +0,0 @@
-XV Licensing Information
-------------------------
-XV IS SHAREWARE FOR PERSONAL USE ONLY.  
-
-You may use XV for your own amusement, and if you find it nifty,
-useful, generally cool, or of some value to you, your registration fee
-would be greatly appreciated.  $25 is the standard registration fee,
-though of course, larger amounts are quite welcome.  Folks who donate
-$40 or more can receive a printed, bound copy of the XV manual for no
-extra charge.  If you want one, just ask.  BE SURE TO SPECIFY THE
-VERSION OF XV THAT YOU ARE USING!
-
-COMMERCIAL, GOVERNMENT, AND INSTITUTIONAL USERS MUST REGISTER THEIR
-COPIES OF XV.
-
-This does *not* mean that you are required to register XV just because
-you play with it on the workstation in your office.  This falls under
-the heading of 'personal use'.  If you are a sysadmin, you can put XV
-up in a public directory for your users amusement.  Again, 'personal
-use', albeit plural.
-
-On the other hand, if you use XV in the course of doing your work,
-whatever your 'work' may happen to be, you *must* register your
-copy of XV.  (Note:  If you are a student, and you use XV to do 
-classwork or research, you should get your professor/teacher/advisor
-to purchase an appropriate number of copies.)
-
-XV licenses are $25 each.  You should purchase one license per
-workstation, or one per XV user, whichever is the smaller number.  XV
-is *not* sold on a 'number of concurrent users' basis.  If XV was some
-$1000 program, yes, that would be a reasonable request, but at $25,
-it's not.  Also, given that XV is completely unlocked, there is no way
-to enforce any 'number of concurrent users' limits, so it isn't sold
-that way.
-
-Printed and bound copies of the 100-odd page XV manual are available
-for $15 each.  Note that manuals are *only* sold with, at minimum, an
-equal number of licenses.  (e.g.  if you purchase 5 licenses, you can
-also purchase *up to* 5 copies of the manual)
-
-The source code to the program can be had (as a compressed 'tar' file
-split over a couple 3.5" MS-DOS formatted floppies) for $15, for those
-who don't have ftp capabilities.
-
-Orders outside the US and Canada must add an additional $5 per manual
-ordered to cover the additional shipping charges.
-
-Checks, money orders, and purchase orders are accepted.  Credit cards
-are not.  All forms of payment must be payable in US Funds.  Checks
-must be payable through a US bank (or a US branch of a non-US bank).
-Purchase orders for less than $50, while still accepted, are not
-encouraged. 
-
-All payments should be payable to 'John Bradley', and mailed to:
-        John Bradley
-        1053 Floyd Terrace
-        Bryn Mawr, PA  19010
-        USA
-
-
-Site Licenses
--------------
-If you are planning to purchase 10 or more licenses, site licenses are
-available, at a substantial discount.  Site licenses let you run XV on
-any and all computing equipment at the site, for any purpose
-whatsoever.  The site license covers the current version of XV, and
-any versions released within one year of the licensing date.  You are
-also allowed to duplicate and distribute an unlimited number of copies
-of the XV manual, but only for use within the site.  Covered versions
-of the software may be run in perpetuity.
-
-Also, it should be noted that a 'site' can be defined as anything
-you'd like.  It can be a physical location (a room, building,
-location, etc.), an organizational grouping (a workgroup, department,
-division, etc.) or any other logical grouping ("the seventeen
-technical writers scattered about our company", etc.).
-
-The site license cost will be based on your estimate of the number of
-XV users or workstations at your site, whichever is the smaller
-number.
-
-If you are interested in obtaining a site license, please contact the
-author via electronic mail or FAX (see below for details).  Send
-information regarding your site (the name or definition of the 'site',
-a physical address, a fax number, and an estimate of the number of
-users or workstations), and we'll get a site license out to you for
-your examination.
-
-
-Copyright Notice
-----------------
-XV is Copyright 1989, 1994 by John Bradley
-
-Permission to copy and distribute XV in its entirety, for
-non-commercial purposes, is hereby granted without fee, provided that
-this license information and copyright notice appear in all copies.
-
-If you redistribute XV, the *entire* contents of this distribution
-must be distributed, including the README, and INSTALL files, the
-sources, and the complete contents of the 'docs' directory.
-
-Note that distributing XV 'bundled' in with any product is considered
-to be a 'commercial purpose'.
-
-Also note that any copies of XV that are distributed MUST be built
-and/or configured to be in their 'unregistered copy' mode, so that it
-is made obvious to the user that XV is shareware, and that they should
-consider registering, or at least reading this information.
-
-The software may be modified for your own purposes, but modified
-versions may not be distributed without prior consent of the author.
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the author be held liable for any damages
-arising from the use of this software.
-
-If you would like to do something with XV that this copyright
-prohibits (such as distributing it with a commercial product, using
-portions of the source in some other program, distributing registered
-copies, etc.), please contact the author (preferably via email).
-Arrangements can probably be worked out.
-
-
-The author may be contacted via:
-    US Mail:  John Bradley
-              1053 Floyd Terrace
-              Bryn Mawr, PA  19010
-
-    FAX:     (610) 520-2042
-
-Electronic Mail regarding XV should be sent to one of these three addresses:
-     x...@devo.dccs.upenn.edu               - general XV questions
-     xv...@devo.dccs.upenn.edu            - all XV licensing questions
-     xvt...@devo.dccs.upenn.edu           - bug reports, technical questions
-
-Please do *not* send electronic mail directly to the author, as he
-gets more than enough as it is.
-
-

Copied: xv/repos/community-i686/license.txt (from rev 196547, 
xv/trunk/license.txt)
===================================================================
--- community-i686/license.txt                          (rev 0)
+++ community-i686/license.txt  2016-11-22 17:38:34 UTC (rev 196548)
@@ -0,0 +1,139 @@
+XV Licensing Information
+------------------------
+XV IS SHAREWARE FOR PERSONAL USE ONLY.  
+
+You may use XV for your own amusement, and if you find it nifty,
+useful, generally cool, or of some value to you, your registration fee
+would be greatly appreciated.  $25 is the standard registration fee,
+though of course, larger amounts are quite welcome.  Folks who donate
+$40 or more can receive a printed, bound copy of the XV manual for no
+extra charge.  If you want one, just ask.  BE SURE TO SPECIFY THE
+VERSION OF XV THAT YOU ARE USING!
+
+COMMERCIAL, GOVERNMENT, AND INSTITUTIONAL USERS MUST REGISTER THEIR
+COPIES OF XV.
+
+This does *not* mean that you are required to register XV just because
+you play with it on the workstation in your office.  This falls under
+the heading of 'personal use'.  If you are a sysadmin, you can put XV
+up in a public directory for your users amusement.  Again, 'personal
+use', albeit plural.
+
+On the other hand, if you use XV in the course of doing your work,
+whatever your 'work' may happen to be, you *must* register your
+copy of XV.  (Note:  If you are a student, and you use XV to do 
+classwork or research, you should get your professor/teacher/advisor
+to purchase an appropriate number of copies.)
+
+XV licenses are $25 each.  You should purchase one license per
+workstation, or one per XV user, whichever is the smaller number.  XV
+is *not* sold on a 'number of concurrent users' basis.  If XV was some
+$1000 program, yes, that would be a reasonable request, but at $25,
+it's not.  Also, given that XV is completely unlocked, there is no way
+to enforce any 'number of concurrent users' limits, so it isn't sold
+that way.
+
+Printed and bound copies of the 100-odd page XV manual are available
+for $15 each.  Note that manuals are *only* sold with, at minimum, an
+equal number of licenses.  (e.g.  if you purchase 5 licenses, you can
+also purchase *up to* 5 copies of the manual)
+
+The source code to the program can be had (as a compressed 'tar' file
+split over a couple 3.5" MS-DOS formatted floppies) for $15, for those
+who don't have ftp capabilities.
+
+Orders outside the US and Canada must add an additional $5 per manual
+ordered to cover the additional shipping charges.
+
+Checks, money orders, and purchase orders are accepted.  Credit cards
+are not.  All forms of payment must be payable in US Funds.  Checks
+must be payable through a US bank (or a US branch of a non-US bank).
+Purchase orders for less than $50, while still accepted, are not
+encouraged. 
+
+All payments should be payable to 'John Bradley', and mailed to:
+        John Bradley
+        1053 Floyd Terrace
+        Bryn Mawr, PA  19010
+        USA
+
+
+Site Licenses
+-------------
+If you are planning to purchase 10 or more licenses, site licenses are
+available, at a substantial discount.  Site licenses let you run XV on
+any and all computing equipment at the site, for any purpose
+whatsoever.  The site license covers the current version of XV, and
+any versions released within one year of the licensing date.  You are
+also allowed to duplicate and distribute an unlimited number of copies
+of the XV manual, but only for use within the site.  Covered versions
+of the software may be run in perpetuity.
+
+Also, it should be noted that a 'site' can be defined as anything
+you'd like.  It can be a physical location (a room, building,
+location, etc.), an organizational grouping (a workgroup, department,
+division, etc.) or any other logical grouping ("the seventeen
+technical writers scattered about our company", etc.).
+
+The site license cost will be based on your estimate of the number of
+XV users or workstations at your site, whichever is the smaller
+number.
+
+If you are interested in obtaining a site license, please contact the
+author via electronic mail or FAX (see below for details).  Send
+information regarding your site (the name or definition of the 'site',
+a physical address, a fax number, and an estimate of the number of
+users or workstations), and we'll get a site license out to you for
+your examination.
+
+
+Copyright Notice
+----------------
+XV is Copyright 1989, 1994 by John Bradley
+
+Permission to copy and distribute XV in its entirety, for
+non-commercial purposes, is hereby granted without fee, provided that
+this license information and copyright notice appear in all copies.
+
+If you redistribute XV, the *entire* contents of this distribution
+must be distributed, including the README, and INSTALL files, the
+sources, and the complete contents of the 'docs' directory.
+
+Note that distributing XV 'bundled' in with any product is considered
+to be a 'commercial purpose'.
+
+Also note that any copies of XV that are distributed MUST be built
+and/or configured to be in their 'unregistered copy' mode, so that it
+is made obvious to the user that XV is shareware, and that they should
+consider registering, or at least reading this information.
+
+The software may be modified for your own purposes, but modified
+versions may not be distributed without prior consent of the author.
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the author be held liable for any damages
+arising from the use of this software.
+
+If you would like to do something with XV that this copyright
+prohibits (such as distributing it with a commercial product, using
+portions of the source in some other program, distributing registered
+copies, etc.), please contact the author (preferably via email).
+Arrangements can probably be worked out.
+
+
+The author may be contacted via:
+    US Mail:  John Bradley
+              1053 Floyd Terrace
+              Bryn Mawr, PA  19010
+
+    FAX:     (610) 520-2042
+
+Electronic Mail regarding XV should be sent to one of these three addresses:
+     x...@devo.dccs.upenn.edu               - general XV questions
+     xv...@devo.dccs.upenn.edu            - all XV licensing questions
+     xvt...@devo.dccs.upenn.edu           - bug reports, technical questions
+
+Please do *not* send electronic mail directly to the author, as he
+gets more than enough as it is.
+
+

Deleted: community-i686/xv-3.10a-libpng15.patch
===================================================================
--- community-i686/xv-3.10a-libpng15.patch      2016-11-22 17:38:21 UTC (rev 
196547)
+++ community-i686/xv-3.10a-libpng15.patch      2016-11-22 17:38:34 UTC (rev 
196548)
@@ -1,520 +0,0 @@
---- xvinfo.c
-+++ xvinfo.c
-@@ -26,7 +26,7 @@
- #define INFOHIGH 270
- 
- /* max length of an Info String */
--#define ISTRLEN 80
-+#define ISTRLEN 256
- 
- /* baseline of top line of text */
- #define TOPBASE (36 + penn_height/2 + 4 + 8 + ASCENT)
---- xvpng.c
-+++ xvpng.c
-@@ -31,6 +31,7 @@
- 
- #ifdef HAVE_PNG
- 
-+#include "zlib.h"
- #include "png.h"
- 
- /*** Stuff for PNG Dialog box ***/
-@@ -41,7 +42,9 @@
- #define COMPRESSION   6     /* default zlib compression level, not max
-                                (Z_BEST_COMPRESSION) */
- 
--#define HAVE_tRNS  (info_ptr->valid & PNG_INFO_tRNS)
-+/* old
-+#define HAVE_tRNS  (info_ptr->valid & PNG_INFO_tRNS) */
-+#define HAVE_tRNS  png_get_valid(png_ptr,info_ptr,PNG_INFO_tRNS)
- 
- #define DWIDE    86
- #define DHIGH    104
-@@ -444,6 +447,10 @@
-   byte       *p, *png_line;
-   char        software[256];
-   char       *savecmnt;
-+  /* for storing values until all are accumulated, so that the image header 
can be set in full */
-+  int         
_bit_depth,_color_type,_interlace_type,_compression_type,_filter_type;
-+  png_uint_32 _width,_height;
-+  png_time    _mod_time;
- 
-   if ((png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,
-        png_xv_error, png_xv_warning)) == NULL) {
-@@ -458,7 +465,7 @@
-     FatalError(software);
-   }
- 
--  if (setjmp(png_ptr->jmpbuf)) {
-+  if (setjmp(png_jmpbuf(png_ptr))) {
-     png_destroy_write_struct(&png_ptr, &info_ptr);
-     return -1;
-   }
-@@ -489,8 +496,8 @@
-     png_set_filter(png_ptr, 0, filter);
-   }
- 
--  info_ptr->width = w;
--  info_ptr->height = h;
-+  _width = w;
-+  _height = h;
-   if (w <= 0 || h <= 0) {
-     SetISTR(ISTR_WARNING, "%s:  image dimensions out of range (%dx%d)",
-       fbasename, w, h);
-@@ -498,7 +505,7 @@
-     return -1;
-   }
- 
--  info_ptr->interlace_type = interCB.val ? 1 : 0;
-+  _interlace_type = interCB.val ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE;
- 
-   linesize = 0;   /* quiet a compiler warning */
- 
-@@ -542,40 +549,44 @@
-         png_destroy_write_struct(&png_ptr, &info_ptr);
-         return -1;
-       }
--      info_ptr->color_type = PNG_COLOR_TYPE_RGB;
--      info_ptr->bit_depth = 8;
-+      _color_type = PNG_COLOR_TYPE_RGB;
-+      _bit_depth = 8;
-     } else /* ptype == PIC8 */ {
-       linesize = w;
--      info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
-+      _color_type = PNG_COLOR_TYPE_PALETTE;
-       if (numuniqcols <= 2)
--        info_ptr->bit_depth = 1;
-+        _bit_depth = 1;
-       else
-       if (numuniqcols <= 4)
--        info_ptr->bit_depth = 2;
-+        _bit_depth = 2;
-       else
-       if (numuniqcols <= 16)
--        info_ptr->bit_depth = 4;
-+        _bit_depth = 4;
-       else
--        info_ptr->bit_depth = 8;
-+        _bit_depth = 8;
- 
-       for (i = 0; i < numuniqcols; i++) {
-         palette[i].red   = r1[i];
-         palette[i].green = g1[i];
-         palette[i].blue  = b1[i];
-       }
--      info_ptr->num_palette = numuniqcols;
--      info_ptr->palette = palette;
-+/* cannot find a setter for this, unsure if it is necessary anymore...
-       info_ptr->valid |= PNG_INFO_PLTE;
-+*/
-+      /* set the header just in case it's needed */
-+      png_set_IHDR(png_ptr,info_ptr,_width,_height,_bit_depth,_color_type,
-+        _interlace_type,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
-+      png_set_PLTE(png_ptr,info_ptr,palette,numuniqcols);
-     }
-   }
- 
-   else if (colorType == F_GREYSCALE || colorType == F_BWDITHER) {
--    info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
-+    _color_type = PNG_COLOR_TYPE_GRAY;
-     if (colorType == F_BWDITHER) {
-       /* shouldn't happen */
-       if (ptype == PIC24) FatalError("PIC24 and B/W Stipple in WritePNG()");
- 
--      info_ptr->bit_depth = 1;
-+      _bit_depth = 1;
-       if (MONO(r1[0], g1[0], b1[0]) > MONO(r1[1], g1[1], b1[1])) {
-         remap[0] = 1;
-         remap[1] = 0;
-@@ -595,7 +606,7 @@
-           png_destroy_write_struct(&png_ptr, &info_ptr);
-           return -1;
-         }
--        info_ptr->bit_depth = 8;
-+        _bit_depth = 8;
-       }
-       else /* ptype == PIC8 */ {
-         int low_precision;
-@@ -617,7 +628,7 @@
-         for (; i < 256; i++)
-           remap[i]=0;  /* shouldn't be necessary, but... */
- 
--        info_ptr->bit_depth = 8;
-+        _bit_depth = 8;
- 
-         /* Note that this fails most of the time because of gamma */
-            /* (and that would be a bug:  GRR FIXME) */
-@@ -636,7 +647,7 @@
-           for (i = 0; i < numuniqcols; i++) {
-             remap[i] &= 0xf;
-           }
--          info_ptr->bit_depth = 4;
-+          _bit_depth = 4;
- 
-           /* try to adjust to 2-bit precision grayscale */
- 
-@@ -652,7 +663,7 @@
-           for (i = 0; i < numuniqcols; i++) {
-             remap[i] &= 3;
-           }
--          info_ptr->bit_depth = 2;
-+          _bit_depth = 2;
- 
-           /* try to adjust to 1-bit precision grayscale */
- 
-@@ -668,7 +679,7 @@
-           for (i = 0; i < numuniqcols; i++) {
-             remap[i] &= 1;
-           }
--          info_ptr->bit_depth = 1;
-+          _bit_depth = 1;
-         }
-       }
-     }
-@@ -677,6 +688,9 @@
-   else
-     png_error(png_ptr, "Unknown colorstyle in WritePNG");
- 
-+  png_set_IHDR(png_ptr,info_ptr,_width,_height,_bit_depth,_color_type,
-+    _interlace_type,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
-+
-   if ((text = (png_textp)malloc(sizeof(png_text)))) {
-     sprintf(software, "XV %s", REVDATE);
- 
-@@ -685,20 +699,22 @@
-     text->text = software;
-     text->text_length = strlen(text->text);
- 
--    info_ptr->max_text = 1;
--    info_ptr->num_text = 1;
--    info_ptr->text = text;
-+/* max_text seems to be internal only now, do not set
-+    info_ptr->max_text = 1; */
-+    png_set_text(png_ptr,info_ptr,text,1);
-   }
- 
-   Display_Gamma = gDial.val;  /* Save the current gamma for loading */
- 
- // GRR FIXME:  add .Xdefaults option to omit writing gamma (size, cumulative 
errors when editing)--alternatively, modify save box to include "omit" checkbox
--  info_ptr->gamma = 1.0/gDial.val;
--  info_ptr->valid |= PNG_INFO_gAMA;
-+  png_set_gAMA(png_ptr,info_ptr,1.0/gDial.val);
-+/* doesn't seem to be a way to set valid directly anymore, unnecessary 
maybe.. 
-+  info_ptr->valid |= PNG_INFO_gAMA; */
- 
-+/* might need to be png_write_info_before_PLTE() ... */
-   png_write_info(png_ptr, info_ptr);
- 
--  if (info_ptr->bit_depth < 8)
-+  if (_bit_depth < 8)
-     png_set_packing(png_ptr);
- 
-   pass=png_set_interlace_handling(png_ptr);
-@@ -711,13 +727,13 @@
-     int j;
-     p = pic;
-     for (j = 0; j < h; ++j) {
--      if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) {
-+      if (_color_type == PNG_COLOR_TYPE_GRAY) {
-         int k;
-         for (k = 0; k < w; ++k)
-           png_line[k] = ptype==PIC24 ? MONO(p[k*3], p[k*3+1], p[k*3+2]) :
-                                        remap[pc2nc[p[k]]];
-         png_write_row(png_ptr, png_line);
--      } else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) {
-+      } else if (_color_type == PNG_COLOR_TYPE_PALETTE) {
-         int k;
-         for (k = 0; k < w; ++k)
-           png_line[k] = pc2nc[p[k]];
-@@ -739,28 +755,31 @@
-         (savecmnt = (char *)malloc((strlen(picComments) + 1)*sizeof(char)))) {
-       png_textp tp;
-       char *comment, *key;
-+      int nt;
-+      int mt;
- 
-       strcpy(savecmnt, picComments);
-       key = savecmnt;
-+      png_get_text(png_ptr,info_ptr,&tp,&mt); /* to get 'max_text' */
-       tp = text;
--      info_ptr->num_text = 0;
-+      nt = 0;      
- 
-       comment = strchr(key, ':');
- 
-       do  {
-         /* Allocate a larger structure for comments if necessary */
--        if (info_ptr->num_text >= info_ptr->max_text)
-+        if (nt >= mt)
-         {
-           if ((tp =
--              realloc(text, (info_ptr->num_text + 2)*sizeof(png_text))) == 
NULL)
-+              realloc(text, (nt + 2)*sizeof(png_text))) == NULL)
-           {
-             break;
-           }
-           else
-           {
-             text = tp;
--            tp = &text[info_ptr->num_text];
--            info_ptr->max_text += 2;
-+            tp = &text[nt];
-+            mt += 2;
-           }
-         }
- 
-@@ -810,7 +829,7 @@
-             }
- 
-             tp->compression = tp->text_length > 640 ? 0 : -1;
--            info_ptr->num_text++;
-+            nt++;
-             tp++;
-           }
-         }
-@@ -834,27 +853,29 @@
-           tp->text = key;
-           tp->text_length = q - key;
-           tp->compression = tp->text_length > 750 ? 0 : -1;
--          info_ptr->num_text++;
-+          nt++;
-           key = NULL;
-         }
-       } while (key && *key);
-+      png_set_text(png_ptr,info_ptr,text,nt);
-     }
-     else {
--      info_ptr->num_text = 0;
-+      png_set_text(png_ptr,info_ptr,text,0);
-     }
-   }
--  info_ptr->text = text;
- 
--  png_convert_from_time_t(&(info_ptr->mod_time), time(NULL));
--  info_ptr->valid |= PNG_INFO_tIME;
-+  png_convert_from_time_t(&_mod_time, time(NULL));
-+  png_set_tIME(png_ptr,info_ptr,&_mod_time);
-+/* dunno how to set validity
-+  info_ptr->valid |= PNG_INFO_tIME; */
- 
-   png_write_end(png_ptr, info_ptr);
-   fflush(fp);   /* just in case we core-dump before finishing... */
- 
-   if (text) {
-     free(text);
--    /* must do this or png_destroy_write_struct() 0.97+ will free text again: 
*/
--    info_ptr->text = (png_textp)NULL;
-+    /* must do this or png_destroy_write_struct() 0.97+ will free text again: 
-+    info_ptr->text = (png_textp)NULL; */
-     if (savecmnt)
-     {
-       free(savecmnt);
-@@ -886,6 +907,14 @@
-   int pass;
-   int gray_to_rgb;
-   size_t commentsize;
-+  /* temp storage vars for libpng15 migration */
-+  int         
_bit_depth,_color_type,_interlace_type,_compression_type,_filter_type,_num_text,_num_palette;
-+  png_uint_32 _width,_height;
-+  png_timep   _mod_time;
-+  double      _gamma;
-+  png_textp   _text;
-+  png_colorp  _palette;
-+  png_color_16p _background;
- 
-   fbasename = BaseName(fname);
- 
-@@ -921,7 +950,7 @@
-     FatalError("malloc failure in LoadPNG");
-   }
- 
--  if (setjmp(png_ptr->jmpbuf)) {
-+  if (setjmp(png_jmpbuf(png_ptr))) {
-     fclose(fp);
-     png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
-     if (!read_anything) {
-@@ -945,8 +974,10 @@
- #endif
-   png_read_info(png_ptr, info_ptr);
- 
--  pinfo->w = pinfo->normw = info_ptr->width;
--  pinfo->h = pinfo->normh = info_ptr->height;
-+  
png_get_IHDR(png_ptr,info_ptr,&_width,&_height,&_bit_depth,&_color_type,&_interlace_type,NULL,NULL);
-+
-+  pinfo->w = pinfo->normw = _width;
-+  pinfo->h = pinfo->normh = _height;
-   if (pinfo->w <= 0 || pinfo->h <= 0) {
-     SetISTR(ISTR_WARNING, "%s:  image dimensions out of range (%dx%d)",
-       fbasename, pinfo->w, pinfo->h);
-@@ -957,9 +988,9 @@
-   pinfo->frmType = F_PNG;
- 
-   sprintf(pinfo->fullInfo, "PNG, %d bit ",
--          info_ptr->bit_depth * info_ptr->channels);
-+          _bit_depth * png_get_channels(png_ptr,info_ptr));
- 
--  switch(info_ptr->color_type) {
-+  switch(_color_type) {
-     case PNG_COLOR_TYPE_PALETTE:
-       strcat(pinfo->fullInfo, "palette color");
-       break;
-@@ -983,15 +1014,17 @@
- 
-   sprintf(pinfo->fullInfo + strlen(pinfo->fullInfo),
-         ", %sinterlaced. (%d bytes)",
--        info_ptr->interlace_type ? "" : "non-", filesize);
-+        _interlace_type ? "" : "non-", filesize);
- 
--  sprintf(pinfo->shrtInfo, "%lux%lu PNG", info_ptr->width, info_ptr->height);
-+  sprintf(pinfo->shrtInfo, "%lux%lu PNG", _width, _height);
- 
--  if (info_ptr->bit_depth < 8)
-+  if (_bit_depth < 8)
-       png_set_packing(png_ptr);
- 
--  if (info_ptr->valid & PNG_INFO_gAMA)
--    png_set_gamma(png_ptr, Display_Gamma, info_ptr->gamma);
-+  if (png_get_valid(png_ptr,info_ptr,PNG_INFO_gAMA)) {
-+    png_get_gAMA(png_ptr,info_ptr,&_gamma);
-+    png_set_gamma(png_ptr, Display_Gamma, _gamma);
-+  }
- /*
-  *else
-  *  png_set_gamma(png_ptr, Display_Gamma, 0.45);
-@@ -1000,7 +1033,7 @@
-   gray_to_rgb = 0;   /* quiet a compiler warning */
- 
-   if (have_imagebg) {
--    if (info_ptr->bit_depth == 16) {
-+    if (_bit_depth == 16) {
-       my_background.red   = imagebgR;
-       my_background.green = imagebgG;
-       my_background.blue  = imagebgB;
-@@ -1013,8 +1046,8 @@
-     }
-     png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN,
-                        0, Display_Gamma);
--    if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
--         (info_ptr->color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
-+    if ((_color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
-+         (_color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
-         (imagebgR != imagebgG || imagebgR != imagebgB))  /* i.e., colored bg 
*/
-     {
-       png_set_gray_to_rgb(png_ptr);
-@@ -1022,8 +1055,9 @@
-       gray_to_rgb = 1;
-     }
-   } else {
--    if (info_ptr->valid & PNG_INFO_bKGD) {
--      png_set_background(png_ptr, &info_ptr->background,
-+    if (png_get_valid(png_ptr,info_ptr,PNG_INFO_bKGD)) {
-+      png_get_bKGD(png_ptr,info_ptr,&_background);
-+      png_set_background(png_ptr, _background,
-                          PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
-     } else {
-       my_background.red = my_background.green = my_background.blue =
-@@ -1033,13 +1067,13 @@
-     }
-   }
- 
--  if (info_ptr->bit_depth == 16)
-+  if (_bit_depth == 16)
-     png_set_strip_16(png_ptr);
- 
--  if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
--      info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
-+  if (_color_type == PNG_COLOR_TYPE_GRAY ||
-+      _color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
-   {
--    if (info_ptr->bit_depth == 1)
-+    if (_bit_depth == 1)
-       pinfo->colType = F_BWDITHER;
-     else
-       pinfo->colType = F_GREYSCALE;
-@@ -1049,9 +1083,11 @@
-   pass=png_set_interlace_handling(png_ptr);
- 
-   png_read_update_info(png_ptr, info_ptr);
-+  /* get HIDR again just in case the info_ptr changed */
-+  
png_get_IHDR(png_ptr,info_ptr,&_width,&_height,&_bit_depth,&_color_type,&_interlace_type,NULL,NULL);
- 
--  if (info_ptr->color_type == PNG_COLOR_TYPE_RGB ||
--     info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
-+  if (_color_type == PNG_COLOR_TYPE_RGB ||
-+     _color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
-   {
-     linesize = 3 * pinfo->w;
-     if (linesize/3 < pinfo->w) {   /* know pinfo->w > 0 (see above) */
-@@ -1065,16 +1101,17 @@
-   } else {
-     linesize = pinfo->w;
-     pinfo->type = PIC8;
--    if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
--       info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
-+    if (_color_type == PNG_COLOR_TYPE_GRAY ||
-+       _color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
-       for (i = 0; i < 256; i++)
-         pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i;
-     } else {
-       pinfo->colType = F_FULLCOLOR;
--      for (i = 0; i < info_ptr->num_palette; i++) {
--        pinfo->r[i] = info_ptr->palette[i].red;
--        pinfo->g[i] = info_ptr->palette[i].green;
--        pinfo->b[i] = info_ptr->palette[i].blue;
-+      png_get_PLTE(png_ptr,info_ptr,&_palette,&_num_palette);
-+      for (i = 0; i < _num_palette; i++) {
-+        pinfo->r[i] = _palette[i].red;
-+        pinfo->g[i] = _palette[i].green;
-+        pinfo->b[i] = _palette[i].blue;
-       }
-     }
-   }
-@@ -1092,7 +1129,7 @@
-     png_error(png_ptr, "can't allocate space for PNG image");
-   }
- 
--  png_start_read_image(png_ptr);
-+  /*png_start_read_image(png_ptr); -- causes a warning and seems to be 
unnecessary */
- 
-   for (i = 0; i < pass; i++) {
-     byte *p = pinfo->pic;
-@@ -1106,22 +1143,23 @@
- 
-   png_read_end(png_ptr, info_ptr);
- 
--  if (info_ptr->num_text > 0) {
-+  png_get_text(png_ptr,info_ptr,&_text,&_num_text);
-+  if (_num_text > 0) {
-     commentsize = 1;
- 
--    for (i = 0; i < info_ptr->num_text; i++)
--      commentsize += strlen(info_ptr->text[i].key) + 1 +
--                     info_ptr->text[i].text_length + 2;
-+    for (i = 0; i < _num_text; i++)
-+      commentsize += strlen(_text[i].key) + 1 +
-+                     _text[i].text_length + 2;
- 
-     if ((pinfo->comment = malloc(commentsize)) == NULL) {
-       png_warning(png_ptr,"can't allocate comment string");
-     }
-     else {
-       pinfo->comment[0] = '\0';
--      for (i = 0; i < info_ptr->num_text; i++) {
--        strcat(pinfo->comment, info_ptr->text[i].key);
-+      for (i = 0; i < _num_text; i++) {
-+        strcat(pinfo->comment, _text[i].key);
-         strcat(pinfo->comment, "::");
--        strcat(pinfo->comment, info_ptr->text[i].text);
-+        strcat(pinfo->comment, _text[i].text);
-         strcat(pinfo->comment, "\n");
-       }
-     }
-@@ -1143,7 +1181,7 @@
- {
-   SetISTR(ISTR_WARNING,"%s:  libpng error: %s", fbasename, message);
- 
--  longjmp(png_ptr->jmpbuf, 1);
-+  longjmp(png_jmpbuf(png_ptr), 1);
- }
- 
- 

Copied: xv/repos/community-i686/xv-3.10a-libpng15.patch (from rev 196547, 
xv/trunk/xv-3.10a-libpng15.patch)
===================================================================
--- community-i686/xv-3.10a-libpng15.patch                              (rev 0)
+++ community-i686/xv-3.10a-libpng15.patch      2016-11-22 17:38:34 UTC (rev 
196548)
@@ -0,0 +1,520 @@
+--- xvinfo.c
++++ xvinfo.c
+@@ -26,7 +26,7 @@
+ #define INFOHIGH 270
+ 
+ /* max length of an Info String */
+-#define ISTRLEN 80
++#define ISTRLEN 256
+ 
+ /* baseline of top line of text */
+ #define TOPBASE (36 + penn_height/2 + 4 + 8 + ASCENT)
+--- xvpng.c
++++ xvpng.c
+@@ -31,6 +31,7 @@
+ 
+ #ifdef HAVE_PNG
+ 
++#include "zlib.h"
+ #include "png.h"
+ 
+ /*** Stuff for PNG Dialog box ***/
+@@ -41,7 +42,9 @@
+ #define COMPRESSION   6     /* default zlib compression level, not max
+                                (Z_BEST_COMPRESSION) */
+ 
+-#define HAVE_tRNS  (info_ptr->valid & PNG_INFO_tRNS)
++/* old
++#define HAVE_tRNS  (info_ptr->valid & PNG_INFO_tRNS) */
++#define HAVE_tRNS  png_get_valid(png_ptr,info_ptr,PNG_INFO_tRNS)
+ 
+ #define DWIDE    86
+ #define DHIGH    104
+@@ -444,6 +447,10 @@
+   byte       *p, *png_line;
+   char        software[256];
+   char       *savecmnt;
++  /* for storing values until all are accumulated, so that the image header 
can be set in full */
++  int         
_bit_depth,_color_type,_interlace_type,_compression_type,_filter_type;
++  png_uint_32 _width,_height;
++  png_time    _mod_time;
+ 
+   if ((png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,
+        png_xv_error, png_xv_warning)) == NULL) {
+@@ -458,7 +465,7 @@
+     FatalError(software);
+   }
+ 
+-  if (setjmp(png_ptr->jmpbuf)) {
++  if (setjmp(png_jmpbuf(png_ptr))) {
+     png_destroy_write_struct(&png_ptr, &info_ptr);
+     return -1;
+   }
+@@ -489,8 +496,8 @@
+     png_set_filter(png_ptr, 0, filter);
+   }
+ 
+-  info_ptr->width = w;
+-  info_ptr->height = h;
++  _width = w;
++  _height = h;
+   if (w <= 0 || h <= 0) {
+     SetISTR(ISTR_WARNING, "%s:  image dimensions out of range (%dx%d)",
+       fbasename, w, h);
+@@ -498,7 +505,7 @@
+     return -1;
+   }
+ 
+-  info_ptr->interlace_type = interCB.val ? 1 : 0;
++  _interlace_type = interCB.val ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE;
+ 
+   linesize = 0;   /* quiet a compiler warning */
+ 
+@@ -542,40 +549,44 @@
+         png_destroy_write_struct(&png_ptr, &info_ptr);
+         return -1;
+       }
+-      info_ptr->color_type = PNG_COLOR_TYPE_RGB;
+-      info_ptr->bit_depth = 8;
++      _color_type = PNG_COLOR_TYPE_RGB;
++      _bit_depth = 8;
+     } else /* ptype == PIC8 */ {
+       linesize = w;
+-      info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
++      _color_type = PNG_COLOR_TYPE_PALETTE;
+       if (numuniqcols <= 2)
+-        info_ptr->bit_depth = 1;
++        _bit_depth = 1;
+       else
+       if (numuniqcols <= 4)
+-        info_ptr->bit_depth = 2;
++        _bit_depth = 2;
+       else
+       if (numuniqcols <= 16)
+-        info_ptr->bit_depth = 4;
++        _bit_depth = 4;
+       else
+-        info_ptr->bit_depth = 8;
++        _bit_depth = 8;
+ 
+       for (i = 0; i < numuniqcols; i++) {
+         palette[i].red   = r1[i];
+         palette[i].green = g1[i];
+         palette[i].blue  = b1[i];
+       }
+-      info_ptr->num_palette = numuniqcols;
+-      info_ptr->palette = palette;
++/* cannot find a setter for this, unsure if it is necessary anymore...
+       info_ptr->valid |= PNG_INFO_PLTE;
++*/
++      /* set the header just in case it's needed */
++      png_set_IHDR(png_ptr,info_ptr,_width,_height,_bit_depth,_color_type,
++        _interlace_type,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
++      png_set_PLTE(png_ptr,info_ptr,palette,numuniqcols);
+     }
+   }
+ 
+   else if (colorType == F_GREYSCALE || colorType == F_BWDITHER) {
+-    info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
++    _color_type = PNG_COLOR_TYPE_GRAY;
+     if (colorType == F_BWDITHER) {
+       /* shouldn't happen */
+       if (ptype == PIC24) FatalError("PIC24 and B/W Stipple in WritePNG()");
+ 
+-      info_ptr->bit_depth = 1;
++      _bit_depth = 1;
+       if (MONO(r1[0], g1[0], b1[0]) > MONO(r1[1], g1[1], b1[1])) {
+         remap[0] = 1;
+         remap[1] = 0;
+@@ -595,7 +606,7 @@
+           png_destroy_write_struct(&png_ptr, &info_ptr);
+           return -1;
+         }
+-        info_ptr->bit_depth = 8;
++        _bit_depth = 8;
+       }
+       else /* ptype == PIC8 */ {
+         int low_precision;
+@@ -617,7 +628,7 @@
+         for (; i < 256; i++)
+           remap[i]=0;  /* shouldn't be necessary, but... */
+ 
+-        info_ptr->bit_depth = 8;
++        _bit_depth = 8;
+ 
+         /* Note that this fails most of the time because of gamma */
+            /* (and that would be a bug:  GRR FIXME) */
+@@ -636,7 +647,7 @@
+           for (i = 0; i < numuniqcols; i++) {
+             remap[i] &= 0xf;
+           }
+-          info_ptr->bit_depth = 4;
++          _bit_depth = 4;
+ 
+           /* try to adjust to 2-bit precision grayscale */
+ 
+@@ -652,7 +663,7 @@
+           for (i = 0; i < numuniqcols; i++) {
+             remap[i] &= 3;
+           }
+-          info_ptr->bit_depth = 2;
++          _bit_depth = 2;
+ 
+           /* try to adjust to 1-bit precision grayscale */
+ 
+@@ -668,7 +679,7 @@
+           for (i = 0; i < numuniqcols; i++) {
+             remap[i] &= 1;
+           }
+-          info_ptr->bit_depth = 1;
++          _bit_depth = 1;
+         }
+       }
+     }
+@@ -677,6 +688,9 @@
+   else
+     png_error(png_ptr, "Unknown colorstyle in WritePNG");
+ 
++  png_set_IHDR(png_ptr,info_ptr,_width,_height,_bit_depth,_color_type,
++    _interlace_type,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
++
+   if ((text = (png_textp)malloc(sizeof(png_text)))) {
+     sprintf(software, "XV %s", REVDATE);
+ 
+@@ -685,20 +699,22 @@
+     text->text = software;
+     text->text_length = strlen(text->text);
+ 
+-    info_ptr->max_text = 1;
+-    info_ptr->num_text = 1;
+-    info_ptr->text = text;
++/* max_text seems to be internal only now, do not set
++    info_ptr->max_text = 1; */
++    png_set_text(png_ptr,info_ptr,text,1);
+   }
+ 
+   Display_Gamma = gDial.val;  /* Save the current gamma for loading */
+ 
+ // GRR FIXME:  add .Xdefaults option to omit writing gamma (size, cumulative 
errors when editing)--alternatively, modify save box to include "omit" checkbox
+-  info_ptr->gamma = 1.0/gDial.val;
+-  info_ptr->valid |= PNG_INFO_gAMA;
++  png_set_gAMA(png_ptr,info_ptr,1.0/gDial.val);
++/* doesn't seem to be a way to set valid directly anymore, unnecessary 
maybe.. 
++  info_ptr->valid |= PNG_INFO_gAMA; */
+ 
++/* might need to be png_write_info_before_PLTE() ... */
+   png_write_info(png_ptr, info_ptr);
+ 
+-  if (info_ptr->bit_depth < 8)
++  if (_bit_depth < 8)
+     png_set_packing(png_ptr);
+ 
+   pass=png_set_interlace_handling(png_ptr);
+@@ -711,13 +727,13 @@
+     int j;
+     p = pic;
+     for (j = 0; j < h; ++j) {
+-      if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) {
++      if (_color_type == PNG_COLOR_TYPE_GRAY) {
+         int k;
+         for (k = 0; k < w; ++k)
+           png_line[k] = ptype==PIC24 ? MONO(p[k*3], p[k*3+1], p[k*3+2]) :
+                                        remap[pc2nc[p[k]]];
+         png_write_row(png_ptr, png_line);
+-      } else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) {
++      } else if (_color_type == PNG_COLOR_TYPE_PALETTE) {
+         int k;
+         for (k = 0; k < w; ++k)
+           png_line[k] = pc2nc[p[k]];
+@@ -739,28 +755,31 @@
+         (savecmnt = (char *)malloc((strlen(picComments) + 1)*sizeof(char)))) {
+       png_textp tp;
+       char *comment, *key;
++      int nt;
++      int mt;
+ 
+       strcpy(savecmnt, picComments);
+       key = savecmnt;
++      png_get_text(png_ptr,info_ptr,&tp,&mt); /* to get 'max_text' */
+       tp = text;
+-      info_ptr->num_text = 0;
++      nt = 0;      
+ 
+       comment = strchr(key, ':');
+ 
+       do  {
+         /* Allocate a larger structure for comments if necessary */
+-        if (info_ptr->num_text >= info_ptr->max_text)
++        if (nt >= mt)
+         {
+           if ((tp =
+-              realloc(text, (info_ptr->num_text + 2)*sizeof(png_text))) == 
NULL)
++              realloc(text, (nt + 2)*sizeof(png_text))) == NULL)
+           {
+             break;
+           }
+           else
+           {
+             text = tp;
+-            tp = &text[info_ptr->num_text];
+-            info_ptr->max_text += 2;
++            tp = &text[nt];
++            mt += 2;
+           }
+         }
+ 
+@@ -810,7 +829,7 @@
+             }
+ 
+             tp->compression = tp->text_length > 640 ? 0 : -1;
+-            info_ptr->num_text++;
++            nt++;
+             tp++;
+           }
+         }
+@@ -834,27 +853,29 @@
+           tp->text = key;
+           tp->text_length = q - key;
+           tp->compression = tp->text_length > 750 ? 0 : -1;
+-          info_ptr->num_text++;
++          nt++;
+           key = NULL;
+         }
+       } while (key && *key);
++      png_set_text(png_ptr,info_ptr,text,nt);
+     }
+     else {
+-      info_ptr->num_text = 0;
++      png_set_text(png_ptr,info_ptr,text,0);
+     }
+   }
+-  info_ptr->text = text;
+ 
+-  png_convert_from_time_t(&(info_ptr->mod_time), time(NULL));
+-  info_ptr->valid |= PNG_INFO_tIME;
++  png_convert_from_time_t(&_mod_time, time(NULL));
++  png_set_tIME(png_ptr,info_ptr,&_mod_time);
++/* dunno how to set validity
++  info_ptr->valid |= PNG_INFO_tIME; */
+ 
+   png_write_end(png_ptr, info_ptr);
+   fflush(fp);   /* just in case we core-dump before finishing... */
+ 
+   if (text) {
+     free(text);
+-    /* must do this or png_destroy_write_struct() 0.97+ will free text again: 
*/
+-    info_ptr->text = (png_textp)NULL;
++    /* must do this or png_destroy_write_struct() 0.97+ will free text again: 
++    info_ptr->text = (png_textp)NULL; */
+     if (savecmnt)
+     {
+       free(savecmnt);
+@@ -886,6 +907,14 @@
+   int pass;
+   int gray_to_rgb;
+   size_t commentsize;
++  /* temp storage vars for libpng15 migration */
++  int         
_bit_depth,_color_type,_interlace_type,_compression_type,_filter_type,_num_text,_num_palette;
++  png_uint_32 _width,_height;
++  png_timep   _mod_time;
++  double      _gamma;
++  png_textp   _text;
++  png_colorp  _palette;
++  png_color_16p _background;
+ 
+   fbasename = BaseName(fname);
+ 
+@@ -921,7 +950,7 @@
+     FatalError("malloc failure in LoadPNG");
+   }
+ 
+-  if (setjmp(png_ptr->jmpbuf)) {
++  if (setjmp(png_jmpbuf(png_ptr))) {
+     fclose(fp);
+     png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
+     if (!read_anything) {
+@@ -945,8 +974,10 @@
+ #endif
+   png_read_info(png_ptr, info_ptr);
+ 
+-  pinfo->w = pinfo->normw = info_ptr->width;
+-  pinfo->h = pinfo->normh = info_ptr->height;
++  
png_get_IHDR(png_ptr,info_ptr,&_width,&_height,&_bit_depth,&_color_type,&_interlace_type,NULL,NULL);
++
++  pinfo->w = pinfo->normw = _width;
++  pinfo->h = pinfo->normh = _height;
+   if (pinfo->w <= 0 || pinfo->h <= 0) {
+     SetISTR(ISTR_WARNING, "%s:  image dimensions out of range (%dx%d)",
+       fbasename, pinfo->w, pinfo->h);
+@@ -957,9 +988,9 @@
+   pinfo->frmType = F_PNG;
+ 
+   sprintf(pinfo->fullInfo, "PNG, %d bit ",
+-          info_ptr->bit_depth * info_ptr->channels);
++          _bit_depth * png_get_channels(png_ptr,info_ptr));
+ 
+-  switch(info_ptr->color_type) {
++  switch(_color_type) {
+     case PNG_COLOR_TYPE_PALETTE:
+       strcat(pinfo->fullInfo, "palette color");
+       break;
+@@ -983,15 +1014,17 @@
+ 
+   sprintf(pinfo->fullInfo + strlen(pinfo->fullInfo),
+         ", %sinterlaced. (%d bytes)",
+-        info_ptr->interlace_type ? "" : "non-", filesize);
++        _interlace_type ? "" : "non-", filesize);
+ 
+-  sprintf(pinfo->shrtInfo, "%lux%lu PNG", info_ptr->width, info_ptr->height);
++  sprintf(pinfo->shrtInfo, "%lux%lu PNG", _width, _height);
+ 
+-  if (info_ptr->bit_depth < 8)
++  if (_bit_depth < 8)
+       png_set_packing(png_ptr);
+ 
+-  if (info_ptr->valid & PNG_INFO_gAMA)
+-    png_set_gamma(png_ptr, Display_Gamma, info_ptr->gamma);
++  if (png_get_valid(png_ptr,info_ptr,PNG_INFO_gAMA)) {
++    png_get_gAMA(png_ptr,info_ptr,&_gamma);
++    png_set_gamma(png_ptr, Display_Gamma, _gamma);
++  }
+ /*
+  *else
+  *  png_set_gamma(png_ptr, Display_Gamma, 0.45);
+@@ -1000,7 +1033,7 @@
+   gray_to_rgb = 0;   /* quiet a compiler warning */
+ 
+   if (have_imagebg) {
+-    if (info_ptr->bit_depth == 16) {
++    if (_bit_depth == 16) {
+       my_background.red   = imagebgR;
+       my_background.green = imagebgG;
+       my_background.blue  = imagebgB;
+@@ -1013,8 +1046,8 @@
+     }
+     png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN,
+                        0, Display_Gamma);
+-    if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
+-         (info_ptr->color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
++    if ((_color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
++         (_color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
+         (imagebgR != imagebgG || imagebgR != imagebgB))  /* i.e., colored bg 
*/
+     {
+       png_set_gray_to_rgb(png_ptr);
+@@ -1022,8 +1055,9 @@
+       gray_to_rgb = 1;
+     }
+   } else {
+-    if (info_ptr->valid & PNG_INFO_bKGD) {
+-      png_set_background(png_ptr, &info_ptr->background,
++    if (png_get_valid(png_ptr,info_ptr,PNG_INFO_bKGD)) {
++      png_get_bKGD(png_ptr,info_ptr,&_background);
++      png_set_background(png_ptr, _background,
+                          PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
+     } else {
+       my_background.red = my_background.green = my_background.blue =
+@@ -1033,13 +1067,13 @@
+     }
+   }
+ 
+-  if (info_ptr->bit_depth == 16)
++  if (_bit_depth == 16)
+     png_set_strip_16(png_ptr);
+ 
+-  if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
+-      info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
++  if (_color_type == PNG_COLOR_TYPE_GRAY ||
++      _color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+   {
+-    if (info_ptr->bit_depth == 1)
++    if (_bit_depth == 1)
+       pinfo->colType = F_BWDITHER;
+     else
+       pinfo->colType = F_GREYSCALE;
+@@ -1049,9 +1083,11 @@
+   pass=png_set_interlace_handling(png_ptr);
+ 
+   png_read_update_info(png_ptr, info_ptr);
++  /* get HIDR again just in case the info_ptr changed */
++  
png_get_IHDR(png_ptr,info_ptr,&_width,&_height,&_bit_depth,&_color_type,&_interlace_type,NULL,NULL);
+ 
+-  if (info_ptr->color_type == PNG_COLOR_TYPE_RGB ||
+-     info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
++  if (_color_type == PNG_COLOR_TYPE_RGB ||
++     _color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
+   {
+     linesize = 3 * pinfo->w;
+     if (linesize/3 < pinfo->w) {   /* know pinfo->w > 0 (see above) */
+@@ -1065,16 +1101,17 @@
+   } else {
+     linesize = pinfo->w;
+     pinfo->type = PIC8;
+-    if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
+-       info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
++    if (_color_type == PNG_COLOR_TYPE_GRAY ||
++       _color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
+       for (i = 0; i < 256; i++)
+         pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i;
+     } else {
+       pinfo->colType = F_FULLCOLOR;
+-      for (i = 0; i < info_ptr->num_palette; i++) {
+-        pinfo->r[i] = info_ptr->palette[i].red;
+-        pinfo->g[i] = info_ptr->palette[i].green;
+-        pinfo->b[i] = info_ptr->palette[i].blue;
++      png_get_PLTE(png_ptr,info_ptr,&_palette,&_num_palette);
++      for (i = 0; i < _num_palette; i++) {
++        pinfo->r[i] = _palette[i].red;
++        pinfo->g[i] = _palette[i].green;
++        pinfo->b[i] = _palette[i].blue;
+       }
+     }
+   }
+@@ -1092,7 +1129,7 @@
+     png_error(png_ptr, "can't allocate space for PNG image");
+   }
+ 
+-  png_start_read_image(png_ptr);
++  /*png_start_read_image(png_ptr); -- causes a warning and seems to be 
unnecessary */
+ 
+   for (i = 0; i < pass; i++) {
+     byte *p = pinfo->pic;
+@@ -1106,22 +1143,23 @@
+ 
+   png_read_end(png_ptr, info_ptr);
+ 
+-  if (info_ptr->num_text > 0) {
++  png_get_text(png_ptr,info_ptr,&_text,&_num_text);
++  if (_num_text > 0) {
+     commentsize = 1;
+ 
+-    for (i = 0; i < info_ptr->num_text; i++)
+-      commentsize += strlen(info_ptr->text[i].key) + 1 +
+-                     info_ptr->text[i].text_length + 2;
++    for (i = 0; i < _num_text; i++)
++      commentsize += strlen(_text[i].key) + 1 +
++                     _text[i].text_length + 2;
+ 
+     if ((pinfo->comment = malloc(commentsize)) == NULL) {
+       png_warning(png_ptr,"can't allocate comment string");
+     }
+     else {
+       pinfo->comment[0] = '\0';
+-      for (i = 0; i < info_ptr->num_text; i++) {
+-        strcat(pinfo->comment, info_ptr->text[i].key);
++      for (i = 0; i < _num_text; i++) {
++        strcat(pinfo->comment, _text[i].key);
+         strcat(pinfo->comment, "::");
+-        strcat(pinfo->comment, info_ptr->text[i].text);
++        strcat(pinfo->comment, _text[i].text);
+         strcat(pinfo->comment, "\n");
+       }
+     }
+@@ -1143,7 +1181,7 @@
+ {
+   SetISTR(ISTR_WARNING,"%s:  libpng error: %s", fbasename, message);
+ 
+-  longjmp(png_ptr->jmpbuf, 1);
++  longjmp(png_jmpbuf(png_ptr), 1);
+ }
+ 
+ 

Deleted: community-x86_64/PKGBUILD
===================================================================
--- community-x86_64/PKGBUILD   2016-11-22 17:38:21 UTC (rev 196547)
+++ community-x86_64/PKGBUILD   2016-11-22 17:38:34 UTC (rev 196548)
@@ -1,46 +0,0 @@
-# $Id$
-# Maintainer: Eric Bélanger <e...@archlinux.org>
-
-pkgname=xv
-pkgver=3.10a
-pkgrel=18
-pkgdesc="A nice image viewer"
-arch=('i686' 'x86_64')
-url="http://www.trilon.com/xv/";
-license=('custom')
-depends=('libpng' 'libx11' 'libtiff' 'jasper')
-makedepends=('libxt')
-options=('!emptydirs')
-source=(ftp://ftp.trilon.com/pub/xv/${pkgname}-${pkgver}.tar.gz \
-        
http://downloads.sourceforge.net/sourceforge/png-mng/xv-3.10a-jumbo-patches-20070520.tar.gz
 \
-        
http://www.sonic.net/~roelofs/code/xv-3.10a-enhancements.20070520-20081216.diff 
\
-        license.txt xv-3.10a-libpng15.patch)
-sha1sums=('092f8eb100f16d6b91c88b126c2b2b998eb09b99'
-          'd00308c1687d9d803d26ef40c73d19a0f593c626'
-          '40bfb0889b820e0f9d3bd7d771144ec3458acc66'
-          '4561344e8f2c30eee9c55b14a14f062d89d6e7b7'
-          '3d19aa0c6ecc8b554081906babe0b4f9a6946da3')
-
-prepare() {
-  tar -cJf xv-${pkgver}-source.tar.xz xv-${pkgver}
-  cd ${pkgname}-${pkgver}
-  patch -p1 -i "${srcdir}/xv-3.10a-jumbo-fix-enh-patch-20070520.txt"
-  patch -p1 -i "${srcdir}/xv-3.10a-enhancements.20070520-20081216.diff"
-  patch -p0 -i "${srcdir}/xv-3.10a-libpng15.patch"
-}
-
-build() {
-  cd ${pkgname}-${pkgver}
-  make JP2KLIB=-ljasper
-}
-
-package() {
-  cd ${pkgname}-${pkgver}
-  install -d "${pkgdir}"/usr/{bin,lib,share/man/man1}
-  make DESTDIR="${pkgdir}" PREFIX=/usr install
-  install -D -m644 "${srcdir}/license.txt" 
"${pkgdir}/usr/share/licenses/${pkgname}/license.txt"
-
-# installing source tarball (to comply with license)
-  install -D -m644 "${srcdir}/xv-${pkgver}-source.tar.xz" 
"${pkgdir}/usr/share/doc/xv/xv-${pkgver}-source.tar.xz"
-  ln -s "/usr/share/licenses/${pkgname}/license.txt" 
"${pkgdir}/usr/share/doc/xv/license.txt"
-}

Copied: xv/repos/community-x86_64/PKGBUILD (from rev 196547, xv/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD                           (rev 0)
+++ community-x86_64/PKGBUILD   2016-11-22 17:38:34 UTC (rev 196548)
@@ -0,0 +1,46 @@
+# $Id$
+# Maintainer: Eric Bélanger <e...@archlinux.org>
+
+pkgname=xv
+pkgver=3.10a
+pkgrel=20
+pkgdesc="A nice image viewer"
+arch=('i686' 'x86_64')
+url="http://www.trilon.com/xv/";
+license=('custom')
+depends=('libpng' 'libx11' 'libtiff' 'jasper')
+makedepends=('libxt')
+options=('!emptydirs')
+source=(ftp://ftp.trilon.com/pub/xv/${pkgname}-${pkgver}.tar.gz \
+        
http://downloads.sourceforge.net/sourceforge/png-mng/xv-3.10a-jumbo-patches-20070520.tar.gz
 \
+        
http://www.sonic.net/~roelofs/code/xv-3.10a-enhancements.20070520-20081216.diff 
\
+        license.txt xv-3.10a-libpng15.patch)
+sha1sums=('092f8eb100f16d6b91c88b126c2b2b998eb09b99'
+          'd00308c1687d9d803d26ef40c73d19a0f593c626'
+          '40bfb0889b820e0f9d3bd7d771144ec3458acc66'
+          '4561344e8f2c30eee9c55b14a14f062d89d6e7b7'
+          '3d19aa0c6ecc8b554081906babe0b4f9a6946da3')
+
+prepare() {
+  tar -cJf xv-${pkgver}-source.tar.xz xv-${pkgver}
+  cd ${pkgname}-${pkgver}
+  patch -p1 -i "${srcdir}/xv-3.10a-jumbo-fix-enh-patch-20070520.txt"
+  patch -p1 -i "${srcdir}/xv-3.10a-enhancements.20070520-20081216.diff"
+  patch -p0 -i "${srcdir}/xv-3.10a-libpng15.patch"
+}
+
+build() {
+  cd ${pkgname}-${pkgver}
+  make JP2KLIB=-ljasper
+}
+
+package() {
+  cd ${pkgname}-${pkgver}
+  install -d "${pkgdir}"/usr/{bin,lib,share/man/man1}
+  make DESTDIR="${pkgdir}" PREFIX=/usr install
+  install -D -m644 "${srcdir}/license.txt" 
"${pkgdir}/usr/share/licenses/${pkgname}/license.txt"
+
+# installing source tarball (to comply with license)
+  install -D -m644 "${srcdir}/xv-${pkgver}-source.tar.xz" 
"${pkgdir}/usr/share/doc/xv/xv-${pkgver}-source.tar.xz"
+  ln -s "/usr/share/licenses/${pkgname}/license.txt" 
"${pkgdir}/usr/share/doc/xv/license.txt"
+}

Deleted: community-x86_64/license.txt
===================================================================
--- community-x86_64/license.txt        2016-11-22 17:38:21 UTC (rev 196547)
+++ community-x86_64/license.txt        2016-11-22 17:38:34 UTC (rev 196548)
@@ -1,139 +0,0 @@
-XV Licensing Information
-------------------------
-XV IS SHAREWARE FOR PERSONAL USE ONLY.  
-
-You may use XV for your own amusement, and if you find it nifty,
-useful, generally cool, or of some value to you, your registration fee
-would be greatly appreciated.  $25 is the standard registration fee,
-though of course, larger amounts are quite welcome.  Folks who donate
-$40 or more can receive a printed, bound copy of the XV manual for no
-extra charge.  If you want one, just ask.  BE SURE TO SPECIFY THE
-VERSION OF XV THAT YOU ARE USING!
-
-COMMERCIAL, GOVERNMENT, AND INSTITUTIONAL USERS MUST REGISTER THEIR
-COPIES OF XV.
-
-This does *not* mean that you are required to register XV just because
-you play with it on the workstation in your office.  This falls under
-the heading of 'personal use'.  If you are a sysadmin, you can put XV
-up in a public directory for your users amusement.  Again, 'personal
-use', albeit plural.
-
-On the other hand, if you use XV in the course of doing your work,
-whatever your 'work' may happen to be, you *must* register your
-copy of XV.  (Note:  If you are a student, and you use XV to do 
-classwork or research, you should get your professor/teacher/advisor
-to purchase an appropriate number of copies.)
-
-XV licenses are $25 each.  You should purchase one license per
-workstation, or one per XV user, whichever is the smaller number.  XV
-is *not* sold on a 'number of concurrent users' basis.  If XV was some
-$1000 program, yes, that would be a reasonable request, but at $25,
-it's not.  Also, given that XV is completely unlocked, there is no way
-to enforce any 'number of concurrent users' limits, so it isn't sold
-that way.
-
-Printed and bound copies of the 100-odd page XV manual are available
-for $15 each.  Note that manuals are *only* sold with, at minimum, an
-equal number of licenses.  (e.g.  if you purchase 5 licenses, you can
-also purchase *up to* 5 copies of the manual)
-
-The source code to the program can be had (as a compressed 'tar' file
-split over a couple 3.5" MS-DOS formatted floppies) for $15, for those
-who don't have ftp capabilities.
-
-Orders outside the US and Canada must add an additional $5 per manual
-ordered to cover the additional shipping charges.
-
-Checks, money orders, and purchase orders are accepted.  Credit cards
-are not.  All forms of payment must be payable in US Funds.  Checks
-must be payable through a US bank (or a US branch of a non-US bank).
-Purchase orders for less than $50, while still accepted, are not
-encouraged. 
-
-All payments should be payable to 'John Bradley', and mailed to:
-        John Bradley
-        1053 Floyd Terrace
-        Bryn Mawr, PA  19010
-        USA
-
-
-Site Licenses
--------------
-If you are planning to purchase 10 or more licenses, site licenses are
-available, at a substantial discount.  Site licenses let you run XV on
-any and all computing equipment at the site, for any purpose
-whatsoever.  The site license covers the current version of XV, and
-any versions released within one year of the licensing date.  You are
-also allowed to duplicate and distribute an unlimited number of copies
-of the XV manual, but only for use within the site.  Covered versions
-of the software may be run in perpetuity.
-
-Also, it should be noted that a 'site' can be defined as anything
-you'd like.  It can be a physical location (a room, building,
-location, etc.), an organizational grouping (a workgroup, department,
-division, etc.) or any other logical grouping ("the seventeen
-technical writers scattered about our company", etc.).
-
-The site license cost will be based on your estimate of the number of
-XV users or workstations at your site, whichever is the smaller
-number.
-
-If you are interested in obtaining a site license, please contact the
-author via electronic mail or FAX (see below for details).  Send
-information regarding your site (the name or definition of the 'site',
-a physical address, a fax number, and an estimate of the number of
-users or workstations), and we'll get a site license out to you for
-your examination.
-
-
-Copyright Notice
-----------------
-XV is Copyright 1989, 1994 by John Bradley
-
-Permission to copy and distribute XV in its entirety, for
-non-commercial purposes, is hereby granted without fee, provided that
-this license information and copyright notice appear in all copies.
-
-If you redistribute XV, the *entire* contents of this distribution
-must be distributed, including the README, and INSTALL files, the
-sources, and the complete contents of the 'docs' directory.
-
-Note that distributing XV 'bundled' in with any product is considered
-to be a 'commercial purpose'.
-
-Also note that any copies of XV that are distributed MUST be built
-and/or configured to be in their 'unregistered copy' mode, so that it
-is made obvious to the user that XV is shareware, and that they should
-consider registering, or at least reading this information.
-
-The software may be modified for your own purposes, but modified
-versions may not be distributed without prior consent of the author.
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the author be held liable for any damages
-arising from the use of this software.
-
-If you would like to do something with XV that this copyright
-prohibits (such as distributing it with a commercial product, using
-portions of the source in some other program, distributing registered
-copies, etc.), please contact the author (preferably via email).
-Arrangements can probably be worked out.
-
-
-The author may be contacted via:
-    US Mail:  John Bradley
-              1053 Floyd Terrace
-              Bryn Mawr, PA  19010
-
-    FAX:     (610) 520-2042
-
-Electronic Mail regarding XV should be sent to one of these three addresses:
-     x...@devo.dccs.upenn.edu               - general XV questions
-     xv...@devo.dccs.upenn.edu            - all XV licensing questions
-     xvt...@devo.dccs.upenn.edu           - bug reports, technical questions
-
-Please do *not* send electronic mail directly to the author, as he
-gets more than enough as it is.
-
-

Copied: xv/repos/community-x86_64/license.txt (from rev 196547, 
xv/trunk/license.txt)
===================================================================
--- community-x86_64/license.txt                                (rev 0)
+++ community-x86_64/license.txt        2016-11-22 17:38:34 UTC (rev 196548)
@@ -0,0 +1,139 @@
+XV Licensing Information
+------------------------
+XV IS SHAREWARE FOR PERSONAL USE ONLY.  
+
+You may use XV for your own amusement, and if you find it nifty,
+useful, generally cool, or of some value to you, your registration fee
+would be greatly appreciated.  $25 is the standard registration fee,
+though of course, larger amounts are quite welcome.  Folks who donate
+$40 or more can receive a printed, bound copy of the XV manual for no
+extra charge.  If you want one, just ask.  BE SURE TO SPECIFY THE
+VERSION OF XV THAT YOU ARE USING!
+
+COMMERCIAL, GOVERNMENT, AND INSTITUTIONAL USERS MUST REGISTER THEIR
+COPIES OF XV.
+
+This does *not* mean that you are required to register XV just because
+you play with it on the workstation in your office.  This falls under
+the heading of 'personal use'.  If you are a sysadmin, you can put XV
+up in a public directory for your users amusement.  Again, 'personal
+use', albeit plural.
+
+On the other hand, if you use XV in the course of doing your work,
+whatever your 'work' may happen to be, you *must* register your
+copy of XV.  (Note:  If you are a student, and you use XV to do 
+classwork or research, you should get your professor/teacher/advisor
+to purchase an appropriate number of copies.)
+
+XV licenses are $25 each.  You should purchase one license per
+workstation, or one per XV user, whichever is the smaller number.  XV
+is *not* sold on a 'number of concurrent users' basis.  If XV was some
+$1000 program, yes, that would be a reasonable request, but at $25,
+it's not.  Also, given that XV is completely unlocked, there is no way
+to enforce any 'number of concurrent users' limits, so it isn't sold
+that way.
+
+Printed and bound copies of the 100-odd page XV manual are available
+for $15 each.  Note that manuals are *only* sold with, at minimum, an
+equal number of licenses.  (e.g.  if you purchase 5 licenses, you can
+also purchase *up to* 5 copies of the manual)
+
+The source code to the program can be had (as a compressed 'tar' file
+split over a couple 3.5" MS-DOS formatted floppies) for $15, for those
+who don't have ftp capabilities.
+
+Orders outside the US and Canada must add an additional $5 per manual
+ordered to cover the additional shipping charges.
+
+Checks, money orders, and purchase orders are accepted.  Credit cards
+are not.  All forms of payment must be payable in US Funds.  Checks
+must be payable through a US bank (or a US branch of a non-US bank).
+Purchase orders for less than $50, while still accepted, are not
+encouraged. 
+
+All payments should be payable to 'John Bradley', and mailed to:
+        John Bradley
+        1053 Floyd Terrace
+        Bryn Mawr, PA  19010
+        USA
+
+
+Site Licenses
+-------------
+If you are planning to purchase 10 or more licenses, site licenses are
+available, at a substantial discount.  Site licenses let you run XV on
+any and all computing equipment at the site, for any purpose
+whatsoever.  The site license covers the current version of XV, and
+any versions released within one year of the licensing date.  You are
+also allowed to duplicate and distribute an unlimited number of copies
+of the XV manual, but only for use within the site.  Covered versions
+of the software may be run in perpetuity.
+
+Also, it should be noted that a 'site' can be defined as anything
+you'd like.  It can be a physical location (a room, building,
+location, etc.), an organizational grouping (a workgroup, department,
+division, etc.) or any other logical grouping ("the seventeen
+technical writers scattered about our company", etc.).
+
+The site license cost will be based on your estimate of the number of
+XV users or workstations at your site, whichever is the smaller
+number.
+
+If you are interested in obtaining a site license, please contact the
+author via electronic mail or FAX (see below for details).  Send
+information regarding your site (the name or definition of the 'site',
+a physical address, a fax number, and an estimate of the number of
+users or workstations), and we'll get a site license out to you for
+your examination.
+
+
+Copyright Notice
+----------------
+XV is Copyright 1989, 1994 by John Bradley
+
+Permission to copy and distribute XV in its entirety, for
+non-commercial purposes, is hereby granted without fee, provided that
+this license information and copyright notice appear in all copies.
+
+If you redistribute XV, the *entire* contents of this distribution
+must be distributed, including the README, and INSTALL files, the
+sources, and the complete contents of the 'docs' directory.
+
+Note that distributing XV 'bundled' in with any product is considered
+to be a 'commercial purpose'.
+
+Also note that any copies of XV that are distributed MUST be built
+and/or configured to be in their 'unregistered copy' mode, so that it
+is made obvious to the user that XV is shareware, and that they should
+consider registering, or at least reading this information.
+
+The software may be modified for your own purposes, but modified
+versions may not be distributed without prior consent of the author.
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the author be held liable for any damages
+arising from the use of this software.
+
+If you would like to do something with XV that this copyright
+prohibits (such as distributing it with a commercial product, using
+portions of the source in some other program, distributing registered
+copies, etc.), please contact the author (preferably via email).
+Arrangements can probably be worked out.
+
+
+The author may be contacted via:
+    US Mail:  John Bradley
+              1053 Floyd Terrace
+              Bryn Mawr, PA  19010
+
+    FAX:     (610) 520-2042
+
+Electronic Mail regarding XV should be sent to one of these three addresses:
+     x...@devo.dccs.upenn.edu               - general XV questions
+     xv...@devo.dccs.upenn.edu            - all XV licensing questions
+     xvt...@devo.dccs.upenn.edu           - bug reports, technical questions
+
+Please do *not* send electronic mail directly to the author, as he
+gets more than enough as it is.
+
+

Deleted: community-x86_64/xv-3.10a-libpng15.patch
===================================================================
--- community-x86_64/xv-3.10a-libpng15.patch    2016-11-22 17:38:21 UTC (rev 
196547)
+++ community-x86_64/xv-3.10a-libpng15.patch    2016-11-22 17:38:34 UTC (rev 
196548)
@@ -1,520 +0,0 @@
---- xvinfo.c
-+++ xvinfo.c
-@@ -26,7 +26,7 @@
- #define INFOHIGH 270
- 
- /* max length of an Info String */
--#define ISTRLEN 80
-+#define ISTRLEN 256
- 
- /* baseline of top line of text */
- #define TOPBASE (36 + penn_height/2 + 4 + 8 + ASCENT)
---- xvpng.c
-+++ xvpng.c
-@@ -31,6 +31,7 @@
- 
- #ifdef HAVE_PNG
- 
-+#include "zlib.h"
- #include "png.h"
- 
- /*** Stuff for PNG Dialog box ***/
-@@ -41,7 +42,9 @@
- #define COMPRESSION   6     /* default zlib compression level, not max
-                                (Z_BEST_COMPRESSION) */
- 
--#define HAVE_tRNS  (info_ptr->valid & PNG_INFO_tRNS)
-+/* old
-+#define HAVE_tRNS  (info_ptr->valid & PNG_INFO_tRNS) */
-+#define HAVE_tRNS  png_get_valid(png_ptr,info_ptr,PNG_INFO_tRNS)
- 
- #define DWIDE    86
- #define DHIGH    104
-@@ -444,6 +447,10 @@
-   byte       *p, *png_line;
-   char        software[256];
-   char       *savecmnt;
-+  /* for storing values until all are accumulated, so that the image header 
can be set in full */
-+  int         
_bit_depth,_color_type,_interlace_type,_compression_type,_filter_type;
-+  png_uint_32 _width,_height;
-+  png_time    _mod_time;
- 
-   if ((png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,
-        png_xv_error, png_xv_warning)) == NULL) {
-@@ -458,7 +465,7 @@
-     FatalError(software);
-   }
- 
--  if (setjmp(png_ptr->jmpbuf)) {
-+  if (setjmp(png_jmpbuf(png_ptr))) {
-     png_destroy_write_struct(&png_ptr, &info_ptr);
-     return -1;
-   }
-@@ -489,8 +496,8 @@
-     png_set_filter(png_ptr, 0, filter);
-   }
- 
--  info_ptr->width = w;
--  info_ptr->height = h;
-+  _width = w;
-+  _height = h;
-   if (w <= 0 || h <= 0) {
-     SetISTR(ISTR_WARNING, "%s:  image dimensions out of range (%dx%d)",
-       fbasename, w, h);
-@@ -498,7 +505,7 @@
-     return -1;
-   }
- 
--  info_ptr->interlace_type = interCB.val ? 1 : 0;
-+  _interlace_type = interCB.val ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE;
- 
-   linesize = 0;   /* quiet a compiler warning */
- 
-@@ -542,40 +549,44 @@
-         png_destroy_write_struct(&png_ptr, &info_ptr);
-         return -1;
-       }
--      info_ptr->color_type = PNG_COLOR_TYPE_RGB;
--      info_ptr->bit_depth = 8;
-+      _color_type = PNG_COLOR_TYPE_RGB;
-+      _bit_depth = 8;
-     } else /* ptype == PIC8 */ {
-       linesize = w;
--      info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
-+      _color_type = PNG_COLOR_TYPE_PALETTE;
-       if (numuniqcols <= 2)
--        info_ptr->bit_depth = 1;
-+        _bit_depth = 1;
-       else
-       if (numuniqcols <= 4)
--        info_ptr->bit_depth = 2;
-+        _bit_depth = 2;
-       else
-       if (numuniqcols <= 16)
--        info_ptr->bit_depth = 4;
-+        _bit_depth = 4;
-       else
--        info_ptr->bit_depth = 8;
-+        _bit_depth = 8;
- 
-       for (i = 0; i < numuniqcols; i++) {
-         palette[i].red   = r1[i];
-         palette[i].green = g1[i];
-         palette[i].blue  = b1[i];
-       }
--      info_ptr->num_palette = numuniqcols;
--      info_ptr->palette = palette;
-+/* cannot find a setter for this, unsure if it is necessary anymore...
-       info_ptr->valid |= PNG_INFO_PLTE;
-+*/
-+      /* set the header just in case it's needed */
-+      png_set_IHDR(png_ptr,info_ptr,_width,_height,_bit_depth,_color_type,
-+        _interlace_type,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
-+      png_set_PLTE(png_ptr,info_ptr,palette,numuniqcols);
-     }
-   }
- 
-   else if (colorType == F_GREYSCALE || colorType == F_BWDITHER) {
--    info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
-+    _color_type = PNG_COLOR_TYPE_GRAY;
-     if (colorType == F_BWDITHER) {
-       /* shouldn't happen */
-       if (ptype == PIC24) FatalError("PIC24 and B/W Stipple in WritePNG()");
- 
--      info_ptr->bit_depth = 1;
-+      _bit_depth = 1;
-       if (MONO(r1[0], g1[0], b1[0]) > MONO(r1[1], g1[1], b1[1])) {
-         remap[0] = 1;
-         remap[1] = 0;
-@@ -595,7 +606,7 @@
-           png_destroy_write_struct(&png_ptr, &info_ptr);
-           return -1;
-         }
--        info_ptr->bit_depth = 8;
-+        _bit_depth = 8;
-       }
-       else /* ptype == PIC8 */ {
-         int low_precision;
-@@ -617,7 +628,7 @@
-         for (; i < 256; i++)
-           remap[i]=0;  /* shouldn't be necessary, but... */
- 
--        info_ptr->bit_depth = 8;
-+        _bit_depth = 8;
- 
-         /* Note that this fails most of the time because of gamma */
-            /* (and that would be a bug:  GRR FIXME) */
-@@ -636,7 +647,7 @@
-           for (i = 0; i < numuniqcols; i++) {
-             remap[i] &= 0xf;
-           }
--          info_ptr->bit_depth = 4;
-+          _bit_depth = 4;
- 
-           /* try to adjust to 2-bit precision grayscale */
- 
-@@ -652,7 +663,7 @@
-           for (i = 0; i < numuniqcols; i++) {
-             remap[i] &= 3;
-           }
--          info_ptr->bit_depth = 2;
-+          _bit_depth = 2;
- 
-           /* try to adjust to 1-bit precision grayscale */
- 
-@@ -668,7 +679,7 @@
-           for (i = 0; i < numuniqcols; i++) {
-             remap[i] &= 1;
-           }
--          info_ptr->bit_depth = 1;
-+          _bit_depth = 1;
-         }
-       }
-     }
-@@ -677,6 +688,9 @@
-   else
-     png_error(png_ptr, "Unknown colorstyle in WritePNG");
- 
-+  png_set_IHDR(png_ptr,info_ptr,_width,_height,_bit_depth,_color_type,
-+    _interlace_type,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
-+
-   if ((text = (png_textp)malloc(sizeof(png_text)))) {
-     sprintf(software, "XV %s", REVDATE);
- 
-@@ -685,20 +699,22 @@
-     text->text = software;
-     text->text_length = strlen(text->text);
- 
--    info_ptr->max_text = 1;
--    info_ptr->num_text = 1;
--    info_ptr->text = text;
-+/* max_text seems to be internal only now, do not set
-+    info_ptr->max_text = 1; */
-+    png_set_text(png_ptr,info_ptr,text,1);
-   }
- 
-   Display_Gamma = gDial.val;  /* Save the current gamma for loading */
- 
- // GRR FIXME:  add .Xdefaults option to omit writing gamma (size, cumulative 
errors when editing)--alternatively, modify save box to include "omit" checkbox
--  info_ptr->gamma = 1.0/gDial.val;
--  info_ptr->valid |= PNG_INFO_gAMA;
-+  png_set_gAMA(png_ptr,info_ptr,1.0/gDial.val);
-+/* doesn't seem to be a way to set valid directly anymore, unnecessary 
maybe.. 
-+  info_ptr->valid |= PNG_INFO_gAMA; */
- 
-+/* might need to be png_write_info_before_PLTE() ... */
-   png_write_info(png_ptr, info_ptr);
- 
--  if (info_ptr->bit_depth < 8)
-+  if (_bit_depth < 8)
-     png_set_packing(png_ptr);
- 
-   pass=png_set_interlace_handling(png_ptr);
-@@ -711,13 +727,13 @@
-     int j;
-     p = pic;
-     for (j = 0; j < h; ++j) {
--      if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) {
-+      if (_color_type == PNG_COLOR_TYPE_GRAY) {
-         int k;
-         for (k = 0; k < w; ++k)
-           png_line[k] = ptype==PIC24 ? MONO(p[k*3], p[k*3+1], p[k*3+2]) :
-                                        remap[pc2nc[p[k]]];
-         png_write_row(png_ptr, png_line);
--      } else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) {
-+      } else if (_color_type == PNG_COLOR_TYPE_PALETTE) {
-         int k;
-         for (k = 0; k < w; ++k)
-           png_line[k] = pc2nc[p[k]];
-@@ -739,28 +755,31 @@
-         (savecmnt = (char *)malloc((strlen(picComments) + 1)*sizeof(char)))) {
-       png_textp tp;
-       char *comment, *key;
-+      int nt;
-+      int mt;
- 
-       strcpy(savecmnt, picComments);
-       key = savecmnt;
-+      png_get_text(png_ptr,info_ptr,&tp,&mt); /* to get 'max_text' */
-       tp = text;
--      info_ptr->num_text = 0;
-+      nt = 0;      
- 
-       comment = strchr(key, ':');
- 
-       do  {
-         /* Allocate a larger structure for comments if necessary */
--        if (info_ptr->num_text >= info_ptr->max_text)
-+        if (nt >= mt)
-         {
-           if ((tp =
--              realloc(text, (info_ptr->num_text + 2)*sizeof(png_text))) == 
NULL)
-+              realloc(text, (nt + 2)*sizeof(png_text))) == NULL)
-           {
-             break;
-           }
-           else
-           {
-             text = tp;
--            tp = &text[info_ptr->num_text];
--            info_ptr->max_text += 2;
-+            tp = &text[nt];
-+            mt += 2;
-           }
-         }
- 
-@@ -810,7 +829,7 @@
-             }
- 
-             tp->compression = tp->text_length > 640 ? 0 : -1;
--            info_ptr->num_text++;
-+            nt++;
-             tp++;
-           }
-         }
-@@ -834,27 +853,29 @@
-           tp->text = key;
-           tp->text_length = q - key;
-           tp->compression = tp->text_length > 750 ? 0 : -1;
--          info_ptr->num_text++;
-+          nt++;
-           key = NULL;
-         }
-       } while (key && *key);
-+      png_set_text(png_ptr,info_ptr,text,nt);
-     }
-     else {
--      info_ptr->num_text = 0;
-+      png_set_text(png_ptr,info_ptr,text,0);
-     }
-   }
--  info_ptr->text = text;
- 
--  png_convert_from_time_t(&(info_ptr->mod_time), time(NULL));
--  info_ptr->valid |= PNG_INFO_tIME;
-+  png_convert_from_time_t(&_mod_time, time(NULL));
-+  png_set_tIME(png_ptr,info_ptr,&_mod_time);
-+/* dunno how to set validity
-+  info_ptr->valid |= PNG_INFO_tIME; */
- 
-   png_write_end(png_ptr, info_ptr);
-   fflush(fp);   /* just in case we core-dump before finishing... */
- 
-   if (text) {
-     free(text);
--    /* must do this or png_destroy_write_struct() 0.97+ will free text again: 
*/
--    info_ptr->text = (png_textp)NULL;
-+    /* must do this or png_destroy_write_struct() 0.97+ will free text again: 
-+    info_ptr->text = (png_textp)NULL; */
-     if (savecmnt)
-     {
-       free(savecmnt);
-@@ -886,6 +907,14 @@
-   int pass;
-   int gray_to_rgb;
-   size_t commentsize;
-+  /* temp storage vars for libpng15 migration */
-+  int         
_bit_depth,_color_type,_interlace_type,_compression_type,_filter_type,_num_text,_num_palette;
-+  png_uint_32 _width,_height;
-+  png_timep   _mod_time;
-+  double      _gamma;
-+  png_textp   _text;
-+  png_colorp  _palette;
-+  png_color_16p _background;
- 
-   fbasename = BaseName(fname);
- 
-@@ -921,7 +950,7 @@
-     FatalError("malloc failure in LoadPNG");
-   }
- 
--  if (setjmp(png_ptr->jmpbuf)) {
-+  if (setjmp(png_jmpbuf(png_ptr))) {
-     fclose(fp);
-     png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
-     if (!read_anything) {
-@@ -945,8 +974,10 @@
- #endif
-   png_read_info(png_ptr, info_ptr);
- 
--  pinfo->w = pinfo->normw = info_ptr->width;
--  pinfo->h = pinfo->normh = info_ptr->height;
-+  
png_get_IHDR(png_ptr,info_ptr,&_width,&_height,&_bit_depth,&_color_type,&_interlace_type,NULL,NULL);
-+
-+  pinfo->w = pinfo->normw = _width;
-+  pinfo->h = pinfo->normh = _height;
-   if (pinfo->w <= 0 || pinfo->h <= 0) {
-     SetISTR(ISTR_WARNING, "%s:  image dimensions out of range (%dx%d)",
-       fbasename, pinfo->w, pinfo->h);
-@@ -957,9 +988,9 @@
-   pinfo->frmType = F_PNG;
- 
-   sprintf(pinfo->fullInfo, "PNG, %d bit ",
--          info_ptr->bit_depth * info_ptr->channels);
-+          _bit_depth * png_get_channels(png_ptr,info_ptr));
- 
--  switch(info_ptr->color_type) {
-+  switch(_color_type) {
-     case PNG_COLOR_TYPE_PALETTE:
-       strcat(pinfo->fullInfo, "palette color");
-       break;
-@@ -983,15 +1014,17 @@
- 
-   sprintf(pinfo->fullInfo + strlen(pinfo->fullInfo),
-         ", %sinterlaced. (%d bytes)",
--        info_ptr->interlace_type ? "" : "non-", filesize);
-+        _interlace_type ? "" : "non-", filesize);
- 
--  sprintf(pinfo->shrtInfo, "%lux%lu PNG", info_ptr->width, info_ptr->height);
-+  sprintf(pinfo->shrtInfo, "%lux%lu PNG", _width, _height);
- 
--  if (info_ptr->bit_depth < 8)
-+  if (_bit_depth < 8)
-       png_set_packing(png_ptr);
- 
--  if (info_ptr->valid & PNG_INFO_gAMA)
--    png_set_gamma(png_ptr, Display_Gamma, info_ptr->gamma);
-+  if (png_get_valid(png_ptr,info_ptr,PNG_INFO_gAMA)) {
-+    png_get_gAMA(png_ptr,info_ptr,&_gamma);
-+    png_set_gamma(png_ptr, Display_Gamma, _gamma);
-+  }
- /*
-  *else
-  *  png_set_gamma(png_ptr, Display_Gamma, 0.45);
-@@ -1000,7 +1033,7 @@
-   gray_to_rgb = 0;   /* quiet a compiler warning */
- 
-   if (have_imagebg) {
--    if (info_ptr->bit_depth == 16) {
-+    if (_bit_depth == 16) {
-       my_background.red   = imagebgR;
-       my_background.green = imagebgG;
-       my_background.blue  = imagebgB;
-@@ -1013,8 +1046,8 @@
-     }
-     png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN,
-                        0, Display_Gamma);
--    if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
--         (info_ptr->color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
-+    if ((_color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
-+         (_color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
-         (imagebgR != imagebgG || imagebgR != imagebgB))  /* i.e., colored bg 
*/
-     {
-       png_set_gray_to_rgb(png_ptr);
-@@ -1022,8 +1055,9 @@
-       gray_to_rgb = 1;
-     }
-   } else {
--    if (info_ptr->valid & PNG_INFO_bKGD) {
--      png_set_background(png_ptr, &info_ptr->background,
-+    if (png_get_valid(png_ptr,info_ptr,PNG_INFO_bKGD)) {
-+      png_get_bKGD(png_ptr,info_ptr,&_background);
-+      png_set_background(png_ptr, _background,
-                          PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
-     } else {
-       my_background.red = my_background.green = my_background.blue =
-@@ -1033,13 +1067,13 @@
-     }
-   }
- 
--  if (info_ptr->bit_depth == 16)
-+  if (_bit_depth == 16)
-     png_set_strip_16(png_ptr);
- 
--  if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
--      info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
-+  if (_color_type == PNG_COLOR_TYPE_GRAY ||
-+      _color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
-   {
--    if (info_ptr->bit_depth == 1)
-+    if (_bit_depth == 1)
-       pinfo->colType = F_BWDITHER;
-     else
-       pinfo->colType = F_GREYSCALE;
-@@ -1049,9 +1083,11 @@
-   pass=png_set_interlace_handling(png_ptr);
- 
-   png_read_update_info(png_ptr, info_ptr);
-+  /* get HIDR again just in case the info_ptr changed */
-+  
png_get_IHDR(png_ptr,info_ptr,&_width,&_height,&_bit_depth,&_color_type,&_interlace_type,NULL,NULL);
- 
--  if (info_ptr->color_type == PNG_COLOR_TYPE_RGB ||
--     info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
-+  if (_color_type == PNG_COLOR_TYPE_RGB ||
-+     _color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
-   {
-     linesize = 3 * pinfo->w;
-     if (linesize/3 < pinfo->w) {   /* know pinfo->w > 0 (see above) */
-@@ -1065,16 +1101,17 @@
-   } else {
-     linesize = pinfo->w;
-     pinfo->type = PIC8;
--    if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
--       info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
-+    if (_color_type == PNG_COLOR_TYPE_GRAY ||
-+       _color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
-       for (i = 0; i < 256; i++)
-         pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i;
-     } else {
-       pinfo->colType = F_FULLCOLOR;
--      for (i = 0; i < info_ptr->num_palette; i++) {
--        pinfo->r[i] = info_ptr->palette[i].red;
--        pinfo->g[i] = info_ptr->palette[i].green;
--        pinfo->b[i] = info_ptr->palette[i].blue;
-+      png_get_PLTE(png_ptr,info_ptr,&_palette,&_num_palette);
-+      for (i = 0; i < _num_palette; i++) {
-+        pinfo->r[i] = _palette[i].red;
-+        pinfo->g[i] = _palette[i].green;
-+        pinfo->b[i] = _palette[i].blue;
-       }
-     }
-   }
-@@ -1092,7 +1129,7 @@
-     png_error(png_ptr, "can't allocate space for PNG image");
-   }
- 
--  png_start_read_image(png_ptr);
-+  /*png_start_read_image(png_ptr); -- causes a warning and seems to be 
unnecessary */
- 
-   for (i = 0; i < pass; i++) {
-     byte *p = pinfo->pic;
-@@ -1106,22 +1143,23 @@
- 
-   png_read_end(png_ptr, info_ptr);
- 
--  if (info_ptr->num_text > 0) {
-+  png_get_text(png_ptr,info_ptr,&_text,&_num_text);
-+  if (_num_text > 0) {
-     commentsize = 1;
- 
--    for (i = 0; i < info_ptr->num_text; i++)
--      commentsize += strlen(info_ptr->text[i].key) + 1 +
--                     info_ptr->text[i].text_length + 2;
-+    for (i = 0; i < _num_text; i++)
-+      commentsize += strlen(_text[i].key) + 1 +
-+                     _text[i].text_length + 2;
- 
-     if ((pinfo->comment = malloc(commentsize)) == NULL) {
-       png_warning(png_ptr,"can't allocate comment string");
-     }
-     else {
-       pinfo->comment[0] = '\0';
--      for (i = 0; i < info_ptr->num_text; i++) {
--        strcat(pinfo->comment, info_ptr->text[i].key);
-+      for (i = 0; i < _num_text; i++) {
-+        strcat(pinfo->comment, _text[i].key);
-         strcat(pinfo->comment, "::");
--        strcat(pinfo->comment, info_ptr->text[i].text);
-+        strcat(pinfo->comment, _text[i].text);
-         strcat(pinfo->comment, "\n");
-       }
-     }
-@@ -1143,7 +1181,7 @@
- {
-   SetISTR(ISTR_WARNING,"%s:  libpng error: %s", fbasename, message);
- 
--  longjmp(png_ptr->jmpbuf, 1);
-+  longjmp(png_jmpbuf(png_ptr), 1);
- }
- 
- 

Copied: xv/repos/community-x86_64/xv-3.10a-libpng15.patch (from rev 196547, 
xv/trunk/xv-3.10a-libpng15.patch)
===================================================================
--- community-x86_64/xv-3.10a-libpng15.patch                            (rev 0)
+++ community-x86_64/xv-3.10a-libpng15.patch    2016-11-22 17:38:34 UTC (rev 
196548)
@@ -0,0 +1,520 @@
+--- xvinfo.c
++++ xvinfo.c
+@@ -26,7 +26,7 @@
+ #define INFOHIGH 270
+ 
+ /* max length of an Info String */
+-#define ISTRLEN 80
++#define ISTRLEN 256
+ 
+ /* baseline of top line of text */
+ #define TOPBASE (36 + penn_height/2 + 4 + 8 + ASCENT)
+--- xvpng.c
++++ xvpng.c
+@@ -31,6 +31,7 @@
+ 
+ #ifdef HAVE_PNG
+ 
++#include "zlib.h"
+ #include "png.h"
+ 
+ /*** Stuff for PNG Dialog box ***/
+@@ -41,7 +42,9 @@
+ #define COMPRESSION   6     /* default zlib compression level, not max
+                                (Z_BEST_COMPRESSION) */
+ 
+-#define HAVE_tRNS  (info_ptr->valid & PNG_INFO_tRNS)
++/* old
++#define HAVE_tRNS  (info_ptr->valid & PNG_INFO_tRNS) */
++#define HAVE_tRNS  png_get_valid(png_ptr,info_ptr,PNG_INFO_tRNS)
+ 
+ #define DWIDE    86
+ #define DHIGH    104
+@@ -444,6 +447,10 @@
+   byte       *p, *png_line;
+   char        software[256];
+   char       *savecmnt;
++  /* for storing values until all are accumulated, so that the image header 
can be set in full */
++  int         
_bit_depth,_color_type,_interlace_type,_compression_type,_filter_type;
++  png_uint_32 _width,_height;
++  png_time    _mod_time;
+ 
+   if ((png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,
+        png_xv_error, png_xv_warning)) == NULL) {
+@@ -458,7 +465,7 @@
+     FatalError(software);
+   }
+ 
+-  if (setjmp(png_ptr->jmpbuf)) {
++  if (setjmp(png_jmpbuf(png_ptr))) {
+     png_destroy_write_struct(&png_ptr, &info_ptr);
+     return -1;
+   }
+@@ -489,8 +496,8 @@
+     png_set_filter(png_ptr, 0, filter);
+   }
+ 
+-  info_ptr->width = w;
+-  info_ptr->height = h;
++  _width = w;
++  _height = h;
+   if (w <= 0 || h <= 0) {
+     SetISTR(ISTR_WARNING, "%s:  image dimensions out of range (%dx%d)",
+       fbasename, w, h);
+@@ -498,7 +505,7 @@
+     return -1;
+   }
+ 
+-  info_ptr->interlace_type = interCB.val ? 1 : 0;
++  _interlace_type = interCB.val ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE;
+ 
+   linesize = 0;   /* quiet a compiler warning */
+ 
+@@ -542,40 +549,44 @@
+         png_destroy_write_struct(&png_ptr, &info_ptr);
+         return -1;
+       }
+-      info_ptr->color_type = PNG_COLOR_TYPE_RGB;
+-      info_ptr->bit_depth = 8;
++      _color_type = PNG_COLOR_TYPE_RGB;
++      _bit_depth = 8;
+     } else /* ptype == PIC8 */ {
+       linesize = w;
+-      info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
++      _color_type = PNG_COLOR_TYPE_PALETTE;
+       if (numuniqcols <= 2)
+-        info_ptr->bit_depth = 1;
++        _bit_depth = 1;
+       else
+       if (numuniqcols <= 4)
+-        info_ptr->bit_depth = 2;
++        _bit_depth = 2;
+       else
+       if (numuniqcols <= 16)
+-        info_ptr->bit_depth = 4;
++        _bit_depth = 4;
+       else
+-        info_ptr->bit_depth = 8;
++        _bit_depth = 8;
+ 
+       for (i = 0; i < numuniqcols; i++) {
+         palette[i].red   = r1[i];
+         palette[i].green = g1[i];
+         palette[i].blue  = b1[i];
+       }
+-      info_ptr->num_palette = numuniqcols;
+-      info_ptr->palette = palette;
++/* cannot find a setter for this, unsure if it is necessary anymore...
+       info_ptr->valid |= PNG_INFO_PLTE;
++*/
++      /* set the header just in case it's needed */
++      png_set_IHDR(png_ptr,info_ptr,_width,_height,_bit_depth,_color_type,
++        _interlace_type,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
++      png_set_PLTE(png_ptr,info_ptr,palette,numuniqcols);
+     }
+   }
+ 
+   else if (colorType == F_GREYSCALE || colorType == F_BWDITHER) {
+-    info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
++    _color_type = PNG_COLOR_TYPE_GRAY;
+     if (colorType == F_BWDITHER) {
+       /* shouldn't happen */
+       if (ptype == PIC24) FatalError("PIC24 and B/W Stipple in WritePNG()");
+ 
+-      info_ptr->bit_depth = 1;
++      _bit_depth = 1;
+       if (MONO(r1[0], g1[0], b1[0]) > MONO(r1[1], g1[1], b1[1])) {
+         remap[0] = 1;
+         remap[1] = 0;
+@@ -595,7 +606,7 @@
+           png_destroy_write_struct(&png_ptr, &info_ptr);
+           return -1;
+         }
+-        info_ptr->bit_depth = 8;
++        _bit_depth = 8;
+       }
+       else /* ptype == PIC8 */ {
+         int low_precision;
+@@ -617,7 +628,7 @@
+         for (; i < 256; i++)
+           remap[i]=0;  /* shouldn't be necessary, but... */
+ 
+-        info_ptr->bit_depth = 8;
++        _bit_depth = 8;
+ 
+         /* Note that this fails most of the time because of gamma */
+            /* (and that would be a bug:  GRR FIXME) */
+@@ -636,7 +647,7 @@
+           for (i = 0; i < numuniqcols; i++) {
+             remap[i] &= 0xf;
+           }
+-          info_ptr->bit_depth = 4;
++          _bit_depth = 4;
+ 
+           /* try to adjust to 2-bit precision grayscale */
+ 
+@@ -652,7 +663,7 @@
+           for (i = 0; i < numuniqcols; i++) {
+             remap[i] &= 3;
+           }
+-          info_ptr->bit_depth = 2;
++          _bit_depth = 2;
+ 
+           /* try to adjust to 1-bit precision grayscale */
+ 
+@@ -668,7 +679,7 @@
+           for (i = 0; i < numuniqcols; i++) {
+             remap[i] &= 1;
+           }
+-          info_ptr->bit_depth = 1;
++          _bit_depth = 1;
+         }
+       }
+     }
+@@ -677,6 +688,9 @@
+   else
+     png_error(png_ptr, "Unknown colorstyle in WritePNG");
+ 
++  png_set_IHDR(png_ptr,info_ptr,_width,_height,_bit_depth,_color_type,
++    _interlace_type,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
++
+   if ((text = (png_textp)malloc(sizeof(png_text)))) {
+     sprintf(software, "XV %s", REVDATE);
+ 
+@@ -685,20 +699,22 @@
+     text->text = software;
+     text->text_length = strlen(text->text);
+ 
+-    info_ptr->max_text = 1;
+-    info_ptr->num_text = 1;
+-    info_ptr->text = text;
++/* max_text seems to be internal only now, do not set
++    info_ptr->max_text = 1; */
++    png_set_text(png_ptr,info_ptr,text,1);
+   }
+ 
+   Display_Gamma = gDial.val;  /* Save the current gamma for loading */
+ 
+ // GRR FIXME:  add .Xdefaults option to omit writing gamma (size, cumulative 
errors when editing)--alternatively, modify save box to include "omit" checkbox
+-  info_ptr->gamma = 1.0/gDial.val;
+-  info_ptr->valid |= PNG_INFO_gAMA;
++  png_set_gAMA(png_ptr,info_ptr,1.0/gDial.val);
++/* doesn't seem to be a way to set valid directly anymore, unnecessary 
maybe.. 
++  info_ptr->valid |= PNG_INFO_gAMA; */
+ 
++/* might need to be png_write_info_before_PLTE() ... */
+   png_write_info(png_ptr, info_ptr);
+ 
+-  if (info_ptr->bit_depth < 8)
++  if (_bit_depth < 8)
+     png_set_packing(png_ptr);
+ 
+   pass=png_set_interlace_handling(png_ptr);
+@@ -711,13 +727,13 @@
+     int j;
+     p = pic;
+     for (j = 0; j < h; ++j) {
+-      if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) {
++      if (_color_type == PNG_COLOR_TYPE_GRAY) {
+         int k;
+         for (k = 0; k < w; ++k)
+           png_line[k] = ptype==PIC24 ? MONO(p[k*3], p[k*3+1], p[k*3+2]) :
+                                        remap[pc2nc[p[k]]];
+         png_write_row(png_ptr, png_line);
+-      } else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) {
++      } else if (_color_type == PNG_COLOR_TYPE_PALETTE) {
+         int k;
+         for (k = 0; k < w; ++k)
+           png_line[k] = pc2nc[p[k]];
+@@ -739,28 +755,31 @@
+         (savecmnt = (char *)malloc((strlen(picComments) + 1)*sizeof(char)))) {
+       png_textp tp;
+       char *comment, *key;
++      int nt;
++      int mt;
+ 
+       strcpy(savecmnt, picComments);
+       key = savecmnt;
++      png_get_text(png_ptr,info_ptr,&tp,&mt); /* to get 'max_text' */
+       tp = text;
+-      info_ptr->num_text = 0;
++      nt = 0;      
+ 
+       comment = strchr(key, ':');
+ 
+       do  {
+         /* Allocate a larger structure for comments if necessary */
+-        if (info_ptr->num_text >= info_ptr->max_text)
++        if (nt >= mt)
+         {
+           if ((tp =
+-              realloc(text, (info_ptr->num_text + 2)*sizeof(png_text))) == 
NULL)
++              realloc(text, (nt + 2)*sizeof(png_text))) == NULL)
+           {
+             break;
+           }
+           else
+           {
+             text = tp;
+-            tp = &text[info_ptr->num_text];
+-            info_ptr->max_text += 2;
++            tp = &text[nt];
++            mt += 2;
+           }
+         }
+ 
+@@ -810,7 +829,7 @@
+             }
+ 
+             tp->compression = tp->text_length > 640 ? 0 : -1;
+-            info_ptr->num_text++;
++            nt++;
+             tp++;
+           }
+         }
+@@ -834,27 +853,29 @@
+           tp->text = key;
+           tp->text_length = q - key;
+           tp->compression = tp->text_length > 750 ? 0 : -1;
+-          info_ptr->num_text++;
++          nt++;
+           key = NULL;
+         }
+       } while (key && *key);
++      png_set_text(png_ptr,info_ptr,text,nt);
+     }
+     else {
+-      info_ptr->num_text = 0;
++      png_set_text(png_ptr,info_ptr,text,0);
+     }
+   }
+-  info_ptr->text = text;
+ 
+-  png_convert_from_time_t(&(info_ptr->mod_time), time(NULL));
+-  info_ptr->valid |= PNG_INFO_tIME;
++  png_convert_from_time_t(&_mod_time, time(NULL));
++  png_set_tIME(png_ptr,info_ptr,&_mod_time);
++/* dunno how to set validity
++  info_ptr->valid |= PNG_INFO_tIME; */
+ 
+   png_write_end(png_ptr, info_ptr);
+   fflush(fp);   /* just in case we core-dump before finishing... */
+ 
+   if (text) {
+     free(text);
+-    /* must do this or png_destroy_write_struct() 0.97+ will free text again: 
*/
+-    info_ptr->text = (png_textp)NULL;
++    /* must do this or png_destroy_write_struct() 0.97+ will free text again: 
++    info_ptr->text = (png_textp)NULL; */
+     if (savecmnt)
+     {
+       free(savecmnt);
+@@ -886,6 +907,14 @@
+   int pass;
+   int gray_to_rgb;
+   size_t commentsize;
++  /* temp storage vars for libpng15 migration */
++  int         
_bit_depth,_color_type,_interlace_type,_compression_type,_filter_type,_num_text,_num_palette;
++  png_uint_32 _width,_height;
++  png_timep   _mod_time;
++  double      _gamma;
++  png_textp   _text;
++  png_colorp  _palette;
++  png_color_16p _background;
+ 
+   fbasename = BaseName(fname);
+ 
+@@ -921,7 +950,7 @@
+     FatalError("malloc failure in LoadPNG");
+   }
+ 
+-  if (setjmp(png_ptr->jmpbuf)) {
++  if (setjmp(png_jmpbuf(png_ptr))) {
+     fclose(fp);
+     png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
+     if (!read_anything) {
+@@ -945,8 +974,10 @@
+ #endif
+   png_read_info(png_ptr, info_ptr);
+ 
+-  pinfo->w = pinfo->normw = info_ptr->width;
+-  pinfo->h = pinfo->normh = info_ptr->height;
++  
png_get_IHDR(png_ptr,info_ptr,&_width,&_height,&_bit_depth,&_color_type,&_interlace_type,NULL,NULL);
++
++  pinfo->w = pinfo->normw = _width;
++  pinfo->h = pinfo->normh = _height;
+   if (pinfo->w <= 0 || pinfo->h <= 0) {
+     SetISTR(ISTR_WARNING, "%s:  image dimensions out of range (%dx%d)",
+       fbasename, pinfo->w, pinfo->h);
+@@ -957,9 +988,9 @@
+   pinfo->frmType = F_PNG;
+ 
+   sprintf(pinfo->fullInfo, "PNG, %d bit ",
+-          info_ptr->bit_depth * info_ptr->channels);
++          _bit_depth * png_get_channels(png_ptr,info_ptr));
+ 
+-  switch(info_ptr->color_type) {
++  switch(_color_type) {
+     case PNG_COLOR_TYPE_PALETTE:
+       strcat(pinfo->fullInfo, "palette color");
+       break;
+@@ -983,15 +1014,17 @@
+ 
+   sprintf(pinfo->fullInfo + strlen(pinfo->fullInfo),
+         ", %sinterlaced. (%d bytes)",
+-        info_ptr->interlace_type ? "" : "non-", filesize);
++        _interlace_type ? "" : "non-", filesize);
+ 
+-  sprintf(pinfo->shrtInfo, "%lux%lu PNG", info_ptr->width, info_ptr->height);
++  sprintf(pinfo->shrtInfo, "%lux%lu PNG", _width, _height);
+ 
+-  if (info_ptr->bit_depth < 8)
++  if (_bit_depth < 8)
+       png_set_packing(png_ptr);
+ 
+-  if (info_ptr->valid & PNG_INFO_gAMA)
+-    png_set_gamma(png_ptr, Display_Gamma, info_ptr->gamma);
++  if (png_get_valid(png_ptr,info_ptr,PNG_INFO_gAMA)) {
++    png_get_gAMA(png_ptr,info_ptr,&_gamma);
++    png_set_gamma(png_ptr, Display_Gamma, _gamma);
++  }
+ /*
+  *else
+  *  png_set_gamma(png_ptr, Display_Gamma, 0.45);
+@@ -1000,7 +1033,7 @@
+   gray_to_rgb = 0;   /* quiet a compiler warning */
+ 
+   if (have_imagebg) {
+-    if (info_ptr->bit_depth == 16) {
++    if (_bit_depth == 16) {
+       my_background.red   = imagebgR;
+       my_background.green = imagebgG;
+       my_background.blue  = imagebgB;
+@@ -1013,8 +1046,8 @@
+     }
+     png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN,
+                        0, Display_Gamma);
+-    if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
+-         (info_ptr->color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
++    if ((_color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
++         (_color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
+         (imagebgR != imagebgG || imagebgR != imagebgB))  /* i.e., colored bg 
*/
+     {
+       png_set_gray_to_rgb(png_ptr);
+@@ -1022,8 +1055,9 @@
+       gray_to_rgb = 1;
+     }
+   } else {
+-    if (info_ptr->valid & PNG_INFO_bKGD) {
+-      png_set_background(png_ptr, &info_ptr->background,
++    if (png_get_valid(png_ptr,info_ptr,PNG_INFO_bKGD)) {
++      png_get_bKGD(png_ptr,info_ptr,&_background);
++      png_set_background(png_ptr, _background,
+                          PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
+     } else {
+       my_background.red = my_background.green = my_background.blue =
+@@ -1033,13 +1067,13 @@
+     }
+   }
+ 
+-  if (info_ptr->bit_depth == 16)
++  if (_bit_depth == 16)
+     png_set_strip_16(png_ptr);
+ 
+-  if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
+-      info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
++  if (_color_type == PNG_COLOR_TYPE_GRAY ||
++      _color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+   {
+-    if (info_ptr->bit_depth == 1)
++    if (_bit_depth == 1)
+       pinfo->colType = F_BWDITHER;
+     else
+       pinfo->colType = F_GREYSCALE;
+@@ -1049,9 +1083,11 @@
+   pass=png_set_interlace_handling(png_ptr);
+ 
+   png_read_update_info(png_ptr, info_ptr);
++  /* get HIDR again just in case the info_ptr changed */
++  
png_get_IHDR(png_ptr,info_ptr,&_width,&_height,&_bit_depth,&_color_type,&_interlace_type,NULL,NULL);
+ 
+-  if (info_ptr->color_type == PNG_COLOR_TYPE_RGB ||
+-     info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
++  if (_color_type == PNG_COLOR_TYPE_RGB ||
++     _color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
+   {
+     linesize = 3 * pinfo->w;
+     if (linesize/3 < pinfo->w) {   /* know pinfo->w > 0 (see above) */
+@@ -1065,16 +1101,17 @@
+   } else {
+     linesize = pinfo->w;
+     pinfo->type = PIC8;
+-    if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
+-       info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
++    if (_color_type == PNG_COLOR_TYPE_GRAY ||
++       _color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
+       for (i = 0; i < 256; i++)
+         pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i;
+     } else {
+       pinfo->colType = F_FULLCOLOR;
+-      for (i = 0; i < info_ptr->num_palette; i++) {
+-        pinfo->r[i] = info_ptr->palette[i].red;
+-        pinfo->g[i] = info_ptr->palette[i].green;
+-        pinfo->b[i] = info_ptr->palette[i].blue;
++      png_get_PLTE(png_ptr,info_ptr,&_palette,&_num_palette);
++      for (i = 0; i < _num_palette; i++) {
++        pinfo->r[i] = _palette[i].red;
++        pinfo->g[i] = _palette[i].green;
++        pinfo->b[i] = _palette[i].blue;
+       }
+     }
+   }
+@@ -1092,7 +1129,7 @@
+     png_error(png_ptr, "can't allocate space for PNG image");
+   }
+ 
+-  png_start_read_image(png_ptr);
++  /*png_start_read_image(png_ptr); -- causes a warning and seems to be 
unnecessary */
+ 
+   for (i = 0; i < pass; i++) {
+     byte *p = pinfo->pic;
+@@ -1106,22 +1143,23 @@
+ 
+   png_read_end(png_ptr, info_ptr);
+ 
+-  if (info_ptr->num_text > 0) {
++  png_get_text(png_ptr,info_ptr,&_text,&_num_text);
++  if (_num_text > 0) {
+     commentsize = 1;
+ 
+-    for (i = 0; i < info_ptr->num_text; i++)
+-      commentsize += strlen(info_ptr->text[i].key) + 1 +
+-                     info_ptr->text[i].text_length + 2;
++    for (i = 0; i < _num_text; i++)
++      commentsize += strlen(_text[i].key) + 1 +
++                     _text[i].text_length + 2;
+ 
+     if ((pinfo->comment = malloc(commentsize)) == NULL) {
+       png_warning(png_ptr,"can't allocate comment string");
+     }
+     else {
+       pinfo->comment[0] = '\0';
+-      for (i = 0; i < info_ptr->num_text; i++) {
+-        strcat(pinfo->comment, info_ptr->text[i].key);
++      for (i = 0; i < _num_text; i++) {
++        strcat(pinfo->comment, _text[i].key);
+         strcat(pinfo->comment, "::");
+-        strcat(pinfo->comment, info_ptr->text[i].text);
++        strcat(pinfo->comment, _text[i].text);
+         strcat(pinfo->comment, "\n");
+       }
+     }
+@@ -1143,7 +1181,7 @@
+ {
+   SetISTR(ISTR_WARNING,"%s:  libpng error: %s", fbasename, message);
+ 
+-  longjmp(png_ptr->jmpbuf, 1);
++  longjmp(png_jmpbuf(png_ptr), 1);
+ }
+ 
+ 

Reply via email to