From 42e8e61b20ff0d5255a7b67f55844502d239f2c3 Mon Sep 17 00:00:00 2001 From: Duncan Bellamy Date: Mon, 6 Jul 2020 09:28:00 +0000 Subject: [PATCH] testing/loolwsd: new aport * fixes #8307 --- testing/loolwsd/10-musl.patch | 230 ++++++++++++++++++++++++++++++++++ testing/loolwsd/APKBUILD | 46 +++++++ 2 files changed, 276 insertions(+) create mode 100644 testing/loolwsd/10-musl.patch create mode 100644 testing/loolwsd/APKBUILD diff --git a/testing/loolwsd/10-musl.patch b/testing/loolwsd/10-musl.patch new file mode 100644 index 00000000000..f546d9ce8d9 --- /dev/null +++ b/testing/loolwsd/10-musl.patch @@ -0,0 +1,230 @@ +fix differences between musl and glibc +* change error funtion to err +* change sys/poll.h to poll.h +* add ftw-missing.h with defines missing in alpine ftw.h +* remove test subdir from makefile.am as tests fail + +--- a/Makefile.am ++++ b/Makefile.am +@@ -14,7 +14,7 @@ + + else + +-SUBDIRS = . test loleaflet ++SUBDIRS = . loleaflet + + export ENABLE_DEBUG + +--- a/common/FileUtil.cpp ++++ b/common/FileUtil.cpp +@@ -12,6 +12,7 @@ + #include "FileUtil.hpp" + + #include ++#include "ftw-missing.h" + #include + #ifdef __linux + #include +--- a/common/IoUtil.cpp ++++ b/common/IoUtil.cpp +@@ -11,7 +11,7 @@ + + #include "IoUtil.hpp" + +-#include ++#include + + #include + #include +--- a/common/Seccomp.cpp ++++ b/common/Seccomp.cpp +@@ -17,6 +17,7 @@ + + #include + #include ++#include "ftw-missing.h" + #include + #include + #if DISABLE_SECCOMP == 0 +--- a/common/Session.cpp ++++ b/common/Session.cpp +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include "ftw-missing.h" + #include + + #include +--- a/common/SigUtil.cpp ++++ b/common/SigUtil.cpp +@@ -11,11 +11,11 @@ + + #include "SigUtil.hpp" + +-#if !defined(__ANDROID__) ++#if !defined(__ANDROID__) && defined(__GLIBC__) + # include + #endif + #include +-#include ++#include + #include + #include + #include +@@ -265,7 +265,7 @@ + + void dumpBacktrace() + { +-#if !defined(__ANDROID__) ++#if !defined(__ANDROID__) && defined(__GLIBC__) + Log::signalLog("\nBacktrace "); + Log::signalLogNumber(getpid()); + Log::signalLog(":\n"); +@@ -278,7 +278,7 @@ + backtrace_symbols_fd(backtraceBuffer, numSlots, STDERR_FILENO); + } + #else +- LOG_SYS("Backtrace not available on Android."); ++ LOG_SYS("Backtrace not available on Android or Musl."); + #endif + + if (std::getenv("LOOL_DEBUG")) +--- a/common/Util.cpp ++++ b/common/Util.cpp +@@ -12,7 +12,7 @@ + #include "Util.hpp" + + #include +-#include ++#include + #ifdef __linux + #include + #include +--- /dev/null ++++ b/common/ftw-missing.h +@@ -0,0 +1,6 @@ ++#define FTW_ACTIONRETVAL 16 ++ ++#define FTW_CONTINUE 0 ++#define FTW_STOP 1 ++#define FTW_SKIP_SUBTREE 2 ++#define FTW_SKIP_SIBLINGS 3 +--- a/kit/Kit.cpp ++++ b/kit/Kit.cpp +@@ -16,6 +16,7 @@ + #include + #ifdef __linux + #include ++#include "ftw-missing.h" + #include + #include + #endif +--- a/tools/map.cpp ++++ b/tools/map.cpp +@@ -20,7 +20,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -99,7 +99,7 @@ + snprintf(path_proc, sizeof(path_proc), "/proc/%d/%s", proc_id, name); + int fd = open(path_proc, 0); + if (fd < 0) +- error(EXIT_FAILURE, errno, "Failed to open %s", path_proc); ++ err(EXIT_FAILURE, "Failed to open %s", path_proc); + return fd; + } + +@@ -259,7 +259,7 @@ + data.resize (map.size()); + if (lseek(mem_fd, map.getStart(), SEEK_SET) < 0 || + read(mem_fd, &data[0], map.size()) != (int)map.size()) +- error(EXIT_FAILURE, errno, "Failed to seek in /proc/%d/mem to %lld", ++ err(EXIT_FAILURE, "Failed to seek in /proc/%d/mem to %lld", + _proc_id, map.getStart()); + + scanForSalStrings(map, data); +@@ -341,9 +341,9 @@ + parentData.resize(0x1000); + + if (lseek(mem_fd, page, SEEK_SET) < 0) +- error(EXIT_FAILURE, errno, "Failed to seek in /proc//mem to %lld", page); ++ err(EXIT_FAILURE, "Failed to seek in /proc//mem to %lld", page); + if (read(mem_fd, &pageData[0], 0x1000) != 0x1000) +- error(EXIT_FAILURE, errno, "Failed to read page %lld from /proc//mem", page); ++ err(EXIT_FAILURE, "Failed to read page %lld from /proc//mem", page); + + if (lseek(parent_fd, page, SEEK_SET) < 0) + parentData.resize(0); +@@ -450,10 +450,10 @@ + for (addr_t p : vaddrs) + { + if (lseek(fd, (p / 0x1000 * 8), SEEK_SET) < 0) +- error(EXIT_FAILURE, errno, "Failed to seek in pagemap"); ++ err(EXIT_FAILURE, "Failed to seek in pagemap"); + addr_t vaddrData; + if (read(fd, &vaddrData, 8) < 0) +- error(EXIT_FAILURE, errno, "Failed to read vaddrdata"); ++ err(EXIT_FAILURE, "Failed to read vaddrdata"); + { + // https://patchwork.kernel.org/patch/6787921/ + // fprintf(stderr, "addr: 0x%8llx bits: 0x%8llx : %s\n", p, vaddrData, +@@ -521,7 +521,7 @@ + std::vector *pushTo = nullptr; + + if ((file_pointer = fopen(file, "r")) == nullptr) +- error(EXIT_FAILURE, errno, "%s", file); ++ err(EXIT_FAILURE, "%s", file); + + while (fgets(buffer, sizeof(buffer), file_pointer)) + { +@@ -612,7 +612,7 @@ + char buffer[4096]; + int len; + if ((len = read(fd, buffer, sizeof (buffer))) < 0) +- error(EXIT_FAILURE, errno, "Failed to read /proc/%d/stat", proc_id); ++ err(EXIT_FAILURE, "Failed to read /proc/%d/stat", proc_id); + close (fd); + buffer[len] = '\0'; + +@@ -679,12 +679,12 @@ + + root_proc = opendir("/proc"); + if (!root_proc) +- error(EXIT_FAILURE, errno, "%s", "/proc"); ++ err(EXIT_FAILURE, "%s", "/proc"); + + while ((dir_proc = readdir(root_proc))) + { + if (!dir_proc && !dir_proc->d_name[0]) +- error(EXIT_FAILURE, ENOTDIR, "bad dir"); ++ err(EXIT_FAILURE, "bad dir"); + + if (*dir_proc->d_name > '0' && *dir_proc->d_name <= '9') + { +--- a/wsd/Admin.cpp ++++ b/wsd/Admin.cpp +@@ -11,7 +11,7 @@ + + #include + #include +-#include ++#include + #include + + #include +--- a/wsd/AdminModel.hpp ++++ b/wsd/AdminModel.hpp +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #include + diff --git a/testing/loolwsd/APKBUILD b/testing/loolwsd/APKBUILD new file mode 100644 index 00000000000..6cde4d37257 --- /dev/null +++ b/testing/loolwsd/APKBUILD @@ -0,0 +1,46 @@ +# Contributor: Duncan Bellamy +# Maintainer: Duncan Bellamy +pkgname=loolwsd +pkgver=6.4.0.2 +pkgrel=0 +pkgdesc="LibreOffice Online WebSocket server" +url="https://github.com/LibreOffice/online" +arch="all !s390x !mips !mips64 !x86 !armv7" #x86 and armv7 fail to build with size errors +license="MPL-2.0" +makedepends="automake autoconf libtool libreofficekit bash py3-lxml py3-polib libpng-dev + cppunit-dev libcap-dev linux-pam-dev npm openssl-dev krb5-dev poco-dev libseccomp-dev" +subpackages="$pkgname-doc" +source="https://github.com/LibreOffice/online/archive/libreoffice-$pkgver.tar.gz + 10-musl.patch" +builddir="$srcdir/online-libreoffice-$pkgver" + +build() { + ./autogen.sh + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-silent-rules \ + --with-lokit-path=/usr/include/libreoffice \ + --with-lo-path=/usr/lib/libreoffice \ + --with-poco-includes=/usr/include/Poco \ + --with-vendor="Alpine Linux" \ + --enable-browsersync \ + --disable-seccomp \ + --disable-setcap \ + --enable-anonymization + make CXXFLAGS="$CXXFLAGS -DNDEBUG" all-local +} + +check() { + make check +} + +package() { + make DESTDIR="$pkgdir/" install +} + +sha512sums="e2e8846023c314a22fecf1452a8b00854a7fb6c67a61640335e624ee8d14ee934af14a880cf61a5a64f6291a77165a5cc698e861a75d5294b1ff6405161e9dac libreoffice-6.4.0.2.tar.gz +58c3dfb81913a2ddf995fb8eccd9e4038252b3d29b2f37ed754e1e6f9a9ae5bbcc8464ceaef2e98f916715443fa35305a7ae2925779348231547960ee96cbb91 10-musl.patch"