From: Nirgal <con...@ni...> - 2011-08-07 20:25:19
|
Hi everyone I started checking how to release, and I have a 2 main questions: 1. The code is still using a few svn $Id $Revision $Date magic tags here and there. Attached is a patch version.patch to remove them. This patch boldly removes unused versioning vars in libraries such as: include/mdbodbc.h : rcsid_sql_h = "$Id: mdbodbc.h,v 1.5 2005/01/15 05:02:13 calvinrsmith Exp $" src/odbc/odbc.c: software_version = "$Id: odbc.c,v 1.31 2007/03/18 14:11:43 brianb Exp $" src/odbc/unittest.c: software_version = "$Id: unittest.c,v 1.8 2005/04/29 03:08:22 whydoubt Exp $" I could not see these symbols exported in the public API, so I guess this is ok. What do you think? We could also keep them, and use include/mdbver.h to generate these strings. Weird version numbers are left in doc/install.sgml 2. Regarding ABI: Version 0.6pre1 ships with these version of librairies: libmdbodbc.so.0.0.0 libmdb.so.1.0.0 libmdbsql.so.1.0.0 All libraries have lost symbols, so we'll have to use: libmdbodbc.so.1.0.0 libmdb.so.2.0.0 libmdbsql.so.2.0.0 Actually, we are still exporting some "internal" symbols, like: yy_create_buffer _mdb_put_int16 MdbJet3Constants ... I guess it would make sense to hide these internal references, so that we minimise future bumps in so names. I started to write a map file. My first though is that we should export mdb_* But there are a 5 additonal symbols used here and there: sanitize_name kkd_to_props _mdb_put_int16 _mdb_put_int32 buffer_dump I suggest we rename this functions in mdb_something, or find a way to stop using them outside of libmdb. Starting with sanitize_name, that is no longer needed IMHO, since all backends now quote properly the names. I would vote for droping its support. Code is complex in mdb-export and backend because of it: in backend.c this is almost like we have a special backend. But people might use it... (mdb-export, mdb-schema) Alternative is to rename it into mdb_sanitize_name. Your thoughts? In libmdbsql, we have to export these symbols needed by gmdb2: mdb_sql_* g_input_ptr _mdb_sql yyparse I guess everybody agrees this should be changed... Help welcomed. Regarding libodbc, it is linked static with libmdb and libmdbsql ?? So the number of exported symbol was huge. The map file I created only export SQL* This has to be tested. Is there a good reason to duplicate the code in that library? Test version for debian here: http://www.nirgal.com/mdbtools/debian.squeeze/ |