Return-Path: <tiff-bounces@lists.osgeo.org>
Received: from mailgate107.isp.belgacom.be ([195.238.20.39])
          by mailfep004.skynet.be
          (InterMail vM.8.04.03.28.4 201-2389-100-182-103-20180124)
          with ESMTP
          id <20210110165028.GMKH7411.mailfep004.skynet.be@mailgate107.isp.belgacom.be>
          for <chris.lindelaan@skynet.be>; Sun, 10 Jan 2021 17:50:28 +0100
Authentication-Results: mx101.skynet.be; dkim=none (message not signed) header.i=none; spf=None smtp.pra=tiff-bounces@lists.osgeo.org; spf=Pass smtp.mailfrom=tiff-bounces@lists.osgeo.org; spf=Pass smtp.helo=postmaster@lists.osgeo.org
Received-SPF: None (mx101.skynet.be: no sender authenticity
  information available from domain of
  tiff-bounces@lists.osgeo.org) identity=pra;
  client-ip=140.211.15.3; receiver=mx101.skynet.be;
  envelope-from="tiff-bounces@lists.osgeo.org";
  x-sender="tiff-bounces@lists.osgeo.org";
  x-conformance=sidf_compatible
Received-SPF: Pass (mx101.skynet.be: domain of
  tiff-bounces@lists.osgeo.org designates 140.211.15.3 as
  permitted sender) identity=mailfrom; client-ip=140.211.15.3;
  receiver=mx101.skynet.be;
  envelope-from="tiff-bounces@lists.osgeo.org";
  x-sender="tiff-bounces@lists.osgeo.org";
  x-conformance=sidf_compatible; x-record-type="v=spf1";
  x-record-text="v=spf1 mx a:mail.osgeo.org a:lists.osgeo.org
  a:mail.osgeo.osuosl.org a:tracsvn.osgeo.osuosl.org -all"
Received-SPF: Pass (mx101.skynet.be: domain of
  postmaster@lists.osgeo.org designates 140.211.15.3 as
  permitted sender) identity=helo; client-ip=140.211.15.3;
  receiver=mx101.skynet.be;
  envelope-from="tiff-bounces@lists.osgeo.org";
  x-sender="postmaster@lists.osgeo.org";
  x-conformance=sidf_compatible; x-record-type="v=spf1";
  x-record-text="v=spf1 mx a:mail.osgeo.org a:lists.osgeo.org
  a:mail.osgeo.osuosl.org a:tracsvn.osgeo.osuosl.org -all"
X-Ironport-Dmarc-Check-Result: validskip
IronPort-SDR: 5M6CbmzStDqkC2AR9hsJ9s/ZZu2KmzxYFelU7lZFHMYGBMMXbe981YeFhTOMEE13iRMaaMStC/
 zgsTgDzUl7fCiKT3SQl4bUDmEUZT0uqRhWMBErU4bG4+e1ahKpEgNStIVHWQ+4Wh/FKxGyvkk2
 w8/zmmm3mTkD7cxhvUzYXAj0gDDSyH28IBsZAp8pozeJcQ1knTHG2e9ZeVrzeO6f3te62mWSm9
 JFyDndjpX34wrhL7jq7VZWB5wsJM82wXTMMC/MClXwOqT2sXbk2yt4xoSeSiyH9Gvv8aBPpPoz
 sgY9/hg+OHwqFymqqpYy6mVu
