[SM-Commit] GIT changes to master grimoire by Elisamuel Resto (fbe2cd83b3acab428f5e6f6ae0d4a445a04925f5)

Elisamuel Resto scm at sourcemage.org
Mon Dec 8 00:08:39 EST 2008


GIT changes to master grimoire by Elisamuel Resto <ryuji at sourcemage.org>:

 http/apache22/HISTORY                 |    3 
 http/apache22/SUB_DEPENDS             |    2 
 mail/postfix/BUILD                    |   12 -
 mail/postfix/CONFIGURE                |    8 
 mail/postfix/DEPENDS                  |    4 
 mail/postfix/DETAILS                  |    2 
 mail/postfix/HISTORY                  |   10 
 mail/postfix/PRE_BUILD                |   13 -
 mail/postfix/postfix-2.5_sqlite.patch |  367 +++++++++++++++++++++++++++++++
 mail/postfix/postfix-2.6_sqlite.patch |  391 ++++++++++++++++++++++++++++++++++
 python-pypi/moinmoin/DETAILS          |    4 
 python-pypi/moinmoin/HISTORY          |    3 
 ruby-raa/passenger/DETAILS            |    7 
 utils/rsyslog/DETAILS                 |   18 +
 utils/rsyslog/HISTORY                 |    4 
 15 files changed, 826 insertions(+), 22 deletions(-)

New commits:
commit fbe2cd83b3acab428f5e6f6ae0d4a445a04925f5
Author: Elisamuel Resto <ryuji at sourcemage.org>
Commit: Elisamuel Resto <ryuji at sourcemage.org>

    utils/rsyslog: updated devel to 4.1.2, beta to 3.21.9 and stable to 3.20.1
    SECURITY_PATCH=1 on all branches. Fixes a security vulnerability on the
    $AllowedSender mechanism as described by the upstream author in
    http://www.rsyslog.com/Article322.phtml

commit 38471161ee4781d0065365c632d35d2849d61087
Author: Elisamuel Resto <ryuji at sourcemage.org>
Commit: Elisamuel Resto <ryuji at sourcemage.org>

    ruby-raa/passenger: updated to 2.0.5

commit 06ff431318b1cb422bda8b5d33f3b2214cb4a176
Author: Elisamuel Resto <ryuji at sourcemage.org>
Commit: Elisamuel Resto <ryuji at sourcemage.org>

    python-pypi/moinmoin: updated to 1.8.0

commit 78b95e6f756359af396fd1c3339d043c0cac01b7
Author: Elisamuel Resto <ryuji at sourcemage.org>
Commit: Elisamuel Resto <ryuji at sourcemage.org>

    mail/postfix: added SQLite support (via patch)

commit 5169fca8c5bc4cf06d930d4aa71afba16f387e0c
Author: Elisamuel Resto <ryuji at sourcemage.org>
Commit: Elisamuel Resto <ryuji at sourcemage.org>

    mail/postfix: AUXLIBS cleanup in BUILD; logic fixes in CONFIGURE

commit 359aa9c738f25b82679269fa9cdf733ef0abb221
Author: Elisamuel Resto <ryuji at sourcemage.org>
Commit: Elisamuel Resto <ryuji at sourcemage.org>

    mail/postfix: updated experimental branch to 2.6-20081205

commit ef22ababcc76dd092b88fd1aebc2b4a394473791
Author: Elisamuel Resto <ryuji at sourcemage.org>
Commit: Elisamuel Resto <ryuji at sourcemage.org>

    http/apache22: space after 'message' call, else SUB_DEPENDS barfs

diff --git a/http/apache22/HISTORY b/http/apache22/HISTORY
index 8537acf..81ab03c 100644
--- a/http/apache22/HISTORY
+++ b/http/apache22/HISTORY
@@ -1,3 +1,6 @@
+2008-12-03 Elisamuel Resto <ryuji at sourcemage.org>
+	* SUB_DEPENDS: space after message call, else SUB_DEPENDS barfs
+
 2008-10-14 Ladislav Hagara <hgr at vabo.cz>
 	* DETAILS: 2.2.10, SECURITY_PATCH=5, CVE-2008-2939
 
diff --git a/http/apache22/SUB_DEPENDS b/http/apache22/SUB_DEPENDS
index 673d0bb..0f10cb4 100755
--- a/http/apache22/SUB_DEPENDS
+++ b/http/apache22/SUB_DEPENDS
@@ -4,7 +4,7 @@ case $THIS_SUB_DEPENDS in
     APACHE22_EXTRA="$APACHE22_EXTRA --enable-dav"
   ;;
  UNIQ)
-     message"${MESSAGE_COLOR}Forcing unique_id module as sub dependency.${DEFAULT_COLOR}" &&
+     message "${MESSAGE_COLOR}Forcing unique_id module as sub dependency.${DEFAULT_COLOR}" &&
      APACHE22_EXTRA="${APACHE22_EXTRA} --enable-unique_id"
   ;;
     *) echo "unknown sub_depends $THIS_SUB_DEPENDS"; return 1 ;;
diff --git a/mail/postfix/BUILD b/mail/postfix/BUILD
index f4bcb82..8bb84d1 100755
--- a/mail/postfix/BUILD
+++ b/mail/postfix/BUILD
@@ -8,7 +8,7 @@ chown mail:mail "$INSTALL_ROOT/var/spool/mail" &&
 chgrp -R mail "$INSTALL_ROOT/var/spool/mail" &&
 
 # We want blank vars
-local AUXLIBS="" &&
+local AUXLIBS="-L$INSTALL_ROOT/usr/lib -L$INSTALL_ROOT/lib -lm" &&
 local CCARGS="" &&
 
 if is_depends_enabled $SPELL openldap; then
@@ -29,14 +29,20 @@ if is_depends_enabled $SPELL cyrus-sasl; then
     message "${MESSAGE_COLOR}Cyrus-SASL requested: Using Cyrus-SASL${DEFAULT_COLOR}"
 fi &&
 
+if is_depends_enabled $SPELL sqlite; then
+    AUXLIBS="$AUXLIBS -lsqlite3"
+    CCARGS="$CCARGS -DHAS_SQLITE -I$INSTALL_ROOT/usr/include" &&
+    message "${MESSAGE_COLOR}SQLite requested: Using SQLite${DEFAULT_COLOR}"
+fi &&
+
 if is_depends_enabled $SPELL mysql; then
-    AUXLIBS="$AUXLIBS -L$INSTALL_ROOT/usr/lib -lmysqlclient -lz -lm" &&
+    AUXLIBS="$AUXLIBS -lmysqlclient -lz" &&
     CCARGS="$CCARGS -DHAS_MYSQL -I$INSTALL_ROOT/usr/include/mysql" &&
     message "${MESSAGE_COLOR}MySQL requested: Using MySQL${DEFAULT_COLOR}"
 fi &&
 
 if is_depends_enabled $SPELL postgresql; then
