Re: HEADSUP: zlib updated [svn commit: r205471 - in head: . lib/libz lib/libz/contrib lib/libz/doc sys/sys]

From: Xin LI <delphij_at_delphij.net>
Date: Fri, 02 Apr 2010 14:45:55 -0700
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

On 2010/04/02 14:32, Garrett Cooper wrote:
> 2010/4/2 Mark Linimon <linimon_at_lonesome.com>:
>> On Thu, Apr 01, 2010 at 03:30:47PM +0200, Dag-Erling Smørgrav wrote:
>>> And yes, I *will* keep harping on this until people Get It.
>>
>> You're harping at the wrong people.  Complain to the application authors,
>> not to the poor slobs trying to maintain the ports collection.
>>
>> There's a lot of crap code out there on the internet.  If we want to
>> insist that all the application authors both a) write good code and that
>> b) understands how FreeBSD does things, well, we can do that, but it's
>> not going to have much effect.
>>
>> Probably 75%+ of the application authors neither know nor care that
>> their code is being run on anything other than Linux.  In extreme
>> cases we've enountered authors who outright refuse to accept our
>> patches, either due to philosophical disagreement or just due to the
>> xtra hassle.
> 
> The problem actually was most likely the fact that the functionality
> wasn't properly documented or that people didn't thoroughly read or
> understand the documentation before implementing the feature. If
> there's anything that I've learned from cleaning up messes in the past
> (to be fair, some which I've created as well), it's that a lot of
> incorrect logic is created by misunderstanding things and/or making
> false assumptions on how things should work.

To be fair, the usage of _LARGEFILE64_SOURCE IS documented, people just
don't pay enough attention.  GNU headers choose to use #ifdef
_LARGEFILE64_SOURCE instead of #if _LARGEFILE64_SOURCE == 1, to be
pedantic, the latter form is correct. [1]

> But yes, zlib is buggy w.r.t. the item Xin Li mentioned and needed to
> be fixed. Too many folks try to resolve application porting issues by
> using inline:

If we use Large File Summit's documentation, it's not at all zlib's issue.

> #ifndef SOME_LARGELY_USED_CONSTANT_INTRODUCED_IN_VERSION_B
> /* #define a constant or typedef a feature */
> #endif
> 
> This generally quasi-works in versions A (assuming the application
> runs and the developer upstream did their testing on version A's
> software... heh) or version C (typically a Linux) developer decided
> that they wanted to change the definition and dashed the consequences
> about backwards compatibility in their code. kernel.org sources are
> riddled with this kind of `decision making'.

Applications aiming to be portable should not define _LARGEFILE64_SOURCE
at all, on any *BSD platforms.

And, if they really want to do that, they should either use
- -D_LARGEFILE64_SOURCE or #define _LARGEFILE64_SOURCE 1 in the first place.

No, it's not zlib's fault.  We may workaround the application bug on
FreeBSD by removing all these checks in zlib.h and zconf.h, as they
doesn't affect FreeBSD's base system's headers at all, HOWEVER, it's
still the application's bug and should be fixed upstream.

[1] http://www.unix.org/version2/whatsnew/lfs20mar.html

Cheers,
- -- 
Xin LI <delphij_at_delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!	       Live free or die
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iQEcBAEBAgAGBQJLtmWTAAoJEATO+BI/yjfBrwIH/Ap0FEtDRJ02ZKnTuUfjj25C
c9n3QGH+26mhrzO1KP7pVyvW28zQCgH7RgOAdyXz6llWNbonSAg4/yN/80tWDk9w
juIb/PfLxs8us/PbmUqkp0ZQATaUhmQO4Jw45LpBD0X7PYce7VhvednjWcFtNeLP
v3f5MZ9inbDUPF6Bb7ErwJ2BGnFG2FGekCnKwgIAPN0DC61BrJ5PFVQm5lP1YVs3
WOJS3wU39xanzy87ZEv5Gh8SCtIgxcUa4A5G/+a1pStVXOcqL+DOd5nZQqCjlvPt
r5+dLoFFpQNJAEeQwIXlgWQkjYfdCHTqNsPs4mGWEaEn8wMSKdknyuA/5X+R1Kk=
=Uqae
-----END PGP SIGNATURE-----
Received on Fri Apr 02 2010 - 19:46:10 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:02 UTC