IronPort-PHdr: =?us-ascii?q?9a23=3AUwLQyR2is4095WtXsmDT+DRfVm0co7zxezQtwd?=
 =?us-ascii?q?8ZsesXKPTxwZ3uMQTl6Ol3ixeRBMOHsq0C0baH+P68EUU7or+5+EgYd5JNUx?=
 =?us-ascii?q?JXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQ?=
 =?us-ascii?q?viPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCe/bL9oMhm7ogHcusYXjIZtN6081g?=
 =?us-ascii?q?bHrnxUdupM2GhmP0iTnxHy5sex+J5s7SFdsO8/+sBDTKv3Yb02QaRXAzo6PW?=
 =?us-ascii?q?814tbrtQTYQguU+nQcSGQWnQFWDAXD8Rr3Q43+sir+tup6xSmaIcj7Rq06VD?=
 =?us-ascii?q?i+86tmTgLjhTwZPDAl7m7Yls1wjLpaoB2/oRx/35XUa5yROPZnY6/RYc8WSW?=
 =?us-ascii?q?9HU81MVSJOH5m8YpMPAeQCMulWoYvyqUUArRW5GAesHOHixD1VinL4waE1z/?=
 =?us-ascii?q?ouERrd0QwlA94OtW7ZrNXpOKoQV+2+0anGzS/Eb/NTwTrz9I/Ich8/rvGWQL?=
 =?us-ascii?q?l+d9TeyUggFwPFk16drpblPzeL2eQMvGib7/FtWv6oi2E6tQ5xpjmvydw2io?=
 =?us-ascii?q?bXnI4VzE7L9TlgzYszONa3R1J1b8S+H5tMqyGVKZF2QsU6Tmx0tig3yrkLtJ?=
 =?us-ascii?q?21cSUJ1Zgqxh7SZ+CafoSV/x7vSeecLDl3iX9md7+zmgi+/VagxOHgSMS500?=
 =?us-ascii?q?pGojRYntfDq3wA0QHY5MufSvZl40us1iqD2xrN5u1ZPEw4j7fXJp47zrM+jp?=
 =?us-ascii?q?YeslnPEjXrlEj1jqKabFgo9+io5uj9f7nrpYGQOolpgQ/kKKsugNawAeEgPw?=
 =?us-ascii?q?gOQWeb/eO82aXn/U34W7VKkuY2nrPesJDBKsQUuKm5DxVS0oY55BazFzam0N?=
 =?us-ascii?q?IGknkbNF9JZR2Kg5TzN13QPfz0EO2zj0msnTtxyf3KJrjhDY/MLnjHnrfhZ7?=
 =?us-ascii?q?F960tExQovzNBf6ZxUBqgaL/L0R0/xssDXAQEiMwGvx+bnCc591p8FWW6VBa?=
 =?us-ascii?q?+ZK6zSvkGP5u41JOmMfoAVtC7nK/c5//7ukWM5mVgFcKa13ZsXcnG4Hu98L0?=
 =?us-ascii?q?WdYHrshMoOHnkOvgUkVuPqjkaPUSVQZ3eyWaIz+C07BJi9AojdFciQhqec1n?=
 =?us-ascii?q?K7AoFOfTIBTVSNCmvzMYKfVPoLLiWILYhkmz0AULGnDIg5yRCpshS917tpIL?=
 =?us-ascii?q?np/DYFv8fm3dlx++qBiRA8+3luAt2A3nqRZ2V1hX8TATgt061450tnxQCYzK?=
 =?us-ascii?q?J6jvdEQMFV/O5DSQwgNJTRnNF8EM34eg/IctqTHVa6Xs29U3Z2StMq38RIZF?=
 =?us-ascii?q?1yFtLkiQrMmC+jArsQnrrMA4Qo86XaxD/tJshzmEvAz7Qrr1QvTsZVYGivh6?=
 =?us-ascii?q?pj8FrPBoDH1l+Ujrunbrg02C/W6HzFynGBsUYeVxR/Br7YV3ISbVeDsNLi+0?=
 =?us-ascii?q?nZRKWvA7l0DgwU5tSPJeN2cNr5gFEOEPjvJPzabnK2gXv2DhGNkOCido3vLl?=
 =?us-ascii?q?8a0yjHQGwJkg8TtSKcMQU/CSeJqGXSAThvH0jiJUXh7b8t+zuAUkYowlTSPA?=
 =?us-ascii?q?Va3L2v90tQ3KTEEalB968YuContzR/FUq82NSTMdebug59Z/8EMIE48A4fjC?=
 =?us-ascii?q?TCtB17M4DmJa0xzlIdcgEiuUTo2l03D4hbisEloTssyxY6MqOX1l5NNnuY0J?=
 =?us-ascii?q?n8N6eRKzz0+xaiOObNwl+L9tGQ9+8U7egg7U35tVS1F0Qstn9gzt9e3mC04p?=
 =?us-ascii?q?TREBFUVon+X0Fx8AJ19PnBeido34rPzjV3NLWs9DrL2tYnHuwgnwqhcdkaOq?=
 =?us-ascii?q?SZEgT/COUeBtOyM6otgFekaVQDJu8BvLUsMZaefuCdkLWuIP4mnD+iijFf55?=
 =?us-ascii?q?th10uX6ydmYurJxIoehfaD0QaAETDmgw774Pr6ko1FezweW1GH53O9Xdx3Ya?=
 =?us-ascii?q?t/NcYOGT72eousxcR4ioKrUXMKvFikT0gL3sOkY1KbckD90AtM1E8WvW3C+2?=
 =?us-ascii?q?Pwzjp6lCssp7ae2yqGyvrrdR4OMGpGDGd4ilKkLY+xhtEcFE+mCmph3Aek60?=
 =?us-ascii?q?i/za9Goq9yNEHXQFxUZG7xNG5vVe23rLXDK89D5ZU0sDlGBfymaAP/KPa1qB?=
 =?us-ascii?q?8b3iX/WmpGkWlnL3fw48y/xkE80zHVNnt4oXvHdNslwAeGvIWaXv1A2DcaAi?=
 =?us-ascii?q?N12ly1ThCxOcek+dKMmtLNqOe7Aii9V5NdNCPs0IWLuTCT4WxxHQb5mOu8l9?=
 =?us-ascii?q?qhFhI1m3yetZEiRWDToRDwb5O+nbi7P+widE51AlTx8OJ+G5piic03n54d3j?=
 =?us-ascii?q?4dnJrfrh9l2S/jdN5c36z5dn8EQzUGlsXU7AbS00pmNnuVxoj9WyzHkPFsbN?=
 =?us-ascii?q?S7fG4anxkFwZwXWPWs5adf1WtwsgPg9ETKYul7kytbw/Z8oHIdhugIvkIqwE?=
 =?us-ascii?q?D/SvgOHEdWeCbrihKD4suWqKRMeH3pdqO/2U04msquRL2PuQBTXn/ld4xqRH?=
 =?us-ascii?q?MoqJ8maRSVjTuoooj/HbuYJcoerBiVjwvNg6BOJZQ9m+BLzStrNGThvGE0nu?=
 =?us-ascii?q?syjBhgx5a/78CML2Rg+r78AwYNb2GtIZlKo3e00OAFzaP0l8i1E55sGysGRs?=
 =?us-ascii?q?7tXavwSXQJtuXhOhrIGjBvzxXTUbfZAwKb719r6nzVFJX+fW2WKndcx9J/Qh?=
 =?us-ascii?q?KQP2RbgRsIR3M9hZE0EUat3sOrIyIbrngBo0X1rBdB0LciKxjxXCLVoxquYT?=
 =?us-ascii?q?ovYJyeNwZNqAZZ6ErSd8uE4aggekMQto3kpwuLJGuBYg1OBmxcQU2ICWfoOb?=
 =?us-ascii?q?y27MXB+eyVVaKuauHDarKUpalCRu+FkNixh5B+8W/GZaDtdjFySuc20U1ZUT?=
 =?us-ascii?q?VlFtTFzn8RHjcPmXuFat7TrUW58yxz6Mek//nsHgX16sOGWb9TKsl0vRetjq?=
 =?us-ascii?q?qEcemKi0MbYX5RhJYFxHuOz6MQ0VlUjDpzcCKpV7MaumbEHr7Kk6RMERhdbD?=
 =?us-ascii?q?h8OcwO6Lkh2RJJf8nBhZuw37p8xKdvWW1IXlHghMylIPcyDT3gbAH/DV2QfP?=
 =?us-ascii?q?SDNWSTmofsYrK6RKEWhugG/xG3vD+aFQfkMFHh33HxUAuzNOhXkCyBFBhfo5?=
 =?us-ascii?q?2mNBF2BmXkCtX8ZVW3PcR2gjs/3bAvziqWbShGaGE6Kh4L9fWZ9kY6yr1nFn?=
 =?us-ascii?q?ZE72Z5IOXMgCuf4+TCa94XvfZtHiVohrda7XA9mPNe6CBJQuAwmTOH94I25Q?=
 =?us-ascii?q?v/y6/Wl3w8A38s4n5RiYmGvFtvI/Dc5sAYADDf/wML4HnWARlZwrktQtDppa?=
 =?us-ascii?q?1UzcDC0azpLzIXuc7V88VZDc/JLsmKK1IlMAH1A3jTFwQISnisL26V1Ck/2L?=
 =?us-ascii?q?mCs2aYqJQ3sM2mgJ0VVrpST0A4DNseC195B5oFO5h6WXUji7HR36tqrTKu6R?=
 =?us-ascii?q?LWQstdpJXOUPmfVO7uJDiuhr5BfxIUwLn8INdbJsjh1kdlcFU/gJXSFh+aQ4?=
 =?us-ascii?q?VWuiM4JFxRwg0F4D1kQ2Y0wU6gdg69/CpZC6uvhhBvwg5uKe1/8T7t5xEwPV?=
 =?us-ascii?q?XHo203ikZ5kIfhgCuNa3j2N6i9WsdRESWR1QB5O8H+SgdxKwqpkkFjcjDfWr?=
 =?us-ascii?q?VKi/1nb28jgV3Ao5JEAuBaC6pfbxIXg/aMevIz1RJbsCrvgEZD4aGcVMlS0T?=
 =?us-ascii?q?AyeJvplEpungJuaNlsev7UJbFV1R5Xna2DuWmvzO9jmVZPdXZIy3ubfWszgG?=
 =?us-ascii?q?JNM7AnIySy+ek1tl6GmiBfYy4LTPUnpbRt7ExvYr3cnRKl6KZKLwWKD8LaN7?=
 =?us-ascii?q?mQ4jeSkc+TXkh20VgHmk4D+qJ5g58u?=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0HfAQBSL/tfhwMP04xiHQEBAQEJARI?=
 =?us-ascii?q?BBQUBQIFPgSOBARgBZFkBHgMHNoQ/iQSIOAODfYNwkmeBWAsQAQECAQEBAQE?=
 =?us-ascii?q?JGAEKCgIEAQEBAYFTgXaBHoFVHwYBBDQTAgMBAQEDAgUBAQEEAQEBAgEBAgM?=
 =?us-ascii?q?CAgEBAhABAQEBDQsJCCksBmVbBGIGWwSBcQcDMAyCOAUCAx8BBm2BBwEBAQE?=
 =?us-ascii?q?BAQEBAQEBAQEBAQEBAQEWAg1UaQECAwEBASAjCh4LAwMBAgYBAQoOChwEAQE?=
 =?us-ascii?q?EAQMCAgMBIwEeEQYTBRaDCwGDBgQBCq0vAoEyhViDOoE8BoE4hnKGP0GBQT+?=
 =?us-ascii?q?BOAwQgiEHLj6CXQEEgTMPgzI0giwEgVURWAYsMUYUEAoIDSAMKgsKNAkpAjY?=
 =?us-ascii?q?2Ao84BjeLcA2BYZo8gwGJK4IliRuGdx+DKZ83lhmJD5I7hBiBbU6BLTMaCCY?=
 =?us-ascii?q?KOyoBgj4+DwECAQINAgECAQIBAgICAQECAgEBAo4qF4hihURCATE3AgYBCQE?=
 =?us-ascii?q?BAwlYI4oaWYFtAQE?=
