Index: configure
--- configure.orig	2006-04-22 05:54:22 +0200
+++ configure	2006-04-30 09:59:39 +0200
@@ -2682,6 +2682,11 @@
    { (exit 1); exit 1; }; }
 fi
 
+if test "x${USE_BUNDLED_APR}" != "x" ; then
+    apr_found=reconfig
+    apr_config=srclib/apr/apr-1-config
+fi
+
 if test "$apr_found" = "reconfig"; then
 
   # save our work to this point; this allows the sub-package to use it
@@ -3010,6 +3015,11 @@
    { (exit 1); exit 1; }; }
 fi
 
+if test "x${USE_BUNDLED_APR}" != "x" ; then
+    apu_found=reconfig
+    apu_config=srclib/apr-util/apu-1-config
+fi
+
 # Catch some misconfigurations:
 case ${apr_found}.${apu_found} in
 reconfig.yes)
Index: docs/conf/mime.types
--- docs/conf/mime.types.orig	2006-01-29 23:34:37 +0100
+++ docs/conf/mime.types	2006-09-11 17:33:28 +0200
@@ -265,6 +265,22 @@
 application/vnd.novadigm.edm
 application/vnd.novadigm.edx
 application/vnd.novadigm.ext
+application/vnd.oasis.opendocument.text odt
+application/vnd.oasis.opendocument.spreadsheet ods
+application/vnd.oasis.opendocument.presentation odp
+application/vnd.oasis.opendocument.graphics odg
+application/vnd.oasis.opendocument.chart odc
+application/vnd.oasis.opendocument.formula odf
+application/vnd.oasis.opendocument.image odi
+application/vnd.oasis.opendocument.text-template ott
+application/vnd.oasis.opendocument.spreadsheet-template ots
+application/vnd.oasis.opendocument.presentation-template otp
+application/vnd.oasis.opendocument.graphics-template otg
+application/vnd.oasis.opendocument.chart-template otc
+application/vnd.oasis.opendocument.formula-template oft
+application/vnd.oasis.opendocument.image-template oti
+application/vnd.oasis.opendocument.text-master odm
+application/vnd.oasis.opendocument.text-web oth
 application/vnd.obn
 application/vnd.osa.netdeploy
 application/vnd.palm
Index: server/Makefile.in
--- server/Makefile.in.orig	2006-03-09 22:29:55 +0100
+++ server/Makefile.in	2006-04-30 09:59:39 +0200
@@ -56,7 +56,8 @@
 	tmp=export_files_unsorted.txt; \
 	rm -f $$tmp && touch $$tmp; \
 	for dir in $(EXPORT_DIRS); do \
-	    ls $$dir/*.h >> $$tmp; \
+		abs_dir=`cd $$dir && exec pwd`; \
+	    ls $$abs_dir/*.h >> $$tmp; \
 	done; \
 	for dir in $(EXPORT_DIRS_APR); do \
 	    (ls $$dir/ap[ru].h $$dir/ap[ru]_*.h >> $$tmp 2>/dev/null); \
Index: srclib/apr-util/crypto/getuuid.c
--- srclib/apr-util/crypto/getuuid.c.orig	2005-02-04 21:45:35 +0100
+++ srclib/apr-util/crypto/getuuid.c	2006-04-30 09:59:39 +0200
@@ -131,7 +131,7 @@
 
     /* crap. this isn't crypto quality, but it will be Good Enough */
 
-    get_system_time(&time_now);
+    time_now = apr_time_now();
     srand((unsigned int)(((time_now >> 32) ^ time_now) & 0xffffffff));
 
     return rand() & 0x0FFFF;
@@ -151,7 +151,7 @@
     static apr_interval_time_t time_last = 0;
     static apr_interval_time_t fudge = 0;
 
