Opened 13 years ago

Closed 13 years ago

Last modified 11 years ago

#28070 closed enhancement (fixed)

darktable @0.7.1 add +gcc46, +gconf, +gnome_keyring, +quartz, +no_x11, +x11 variants

Reported by: julians37@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: haspatch maintainer Cc:
Port: darktable

Description

This update contains a number of changes:

  • Removed the dependency on fop since the user manual can't be built anyway due to a missing file xsl/darktable_fo.xsl
  • gconf and libgnome-keyring were required dependencies. They are now optional and disabled by default. patch-darktablerc.diff fixes a bug that would otherwise cause building with --disable-gconf to fail.
  • Building with gcc 4.4 or gcc 4.5 fails when building against gtk2 +quartz due to limitations in non-Apple gccs when reading certain Apple header files. I've copied the whole quartz/no_x11 variant stuff from the gimp2 portfile in order to be able to express this incompatibility. Could you please doublecheck that I've done the right thing?
  • Since gcc 4.4+ can't be used when building against quartz, but gcc 4.4+ is recommended, I have introduced another variant for gcc 4.6 which contains a patch for dealing with Apple header files. Admittedly this is debatable seeing that gcc 4.6 is still in beta and not yet properly supported by MacPorts. If you were hesitant to commit this change that would be understandable. At the same time it would be nice to enable people to build with gcc 4.6 should they choose to do so, seeing that otherwise they couldn't enjoy quartz-nativeness and openmp-acceleration simultaneously.
  • gcc 4.6 has stricter warnings which requires applying the patch-build-for-gcc45.diff patchfile.
  • Finally, patch-src-iop-lens.c.diff fixes a bug that would cause a segfault at shutdown in certain configurations.

I've reported the latter bug to upstream and it has been fixed on trunk as well. The remaining patches are not applicable to darktable trunk as they've completely revamped the build process which now is CMake-based.

Attachments (4)

darktable-071-add-gcc46-quartz-gconf-keyring.patch (3.8 KB) - added by julians37@… 13 years ago.
patch-darktablerc.diff (1.7 KB) - added by julians37@… 13 years ago.
patch-src-iop-lens.c.diff (583 bytes) - added by julians37@… 13 years ago.
patch-build-for-gcc46.diff (9.0 KB) - added by julians37@… 13 years ago.

Download all attachments as: .zip

Change History (11)

Changed 13 years ago by julians37@…

Changed 13 years ago by julians37@…

Attachment: patch-darktablerc.diff added

Changed 13 years ago by julians37@…

Attachment: patch-src-iop-lens.c.diff added

Changed 13 years ago by julians37@…

Attachment: patch-build-for-gcc46.diff added

comment:1 Changed 13 years ago by mf2k (Frank Schima)

Keywords: haspatch maintainer added
Version: 1.9.2

comment:2 Changed 13 years ago by julians37@…

Would it help if I broke down this patch into smaller pieces?

comment:3 Changed 13 years ago by julians37@…

Is there anything I can do to help this move along?

comment:4 Changed 13 years ago by mf2k (Frank Schima)

I'm looking at your changes. I'm not sure why the x11, no_x11 and quartz variants are all blank. Do we really need them at all?

comment:5 Changed 13 years ago by julians37@…

What I'm trying to achieve is:

  • Prevent people from building with +gcc44 or +gcc45 if they have gtk2 +quartz installed
  • Allow people who haven't yet got gtk2 et al installed to do: port install darktable +quartz (or +x11) and the correct dependency variants will be installed

Most of the quartz/x11/no_x11 stuff is borrowed from gimp2. As you can see, gimp2 also uses "empty" variants (x11 specifically). I assume they are used as a "marker" variant to distinguish between quartz-vs-x11 but to be honest, I'm not entirely sure how it all works/what best practice is here either.

Last edited 11 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:6 Changed 13 years ago by mf2k (Frank Schima)

Resolution: fixed
Status: newclosed

Sounds good. Committed in r75631.

comment:7 Changed 13 years ago by julians37@…

Thanks macsforever2000 :-)

Note: See TracTickets for help on using tickets.