X-IPAS-Result: =?us-ascii?q?A0HfAQBSL/tfhwMP04xiHQEBAQEJARIBBQUBQIFPgSOBA?=
 =?us-ascii?q?RgBZFkBHgMHNoQ/iQSIOAODfYNwkmeBWAsQAQECAQEBAQEJGAEKCgIEAQEBA?=
 =?us-ascii?q?YFTgXaBHoFVHwYBBDQTAgMBAQEDAgUBAQEEAQEBAgEBAgMCAgEBAhABAQEBD?=
 =?us-ascii?q?QsJCCksBmVbBGIGWwSBcQcDMAyCOAUCAx8BBm2BBwEBAQEBAQEBAQEBAQEBA?=
 =?us-ascii?q?QEBAQEWAg1UaQECAwEBASAjCh4LAwMBAgYBAQoOChwEAQEEAQMCAgMBIwEeE?=
 =?us-ascii?q?QYTBRaDCwGDBgQBCq0vAoEyhViDOoE8BoE4hnKGP0GBQT+BOAwQgiEHLj6CX?=
 =?us-ascii?q?QEEgTMPgzI0giwEgVURWAYsMUYUEAoIDSAMKgsKNAkpAjY2Ao84BjeLcA2BY?=
 =?us-ascii?q?Zo8gwGJK4IliRuGdx+DKZ83lhmJD5I7hBiBbU6BLTMaCCYKOyoBgj4+DwECA?=
 =?us-ascii?q?QINAgECAQIBAgICAQECAgEBAo4qF4hihURCATE3AgYBCQEBAwlYI4oaWYFtA?=
 =?us-ascii?q?QE?=