-    AUXLIBS="$AUXLIBS -L$INSTALL_ROOT/usr/lib -lpq" &&
+    AUXLIBS="$AUXLIBS -lpq" &&
     CCARGS="$CCARGS -DHAS_PGSQL -I$INSTALL_ROOT/usr/include/pgsql" &&
     message "${MESSAGE_COLOR}PostgreSQL requested: Using PostgresSQL${DEFAULT_COLOR}"
 fi &&
diff --git a/mail/postfix/CONFIGURE b/mail/postfix/CONFIGURE
index f56ea58..abaef3d 100755
--- a/mail/postfix/CONFIGURE
+++ b/mail/postfix/CONFIGURE
@@ -1,12 +1,12 @@
 local PFIX_VER=$(installed_version $SPELL) &&
 PFIX_VER=$(echo ${PFIX_VER:0:5} | sed -e 's/\.//g') &&
 
-if [[ $PFIX_VER < 255 ]]; then
+if [[ $PFIX_VER -lt 255 ]]; then
     persistent_add POSTFIX_VDA &&
     POSTFIX_VDA=$VDA
 fi &&
 
-if [[ -f /etc/postfix/main.cf ]]; then
+if [[ -f $INSTALL_ROOT/etc/postfix/main.cf ]]; then
     persistent_add POSTFIX_PRE_EXISTING &&
     POSTFIX_PRE_EXISTING="yes" &&
 
@@ -36,4 +36,6 @@ config_query POSTFIX_BENCH "Install smtpstone benckmarking tools?" n &&
 #message "${MESSAGE_COLOR}You should run newaliases after each aliases file update, and on first $spell cast...$}DEFAULT_COLOR}" &&
 #config_query ALIAS "Run newaliases after cast?" y &&
 
-config_query POSTFIX_VDA "Apply Virtual Delivery Agent (VDA) patch? (EXPERIMENTAL)" n
+if [[ "$POSTFIX_EXP" != "y" ]]; then
+    config_query POSTFIX_VDA "Apply Virtual Delivery Agent (VDA) patch? (EXPERIMENTAL)" n
+fi
diff --git a/mail/postfix/DEPENDS b/mail/postfix/DEPENDS
index e772230..fcbbc0c 100755
--- a/mail/postfix/DEPENDS
+++ b/mail/postfix/DEPENDS
@@ -1,6 +1,10 @@
 depends db &&
 depends pcre &&
 
+optional_depends sqlite \
+                 "" "" \
+                 "for SQLite support (via patch)" &&
+
 optional_depends mysql \
                  "" "" \
                  "for MySQL support" &&
diff --git a/mail/postfix/DETAILS b/mail/postfix/DETAILS
index a320f23..4715b97 100755
--- a/mail/postfix/DETAILS
+++ b/mail/postfix/DETAILS
@@ -1,7 +1,7 @@
             SPELL=postfix
 
 if [[ "${POSTFIX_EXP}" == "y" ]]; then
-          VERSION=2.6-20080903
+          VERSION=2.6-20081205
       PFIX_BRANCH=experimental
 else
           VERSION=2.5.5
diff --git a/mail/postfix/HISTORY b/mail/postfix/HISTORY
index 67bd081..37476fd 100644
--- a/mail/postfix/HISTORY
+++ b/mail/postfix/HISTORY
@@ -1,3 +1,13 @@
+2008-12-07 Elisamuel Resto <ryuji at sourcemage.org>
+	* CONFIGURE: VDA patch is for non-experimental; -lt in the version check
+	  and added $INSTALL_ROOT to the config file existance check.
+	* BUILD: reduced the repeatedly used flags in AUXLIBS
+	* BUILD, DEPENDS, PRE_BUILD: added logic for SQLite support (via patch)
+	* postfix-2.{5,6}_sqlite.patch: added, patch for SQLite support
+
+2008-12-03 Elisamuel Resto <ryuji at sourcemage.org>
+	* DETAILS: postfix experimental 2.6-20081205
+
 2008-10-03 Elisamuel Resto <ryuji at sourcemage.org>
 	* PREPARE, CONFIGURE: previous variable import checks replaced
 
diff --git a/mail/postfix/PRE_BUILD b/mail/postfix/PRE_BUILD
index ead491e..fcdc9fe 100755
--- a/mail/postfix/PRE_BUILD
+++ b/mail/postfix/PRE_BUILD
@@ -1,9 +1,16 @@
-mk_source_dir "$SOURCE_DIRECTORY" &&
-unpack_file &&
+default_pre_build &&
+cd "$SOURCE_DIRECTORY" &&
+
+if is_depends_enabled $SPELL sqlite; then
+    if [[ "$POSTFIX_EXP" == "y" ]]; then
+        patch -p1 -i "$SPELL_DIRECTORY/postfix-2.6_sqlite.patch"
+    else
+        patch -p1 -i "$SPELL_DIRECTORY/postfix-2.5_sqlite.patch"
+    fi
+fi &&
 
 if [[ "$POSTFIX_VDA" == "y" ]] && [[ "$POSTFIX_EXP" == "n" ]];  then
     verify_file 3 &&
-    cd "$SOURCE_DIRECTORY" &&
     message "${MESSAGE_COLOR}Applying VDA Patch: ${SOURCE3/.gz}${DEFAULT_COLOR}"  &&
     gzip -cd "$SOURCE_CACHE/$SOURCE3" | patch -p1
 fi
