Changes

Jump to: navigation, search

GEPS 029: GTK3-GObject introspection Conversion

1,990 bytes added, 05:09, 4 February 2013
m
Ubuntu 12.10 (Linux Mint 14): sudo apt-get install python-pyicu
On Ubuntu 12.10 (as of December 1, 2012), or Linux Mint 14 (as of December 24, 2012), you need only ('''replace python with python3 if you want to run the python 3 version!'''):
sudo apt-get install python-dev libglib2.0-dev libcairo2-dev sudo apt-get-install python-cairo-dev python-gobject-dev libgirepository1.0-dev
sudo apt-get install gir1.2-freedesktop python-gi python-gobject python-gi-cairo
sudo apt-get install gir1.2-pango-1.0 libgtkspell-3-0 python-gtkspell
sudo apt-get install python-pyicu
Old note ''The removal of python-gnome2 (and anything that relies on it) is necessary apparently because some "selectors" have not yet been converted. The right thing to do here is to fix the selectors rather than removing the package.'''
You can also run Gramps 4.0+ in [[GEPS_031:_Python_3_support#Ubuntu_12.10|Python 3]] first Install the Python BSDDB interface and check that it [[Install_latest_BSDDB#Python_BSDDB_interface|works]] sudo apt-get install python3-bsddb3
You will probably want these optional packages:
=== OsmGpsMap for Geography ===
The [[Gramps_4.0_Wiki_Manual_-_Categories#Geography_Category|Geography ]] requires osmgpsmap. Introspection bindings for this is not currently available, so you need to compile it. 
As it doesn't work correctly for the moment and some patches are not in git, I forked osmgpsmap.
You may also need gtk3 devel packages:
sudo apt-get install gtk+-3.0-dev
 
You need to install gnome-common from the GNOME SVN
sudo apt-get install gnome-common
 
and
 
sudo apt-get install gtk-doc-tools
Now compile osmgpsmap:
First sets library to ''/usr/local/lib'' so as to find osmgpsmap and gtkspell, second ''/usr/local/lib/python2.7/site-packages/'' to find the local install of pygobject
 
==== Linux Mint 14.1 ====
 
The Patches mentioned above are (as of 2013/1/27) in the main osm-gps-map git repository so you can use:
 
git clone git://github.com/nzjrs/osm-gps-map.git
 
For Linux Mint you also need the gtk3 devel packages:
sudo apt-get install gtk+-3.0-dev
 
Now compile osmgpsmap:
 
./autogen.sh
make
sudo make install
sudo cp /usr/local/lib/girepository-1.0/OsmGpsMap-0.8.typelib /usr/lib/girepository-1.0/
 
Start up Gramps with:
LD_LIBRARY_PATH=/usr/local/lib PYTHONPATH=/usr/local/lib/python2.7/site-packages/ python Gramps.py
 
or
 
LD_LIBRARY_PATH=/usr/local/lib PYTHONPATH=/usr/local/lib/python2.7/site-packages/ python -c 'from gramps.grampsapp import main; main()'
== Problems ==
=== Open ===
* We cannot set strings in struct, see GTK bug [https://bugzilla.gnome.org/show_bug.cgi?id=678401] It seems we can do without this, so not an issue at the moment
* osmgpsmap is GTK2. There is a GTK3 branch in git, we should try it, and contribute to the conversion. '''In Progress''': Geography really minimalist : no menu, no markers, ...
* pyexiv2 module causes a segmentation fault when exiting Gramps - see bug [http://www.gramps-project.org/bugs/view.php?id=6042 #6042]
* python-gnome2 package causes a segmentation fault when Gramps starts - see bug [http://www.gramps-project.org/bugs/view.php?id=5972 #5972]
metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases</pre>
* Geography : missing tiles : osm-gps-map problem.
(Gramps.py:4515): OsmGpsMap-WARNING **: Error getting missing tile
* Geography : for all other problems, use last version with git pull. Be careful, osm-gps-map is now 0.8. You must remove all 1.0 versions (OsmGpsMap*.gir and OsmGpsMap*.typelib)
* No rows_reordered function on treemodels in python, see GTK bug [https://bugzilla.gnome.org/show_bug.cgi?id=684558]. Current fix: disconnect and reconnect the model so sort need not emit rows-reordered signal. However, this means the history of expand collapse of nodes in a treeview is lost after rows have been reordered (this happens in gramps on click on the column that is already sorted.
* Geography : bad placement of markers : osm-gps-map problem. '''Solved''' : git pull the latest version. Need to be acknowledge by osm-gps-map team.
* Geography : We cannot mix osmgpsmap between trunk and gramps34 and others. '''Solved''' : git pull the latest version. You must remove all libosmgps* from /usr/local/lib before make install
* osmgpsmap is GTK2. There is a GTK3 branch in git, we should try it, and contribute to the conversion. '''In Progress''': Geography really minimalist : no menu, no markers, ... '''Solved''' GTK3 available
== Related Gramps Bugs ==
(gdb) bt
This works best if you have the debug symbols installed for everything relevant, or are running from a self-built treebuilt with debugging CFLAGS (-g -O0). At a minimum, in addition to Python itself, you'll need symbols for Gtk+ (libgtk-3.0.so and libgdk-3.0.so), PyGObject, and GLib. To see the python stack: (gdb) pystack This works with gdb7 as-is; for earlier versions, you need to install [http://svn.python.org/view/*checkout*/python/trunk/Misc/gdbinit?revision=77484 gdbinit] as .gdbinit in your home directory before starting gdb.On some systems (MacOS X in particular), the structure PyStringObject isn't exported in the debug symbols, so if you get the error No symbol "PyStringObject" in current context.then you need to tell gdb add-symbol-file /path/to/Python-build-dir/Objects/stringobject.owhich will be possible only if you've built Python from source. 
[[Category:GEPS|G]]

Navigation menu