Add MacOSX build modules, bundle description, and ancilary files needed

to build and bundle Gramps with Gtk-OSX and ige-mac-bundler.



svn: r16318
This commit is contained in:
John Ralls 2010-12-27 22:42:13 +00:00
parent 4daf72f8d8
commit a5ab94721f
8 changed files with 727 additions and 0 deletions

30
mac/Info.plist Executable file
View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>Gramps</string>
<key>CFBundleGetInfoString</key>
<string>3.2.5, (C) 1997-2010 The Gramps Team http://www.gramps-project.org</string>
<key>CFBundleIconFile</key>
<string>gramps.icns</string>
<key>CFBundleIdentifier</key>
<string>org.gramps-project.gramps</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>3.2.5</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>3.2.5</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 1997 - 2010 The Gramps Team, GNU General Public License.</string>
<key>LSMinimumSystemVersion</key>
<string>10.5</string>
</dict>
</plist>

7
mac/gramps Normal file
View File

@ -0,0 +1,7 @@
import sys
import os.path
#Modified from the version shipped with pygtk, to point at where the pygtk-demo modules are in the bundle.
pygtklibdir = os.path.join(os.environ["GTK_EXE_PREFIX"], "lib", "pygtk", "2.0")
sys.path.insert(0, pygtklibdir)
execfile(os.path.join("GTK_DATA_PREFIX", "share", "gramps", "gramps.py"))

200
mac/gramps.accel Normal file
View File