X-MGA-submission: =?us-ascii?q?MDHa0yavD4xdCA34PJBG2YEQ3YYShMJg2dG7NZ?=
 =?us-ascii?q?ZT3pdpr1ltmH1Isb92fRYrAqgy90d3XYJoPnWQIj5G1TZJ/t2LJItyqw?=
 =?us-ascii?q?lwHyXCSYGEiB//Nw9WFSQXC7rDfGNkhKBlQ1k=3D?=
Received: from osgeo6.osgeo.osuosl.org (HELO lists.osgeo.org) ([140.211.15.3])
  by mx101.skynet.be with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 10 Jan 2021 17:50:25 +0100
Received: from osgeo6.osgeo.osuosl.org (localhost [127.0.0.1])
	by lists.osgeo.org (Postfix) with ESMTP id 0704361449D4;
	Sun, 10 Jan 2021 08:50:20 -0800 (PST)
Received: from authenticated.a-painless.mh.aa.net.uk
 (authenticated.a-painless.mh.aa.net.uk [90.155.4.48])
 by lists.osgeo.org (Postfix) with ESMTPS id 8B5A36146654
 for <tiff@lists.osgeo.org>; Sun, 10 Jan 2021 08:50:18 -0800 (PST)
Received: from 182.155.187.81.in-addr.arpa ([81.187.155.182]
 helo=melaidhrin.home) by a-painless.mh.aa.net.uk with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <rleigh@codelibre.net>)
 id 1kyduz-000310-45; Sun, 10 Jan 2021 16:50:17 +0000
