POV-Ray : Newsgroups : povray.general : povray uses internal libpng function -- broken with new png library : Re: povray uses internal libpng function -- broken with new png library Server Time
1 Aug 2024 02:14:28 EDT (-0400)
  Re: povray uses internal libpng function -- broken with new png library  
From: Thomas Klausner
Date: 6 May 2006 07:59:24
Message: <445c8f9c@news.povray.org>
Nicolas Calimet <pov### [at] freefr> wrote:
> > povray-3.6.1, the Unix version, uses the png_write_finish_row()
> > function, which is a private (internal) function of the png library
> > and not provided by the current png version (1.2.10).

>         You don't need a patch for now.  Rather, just force POV-Ray to
> build and link with the libraries provided in the source archive, using
> the  --disable-lib-checks  configure option.  Those libs are the versions
> that were used along the POV-Ray development.

Well, that's not really a solution. pkgsrc makes all packages
use one png package instead of tens of different internal copies
so that e.g. vulnerabilities or platform fixes have to be applied
only in one place.

>         Anyway, thanks for the report.  If possible, POV should not use any
> function that is supposed to be internal to the library (if those were
> really "private", POV could not use them anyway: somehow the lib itself
> was not cleanly designed).

If you could come up with a patch for that, I'd appreciate it.
For now, I'll probably use the following patch:
--- source/png_pov.cpp.orig     2004-08-02 23:11:37.000000000 +0000
+++ source/png_pov.cpp
@@ -107,9 +107,6 @@ extern "C"
        void png_pov_write_data(png_structp, png_bytep, png_size_t);
        void png_pov_flush_data(png_structp);

-       // This is an internal function for libpng
-       void png_write_finish_row(png_structp);
-

        /***********************************************************************
******
        *
@@ -782,7 +779,6 @@ PNG_Image::~PNG_Image()
       {
          // finished prematurely - trick into thinking done
          png_ptr->num_rows = png_ptr->row_number;
-         png_write_finish_row(png_ptr);
       }

 #ifdef POV_COMMENTS // temporarily skip comment writing code

(whitespace is probably broken in this patch, since I cut'n'pasted it)

Cheers,
 Thomas


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.