diff options
author | Sergej Pupykin | 2017-11-24 15:10:26 +0300 |
---|---|---|
committer | Sergej Pupykin | 2017-11-24 15:10:26 +0300 |
commit | 849417b07b411754bad7fc63e84161bc491558fa (patch) | |
tree | 70a74c0c17c842704d4f458ea5daf06cc59cb6db | |
parent | 485a28fb016b6b1bcecfc4a11edbf93512cab780 (diff) | |
download | aur-849417b07b411754bad7fc63e84161bc491558fa.tar.gz |
removed from community
-rw-r--r-- | PKGBUILD | 52 | ||||
-rw-r--r-- | build-fix.patch | 458 | ||||
-rw-r--r-- | hack-annoying-errors.patch | 25 | ||||
-rw-r--r-- | libreoffice-online.install | 13 | ||||
-rw-r--r-- | loolwsd.service | 1 |
5 files changed, 523 insertions, 26 deletions
@@ -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 |