[globus-rls-server/el4] Fix RLI updates for bloomfilters
Mattias Ellert
ellert at fedoraproject.org
Sun Jan 29 10:27:34 UTC 2012
commit 9b4a9539be50b8c7c3b7fe9c365f58ede2e9c806
Author: Mattias Ellert <mattias.ellert at fysast.uu.se>
Date: Sun Jan 29 11:26:42 2012 +0100
Fix RLI updates for bloomfilters
globus-rls-server-bloomfilter.patch | 187 ++++++++++++++++++++
globus-rls-server-mutex.patch | 20 ---
globus-rls-server-pthreads.patch | 323 ++++++++++++++++++++++++++++++++++-
globus-rls-server.spec | 13 +-
4 files changed, 513 insertions(+), 30 deletions(-)
---
diff --git a/globus-rls-server-bloomfilter.patch b/globus-rls-server-bloomfilter.patch
new file mode 100644
index 0000000..e6df4e1
--- /dev/null
+++ b/globus-rls-server-bloomfilter.patch
@@ -0,0 +1,187 @@
+diff -ur --exclude CVS globus_rls_server-4.9/server.c globus-rls-server-B5.0/server.c
+--- globus_rls_server-4.9/server.c 2009-11-13 19:17:29.000000000 +0100
++++ globus-rls-server-B5.0/server.c 2012-01-27 01:02:01.000000000 +0100
+@@ -166,6 +166,7 @@
+ static int listresult(void *cv, char *s1, char *s2, char *s3,
+ char *s4, int irc);
+ static int getreslimit(char *areslimit);
++static void bfresize(DBH *dbh);
+
+ METHOD methods[] = {
+ { "admin", rls_admin, 1, 0, 0 },
+@@ -207,7 +208,7 @@
+ { "lrc_rli_get_part", lrc_rli_get_part, 2, P_LRCREAD, MF_NEEDLRC },
+ { "lrc_rli_info", lrc_rli_info, 1, P_LRCREAD, MF_NEEDLRC },
+ { "lrc_rli_list", lrc_rli_list, 0, P_LRCREAD, MF_NEEDLRC },
+- { "rli_exists", rli_exists, 2, P_RLIREAD, MF_NEEDLRC },
++ { "rli_exists", rli_exists, 2, P_RLIREAD, MF_NEEDRLI },
+ { "rli_exists_bulk", rli_exists_bulk, 0, P_RLIREAD, MF_NEEDRLI },
+ { "rli_get_lrc", rli_get_lrc, 3, P_RLIREAD, MF_NEEDRLI },
+ { "rli_get_lrc_bulk", rli_get_lrc_bulk, 0, P_RLIREAD, MF_NEEDRLI },
+@@ -1885,7 +1886,7 @@
+ c->errmsg)) != GLOBUS_RLS_SUCCESS) {
+ rrpc_error(c, rc, "%s", c->errmsg);
+ return;
+- } else if (rc == GLOBUS_RLS_SUCCESS) {
++ } else {
+ if (bloomfilter.bfsize) {
+ globus_mutex_lock(&bloomfilter.mtx);
+ bf_addlfn(&bloomfilter, arglist[0]);
+@@ -1894,21 +1895,11 @@
+ }
+ rrpc_success(c);
+
+- if (update_immediate)
+- doimmediate(rliop_add, lrc_rlilist, &lrc_rlilistlock, arglist[0], NULL);
+- /*
+- * If we're using bloom filters to update, and the number of lfns has
+- * doubled in the db, then resize the bloom filter.
+- */
+- if (bloomfilter.bfsize &&
+- (table[T_LRCLFN].count >= bloomfilter.startlfns * 2) &&
+- (table[T_LRCLFN].count * lrc_bloomfilter_ratio > bloomfilter.bfsize)) {
+- if (loglevel)
+- logit(LOG_DEBUG, "lrc_create: Resizing bloom filter, current %d new %d",
+- bloomfilter.bfsize, table[T_LRCLFN].count * lrc_bloomfilter_ratio);
+- bf_free(&bloomfilter);
+- bloomfilter.startlfns = table[T_LRCLFN].count;
+- lrc_getbf(dbh->lrc);
++ if (rc == GLOBUS_RLS_SUCCESS) {
++ if (update_immediate)
++ doimmediate(rliop_add, lrc_rlilist, &lrc_rlilistlock, arglist[0], NULL);
++
++ bfresize(dbh);
+ }
+ }
+
+@@ -1935,10 +1926,21 @@
+ }
+ if ((rc = db_lrc_create(dbh->lrc,lfn,pfn,c->errmsg)) != GLOBUS_RLS_SUCCESS)
+ listresult(c, lfn, pfn, NULL, NULL, rc);
+- else if (update_immediate)
+- doimmediate(rliop_add, lrc_rlilist, &lrc_rlilistlock, lfn, NULL);
++ else {
++ if (bloomfilter.bfsize) {
++ globus_mutex_lock(&bloomfilter.mtx);
++ bf_addlfn(&bloomfilter, lfn);
++ globus_mutex_unlock(&bloomfilter.mtx);
++ }
++ if (update_immediate)
++ doimmediate(rliop_add, lrc_rlilist, &lrc_rlilistlock, lfn, NULL);
++ }
+ }
+ endstrcb(c, 0);
++
++ /* Resize bf, if needed */
++ bfresize(dbh);
++
+ if (loglevel > 1)
+ logit(LOG_DEBUG, "lrc_create_bulk: end");
+ }
+@@ -1948,7 +1950,7 @@
+
+ {
+ int rc;
+- int lfndeleted;
++ int lfndeleted = 0;
+
+ if (!arglist[0] || !arglist[1]) {
+ rrpc_error(c, GLOBUS_RLS_BADARG, "");
+@@ -1958,7 +1960,7 @@
+ &lfndeleted, c->errmsg)) != GLOBUS_RLS_SUCCESS) {
+ rrpc_error(c, rc, "%s", c->errmsg);
+ return;
+- } else if (lfndeleted && rc == GLOBUS_RLS_SUCCESS) {
++ } else if (lfndeleted) {
+ if (bloomfilter.bfsize) {
+ globus_mutex_lock(&bloomfilter.mtx);
+ bf_deletelfn(&bloomfilter, arglist[0]);
+@@ -1978,7 +1980,7 @@
+ int rc;
+ char lfn[BUFLEN];
+ char pfn[BUFLEN];
+- int lfndeleted;
++ int lfndeleted = 0;
+
+ if (loglevel > 1)
+ logit(LOG_DEBUG, "lrc_delete_bulk:");
+@@ -1996,8 +1998,15 @@
+ if ((rc = db_lrc_delete(dbh->lrc, lfn, pfn, &lfndeleted,
+ c->errmsg)) != GLOBUS_RLS_SUCCESS)
+ listresult(c, lfn, pfn, NULL, NULL, rc);
+- else if (update_immediate && lfndeleted)
+- doimmediate(rliop_delete, lrc_rlilist, &lrc_rlilistlock, lfn, NULL);
++ else if (lfndeleted) {
++ if (bloomfilter.bfsize) {
++ globus_mutex_lock(&bloomfilter.mtx);
++ bf_deletelfn(&bloomfilter, lfn);
++ globus_mutex_unlock(&bloomfilter.mtx);
++ }
++ if (update_immediate)
++ doimmediate(rliop_delete, lrc_rlilist, &lrc_rlilistlock, lfn, NULL);
++ }
+ }
+ endstrcb(c, 0);
+ if (loglevel > 1)
+@@ -2298,10 +2307,18 @@
+ }
+ if ((rc = db_lrc_renamelfn(dbh->lrc,oldname,newname,c->errmsg)) != GLOBUS_RLS_SUCCESS)
+ listresult(c, oldname, newname, NULL, NULL, rc);
+- else if (update_immediate) {
+- doimmediate(rliop_delete, lrc_rlilist, &lrc_rlilistlock, oldname, NULL);
+- doimmediate(rliop_add, lrc_rlilist, &lrc_rlilistlock, newname, NULL);
+- }
++ else {
++ if (bloomfilter.bfsize) {
++ globus_mutex_lock(&bloomfilter.mtx);
++ bf_deletelfn(&bloomfilter, oldname);
++ bf_addlfn(&bloomfilter, newname);
++ globus_mutex_unlock(&bloomfilter.mtx);
++ }
++ if (update_immediate) {
++ doimmediate(rliop_delete, lrc_rlilist, &lrc_rlilistlock, oldname, NULL);
++ doimmediate(rliop_add, lrc_rlilist, &lrc_rlilistlock, newname, NULL);
++ }
++ }
+ }
+ endstrcb(c, 0);
+ if (loglevel > 1)
+@@ -2527,8 +2544,10 @@
+ break;
+ }
+ rls_lock_release(&senderlistlock, readlock);
+- if (!sender)
++ if (!sender) {
+ rrpc_error(c, nferr, "%s", arglist[0]);
++ return;
++ }
+ } else {
+ if ((rc = db_exists(dbh->rli, arglist[0], objtype,
+ c->errmsg)) != GLOBUS_RLS_SUCCESS) {
+@@ -3513,6 +3532,26 @@
+ }
+
+ /*
++ * If we're using bloom filters to update, and the number of lfns has
++ * doubled in the db, then resize the bloom filter.
++ */
++static void
++bfresize(DBH *dbh)
++{
++ if (bloomfilter.bfsize &&
++ (table[T_LRCLFN].count >= bloomfilter.startlfns * 2) &&
++ (table[T_LRCLFN].count * lrc_bloomfilter_ratio > bloomfilter.bfsize)) {
++ if (loglevel)
++ logit(LOG_DEBUG, "bfresize: Resizing bloom filter, current %d new %d",
++ bloomfilter.bfsize, table[T_LRCLFN].count * lrc_bloomfilter_ratio);
++ bf_free(&bloomfilter);
++ bloomfilter.startlfns = table[T_LRCLFN].count;
++ lrc_getbf(dbh->lrc);
++ }
++ return;
++}
++
++/*
+ * Start up thread to process requests.
+ */
+ static int
diff --git a/globus-rls-server-pthreads.patch b/globus-rls-server-pthreads.patch
index fd6597e..87374a2 100644
--- a/globus-rls-server-pthreads.patch
+++ b/globus-rls-server-pthreads.patch
@@ -1,11 +1,324 @@
-diff -ur globus_rls_server-4.9.orig/server.c globus_rls_server-4.9/server.c
---- globus_rls_server-4.9.orig/server.c 2009-11-13 19:17:29.000000000 +0100
-+++ globus_rls_server-4.9/server.c 2012-01-17 19:16:54.776646992 +0100
-@@ -461,6 +461,7 @@
+diff -ur --exclude CVS globus_rls_server-4.9/event.c globus-rls-server-HEAD/event.c
+--- globus_rls_server-4.9/event.c 2007-06-13 20:34:32.000000000 +0200
++++ globus-rls-server-HEAD/event.c 2011-01-31 22:00:42.000000000 +0100
+@@ -65,7 +65,7 @@
+ EVENT *p;
+ EVENT *q;
+ time_t now;
+- pthread_t thr;
++ globus_thread_t thr;
+ int rc;
+
+ if ((e = (EVENT *) globus_libc_malloc(sizeof(EVENT))) == NULL) {
+@@ -80,11 +80,8 @@
+ globus_cond_init(&e->ec.cond, GLOBUS_NULL);
+ e->ec.flags = EF_RUNNING;
+
+- if ((rc = pthread_create(&thr, GLOBUS_NULL, e->fun, &e->ec)) != 0)
+- logit(LOG_WARNING, "event_process: pthread_create: %s",
+- globus_libc_system_error_string(rc));
+- if ((rc = pthread_detach(thr)) != 0)
+- logit(LOG_WARNING, "event_process: pthread_detach: %s",
++ if ((rc = globus_thread_create(&thr, GLOBUS_NULL, e->fun, &e->ec)) != 0)
++ logit(LOG_WARNING, "event_process: globus_thread_create: %s",
+ globus_libc_system_error_string(rc));
+
+ globus_mutex_lock(&eventmtx);
+diff -ur --exclude CVS globus_rls_server-4.9/lrc.c globus-rls-server-HEAD/lrc.c
+--- globus_rls_server-4.9/lrc.c 2010-05-26 02:36:53.000000000 +0200
++++ globus-rls-server-HEAD/lrc.c 2011-01-28 22:05:44.000000000 +0100
+@@ -68,7 +68,15 @@
+ globus_bool_t lrc_init_done;
+ } lrc_init_monitor_t;
+
+-static lrc_init_monitor_t lrc_init_monitor = { PTHREAD_MUTEX_INITIALIZER, GLOBUS_FALSE };
++static lrc_init_monitor_t lrc_init_monitor = {
++#ifdef HAVE_PTHREAD
++ { .pthread = PTHREAD_MUTEX_INITIALIZER },
++#elif HAVE_WINDOWS_THREADS
++ { .windows = 0 },
++#else
++ { .none = 0 },
++#endif
++ GLOBUS_FALSE };
+
+ #ifdef COUNTUPDATE
+ extern int updatebytes;
+@@ -265,7 +269,7 @@
+ ec->flags &= ~EF_RUNNING;
+ globus_cond_signal(&ec->cond);
+ globus_mutex_unlock(&ec->mtx);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ } else {
+ ec->flags &= ~EF_RUN;
+ globus_mutex_unlock(&ec->mtx);
+@@ -320,7 +324,7 @@
+ ec->flags &= ~EF_RUNNING;
+ globus_cond_signal(&ec->cond);
+ globus_mutex_unlock(&ec->mtx);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ } else {
+ ec->flags &= ~EF_RUN;
+ globus_mutex_unlock(&ec->mtx);
+@@ -425,7 +429,7 @@
+ globus_mutex_unlock(&ec->mtx);
+ if (lrch)
+ db_close(lrch);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ } else {
+ ec->flags &= ~EF_RUN;
+ globus_mutex_unlock(&ec->mtx);
+diff -ur --exclude CVS globus_rls_server-4.9/misc.c globus-rls-server-HEAD/misc.c
+--- globus_rls_server-4.9/misc.c 2008-12-12 23:52:59.000000000 +0100
++++ globus-rls-server-HEAD/misc.c 2011-01-28 22:05:44.000000000 +0100
+@@ -134,11 +134,12 @@
+ va_list ap;
+ char buf[BUFLEN];
+ char tbuf[100];
++ globus_thread_t self = globus_thread_self();
+
+ va_start(ap, fmt);
+ vsnprintf(buf, BUFLEN, fmt, ap);
+ globus_logging_write(log_handle, level,
+- "T%lu: %s%s", (unsigned long int) pthread_self(), buf,
++ "T%lu: %s%s", (unsigned long int) self.dummy, buf,
+ (detached)?"":"\n");
+ va_end(ap);
+ }
+diff -ur --exclude CVS globus_rls_server-4.9/rli.c globus-rls-server-HEAD/rli.c
+--- globus_rls_server-4.9/rli.c 2010-05-26 02:36:53.000000000 +0200
++++ globus-rls-server-HEAD/rli.c 2011-01-28 22:05:44.000000000 +0100
+@@ -259,7 +259,7 @@
+ if (!rli_bloomfilter)
+ if (rlih)
+ db_close(rlih);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ } else {
+ ec->flags &= ~EF_RUN;
+ globus_mutex_unlock(&ec->mtx);
+@@ -525,7 +525,7 @@
+ ec->flags &= ~EF_RUNNING;
+ globus_cond_signal(&ec->cond);
+ globus_mutex_unlock(&ec->mtx);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ } else {
+ ec->flags &= ~EF_RUN;
+ globus_mutex_unlock(&ec->mtx);
+@@ -584,7 +584,7 @@
+ ec->flags &= ~EF_RUNNING;
+ globus_cond_signal(&ec->cond);
+ globus_mutex_unlock(&ec->mtx);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ } else {
+ ec->flags &= ~EF_RUN;
+ globus_mutex_unlock(&ec->mtx);
+@@ -689,7 +689,7 @@
+ globus_mutex_unlock(&ec->mtx);
+ if (rlih)
+ db_close(rlih);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ } else {
+ ec->flags &= ~EF_RUN;
+ globus_mutex_unlock(&ec->mtx);
+diff -ur --exclude CVS globus_rls_server-4.9/server.c globus-rls-server-HEAD/server.c
+--- globus_rls_server-4.9/server.c 2009-11-13 19:17:29.000000000 +0100
++++ globus-rls-server-HEAD/server.c 2011-01-31 22:00:42.000000000 +0100
+@@ -266,8 +266,8 @@
+ static int rrpc_success(CONNECTION *c);
+ static void rrpc_flushio(CONNECTION *c);
+ static int rrpc_readstr(CONNECTION *c, char *rbuf, int rbuflen);
+-static void hexitsig(int s);
+-static void hhupsig(int s);
++static void hexitsig(void *s);
++static void hhupsig(void *s);
+ static void cleanexit(int s);
+ static void usage(char *prog);
+ static void usage_send_wrapper();
+@@ -359,6 +359,7 @@
+ extern int optind;
+ char *prog;
+ int i;
++ int rc;
+ globus_result_t r;
+ globus_io_handle_t handle;
+ char *s;
+@@ -369,7 +370,6 @@
+ int eventwaiting = 0;
+ time_t now;
+ static int backoff = 1;
+- struct sigaction sa;
+
+ /* use this structure to pass the db_name, db_user and db_passwd to the
+ lrc_init function through the pthread_create() function call. */
+@@ -377,7 +377,7 @@
+ lrc_init_args_t lrc_init_params;
+
+ /* the thread to create the lrc; */
+- pthread_t lrc_thread;
++ globus_thread_t lrc_thread;
+
+ /* the return value from the pthread_create call. This indicates if the
+ thread was created successfully or not. However, it does not indicate if
+@@ -461,6 +461,12 @@
* If we detach after activating globus modules we get mysterious hangs
* in globus_libc, so delay activation until after detaching.
*/
-+ globus_thread_set_model("pthread");
++ rc = globus_thread_set_model("pthread");
++ if (rc != GLOBUS_SUCCESS)
++ {
++ fprintf(stderr, "main: Unable to load pthread module\n");
++ cleanexit(1);
++ }
for (i = 0; i < NMODS; i++)
if ((n = globus_module_activate(modules[i])) != GLOBUS_SUCCESS) {
fprintf(stderr, "main: Unable to activate module %d error %d", i, n);
+@@ -477,15 +483,20 @@
+ if (!rlsdebug)
+ writepid(prog);
+
+- sigemptyset(&sa.sa_mask);
+- sa.sa_flags = SA_RESTART;
+- sa.sa_handler = hexitsig;
+-
+ for (i = 0; exitsigs[i]; i++)
+- sigaction(exitsigs[i], &sa, NULL);
++ {
++ globus_callback_register_signal_handler(
++ exitsigs[i],
++ GLOBUS_TRUE,
++ hexitsig,
++ &exitsigs[i]);
++ }
+
+- sa.sa_handler = hhupsig;
+- sigaction(SIGHUP, &sa, NULL);
++ globus_callback_register_signal_handler(
++ exitsigs[i],
++ GLOBUS_TRUE,
++ hhupsig,
++ NULL);
+
+ init();
+ if ((r = startlistener((u_short) port, &handle)) != GLOBUS_SUCCESS)
+@@ -509,7 +520,7 @@
+ lrc_init_params.db_pwd = db_pwd;
+
+ /* create the lrc server in a separate thread. */
+- lrc_thread_rv = pthread_create(&lrc_thread, NULL, lrc_init, (void *) & lrc_init_params);
++ lrc_thread_rv = globus_thread_create(&lrc_thread, NULL, lrc_init, (void *) & lrc_init_params);
+
+ /* note: only looks at return value of thread creation and not return value of lrc_init */
+ if (!lrc_thread_rv) {
+@@ -1008,7 +1019,7 @@
+ sigaddset(&ss, SIGHUP);
+ for (i = 0; exitsigs[i]; i++)
+ sigaddset(&ss, exitsigs[i]);
+- pthread_sigmask(SIG_BLOCK, &ss, NULL);
++ globus_thread_sigmask(SIG_BLOCK, &ss, NULL);
+
+ while (1) {
+ globus_mutex_lock(&reqqueuemtx);
+@@ -1268,7 +1279,7 @@
+ ec->flags &= ~EF_RUNNING;
+ globus_cond_signal(&ec->cond);
+ globus_mutex_unlock(&ec->mtx);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ } else {
+ ec->flags &= ~EF_RUN;
+ globus_mutex_unlock(&ec->mtx);
+@@ -3520,16 +3531,13 @@
+
+ {
+ int rc;
+- pthread_t thr;
++ globus_thread_t thr;
+
+- if ((rc = pthread_create(&thr, GLOBUS_NULL, procreq, NULL)) != 0) {
+- logit(LOG_WARNING, "pthread_create: %s",
++ if ((rc = globus_thread_create(&thr, GLOBUS_NULL, procreq, NULL)) != 0) {
++ logit(LOG_WARNING, "globus_thread_create: %s",
+ globus_libc_system_error_string(rc));
+ return 0;
+ }
+- if ((rc = pthread_detach(thr)) != 0)
+- logit(LOG_WARNING, "pthread_detach: %s",
+- globus_libc_system_error_string(rc));
+ globus_mutex_lock(&commonmtx);
+ numthreads++;
+ if (loglevel)
+@@ -3553,16 +3561,16 @@
+ if (quitting && numthreads == 0) /* If last thread let parent */
+ globus_cond_signal(&commoncond); /* know they're all dead */
+ globus_mutex_unlock(&commonmtx);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ }
+
+ static void
+-hexitsig(int s)
++hexitsig(void * s)
+
+ {
+ if (quitting++)
+ return;
+- logit(LOG_INFO, "hexitsig: Received signal %d", s);
++ logit(LOG_INFO, "hexitsig: Received signal %d", *(int *) s);
+ /*
+ * Would like to signal commoncond but can't call pthread_cond_signal
+ * safely from async signal handler on linux. Main loop wakes up
+@@ -3571,7 +3579,7 @@
+ }
+
+ static void
+-hhupsig(int s)
++hhupsig(void * s)
+
+ {
+ if (needreadconf++)
+diff -ur --exclude CVS globus_rls_server-4.9/update.c globus-rls-server-HEAD/update.c
+--- globus_rls_server-4.9/update.c 2007-06-15 05:27:29.000000000 +0200
++++ globus-rls-server-HEAD/update.c 2011-01-31 22:00:42.000000000 +0100
+@@ -373,7 +373,7 @@
+ RLI **rlilistp = (RLI **) a;
+ RLI *rli = NULL;
+ UPDATEPAT *p = NULL;
+- pthread_t thr;
++ globus_thread_t thr;
+ int rc;
+ int dbflags;
+
+@@ -422,14 +422,11 @@
+ if (dbflags & FRLI_BLOOMFILTER)
+ rli->flags |= FR_BLOOMFILTER;
+ else {
+- if ((rc = pthread_create(&thr, GLOBUS_NULL, process_update, rli)) != 0){
+- logit(LOG_WARNING, "rlilistcb: pthread_create: %s",
++ if ((rc = globus_thread_create(&thr, GLOBUS_NULL, process_update, rli)) != 0){
++ logit(LOG_WARNING, "rlilistcb: globus_thread_create: %s",
+ globus_libc_system_error_string(rc));
+- goto error;
++ goto error;
+ }
+- if ((rc = pthread_detach(thr)) != 0)
+- logit(LOG_INFO, "rlilistcb: pthread_detach: %s",
+- globus_libc_system_error_string(rc));
+ }
+ rli->nxt = *rlilistp;
+ *rlilistp = rli;
+@@ -603,7 +600,7 @@
+ globus_mutex_unlock(&rli->mtx);
+ if (loglevel)
+ logit(LOG_DEBUG, "process_update(%s): End thread", rli->url);
+- pthread_exit(0);
++ globus_thread_exit(0);
+ }
+ }
+ }
diff --git a/globus-rls-server.spec b/globus-rls-server.spec
index d097b2b..006b732 100644
--- a/globus-rls-server.spec
+++ b/globus-rls-server.spec
@@ -8,7 +8,7 @@ Name: globus-rls-server
%global _name %(tr - _ <<< %{name})
Version: 4.9
%global setupversion 4.5
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Globus Toolkit - Replica Location Service Server
Group: Applications/Internet
@@ -42,9 +42,9 @@ Patch0: %{name}-type-punned-pointer.patch
Patch1: %{name}-setup.patch
# Depend on GT 5.2.0 library versions
Patch2: %{name}-deps.patch
-# Adapt to GT 5.2.0 mutex definition
-Patch3: %{name}-mutex.patch
-# Enable pthreads
+# Fix RLI updates for bloomfilters (from upstream CVS)
+Patch3: %{name}-bloomfilter.patch
+# Enable new threading (from upstream CVS)
Patch4: %{name}-pthreads.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -179,7 +179,7 @@ sed 's!/man1/\(.*\)\.1!/man8/\1.8!' \
# Install start-up script
mkdir -p $RPM_BUILD_ROOT%{_initrddir}
-install -p %{SOURCE2} $RPM_BUILD_ROOT%{_initrddir}
+install -p %{SOURCE2} $RPM_BUILD_ROOT%{_initrddir}/%{name}
# Install license file
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
@@ -259,6 +259,9 @@ fi
%doc %{_docdir}/%{name}-%{version}/README.Fedora
%changelog
+* Sun Jan 29 2012 Mattias Ellert <mattias.ellert at fysast.uu.se> - 4.9-10
+- Fix RLI updates for bloomfilters
+
* Tue Jan 17 2012 Mattias Ellert <mattias.ellert at fysast.uu.se> - 4.9-9
- Enable pthreads
- Fix broken links in README file
More information about the scm-commits
mailing list