Bug 266125 - graphics/darktable*: enable JPEG XL by default
Summary: graphics/darktable*: enable JPEG XL by default
Status: Closed Not Accepted
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jean-Sébastien Pédron
URL: https://github.com/darktable-org/dark...
Keywords: patch
Depends on:
Blocks:
 
Reported: 2022-08-31 08:54 UTC by Jan Beich
Modified: 2023-01-28 09:03 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (dumbbell)
mandree: maintainer-feedback+


Attachments
v1 (apply via "git am") (69.68 KB, patch)
2022-08-31 08:54 UTC, Jan Beich
mandree: maintainer-approval-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer freebsd_triage 2022-08-31 08:54:00 UTC
Created attachment 236254 [details]
v1 (apply via "git am")

JPEG XL excels at compressing high quality/fidelity images and tries to replace legacy JPEG and JPEG 2000 (aka JP2). Based on upstream PR but combined into files/patch-jxl to aid rebases and avoid too many intermediate commits.

See also https://avif.io/blog/comparisons/avif-vs-jpegxl/ I've already enabled JXL by default in many other ports.
Comment 1 Jan Beich freebsd_committer freebsd_triage 2022-08-31 09:17:57 UTC
Need feedback from darktable40 maintainer as well. Either one works. The patch is split by port but landing together is recommended for consistency.
Comment 2 Matthias Andree freebsd_committer freebsd_triage 2022-08-31 17:56:44 UTC
Comment on attachment 236254 [details]
v1 (apply via "git am")

Thanks Jan, but rejected for darktable. The option is misnamed, and I do not want feature  patches that implement FreeBSD-specific matter, it should be available to everyone. So improve on https://github.com/darktable-org/darktable/pull/10044 and get it in, then we'll receive it later. If it's merged formally on a relevant branch upstream, we can cherry-pick. But I am not taking 35 kB patches. We are not forking darktable in FreeBSD.  One big fork by a former contributor is enough.

Also, if the option enables JPEG XL, it needs to be named that. Port/package users will not care about the implementing library's name, and it might change, we have had that on multiple occasions on other ports.

The user also need not know the requisites under the hood, and I as maintainer had never heard of JXL before today. 

Sorry, wrong addressee.

Regarding 3.8 I do not want to pre-empt dumbbell@s decision, but on an obsolete release and branch adding features downstream makes even less sense.
Comment 3 Matthias Andree freebsd_committer freebsd_triage 2022-08-31 17:57:27 UTC
mandree@ for darktable40: + means feedback given, but patch rejected.
Comment 4 Jan Beich freebsd_committer freebsd_triage 2022-08-31 18:33:45 UTC
(In reply to Matthias Andree from comment #2)
> The option is misnamed

I disagree. JXL option name is intentional, see ports b0f70ceb2e9a. For example, darktable* already uses OPENJPEG for JPEG 2000, and OPENJPEG cannot be renamed because jasper used unconditionally in LIB_DEPENDS also provides JPEG 2000 support. Another example is HEIF option which is sometimes used for AVIF support.

> I do not want feature  patches that implement FreeBSD-specific matter

OK. Low maintenance is a perfectly valid reason.
Comment 5 Matthias Andree freebsd_committer freebsd_triage 2022-08-31 19:06:53 UTC
(In reply to Jan Beich from comment #4)
It's also a pars-pro-toto name that does not name the feature, but the provider, even if libjxl is the reference implementation.  The other reason in the commit you referred to is that other libraries had different requirements, but in the end this only proves that our abstraction level is insufficient.

And I repeat my earlier point: beyond maintenance, I am concerned about the divergence and locally bringing in stuff that is still under discussion upstream (and an upstream that has taken features happily), and that seems limiting.

If we were offering a -devel port where we experiment, that would be in scope, but in a mainline stable port, a locally default-enabled option for a v0.x reference library seems a bit daring.
Comment 6 commit-hook freebsd_committer freebsd_triage 2023-01-28 09:03:36 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d410d3f2f6b2c6fa2cca725b91ea97077884072f

commit d410d3f2f6b2c6fa2cca725b91ea97077884072f
Author:     Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2023-01-28 08:56:26 +0000
Commit:     Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2023-01-28 09:02:33 +0000

    graphics/darktable: fix stage-qa libjxl complaint

    Approved by:    portmgr@ (blanket fix-depends)
    Reported by:    Jan Beich

    The actual file support was previously requested in
    PR:             266125
    as a misnamed option, but now JPEG XL is enabled unconditionally.

 graphics/darktable/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)