packages: mysql/libmysql.version (NEW), mysql/mysql-versioning.patch (NEW) ...

arekm arekm at pld-linux.org
Fri Jan 28 20:34:35 CET 2011


Author: arekm                        Date: Fri Jan 28 19:34:35 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- from fc

---- Files affected:
packages/mysql:
   libmysql.version (NONE -> 1.1)  (NEW), mysql-versioning.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/mysql/libmysql.version
diff -u /dev/null packages/mysql/libmysql.version:1.1
--- /dev/null	Fri Jan 28 20:34:35 2011
+++ packages/mysql/libmysql.version	Fri Jan 28 20:34:30 2011
@@ -0,0 +1,141 @@
+# symbols exported from mysql 5.1
+libmysqlclient_16 {
+  global:
+	_fini;
+	_init;
+	my_init;
+	myodbc_remove_escape;
+	mysql_affected_rows;
+	mysql_autocommit;
+	mysql_change_user;
+	mysql_character_set_name;
+	mysql_close;
+	mysql_commit;
+	mysql_data_seek;
+	mysql_debug;
+	mysql_dump_debug_info;
+	mysql_embedded;
+	mysql_eof;
+	mysql_errno;
+	mysql_error;
+	mysql_escape_string;
+	mysql_fetch_field;
+	mysql_fetch_field_direct;
+	mysql_fetch_fields;
+	mysql_fetch_lengths;
+	mysql_fetch_row;
+	mysql_field_count;
+	mysql_field_seek;
+	mysql_field_tell;
+	mysql_free_result;
+	mysql_get_character_set_info;
+	mysql_get_client_info;
+	mysql_get_client_version;
+	mysql_get_host_info;
+	mysql_get_parameters;
+	mysql_get_proto_info;
+	mysql_get_server_info;
+	mysql_get_server_version;
+	mysql_get_ssl_cipher;
+	mysql_hex_string;
+	mysql_info;
+	mysql_init;
+	mysql_insert_id;
+	mysql_kill;
+	mysql_list_dbs;
+	mysql_list_fields;
+	mysql_list_processes;
+	mysql_list_tables;
+	mysql_more_results;
+	mysql_next_result;
+	mysql_num_fields;
+	mysql_num_rows;
+	mysql_options;
+	mysql_ping;
+	mysql_query;
+	mysql_read_query_result;
+	mysql_real_connect;
+	mysql_real_escape_string;
+	mysql_real_query;
+	mysql_refresh;
+	mysql_rollback;
+	mysql_row_seek;
+	mysql_row_tell;
+	mysql_select_db;
+	mysql_send_query;
+	mysql_server_end;
+	mysql_server_init;
+	mysql_set_character_set;
+	mysql_set_local_infile_default;
+	mysql_set_local_infile_handler;
+	mysql_set_server_option;
+	mysql_shutdown;
+	mysql_sqlstate;
+	mysql_ssl_set;
+	mysql_stat;
+	mysql_stmt_affected_rows;
+	mysql_stmt_attr_get;
+	mysql_stmt_attr_set;
+	mysql_stmt_bind_param;
+	mysql_stmt_bind_result;
+	mysql_stmt_close;
+	mysql_stmt_data_seek;
+	mysql_stmt_errno;
+	mysql_stmt_error;
+	mysql_stmt_execute;
+	mysql_stmt_fetch;
+	mysql_stmt_fetch_column;
+	mysql_stmt_field_count;
+	mysql_stmt_free_result;
+	mysql_stmt_init;
+	mysql_stmt_insert_id;
+	mysql_stmt_num_rows;
+	mysql_stmt_param_count;
+	mysql_stmt_param_metadata;
+	mysql_stmt_prepare;
+	mysql_stmt_reset;
+	mysql_stmt_result_metadata;
+	mysql_stmt_row_seek;
+	mysql_stmt_row_tell;
+	mysql_stmt_send_long_data;
+	mysql_stmt_sqlstate;
+	mysql_stmt_store_result;
+	mysql_store_result;
+	mysql_thread_end;
+	mysql_thread_id;
+	mysql_thread_init;
+	mysql_thread_safe;
+	mysql_use_result;
+	mysql_warning_count;
+# These are documented in Paul DuBois' MySQL book, so we treat them as part
+# of the de-facto API.
+	free_defaults;
+	handle_options;
+	load_defaults;
+	my_print_help;
+  local:
+	*;
+};
+# symbols added in mysql 5.5
+libmysqlclient_16.1 {
+  global:
+	mysql_client_find_plugin;
+	mysql_client_register_plugin;
+	mysql_load_plugin;
+	mysql_load_plugin_v;
+	mysql_plugin_options;
+	mysql_stmt_next_result;
+#
+# Ideally the following symbols wouldn't be exported, but various applications
+# require them.  We limit the namespace damage by prefixing mysql_
+# (see mysql-dubious-exports.patch), which means the symbols are not present
+# in libmysqlclient_16.
+#
+# mysql-connector-odbc requires these
+	mysql_default_charset_info;
+	mysql_get_charset;
+	mysql_get_charset_by_csname;
+	mysql_net_realloc;
+# PHP's mysqli.so requires this (via the ER() macro)
+	mysql_client_errors;
+};

================================================================
Index: packages/mysql/mysql-versioning.patch
diff -u /dev/null packages/mysql/mysql-versioning.patch:1.1
--- /dev/null	Fri Jan 28 20:34:35 2011
+++ packages/mysql/mysql-versioning.patch	Fri Jan 28 20:34:30 2011
@@ -0,0 +1,18 @@
+The symbol versioning solution for libmysqlclient in mysql 5.1 was pretty
+awful (export everything) and as of 5.5.8 the cmake build scripts have
+forgotten the issue entirely.  So we now maintain our own list of exported
+symbols and jam it into the build with this hack.
+
+
+diff -Naur mysql-5.5.8.orig/libmysql/CMakeLists.txt mysql-5.5.8/libmysql/CMakeLists.txt
+--- mysql-5.5.8.orig/libmysql/CMakeLists.txt	2010-12-03 12:58:26.000000000 -0500
++++ mysql-5.5.8/libmysql/CMakeLists.txt	2010-12-21 21:00:07.135311386 -0500
+@@ -197,7 +197,7 @@
+         SET(libmysql_link_flags)
+       ENDIF()
+       SET_TARGET_PROPERTIES(libmysql PROPERTIES LINK_FLAGS 
+-        "${libmysql_link_flags} ${LINK_FLAG_NO_UNDEFINED}")
++        "${libmysql_link_flags} -Wl,--version-script=libmysql.version ${LINK_FLAG_NO_UNDEFINED}")
+     ENDIF() 
+     # clean direct output needs to be set several targets have the same name
+     #(mysqlclient in this case)
================================================================


More information about the pld-cvs-commit mailing list