@ -0,0 +1,200 @@
; gramps.py GtkAccelMap rc-file -*- scheme -*-
; this file is an automated accelerator map dump
;
(gtk_accel_path "<Actions>/People Tree View/PersonAll/Edit" "<Meta>Return")
; (gtk_accel_path "<Actions>/FileWindow/PluginStatus" "")
; (gtk_accel_path "<Actions>/ReportWindow/place_report" "")
; (gtk_accel_path "<Actions>/FileWindow/ViewMenu" "")
(gtk_accel_path "<Actions>/Pedigree/Forward/Forward" "<Mod5>Right")
; (gtk_accel_path "<Actions>/ReportWindow/birthday_report" "")
; (gtk_accel_path "<Actions>/ReportWindow/marker_report" "")
; (gtk_accel_path "<Actions>/ReportWindow/Graphs" "")
; (gtk_accel_path "<Actions>/FileWindow/FAQ" "")
; (gtk_accel_path "<Actions>/ToolWindow/mediaman" "")
(gtk_accel_path "<Actions>/Families/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Events/ChangeOrder/Add" "<Mod5><Meta>i")
; (gtk_accel_path "<Actions>/ReportWindow/det_descendant_report" "")
; (gtk_accel_path "<Actions>/ReportWindow/statistics_chart" "")
; (gtk_accel_path "<Actions>/Person View/PersonAll/FilterEdit" "")
(gtk_accel_path "<Actions>/Events/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/ToolWindow/rebuild_refmap" "")
; (gtk_accel_path "<Actions>/ToolWindow/Database-Processing" "")
(gtk_accel_path "<Actions>/Events/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/People Tree View/PersonEdit/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/Notes/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Undo/Undo" "<Meta>z")
(gtk_accel_path "<Actions>/MainWindow/Import" "<Meta>i")
; (gtk_accel_path "<Actions>/FileWindow/Filter" "")
; (gtk_accel_path "<Actions>/ReportWindow/summary" "")
(gtk_accel_path "<Actions>/Media/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/FileWindow/HelpMenu" "")
(gtk_accel_path "<Actions>/Place View/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/Repositories/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/ReportWindow/book" "")
; (gtk_accel_path "<Actions>/FileWindow/FileMenu" "")
(gtk_accel_path "<Actions>/Person View/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/ReportWindow/records" "")
; (gtk_accel_path "<Actions>/ReportWindow/ancestor_report" "")
; (gtk_accel_path "<Actions>/ToolWindow/chname" "")
; (gtk_accel_path "<Actions>/Person View/PersonEdit/FastMerge" "")
(gtk_accel_path "<Actions>/Relationships/Forward/Forward" "<Mod5>Right")
; (gtk_accel_path "<Actions>/Person View/PersonEdit/ExportTab" "")
(gtk_accel_path "<Actions>/Notes/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/ToolWindow/editowner" "")
; (gtk_accel_path "<Actions>/ReportWindow/hourglass_graph" "")
(gtk_accel_path "<Actions>/Repositories/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Media/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>Delete" "<Meta>Delete")
; (gtk_accel_path "<Actions>/FileWindow/Toolbar" "")
(gtk_accel_path "<Actions>/Place Tree View/ChangeOrder/Add" "<Mod5><Meta>i")
; (gtk_accel_path "<Actions>/ReportWindow/number_of_ancestors_report" "")
(gtk_accel_path "<Actions>/Families/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Person View/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/Relationships/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/ReportWindow/familylines_graph" "")
(gtk_accel_path "<Actions>/Person View/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Place View/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/Sources/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/Person View/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/ToolWindow/relcalc" "")
(gtk_accel_path "<Actions>/AllMainWindow/Export" "<Meta>e")
(gtk_accel_path "<Actions>/Pedigree/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Relationships/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/ToolWindow/reorder_ids" "")
(gtk_accel_path "<Actions>/Place Tree View/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/RecentFiles/RecentMenu0" "")
(gtk_accel_path "<Actions>/Person View/PersonAll/Edit" "<Meta>Return")
; (gtk_accel_path "<Actions>/FileWindow/MailingLists" "")
(gtk_accel_path "<Actions>/Place View/Forward/Forward" "<Mod5>Right")
; (gtk_accel_path "<Actions>/ReportWindow/kinship_report" "")
; (gtk_accel_path "<Actions>/MainWindow/BookMenu" "")
; (gtk_accel_path "<Actions>/ToolWindow/evname" "")
; (gtk_accel_path "<Actions>/ToolWindow/Analysis-and-Exploration" "")
; (gtk_accel_path "<Actions>/ReportWindow/indiv_complete" "")
; (gtk_accel_path "<Actions>/AllMainWindow/F12" "F12")
(gtk_accel_path "<Actions>/Place Tree View/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/AllMainWindow/F11" "F11")
; (gtk_accel_path "<Actions>/ToolWindow/sortevents" "")
(gtk_accel_path "<Actions>/Fan Chart/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/Media/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/Fan Chart/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/Person View/PersonEdit/CmpMerge" "")
; (gtk_accel_path "<Actions>/MainWindow/ToolsMenu" "")
(gtk_accel_path "<Actions>/Events/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Families/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Place View/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/ReportWindow/descend_chart" "")
; (gtk_accel_path "<Actions>/ToolWindow/dupfind" "")
; (gtk_accel_path "<Actions>/MainWindow/EditMenu" "")
(gtk_accel_path "<Actions>/UndoHistory/UndoHistory" "<Meta>h")
(gtk_accel_path "<Actions>/Sources/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/FileWindow/ReportBug" "")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>Insert" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Notes/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/People Tree View/ChangeOrder/Add" "<Mod5><Meta>i")
; (gtk_accel_path "<Actions>/FileWindow/Sidebar" "")
; (gtk_accel_path "<Actions>/Person View/PersonAll/Dummy" "")
(gtk_accel_path "<Actions>/Redo/Redo" "<Shift><Meta>z")
(gtk_accel_path "<Actions>/Person View/PersonEdit/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/ReportWindow/family_group" "")
; (gtk_accel_path "<Actions>/ToolWindow/excity" "")
(gtk_accel_path "<Actions>/Repositories/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/Repositories/Forward/Forward" "<Mod5>Right")
; (gtk_accel_path "<Actions>/FileWindow/UserManual" "F1")
; (gtk_accel_path "<Actions>/FileWindow/OpenRecent" "")
(gtk_accel_path "<Actions>/Families/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/Place Tree View/Forward/Forward" "<Mod5>Right")
; (gtk_accel_path "<Actions>/ReportWindow/rel_graph" "")
; (gtk_accel_path "<Actions>/ReportWindow/Web-Pages" "")
; (gtk_accel_path "<Actions>/ReportWindow/WebCal" "")
; (gtk_accel_path "<Actions>/ReportWindow/Text-Reports" "")
; (gtk_accel_path "<Actions>/Person View/PersonAll/QuickReport" "")
; (gtk_accel_path "<Actions>/FileWindow/HomePage" "")
(gtk_accel_path "<Actions>/Relationships/Family/Edit" "<Meta>Return")
; (gtk_accel_path "<Actions>/ToolWindow/patchnames" "")
(gtk_accel_path "<Actions>/Relationships/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/ReportWindow/det_ancestor_report" "")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>BackSpace" "<Meta>BackSpace")
; (gtk_accel_path "<Actions>/ToolWindow/Utilities" "")
; (gtk_accel_path "<Actions>/AllMainWindow/WindowsMenu" "")
(gtk_accel_path "<Actions>/Families/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/AllMainWindow/F9" "F9")
; (gtk_accel_path "<Actions>/AllMainWindow/F8" "F8")
; (gtk_accel_path "<Actions>/AllMainWindow/F7" "F7")
; (gtk_accel_path "<Actions>/AllMainWindow/F6" "F6")
(gtk_accel_path "<Actions>/Pedigree/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/AllMainWindow/F5" "F5")
; (gtk_accel_path "<Actions>/AllMainWindow/F4" "F4")
; (gtk_accel_path "<Actions>/AllMainWindow/F3" "F3")
; (gtk_accel_path "<Actions>/AllMainWindow/F2" "F2")
(gtk_accel_path "<Actions>/Notes/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/Sources/ChangeOrder/Add" "<Mod5><Meta>i")
; (gtk_accel_path "<Actions>/ReportWindow/Books" "")
; (gtk_accel_path "<Actions>/FileWindow/About" "")
(gtk_accel_path "<Actions>/Notes/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/ReportWindow/endofline_report" "")
(gtk_accel_path "<Actions>/People Tree View/PersonEdit/Add" "<Mod5><Meta>i")
; (gtk_accel_path "<Actions>/ToolWindow/dbrowse" "")
(gtk_accel_path "<Actions>/Pedigree/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/ToolWindow/soundgen" "")
; (gtk_accel_path "<Actions>/FileWindow/ExtraPlugins" "")
; (gtk_accel_path "<Actions>/AllMainWindow/ReportsMenu" "")
(gtk_accel_path "<Actions>/categoryviews/personlistview_0" "<Meta>1")
; (gtk_accel_path "<Actions>/ReportWindow/descend_report" "")
; (gtk_accel_path "<Actions>/ReportWindow/fan_chart" "")
(gtk_accel_path "<Actions>/MainWindow/ScratchPad" "<Meta>b")
(gtk_accel_path "<Actions>/Person View/Edit" "<Meta>Return")
; (gtk_accel_path "<Actions>/ToolWindow/rebuild" "")
; (gtk_accel_path "<Actions>/ToolWindow/eventcmp" "")
; (gtk_accel_path "<Actions>/AllMainWindow/GoMenu" "")
; (gtk_accel_path "<Actions>/ReportWindow/timeline" "")
; (gtk_accel_path "<Actions>/ToolWindow/Database-Repair" "")
; (gtk_accel_path "<Actions>/ReportWindow/Graphical-Reports" "")
(gtk_accel_path "<Actions>/Person View/HomePerson" "<Mod5>Home")
; (gtk_accel_path "<Actions>/ReportWindow/ancestor_chart" "")
; (gtk_accel_path "<Actions>/ToolWindow/check" "")
(gtk_accel_path "<Actions>/Fan Chart/Forward/Forward" "<Mod5>Right")
; (gtk_accel_path "<Actions>/ToolWindow/chtype" "")
(gtk_accel_path "<Actions>/Notes/ChangeOrder/Add" "<Mod5><Meta>i")
; (gtk_accel_path "<Actions>/ReportWindow/calendar" "")
; (gtk_accel_path "<Actions>/FileWindow/Fullscreen" "F11")
(gtk_accel_path "<Actions>/Fan Chart/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/ReportWindow/navwebpage" "")
(gtk_accel_path "<Actions>/Repositories/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/Families/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/ToolWindow/verify" "")
(gtk_accel_path "<Actions>/People Tree View/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Sources/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/ToolWindow/not_related" "")
(gtk_accel_path "<Actions>/People Tree View/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/FileWindow/TipOfDay" "")
(gtk_accel_path "<Actions>/Media/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/FileWindow/Quit" "<Meta>q")
(gtk_accel_path "<Actions>/People Tree View/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/Place Tree View/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/FileWindow/Open" "<Meta>o")
(gtk_accel_path "<Actions>/Place View/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/Media/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/MainWindow/ConfigView" "<Shift><Meta>c")
(gtk_accel_path "<Actions>/People Tree View/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/FileWindow/KeyBindings" "")
(gtk_accel_path "<Actions>/Repositories/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Events/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/People Tree View/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>P" "<Meta>p")
(gtk_accel_path "<Actions>/Person View/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>N" "<Meta>n")
(gtk_accel_path "<Actions>/Place Tree View/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/AllMainWindow/Abandon" "")
(gtk_accel_path "<Actions>/Events/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>J" "<Meta>j")
(gtk_accel_path "<Actions>/Media/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/ToolWindow/remove_unused" "")
; (gtk_accel_path "<Actions>/Person View/PersonOther/SetActive" "")
(gtk_accel_path "<Actions>/categoryviews/personview_1" "<Meta>2")
(gtk_accel_path "<Actions>/Sources/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/Place View/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Person View/PersonEdit/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Sources/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Person View/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/FileWindow/Preferences" "")