diff --git a/mail/postfix/postfix-2.5_sqlite.patch b/mail/postfix/postfix-2.5_sqlite.patch
new file mode 100644
index 0000000..3834d97
--- /dev/null
+++ b/mail/postfix/postfix-2.5_sqlite.patch
@@ -0,0 +1,367 @@
+diff -durN postfix-2.5.0/src/global/Makefile.in postfix-2.5.0_sqlite/src/global/Makefile.in
+--- postfix-2.5.0/src/global/Makefile.in	Thu Dec  6 13:49:03 2007
++++ postfix-2.5.0_sqlite/src/global/Makefile.in	Tue Feb 12 09:27:16 2008
+@@ -4,7 +4,7 @@
+ 	clnt_stream.c conv_time.c db_common.c debug_peer.c debug_process.c \
+ 	defer.c deliver_completed.c deliver_flock.c deliver_pass.c \
+ 	deliver_request.c dict_ldap.c dict_mysql.c dict_pgsql.c \
+-	dict_proxy.c domain_list.c dot_lockfile.c dot_lockfile_as.c \
++	dict_proxy.c dict_sqlite.c  domain_list.c dot_lockfile.c dot_lockfile_as.c \
+ 	dsb_scan.c dsn.c dsn_buf.c dsn_mask.c dsn_print.c dsn_util.c \
+ 	ehlo_mask.c ext_prop.c file_id.c flush_clnt.c header_opts.c \
+ 	header_token.c input_transp.c int_filt.c is_header.c log_adhoc.c \
+@@ -34,7 +34,7 @@
+ 	clnt_stream.o conv_time.o db_common.o debug_peer.o debug_process.o \
+ 	defer.o deliver_completed.o deliver_flock.o deliver_pass.o \
+ 	deliver_request.o dict_ldap.o dict_mysql.o dict_pgsql.o \
+-	dict_proxy.o domain_list.o dot_lockfile.o dot_lockfile_as.o \
++	dict_proxy.o dict_sqlite.o domain_list.o dot_lockfile.o dot_lockfile_as.o \
+ 	dsb_scan.o dsn.o dsn_buf.o dsn_mask.o dsn_print.o dsn_util.o \
+ 	ehlo_mask.o ext_prop.o file_id.o flush_clnt.o header_opts.o \
+ 	header_token.o input_transp.o int_filt.o is_header.o log_adhoc.o \
+@@ -63,7 +63,7 @@
+ 	canon_addr.h cfg_parser.h cleanup_user.h clnt_stream.h config.h \
+ 	conv_time.h db_common.h debug_peer.h debug_process.h defer.h \
+ 	deliver_completed.h deliver_flock.h deliver_pass.h deliver_request.h \
+-	dict_ldap.h dict_mysql.h dict_pgsql.h dict_proxy.h domain_list.h \
++	dict_ldap.h dict_mysql.h dict_pgsql.h dict_proxy.h dict_sqlite.h domain_list.h \
+ 	dot_lockfile.h dot_lockfile_as.h dsb_scan.h dsn.h dsn_buf.h \
+ 	dsn_mask.h dsn_print.h dsn_util.h ehlo_mask.h ext_prop.h \
+ 	file_id.h flush_clnt.h header_opts.h header_token.h input_transp.h \
+@@ -860,6 +860,13 @@
+ dict_proxy.o: dict_proxy.h
+ dict_proxy.o: mail_params.h
+ dict_proxy.o: mail_proto.h
++dict_sqlite.o: ../../include/dict.h
++dict_sqlite.o: ../../include/msg.h
++dict_sqlite.o: ../../include/sys_defs.h
++dict_sqlite.o: cfg_parser.h
++dict_sqlite.o: db_common.h
++dict_sqlite.o: dict_sqlite.c
++dict_sqlite.o: dict_sqlite.h
+ domain_list.o: ../../include/match_list.h
+ domain_list.o: ../../include/match_ops.h
+ domain_list.o: ../../include/sys_defs.h
+@@ -1219,6 +1226,7 @@
+ mail_dict.o: dict_mysql.h
+ mail_dict.o: dict_pgsql.h
+ mail_dict.o: dict_proxy.h
++mail_dict.o: dict_sqlite.h
+ mail_dict.o: mail_dict.c
+ mail_dict.o: mail_dict.h
+ mail_error.o: ../../include/name_mask.h
+diff -durN postfix-2.5.0/src/global/dict_sqlite.c postfix-2.5.0_sqlite/src/global/dict_sqlite.c
+--- postfix-2.5.0/src/global/dict_sqlite.c	Thu Jan  1 00:00:00 1970
++++ postfix-2.5.0_sqlite/src/global/dict_sqlite.c	Tue Feb 12 09:27:16 2008
+@@ -0,0 +1,254 @@
++/*++
++/* NAME
++/*	dict_sqlite 3
++/* SUMMARY
++/*	dictionary manager interface to SQLite3 databases
++/* SYNOPSIS
++/*	#include <dict_sqlite.h>
++/*
++/*	DICT	*dict_sqlite_open(name, open_flags, dict_flags)
++/*	const char *name;
++/*	int	open_flags;
++/*	int	dict_flags;
++/* DESCRIPTION
++/*	dict_sqlite_open() creates a dictionary of type 'sqlite'.  This
++/*	dictionary is an interface for the postfix key->value mappings
++/*	to SQLite.  The result is a pointer to the installed dictionary,
++/*	or a null pointer in case of problems.
++/* .PP
++/*	Arguments:
++/* .IP name
++/*	Either the path to the SQLite configuration file (if it starts
++/*	with '/' or '.'), or the prefix which will be used to obtain
++/*	main.cf configuration parameters for this search.
++/*
++/*	In the first case, the configuration parameters below are
++/*	specified in the file as \fIname\fR=\fBvalue\fR pairs.
++/*
++/*	In the second case, the configuration parameters are
++/*	prefixed with the value of \fIname\fR and an underscore,
++/*	and they are specified in main.cf.  For example, if this
++/*	value is \fIsqlitecon\fR, the parameters would look like
++/*	\fIsqlitecon_user\fR, \fIsqlitecon_table\fR, and so on.
++/*
++/* .IP open_flags
++/*	Must be O_RDONLY.
++/* .IP dict_flags
++/*	See dict_open(3).
++/* .PP
++/*	Configuration parameters:
++/*
++/*	The parameters encodes a number of pieces of information:
++/*	dbpath, query, table, select_field and where_field:
++/* .IP \fIdbpath\fR
++/*	Path to SQLite database
++/* .IP \fIquery\fR
++/*      Query template, before the query is actually issued, variable
++/*	substitutions are performed. See sqlite_table(5) for details. If
++/*	No query is specified, the legacy variables \fItable\fR,
++/*	\fIselect_field\fR, \fIwhere_field\fR and \fIadditional_conditions\fR
++/*	are used to construct the query template.
++/* .IP \fIresult_format\fR
++/*      The format used to expand results from queries.  Substitutions
++/*      are performed as described in sqlite_table(5). Defaults to returning
++/*	the lookup result unchanged.
++/* .IP expansion_limit
++/*	Limit (if any) on the total number of lookup result values. Lookups which
++/*	exceed the limit fail with dict_errno=DICT_ERR_RETRY. Note that each
++/*	non-empty (and non-NULL) column of a multi-column result row counts as
++/*	one result.
++/*
++/* SEE ALSO
++/*	dict(3) generic dictionary manager
++/* AUTHOR(S)
++/*	Axel Steiner
++/*	ast at treibsand.com
++/*--*/
++
++/* System library. */
++#include "sys_defs.h"
++ 
++#ifdef HAS_SQLITE
++#include <sqlite3.h> 
++
++/* Utility library. */
++
++#include "msg.h"
++#include "dict.h"
++#include "vstring.h"
++#include "stringops.h"
++
++/* Global library. */
++
++#include "cfg_parser.h"
++#include "db_common.h"
++
++/* Application-specific. */
++
++#include "dict_sqlite.h"
++
++typedef struct {
++	DICT dict;
++	CFG_PARSER *parser;
++	sqlite3 *db;
++	char *dbpath;
++	char *query;
++	char *result_format;
++	int expansion_limit;
++	void *ctx;
++} DICT_SQLITE;
++
++typedef sqlite3_stmt *SQL;
++
++/* internal function declarations */
++
++static const char *dict_sqlite_lookup(DICT *, const char *);
++DICT   *dict_sqlite_open(const char *, int, int);
++static void dict_sqlite_close(DICT *);
++static void sqlite_parse_config(DICT_SQLITE *, const char *);
++
++
++/* dict_sqlite_close - close the database */
++
++static void dict_sqlite_close(DICT *dict) {
++	const char *myname = "dict_sqlite_close";
++	DICT_SQLITE *dict_sqlite = (DICT_SQLITE *) dict;
++
++	if (msg_verbose)
++		msg_info("%s: dict_sqlite_close", myname);
++	if (sqlite3_close(dict_sqlite->db) != SQLITE_OK)
++		msg_fatal("%s: DB close failed", myname);
++	cfg_parser_free(dict_sqlite->parser);
++	if (dict->fold_buf)
++		vstring_free(dict->fold_buf);
++	dict_free(dict);
++}
++
++
++/* dict_sqlite_lookup - find database entry */
++
++static const char *dict_sqlite_lookup(DICT *dict, const char *name) {
++	const char *myname = "dict_sqlite_lookup";
++	DICT_SQLITE *dict_sqlite = (DICT_SQLITE *) dict;
++	SQL sql;
++	const char *zErrMsg;
++	static VSTRING *query;
++	static VSTRING *result;
++	const char *r;
++	int expansion = 0;
++	
++	/*
++	 * Optionally fold the key.
++	 */
++	if (dict->fold_buf) {
++		vstring_strcpy(dict->fold_buf, name);
++		name = lowercase(vstring_str(dict->fold_buf));
++	}
++
++	if (db_common_check_domain(dict_sqlite->ctx, name) == 0) {
++		if (msg_verbose)
++			msg_info("%s: Skipping lookup of '%s'", myname, name);
++		return (0);
++	}
++
++#define INIT_VSTR(buf, len) do { \
++	if (buf == 0) \
++		buf = vstring_alloc(len); \
++	VSTRING_RESET(buf); \
++	VSTRING_TERMINATE(buf); \
++    } while (0)
++
++	INIT_VSTR(query, 10);
++
++	if (!db_common_expand(dict_sqlite->ctx, dict_sqlite->query,
++			name, 0, query, NULL))
++		return (0); 
++
++	if (msg_verbose)
++		msg_info("%s: %s: Searching with query %s", myname,
++				dict_sqlite->parser->name, vstring_str(query));
++
++	if(sqlite3_prepare_v2(dict_sqlite->db,vstring_str(query),-1,&sql,&zErrMsg)!=SQLITE_OK) {
++		msg_fatal("%s: sql prepare %s\n",myname,sqlite3_errmsg(dict_sqlite->db));
++	}
++
++	INIT_VSTR(result, 10);
++	while (sqlite3_step(sql) == SQLITE_ROW ) {
++		if (db_common_expand(dict_sqlite->ctx, dict_sqlite->result_format,
++					sqlite3_column_text(sql, 0), name, result, 0)
++			&& dict_sqlite->expansion_limit > 0
++			&& ++expansion > dict_sqlite->expansion_limit) {
++			msg_warn("%s: %s: Expansion limit exceeded for key: '%s'",
++				myname, dict_sqlite->parser->name, name);
++			dict_errno = DICT_ERR_RETRY;
++			break;
++		}
++	}
++
++	if(sqlite3_finalize(sql)){
++		msg_fatal("%s: sql finalize for %s; %s\n",myname,vstring_str(query),sqlite3_errmsg(dict_sqlite->db));
++		return(0);
++	}
++
++    
++	r = vstring_str(result);
++	return ((dict_errno == 0 && *r) ? r : 0);
++}
++
++/* sqlite_parse_config - parse sqlite configuration file */
++
++static void sqlite_parse_config(DICT_SQLITE *dict_sqlite, const char *sqlitecf) {
++	CFG_PARSER *p;
++	VSTRING *buf;
++    
++	p = dict_sqlite->parser = cfg_parser_alloc(sqlitecf);
++	dict_sqlite->dbpath = cfg_get_str(p, "dbpath", "", 1, 0);
++	dict_sqlite->result_format = cfg_get_str(p, "result_format", "%s", 1, 0);
++
++	if ((dict_sqlite->query = cfg_get_str(p, "query", NULL, 0, 0)) == 0) {
++		buf = vstring_alloc(64);
++		db_common_sql_build_query(buf, p);
++		dict_sqlite->query = vstring_export(buf);
++	}
++	dict_sqlite->expansion_limit = cfg_get_int(p,"expansion_limit", 0, 0, 0);
++	dict_sqlite->ctx = 0;
++   
++	(void) db_common_parse(&dict_sqlite->dict, &dict_sqlite->ctx, dict_sqlite->query, 1);
++	(void) db_common_parse(0, &dict_sqlite->ctx, dict_sqlite->result_format, 0);
++
++	db_common_parse_domain(p, dict_sqlite->ctx);
++
++	if (db_common_dict_partial(dict_sqlite->ctx))
++		dict_sqlite->dict.flags |= DICT_FLAG_PATTERN;
++	else
++		dict_sqlite->dict.flags |= DICT_FLAG_FIXED;
++
++	if (dict_sqlite->dict.flags & DICT_FLAG_FOLD_FIX)
++		dict_sqlite->dict.fold_buf = vstring_alloc(10); 
++} 
++
++/* dict_sqlite_open - open sqlite database */
++
++DICT   *dict_sqlite_open(const char *name, int open_flags, int dict_flags) {
++	DICT_SQLITE   *dict_sqlite;
++
++	/*
++	 * Sanity checks.
++	 */
++	if (open_flags != O_RDONLY)
++		msg_fatal("%s:%s map requires O_RDONLY access mode", DICT_TYPE_SQLITE, name);
++
++	dict_sqlite = (DICT_SQLITE *) dict_alloc(DICT_TYPE_SQLITE, name, sizeof(DICT_SQLITE));
++	dict_sqlite->dict.lookup = dict_sqlite_lookup;
++	dict_sqlite->dict.close = dict_sqlite_close;
++	dict_sqlite->dict.flags = dict_flags;
++	sqlite_parse_config(dict_sqlite, name);
++
++	if (sqlite3_open(dict_sqlite->dbpath, &dict_sqlite->db)) {
++		msg_fatal("Can't open database: %s\n", sqlite3_errmsg(dict_sqlite->db));
++		sqlite3_close(dict_sqlite->db);
++	}	
++    
++	return (DICT_DEBUG (&dict_sqlite->dict));
++}
++#endif
+diff -durN postfix-2.5.0/src/global/dict_sqlite.h postfix-2.5.0_sqlite/src/global/dict_sqlite.h
+--- postfix-2.5.0/src/global/dict_sqlite.h	Thu Jan  1 00:00:00 1970
++++ postfix-2.5.0_sqlite/src/global/dict_sqlite.h	Tue Feb 12 09:27:16 2008
+@@ -0,0 +1,32 @@
++#ifndef _DICT_SQLITE_H_INCLUDED_
++#define _DICT_SQLITE_H_INCLUDED_
++
++/*++
++/* NAME
++/*	dict_sqlite 3h
++/* SUMMARY
++/*	dictionary manager interface to sqlite databases
++/* SYNOPSIS
++/*	#include <dict_sqlite.h>
++/* DESCRIPTION
++/* .nf
++
++ /*
++  * Utility library.
++  */
++#include <dict.h>
++
++ /*
++  * External interface.
++  */
++#define DICT_TYPE_SQLITE "sqlite"
++
++extern DICT *dict_sqlite_open(const char *, int, int);
++
++
++/* AUTHOR(S)
++/*	Axel Steiner
++/*	ast at treibsand.com
++/*--*/
++
++#endif
+diff -durN postfix-2.5.0/src/global/mail_dict.c postfix-2.5.0_sqlite/src/global/mail_dict.c
+--- postfix-2.5.0/src/global/mail_dict.c	Tue Jan  8 21:07:47 2008
++++ postfix-2.5.0_sqlite/src/global/mail_dict.c	Tue Feb 12 09:27:16 2008
+@@ -36,6 +36,7 @@
+ #include <dict_ldap.h>
+ #include <dict_mysql.h>
+ #include <dict_pgsql.h>
++#include <dict_sqlite.h>
+ #include <mail_dict.h>
+ 
+ typedef struct {
+@@ -53,6 +54,9 @@
+ #endif
+ #ifdef HAS_PGSQL
+     DICT_TYPE_PGSQL, dict_pgsql_open,
++#endif
++#ifdef HAS_SQLITE
++    DICT_TYPE_SQLITE, dict_sqlite_open,
+ #endif
+     0,
+ };
diff --git a/mail/postfix/postfix-2.6_sqlite.patch b/mail/postfix/postfix-2.6_sqlite.patch
new file mode 100644
index 0000000..7ce2398
--- /dev/null
+++ b/mail/postfix/postfix-2.6_sqlite.patch
@@ -0,0 +1,391 @@
+diff -durN postfix-2.6-20080216/src/global/Makefile.in postfix-2.6-20080216_sqlite/src/global/Makefile.in
+--- postfix-2.6-20080216/src/global/Makefile.in	Thu Dec  6 13:49:03 2007
++++ postfix-2.6-20080216_sqlite/src/global/Makefile.in	Tue Feb 19 10:42:23 2008
+@@ -4,7 +4,7 @@
+ 	clnt_stream.c conv_time.c db_common.c debug_peer.c debug_process.c \
+ 	defer.c deliver_completed.c deliver_flock.c deliver_pass.c \
+ 	deliver_request.c dict_ldap.c dict_mysql.c dict_pgsql.c \
+-	dict_proxy.c domain_list.c dot_lockfile.c dot_lockfile_as.c \
++	dict_proxy.c dict_sqlite.c  domain_list.c dot_lockfile.c dot_lockfile_as.c \
+ 	dsb_scan.c dsn.c dsn_buf.c dsn_mask.c dsn_print.c dsn_util.c \
+ 	ehlo_mask.c ext_prop.c file_id.c flush_clnt.c header_opts.c \
+ 	header_token.c input_transp.c int_filt.c is_header.c log_adhoc.c \
+@@ -34,7 +34,7 @@
+ 	clnt_stream.o conv_time.o db_common.o debug_peer.o debug_process.o \
+ 	defer.o deliver_completed.o deliver_flock.o deliver_pass.o \
+ 	deliver_request.o dict_ldap.o dict_mysql.o dict_pgsql.o \
+-	dict_proxy.o domain_list.o dot_lockfile.o dot_lockfile_as.o \
++	dict_proxy.o dict_sqlite.o domain_list.o dot_lockfile.o dot_lockfile_as.o \
+ 	dsb_scan.o dsn.o dsn_buf.o dsn_mask.o dsn_print.o dsn_util.o \
+ 	ehlo_mask.o ext_prop.o file_id.o flush_clnt.o header_opts.o \
+ 	header_token.o input_transp.o int_filt.o is_header.o log_adhoc.o \
+@@ -63,7 +63,7 @@
+ 	canon_addr.h cfg_parser.h cleanup_user.h clnt_stream.h config.h \
+ 	conv_time.h db_common.h debug_peer.h debug_process.h defer.h \
+ 	deliver_completed.h deliver_flock.h deliver_pass.h deliver_request.h \
+-	dict_ldap.h dict_mysql.h dict_pgsql.h dict_proxy.h domain_list.h \
++	dict_ldap.h dict_mysql.h dict_pgsql.h dict_proxy.h dict_sqlite.h domain_list.h \
+ 	dot_lockfile.h dot_lockfile_as.h dsb_scan.h dsn.h dsn_buf.h \
+ 	dsn_mask.h dsn_print.h dsn_util.h ehlo_mask.h ext_prop.h \
+ 	file_id.h flush_clnt.h header_opts.h header_token.h input_transp.h \
+@@ -860,6 +860,13 @@
+ dict_proxy.o: dict_proxy.h
+ dict_proxy.o: mail_params.h
+ dict_proxy.o: mail_proto.h
++dict_sqlite.o: ../../include/dict.h
++dict_sqlite.o: ../../include/msg.h
++dict_sqlite.o: ../../include/sys_defs.h
++dict_sqlite.o: cfg_parser.h
++dict_sqlite.o: db_common.h
++dict_sqlite.o: dict_sqlite.c
++dict_sqlite.o: dict_sqlite.h
+ domain_list.o: ../../include/match_list.h
+ domain_list.o: ../../include/match_ops.h
+ domain_list.o: ../../include/sys_defs.h
+@@ -1219,6 +1226,7 @@
+ mail_dict.o: dict_mysql.h
+ mail_dict.o: dict_pgsql.h
+ mail_dict.o: dict_proxy.h
++mail_dict.o: dict_sqlite.h
+ mail_dict.o: mail_dict.c
+ mail_dict.o: mail_dict.h
+ mail_error.o: ../../include/name_mask.h
+diff -durN postfix-2.6-20080216/src/global/dict_sqlite.c postfix-2.6-20080216_sqlite/src/global/dict_sqlite.c
+--- postfix-2.6-20080216/src/global/dict_sqlite.c	Thu Jan  1 00:00:00 1970
++++ postfix-2.6-20080216_sqlite/src/global/dict_sqlite.c	Tue Feb 19 13:43:01 2008
+@@ -0,0 +1,278 @@
++/*++
++/* NAME
++/*	dict_sqlite 3
++/* SUMMARY
++/*	dictionary manager interface to SQLite3 databases
++/* SYNOPSIS
++/*	#include <dict_sqlite.h>
++/*
++/*	DICT	*dict_sqlite_open(name, open_flags, dict_flags)
++/*	const char *name;
++/*	int	open_flags;
++/*	int	dict_flags;
++/* DESCRIPTION
++/*	dict_sqlite_open() creates a dictionary of type 'sqlite'.  This
++/*	dictionary is an interface for the postfix key->value mappings
++/*	to SQLite.  The result is a pointer to the installed dictionary,
++/*	or a null pointer in case of problems.
++/* .PP
++/*	Arguments:
++/* .IP name
++/*	Either the path to the SQLite configuration file (if it starts
++/*	with '/' or '.'), or the prefix which will be used to obtain
++/*	main.cf configuration parameters for this search.
++/*
++/*	In the first case, the configuration parameters below are
++/*	specified in the file as \fIname\fR=\fBvalue\fR pairs.
++/*
++/*	In the second case, the configuration parameters are
++/*	prefixed with the value of \fIname\fR and an underscore,
++/*	and they are specified in main.cf.  For example, if this
++/*	value is \fIsqlitecon\fR, the parameters would look like
++/*	\fIsqlitecon_user\fR, \fIsqlitecon_table\fR, and so on.
++/*
++/* .IP open_flags
++/*	Must be O_RDONLY.
++/* .IP dict_flags
++/*	See dict_open(3).
++/* .PP
++/*	Configuration parameters:
++/*
++/*	The parameters encodes a number of pieces of information:
++/*	dbpath, query, result_format and expansion_limit:
++/* .IP \fIdbpath\fR
++/*	Path to SQLite database
++/* .IP \fIquery\fR
++/*	Query template, before the query is actually issued, variable
++/*	substitutions are performed. See sqlite_table(5) for details. 
++/* .IP \fIresult_format\fR
++/*	The format used to expand results from queries.  Substitutions
++/*	are performed as described in sqlite_table(5). Defaults to returning
++/*	the lookup result unchanged.
++/* .IP expansion_limit
++/*	Limit (if any) on the total number of lookup result values. Lookups which
++/*	exceed the limit fail with dict_errno=DICT_ERR_RETRY. Note that each
++/*	non-empty (and non-NULL) column of a multi-column result row counts as
++/*	one result.
++/*
++/* SEE ALSO
++/*	dict(3) generic dictionary manager
++/* AUTHOR(S)
++/*	Axel Steiner
++/*	ast at treibsand.com
++/*--*/
++
++/* System library. */
++#include "sys_defs.h"
++ 
++#ifdef HAS_SQLITE
++#include <sqlite3.h> 
++
++#if !defined(SQLITE_VERSION_NUMBER) || (SQLITE_VERSION_NUMBER < 3005004)
++#error "Your SQLite version is too old"
++#endif
++
++/* Utility library. */
++
++#include "msg.h"
++#include "dict.h"
++#include "vstring.h"
++#include "stringops.h"
++#include "mymalloc.h"
++
++/* Global library. */
++
++#include "cfg_parser.h"
++#include "db_common.h"
++
++/* Application-specific. */
++
++#include "dict_sqlite.h"
++
++typedef struct {
++	DICT dict;
++	CFG_PARSER *parser;
++	sqlite3 *db;
++	char *dbpath;
++	char *query;
++	char *result_format;
++	int expansion_limit;
++	void *ctx;
++} DICT_SQLITE;
++
++typedef sqlite3_stmt *SQL;
++
++/* internal function declarations */
++
++static const char *dict_sqlite_lookup(DICT *, const char *);
++DICT   *dict_sqlite_open(const char *, int, int);
++static void dict_sqlite_close(DICT *);
++static void sqlite_parse_config(DICT_SQLITE *, const char *);
++
++/* dict_sqlite_quote - escape SQL metacharacters in input string */
++
++static void dict_sqlite_quote(DICT *dict, const char *name, VSTRING *result) {
++	DICT_SQLITE *dict_sqlite = (DICT_SQLITE *) dict;
++	int len = strlen(name);
++	int buflen = 2*len + 1;
++	char *q;
++	
++	if (buflen < len)
++		msg_panic("dict_sqlite_quote: integer overflow in 2*%d+1", len);
++    
++	VSTRING_SPACE(result, buflen);
++	q = sqlite3_mprintf("%q",name);
++	vstring_strncat(result,q, strlen(q));
++	sqlite3_free(q);
++	VSTRING_SKIP(result);
++}
++
++
++/* dict_sqlite_close - close the database */
++
++static void dict_sqlite_close(DICT *dict) {
++	const char *myname = "dict_sqlite_close";
++	DICT_SQLITE *dict_sqlite = (DICT_SQLITE *) dict;
++
++	if (msg_verbose)
++		msg_info("%s: dict_sqlite_close", myname);
++	if (sqlite3_close(dict_sqlite->db) != SQLITE_OK)
++		msg_fatal("%s: DB close failed", myname);
++	cfg_parser_free(dict_sqlite->parser);
++	myfree(dict_sqlite->dbpath);
++	myfree(dict_sqlite->query);
++	myfree(dict_sqlite->result_format);
++	if (dict_sqlite->ctx)
++		db_common_free_ctx(dict_sqlite->ctx);
++	if (dict->fold_buf)
++		vstring_free(dict->fold_buf);
++	dict_free(dict);
++}
++
++
++/* dict_sqlite_lookup - find database entry */
++
++static const char *dict_sqlite_lookup(DICT *dict, const char *name) {
++	const char *myname = "dict_sqlite_lookup";
++	DICT_SQLITE *dict_sqlite = (DICT_SQLITE *) dict;
++	SQL sql;
++	const char *zErrMsg;
++	static VSTRING *query;
++	static VSTRING *result;
++	const char *r;
++	int expansion = 0;
++	
++	/*
++	 * Optionally fold the key.
++	 */
++	if (dict->flags & DICT_FLAG_FOLD_FIX) {
++		if (dict->fold_buf == 0)
++			dict->fold_buf = vstring_alloc(10);
++		vstring_strcpy(dict->fold_buf, name);
++		name = lowercase(vstring_str(dict->fold_buf));
++	}
++
++	if (db_common_check_domain(dict_sqlite->ctx, name) == 0) {
++		if (msg_verbose)
++			msg_info("%s: Skipping lookup of '%s'", myname, name);
++		return (0);
++	}
++
++#define INIT_VSTR(buf, len) do { \
++	if (buf == 0) \
++		buf = vstring_alloc(len); \
++	VSTRING_RESET(buf); \
++	VSTRING_TERMINATE(buf); \
++    } while (0)
++
++	INIT_VSTR(query, 10);
++
++	if (!db_common_expand(dict_sqlite->ctx, dict_sqlite->query,
++			name, 0, query, dict_sqlite_quote))
++		return (0); 
++
++	if (msg_verbose)
++		msg_info("%s: %s: Searching with query %s", myname,
++				dict_sqlite->parser->name, vstring_str(query));
++
++	if(sqlite3_prepare_v2(dict_sqlite->db,vstring_str(query),-1,&sql,&zErrMsg)!=SQLITE_OK) {
++		msg_fatal("%s: sql prepare %s\n",myname,sqlite3_errmsg(dict_sqlite->db));
++	}
++
++	INIT_VSTR(result, 10);
++	while (sqlite3_step(sql) == SQLITE_ROW ) {
++		if (db_common_expand(dict_sqlite->ctx, dict_sqlite->result_format,
++					sqlite3_column_text(sql, 0), name, result, 0)
++			&& dict_sqlite->expansion_limit > 0
++			&& ++expansion > dict_sqlite->expansion_limit) {
++			msg_warn("%s: %s: Expansion limit exceeded for key: '%s'",
++				myname, dict_sqlite->parser->name, name);
++			dict_errno = DICT_ERR_RETRY;
++			break;
++		}
++	}
++
++	if(sqlite3_finalize(sql)){
++		msg_fatal("%s: sql finalize for %s; %s\n",myname,vstring_str(query),sqlite3_errmsg(dict_sqlite->db));
++		return(0);
++	}
++
++    
++	r = vstring_str(result);
++	return ((dict_errno == 0 && *r) ? r : 0);
++}
++
++/* sqlite_parse_config - parse sqlite configuration file */
++
++static void sqlite_parse_config(DICT_SQLITE *dict_sqlite, const char *sqlitecf) {
++	CFG_PARSER *p;
++	VSTRING *buf;
++    
++	p = dict_sqlite->parser = cfg_parser_alloc(sqlitecf);
++	dict_sqlite->dbpath = cfg_get_str(p, "dbpath", "", 1, 0);
++	dict_sqlite->result_format = cfg_get_str(p, "result_format", "%s", 1, 0);
++
++	if ((dict_sqlite->query = cfg_get_str(p, "query", NULL, 0, 0)) == 0) {
++		buf = vstring_alloc(64);
++		db_common_sql_build_query(buf, p);
++		dict_sqlite->query = vstring_export(buf);
++	}
++	dict_sqlite->expansion_limit = cfg_get_int(p,"expansion_limit", 0, 0, 0);
++	dict_sqlite->ctx = 0;
++   
++	(void) db_common_parse(&dict_sqlite->dict, &dict_sqlite->ctx, dict_sqlite->query, 1);
++	(void) db_common_parse(0, &dict_sqlite->ctx, dict_sqlite->result_format, 0);
++
++	db_common_parse_domain(p, dict_sqlite->ctx);
++	
++	if (dict_sqlite->dict.flags & DICT_FLAG_FOLD_FIX)
++		dict_sqlite->dict.fold_buf = vstring_alloc(10);
++
++} 
++
++/* dict_sqlite_open - open sqlite database */
++
++DICT   *dict_sqlite_open(const char *name, int open_flags, int dict_flags) {
++	DICT_SQLITE   *dict_sqlite;
++
++	/*
++	 * Sanity checks.
++	 */
++	if (open_flags != O_RDONLY)
++		msg_fatal("%s:%s map requires O_RDONLY access mode", DICT_TYPE_SQLITE, name);
++
++	dict_sqlite = (DICT_SQLITE *) dict_alloc(DICT_TYPE_SQLITE, name, sizeof(DICT_SQLITE));
++	dict_sqlite->dict.lookup = dict_sqlite_lookup;
++	dict_sqlite->dict.close = dict_sqlite_close;
++	dict_sqlite->dict.flags = dict_flags;
++	dict_sqlite->dict.flags |= DICT_FLAG_FIXED;
++	sqlite_parse_config(dict_sqlite, name);
++
++	if (sqlite3_open(dict_sqlite->dbpath, &dict_sqlite->db)) {
++		msg_fatal("Can't open database: %s\n", sqlite3_errmsg(dict_sqlite->db));
++		sqlite3_close(dict_sqlite->db);
++	}	
++    
++	return (DICT_DEBUG (&dict_sqlite->dict));
++}
++#endif
+diff -durN postfix-2.6-20080216/src/global/dict_sqlite.h postfix-2.6-20080216_sqlite/src/global/dict_sqlite.h
+--- postfix-2.6-20080216/src/global/dict_sqlite.h	Thu Jan  1 00:00:00 1970
++++ postfix-2.6-20080216_sqlite/src/global/dict_sqlite.h	Tue Feb 19 10:42:23 2008
+@@ -0,0 +1,32 @@
++#ifndef _DICT_SQLITE_H_INCLUDED_
++#define _DICT_SQLITE_H_INCLUDED_
++
++/*++
++/* NAME
++/*	dict_sqlite 3h
++/* SUMMARY
++/*	dictionary manager interface to sqlite databases
++/* SYNOPSIS
++/*	#include <dict_sqlite.h>
++/* DESCRIPTION
++/* .nf
++
++ /*
++  * Utility library.
++  */
++#include <dict.h>
++
++ /*
++  * External interface.
++  */
++#define DICT_TYPE_SQLITE "sqlite"
++
++extern DICT *dict_sqlite_open(const char *, int, int);
++
++
++/* AUTHOR(S)
++/*	Axel Steiner
++/*	ast at treibsand.com
++/*--*/
++
++#endif
+diff -durN postfix-2.6-20080216/src/global/mail_dict.c postfix-2.6-20080216_sqlite/src/global/mail_dict.c
+--- postfix-2.6-20080216/src/global/mail_dict.c	Tue Jan  8 21:07:47 2008
++++ postfix-2.6-20080216_sqlite/src/global/mail_dict.c	Tue Feb 19 10:42:23 2008
+@@ -36,6 +36,7 @@
+ #include <dict_ldap.h>
+ #include <dict_mysql.h>
+ #include <dict_pgsql.h>
++#include <dict_sqlite.h>
+ #include <mail_dict.h>
+ 
+ typedef struct {
+@@ -53,6 +54,9 @@
+ #endif
+ #ifdef HAS_PGSQL
+     DICT_TYPE_PGSQL, dict_pgsql_open,
++#endif
++#ifdef HAS_SQLITE
++    DICT_TYPE_SQLITE, dict_sqlite_open,
+ #endif
+     0,
+ };
diff --git a/python-pypi/moinmoin/DETAILS b/python-pypi/moinmoin/DETAILS
index d44cf85..d7421dd 100755
--- a/python-pypi/moinmoin/DETAILS
+++ b/python-pypi/moinmoin/DETAILS
@@ -1,9 +1,9 @@
            SPELL=moinmoin
