From 63542b0713051710cd4cd3846dcc1b7770f7af88 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Thu, 5 Jul 2018 14:50:01 +0100
Subject: [PATCH] Fix xmpp creation of tables and indexes

---
 src/freedombone-app-xmpp | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/freedombone-app-xmpp b/src/freedombone-app-xmpp
index 7c7292b09..32301d158 100755
--- a/src/freedombone-app-xmpp
+++ b/src/freedombone-app-xmpp
@@ -67,6 +67,21 @@ xmpp_variables=(ONION_ONLY
                 DEFAULT_DOMAIN_NAME
                 XMPP_DOMAIN_CODE)
 
+function xmpp_fix_exists {
+    if ! grep -q "CREATE INDEX IF NOT EXISTS" plugins/mod_storage_sql1.lua; then
+        sed -i 's|CREATE INDEX|CREATE INDEX IF NOT EXISTS|g' plugins/mod_storage_sql1.lua
+    fi
+    if ! grep -q "CREATE INDEX IF NOT EXISTS" util/sql.lua; then
+        sed -i 's|CREATE INDEX|CREATE INDEX IF NOT EXISTS|g' util/sql.lua
+    fi
+    if ! grep -q "CREATE TABLE IF NOT EXISTS" plugins/mod_storage_sql1.lua; then
+        sed -i 's|CREATE TABLE|CREATE TABLE IF NOT EXISTS|g' plugins/mod_storage_sql1.lua
+    fi
+    if ! grep -q "CREATE TABLE IF NOT EXISTS" util/sql.lua; then
+        sed -i 's|CREATE TABLE|CREATE TABLE IF NOT EXISTS|g' util/sql.lua
+    fi
+}
+
 function xmpp_update_e2e_policy {
     filename="$1"
 
@@ -505,6 +520,7 @@ function upgrade_xmpp {
             # ensure that the binaries have not been overwritten
             # by an operating system upgrade
             cd "${INSTALL_DIR}/${prosody_filename}" || exit 462846284
+            xmpp_fix_exists
             make prefix=/usr install
         else
             cd "$INSTALL_DIR" || exit 23681468
@@ -532,6 +548,7 @@ function upgrade_xmpp {
 
             tar -xzvf "${INSTALL_DIR}/${prosody_filename}.tar.gz"
             cd "${INSTALL_DIR}/${prosody_filename}" || exit 246872468246
+            xmpp_fix_exists
             ./configure --ostype=debian --prefix=/usr
             make prefix=/usr
             make prefix=/usr install
@@ -973,6 +990,7 @@ function install_xmpp_nightly {
 
     tar -xzvf "${INSTALL_DIR}/${prosody_filename}.tar.gz"
     cd "${INSTALL_DIR}/${prosody_filename}" || exit 7246284245
+    xmpp_fix_exists
     ./configure --ostype=debian --prefix=/usr
     make prefix=/usr
     make prefix=/usr install
-- 
GitLab