From 7f35fdbdeaebbcbebfba6bcd0be6fba24f40af33 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Sun, 23 Oct 2016 20:14:25 +0200 Subject: [PATCH] fix build on rhel --- ...w-to-build-bundled-libzmf-on-aarch64.patch | 760 ++++++++++++++++++ ...ld-of-bundled-libzmf-with-boost-1.56.patch | 363 +++++++++ 0001-impl.-missing-function.patch | 35 + libreoffice.spec | 4 + 4 files changed, 1162 insertions(+) create mode 100644 0001-allow-to-build-bundled-libzmf-on-aarch64.patch create mode 100644 0001-fix-build-of-bundled-libzmf-with-boost-1.56.patch create mode 100644 0001-impl.-missing-function.patch diff --git a/0001-allow-to-build-bundled-libzmf-on-aarch64.patch b/0001-allow-to-build-bundled-libzmf-on-aarch64.patch new file mode 100644 index 0000000..51b55c7 --- /dev/null +++ b/0001-allow-to-build-bundled-libzmf-on-aarch64.patch @@ -0,0 +1,760 @@ +From 2e137e4696e8278c3d56ba8a49a8b255534bd048 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Sun, 23 Oct 2016 22:41:23 +0200 +Subject: [PATCH] allow to build bundled libzmf on aarch64 + +Change-Id: I76d695c922a072b0edd010f5583bafe0dfeb0dd8 +--- + external/libzmf/UnpackedTarball_libzmf.mk | 1 + + external/libzmf/libzmf-config-guess.patch.1 | 727 ++++++++++++++++++++++++++++ + 2 files changed, 728 insertions(+) + create mode 100644 external/libzmf/libzmf-config-guess.patch.1 + +diff --git a/external/libzmf/UnpackedTarball_libzmf.mk b/external/libzmf/UnpackedTarball_libzmf.mk +index 782aeb8..e9cf715 100644 +--- a/external/libzmf/UnpackedTarball_libzmf.mk ++++ b/external/libzmf/UnpackedTarball_libzmf.mk +@@ -25,6 +25,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,libzmf, \ + external/libzmf/0001-add-missing-include.patch.1 \ + external/libzmf/0001-allow-build-with-boost-1.56.patch.1 \ + external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1 \ ++ external/libzmf/libzmf-config-guess.patch.1 \ + )) + + # vim: set noet sw=4 ts=4: +diff --git a/external/libzmf/libzmf-config-guess.patch.1 b/external/libzmf/libzmf-config-guess.patch.1 +new file mode 100644 +index 0000000..bf9fffb +--- /dev/null ++++ b/external/libzmf/libzmf-config-guess.patch.1 +@@ -0,0 +1,727 @@ ++diff -up ./config.guess.dt ./config.guess ++--- ./config.guess.dt 2016-10-23 22:39:12.641388777 +0200 +++++ ./config.guess 2016-10-23 22:32:42.022632241 +0200 ++@@ -1,10 +1,8 @@ ++ #! /bin/sh ++ # Attempt to guess a canonical system name. ++-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, ++-# 2011, 2012, 2013 Free Software Foundation, Inc. +++# Copyright 1992-2015 Free Software Foundation, Inc. ++ ++-timestamp='2012-12-29' +++timestamp='2015-01-01' ++ ++ # This file is free software; you can redistribute it and/or modify it ++ # under the terms of the GNU General Public License as published by ++@@ -26,12 +24,12 @@ timestamp='2012-12-29' ++ # program. This Exception is an additional permission under section 7 ++ # of the GNU General Public License, version 3 ("GPLv3"). ++ # ++-# Originally written by Per Bothner. +++# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. ++ # ++ # You can get the latest version of this script from: ++ # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++ # ++-# Please send patches with a ChangeLog entry to config-patches@gnu.org. +++# Please send patches to . ++ ++ ++ me=`echo "$0" | sed -e 's,.*/,,'` ++@@ -52,9 +50,7 @@ version="\ ++ GNU config.guess ($timestamp) ++ ++ Originally written by Per Bothner. ++-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ++-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, ++-2012, 2013 Free Software Foundation, Inc. +++Copyright 1992-2015 Free Software Foundation, Inc. ++ ++ This is free software; see the source for copying conditions. There is NO ++ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++@@ -136,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` | ++ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown ++ +++case "${UNAME_SYSTEM}" in +++Linux|GNU|GNU/*) +++ # If the system lacks a compiler, then just pick glibc. +++ # We could probably try harder. +++ LIBC=gnu +++ +++ eval $set_cc_for_build +++ cat <<-EOF > $dummy.c +++ #include +++ #if defined(__UCLIBC__) +++ LIBC=uclibc +++ #elif defined(__dietlibc__) +++ LIBC=dietlibc +++ #else +++ LIBC=gnu +++ #endif +++ EOF +++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` +++ ;; +++esac +++ ++ # Note: order is significant - the case branches are not exclusive. ++ ++ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++@@ -562,8 +579,9 @@ EOF ++ else ++ IBM_ARCH=powerpc ++ fi ++- if [ -x /usr/bin/oslevel ] ; then ++- IBM_REV=`/usr/bin/oslevel` +++ if [ -x /usr/bin/lslpp ] ; then +++ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | +++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++@@ -809,7 +827,7 @@ EOF ++ *:MINGW*:*) ++ echo ${UNAME_MACHINE}-pc-mingw32 ++ exit ;; ++- i*:MSYS*:*) +++ *:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; ++ i*:windows32*:*) ++@@ -857,21 +875,21 @@ EOF ++ exit ;; ++ *:GNU:*:*) ++ # the GNU system ++- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` +++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ exit ;; ++ *:GNU/*:*:*) ++ # other systems with GNU libc and userland ++- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu +++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} ++ exit ;; ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit ;; ++ aarch64:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++@@ -884,59 +902,54 @@ EOF ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} +++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +++ exit ;; +++ arc:Linux:*:* | arceb:Linux:*:*) +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arm*:Linux:*:*) ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ else ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++- echo ${UNAME_MACHINE}-unknown-linux-gnueabi +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi ++ else ++- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf ++ fi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ cris:Linux:*:*) ++- echo ${UNAME_MACHINE}-axis-linux-gnu +++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ crisv32:Linux:*:*) ++- echo ${UNAME_MACHINE}-axis-linux-gnu +++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ frv:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ hexagon:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ i*86:Linux:*:*) ++- LIBC=gnu ++- eval $set_cc_for_build ++- sed 's/^ //' << EOF >$dummy.c ++- #ifdef __dietlibc__ ++- LIBC=dietlibc ++- #endif ++-EOF ++- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ++- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" +++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} ++ exit ;; ++ ia64:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ m32r*:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ m68*:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ mips:Linux:*:* | mips64:Linux:*:*) ++ eval $set_cc_for_build ++@@ -955,54 +968,63 @@ EOF ++ #endif ++ EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` ++- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } +++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ++ ;; ++- or32:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ openrisc*:Linux:*:*) +++ echo or1k-unknown-linux-${LIBC} +++ exit ;; +++ or32:Linux:*:* | or1k*:Linux:*:*) +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ padre:Linux:*:*) ++- echo sparc-unknown-linux-gnu +++ echo sparc-unknown-linux-${LIBC} ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++- echo hppa64-unknown-linux-gnu +++ echo hppa64-unknown-linux-${LIBC} ++ exit ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++- PA7*) echo hppa1.1-unknown-linux-gnu ;; ++- PA8*) echo hppa2.0-unknown-linux-gnu ;; ++- *) echo hppa-unknown-linux-gnu ;; +++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; +++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; +++ *) echo hppa-unknown-linux-${LIBC} ;; ++ esac ++ exit ;; ++ ppc64:Linux:*:*) ++- echo powerpc64-unknown-linux-gnu +++ echo powerpc64-unknown-linux-${LIBC} ++ exit ;; ++ ppc:Linux:*:*) ++- echo powerpc-unknown-linux-gnu +++ echo powerpc-unknown-linux-${LIBC} +++ exit ;; +++ ppc64le:Linux:*:*) +++ echo powerpc64le-unknown-linux-${LIBC} +++ exit ;; +++ ppcle:Linux:*:*) +++ echo powerpcle-unknown-linux-${LIBC} ++ exit ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++- echo ${UNAME_MACHINE}-ibm-linux +++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} ++ exit ;; ++ sh64*:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ sh*:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ tile*:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ vax:Linux:*:*) ++- echo ${UNAME_MACHINE}-dec-linux-gnu +++ echo ${UNAME_MACHINE}-dec-linux-${LIBC} ++ exit ;; ++ x86_64:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ xtensa*:Linux:*:*) ++- echo ${UNAME_MACHINE}-unknown-linux-gnu +++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ i*86:DYNIX/ptx:4*:*) ++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. ++@@ -1235,19 +1257,31 @@ EOF ++ exit ;; ++ *:Darwin:*:*) ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++- case $UNAME_PROCESSOR in ++- i386) ++- eval $set_cc_for_build ++- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++- grep IS_64BIT_ARCH >/dev/null ++- then ++- UNAME_PROCESSOR="x86_64" ++- fi ++- fi ;; ++- unknown) UNAME_PROCESSOR=powerpc ;; ++- esac +++ eval $set_cc_for_build +++ if test "$UNAME_PROCESSOR" = unknown ; then +++ UNAME_PROCESSOR=powerpc +++ fi +++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then +++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ +++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +++ grep IS_64BIT_ARCH >/dev/null +++ then +++ case $UNAME_PROCESSOR in +++ i386) UNAME_PROCESSOR=x86_64 ;; +++ powerpc) UNAME_PROCESSOR=powerpc64 ;; +++ esac +++ fi +++ fi +++ elif test "$UNAME_PROCESSOR" = i386 ; then +++ # Avoid executing cc on OS X 10.9, as it ships with a stub +++ # that puts up a graphical alert prompting to install +++ # developer tools. Any system running Mac OS X 10.7 or +++ # later (Darwin 11 and later) is required to have a 64-bit +++ # processor. This is not true of the ARM version of Darwin +++ # that Apple uses in portable devices. +++ UNAME_PROCESSOR=x86_64 +++ fi ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ++ exit ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++@@ -1338,154 +1372,6 @@ EOF ++ exit ;; ++ esac ++ ++-eval $set_cc_for_build ++-cat >$dummy.c < ++-# include ++-#endif ++-main () ++-{ ++-#if defined (sony) ++-#if defined (MIPSEB) ++- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, ++- I don't know.... */ ++- printf ("mips-sony-bsd\n"); exit (0); ++-#else ++-#include ++- printf ("m68k-sony-newsos%s\n", ++-#ifdef NEWSOS4 ++- "4" ++-#else ++- "" ++-#endif ++- ); exit (0); ++-#endif ++-#endif ++- ++-#if defined (__arm) && defined (__acorn) && defined (__unix) ++- printf ("arm-acorn-riscix\n"); exit (0); ++-#endif ++- ++-#if defined (hp300) && !defined (hpux) ++- printf ("m68k-hp-bsd\n"); exit (0); ++-#endif ++- ++-#if defined (NeXT) ++-#if !defined (__ARCHITECTURE__) ++-#define __ARCHITECTURE__ "m68k" ++-#endif ++- int version; ++- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; ++- if (version < 4) ++- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); ++- else ++- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); ++- exit (0); ++-#endif ++- ++-#if defined (MULTIMAX) || defined (n16) ++-#if defined (UMAXV) ++- printf ("ns32k-encore-sysv\n"); exit (0); ++-#else ++-#if defined (CMU) ++- printf ("ns32k-encore-mach\n"); exit (0); ++-#else ++- printf ("ns32k-encore-bsd\n"); exit (0); ++-#endif ++-#endif ++-#endif ++- ++-#if defined (__386BSD__) ++- printf ("i386-pc-bsd\n"); exit (0); ++-#endif ++- ++-#if defined (sequent) ++-#if defined (i386) ++- printf ("i386-sequent-dynix\n"); exit (0); ++-#endif ++-#if defined (ns32000) ++- printf ("ns32k-sequent-dynix\n"); exit (0); ++-#endif ++-#endif ++- ++-#if defined (_SEQUENT_) ++- struct utsname un; ++- ++- uname(&un); ++- ++- if (strncmp(un.version, "V2", 2) == 0) { ++- printf ("i386-sequent-ptx2\n"); exit (0); ++- } ++- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ ++- printf ("i386-sequent-ptx1\n"); exit (0); ++- } ++- printf ("i386-sequent-ptx\n"); exit (0); ++- ++-#endif ++- ++-#if defined (vax) ++-# if !defined (ultrix) ++-# include ++-# if defined (BSD) ++-# if BSD == 43 ++- printf ("vax-dec-bsd4.3\n"); exit (0); ++-# else ++-# if BSD == 199006 ++- printf ("vax-dec-bsd4.3reno\n"); exit (0); ++-# else ++- printf ("vax-dec-bsd\n"); exit (0); ++-# endif ++-# endif ++-# else ++- printf ("vax-dec-bsd\n"); exit (0); ++-# endif ++-# else ++- printf ("vax-dec-ultrix\n"); exit (0); ++-# endif ++-#endif ++- ++-#if defined (alliant) && defined (i860) ++- printf ("i860-alliant-bsd\n"); exit (0); ++-#endif ++- ++- exit (1); ++-} ++-EOF ++- ++-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && ++- { echo "$SYSTEM_NAME"; exit; } ++- ++-# Apollos put the system type in the environment. ++- ++-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } ++- ++-# Convex versions that predate uname can use getsysinfo(1) ++- ++-if [ -x /usr/convex/getsysinfo ] ++-then ++- case `getsysinfo -f cpu_type` in ++- c1*) ++- echo c1-convex-bsd ++- exit ;; ++- c2*) ++- if getsysinfo -f scalar_acc ++- then echo c32-convex-bsd ++- else echo c2-convex-bsd ++- fi ++- exit ;; ++- c34*) ++- echo c34-convex-bsd ++- exit ;; ++- c38*) ++- echo c38-convex-bsd ++- exit ;; ++- c4*) ++- echo c4-convex-bsd ++- exit ;; ++- esac ++-fi ++- ++ cat >&2 <. ++ # ++ # Configuration subroutine to validate and canonicalize a configuration type. ++ # Supply the specified configuration type as an argument. ++@@ -70,9 +68,7 @@ Report bugs and patches to +Date: Sun, 23 Oct 2016 20:08:52 +0200 +Subject: [PATCH] fix build of bundled libzmf with boost < 1.56 + +Change-Id: I024d77b563d492bbb56155afb6313d37ca6a4c0b +--- + ...001-allow-build-with-boost-1.56-part-II.patch.1 | 190 +++++++++++++++++++++ + .../0001-allow-build-with-boost-1.56.patch.1 | 131 ++++++++++++++ + external/libzmf/UnpackedTarball_libzmf.mk | 2 + + 3 files changed, 323 insertions(+) + create mode 100644 external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1 + create mode 100644 external/libzmf/0001-allow-build-with-boost-1.56.patch.1 + +diff --git a/external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1 b/external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1 +new file mode 100644 +index 0000000..d70fd97 +--- /dev/null ++++ b/external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1 +@@ -0,0 +1,190 @@ ++From 11b8d5b0c8c0461ac638aba6bc6e59e7ec5d815c Mon Sep 17 00:00:00 2001 ++From: David Tardon ++Date: Sun, 23 Oct 2016 19:58:35 +0200 ++Subject: [PATCH] allow build with boost < 1.56, part II ++ ++Change-Id: I4421847b1aa7bbb006a32dd85567b96125df6b6b ++--- ++ src/lib/ZMF4Parser.cpp | 42 +++++++++++++++++++++--------------------- ++ 1 file changed, 21 insertions(+), 21 deletions(-) ++ ++diff --git a/src/lib/ZMF4Parser.cpp b/src/lib/ZMF4Parser.cpp ++index e23c2e5..f3f3f5d 100644 ++--- a/src/lib/ZMF4Parser.cpp +++++ b/src/lib/ZMF4Parser.cpp ++@@ -269,7 +269,7 @@ boost::optional ZMF4Parser::getImageByRefId(uint32_t id) ++ ArrowPtr ZMF4Parser::getArrowByRefId(uint32_t id) ++ { ++ auto arrow = getByRefId(id, m_arrows); ++- return arrow ? arrow.value() : ArrowPtr(); +++ return get_optional_value_or(arrow, ArrowPtr()); ++ } ++ ++ Style ZMF4Parser::readStyle() ++@@ -684,13 +684,13 @@ void ZMF4Parser::readFill() ++ ++ Color color = readColor(); ++ ++- m_fills[m_currentObjectHeader.id.value()] = color; +++ m_fills[get(m_currentObjectHeader.id)] = color; ++ } ++ else if (type >= 2 && type <= 7) ++ { ++ Gradient gradient = readGradient(type); ++ ++- m_fills[m_currentObjectHeader.id.value()] = gradient; +++ m_fills[get(m_currentObjectHeader.id)] = gradient; ++ } ++ else if (type == 8) ++ { ++@@ -723,13 +723,13 @@ void ZMF4Parser::readFill() ++ ++ if (!image) ++ { ++- ZMF_DEBUG_MSG(("image not found for bitmap fill ID0x%x\n", m_currentObjectHeader.id.value())); +++ ZMF_DEBUG_MSG(("image not found for bitmap fill ID0x%x\n", get(m_currentObjectHeader.id))); ++ return; ++ } ++ ++- imageFill.image = image.value(); +++ imageFill.image = get(image); ++ ++- m_fills[m_currentObjectHeader.id.value()] = imageFill; +++ m_fills[get(m_currentObjectHeader.id)] = imageFill; ++ } ++ else ++ { ++@@ -756,7 +756,7 @@ void ZMF4Parser::readTransparency() ++ Transparency transparency; ++ transparency.color = readColor(); ++ ++- m_transparencies[m_currentObjectHeader.id.value()] = transparency; +++ m_transparencies[get(m_currentObjectHeader.id)] = transparency; ++ } ++ } ++ ++@@ -874,7 +874,7 @@ void ZMF4Parser::readPen() ++ } ++ } ++ ++- m_pens[m_currentObjectHeader.id.value()] = pen; +++ m_pens[get(m_currentObjectHeader.id)] = pen; ++ } ++ ++ void ZMF4Parser::readShadow() ++@@ -926,7 +926,7 @@ void ZMF4Parser::readShadow() ++ break; ++ } ++ ++- m_shadows[m_currentObjectHeader.id.value()] = shadow; +++ m_shadows[get(m_currentObjectHeader.id)] = shadow; ++ } ++ ++ void ZMF4Parser::readArrow() ++@@ -947,7 +947,7 @@ void ZMF4Parser::readArrow() ++ ++ arrow->curves = readCurveComponents(std::bind(&ZMF4Parser::readUnscaledPoint, this)); ++ ++- m_arrows[m_currentObjectHeader.id.value()] = arrow; +++ m_arrows[get(m_currentObjectHeader.id)] = arrow; ++ } ++ ++ void ZMF4Parser::readBitmap() ++@@ -975,11 +975,11 @@ void ZMF4Parser::readBitmap() ++ ++ if (image.data.empty()) ++ { ++- ZMF_DEBUG_MSG(("Failed to parse bitmap, ID 0x%x\n", m_currentObjectHeader.id.value())); +++ ZMF_DEBUG_MSG(("Failed to parse bitmap, ID 0x%x\n", get(m_currentObjectHeader.id))); ++ } ++ else ++ { ++- m_images[m_currentObjectHeader.id.value()] = image; +++ m_images[get(m_currentObjectHeader.id)] = image; ++ } ++ ++ seek(m_input, m_currentObjectHeader.nextObjectOffset + header.size()); ++@@ -1012,7 +1012,7 @@ void ZMF4Parser::readImage() ++ { ++ m_collector.setStyle(readStyle()); ++ ++- m_collector.collectImage(image.value().data, bbox.topLeft(), bbox.width(), bbox.height(), +++ m_collector.collectImage(get(image).data, bbox.topLeft(), bbox.width(), bbox.height(), ++ bbox.rotation(), bbox.mirrorHorizontal(), bbox.mirrorVertical()); ++ } ++ } ++@@ -1046,7 +1046,7 @@ void ZMF4Parser::readFont() ++ font.fill = style.fill; ++ font.outline = style.pen; ++ ++- m_fonts[m_currentObjectHeader.id.value()] = font; +++ m_fonts[get(m_currentObjectHeader.id)] = font; ++ } ++ ++ void ZMF4Parser::readParagraphStyle() ++@@ -1098,7 +1098,7 @@ void ZMF4Parser::readParagraphStyle() ++ { ++ auto font = getFontByRefId(ref.id); ++ if (font) ++- parStyle.font = font.value(); +++ parStyle.font = get(font); ++ } ++ break; ++ default: ++@@ -1107,7 +1107,7 @@ void ZMF4Parser::readParagraphStyle() ++ } ++ } ++ ++- m_paragraphStyles[m_currentObjectHeader.id.value()] = parStyle; +++ m_paragraphStyles[get(m_currentObjectHeader.id)] = parStyle; ++ } ++ ++ void ZMF4Parser::readText() ++@@ -1140,7 +1140,7 @@ void ZMF4Parser::readText() ++ uint32_t styleId = readU32(m_input); ++ auto style = getParagraphStyleByRefId(styleId); ++ if (style) ++- paragraph.style = style.value(); +++ paragraph.style = get(style); ++ ++ skip(m_input, 4); ++ } ++@@ -1161,7 +1161,7 @@ void ZMF4Parser::readText() ++ uint32_t fontId = readU32(m_input); ++ auto font = getFontByRefId(fontId); ++ if (font) ++- span.font = font.value(); +++ span.font = get(font); ++ else ++ { ++ span.font = paragraph.style.font; ++@@ -1180,7 +1180,7 @@ void ZMF4Parser::readText() ++ } ++ } ++ ++- m_texts[m_currentObjectHeader.id.value()] = text; +++ m_texts[get(m_currentObjectHeader.id)] = text; ++ } ++ ++ void ZMF4Parser::readTextFrame() ++@@ -1216,7 +1216,7 @@ void ZMF4Parser::readTextFrame() ++ ++ if (text) ++ { ++- m_collector.collectTextObject(text.value(), bbox.topLeft(), bbox.width(), bbox.height(), alignment, bbox.rotation()); +++ m_collector.collectTextObject(get(text), bbox.topLeft(), bbox.width(), bbox.height(), alignment, bbox.rotation()); ++ } ++ } ++ ++@@ -1350,7 +1350,7 @@ void ZMF4Parser::readTable() ++ auto text = getTextByRefId(textId); ++ if (text) ++ { ++- cell.text = text.value(); +++ cell.text = get(text); ++ } ++ ++ uint32_t rightPenRefId = readU32(m_input); ++-- ++2.9.3 ++ +diff --git a/external/libzmf/0001-allow-build-with-boost-1.56.patch.1 b/external/libzmf/0001-allow-build-with-boost-1.56.patch.1 +new file mode 100644 +index 0000000..0873381 +--- /dev/null ++++ b/external/libzmf/0001-allow-build-with-boost-1.56.patch.1 +@@ -0,0 +1,131 @@ ++From 16d921505a56745f671525310ebb4b3c58b35afe Mon Sep 17 00:00:00 2001 ++From: David Tardon ++Date: Sun, 23 Oct 2016 19:46:18 +0200 ++Subject: [PATCH] allow build with boost < 1.56 ++ ++Change-Id: I81a110fc19e1540980a265c773bd840c47643d86 ++--- ++ src/lib/ZMFCollector.cpp | 32 ++++++++++++++++---------------- ++ 1 file changed, 16 insertions(+), 16 deletions(-) ++ ++diff --git a/src/lib/ZMFCollector.cpp b/src/lib/ZMFCollector.cpp ++index 18377ff..0b2608f 100644 ++--- a/src/lib/ZMFCollector.cpp +++++ b/src/lib/ZMFCollector.cpp ++@@ -218,7 +218,7 @@ public: ++ ++ if (m_transparency) ++ { ++- m_propList.insert("draw:opacity", m_transparency.value().opacity(), librevenge::RVNG_PERCENT); +++ m_propList.insert("draw:opacity", get(m_transparency).opacity(), librevenge::RVNG_PERCENT); ++ } ++ } ++ ++@@ -251,7 +251,7 @@ public: ++ librevenge::RVNGPropertyList grad; ++ grad.insert("svg:offset", stop.offset, librevenge::RVNG_PERCENT); ++ grad.insert("svg:stop-color", stop.color.toString()); ++- grad.insert("svg:stop-opacity", m_transparency ? m_transparency.value().opacity() : 1.0, librevenge::RVNG_PERCENT); +++ grad.insert("svg:stop-opacity", m_transparency ? get(m_transparency).opacity() : 1.0, librevenge::RVNG_PERCENT); ++ gradientVector.append(grad); ++ } ++ ++@@ -294,7 +294,7 @@ public: ++ ++ if (m_transparency) ++ { ++- m_propList.insert("draw:opacity", m_transparency.value().opacity(), librevenge::RVNG_PERCENT); +++ m_propList.insert("draw:opacity", get(m_transparency).opacity(), librevenge::RVNG_PERCENT); ++ } ++ } ++ ++@@ -667,9 +667,9 @@ void ZMFCollector::collectText(const Text &text) ++ spanPropList.insert("fo:font-style", span.font.isItalic ? "italic" : "normal"); ++ spanPropList.insert("style:text-outline", static_cast(span.font.outline)); ++ ++- if (span.font.fill && span.font.fill.value().type() == typeid(Color)) +++ if (span.font.fill && get(span.font.fill).type() == typeid(Color)) ++ { ++- auto color = boost::get(span.font.fill.value()); +++ auto color = boost::get(get(span.font.fill)); ++ spanPropList.insert("fo:color", color.toString()); ++ } ++ ++@@ -759,9 +759,9 @@ void ZMFCollector::collectTable(const Table &table) ++ { ++ librevenge::RVNGPropertyList cellPropList; ++ ++- if (cell.fill && cell.fill.value().type() == typeid(Color)) +++ if (cell.fill && get(cell.fill).type() == typeid(Color)) ++ { ++- auto backgroundColor = boost::get(cell.fill.value()); +++ auto backgroundColor = boost::get(get(cell.fill)); ++ cellPropList.insert("fo:background-color", backgroundColor.toString()); ++ } ++ ++@@ -769,19 +769,19 @@ void ZMFCollector::collectTable(const Table &table) ++ ++ if (cell.leftBorder) ++ { ++- writeBorder(cellPropList, "fo:border-left", cell.leftBorder.value()); +++ writeBorder(cellPropList, "fo:border-left", get(cell.leftBorder)); ++ } ++ if (cell.rightBorder) ++ { ++- writeBorder(cellPropList, "fo:border-right", cell.rightBorder.value()); +++ writeBorder(cellPropList, "fo:border-right", get(cell.rightBorder)); ++ } ++ if (cell.topBorder) ++ { ++- writeBorder(cellPropList, "fo:border-top", cell.topBorder.value()); +++ writeBorder(cellPropList, "fo:border-top", get(cell.topBorder)); ++ } ++ if (cell.bottomBorder) ++ { ++- writeBorder(cellPropList, "fo:border-bottom", cell.bottomBorder.value()); +++ writeBorder(cellPropList, "fo:border-bottom", get(cell.bottomBorder)); ++ } ++ ++ m_painter->openTableCell(cellPropList); ++@@ -806,7 +806,7 @@ void ZMFCollector::collectImage(const librevenge::RVNGBinaryData &image, const P ++ ++ if (m_style.transparency) ++ { ++- propList.insert("draw:opacity", m_style.transparency.value().opacity(), librevenge::RVNG_PERCENT); +++ propList.insert("draw:opacity", get(m_style.transparency).opacity(), librevenge::RVNG_PERCENT); ++ } ++ ++ m_painter->setStyle(propList); ++@@ -847,17 +847,17 @@ void ZMFCollector::writeStyle(librevenge::RVNGPropertyList &propList, const Styl ++ ++ if (style.pen) ++ { ++- writePen(propList, style.pen.value()); +++ writePen(propList, get(style.pen)); ++ } ++ ++ if (style.fill && !noFill) ++ { ++- writeFill(propList, style.fill.value()); +++ writeFill(propList, get(style.fill)); ++ } ++ ++ if (style.shadow) ++ { ++- writeShadow(propList, style.shadow.value()); +++ writeShadow(propList, get(style.shadow)); ++ } ++ } ++ ++@@ -920,7 +920,7 @@ void ZMFCollector::writePen(librevenge::RVNGPropertyList &propList, const Pen &p ++ ++ if (m_style.transparency) ++ { ++- propList.insert("svg:stroke-opacity", m_style.transparency.value().opacity(), librevenge::RVNG_PERCENT); +++ propList.insert("svg:stroke-opacity", get(m_style.transparency).opacity(), librevenge::RVNG_PERCENT); ++ } ++ ++ if (pen.startArrow) ++-- ++2.9.3 ++ +diff --git a/external/libzmf/UnpackedTarball_libzmf.mk b/external/libzmf/UnpackedTarball_libzmf.mk +index c917633..782aeb8 100644 +--- a/external/libzmf/UnpackedTarball_libzmf.mk ++++ b/external/libzmf/UnpackedTarball_libzmf.mk +@@ -23,6 +23,8 @@ endif + + $(eval $(call gb_UnpackedTarball_add_patches,libzmf, \ + external/libzmf/0001-add-missing-include.patch.1 \ ++ external/libzmf/0001-allow-build-with-boost-1.56.patch.1 \ ++ external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1 \ + )) + + # vim: set noet sw=4 ts=4: +-- +2.9.3 + diff --git a/0001-impl.-missing-function.patch b/0001-impl.-missing-function.patch new file mode 100644 index 0000000..8247a03 --- /dev/null +++ b/0001-impl.-missing-function.patch @@ -0,0 +1,35 @@ +From 38b895cddcff51b6cfb47c6b3bbb2044a6d7a6dd Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Mon, 24 Oct 2016 10:08:09 +0200 +Subject: [PATCH] impl. missing function + +This is copied from vcl/unx/generic/glyphs/gcach_layout.cxx . + +Change-Id: I778c1c862c80668a06db8e91c11773ecc9916078 +--- + vcl/source/gdi/CommonSalLayout.cxx | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/vcl/source/gdi/CommonSalLayout.cxx b/vcl/source/gdi/CommonSalLayout.cxx +index 4bd9f60..91d7762 100644 +--- a/vcl/source/gdi/CommonSalLayout.cxx ++++ b/vcl/source/gdi/CommonSalLayout.cxx +@@ -104,6 +104,15 @@ static void scaleHbFont(hb_font_t* pHbFont, const FontSelectPattern& aFontSelDat + } + + #if !HB_VERSION_ATLEAST(1, 1, 0) ++// Disabled Unicode compatibility decomposition, see fdo#66715 ++static unsigned int unicodeDecomposeCompatibility(hb_unicode_funcs_t* /*ufuncs*/, ++ hb_codepoint_t /*u*/, ++ hb_codepoint_t* /*decomposed*/, ++ void* /*user_data*/) ++{ ++ return 0; ++} ++ + static hb_unicode_funcs_t* getUnicodeFuncs() + { + static hb_unicode_funcs_t* ufuncs = hb_unicode_funcs_create(hb_icu_get_unicode_funcs()); +-- +2.9.3 + diff --git a/libreoffice.spec b/libreoffice.spec index 1c2961e..aff169b 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -237,6 +237,9 @@ Patch6: 0001-rhbz-1353069-don-t-record-undo-information-in-the-cl.patch %if 0%{?rhel} # not upstreamed Patch500: 0001-disable-libe-book-support.patch +Patch501: 0001-fix-build-of-bundled-libzmf-with-boost-1.56.patch +Patch502: 0001-allow-to-build-bundled-libzmf-on-aarch64.patch +Patch503: 0001-impl.-missing-function.patch %endif %define instdir %{_libdir} @@ -1525,6 +1528,7 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libflatlo.so %{baseinstdir}/program/libfrmlo.so %if 0%{?rhel} +%{baseinstdir}/program/libstaroffice-0.0-lo.so.* %{baseinstdir}/program/libwps-0.4-lo.so.* %endif %{baseinstdir}/program/libguesslanglo.so