Difference between revisions of "GRAMPS work required for Python 2.6"

From Gramps
Jump to: navigation, search
(Database Change)
Line 10: Line 10:
 
== Database Change ==  
 
== Database Change ==  
  
Python 2.6 will normally ship with bsddb 4.7.x , which holds some important changes over 4.6.x  
+
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. Changed to log_set_config() method where needed
+
*** 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.


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??