From: Roger Leigh <rleigh@codelibre.net>
Message-Id: <36F7E397-C679-4260-B63E-7B33D5716C7E@codelibre.net>
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\))
Date: Sun, 10 Jan 2021 16:50:02 +0000
In-Reply-To: <rmiim84yddv.fsf@s1.lexort.com>
To: Greg Troxel <gdt@lexort.com>
References: <9052599.rlaer9EI2p@even-i700> <2748399.eaF4TIHlBA@even-i700>
 <alpine.GSO.2.20.2101100826040.17187@scrappy.simplesystems.org>
 <rmiim84yddv.fsf@s1.lexort.com>
X-Mailer: Apple Mail (2.3608.120.23.2.4)
Subject: Re: [Tiff] Motions related to C99 use in libtiff
X-BeenThere: tiff@lists.osgeo.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: TIFF and libtiff discussion <tiff.lists.osgeo.org>
List-Unsubscribe: <https://lists.osgeo.org/mailman/options/tiff>,
 <mailto:tiff-request@lists.osgeo.org?subject=unsubscribe>
List-Post: <mailto:tiff@lists.osgeo.org>
List-Help: <mailto:tiff-request@lists.osgeo.org?subject=help>
List-Subscribe: <https://lists.osgeo.org/mailman/listinfo/tiff>,
 <mailto:tiff-request@lists.osgeo.org?subject=subscribe>
Cc: Tiff List <tiff@lists.osgeo.org>
Content-Type: multipart/mixed; boundary="===============8157274333003010466=="
Errors-To: tiff-bounces@lists.osgeo.org
Sender: "Tiff" <tiff-bounces@lists.osgeo.org>


--===============8157274333003010466==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_7EDD7E18-DB43-4D5B-80B8-13A6097FC607"


--Apple-Mail=_7EDD7E18-DB43-4D5B-80B8-13A6097FC607
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

