Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#65474 closed enhancement (fixed)

darktable: upstream build script: review for relevant port changes

Reported by: mascguy (Christopher Nielsen) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: pending Cc: ryandesign (Ryan Carsten Schmidt), Schamschula (Marius Schamschula), parafin, cooljeanius (Eric Gallager)
Port: darktable exiv2 gnutls gtk-mac-bundler gtk-osx-application

Description (last modified by mascguy (Christopher Nielsen))

Upstream utilizes MacPorts to build their distribution package, via the following steps:

https://raw.githubusercontent.com/darktable-org/darktable/master/packaging/macosx/BUILD.txt

Of note, several ports are patched. And we should evaluate whether any of these might be worth adding:

CC:

  • @ryandesign for exiv2
  • @schamschula for gnutls

Change History (31)

comment:1 Changed 2 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)

comment:2 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 9af7b3c4faefe8004fd9fe31f0e24b292a0c1478/macports-ports (master):

darktable-devel: features: enable curve and noise tools

  • Coincides with upstream's binary releases

See: #65474

comment:3 Changed 2 years ago by mascguy (Christopher Nielsen)

Feature-wise, it looks like the curve and noise tools cause build failures for 10.13 and prior. So those will be disabled for earlier macOS releases, until more investigation has been done.

[ 17%] Linking CXX executable darktable-curve-tool
Undefined symbols for architecture x86_64:
  "___kmpc_for_static_fini", referenced from:
      _.omp_outlined. in darktable-curve-tool.c.o
      _.omp_outlined..66 in darktable-curve-tool.c.o
  "___kmpc_for_static_init_4", referenced from:
      _.omp_outlined. in darktable-curve-tool.c.o
      _.omp_outlined..66 in darktable-curve-tool.c.o
  "___kmpc_fork_call", referenced from:
      _linearize_16bit in darktable-curve-tool.c.o
      _linearize_8bit in darktable-curve-tool.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [share/darktable/tools/basecurve/darktable-curve-tool] Error 1

comment:4 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 7fe0ffd840fa6b754e239294e12c39ab2927bbac/macports-ports (master):

darktable-devel: disable curve and noise tools for 10.13 and earlier
See: #65474

comment:5 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In b5ff6f27b565a7d4b22b5f3017591f5728b52022/macports-ports (master):

darktable: features: enable curve and noise tools for 10.14 and later

  • Coincides with upstream's binary releases

See: #65474

comment:6 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 99d875925a3f1cee073f4530c9cae4847c916141/macports-ports (master):

darktable-devel: enable lua, via internal version

  • Lua 5.4.x needed, which we don't yet support
  • Add runtime dep on tango-icon-theme, per upstream package

See: #65474

comment:7 Changed 2 years ago by mascguy (Christopher Nielsen)

@ryandesign Relative to enabling BMFF support in exiv2, it looks like past patent concerns have been vetted. Enough so that upstream has enabled that support by default, on the main branch:

Given all that, would you feel comfortable enabling by default for our port?

comment:8 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 7e51ba0e59f52fc3c4bf0aec8cf603a7c69d4a94/macports-ports (master):

darktable: reconcile with darktable-devel

  • Enable lua, via internal version
  • Add runtime dep on tango-icon-theme, per upstream package
  • Add bin symlinks for tools

See: #65474

comment:9 in reply to:  7 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to mascguy:

@ryandesign Relative to enabling BMFF support in exiv2, it looks like past patent concerns have been vetted. Enough so that upstream has enabled that support by default, on the main branch:

Given all that, would you feel comfortable enabling by default for our port?

PR created for this:

15389 - exiv2: enable BMFF support

comment:10 Changed 2 years ago by parafin

Regarding remaining patches:

  • gnutls - as far as I remember it's needed only for relocatable binaries (creating application bundles), so may not be relevant for normal macports installation;
  • gtk-mac-bundler - it's patch against an ancient version of the package, used only as a tool for creating an application bundle, so again might not be relevant;
  • gtk-osx-application-gtk3 - this fix is included in upstream already, but I think they haven't yet made a release with it included; it fixes a real bug.

comment:11 Changed 2 years ago by parafin

Cc: parafin added

comment:12 in reply to:  10 Changed 2 years ago by mascguy (Christopher Nielsen)

Keywords: pending added

Replying to parafin:

Regarding remaining patches:

  • gnutls - as far as I remember it's needed only for relocatable binaries (creating application bundles), so may not be relevant for normal macports installation;
  • gtk-mac-bundler - it's patch against an ancient version of the package, used only as a tool for creating an application bundle, so again might not be relevant;
  • gtk-osx-application-gtk3 - this fix is included in upstream already, but I think they haven't yet made a release with it included; it fixes a real bug.

Thank you for the detail, I'll tackle gtk-osx-application-gtk3 in the coming days.

comment:13 in reply to:  10 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to parafin:

gtk-osx-application-gtk3 - this fix is included in upstream already, but I think they haven't yet made a release with it included; it fixes a real bug.

https://raw.githubusercontent.com/darktable-org/darktable/master/packaging/macosx/gtk-osx-application-gettext.patch

This fix doesn't appear (?) to be present in upstream master. Nor do I see any open issues or MRs related to it:

https://gitlab.gnome.org/GNOME/gtk-mac-integration/-/blob/master/src/gtkosxapplication_quartz.c#L595

Just want to be sure that this patch is still applicable, and upstream is tracking it...?

comment:14 Changed 2 years ago by parafin

Yeah, sorry, I don’t see anything relevant in upstream repo either. I guess I’m misremembering.

comment:15 in reply to:  14 ; Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to parafin:

Yeah, sorry, I don’t see anything relevant in upstream repo either. I guess I’m misremembering.

Can you folks go ahead and create an issue/MR for upstream? Alternatively, I'm happy to do it as well, but I'd need to reference the details. (Did some quick searching through the closed issues, but didn't see anything immediately obvious.)

comment:16 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In a7f8a7049bb8e5c37a3a646bc216c5ab9244d9f6/macports-ports (master):

gtk-osx-application: add patch for gettext-related crash
See: #65474

comment:17 in reply to:  15 ; Changed 2 years ago by parafin

Replying to mascguy:

Replying to parafin:

Yeah, sorry, I don’t see anything relevant in upstream repo either. I guess I’m misremembering.

Can you folks go ahead and create an issue/MR for upstream? Alternatively, I'm happy to do it as well, but I'd need to reference the details. (Did some quick searching through the closed issues, but didn't see anything immediately obvious.)

Done: https://gitlab.gnome.org/GNOME/gtk-mac-integration/-/merge_requests/6

comment:18 in reply to:  17 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to parafin:

Done: https://gitlab.gnome.org/GNOME/gtk-mac-integration/-/merge_requests/6

MR committed by upstream, and will be available in the next release. Thanks again @parafin!

comment:19 Changed 2 years ago by Christopher Nielsen <62156882+mascguy@…>

In ab68bae1599a2f7ff2fd3a4f2e3e3de53e6c8e73/macports-ports (master):

exiv2: enable BMFF support

See: #65474

comment:20 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In e6163302c33e559349940e28dfa253fc0c397d06/macports-ports (master):

darktable/darktable-devel: debug: use cmake build type RelWithDebInfo
See: #65474

comment:21 Changed 2 years ago by Christopher Nielsen <mascguy@…>

comment:22 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 9c746d99bc7766acf129ee2dd264119a52595bc9/macports-ports (master):

darktable/darktable-devel: fix 10.14 crash; enable AVIF
Fixes: #64252
See: #65474

comment:23 in reply to:  10 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to parafin:

  • gnutls - as far as I remember it's needed only for relocatable binaries (creating application bundles), so may not be relevant for normal macports installation;

Given this - combined with the fact that we've reconciled everything else, and added AVIF support - is there anything else you can think of?

comment:24 Changed 2 years ago by parafin

Not really. About gnutls - just check that map view works fine in macports build of darktable with various map sources. If not - it needs further investigation.

comment:25 in reply to:  24 Changed 2 years ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

Replying to parafin:

Not really. About gnutls - just check that map view works fine in macports build of darktable with various map sources. If not - it needs further investigation.

Just tested the map view via some geotagged images, and looks good.

So I'll close this. If there's anything else we can do to help you folks, let me know!

comment:26 in reply to:  21 Changed 2 years ago by cooljeanius (Eric Gallager)

Replying to Christopher Nielsen <mascguy@…>:

In 202683008f734b7851b0297609f057c2434338d7/macports-ports (master):

libavif: new port
See: #65474

Note that I had a separate ticket open for this: #65224

comment:27 Changed 2 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:28 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 8b16c28c8de9387582274cae1ca416cb88e7f612/macports-ports (master):

libavif: enable libyuv support
See: #65474

comment:29 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 2f8fe26bae7c95d4c9bb1c0b1eae2f8c8e6161f7/macports-ports (master):

darktable-devel: enable curve and noise tools across-the-board

  • Now possible, thanks to OpenMP-related patch

See: #65474
See: #65683

comment:30 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 8b27e40c0bdf221b15b4a5e245ae7751f08ef8cd/macports-ports (master):

darktable: enable curve and noise tools across-the-board

  • Now possible, thanks to OpenMP-related patch

See: #65474
Fixes: #65683

comment:31 Changed 2 years ago by parafin

I know this is closed, but for your information:

  • gnutls patch has been removed (it was causing troubles with other applications), relevant functionality was implemented through other means
  • optional dependency on new enough IMath library is missing, there is already a ticket about updating it in macports: #65662
Note: See TracTickets for help on using tickets.