From nobody Thu Oct 10 20:40:09 2024 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4XPhTW0mQsz5YbgJ for ; Thu, 10 Oct 2024 20:40:15 +0000 (UTC) (envelope-from daniel.engberg.lists@pyret.net) Received: from smtp-190f.mail.infomaniak.ch (smtp-190f.mail.infomaniak.ch [IPv6:2001:1600:7:10::190f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "relay.mail.infomaniak.ch", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XPhTV3JW9z4Y3Y for ; Thu, 10 Oct 2024 20:40:14 +0000 (UTC) (envelope-from daniel.engberg.lists@pyret.net) Authentication-Results: mx1.freebsd.org; none Received: from smtp-4-0001.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10:40ca:feff:fe05:1]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4XPhTP6T7cz12qX; Thu, 10 Oct 2024 22:40:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pyret.net; s=20231006; t=1728592809; bh=om5UzZBc1JMkqKUqAvmJndtQi7dk5gDipcdpaSuY3IQ=; h=Date:Subject:From:Reply-To:To:Cc:References:In-Reply-To:From; b=mc9iwrBg+4pRuJIVwdyGzQFFjrtkOuqDzDf7L6ezDS2UTUcFgM8EbcHJSM4PudPY5 ayzo9F9HOWmA2PMJJ/K5cInVEz5kztFiqhBsL0mDMDOYAwafNevUIxc4wsiNtRHIL+ 7M8HnWwMKBstye/NrzkeW9g2BdXclNVnKF6I0vnKr98Ao0Cfr2G1EQ9IMoOYaSRYfj +Xv7RVZCMGBqMT7K1oQxNc+TI1Xaky1F1nbS63ExW67c2HkRdPnmApUShVdiV0lg/6 SUrcQLy+HNX/CeQiABYItP+8j2Tf9WofoYkKKo0+UsI1b4OHg2TGTp1TBwpoP4L1kq qZh6nNixtVTKQ== Received: from unknown by smtp-4-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4XPhTP3XF2z4WP; Thu, 10 Oct 2024 22:40:09 +0200 (CEST) Message-ID: <0367156086892980fb78cc6aacdba56f@mail.infomaniak.com> Date: Thu, 10 Oct 2024 22:40:09 +0200 Subject: Re: git: 0bdf5887f0d2 - main - graphics/tiff: Update to 4.7.0 and switch to CMake From: Daniel Engberg Reply-To: Daniel Engberg To: Kevin Bowling Cc: Alexey Dokuchaev , Daniel Engberg , ports-committers@freebsd.org, dev-commits-ports-all@freebsd.org, dev-commits-ports-main@freebsd.org List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="_=_swift_1728592809_5c59fd7fe1b8e62545428c4f5df0c06d_=_" X-WS-User-Origin: eyJpdiI6InpGZUhUWStOWDB6bWVlbnZGQTQ2Umc9PSIsInZhbHVlIjoib0xibXI4T1FvUU1pd2RMNzc3LzQ5UT09IiwibWFjIjoiMGNmNWE2ZGI2ZmViYWNiYzc4NDcwYTZhZTA5MWUxZmVlMjlhMzE3MzRiYTBkZjg4OWUwYThkODg5ODQ3ZDAzMiIsInRhZyI6IiJ9 X-WS-User-Mbox: eyJpdiI6IitYZmQ0S1ppdWx6QVZNcDJrS0crbkE9PSIsInZhbHVlIjoiYlVGYWM0WndrbUlmc2hsa2VENUVldz09IiwibWFjIjoiMzQxODVhNzJlMjQwM2NjYjBlYzE0YWU5ZmIwMWI2MjAzYjZjNjAwMTU4MTg0YjU5OWQ1NGU3NDk2YTMwYzRmOCIsInRhZyI6IiJ9 X-WS-Location: eJxzKUpMKykGAAfpAmU- X-Mailer: Infomaniak Workspace (1.3.760) References: <202410091943.499JhXKg087859@gitrepo.freebsd.org> In-Reply-To: X-Infomaniak-Routing: alpha X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:29222, ipnet:2001:1600::/32, country:CH] X-Rspamd-Queue-Id: 4XPhTV3JW9z4Y3Y X-Spamd-Bar: ---- --_=_swift_1728592809_5c59fd7fe1b8e62545428c4f5df0c06d_=_ Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 2024-10-10T21:43:21.000+02:00, Kevin Bowling wrote: >=C2=A0On=C2=A0Thu,=C2=A0Oct=C2=A010,=C2=A02024=C2=A0at=C2= =A08:55=E2=80=AFAM=C2=A0Alexey=C2=A0Dokuchaev=C2=A0= =C2=A0wrote: >>=C2=A0=C2=A0On=C2=A0Wed,=C2=A0Oct=C2=A009,=C2=A02024=C2= =A0at=C2=A002:28:01PM=C2=A0-0700,=C2=A0Kevin=C2=A0Bowling=C2=A0wrote: >>= =C2=A0=C2=A0 >>>=C2=A0=C2=A0=C2=A0On=C2=A0Wed,=C2=A0Oct=C2=A09,=C2=A02024= =C2=A0at=C2=A012:43???PM=C2=A0Daniel=C2=A0Engberg >>>=C2=A0=C2=A0=C2= =A0=C2=A0wrote: >>>=C2=A0=C2=A0=C2=A0 >>>>=C2=A0= =C2=A0=C2=A0=C2=A0The=C2=A0branch=C2=A0main=C2=A0has=C2=A0been=C2=A0updated= =C2=A0by=C2=A0diizzy: >>>>=C2=A0=C2=A0=C2=A0=C2=A0 >>>>=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0URL: >>>>=C2=A0=C2=A0=C2=A0=C2=A0https://cgit.FreeBSD.o= rg/ports/commit/?id=3D0bdf5887f0d2cc9f14ea0cc10ed9e371028dd620 >>>>=C2= =A0=C2=A0=C2=A0=C2=A0 >>>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0commit=C2=A00bdf5= 887f0d2cc9f14ea0cc10ed9e371028dd620 >>>>=C2=A0=C2=A0=C2=A0=C2=A0 >>>>= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Author:=C2=A0Daniel=C2=A0Engberg=C2=A0 >>>>=C2=A0=C2=A0=C2=A0=C2=A0 >>>>=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0AuthorDate:=C2=A02024-10-09=C2=A019:12:09=C2=A0+0000 >>>>=C2= =A0=C2=A0=C2=A0=C2=A0 >>>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Commit:=C2=A0Dani= el=C2=A0Engberg=C2=A0 >>>>=C2=A0=C2=A0=C2=A0=C2=A0 = >>>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0CommitDate:=C2=A02024-10-09=C2=A019:43:25= =C2=A0+0000 >>>>=C2=A0=C2=A0=C2=A0=C2=A0 >>>>=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0graphics/tiff:=C2=A0Update=C2=A0to=C2=A04.7.0=C2=A0and=C2=A0switch= =C2=A0to=C2=A0CMake >>>=C2=A0=C2=A0=C2=A0 >>>=C2=A0=C2=A0=C2=A0=C2= =A0I=C2=A0believe=C2=A0this=C2=A0might=C2=A0have=C2=A0come=C2=A0up=C2=A0in= =C2=A0the=C2=A0past=C2=A0but=C2=A0I=C2=A0do=C2=A0not >>>=C2=A0=C2=A0= =C2=A0remember >>>=C2=A0=C2=A0=C2=A0 >>>=C2=A0=C2=A0=C2=A0=C2=A0any= =C2=A0conclusion. >>>=C2=A0=C2=A0=C2=A0 >>>=C2=A0=C2=A0=C2=A0=C2=A0Upon= =C2=A0a=C2=A0quick=C2=A0look=C2=A0at=C2=A0Debian=C2=A0and=C2=A0Fedora=C2= =A0(thus=C2=A0accounting=C2=A0for=C2=A0the >>>=C2=A0=C2=A0=C2=A0 >>>= =C2=A0=C2=A0=C2=A0=C2=A0majority=C2=A0of=C2=A0all=C2=A0*nix=C2=A0builds/usa= ge)=C2=A0I=C2=A0do=C2=A0not=C2=A0see=C2=A0either=C2=A0using >>>=C2=A0= =C2=A0=C2=A0CMake: >>>=C2=A0=C2=A0=C2=A0 >>>=C2=A0=C2=A0=C2=A0=C2=A0*= =C2=A0https://sources.debian.org/src/tiff/4.6.0-2/debian/rules/#L16 >>>= =C2=A0=C2=A0=C2=A0 >>>=C2=A0=C2=A0=C2=A0=C2=A0* >>>=C2=A0=C2=A0=C2= =A0https://src.fedoraproject.org/rpms/libtiff/blob/rawhide/f/libtiff.spec#_= 68 >>=C2=A0=C2=A0 >>=C2=A0=C2=A0=C2=A0+1=C2=A0to=C2=A0reverting=C2= =A0back=C2=A0to=C2=A0GNU=C2=A0autotools=C2=A0which=C2=A0entail=C2=A0far= =C2=A0less >>=C2=A0=C2=A0dependencies. >>=C2=A0=C2=A0 >>=C2=A0=C2= =A0=C2=A0I've=C2=A0lost=C2=A0count=C2=A0already=C2=A0when=C2=A0I=C2=A0have= =C2=A0to=C2=A0revert=C2=A0Daniel's=C2=A0CMake >>=C2=A0=C2=A0switches= =C2=A0in >>=C2=A0=C2=A0 >>=C2=A0=C2=A0=C2=A0various=C2=A0ports=C2=A0to= =C2=A0unbreak=C2=A0them=C2=A0in=C2=A0my=C2=A0environments.=C2=A0It=C2=A0was= =C2=A0common >>=C2=A0=C2=A0to=C2=A0half- >>=C2=A0=C2=A0 >>=C2=A0= =C2=A0=C2=A0jokingly=C2=A0wish=C2=A0autotools=C2=A0to=C2=A0die,=C2=A0but= =C2=A0they=C2=A0remain=C2=A0stable,=C2=A0working, >>=C2=A0=C2=A0and=C2= =A0not >>=C2=A0=C2=A0 >>=C2=A0=C2=A0=C2=A0asking=C2=A0too=C2=A0much,= =C2=A0thus=C2=A0being=C2=A0clear=C2=A0winner=C2=A0among=C2=A0other=C2=A0bui= ld >>=C2=A0=C2=A0options. >=C2=A0 >=C2=A0From=C2=A0a=C2=A0maintainer/= developer's=C2=A0view,=C2=A0Autoconf=C2=A0is=C2=A0an=C2=A0arcane=C2=A0mix= =C2=A0of >=C2=A0 >=C2=A0shell,=C2=A0M4=C2=A0so=C2=A0the=C2=A0hate=C2= =A0is=C2=A0understandable.=C2=A0From=C2=A0a=C2=A0packager's=C2=A0view=C2= =A0it >=C2=A0is >=C2=A0 >=C2=A0nearly=C2=A0ideal=C2=A0for=C2=A0histor= ical=C2=A0interial=C2=A0reasons=C2=A0and=C2=A0one=C2=A0key=C2=A0point:= =C2=A0the >=C2=A0 >=C2=A0thing=C2=A0that=C2=A0Autoconf=C2=A0gets=C2= =A0right=C2=A0is=C2=A0being=C2=A0centered=C2=A0around=C2=A0feature=C2=A0tes= t >=C2=A0 >=C2=A0macros=C2=A0and=C2=A0most=C2=A0alternative=C2=A0build= =C2=A0systems=C2=A0miss=C2=A0that=C2=A0point=C2=A0and=C2=A0center >=C2= =A0 >=C2=A0around=C2=A0preconceived=C2=A0notions=C2=A0of=C2=A0what=C2= =A0a=C2=A0platform=C2=A0is=C2=A0or=C2=A0has.=C2=A0Ted=C2=A0Tso >=C2=A0(of= >=C2=A0 >=C2=A0ext2=C2=A0fame)=C2=A0wrote=C2=A0a=C2=A0nice=C2=A0piece= =C2=A0about=C2=A0this=C2=A0on=C2=A0TUHS=C2=A0recently.=C2=A0This,=C2=A0for= >=C2=A0 >=C2=A0instance,=C2=A0makes=C2=A0it=C2=A0easy=C2=A0to=C2=A0tas= te=C2=A0APIs=C2=A0and=C2=A0accommodate=C2=A0i.e.=C2=A0MFCs=C2=A0back >= =C2=A0 >=C2=A0to=C2=A0arbitrary=C2=A0FreeBSD=C2=A0versions=C2=A0without= =C2=A0a=C2=A0fragile=C2=A0maintenance=C2=A0of >=C2=A0 >=C2=A0checking= =C2=A0specific=C2=A0__FreeBSD_version=C2=A0or=C2=A0whatever=C2=A0the=C2= =A0case=C2=A0may=C2=A0be.=C2=A0It >=C2=A0 >=C2=A0also=C2=A0lends=C2= =A0to=C2=A0putting=C2=A0arbitrary=C2=A0portability=C2=A0in=C2=A0the=C2= =A0source=C2=A0code >=C2=A0instead >=C2=A0 >=C2=A0of=C2=A0the=C2= =A0build=C2=A0system. >=C2=A0 >>=C2=A0=C2=A0In=C2=A0other=C2=A0words,= =C2=A0don't=C2=A0pull=C2=A0CMake=C2=A0when=C2=A0you=C2=A0can=C2=A0pull= =C2=A0nothing >>=C2=A0=C2=A0(/bin/sh=C2=A0and >>=C2=A0=C2=A0 >>=C2= =A0=C2=A0=C2=A0friends=C2=A0are=C2=A0part=C2=A0of=C2=A0the=C2=A0base=C2= =A0system). >=C2=A0 >=C2=A0I=C2=A0think=C2=A0one=C2=A0of=C2=A0the=C2= =A0previous=C2=A0justifications=C2=A0for=C2=A0this=C2=A0toil=C2=A0was=C2= =A0speed >=C2=A0 >=C2=A0which=C2=A0seems=C2=A0dubious=C2=A0because= =C2=A0now=C2=A0a=C2=A0very=C2=A0light=C2=A0library=C2=A0like=C2=A0libtiff= >=C2=A0will >=C2=A0 >=C2=A0have=C2=A0to=C2=A0wait=C2=A0around=C2= =A0for=C2=A0a=C2=A0high=C2=A0cardinality=C2=A0C++=C2=A0project=C2=A0to= =C2=A0build. >=C2=A0 >=C2=A0All=C2=A0of=C2=A0this=C2=A0doesn't=C2=A0rea= lly=C2=A0matter=C2=A0if=C2=A0CMake=C2=A0is=C2=A0the=C2=A0clear=C2=A0choice= =C2=A0of >=C2=A0 >=C2=A0upstream.=C2=A0But=C2=A0that=C2=A0is=C2=A0not= =C2=A0the=C2=A0case=C2=A0here. >=C2=A0 >>=C2=A0=C2=A0./danfe One = major issue both in our tree and upstream is that very few wants to hack = on autotools scripts and merge/upstream changes (leading to bitrot and/or= ports getting outdated because no one wants to unravel previous work and= so on). We have countless examples of that in tree already and it keeps = eating away precious developer time.=20 Even autotools upstream are havi= ng issues finding people maintaining it etc, see https://lists.gnu.org/= archive/html/autoconf/2021-01/msg00049.html . Speed is another factor = that's not in Autotools favour especially if you also need to use USES=3D= autoreconf, it's slow. We spend a lot of time processing configure scrip= ts and it's also showing it's age when it comes to compiling in parallell= . There are some projects trying to improve on this such as slibtool but = it's not 100% compatible and no one is to my knowledge actively looking a= t it for potential adoption. Switching from Autotools to lets say CMake o= r Meson almost always gives a noticable speed boost and that also include= s unit testing. It may not be a major difference for a single port but it= adds up quickly. It's not the top reason but it's a nice addition. = For this specific port there is also quite a bit more unit tests connecte= d to CMake build which helps us do regression testing but if someone(tm) = is willing ot get Autotools up to the same level by all means go ahead an= d upstream it. At least 3 deps already requires on CMake and that incl= ude libdeflate so there's nothing "new" in that regard. With all tha= t being said, I'll try to get around to submit current patch(es) upstream= ed next week or so but they needs a bit of adjustment before doing so. = Best regards, Daniel --_=_swift_1728592809_5c59fd7fe1b8e62545428c4f5df0c06d_=_ Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
On 2024-10-10T21:43:21.000+02:00, Kevin Bowlin= g <kevin.bowling@kev009.com> wrote:


=
On Thu, Oct 10, 2024 at 8:55=E2=80=AFAM Alexey Dokuchaev <danfe@freebsd.org> wrote:
On Wed, Oct 09, 2024 at 02:28:01PM -0700, Kevin Bowling wrote:

The branch main has been updated by d= iizzy:


commit 0bdf58= 87f0d2cc9f14ea0cc10ed9e371028dd620
Author: Daniel Engb= erg <dii= zzy@FreeBSD.org>
AuthorDate: 2024-10-09 19:12:09 +0= 000
Commit: Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2024-10-09 19:43:25 +0000

<= div> graphics/tiff: Update to 4.7.0 and switch to CMake

I believe this might have come up in the p= ast but I do not remember
any conclusion.
Upon a quick look at Debian and Fedora (thus accounting for = the
majority of all *nix builds/usage) I do not see either = using CMake:

+1 to reverti= ng back to GNU autotools which entail far less dependencies.
= I've lost count already when I have to revert Daniel's CMake switches in
various ports to unbreak them in my environments. It was com= mon to half-
jokingly wish autotools to die, but they remain= stable, working, and not
asking too much, thus being clear = winner among other build options.

From a maintainer/developer's view, Autoconf is an arcane mix of
shell, M4 so the hate is understandable. From a packager's view it i= s
nearly ideal for historical interial reasons and one key po= int: the
thing that Autoconf gets right is being centered ar= ound feature test
macros and most alternative build systems m= iss that point and center
around preconceived notions of what= a platform is or has. Ted Tso (of
ext2 fame) wrote a nice p= iece about this on TUHS recently. This, for
instance, makes = it easy to taste APIs and accommodate i.e. MFCs back
to arbit= rary FreeBSD versions without a fragile maintenance of
checki= ng specific __FreeBSD_version or whatever the case may be. It
also lends to putting arbitrary portability in the source code instead
of the build system.