On 10 Jan 2021, at 16:18, Greg Troxel <gdt@lexort.com> wrote:
>=20
>=20
> Bob Friesenhahn <bfriesen@simple.dallas.tx.us =
<mailto:bfriesen@simple.dallas.tx.us>> writes:
>=20
>> On Sun, 10 Jan 2021, Even Rouault wrote:
>>=20
>>> Hi,
>>>=20
>>> trying to sum up votes,
>>>=20
>>> Motion 1:
>>> +1 : Even Rouault, Olivier Paquet, Greg Troxel, Kurt Schwehr, Kemp =
Watson,
>>> Jeff Breidenbach, Roger Leigh (I assume!)
>>> No vote: Edward Lam, William Bader, Bob Friesenhahn
>>>=20
>>> Motion 2:
>>> +1 : Even Rouault, Olivier Paquet, Greg Troxel, Kurt Schwehr, Kemp =
Watson,
>>> Roger Leigh (I assume!)
>>> -1: Jeff Breidenbach
>>> No vote: Edward Lam, William Bader, Bob Friesenhahn
>>>=20
>>> So both are passed
>>=20
>> While I can support Motion 1 and even some definition of Motion 2, my
>> repeatedly-expressed concerns were never addressed.
>>=20
>> I can not support a solution which will result in most existing
>> applications to fail to compile by default.  I do support a solution
>> which allows an appropriately updated application (or build =
framework)
>> to inform libtiff headers that dependent source code is prepared for
>> the new typedefs (and thus depending on them), while allowing
>> unprepared applications to still compile by default.  Note that this
>> is different than an application informing libtiff that it still =
needs
>> to old definitions because that would require that the application =
(or
>> the framework building it) be updated already.
>>=20
>> For some number of years, applications which have been updated for =
the
>> new typedefs will be exposed to older libtiffs which have not been
>> updated.  There needs to be a way for applications which have been
>> updated to detect use of an older libtiff which does not
>> support/provide the new typedefs.  Unless there is a seamless
>> transition, there will be chaos.  The transition mechanism could be
>> removed after a couple of years, (which seems to be a typical major
>> update interval) or left in place a bit longer in case there are
>> observed update issues.
>>=20
>> You are the one who came up with the definitions for these motions,
>> without any necessary agreement that this limited set of motions is
>> the set that should be considered.
>>=20
>> Once again, breaking the build by default for the major proportion of
>> apps depending on libtiff is not an option that I can support.
>=20
> I am with Bob.  I tried to say that changing was ok as long as there =
was
> a compat plan that gave some reasonable period fo time for depending
> packages to adapt, where reasonable is perhaps 2 years.   That part =
was
> dropped from my comments, and that makes me wonder who else gave =
compat
> caveats.
>=20
> I do think that "tiff won't build unless the compiler is C99" is fine.
>=20
> For an API break, I did say that for pkgsrc I could deal with adding
> flags to depending packages.  That doesn't mean I think that's what we
> should do, just that I could live with it, in a rare moment of me not
> being super difficult :-)
>=20
> I also hadn't really thought of an opt-in define.  Indeed, that's easy
> to add when updating a depending program, and it makes everything =
pretty
> simple.
>=20
> I get Even's point that some packages won't update.  It's fair to push
> work onto them when they haven't after some reasonable period of time,
> but this is just being talked about and there is not yet a new way, so
> it's not fair to impose a rush on them.
>=20
> And, programs are going to have to deal with the new way and the old =
way
> for a long time.  Some systems are going to have older tiff for a =
while.
> At some point, like a LTS that froze things in 2014, that gets crazy.
> But again we are talking about the reasonable window being a few =
years.
>=20
> So I see this vote as a 'in principle we should move in this =
direction'
> and do not believe it represents any kind of consensus about breaking
> depending apps.

I think there are ways to handle the migration which would address most =
of the concerns.  I did a similar migration for Xerces-C++, so let me =
describe what we did there.

With Xerces-C++, we made the switch in a new minor release, enabling use =
of <cstdint> as part of adding C++11 support.  Like this change, it was =
initially optional and would fall back to the older types if not =
present.  We added the needed Autoconf and CMake logic (as here on the =
std-int-types branch), and then we assessed the downstream implications =
of the change by picking a few common distribution package managers, and =
rebuilding the world with the change in place to see the impact.  We did =
this for both Debian and the FreeBSD ports which are the most =
comprehensive in terms of their size.

For each package which failed to build we:

* created a patch to fix it to work with the currently packaged version
* submitted the patch upstream done against the current development =
version
* submitted the patch against the package for: Debian, FreeBSD ports, =
Fedora, Homebrew, MacPorts and vcpkg

This meant that in the short term there was a smooth upgrade for all the =
major distribution packages and their downstream derivatives, and that =
every piece of software using the library would eventually have a point =
release with the fixes in place for the longer term (at which point the =
distributions could drop their patches).

This requires us to put in the effort to do the investigation, patching =
and patch submission, but it looks like the number of packages is under =
ten.  We can do the change and determine the exact number.  It should be =
manageable.

Clearly this isn=E2=80=99t completely sufficient.  Software which is not =
packaged would need to use the TIFF_LEGACY_TYPES macro to enable the =
compatibility macros in the short term, should they be currently using =
them, and eventually migrate to the standard types.  But there is no =
driving need for the legacy types to be dropped; if they are opt-in and =
not enabled by default, they could be kept indefinitely so long as there =
was software which needed to build against older libtiff releases.