-         VERSION=1.7.2
+         VERSION=1.8.0
   SECURITY_PATCH=1
           SOURCE=${SPELL%%moin}-$VERSION.tar.gz
    SOURCE_URL[0]=http://static.moinmo.in/files/$SOURCE
-     SOURCE_HASH=sha512:a29a7fb898c8866bbf4cd1343ae6595fb57c739b4406b77609ed883cbea9a4e495b574f517eb62bdbbfbef6fe7532fa0969509a5a89bbae41d151cd6c2f366ec
+     SOURCE_HASH=sha512:e40bf2d4b43eb40b00099414e29ed58ab22ab9acff283f749dbdc2424c61d88b1444e7ed901d5471c7f491d596d964ddd61d55e089d1167686263eb9c5ecddc8
 SOURCE_DIRECTORY=$BUILD_DIRECTORY/${SPELL%%moin}-$VERSION
       LICENSE[0]=GPL
         WEB_SITE=http://moinmo.in/
diff --git a/python-pypi/moinmoin/HISTORY b/python-pypi/moinmoin/HISTORY
index 46103d5..b9147b1 100644
--- a/python-pypi/moinmoin/HISTORY
+++ b/python-pypi/moinmoin/HISTORY
@@ -1,3 +1,6 @@
+2008-12-07 Elisamuel Resto <ryuji at sourcemage.org>
+	* DETAILS: updated to 1.8.0
+
 2008-09-23 David Kowis <dkowis at shlrm.org>
 	* DEPENDS: suggest_depends on mod_python and mod_wsgi were very broke
 