In other words, don't pull CMake when you can pull = nothing (/bin/sh and
friends are part of the base system).

I think one of the previous justi= fications for this toil was speed
which seems dubious because= now a very light library like libtiff will
have to wait arou= nd for a high cardinality C++ project to build.

All of this doesn't really matter if CMake is the clear choice of
upstream. But that is not the case here.

./danfe

One major issue both i= n our tree and upstream is that very few wants to hack on autotools scripts= and merge/upstream changes (leading to bitrot and/or ports getting outdate= d because no one wants to unravel previous work and so on). We have countle= ss examples of that in tree already and it keeps eating away precious devel= oper time.

Even autot= ools upstream are having issues finding people maintaining it etc, see https://= lists.gnu.org/archive/html/autoconf/2021-01/msg00049.html .

Speed is another factor that's no= t in Autotools favour especially if you also need to use USES=3D autoreconf= , it's slow. We spend a lot of time processing configure scripts and it's a= lso showing it's age when it comes to compiling in parallell. There are som= e projects trying to improve on this such as slibtool but it's not 100% com= patible and no one is to my knowledge actively looking at it for potential = adoption. Switching from Autotools to lets say CMake or Meson almost always= gives a noticable speed boost and that also includes unit testing. It may = not be a major difference for a single port but it adds up quickly. It's no= t the top reason but it's a nice addition.

For this specific port there is also quite a bit more = unit tests connected to CMake build which helps us do regression testing bu= t if someone(tm) is willing ot get Autotools up to the same level by all me= ans go ahead and upstream it.

At least 3 deps already requires on CMake and that include libdefla= te so there's nothing "new" in that regard.

<= /div>
With all that being said, I'll try to get around to s= ubmit current patch(es) upstreamed next week or so but they needs a bit of = adjustment before doing so.

Best regards,
Daniel
--_=_swift_1728592809_5c59fd7fe1b8e62545428c4f5df0c06d_=_--