-    time_now = apr_time_now();
+    get_system_time(&time_now);
         
     /* if clock reading changed since last UUID generated... */
     if (time_last != time_now) {
@@ -188,17 +188,26 @@
 
     get_current_time(&timestamp);
 
-    d[0] = (unsigned char)timestamp;
-    d[1] = (unsigned char)(timestamp >> 8);
-    d[2] = (unsigned char)(timestamp >> 16);
-    d[3] = (unsigned char)(timestamp >> 24);
-    d[4] = (unsigned char)(timestamp >> 32);
-    d[5] = (unsigned char)(timestamp >> 40);
-    d[6] = (unsigned char)(timestamp >> 48);
-    d[7] = (unsigned char)(((timestamp >> 56) & 0x0F) | 0x10);
+    /* UUID field: time_low */
+    d[0] = (unsigned char)(timestamp >> (8*3));
+    d[1] = (unsigned char)(timestamp >> (8*2));
+    d[2] = (unsigned char)(timestamp >> (8*1));
+    d[3] = (unsigned char)(timestamp);
+
+    /* UUID field: time_mid */
+    d[4] = (unsigned char)(timestamp >> (8*5));
+    d[5] = (unsigned char)(timestamp >> (8*4));
+
+    /* UUID field: time_hi_and_version */
+    d[6] = (unsigned char)(((timestamp >> (8*7)) & 0x0F) | 0x10);
+    d[7] = (unsigned char)(timestamp >> (8*6));
 
+    /* UUID field: clk_seq_hi_res */
     d[8] = (unsigned char)(((uuid_state_seqnum >> 8) & 0x3F) | 0x80);
+
+    /* UUID field: clk_seq_low */
     d[9] = (unsigned char)uuid_state_seqnum;
 
+    /* UUID field: node */
     memcpy(&d[10], uuid_state_node, NODE_LENGTH);
 }
Index: srclib/apr-util/dbd/apr_dbd_sqlite3.c
--- srclib/apr-util/dbd/apr_dbd_sqlite3.c.orig	2006-03-15 07:04:54 +0100
+++ srclib/apr-util/dbd/apr_dbd_sqlite3.c	2006-04-30 10:02:32 +0200
@@ -39,7 +39,9 @@
 struct apr_dbd_t {
     sqlite3 *conn;
     apr_dbd_transaction_t *trans;
+#if APR_HAS_THREADS
     apr_thread_mutex_t *mutex;
+#endif
     apr_pool_t *pool;
 };
 
@@ -93,11 +95,15 @@
         return sql->trans->errnum;
     }
 
+#if APR_HAS_THREADS
     apr_thread_mutex_lock(sql->mutex);
+#endif
 
     ret = sqlite3_prepare(sql->conn, query, strlen(query), &stmt, &tail);
     if (!dbd_sqlite3_is_success(ret)) {
+#if APR_HAS_THREADS
         apr_thread_mutex_unlock(sql->mutex);
+#endif
         return ret;
     } else {
         int column_count;
@@ -118,9 +124,13 @@
                 if (retry_count++ > MAX_RETRY_COUNT) {
                     ret = SQLITE_ERROR;
                 } else {
+#if APR_HAS_THREADS
                     apr_thread_mutex_unlock(sql->mutex);
+#endif
                     apr_sleep(MAX_RETRY_SLEEP);
+#if APR_HAS_THREADS
                     apr_thread_mutex_lock(sql->mutex);
+#endif
                 }
             } else if (ret == SQLITE_ROW) {
                 int length;
@@ -179,7 +189,9 @@
         } while (ret == SQLITE_ROW || ret == SQLITE_BUSY);
     }
     ret = sqlite3_finalize(stmt);
+#if APR_HAS_THREADS
     apr_thread_mutex_unlock(sql->mutex);
+#endif
 
     if (sql->trans) {
         sql->trans->errnum = ret;
@@ -242,7 +254,9 @@
     }
 
     length = strlen(query);
+#if APR_HAS_THREADS
     apr_thread_mutex_lock(sql->mutex);
+#endif
 
     do {
         ret = sqlite3_prepare(sql->conn, query, length, &stmt, &tail);
@@ -260,7 +274,9 @@
     if (dbd_sqlite3_is_success(ret)) {
         ret =  0;
     }
+#if APR_HAS_THREADS
     apr_thread_mutex_unlock(sql->mutex);
+#endif
     if (sql->trans) {
         sql->trans->errnum = ret;
     }
@@ -367,11 +383,13 @@
     sql->pool = pool;
     sql->trans = NULL;
     /* Create a mutex */
+#if APR_HAS_THREADS
     res = apr_thread_mutex_create(&sql->mutex, APR_THREAD_MUTEX_DEFAULT,
                                   pool);
     if (res != APR_SUCCESS) {
         return NULL;
     }
+#endif
 
     return sql;
 }
@@ -379,7 +397,9 @@
 static apr_status_t dbd_sqlite3_close(apr_dbd_t *handle)
 {
     sqlite3_close(handle->conn);
+#if APR_HAS_THREADS
     apr_thread_mutex_destroy(handle->mutex);
+#endif
     return APR_SUCCESS;
 }
 
