Difference between revisions of "GRAMPS work required for Python 2.6"
(→Database Change) |
|||
Line 10: | Line 10: | ||
== Database Change == | == Database Change == | ||
− | Python 2.6 will normally ship with bsddb 4.7.x , which | + | Python 2.6 will normally ship with bsddb 4.7.x , which has some important changes from 4.6.x. |
+ | |||
Details: | Details: | ||
* [http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.7/log.html] | * [http://www.oracle.com/technology/documentation/berkeley-db/db/ref/upgrade.4.7/log.html] | ||
Line 16: | Line 17: | ||
Points: | Points: | ||
− | * Is upgrade of the old database possible?? So can a database created with 4.6 be opened with 4.7? We can expect the reverse not to be possible? If so, do we need a new database version just for this, so we can stop users opening the db made with 4.7 again with 4.6 ? | + | * Is upgrade of the old database possible?? So can a database created with 4.6 be opened with 4.7? We can expect the reverse not to be possible? If so, do we need a new database version just for this, so we can stop users opening the db made with 4.7 again with 4.6 ? |
+ | ** A database created with bsddb 4.6 can be opened with 4.7 if minor changes are made to dbdir.py (as below for DB_LOG_AUTOREMOVE). | ||
* The log system must be changed: | * The log system must be changed: | ||
− | ** 4.6: db.DB_LOG_AUTOREMOVE ==> 4.7: db.DB_LOG_AUTO_REMOVE (there is a customized dbdir.py on [http://timaba.de/packages/archlinux/i686/dbdir.py) | + | ** 4.6: db.DB_LOG_AUTOREMOVE ==> 4.7: db.DB_LOG_AUTO_REMOVE (there is a customized dbdir.py on [http://timaba.de/packages/archlinux/i686/dbdir.py]) |
− | ** method set_flags must be researched. | + | *** This change to dbdir.py allows gramps to start up and load a db. A log subsystem error is raised if Rebuild Reference Maps is run (Repair Database in the Family Tree editor runs without apparent error). |
+ | ** method set_flags must be researched. Change to log_set_config() method where needed. | ||
From the above it looks like we will need two parellel implementations, so in config a flag will need to be raised: 4.6- database engine or 4.6+ database engine. For the first, the code is as today, for the second, use the new methods. Is this the best way to handle this?? | From the above it looks like we will need two parellel implementations, so in config a flag will need to be raised: 4.6- database engine or 4.6+ database engine. For the first, the code is as today, for the second, use the new methods. Is this the best way to handle this?? |
Revision as of 04:29, 6 November 2008
Work to do to have GRAMPS work in python 2.6
Required Changes
- Change md5 module by hashlib.
- where is this used? Keys? Website? Do the keys remain the same after changing to hashlib?
Database Change
Python 2.6 will normally ship with bsddb 4.7.x , which has some important changes from 4.6.x.
Details:
Points:
- Is upgrade of the old database possible?? So can a database created with 4.6 be opened with 4.7? We can expect the reverse not to be possible? If so, do we need a new database version just for this, so we can stop users opening the db made with 4.7 again with 4.6 ?
- A database created with bsddb 4.6 can be opened with 4.7 if minor changes are made to dbdir.py (as below for DB_LOG_AUTOREMOVE).
- The log system must be changed:
- 4.6: db.DB_LOG_AUTOREMOVE ==> 4.7: db.DB_LOG_AUTO_REMOVE (there is a customized dbdir.py on [3])
- This change to dbdir.py allows gramps to start up and load a db. A log subsystem error is raised if Rebuild Reference Maps is run (Repair Database in the Family Tree editor runs without apparent error).
- method set_flags must be researched. Change to log_set_config() method where needed.
- 4.6: db.DB_LOG_AUTOREMOVE ==> 4.7: db.DB_LOG_AUTO_REMOVE (there is a customized dbdir.py on [3])
From the above it looks like we will need two parellel implementations, so in config a flag will need to be raised: 4.6- database engine or 4.6+ database engine. For the first, the code is as today, for the second, use the new methods. Is this the best way to handle this??