summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergej Pupykin2017-11-24 15:10:26 +0300
committerSergej Pupykin2017-11-24 15:10:26 +0300
commit849417b07b411754bad7fc63e84161bc491558fa (patch)
tree70a74c0c17c842704d4f458ea5daf06cc59cb6db
parent485a28fb016b6b1bcecfc4a11edbf93512cab780 (diff)
downloadaur-849417b07b411754bad7fc63e84161bc491558fa.tar.gz
removed from community
-rw-r--r--PKGBUILD52
-rw-r--r--build-fix.patch458
-rw-r--r--hack-annoying-errors.patch25
-rw-r--r--libreoffice-online.install13
-rw-r--r--loolwsd.service1
5 files changed, 523 insertions, 26 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 7824f18796bf..cce3d640a063 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,45 +1,59 @@
+# $Id: PKGBUILD 266875 2017-11-15 14:29:11Z foutrelis $
+# Maintainer: Sergej Pupykin <arch+pub@sergej.pp.ru>
# Maintainer: Jonas Heinrich <onny@project-insanity.org>
# Contributor: Jonas Heinrich <onny@project-insanity.org>
pkgname=libreoffice-online
-pkgver=2.0.3
-pkgrel=5
+pkgver=5.4.2.2
+pkgrel=1
pkgdesc="HTML5-based/cloud-based version of the office suite"
-arch=("x86_64")
+arch=('x86_64')
url="https://cgit.freedesktop.org/libreoffice/online/"
license=("MPL")
-makedepends=("cppunit" "poco" "libreoffice-fresh-sdk" "jake" "npm")
-depends=("libpng12" "poco" "pcre" "cpio" "libreoffice")
-backup=("etc/loolwsd/loolwsd.xml")
+makedepends=("cppunit" "poco" "libreoffice-fresh-sdk>=5.4" "jake" "npm" "chrpath" "python-polib")
+depends=("libpng12" "poco" "pcre" "cpio" "libreoffice" "openssl-1.0")
+backup=("etc/libreoffice-online/loolwsd.xml")
install="libreoffice-online.install"
+source=("${pkgname}-${pkgver}.tar.gz::https://github.com/LibreOffice/online/archive/libreoffice-${pkgver}.tar.gz"
+ "loolwsd.service"
+ "build-fix.patch"
+ "hack-annoying-errors.patch")
+sha512sums=('0f49884e5e7ddea9cf1c97565f38e50b790da5c81486580dd77556995f6078be25c981b1496dcf488482bedbfe0fcffed9d45f52bb51e51f67f4527842025d47'
+ '4a809d8420f42eef99a831b32c94d9ce336b5aa5ccac3c44b99346b94e9d7a6ae8b4e06760057f20e844837c3ab2175146bef63ba99e1a50d016a890704cc2c9'
+ '049036898f59f1a7f18c6f186042b7ecee84b010256c813c633e0854b206b1b94343972cc8a374990eb22919a223429de4db712f70a89851f266e6500b67c2b1'
+ '530dad9becee9504d1e2fff5c7e5115daf62ac48312c5cf42f9b44dc0f21665a05f5788606d988f631d3b6dc4dfcf866d564ac1f8bf087c4efe3c197b3206f2d')
-source=("${pkgname}-${pkgver}.tar.gz::https://github.com/LibreOffice/online/archive/${pkgver}.tar.gz"
- "loolwsd.service")
-sha512sums=('4658238b6343a6ed1faf221737486fcbcfc9514d0a5d0e4c0df3c875ae6b78b745e4ea57f79b3e2be107b2acde7ace3d87990241205fcaa30c37fd96ec459203'
- '71fd3aec864b1f084dafc602a7fadc91fed146b57dba8cacc7bc277a42f197616a6a43c07d13e2e74a604166cd691a81f5c7de447ddecb680919e3f6b451adb6')
+prepare() {
+ cd "${srcdir}/online-libreoffice-${pkgver}"
+ patch -p1 <"$srcdir"/build-fix.patch
+ patch -p1 <"$srcdir"/hack-annoying-errors.patch
+}
build() {
- cd "${srcdir}/online-${pkgver}"
+ cd "${srcdir}/online-libreoffice-${pkgver}"
./autogen.sh
- ./configure --enable-silent-rules \
+ export PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig
+ CPPFLAGS="-I/usr/include/openssl-1.0 -Wno-implicit-fallthrough -Wno-format-truncation" \
+ CFLAGS="-I/usr/include/openssl-1.0" \
+ LDFLAGS="-L/usr/lib/openssl-1.0" \
+ ./configure --enable-silent-rules \
--with-lokit-path=/usr/include/libreoffice \
--with-lo-path=/usr/lib/libreoffice \
--prefix=/usr \
--sysconfdir=/etc
BUILDING_FROM_RPMBUILD=yes make
- cd loleaflet
- make
}
package() {
- cd "${srcdir}/online-${pkgver}"
+ cd "${srcdir}/online-libreoffice-${pkgver}"
BUILDING_FROM_RPMBUILD=yes make DESTDIR=${pkgdir} install
install -Dm644 "${srcdir}/loolwsd.service" "${pkgdir}/usr/lib/systemd/system/loolwsd.service"
mkdir -p "${pkgdir}/var/lib/lool"
- mkdir -p "${pkgdir}/var/cache/loolwsd"
+ mkdir -p "${pkgdir}/var/cache/libreoffice-online"
mkdir -p "${pkgdir}/var/lib/lool/child-roots"
chmod u+w "${pkgdir}/var/lib/lool/child-roots"
- sed -i 's|/usr/var/cache/loolwsd|/var/cache/loolwsd|g' ${pkgdir}/etc/loolwsd/loolwsd.xml
- mkdir -p "${pkgdir}/usr/share/loolwsd/loleaflet"
- cp -r "loleaflet/dist" "${pkgdir}/usr/share/loolwsd/loleaflet/"
+ sed -i 's|/usr/var/cache/libreoffice-online|/var/cache/libreoffice-online|g' ${pkgdir}/etc/libreoffice-online/loolwsd.xml
+ mkdir -p "${pkgdir}/usr/share/libreoffice-online/loleaflet"
+ cp -r "loleaflet/dist" "${pkgdir}/usr/share/libreoffice-online/loleaflet/"
+ chrpath -d "$pkgdir/usr/bin/"{loolmount,loolforkit}
}
diff --git a/build-fix.patch b/build-fix.patch
new file mode 100644
index 000000000000..aa08b7eb34da
--- /dev/null
+++ b/build-fix.patch
@@ -0,0 +1,458 @@
+diff -wbBur online-2.1.1/common/Protocol.cpp online-2.1.1.q/common/Protocol.cpp
+--- online-2.1.1/common/Protocol.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/common/Protocol.cpp 2017-07-06 13:44:08.216542616 +0300
+@@ -17,7 +17,7 @@
+ #include <string>
+
+ #define LOK_USE_UNSTABLE_API
+-#include <LibreOfficeKit/LibreOfficeKitEnums.h>
++#include "../bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h"
+
+ #include <Poco/StringTokenizer.h>
+
+diff -wbBur online-2.1.1/common/Protocol.hpp online-2.1.1.q/common/Protocol.hpp
+--- online-2.1.1/common/Protocol.hpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/common/Protocol.hpp 2017-07-06 13:57:16.563171891 +0300
+@@ -22,7 +22,7 @@
+ #include <Poco/Net/WebSocket.h>
+
+ #define LOK_USE_UNSTABLE_API
+-#include <LibreOfficeKit/LibreOfficeKitEnums.h>
++#include "../bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h"
+
+ namespace LOOLProtocol
+ {
+@@ -265,7 +265,7 @@
+
+ inline std::string getAbbreviatedMessage(const std::string& message)
+ {
+- const auto pos = getDelimiterPosition(message.data(), std::min(message.size(), 500UL), '\n');
++ const auto pos = getDelimiterPosition(message.data(), std::min((unsigned int)message.size(), (unsigned int)500UL), '\n');
+
+ // If first line is less than the length (minus newline), add ellipsis.
+ if (pos < static_cast<std::string::size_type>(message.size()) - 1)
+diff -wbBur online-2.1.1/common/Seccomp.cpp online-2.1.1.q/common/Seccomp.cpp
+--- online-2.1.1/common/Seccomp.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/common/Seccomp.cpp 2017-07-06 13:44:08.216542616 +0300
+@@ -36,6 +36,12 @@
+ #if defined(__x86_64__)
+ # define AUDIT_ARCH_NR AUDIT_ARCH_X86_64
+ # define REG_SYSCALL REG_RAX
++#elif defined(__i386__)
++# define AUDIT_ARCH_NR AUDIT_ARCH_I386
++# define REG_SYSCALL REG_EAX
++#elif defined(__arm__)
++# define AUDIT_ARCH_NR AUDIT_ARCH_ARM
++# define REG_SYSCALL REG_R7
+ #else
+ # error "Platform does not support seccomp filtering yet - unsafe."
+ #endif
+@@ -129,12 +135,16 @@
+ KILL_SYSCALL(sendfile),
+ KILL_SYSCALL(shutdown),
+ KILL_SYSCALL(listen), // server sockets
++#ifdef __NR_accept
+ KILL_SYSCALL(accept), // server sockets
++#endif
+ #if 0
+ KILL_SYSCALL(wait4),
+ #endif
+ KILL_SYSCALL(kill), // !
++#ifdef __NR_shmctl
+ KILL_SYSCALL(shmctl),
++#endif
+ KILL_SYSCALL(ptrace), // tracing
+ KILL_SYSCALL(capset),
+ KILL_SYSCALL(uselib),
+diff -wbBur online-2.1.1/common/Util.hpp online-2.1.1.q/common/Util.hpp
+--- online-2.1.1/common/Util.hpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/common/Util.hpp 2017-07-06 13:44:08.216542616 +0300
+@@ -25,7 +25,7 @@
+ #include <Poco/RegularExpression.h>
+
+ #define LOK_USE_UNSTABLE_API
+-#include <LibreOfficeKit/LibreOfficeKitEnums.h>
++#include "../bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h"
+
+ namespace Util
+ {
+diff -wbBur online-2.1.1/kit/ChildSession.cpp online-2.1.1.q/kit/ChildSession.cpp
+--- online-2.1.1/kit/ChildSession.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/kit/ChildSession.cpp 2017-07-06 13:44:08.216542616 +0300
+@@ -19,6 +19,8 @@
+ #include <Poco/StringTokenizer.h>
+ #include <Poco/URI.h>
+
++#include "../bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h"
++
+ #include "common/FileUtil.hpp"
+ #include "KitHelper.hpp"
+ #include "Log.hpp"
+diff -wbBur online-2.1.1/kit/DummyLibreOfficeKit.cpp online-2.1.1.q/kit/DummyLibreOfficeKit.cpp
+--- online-2.1.1/kit/DummyLibreOfficeKit.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/kit/DummyLibreOfficeKit.cpp 2017-07-06 13:44:08.216542616 +0300
+@@ -14,7 +14,7 @@
+ #include <cstring>
+ #include <memory>
+
+-#include <LibreOfficeKit/LibreOfficeKitEnums.h>
++#include "../bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h"
+ #include <LibreOfficeKit/LibreOfficeKitTypes.h>
+
+ struct LibLODocument_Impl : public _LibreOfficeKitDocument
+diff -wbBur online-2.1.1/kit/Kit.cpp online-2.1.1.q/kit/Kit.cpp
+--- online-2.1.1/kit/Kit.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/kit/Kit.cpp 2017-07-06 13:44:08.216542616 +0300
+@@ -1,3 +1,4 @@
++#include <sys/sysmacros.h>
+ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+ /*
+ * This file is part of the LibreOffice project.
+diff -wbBur online-2.1.1/kit/KitHelper.hpp online-2.1.1.q/kit/KitHelper.hpp
+--- online-2.1.1/kit/KitHelper.hpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/kit/KitHelper.hpp 2017-07-06 13:44:08.216542616 +0300
+@@ -14,7 +14,7 @@
+ #include <string>
+
+ #define LOK_USE_UNSTABLE_API
+-#include <LibreOfficeKit/LibreOfficeKitEnums.h>
++#include "../bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h"
+
+ namespace LOKitHelper
+ {
+@@ -113,7 +113,8 @@
+ return "INVALIDATE_HEADER";
+ case LOK_CALLBACK_CELL_ADDRESS:
+ return "CELL_ADDRESS";
+-
++ default:
++ break;
+ }
+
+ return std::to_string(type);
+diff -wbBur online-2.1.1/net/WebSocketHandler.hpp online-2.1.1.q/net/WebSocketHandler.hpp
+--- online-2.1.1/net/WebSocketHandler.hpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/net/WebSocketHandler.hpp 2017-07-06 13:44:08.216542616 +0300
+@@ -358,14 +358,14 @@
+ else
+ {
+ out.push_back((char)127);
+- out.push_back(static_cast<char>((len >> 56) & 0xff));
+- out.push_back(static_cast<char>((len >> 48) & 0xff));
+- out.push_back(static_cast<char>((len >> 40) & 0xff));
+- out.push_back(static_cast<char>((len >> 32) & 0xff));
+- out.push_back(static_cast<char>((len >> 24) & 0xff));
+- out.push_back(static_cast<char>((len >> 16) & 0xff));
+- out.push_back(static_cast<char>((len >> 8) & 0xff));
+- out.push_back(static_cast<char>((len >> 0) & 0xff));
++ out.push_back(static_cast<char>(((uint64_t)len >> 56) & 0xff));
++ out.push_back(static_cast<char>(((uint64_t)len >> 48) & 0xff));
++ out.push_back(static_cast<char>(((uint64_t)len >> 40) & 0xff));
++ out.push_back(static_cast<char>(((uint64_t)len >> 32) & 0xff));
++ out.push_back(static_cast<char>(((uint64_t)len >> 24) & 0xff));
++ out.push_back(static_cast<char>(((uint64_t)len >> 16) & 0xff));
++ out.push_back(static_cast<char>(((uint64_t)len >> 8) & 0xff));
++ out.push_back(static_cast<char>(((uint64_t)len >> 0) & 0xff));
+ }
+
+ // Copy the data.
+diff -wbBur online-2.1.1/test/TileQueueTests.cpp online-2.1.1.q/test/TileQueueTests.cpp
+--- online-2.1.1/test/TileQueueTests.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/test/TileQueueTests.cpp 2017-07-06 13:44:08.256542614 +0300
+@@ -281,7 +281,7 @@
+
+ // Empty queue
+ CPPUNIT_ASSERT_EQUAL(false, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+
+ const std::vector<std::string> messages =
+ {
+@@ -295,21 +295,21 @@
+ queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out));
+ }
+
+- CPPUNIT_ASSERT_EQUAL(3UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(3UL, (unsigned long)queue.size());
+
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(2UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(2UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(messages[0], std::string(item->data().data(), item->data().size()));
+
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(1UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(messages[1], std::string(item->data().data(), item->data().size()));
+
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(messages[2], std::string(item->data().data(), item->data().size()));
+
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+ }
+
+ void TileQueueTests::testSenderQueueTileDeduplication()
+@@ -320,7 +320,7 @@
+
+ // Empty queue
+ CPPUNIT_ASSERT_EQUAL(false, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+
+ const std::vector<std::string> part_messages =
+ {
+@@ -334,12 +334,12 @@
+ queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out));
+ }
+
+- CPPUNIT_ASSERT_EQUAL(3UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(3UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+
+ const std::vector<std::string> dup_messages =
+ {
+@@ -353,13 +353,13 @@
+ queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out));
+ }
+
+- CPPUNIT_ASSERT_EQUAL(1UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+
+ // The last one should persist.
+ CPPUNIT_ASSERT_EQUAL(dup_messages[2], std::string(item->data().data(), item->data().size()));
+
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+ }
+
+ void TileQueueTests::testInvalidateViewCursorDeduplication()
+@@ -370,7 +370,7 @@
+
+ // Empty queue
+ CPPUNIT_ASSERT_EQUAL(false, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+
+ const std::vector<std::string> view_messages =
+ {
+@@ -384,21 +384,21 @@
+ queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out));
+ }
+
+- CPPUNIT_ASSERT_EQUAL(3UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(3UL, (unsigned long)queue.size());
+
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(2UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(2UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(view_messages[0], std::string(item->data().data(), item->data().size()));
+
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(1UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(view_messages[1], std::string(item->data().data(), item->data().size()));
+
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(view_messages[2], std::string(item->data().data(), item->data().size()));
+
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+
+ const std::vector<std::string> dup_messages =
+ {
+@@ -412,13 +412,13 @@
+ queue.enqueue(std::make_shared<Message>(msg, Message::Dir::Out));
+ }
+
+- CPPUNIT_ASSERT_EQUAL(1UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)queue.size());
+ CPPUNIT_ASSERT_EQUAL(true, queue.dequeue(item));
+
+ // The last one should persist.
+ CPPUNIT_ASSERT_EQUAL(dup_messages[2], std::string(item->data().data(), item->data().size()));
+
+- CPPUNIT_ASSERT_EQUAL(0UL, queue.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)queue.size());
+ }
+
+ void TileQueueTests::testCallbackInvalidation()
+diff -wbBur online-2.1.1/test/WhiteBoxTests.cpp online-2.1.1.q/test/WhiteBoxTests.cpp
+--- online-2.1.1/test/WhiteBoxTests.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/test/WhiteBoxTests.cpp 2017-07-06 13:44:08.326542611 +0300
+@@ -80,53 +80,53 @@
+ CPPUNIT_ASSERT(LOOLProtocol::getTokenKeywordFromMessage(message, "mumble", map, mumble));
+ CPPUNIT_ASSERT_EQUAL(2, mumble);
+
+- CPPUNIT_ASSERT_EQUAL(1UL, Util::trimmed("A").size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)Util::trimmed("A").size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), Util::trimmed("A"));
+
+- CPPUNIT_ASSERT_EQUAL(1UL, Util::trimmed(" X").size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)Util::trimmed(" X").size());
+ CPPUNIT_ASSERT_EQUAL(std::string("X"), Util::trimmed(" X"));
+
+- CPPUNIT_ASSERT_EQUAL(1UL, Util::trimmed("Y ").size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)Util::trimmed("Y ").size());
+ CPPUNIT_ASSERT_EQUAL(std::string("Y"), Util::trimmed("Y "));
+
+- CPPUNIT_ASSERT_EQUAL(1UL, Util::trimmed(" Z ").size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)Util::trimmed(" Z ").size());
+ CPPUNIT_ASSERT_EQUAL(std::string("Z"), Util::trimmed(" Z "));
+
+- CPPUNIT_ASSERT_EQUAL(0UL, Util::trimmed(" ").size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)Util::trimmed(" ").size());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), Util::trimmed(" "));
+
+- CPPUNIT_ASSERT_EQUAL(0UL, Util::trimmed(" ").size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)Util::trimmed(" ").size());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), Util::trimmed(" "));
+
+ std::string s;
+
+ s = "A";
+- CPPUNIT_ASSERT_EQUAL(1UL, Util::trim(s).size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)Util::trim(s).size());
+ s = "A";
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), Util::trim(s));
+
+ s = " X";
+- CPPUNIT_ASSERT_EQUAL(1UL, Util::trim(s).size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)Util::trim(s).size());
+ s = " X";
+ CPPUNIT_ASSERT_EQUAL(std::string("X"), Util::trim(s));
+
+ s = "Y ";
+- CPPUNIT_ASSERT_EQUAL(1UL, Util::trim(s).size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)Util::trim(s).size());
+ s = "Y ";
+ CPPUNIT_ASSERT_EQUAL(std::string("Y"), Util::trim(s));
+
+ s = " Z ";
+- CPPUNIT_ASSERT_EQUAL(1UL, Util::trim(s).size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)Util::trim(s).size());
+ s = " Z ";
+ CPPUNIT_ASSERT_EQUAL(std::string("Z"), Util::trim(s));
+
+ s = " ";
+- CPPUNIT_ASSERT_EQUAL(0UL, Util::trim(s).size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)Util::trim(s).size());
+ s = " ";
+ CPPUNIT_ASSERT_EQUAL(std::string(""), Util::trim(s));
+
+ s = " ";
+- CPPUNIT_ASSERT_EQUAL(0UL, Util::trim(s).size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)Util::trim(s).size());
+ s = " ";
+ CPPUNIT_ASSERT_EQUAL(std::string(""), Util::trim(s));
+ }
+@@ -162,51 +162,51 @@
+ std::vector<std::string> tokens;
+
+ tokens = LOOLProtocol::tokenize("");
+- CPPUNIT_ASSERT_EQUAL(0UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)tokens.size());
+
+ tokens = LOOLProtocol::tokenize(" ");
+- CPPUNIT_ASSERT_EQUAL(0UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)tokens.size());
+
+ tokens = LOOLProtocol::tokenize("A");
+- CPPUNIT_ASSERT_EQUAL(1UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), tokens[0]);
+
+ tokens = LOOLProtocol::tokenize(" A");
+- CPPUNIT_ASSERT_EQUAL(1UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), tokens[0]);
+
+ tokens = LOOLProtocol::tokenize("A ");
+- CPPUNIT_ASSERT_EQUAL(1UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), tokens[0]);
+
+ tokens = LOOLProtocol::tokenize(" A ");
+- CPPUNIT_ASSERT_EQUAL(1UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), tokens[0]);
+
+ tokens = LOOLProtocol::tokenize(" A Z ");
+- CPPUNIT_ASSERT_EQUAL(2UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(2UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), tokens[0]);
+ CPPUNIT_ASSERT_EQUAL(std::string("Z"), tokens[1]);
+
+ tokens = LOOLProtocol::tokenize("\n");
+- CPPUNIT_ASSERT_EQUAL(0UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(0UL, (unsigned long)tokens.size());
+
+ tokens = LOOLProtocol::tokenize(" A \nZ ");
+- CPPUNIT_ASSERT_EQUAL(1UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(1UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), tokens[0]);
+
+ tokens = LOOLProtocol::tokenize(" A Z\n ");
+- CPPUNIT_ASSERT_EQUAL(2UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(2UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), tokens[0]);
+ CPPUNIT_ASSERT_EQUAL(std::string("Z"), tokens[1]);
+
+ tokens = LOOLProtocol::tokenize(" A Z \n ");
+- CPPUNIT_ASSERT_EQUAL(2UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(2UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), tokens[0]);
+ CPPUNIT_ASSERT_EQUAL(std::string("Z"), tokens[1]);
+
+ tokens = LOOLProtocol::tokenize("tile part=0 width=256 height=256 tileposx=0 tileposy=0 tilewidth=3840 tileheight=3840 ver=-1");
+- CPPUNIT_ASSERT_EQUAL(9UL, tokens.size());
++ CPPUNIT_ASSERT_EQUAL(9UL, (unsigned long)tokens.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("tile"), tokens[0]);
+ CPPUNIT_ASSERT_EQUAL(std::string("part=0"), tokens[1]);
+ CPPUNIT_ASSERT_EQUAL(std::string("width=256"), tokens[2]);
+diff -wbBur online-2.1.1/wsd/Admin.cpp online-2.1.1.q/wsd/Admin.cpp
+--- online-2.1.1/wsd/Admin.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/wsd/Admin.cpp 2017-07-06 13:44:08.326542611 +0300
+@@ -326,7 +326,7 @@
+ if (memWait <= 0)
+ {
+ const auto totalMem = getTotalMemoryUsage();
+- if (totalMem != _lastTotalMemory)
++ if ((long)totalMem != _lastTotalMemory)
+ {
+ LOG_TRC("Total memory used: " << totalMem);
+ _lastTotalMemory = totalMem;
+diff -wbBur online-2.1.1/wsd/Storage.cpp online-2.1.1.q/wsd/Storage.cpp
+--- online-2.1.1/wsd/Storage.cpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/wsd/Storage.cpp 2017-07-06 13:44:08.326542611 +0300
+@@ -224,7 +224,7 @@
+ const auto lastModified = file.getLastModified();
+ const auto size = file.getSize();
+
+- _fileInfo = FileInfo({filename, "localhost", lastModified, size});
++ _fileInfo = FileInfo({filename, "localhost", lastModified, (size_t)size});
+
+ // Set automatic userid and username
+ return std::unique_ptr<LocalStorage::LocalFileInfo>(new LocalFileInfo({"localhost", std::string("Local Host #") + std::to_string(LastLocalStorageId++)}));
+diff -wbBur online-2.1.1/wsd/TraceFile.hpp online-2.1.1.q/wsd/TraceFile.hpp
+--- online-2.1.1/wsd/TraceFile.hpp 2017-05-18 22:03:26.000000000 +0300
++++ online-2.1.1.q/wsd/TraceFile.hpp 2017-07-06 13:44:08.326542611 +0300
+@@ -406,7 +406,7 @@
+ _records[0].Dir != TraceFileRecord::Direction::Event ||
+ _records[0].Payload.find("NewSession") != 0)
+ {
+- fprintf(stderr, "Invalid trace file with %ld records. First record: %s\n", _records.size(),
++ fprintf(stderr, "Invalid trace file with %ld records. First record: %s\n", (long)_records.size(),
+ _records.empty() ? "<empty>" : _records[0].Payload.c_str());
+ throw std::runtime_error("Invalid trace file.");
+ }
diff --git a/hack-annoying-errors.patch b/hack-annoying-errors.patch
new file mode 100644
index 000000000000..5f6ce4b15455
--- /dev/null
+++ b/hack-annoying-errors.patch
@@ -0,0 +1,25 @@
+diff -wbBur online-libreoffice-5.3.4.2/kit/Kit.cpp online-libreoffice-5.3.4.2.q/kit/Kit.cpp
+--- online-libreoffice-5.3.4.2/kit/Kit.cpp 2017-07-12 19:24:55.656651908 +0300
++++ online-libreoffice-5.3.4.2.q/kit/Kit.cpp 2017-07-12 19:24:32.139985511 +0300
+@@ -150,8 +150,13 @@
+ File(newPath.parent()).createDirectories();
+ if (link(fpath, newPath.toString().c_str()) == -1)
+ {
++ if(errno != EEXIST)
++ {
++ if(errno != EXDEV)
++ {
+ LOG_SYS("link(\"" << fpath << "\", \"" <<
+ newPath.toString() << "\") failed. Will copy.");
++ }
+ try
+ {
+ File(fpath).copyTo(newPath.toString());
+@@ -163,6 +168,7 @@
+ std::_Exit(Application::EXIT_SOFTWARE);
+ }
+ }
++ }
+ break;
+ case FTW_D:
+ {
diff --git a/libreoffice-online.install b/libreoffice-online.install
index cc0707413fa9..a609366eb2e3 100644
--- a/libreoffice-online.install
+++ b/libreoffice-online.install
@@ -1,12 +1,14 @@
post_install() {
- getent group lool > /dev/null || groupadd -r lool > /dev/null
- getent passwd lool > /dev/null || useradd -g lool lool > /dev/null
+ getent group lool > /dev/null || \
+ groupadd -r lool > /dev/null
+ getent passwd lool > /dev/null || \
+ useradd -r -g lool -s /sbin/nologin -d /var/lib/lool -c "Libreoffice Online" lool > /dev/null
post_upgrade
}
post_upgrade() {
loolwsd-systemplate-setup /var/lib/lool/systemplate /usr/lib/libreoffice
- chown -R lool:lool /var/cache/loolwsd \
+ chown -R lool:lool /var/cache/libreoffice-online \
/var/lib/lool/child-roots \
/var/lib/lool/systemplate
chmod u+w /var/lib/lool/child-roots
@@ -15,8 +17,5 @@ post_upgrade() {
}
post_remove() {
- userdel -rf lool
- groupdel lool
- rm -r /var/lib/lool
+ echo "You may want to remove /var/lib/lool and loop user/group"
}
-
diff --git a/loolwsd.service b/loolwsd.service
index d6a071d35e00..24da856c628b 100644
--- a/loolwsd.service
+++ b/loolwsd.service
@@ -3,6 +3,7 @@ Description=loolwsd as a service
[Service]
User=lool
+Group=lool
ExecStart=/usr/bin/loolwsd --o:sys_template_path=/var/lib/lool/systemplate --o:lo_template_path=/usr/lib/libreoffice --o:child_root_path=/var/lib/lool/child-roots --o:file_server_root_path=/usr/share/loolwsd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process