diff options
Diffstat (limited to 'debian/patches/bdb-5.1.patch')
-rw-r--r-- | debian/patches/bdb-5.1.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/debian/patches/bdb-5.1.patch b/debian/patches/bdb-5.1.patch new file mode 100644 index 0000000..ef0fb07 --- /dev/null +++ b/debian/patches/bdb-5.1.patch @@ -0,0 +1,55 @@ +Description: Reflect the fact that Berkeley DB 5.1 no longer supports RPC + See docs/installation/changelog_4_8.html in src:db package. + . + This patch removes RPC support in BDB:DBE-CREATE. The function now fails with + an error message if a remote host is given. +Bug-Debian: http://bugs.debian.org/621377 +Forwarded: no +Author: Sébastien Villemot <sebastien.villemot@ens.fr> +Last-Update: 2012-02-17 +--- a/modules/berkeley-db/bdb.c ++++ b/modules/berkeley-db/bdb.c +@@ -351,40 +351,10 @@ + DEFUN(BDB:DBE-CREATE,&key PASSWORD ENCRYPT :HOST CLIENT-TIMEOUT SERVER-TIMEOUT) + { /* Create an environment handle */ + DB_ENV *dbe, *dbe_cl; +- bool remote_p = boundp(STACK_2); /* host ==> remote */ ++ if (boundp(STACK_2)) /* :HOST */ ++ error(error_condition, GETTEXT("RPC support has been dropped in Berkeley DB 5.1")); + int cl_timeout = 0, sv_timeout = 0; +-# if defined(DB_RPCCLIENT) /* 4.2 and later */ +- SYSCALL(db_env_create,(&dbe,remote_p ? DB_RPCCLIENT : 0)); +-# elif defined(DB_CLIENT) /* 4.1 and before */ +- SYSCALL(db_env_create,(&dbe,remote_p ? DB_CLIENT : 0)); +-# else +-# error how does your Berkeley DB create a remote client? +-# endif +- if (remote_p) { +- if (uint_p(STACK_0)) sv_timeout = I_to_uint(STACK_0); +- if (uint_p(STACK_1)) cl_timeout = I_to_uint(STACK_1); +- host_restart: +- if (stringp(STACK_2)) { /* string host */ +- with_string_0(STACK_2,GLO(misc_encoding),hostz, { +- SYSCALL(dbe->set_rpc_server,(dbe,NULL,hostz,cl_timeout,sv_timeout,0)); +- }); +- } else if ((dbe_cl = (DB_ENV*)bdb_handle(STACK_2,`BDB::DBE`, +- BH_NIL_IS_NULL))) { +- /* reuse client */ +- SYSCALL(dbe->set_rpc_server,(dbe,dbe_cl->cl_handle,NULL, +- cl_timeout,sv_timeout,0)); +- } else { /* bad host */ +- pushSTACK(NIL); /* no PLACE */ +- pushSTACK(STACK_(2+1)); /* TYPE-ERROR slot DATUM */ +- pushSTACK(`(OR STRING BDB::DBE)`); /* TYPE-ERROR slot EXPECTED-TYPE */ +- pushSTACK(STACK_2); /* host */ +- pushSTACK(`BDB::DBE`); pushSTACK(S(string)); pushSTACK(S(Khost)); +- pushSTACK(TheSubr(subr_self)->name); +- check_value(type_error,GETTEXT("~S: ~S should be a ~S or a ~S, not ~S")); +- STACK_2 = value1; +- goto host_restart; +- } +- } ++ SYSCALL(db_env_create,(&dbe,0)); + if (!missingp(STACK_4)) /* :PASSWD */ + dbe_set_encryption(dbe,&STACK_3,&STACK_4); + skipSTACK(5); |