diff --git a/ruby-raa/passenger/DETAILS b/ruby-raa/passenger/DETAILS
index 8b39008..9a9489b 100755
--- a/ruby-raa/passenger/DETAILS
+++ b/ruby-raa/passenger/DETAILS
@@ -1,10 +1,11 @@
            SPELL=passenger
-         VERSION=2.0.3
+         VERSION=2.0.5
+           RAAID=47928
           SOURCE=$SPELL-$VERSION.tar.gz
 SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
-   SOURCE_URL[0]=http://rubyforge.org/frs/download.php/38872/$SOURCE
+   SOURCE_URL[0]=http://rubyforge.org/frs/download.php/$RAAID/$SOURCE
         WEB_SITE=http://www.modrails.com/
-     SOURCE_HASH=sha512:fa8b558d98d83e0bb6e6652497bd6ce4c5177ded00b53c9fd7ba00a26e047e16bd47296442dbba70b0df252f6d60cac360838eefb96de69c93252d8d8351d9bc
+     SOURCE_HASH=sha512:2c59e677be27ca8305f8f7ab3c71e607ad7ef30e9dc24f6255452bfb53c5666a1300be879df6459272958e46232165a054e348bff2dc9199a3892b63845d905f
       LICENSE[0]=GPL
          ENTERED=20080628
         KEYWORDS="ruby rails apache"