We could do a phased transition as I already detailed.  However given =
the manpower we have and the timescales involved, I don=E2=80=99t see it =
providing huge value.  With the compatibility macro, you can continue to =
compile existing code without trouble and that should be sufficient for =
most if not all projects.  And if we do the above transition as I did =
for Xerces-C++, we can transition most of the extant public open source =
usage of libtiff en masse.  It=E2=80=99ll take a few weeks to make, test =
and submit all the patches, and a bit longer for them all to be applied, =
but it=E2=80=99s quite achievable.


Regards,
Roger=

--Apple-Mail=_7EDD7E18-DB43-4D5B-80B8-13A6097FC607
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">On =
10 Jan 2021, at 16:18, Greg Troxel &lt;<a href=3D"mailto:gdt@lexort.com" =
class=3D"">gdt@lexort.com</a>&gt; wrote:<br class=3D""><div><blockquote =
type=3D"cite" class=3D""><br class=3D"Apple-interchange-newline"><div =
class=3D""><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">Bob =
Friesenhahn &lt;</span><a href=3D"mailto:bfriesen@simple.dallas.tx.us" =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" =
class=3D"">bfriesen@simple.dallas.tx.us</a><span style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">&gt; writes:</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><br style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><blockquote type=3D"cite" =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D"">On Sun, 10 Jan 2021, Even Rouault =
wrote:<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D"">Hi,<br class=3D""><br class=3D"">trying to sum up votes,<br =
class=3D""><br class=3D"">Motion 1:<br class=3D"">+1 : Even Rouault, =
Olivier Paquet, Greg Troxel, Kurt Schwehr, Kemp Watson,<br class=3D"">Jeff=
 Breidenbach, Roger Leigh (I assume!)<br class=3D"">No vote: Edward Lam, =
William Bader, Bob Friesenhahn<br class=3D""><br class=3D"">Motion 2:<br =
class=3D"">+1 : Even Rouault, Olivier Paquet, Greg Troxel, Kurt Schwehr, =
Kemp Watson,<br class=3D"">Roger Leigh (I assume!)<br class=3D"">-1: =
Jeff Breidenbach<br class=3D"">No vote: Edward Lam, William Bader, Bob =
Friesenhahn<br class=3D""><br class=3D"">So both are passed<br =
class=3D""></blockquote><br class=3D"">While I can support Motion 1 and =
even some definition of Motion 2, my<br class=3D"">repeatedly-expressed =
concerns were never addressed.<br class=3D""><br class=3D"">I can not =
support a solution which will result in most existing<br =
class=3D"">applications to fail to compile by default. &nbsp;I do =
support a solution<br class=3D"">which allows an appropriately updated =
application (or build framework)<br class=3D"">to inform libtiff headers =
that dependent source code is prepared for<br class=3D"">the new =
typedefs (and thus depending on them), while allowing<br =
class=3D"">unprepared applications to still compile by default. =
&nbsp;Note that this<br class=3D"">is different than an application =
informing libtiff that it still needs<br class=3D"">to old definitions =
because that would require that the application (or<br class=3D"">the =
framework building it) be updated already.<br class=3D""><br =
class=3D"">For some number of years, applications which have been =
updated for the<br class=3D"">new typedefs will be exposed to older =
libtiffs which have not been<br class=3D"">updated. &nbsp;There needs to =
be a way for applications which have been<br class=3D"">updated to =
detect use of an older libtiff which does not<br =
class=3D"">support/provide the new typedefs. &nbsp;Unless there is a =
seamless<br class=3D"">transition, there will be chaos. &nbsp;The =
transition mechanism could be<br class=3D"">removed after a couple of =
years, (which seems to be a typical major<br class=3D"">update interval) =
or left in place a bit longer in case there are<br class=3D"">observed =
update issues.<br class=3D""><br class=3D"">You are the one who came up =
with the definitions for these motions,<br class=3D"">without any =
necessary agreement that this limited set of motions is<br class=3D"">the =
set that should be considered.<br class=3D""><br class=3D"">Once again, =
breaking the build by default for the major proportion of<br =
class=3D"">apps depending on libtiff is not an option that I can =
support.<br class=3D""></blockquote><br style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">I am with Bob. &nbsp;I tried to say that changing was ok as =
long as there was</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">a compat plan that gave some reasonable period fo time for =
depending</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">packages to =
adapt, where reasonable is perhaps 2 years. &nbsp;&nbsp;That part =
was</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">dropped from =
my comments, and that makes me wonder who else gave compat</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">caveats.</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">I do think that "tiff won't =
build unless the compiler is C99" is fine.</span><br style=3D"caret-color:=
 rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><br style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">For an API break, I did say that for pkgsrc I could deal with =
