libpng-1.2.41beta10 is available

View: New views
2 Messages — Rating Filter:   Alert me  

libpng-1.2.41beta10 is available

by Glenn Randers-Pehrson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

libpng-1.2.41beta10 is available from
ftp://ftp.simplesystems.org/pub/png-group/src
and from
http://libpng.sf.net/index.html

I finally figured out how to implement iTXt in an ABI-compatible
manner.

version 1.2.41beta10 [November 1, 2009]
  Enabled iTXt support by default. To ensure binary compatibility with
    previous versions, the "lang" and "lang_key" members will be assumed
    to be omitted from previous versions unless the current libpng
    version was built with PNG_iTXt_SUPPORTED (which is otherwise no
    longer necessary to gain iTXt support), as a signal that the user has
    been building previous versions with PNG_iTXt_SUPPORTED as well.

I warned you it would be ugly.  But for anyone who is not paying
attention and simply builds libraries without defining anything,
it's safe.  For anyone who has been building all along with
PNG_iTXt_SUPPORTED, it's safe so long as they continue
to define it.

It is possible to make a mistake, and either stop defining
PNG_iTXt_SUPPORTED or to start defining it from one
release to another, but that's always been the case.

This scheme will need a little more work when libpng-1.2.42
comes out, so as not to reject iTXt data from a libpng-1.2.41-built
application.  I know how to do that when the time comes.

Glenn

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
png-mng-implement mailing list
png-mng-implement@...
https://lists.sourceforge.net/lists/listinfo/png-mng-implement

Parent Message unknown Re: libpng-1.2.41beta10 is available

by glennrp-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Oops, I forgot about this:

version 1.2.41beta05 [October 17, 2009]
  Revised pngconf.h to make it easier to enable iTXt support.  From libpng
    version 1.2.9 through 1.2.40, defining PNG_iTXt_SUPPORTED did not work
    as expected.

It means that people who thought they were building earlier versions
with iTXt support really weren't, so they were really using the old
png_textp structure.

That means that my trick with PNG_iTXt_SUPPORTED will not work.  Therefore
we'll need to use the user's libpng version number instead and simply
assume that if there is a library mismatch, and the user's version
is 1.2.40 or earlier, the old png_textp is used by the application
and the "lang" and "lang_key" members are not present and should not
be referenced in pngset.c.  I guess this approach will be simpler from
the user's perspective but a little more complex from the libpng
maintainer's perspective.

Glenn

----- Original Message -----
From: "Glenn Randers-Pehrson" <glennrp@...>
To: "PNG/MNG implementation discussion list" <png-mng-implement@...>
Sent: Sunday, November 1, 2009 1:02:40 AM GMT -05:00 US/Canada Eastern
Subject: [png-mng-implement] libpng-1.2.41beta10 is available

libpng-1.2.41beta10 is available from
ftp://ftp.simplesystems.org/pub/png-group/src
and from
http://libpng.sf.net/index.html

I finally figured out how to implement iTXt in an ABI-compatible
manner.

version 1.2.41beta10 [November 1, 2009]
  Enabled iTXt support by default. To ensure binary compatibility with
    previous versions, the "lang" and "lang_key" members will be assumed
    to be omitted from previous versions unless the current libpng
    version was built with PNG_iTXt_SUPPORTED (which is otherwise no
    longer necessary to gain iTXt support), as a signal that the user has
    been building previous versions with PNG_iTXt_SUPPORTED as well.

I warned you it would be ugly.  But for anyone who is not paying
attention and simply builds libraries without defining anything,
it's safe.  For anyone who has been building all along with
PNG_iTXt_SUPPORTED, it's safe so long as they continue
to define it.

It is possible to make a mistake, and either stop defining
PNG_iTXt_SUPPORTED or to start defining it from one
release to another, but that's always been the case.

This scheme will need a little more work when libpng-1.2.42
comes out, so as not to reject iTXt data from a libpng-1.2.41-built
application.  I know how to do that when the time comes.

Glenn

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
png-mng-implement mailing list
png-mng-implement@...
https://lists.sourceforge.net/lists/listinfo/png-mng-implement

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
png-mng-implement mailing list
png-mng-implement@...
https://lists.sourceforge.net/lists/listinfo/png-mng-implement