Opened 13 years ago

Closed 12 years ago

#31374 closed defect (fixed)

darktable @0.7.1 build failure

Reported by: barrasstim@… Owned by: julians37@…
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: lion Cc: ryandesign (Ryan Carsten Schmidt), stealthjeff@…, help@…, heitzmann@…, ctreleaven (Craig Treleaven)
Port: darktable

Description

Unable to build darktable in fresh macports on OSX 10.7.1, XCode 4.1

Attachments (2)

main.log (127.3 KB) - added by barrasstim@… 13 years ago.
main.log
darktable-0.9.2-incomplete.diff (2.0 KB) - added by ryandesign (Ryan Carsten Schmidt) 13 years ago.
incomplete patch

Download all attachments as: .zip

Change History (9)

Changed 13 years ago by barrasstim@…

Attachment: main.log added

main.log

comment:1 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added; julians37@… removed
Keywords: darktable build install removed
Owner: changed from macports-tickets@… to julians37@…

The first thing we should try to do is update the port to the latest version, 0.9.2. I'll attach the patch I've started working on for this, but it's incomplete: the remaining patchfiles patch-darktablerc.diff and patch-build-for-gcc46.diff do not apply anymore because the files they patch are gone or possibly moved or renamed. So someone will still have to investigate if any of those patches need to be rewritten.

Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

incomplete patch

comment:2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: stealthjeff@… added

Has duplicate #32735.

0.9.3 is available now. Help updating the port is appreciated.

comment:3 Changed 13 years ago by heitzmann@…

I've just installed macports yesterday for the 1st time, so I have no idea how to actually help maintain a portfile, but I've managed to compile darktable 0.9.3 and I thought this information might be helpful.

Once I installed all dependencies I had to change the file src/common/darktable.c, line 81: removed "static", due to a previous non-static declaration in stdio.h.

Then I got undefined symbols for architecture x86_64. What I did was to install gcc46 via macports, do a "port select gcc mp-gcc46" and voila, the build.sh script included with the darktable source dist worked.

comment:4 Changed 13 years ago by heitzmann@…

Continuation: the compilation worked, but not the program. Darktable opens fine, but it crashes as soon as I try to import a folder. I'll keep working on it.

comment:5 Changed 12 years ago by help@…

Cc: help@… added

Cc Me!

comment:6 Changed 12 years ago by ctreleaven (Craig Treleaven)

Note that Darktable v. 1.1.2 was released on January 15, 2013. The code also moved to GitHub back in May 2012. Unless/until this port is updated, anyone wanting to try Darktable should be advised to download the .dmg installer from the Darktable web site:

http://www.darktable.org/install/#osx

Craig

comment:7 in reply to:  6 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: heitzmann@… ctreleaven@… added
Resolution: fixed
Status: newclosed

Replying to heitzmann@…:

Once I installed all dependencies I had to change the file src/common/darktable.c, line 81: removed "static", due to a previous non-static declaration in stdio.h.

You're talking about this:

#ifdef __APPLE__
static int dprintf(int fd,const char *fmt, ...)

It appears this block no longer exists in darktable 1.1.2 so we don't need to patch anything anymore for this.

Replying to ctreleaven@…:

Note that Darktable v. 1.1.2 was released on January 15, 2013. The code also moved to GitHub back in May 2012.

I updated the port to 1.1.2 in r101696:

  • added build dependency on cmake
  • removed build dependency on intltool; can find no evidence of it being used
  • added library dependencies on gettext, zlib, json-glib, libxml2; switched lcms dependency to lcms2; the cmakelists check for all of these explicitly
  • used build.sh script
  • added patch to make build.sh only configure, not build
  • removed patch-src-common-exif.cc.diff which was included upstream
  • removed patch-darktablerc.diff which was added to fix a build failure which I cannot reproduce now
  • removed patch-src-iop-lens.c.diff because the line being patched has been changed in a different way upstream
  • removed patch-Werror.diff and patch-build-for-gcc46.diff because the files being patched no longer exist
  • simplified gcc46 variant
  • added gcc47 variant
  • updated gnome_keyring variant
  • removed gconf variant because darktable doesn't appear to be able to make use of gconf anymore
  • used require_active_variants in quartz and x11 variants
  • rewrote master_sites to avoid redirects
  • changed license from GPL-3 to GPL-3+ based on comments in headers of source files

Since current distfiles are still on SourceForge and they have a separate web site, there appeared to be no advantage to indicating in the portfile that the code is hosted on github, so I didn't.

I cannot get the port to build with any gcc variants; it fails with a zillion "no such instruction" errors. Nor can I build it with the +quartz variant because dependency gtk-engines2 does not build when pango is installed with +quartz. But I figured that a port that builds and runs with only a few of its variants is better than a port that does not build at all. We can file new tickets for any remaining issues.

Note: See TracTickets for help on using tickets.