Create a MacOS X App Bundle Using MacPorts: Difference between revisions

Line 21: Line 21:
===Install an Octave Port===
===Install an Octave Port===


MacPorts' Octave port includes the non-GPL [http://glaros.dtc.umn.edu/gkhome/views/metis METIS]. To avoid license violations do not bundle Metis with Octave and then distribute to others. In order to eliminate the Metis dependency, a local portfile may be used, and edited to remove metis.  A second motivation to use a local portfile is that the portfiles for the 3.4.x and 3.6.x series did not include all dependencies for the {{Codeline|<nowiki>print</nowiki>}} feature.  The missing dependencies are [http://www.macports.org/ports.php?by=name&substr=epstool epstool], [http://www.macports.org/ports.php?by=name&substr=pstoedit pstoedit], and [http://www.macports.org/ports.php?by=name&substr=transfig transfig].  A third motivation for a local portfile is to provide additional flexibility in resolving problems with creating an Octave DMG using the <code>port mdmg ...</code> command .
MacPorts' Octave port includes the non-GPL [http://glaros.dtc.umn.edu/gkhome/views/metis METIS]. To avoid license violations do not bundle Metis with Octave and then distribute to others. In order to eliminate the Metis dependency, a local portfile may be used, and edited to remove metis.  A second motivation to use a local portfile is that the portfiles for the 3.4.x and 3.6.x series did not include all dependencies for the <code>print</code> feature.  The missing dependencies are [http://www.macports.org/ports.php?by=name&substr=epstool epstool], [http://www.macports.org/ports.php?by=name&substr=pstoedit pstoedit], and [http://www.macports.org/ports.php?by=name&substr=transfig transfig].  A third motivation for a local portfile is to provide additional flexibility in resolving problems with creating an Octave DMG using the <code>port mdmg ...</code> command .


A [[Prototype MacPorts PortFile|prototype portfile]] which does not depend upon METIS and does depend upon epstool, pstoedit, and transfig has been prepared. After [http://guide.macports.org/chunked/development.local-repositories.html creating a local portfile repository] an Octave portfile may be added to the local repository using the commands below.
A [[Prototype MacPorts PortFile|prototype portfile]] which does not depend upon METIS and does depend upon epstool, pstoedit, and transfig has been prepared. After [http://guide.macports.org/chunked/development.local-repositories.html creating a local portfile repository] an Octave portfile may be added to the local repository using the commands below.
  <nowiki>mkdir -p ~/ports/math/octave-local
  <nowiki>mkdir -p ~/ports/math/octave-local
cp ~/Desktop/portfile ~/ports/math/octave-local</nowiki>
cp ~/Desktop/portfile ~/ports/math/octave-local</nowiki>
This assumes the Octave portfile had been placed on the user's Desktop, and that the local portfile repository is located in the users home folder and named {{Codeline|<nowiki>ports</nowiki>}}. After adding the portfile, the local repository must be indexed for MacPorts to recognize it.
This assumes the Octave portfile had been placed on the user's Desktop, and that the local portfile repository is located in the users home folder and named <code>ports</code>. After adding the portfile, the local repository must be indexed for MacPorts to recognize it.
  <nowiki>cd ~/ports
  <nowiki>cd ~/ports
portindex -f</nowiki>
portindex -f</nowiki>
Line 32: Line 32:
  <nowiki>sudo port install octave-local @3.6.4+atlas+fltk+gcc47</nowiki>
  <nowiki>sudo port install octave-local @3.6.4+atlas+fltk+gcc47</nowiki>


The use of the {{Codeline|+atlas}} variant is encouraged as bugs exist for Apple's {{Codeline|accelerate}} framework in both MacOS 10.6 and 10.7.  Octave's developers have included a fix for MacOS 10.6, but the fix does not work for MacOS 10.7.  There is some commentary on this in various developers discussion forums.  For example, see [https://github.com/mxcl/homebrew/issues/6649 this Homebrew thread (Octave 3.4 fails on lion)], [https://stat.ethz.ch/pipermail/r-sig-mac/2011-September/008564.html this R-Sig-Mac thread (R 2.13.1-patched, vecLib problem on Lion)], and [http://list.coin-or.org/pipermail/ipopt/2011-October/002610.html the COIN-OR thread (Ipopt - problems on OS X 10.7 Lion)].  Use of Apple's  {{Codeline|accelerate}} framework should also be avoided for {{Codeline|arpack}} and {{Codeline|qrupdate}}.  To install the recommended variants, use the {{Codeline|port}} commands below.
The use of the <code>+atlas</code> variant is encouraged as bugs exist for Apple's {{Codeline|accelerate}} framework in both MacOS 10.6 and 10.7.  Octave's developers have included a fix for MacOS 10.6, but the fix does not work for MacOS 10.7.  There is some commentary on this in various developers discussion forums.  For example, see [https://github.com/mxcl/homebrew/issues/6649 this Homebrew thread (Octave 3.4 fails on lion)], [https://stat.ethz.ch/pipermail/r-sig-mac/2011-September/008564.html this R-Sig-Mac thread (R 2.13.1-patched, vecLib problem on Lion)], and [http://list.coin-or.org/pipermail/ipopt/2011-October/002610.html the COIN-OR thread (Ipopt - problems on OS X 10.7 Lion)].  Use of Apple's  {{Codeline|accelerate}} framework should also be avoided for {{Codeline|arpack}} and {{Codeline|qrupdate}}.  To install the recommended variants, use the {{Codeline|port}} commands below.


  <nowiki>port install arpack +atlas+gcc47
  <nowiki>port install arpack +atlas+gcc47
364

edits