157
mac/gramps.bundle Normal file
View File

@ -0,0 +1,157 @@
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<app-bundle>
<meta>
<prefix name="default">${env:JHBUILD_PREFIX}</prefix>
<destination overwrite="yes">${env:HOME}/Desktop</destination>
<run-install-name-tool/>
<launcher-script>${project}/launcher.sh</launcher-script >
</meta>
<plist>${project}/Info.plist</plist>
<!-- We have to have this, but the result is ignored. -->
<main-binary>
${prefix}/bin/gramps
</main-binary>
<!-- We need to pack our own Python to avoid compatibility problems. -->
<binary dest="${bundle}/Contents/MacOS">
${prefix}/bin/python
</binary>
<!-- Copy in GTK+ modules. Note the use of the
"${pkg:module:variable}" macro, which evaluates to a pkg-config
variable in the specified module. Note that any libraries that
binaries link to are also copied in automatically.
-->
<binary>
${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/loaders/*.so
</binary>
<!-- Copy in libpyglib, which will pull in other dependencies we need -->
<binary>
${prefix}/lib/libpyglib-2.0-python.0.dylib
</binary>
<binary recurse="True">
${prefix}/lib/python2.6/*.so
</binary>
<binary>
${prefix}/lib/librsvg-2.2.dylib
</binary>
<binary>
${prefix}/lib/libwebkit-1.0.2.dylib
</binary>
<binary>
${prefix}/lib/libgoocanvas.3.dylib
</binary>
<binary>
${prefix}/lib/libigemacintegration.0.dylib
</binary>
<binary>
${prefix}/lib/libart_lgpl_2.2.dylib
</binary>
<binary>
${prefix}/lib/libdb-4.dylib
</binary>
<binary>
${prefix}/lib/libenchant.dylib
</binary>
<binary>
${prefix}/lib/libgettextpo.0.dylib
</binary>
<binary>
${prefix}/lib/libproxy.0.dylib
</binary>
<binary>
${prefix}/lib/enchant
</binary>
<!-- Translation filenames, one for each program or library that you
want to copy in to the bundle. The "dest" attribute is
optional, as usual. Bundler will find all translations of that
library/program under the indicated directory and copy them.-->
<translations name="gtk20">
${prefix}/share/locale
</translations>
<translations name="gramps">
${prefix}/share/locale
</translations>
<!-- We have to pull in the python modules, which are mixed python
and loadable modules. -->
<data recurse="True">
${prefix}/lib/python2.6/*.py
</data>
<data>
${prefix}/share/gramps/
</data>
<data>
${prefix}/share/webkit-1.0/
</data>
<data>
${prefix}/share/enchant/
</data>
<data>
${prefix}/share/mime/
</data>
<data>
${prefix}/share/mime-info/
</data>
<!-- Copy in the themes data. You may want to trim this to save space
in your bundle. -->
<data>
${prefix}/share/themes
</data>
<!-- Copy icons. Note that the .icns file is an Apple format which
contains up to 4 sizes of icon. You can use
/Developer/Applications/Utilities/Icon Composer.app to import
artwork and create the file.-->
<data dest="${bundle}/Contents/Resources">
${project}/gramps.icns
</data>
<!-- This is where theme commands go. You can copy them in from your
theme of choice if they provide and example, or you can just
change the source path. -->
<data dest="${bundle}/Contents/Resources/etc/gtk-2.0/gtkrc">
${project}/gtkrc
</data>
<data dest="${bundle}/Contents/Resources/share/gramps/data/accel.gramps">
${project}/gramps.accel
</data>
<!-- Icon themes to copy. The "icons" property can be either of
"auto", "all", or "none". All or none should be
self-explanatory, while auto means that the script will try to
figure out which icons are needed. This is done by getting all
the strings from all copied binaries, and matching them against
icon names. To be safe, you should use "all". "none" is useful
if you want just the index.theme file but no icons, mostly
needed for the "hicolor" base theme.
>
<icon-theme icons="auto">
Tango
</icon-theme -->
</app-bundle>

BIN
mac/gramps.icns Normal file

Binary file not shown.

162
mac/gramps.modules Normal file
View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE moduleset SYSTEM "moduleset.dtd">
<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
<moduleset>
<repository type="tarball" name="sourceforge"
href="http://downloads.sourceforge.net/sourceforge/"/>
<repository type="tarball" name="pywebkitgtk"
href="http://pywebkitgtk.googlecode.com/files/"/>
<repository type="tarball" name="ftp.gnome.org"
href="http://ftp.gnome.org/pub/GNOME/sources/"/>
<repository type="tarball" name="pyxdg"
href="http://www.gnome.org/~fpeters/pyxdg/"/>
<repository type="tarball" name="xdg-utils"
href="http://portland.freedesktop.org/download/"/>
<repository type="svn" name="gramps"
href="https://gramps.svn.sourceforge.net/svnroot/"/>
<repository type="svn" name="gramps-addons"
href="https://gramps-addons.svn.sourceforge.net/svnroot/gramps-addons/"/>
<repository type="tarball" name="oracle"
href="http://download.oracle.com/"/>
<repository type="tarball" name="pymodules"
href="http://pypi.python.org/packages/source/"/>
<!--
Special instructions:
Gramps uses BerkeleyDB (BDB) via Python. BDB is normally included in Linux systems, but Apple prefers other mechanisms for data storage, so it isn't included on Macs.
jhbuild bootstrap && jhbuild &double-hyphen;moduleset=http://github.com/jralls/gtk-osx-build/raw/master/projects/gramps/gramps.modules build meta-gtk-osx-bootstrap gramps
If you're going to bundle GRAMPS, you'll need to add
_gtk_osx_use_jhbuild_python = True
to your .jhbuildrc-custom and pass the &double-hyphen;ignore-system argument to jhbuild bootstrap. (That &double-hyphen; entity is fake because double-hyphens aren't allowed in xml comments. Just substitute a real double-hyphen when you type it on the command line.)
Open a jhbuild shell.
For reasons known only to themselves, the Python project have set up their makefiles to create libpython without write privs, so you need to
chmod +w $PREFIX/lib/libpython2.6.dylib
before running
ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
-->
<include href="http://github.com/jralls/gtk-osx-build/raw/master/modulesets-stable/gtk-osx.modules"/>
<autotools id="gramps" autogen-sh="configure">
<branch module="gramps/gramps-3.2.5.tar.gz" version="3.2.5"
repo="sourceforge">
<patch file="http://github.com/jralls/gtk-osx-build/raw/master/patches/gramps.patch" strip="0"/>
<patch file="http://github.com/jralls/gtk-osx-build/raw/master/patches/gramps-macui.patch" strip="1"/>
<patch file="http://github.com/jralls/gtk-osx-build/raw/master/patches/gramps-accelmap.patch" strip="1"/>
<patch file="http://github.com/jralls/gtk-osx-build/raw/master/patches/gramps-pedigree.patch" strip="1"/>
</branch>
<dependencies>
<dep package="meta-gtk-osx-python"/>
<dep package="pyWebKitGtk"/>
<dep package="librsvg2"/>
<dep package="pygoocanvas"/>
<dep package="shared-mime-info"/>
<dep package="pyenchant"/>
<dep package="pygtk-extras"/>
</dependencies>
</autotools>
<autotools id="gramps-svn" >
<branch module="gramps" repo="gramps"/>
<dependencies>
<dep package="meta-gtk-osx-python"/>
<dep package="pyWebKitGtk"/>
<dep package="librsvg2"/>
<dep package="pygoocanvas"/>
<dep package="shared-mime-info"/>
</dependencies>
</autotools>
<distutils id="gramps-addons">
<branch module="branches/gramps32/contrib"
repo="gramps-addons"/>
<dependencies>
<dep package="gramps"/>
</dependencies>
</distutils>
<distutils id="gramps-addons-svn">
<branch module="gramps-addons/trunk/contrib"
repo="gramps-addons"/>
<dependencies>
<dep package="gramps-svn"/>
</dependencies>
</distutils>
<autotools id="pyWebKitGtk" >
<branch module="pywebkitgtk-1.1.7.tar.bz2" version="1.1.7"
repo="pywebkitgtk"/>
<dependencies>
<dep package="WebKit"/>
<dep package="sqlite"/>
</dependencies>
</autotools>
<!-- Later versions of librsvg2 require libxml2-2.7, available only in
Snow Leopard -->
<autotools id="librsvg2" >
<branch module="librsvg/2.22/librsvg-2.22.3.tar.bz2" version="2.22.3"
repo="ftp.gnome.org"/>
<dependencies>
<dep package="libxml2"/>
<dep package="libgsf"/>
<dep package="libart_lgpl"/><!-- goffice.modules -->
</dependencies>
</autotools>
<autotools id="goocanvas">
<branch module="goocanvas/0.15/goocanvas-0.15.tar.bz2" version="0.15"
repo="ftp.gnome.org"/>
<dependencies>
¡ <dep package="gtk+"/>
</dependencies>
</autotools>
<autotools id="pygoocanvas" version="0.14.1">
<branch module="pygoocanvas/0.14/pygoocanvas-0.14.1.tar.gz" version="0.14.1"
repo="ftp.gnome.org">
</branch>
<dependencies>
<dep package="goocanvas"/>
<dep package="pygtk"/>
</dependencies>
</autotools>
<distutils id="pyenchant">
<branch repo="pymodules" module="p/pyenchant/pyenchant-1.6.1.tar.gz"
version="1.6.1"/>
</distutils>
<distutils id="pyxdg">
<branch repo="pyxdg" module="pyxdg-0.17.tar.gz" version="0.17"
hash="sha256:fbc87711922b2dd6ceb23ee041f1f96da9b7dbb6971df03a3081b439def069ce"
md5sum="a086de99cc536095684d87f15594e4db" size="37372"/>
</distutils>
<autotools id="xdg-utils">
<branch module="xdg-utils-1.0.2.tgz" version="1.0.2" repo="xdg-utils"/>
</autotools>
<autotools id="berkeleydb" autogen-sh="dist/configure"
autogen-template="cd build_unix; ../%(autogen-sh)s --prefix %(prefix)s --libdir %(libdir)s %(autogenargs)s" makeargs="-C build_unix"
makeinstallargs="-C build_unix install">
<branch module="berkeley-db/db-4.7.25.NC.tar.gz" version="4.7.25"
repo="oracle" />
</autotools>
</moduleset>

2
mac/gtkrc Normal file
View File

@ -0,0 +1,2 @@
gtk-icon-theme-name = "Tango"
gtk-enable-mnemonics = 0

169
mac/launcher.sh Executable file
View File

@ -0,0 +1,169 @@
#!/bin/sh
name="`basename $0`"
tmp="`pwd`/$0"
tmp=`dirname "$tmp"`
tmp=`dirname "$tmp"`
bundle=`dirname "$tmp"`
bundle_contents="$bundle"/Contents
bundle_res="$bundle_contents"/Resources
bundle_lib="$bundle_res"/lib
bundle_bin="$bundle_res"/bin
bundle_data="$bundle_res"/share
bundle_etc="$bundle_res"/etc
export XDG_DATA_DIRS="$bundle_data"
export DYLD_LIBRARY_PATH="$bundle_lib"
export LD_LIBRARY_PATH="$DYLD_LIBRARY_PATH"
export GTK_DATA_PREFIX="$bundle_res"
export GTK_EXE_PREFIX="$bundle_res"
export GTK_PATH="$bundle_res"
export GTK2_RC_FILES="$bundle_etc/gtk-2.0/gtkrc"
export GTK_IM_MODULE_FILE="$bundle_etc/gtk-2.0/gtk.immodules"
export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-2.0/gdk-pixbuf.loaders"
export PANGO_RC_FILE="$bundle_etc/pango/pangorc"
#Set $PYTHON to point inside the bundle
export PYTHON="$bundle_contents/MacOS/python"
#Add the bundle's python modules
PYTHONPATH="$bundle_lib/python2.6:$PYTHONPATH"
PYTHONPATH="$bundle_lib/python2.6/site-packages:$PYTHONPATH"
PYTHONPATH="$bundle_lib/python2.6/site-packages/gtk-2.0:$PYTHONPATH"
PYTHONPATH="$bundle_lib/python2.6/lib-dynload:$PYTHONPATH"
#Add our program's modules to $PYTHONPATH.
PYTHONPATH="$bundle_lib/pygtk/2.0:$PYTHONPATH"
export PYTHONPATH
export GRAMPSDIR="$bundle_data"/gramps
export GRAMPSI18N="$bundle_data"/locale
export GRAMPSHOME="$HOME/Library/Application Support"
# Set the locale-related variables appropriately:
unset LANG LC_MESSAGES LC_MONETARY
# Has a language ordering been set?
# If so, set LC_MESSAGES accordingly; otherwise skip it.
# Set the locale-related variables appropriately:
unset LANG LC_MESSAGES LC_MONETARY LC_COLLATE
# Has a language ordering been set?
# If so, set LC_MESSAGES and LANG accordingly; otherwise skip it.
# First step uses sed to clean off the quotes and commas, to change - to _, and change the names for the chinese scripts from "Hans" to CN and "Hant" to TW.
APPLELANGUAGES=`defaults read .GlobalPreferences AppleLanguages | sed -En -e 's/\-/_/' -e 's/Hant/TW/' -e 's/Hans/CN/' -e 's/[[:space:]]*\"?([[:alnum:]_]+)\"?,?/\1/p' `
if test "$APPLELANGUAGES"; then
# A language ordering exists.
# Test, item per item, to see whether there is an corresponding locale.
for L in $APPLELANGUAGES; do
#test for exact matches:
if test -f "$GRAMPSI18N/${L}/LC_MESSAGES/gramps.mo"; then
export LANG=$L
break
fi
#This is a special case, because often the original strings are in US
#English and there is no translation file.
if test "x$L" == "xen_US"; then
export LANG=$L
break
fi
#OK, now test for just the first two letters:
if test -f "$GRAMPSI18N/${L:0:2}/LC_MESSAGES/gramps.mo"; then
export LANG=${L:0:2}
break
fi
#Same thing, but checking for any english variant.
if test "x${L:0:2}" == "xen"; then
export LANG=$L
break
fi;
done
fi
unset APPLELANGUAGES L
# If we didn't get a language from the language list, try the Collation preference, in case it's the only setting that exists.
APPLECOLLATION=`defaults read .GlobalPreferences AppleCollationOrder`
if test -z "$LANG" -a -n "$APPLECOLLATION"; then
if test -f "$GRAMPSI18N/$APPLECOLLATION/LC_MESSAGES/gramps.mo"; then
export LANG=$APPLECOLLATION
fi
fi
if test -n "$APPLECOLLATION"; then
export LC_COLLATE=$APPLECOLLATION
fi
unset APPLECOLLATION
# Continue by attempting to find the Locale preference.
APPLELOCALE=`defaults read .GlobalPreferences AppleLocale`
if test -f "$GRAMPSI18N/${APPLELOCALE:0:5}/LC_MESSAGES/gramps.mo"; then
if test -z $LANG; then
export LANG="${APPLELOCALE:0:5}"
fi
elif test -z $LANG -a -f "$GRAMPSI18N/${APPLELOCALE:0:2}/LC_MESSAGES/gramps.mo"; then
export LANG="${APPLELOCALE:0:2}"
fi
#Next we need to set LC_MESSAGES. If at all possilbe, we want a full
#5-character locale to avoid the "Locale not supported by C library"
#warning from Gtk -- even though Gtk will translate with a
#two-character code.
if test -n $LANG; then
#If the language code matches the applelocale, then that's the message
#locale; otherwise, if it's longer than two characters, then it's
#probably a good message locale and we'll go with it.
if test $LANG == ${APPLELOCALE:0:5} -o $LANG != ${LANG:0:2}; then
export LC_MESSAGES=$LANG
#Next try if the Applelocale is longer than 2 chars and the language
#bit matches $LANG
elif test $LANG == ${APPLELOCALE:0:2} -a $APPLELOCALE > ${APPLELOCALE:0:2}; then
export LC_MESSAGES=${APPLELOCALE:0:5}
#Fail. Get a list of the locales in $PREFIX/share/locale that match
#our two letter language code and pick the first one, special casing
#english to set en_US
elif test $LANG == "en"; then
export LC_MESSAGES="en_US"
else
LOC=`find $PREFIX/share/locale -name $LANG???`
echo "Locales $LOC"
for L in $LOC; do
export LC_MESSAGES=$L
done
fi
else
#All efforts have failed, so default to US english
export LANG="en_US"
export LC_MESSAGES="en_US"
fi
CURRENCY=`echo $APPLELOCALE | sed -En 's/.*currency=([[:alpha:]]+).*/\1/p'`
if test "x$CURRENCY" != "x"; then
#The user has set a special currency. Gtk doesn't install LC_MONETARY files, but Apple does in /usr/share/locale, so we're going to look there for a locale to set LC_CURRENCY to.
if test -f /usr/local/share/$LC_MESSAGES/LC_MONETARY; then
if test -a `cat /usr/local/share/$LC_MESSAGES/LC_MONETARY` == $CURRENCY; then
export LC_MONETARY=$LC_MESSAGES
fi
fi
if test -z "$LC_MONETARY"; then
FILES=`find /usr/share/locale -name LC_MONETARY -exec grep -H $CURRENCY {} \;`
if test -n "$FILES"; then
export LC_MONETARY=`echo $FILES | sed -En 's%/usr/share/locale/([[:alpha:]_]+)/LC_MONETARY.*%\1%p'`
fi
fi
fi
#No currency value means that the AppleLocale governs:
if test -z "$LC_MONETARY"; then
export LC_MONETARY=${APPLELOCALE:0:5}
fi
#To turn on the appropriate dictionary:
export LC_ALL=$LC_MESSAGES
unset APPLELOCALE FILES LOC
# Strip out the argument added by the OS.
if [ x`echo "x$1" | sed -e "s/^x-psn_.*//"` == x ]; then
shift 1
fi
#Note that we're calling $PYTHON here to override the version in
#pygtk-demo's shebang.
exec $PYTHON -O "$GRAMPSDIR/gramps.py" "$@"