Re: git: 6a5b2121a0ad - main - graphics/libimagequant: update to 4.0.4

From: Alexey Dokuchaev <danfe_at_freebsd.org>
Date: Thu, 24 Nov 2022 03:16:29 UTC
On Wed, Nov 23, 2022 at 01:45:50PM +0100, Baptiste Daroussin wrote:
> On Fri, Nov 04, 2022 at 03:33:28PM +0300, Gleb Popov wrote:
> > On Fri, Nov 4, 2022 at 3:20 PM Alexey Dokuchaev wrote:
> > > Not everyone is using binary packages, and there's always a trade-off to
> > > make.  For many of us Rust is a big "no", and if LIQ is not particularly
> > > useful for a typical user, there is little reason to have it enabled by
> > > default, given the price.  Defaults should be sane.
> > 
> > Can't agree with you on that. Defaults should be sane for users, not
> > developers. Most users use binary packages and do not compile stuff
> > themselves, so we should prefer defaults convenient for them.
> 
> 1000% agree, here, there is no issue with providing option to ease people
> building in place

Yes there is.  People type "make" and the rabbit hole just gets deeper.
Having an option is good, but it should be on or off by default based
on how useful it is and what it entails.  Even with build dependencies,
we used to take special care and e.g. not to pull full LaTeX suite by
default because of its ridiculously huge (>3GB) distfile.  At the very
least, do not let it leak into common path like documentation building
as it would affect many ports and users.

> Other users can by design tweak the options.

They can, and some do, but for many of them who's not accustomed to the
framework it's actually quite hard (it sounds funny for seasoned porter,
but we're talking about *users* here, remember?).  They try to install
some innocent port and stumble at why it's downloading Rust now (or worse,
they've wasted several hours building it only to find out that there is
not enough RAM in their laptop so the build fails).

> but the default should be sane for binary packages users.

Do you even know how useful LIQ option in `graphics/gd' is?  Mind you,
it was introduced* in 2022 only to prevent unregistered dependency, not
because someone had *asked* for it.  It was okay to have it enabled by
default when it was written in C, but now it's in Rust and this causes
lots of pain and grief.  While I generally sympathize with featureful
packages by default idea, this is the case when non-essential, minor,
recently added feature of popular library widely used since the end of
the last century which now comes with big needless burden.

So how about this: we disable IMAGEQUANT (LIQ) in `graphics/py-pillow'
and `graphics/gd' and see how many people complain and how many would
say big "thank you"?

./danfe

*) https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263185