adding</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">flags to =
depending packages. &nbsp;That doesn't mean I think that's what =
we</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">should do, =
just that I could live with it, in a rare moment of me not</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">being super difficult =
:-)</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">I also hadn't =
really thought of an opt-in define. &nbsp;Indeed, that's easy</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">to add when updating a depending =
program, and it makes everything pretty</span><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">simple.</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><br style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">I get Even's point that some packages won't update. =
&nbsp;It's fair to push</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">work onto them when they haven't after some reasonable period =
of time,</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">but this is =
just being talked about and there is not yet a new way, so</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">it's not fair to impose a rush =
on them.</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">And, programs =
are going to have to deal with the new way and the old way</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">for a long time. &nbsp;Some =
systems are going to have older tiff for a while.</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">At some point, like a LTS that =
froze things in 2014, that gets crazy.</span><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">But again we are talking about the reasonable window being a =
few years.</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">So I see this =
vote as a 'in principle we should move in this direction'</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">and do not believe it represents =
any kind of consensus about breaking</span><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">depending apps.</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""></div></blockquote><br =
class=3D""></div><div>I think there are ways to handle the migration =
which would address most of the concerns. &nbsp;I did a similar =
migration for Xerces-C++, so let me describe what we did =
there.</div><div><br class=3D""></div><div>With Xerces-C++, we made the =
switch in a new minor release, enabling use of &lt;cstdint&gt; as part =
of adding C++11 support. &nbsp;Like this change, it was initially =
optional and would fall back to the older types if not present. &nbsp;We =
added the needed Autoconf and CMake logic (as here on the std-int-types =
branch), and then we assessed the downstream implications of the change =
by picking a few common distribution package managers, and rebuilding =
the world with the change in place to see the impact. &nbsp;We did this =
for both Debian and the FreeBSD ports which are the most comprehensive =
in terms of their size.</div><div><br class=3D""></div><div>For each =
package which failed to build we:</div><div><br class=3D""></div><div>* =
created a patch to fix it to work with the currently packaged =
version</div><div>* submitted the patch upstream done against the =
current development version</div><div>* submitted the patch against the =
package for: Debian, FreeBSD ports, Fedora, Homebrew, MacPorts and =
vcpkg</div><div><br class=3D""></div><div>This meant that in the short =
term there was a smooth upgrade for all the major distribution packages =
and their downstream derivatives, and that every piece of software using =
the library would eventually have a point release with the fixes in =
place for the longer term (at which point the distributions could drop =
their patches).</div><div><br class=3D""></div><div>This requires us to =
put in the effort to do the investigation, patching and patch =
submission, but it looks like the number of packages is under ten. =
&nbsp;We can do the change and determine the exact number. &nbsp;It =
should be manageable.</div><div><br class=3D""></div><div>Clearly this =
isn=E2=80=99t completely sufficient. &nbsp;Software which is not =
packaged would need to use the TIFF_LEGACY_TYPES macro to enable the =
compatibility macros in the short term, should they be currently using =
them, and eventually migrate to the standard types. &nbsp;But there is =
no driving need for the legacy types to be dropped; if they are opt-in =
and not enabled by default, they could be kept indefinitely so long as =
there was software which needed to build against older libtiff =
releases.</div><div><br class=3D""></div><div>We could do a phased =
transition as I already detailed. &nbsp;However given the manpower we =
have and the timescales involved, I don=E2=80=99t see it providing huge =
value. &nbsp;With the compatibility macro, you can continue to compile =
existing code without trouble and that should be sufficient for most if =
not all projects. &nbsp;And if we do the above transition as I did for =
Xerces-C++, we can transition most of the extant public open source =
usage of libtiff en masse. &nbsp;It=E2=80=99ll take a few weeks to make, =
test and submit all the patches, and a bit longer for them all to be =
applied, but it=E2=80=99s quite achievable.</div><div><br =
class=3D""></div><div><br =
class=3D""></div><div>Regards,</div><div>Roger</div></body></html>=

--Apple-Mail=_7EDD7E18-DB43-4D5B-80B8-13A6097FC607--

--===============8157274333003010466==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Tiff mailing list
Tiff@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/tiff

--===============8157274333003010466==--
