Difference between revisions of "Build FieldWorks for Mac"

From LSDevLinux
Jump to: navigation, search
(minor updates)
m (Reverted edits by KevinAlexander (Talk) to last revision by Mayhewn)
Line 72: Line 72:
  
 
However, this error seems to be a crash in <code>nant</code> itself rather than an error in FieldWorks.
 
However, this error seems to be a crash in <code>nant</code> itself rather than an error in FieldWorks.
 
== Bangladesh rickshaw puller starts clinic for the poor ==
 
 
Joynal Abedin still remembers the rainy and windy night when he saw his father die because there was no medical treatment. His village in the northern Mymensingh district of Bangladesh did not have any medical facility at that time, and the nearest hospital was about 20km (12 miles) away.
 
 
[[http://goodvillenews.com/Bangladesh-rickshaw-puller-starts-clinic-for-the-poor-0zbEXF.html Bangladesh rickshaw puller starts clinic for the poor]]
 
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
 
== Love Everything, Be Attached To Nothing ==
 
 
As human beings we all want to be happy and free from misery we have learned that the key to happiness is inner peace. The greatest obstacles to inner peace are disturbing emotions such as anger, attachment, fear and suspicion, while love and compassion and a sense of universal responsibility are the sources of peace and happiness. Dalai Lama
 
 
[[http://goodvillenews.com/Love-Everything-Be-Attached-To-Nothing-RSJu6i.html Love Everything, Be Attached To Nothing]]
 
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
 
== Not a Fairytale: Americas First Public Food Forest ==
 
 
Hungry? Just head over to the park. Seattles new food forest aims to be an edible wilderness. Seattles vision of an urban food oasis is going forward. A seven-acre plot of land in the citys Beacon Hill neighborhood will be planted with hundreds of different kinds of edibles
 
 
[[http://goodvillenews.com/Not-a-Fairytale-Americas-First-Public-Food-Forest-N18Amw.html Not a Fairytale: Americas First Public Food Forest]]
 
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
 
== Starting A Slow Story Movement ==
 
 
"It is said that we become the stories that we tell among ourselves. This might have been true before we became salespersons. For a few decades now, I think we have become numb to the stories that we tell among ourselves. So stories have become shorter and crisper to the length of a tweet. We are so committed to telling a story to the point that finally what remains is a dimensionless point.
 
 
[[http://goodvillenews.com/Starting-A-Slow-Story-Movement-V4LmVD.html Starting A Slow Story Movement]]
 
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
 
== What Ive Learned About Learning ==
 
 
We learn more by looking for the answer to a question and not finding it than we do from learning the answer itself. ~Lloyd AlexanderI am a teacher and an avid learner, and Im passionate about both.Im a teacher because I help Eva homeschool our kids OK, she does most of the work, but I do help, mostly with math but with everything else too.
 
 
[[http://goodvillenews.com/What-Ive-Learned-About-Learning-I45BZI.html What Ive Learned About Learning]]
 
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 

Revision as of 07:10, 30 July 2012

The port of FieldWorks to Mac is still at an early stage, although we are hopeful that almost all of the work done to port it to Linux will carry over to Mac with very little change.

This page documents the current state of our knowledge about the steps that need to be followed.

Prerequisites

We recommend that needed software packages be installed with MacPorts, whenever possible. This makes it much easier to keep things organized and updated. There is a wide range of ports available, and the versions are usually quite recent.

For the MacPorts versions of libraries to be used instead of the built-in ones, several environment variables need to be set. This can be done in ~/.profile (for use in Terminal) as follows:

export CPATH=/opt/local/include${CPATH+:}$CPATH
export LIBRARY_PATH=/opt/local/lib${LIBRARY_PATH+:}$LIBRARY_PATH
export DYLD_LIBRARY_PATH=/opt/local/lib${DYLD_LIBRARY_PATH+:}$DYLD_LIBRARY_PATH

It's also possible to set them in ~/.MacOSX/environment.plist, making them applicable to all GUI programs, but this will cause the built-in Mac OS apps to use MacPorts libraries rather than the built-in ones they were developed with, which is not recommended and is likely to cause problems.

Install and build dependencies

Install the following MacPorts packages:

  • autoconf autoconf-archive automake libtool
  • mono nant
  • ImageMagick +wmf +jbig +jpeg2
  • icu
  • gtkmm
  • enchant
  • ossp-uuid
  • pccts
  • quilt

Although some of the packages above (eg autoconf) are already installed on the OS, we typically need the MacPorts ones, which are newer, or are needed by add-ons like autoconf-archive.

There is a Mac-native version of GTK which can be installed by substituting the following lines:

  • sudo port install gtkmm +quartz +atsui +no_x11
  • sudo port install ImageMagick +wmf +jbig +jpeg2 +no_x11

However, the Quartz version is a little less mature and may have a few glitches in it, so we recommend starting out with the X11 version.

Mono

Building and running FieldWorks requires a special version of mono. So you will need to build mono from source.

Currently there are a couple of problems with MacPorts that require workarounds, although hopefully these will be resolved soon:

  • There is a problem with the atlas port, which is a dependency of py26-numpy. It conflicts with libLAPACK.dylib from /System/Library/Frameworks/. If you have installed either of these two ports (py26-numpy and atlas) yourself, they must be uninstalled before building mono.
  • The MacPorts version of mono crashes when trying to build mono-basic. However, if the mono subdirectory is already built and installed, it's possible to build mono-basic with the newly-installed mono compiler. After checkout-and-build-mono has failed, do the following:
for D in {libgdiplus,mono,mono-basic}/fieldworks-*; do
  make -C $D && sudo make install -C $D
done

FieldWorks

Currently, building FieldWorks fails on Mac:

[writeregistry] Opening LocalMachine:SOFTWARE\SIL\FieldWorks\7.0\
[writeregistry] Setting RootCodeDir to …/fieldworks/DistFiles

Unhandled Exception: System.InvalidCastException: Cannot cast from source type to destination type.
 at System.Threading.Timer+Scheduler.SchedulerThread () [0x0015e] in
 …/mono-calgary/mono/fieldworks-mono/mcs/class/corlib/System.Threading/Timer.cs:345
 at System.Threading.Thread.StartUnsafe () [0x00016] in
 …/mono-calgary/mono/fieldworks-mono/mcs/class/corlib/System.Threading/Thread.cs:844

However, this error seems to be a crash in nant itself rather than an error in FieldWorks.