diff --git a/utils/rsyslog/DETAILS b/utils/rsyslog/DETAILS
index ac7367c..cc5fe95 100755
--- a/utils/rsyslog/DETAILS
+++ b/utils/rsyslog/DETAILS
@@ -1,14 +1,19 @@
            SPELL=rsyslog
+
 if [[ "${RSYSLOG_BRANCH}" == "devel" ]]; then
-         VERSION=4.1.1
-     SOURCE_HASH=sha512:dea6638336bae2eda3500d292dfc41880a6db0c9f38f6587009d5c6c8334da1ed12aa0326fc3cc14d65f7aa4e3b66b5dd7fcdb812509f4d02225094c94a6d490
+         VERSION=4.1.2
+  SECURITY_PATCH=1
+     SOURCE_HASH=sha512:429225db3b42bd3f7b399aa306a8b134aa08823c3a98a0d2f6be81f391267aaf3e5ce35ee6b486389605e4d524deb4cc04319239c780d7cc91108d818b391456
 elif [[ "${RSYSLOG_BRANCH}" == "beta" ]]; then
-         VERSION=3.21.7
-     SOURCE_HASH=sha512:c61fbc3d88cd523da65f0b5482866662e7aba0cc521edad0c05f4902479560e863402dfa943e83795344da4814a4f59fe37d655d6ce18a77c5a61b80c2cc14e2
+         VERSION=3.21.9
+  SECURITY_PATCH=1
+     SOURCE_HASH=sha512:cea482c0997e51c9fd3f4b2191c93a9830530f05984edda5f63e6a2c237a0c448736469d7aa4491d6da9b1a1053f07bc276a3be99d264c5e89c5aed213843593
 else
