AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
December 2008

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems



Valid HTML 4.01!



Thread

2008.12.18 04:56 "tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.18 05:13 "Re: tiffvers.h - TIFFLIB_RELEASE macro addition", by Lee Howard
2008.12.18 05:31 "Re: tiffvers.h - TIFFLIB_RELEASE macro addition", by Bob Friesenhahn
2008.12.18 06:00 "Re: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.18 16:16 "Re: tiffvers.h - TIFFLIB_RELEASE macro addition", by Bob Friesenhahn
2008.12.18 18:59 "Re: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.18 19:04 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Lee Howard
2008.12.18 19:18 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Edward Lam
2008.12.18 19:20 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.18 19:28 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Lee Howard
2008.12.18 19:35 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.18 20:11 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.18 20:42 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Bob Friesenhahn
2008.12.18 21:56 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.18 22:05 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Bob Friesenhahn
2008.12.19 02:26 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.19 03:12 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Bob Friesenhahn
2008.12.21 16:03 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Jay Berkenbilt
2008.12.21 16:10 "Re: 3.9.0 release", by Jay Berkenbilt
2008.12.21 15:35 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Jay Berkenbilt
2008.12.21 15:57 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Jay Berkenbilt
2008.12.21 16:14 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Frank Warmerdam
2008.12.21 16:44 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Jay Berkenbilt

2008.12.21 15:35 "Re: 3.9.0 release, Was: tiffvers.h - TIFFLIB_RELEASE macro addition", by Jay Berkenbilt

Bob Friesenhahn <bfriesen@simple.dallas.tx.us> wrote:

> On Thu, 18 Dec 2008, Lee Howard wrote:
>>
>> I *do* feel like those who had some complaint against releasing 3.9.0
>> immediately need to step forward with appropriate code changes.

You make a good point, and I should have come forward earlier.  I made
the complaints, and I will offer the appropriate code changes.

>> Certainly they should be afforded time to develop those patches, but my
>> impression is that those patches aren't coming ever.  So they either
>> need to do so, or we need to move on without those changes.

Hopefully the citations I'll make here will help.

The exact change is the addition of these two fields:

	uint16 SubsamplingHor;                  /* subsampling factors */
	uint16 SubsamplingVer;

into _TIFFRGBAImage as defined in tiffio.h.

I believe an attempt was made to fix this in version 1.79, but that
fix was checked into the trunk rather than into the 3.9 branch.  I am
now going through the code to figure out exactly what was fixed.  I
will backport the changes to the 3.9 branch and post through the bug
tracking system.  I'll then post the details to the list.

I'm not aware of the specific change that was made, so I can't
guarantee that my patch won't break anything, but I'll at least do my
usual testing that I do as debian maintainer.

Speaking as the debian tiff maintainer and the person who pointed out
the specific problem with 3.9.0 breaking ABI compatibility, I should
point to the original posts.  First, I posted details about the exact
nature of the breakage.  Andrey asked Joris, who had made the change,
to repair it.  He partially repaired it but left a little bit of ABI
breakage.  Also, his fix was made on the trunk, not on the 3.9
branch.  I probably should have been more forthcoming with fixes at
the times of these earlier posts, but like everyone else here, I got
distracted by other activities.  Either way, I'm very appreciative of
the fact that the libtiff maintainers take these issues seriously.

Here are some relevant posts:

Original thread starts here:

 - http://www.asmail.be/msg0054605258.html

Later discussion can be found here:

 - http://www.asmail.be/msg0055468514.html

>> It's just my opinion, of course, that some release is better than no
>> release.
>
> The situation is that conservative OS distributions like Debian won't
> pick up a new libtiff for about ten years if it is not ABI compatible
> with what they are already using.  This is a problem for 3.9.X since
> it is supposed to be our avenue to get out critical fixes for older
> distributions well into the future.
>
> Of course the same objection applies to libtiff 4.0 but libtiff 4.0
> offers important new features so such objections may be ignored.  In
> fact, since ABI compatibility is impossible, Debian maintainers are
> likely to find a way to offer it to their users without upsetting
> their applecart.

To be clear, the issue is not that debian won't pick up a version of
libtiff with an ABI change.  Debian takes ABI changes all the time.
The issue is that if you change the ABI, you must also change the
shared library soname.  There are no objections about ABI changes in
4.0.0 because there is a new soname.

If you change the ABI and don't change the shared library soname, it
is a bug.  This is because existing applications that compiled against
the old ABI will attempt to run with the new shared library, and they
will fail.  As evidence, recall the accidental ABI change introduced
in version 3.6.1.  This broke dozens of applications in debian and
forced us to update the soname from 3 to 4, making debian inconsistent
with upstream in this regard.  Other distributions including certainly
cygwin, and I think also FreeBSD and MacOS, though I'm not sure about
those two, also deviated from upstream.  The libtiff developers are
aware of this and, to bring everyone back in sync, have set the soname
version to 5 for version 4.0.0.

I hope that clarifies things.

I'll try to put a patch together this morning.

--Jay