-         VERSION=3.20.0
-     SOURCE_HASH=sha512:e691bdff27a75028b72059120ac7422863ed341be72eab898a809116009a1fd5344799f698c28c967a908aef46c773b79312d950040b73bb81eae87efe7a77d3
+         VERSION=3.20.1
+  SECURITY_PATCH=1
+     SOURCE_HASH=sha512:e30d89120a81761a30f752b067542fbd0553657bb5e1bee8c72d517bbe70b7f4f878241e6bd90511ca659bd18c2ad92ade8da59a3925f05ce938f4010eb2455b
 fi
+
           SOURCE=${SPELL}-${VERSION}.tar.gz
    SOURCE_URL[0]=http://download.rsyslog.com/${SPELL}/${SOURCE}
 SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
@@ -16,6 +21,7 @@ SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
       LICENSE[0]=GPL
          ENTERED=20080303
            SHORT="An enhanced multi-threaded syslog daemon"
+
 cat << EOF
 Rsyslog is an enhanced multi-threaded syslogd. Among other features, it
 offers support for on-demand disk buffering, reliable syslog over TCP, writing
diff --git a/utils/rsyslog/HISTORY b/utils/rsyslog/HISTORY
index aebab01..c09cd54 100644
--- a/utils/rsyslog/HISTORY
+++ b/utils/rsyslog/HISTORY
@@ -1,3 +1,7 @@
+2008-12-08 Elisamuel Resto <ryuji at sourcemage.org>
+	* DETAILS: updated devel to 4.1.2, beta to 3.21.9 and stable to 3.20.1
+	  SECURITY_PATCH=1; as described in http://www.rsyslog.com/Article322.phtml
+
 2008-11-28 Elisamuel Resto <ryuji at sourcemage.org>
 	* DETAILS: updated beta branch to 3.21.7; devel branch to 4.1.1
 	* init.d/rsyslog(.conf): updated for setting compat layer depending



More information about the SM-Commit mailing list