7f35fdb
From bc3ea81d78687c9383e899ddcd81422392a6ecee Mon Sep 17 00:00:00 2001
7f35fdb
From: David Tardon <dtardon@redhat.com>
7f35fdb
Date: Sun, 23 Oct 2016 20:08:52 +0200
7f35fdb
Subject: [PATCH] fix build of bundled libzmf with boost < 1.56
7f35fdb
7f35fdb
Change-Id: I024d77b563d492bbb56155afb6313d37ca6a4c0b
7f35fdb
---
7f35fdb
 ...001-allow-build-with-boost-1.56-part-II.patch.1 | 190 +++++++++++++++++++++
7f35fdb
 .../0001-allow-build-with-boost-1.56.patch.1       | 131 ++++++++++++++
7f35fdb
 external/libzmf/UnpackedTarball_libzmf.mk          |   2 +
7f35fdb
 3 files changed, 323 insertions(+)
7f35fdb
 create mode 100644 external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1
7f35fdb
 create mode 100644 external/libzmf/0001-allow-build-with-boost-1.56.patch.1
7f35fdb
7f35fdb
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
7f35fdb
new file mode 100644
7f35fdb
index 0000000..d70fd97
7f35fdb
--- /dev/null
7f35fdb
+++ b/external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1
7f35fdb
@@ -0,0 +1,190 @@
7f35fdb
+From 11b8d5b0c8c0461ac638aba6bc6e59e7ec5d815c Mon Sep 17 00:00:00 2001
7f35fdb
+From: David Tardon <dtardon@redhat.com>
7f35fdb
+Date: Sun, 23 Oct 2016 19:58:35 +0200
7f35fdb
+Subject: [PATCH] allow build with boost < 1.56, part II
7f35fdb
+
7f35fdb
+Change-Id: I4421847b1aa7bbb006a32dd85567b96125df6b6b
7f35fdb
+---
7f35fdb
+ src/lib/ZMF4Parser.cpp | 42 +++++++++++++++++++++---------------------
7f35fdb
+ 1 file changed, 21 insertions(+), 21 deletions(-)
7f35fdb
+
7f35fdb
+diff --git a/src/lib/ZMF4Parser.cpp b/src/lib/ZMF4Parser.cpp
7f35fdb
+index e23c2e5..f3f3f5d 100644
7f35fdb
+--- a/src/lib/ZMF4Parser.cpp
7f35fdb
++++ b/src/lib/ZMF4Parser.cpp
7f35fdb
+@@ -269,7 +269,7 @@ boost::optional<Image> ZMF4Parser::getImageByRefId(uint32_t id)
7f35fdb
+ ArrowPtr ZMF4Parser::getArrowByRefId(uint32_t id)
7f35fdb
+ {
7f35fdb
+   auto arrow = getByRefId<ArrowPtr>(id, m_arrows);
7f35fdb
+-  return arrow ? arrow.value() : ArrowPtr();
7f35fdb
++  return get_optional_value_or(arrow, ArrowPtr());
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+ Style ZMF4Parser::readStyle()
7f35fdb
+@@ -684,13 +684,13 @@ void ZMF4Parser::readFill()
7f35fdb
+ 
7f35fdb
+     Color color = readColor();
7f35fdb
+ 
7f35fdb
+-    m_fills[m_currentObjectHeader.id.value()] = color;
7f35fdb
++    m_fills[get(m_currentObjectHeader.id)] = color;
7f35fdb
+   }
7f35fdb
+   else if (type >= 2 && type <= 7)
7f35fdb
+   {
7f35fdb
+     Gradient gradient = readGradient(type);
7f35fdb
+ 
7f35fdb
+-    m_fills[m_currentObjectHeader.id.value()] = gradient;
7f35fdb
++    m_fills[get(m_currentObjectHeader.id)] = gradient;
7f35fdb
+   }
7f35fdb
+   else if (type == 8)
7f35fdb
+   {
7f35fdb
+@@ -723,13 +723,13 @@ void ZMF4Parser::readFill()
7f35fdb
+ 
7f35fdb
+     if (!image)
7f35fdb
+     {
7f35fdb
+-      ZMF_DEBUG_MSG(("image not found for bitmap fill ID0x%x\n", m_currentObjectHeader.id.value()));
7f35fdb
++      ZMF_DEBUG_MSG(("image not found for bitmap fill ID0x%x\n", get(m_currentObjectHeader.id)));
7f35fdb
+       return;
7f35fdb
+     }
7f35fdb
+ 
7f35fdb
+-    imageFill.image = image.value();
7f35fdb
++    imageFill.image = get(image);
7f35fdb
+ 
7f35fdb
+-    m_fills[m_currentObjectHeader.id.value()] = imageFill;
7f35fdb
++    m_fills[get(m_currentObjectHeader.id)] = imageFill;
7f35fdb
+   }
7f35fdb
+   else
7f35fdb
+   {
7f35fdb
+@@ -756,7 +756,7 @@ void ZMF4Parser::readTransparency()
7f35fdb
+     Transparency transparency;
7f35fdb
+     transparency.color = readColor();
7f35fdb
+ 
7f35fdb
+-    m_transparencies[m_currentObjectHeader.id.value()] = transparency;
7f35fdb
++    m_transparencies[get(m_currentObjectHeader.id)] = transparency;
7f35fdb
+   }
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+@@ -874,7 +874,7 @@ void ZMF4Parser::readPen()
7f35fdb
+     }
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+-  m_pens[m_currentObjectHeader.id.value()] = pen;
7f35fdb
++  m_pens[get(m_currentObjectHeader.id)] = pen;
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+ void ZMF4Parser::readShadow()
7f35fdb
+@@ -926,7 +926,7 @@ void ZMF4Parser::readShadow()
7f35fdb
+     break;
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+-  m_shadows[m_currentObjectHeader.id.value()] = shadow;
7f35fdb
++  m_shadows[get(m_currentObjectHeader.id)] = shadow;
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+ void ZMF4Parser::readArrow()
7f35fdb
+@@ -947,7 +947,7 @@ void ZMF4Parser::readArrow()
7f35fdb
+ 
7f35fdb
+   arrow->curves = readCurveComponents(std::bind(&ZMF4Parser::readUnscaledPoint, this));
7f35fdb
+ 
7f35fdb
+-  m_arrows[m_currentObjectHeader.id.value()] = arrow;
7f35fdb
++  m_arrows[get(m_currentObjectHeader.id)] = arrow;
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+ void ZMF4Parser::readBitmap()
7f35fdb
+@@ -975,11 +975,11 @@ void ZMF4Parser::readBitmap()
7f35fdb
+ 
7f35fdb
+     if (image.data.empty())
7f35fdb
+     {
7f35fdb
+-      ZMF_DEBUG_MSG(("Failed to parse bitmap, ID 0x%x\n", m_currentObjectHeader.id.value()));
7f35fdb
++      ZMF_DEBUG_MSG(("Failed to parse bitmap, ID 0x%x\n", get(m_currentObjectHeader.id)));
7f35fdb
+     }
7f35fdb
+     else
7f35fdb
+     {
7f35fdb
+-      m_images[m_currentObjectHeader.id.value()] = image;
7f35fdb
++      m_images[get(m_currentObjectHeader.id)] = image;
7f35fdb
+     }
7f35fdb
+ 
7f35fdb
+     seek(m_input, m_currentObjectHeader.nextObjectOffset + header.size());
7f35fdb
+@@ -1012,7 +1012,7 @@ void ZMF4Parser::readImage()
7f35fdb
+   {
7f35fdb
+     m_collector.setStyle(readStyle());
7f35fdb
+ 
7f35fdb
+-    m_collector.collectImage(image.value().data, bbox.topLeft(), bbox.width(), bbox.height(),
7f35fdb
++    m_collector.collectImage(get(image).data, bbox.topLeft(), bbox.width(), bbox.height(),
7f35fdb
+                              bbox.rotation(), bbox.mirrorHorizontal(), bbox.mirrorVertical());
7f35fdb
+   }
7f35fdb
+ }
7f35fdb
+@@ -1046,7 +1046,7 @@ void ZMF4Parser::readFont()
7f35fdb
+   font.fill = style.fill;
7f35fdb
+   font.outline = style.pen;
7f35fdb
+ 
7f35fdb
+-  m_fonts[m_currentObjectHeader.id.value()] = font;
7f35fdb
++  m_fonts[get(m_currentObjectHeader.id)] = font;
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+ void ZMF4Parser::readParagraphStyle()
7f35fdb
+@@ -1098,7 +1098,7 @@ void ZMF4Parser::readParagraphStyle()
7f35fdb
+     {
7f35fdb
+       auto font = getFontByRefId(ref.id);
7f35fdb
+       if (font)
7f35fdb
+-        parStyle.font = font.value();
7f35fdb
++        parStyle.font = get(font);
7f35fdb
+     }
7f35fdb
+     break;
7f35fdb
+     default:
7f35fdb
+@@ -1107,7 +1107,7 @@ void ZMF4Parser::readParagraphStyle()
7f35fdb
+     }
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+-  m_paragraphStyles[m_currentObjectHeader.id.value()] = parStyle;
7f35fdb
++  m_paragraphStyles[get(m_currentObjectHeader.id)] = parStyle;
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+ void ZMF4Parser::readText()
7f35fdb
+@@ -1140,7 +1140,7 @@ void ZMF4Parser::readText()
7f35fdb
+     uint32_t styleId = readU32(m_input);
7f35fdb
+     auto style = getParagraphStyleByRefId(styleId);
7f35fdb
+     if (style)
7f35fdb
+-      paragraph.style = style.value();
7f35fdb
++      paragraph.style = get(style);
7f35fdb
+ 
7f35fdb
+     skip(m_input, 4);
7f35fdb
+   }
7f35fdb
+@@ -1161,7 +1161,7 @@ void ZMF4Parser::readText()
7f35fdb
+       uint32_t fontId = readU32(m_input);
7f35fdb
+       auto font = getFontByRefId(fontId);
7f35fdb
+       if (font)
7f35fdb
+-        span.font = font.value();
7f35fdb
++        span.font = get(font);
7f35fdb
+       else
7f35fdb
+       {
7f35fdb
+         span.font = paragraph.style.font;
7f35fdb
+@@ -1180,7 +1180,7 @@ void ZMF4Parser::readText()
7f35fdb
+     }
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+-  m_texts[m_currentObjectHeader.id.value()] = text;
7f35fdb
++  m_texts[get(m_currentObjectHeader.id)] = text;
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+ void ZMF4Parser::readTextFrame()
7f35fdb
+@@ -1216,7 +1216,7 @@ void ZMF4Parser::readTextFrame()
7f35fdb
+ 
7f35fdb
+   if (text)
7f35fdb
+   {
7f35fdb
+-    m_collector.collectTextObject(text.value(), bbox.topLeft(), bbox.width(), bbox.height(), alignment, bbox.rotation());
7f35fdb
++    m_collector.collectTextObject(get(text), bbox.topLeft(), bbox.width(), bbox.height(), alignment, bbox.rotation());
7f35fdb
+   }
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+@@ -1350,7 +1350,7 @@ void ZMF4Parser::readTable()
7f35fdb
+       auto text = getTextByRefId(textId);
7f35fdb
+       if (text)
7f35fdb
+       {
7f35fdb
+-        cell.text = text.value();
7f35fdb
++        cell.text = get(text);
7f35fdb
+       }
7f35fdb
+ 
7f35fdb
+       uint32_t rightPenRefId = readU32(m_input);
7f35fdb
+-- 
7f35fdb
+2.9.3
7f35fdb
+
7f35fdb
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
7f35fdb
new file mode 100644
7f35fdb
index 0000000..0873381
7f35fdb
--- /dev/null
7f35fdb
+++ b/external/libzmf/0001-allow-build-with-boost-1.56.patch.1
7f35fdb
@@ -0,0 +1,131 @@
7f35fdb
+From 16d921505a56745f671525310ebb4b3c58b35afe Mon Sep 17 00:00:00 2001
7f35fdb
+From: David Tardon <dtardon@redhat.com>
7f35fdb
+Date: Sun, 23 Oct 2016 19:46:18 +0200
7f35fdb
+Subject: [PATCH] allow build with boost < 1.56
7f35fdb
+
7f35fdb
+Change-Id: I81a110fc19e1540980a265c773bd840c47643d86
7f35fdb
+---
7f35fdb
+ src/lib/ZMFCollector.cpp | 32 ++++++++++++++++----------------
7f35fdb
+ 1 file changed, 16 insertions(+), 16 deletions(-)
7f35fdb
+
7f35fdb
+diff --git a/src/lib/ZMFCollector.cpp b/src/lib/ZMFCollector.cpp
7f35fdb
+index 18377ff..0b2608f 100644
7f35fdb
+--- a/src/lib/ZMFCollector.cpp
7f35fdb
++++ b/src/lib/ZMFCollector.cpp
7f35fdb
+@@ -218,7 +218,7 @@ public:
7f35fdb
+ 
7f35fdb
+     if (m_transparency)
7f35fdb
+     {
7f35fdb
+-      m_propList.insert("draw:opacity", m_transparency.value().opacity(), librevenge::RVNG_PERCENT);
7f35fdb
++      m_propList.insert("draw:opacity", get(m_transparency).opacity(), librevenge::RVNG_PERCENT);
7f35fdb
+     }
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+@@ -251,7 +251,7 @@ public:
7f35fdb
+       librevenge::RVNGPropertyList grad;
7f35fdb
+       grad.insert("svg:offset", stop.offset, librevenge::RVNG_PERCENT);
7f35fdb
+       grad.insert("svg:stop-color", stop.color.toString());
7f35fdb
+-      grad.insert("svg:stop-opacity", m_transparency ? m_transparency.value().opacity() : 1.0, librevenge::RVNG_PERCENT);
7f35fdb
++      grad.insert("svg:stop-opacity", m_transparency ? get(m_transparency).opacity() : 1.0, librevenge::RVNG_PERCENT);
7f35fdb
+       gradientVector.append(grad);
7f35fdb
+     }
7f35fdb
+ 
7f35fdb
+@@ -294,7 +294,7 @@ public:
7f35fdb
+ 
7f35fdb
+     if (m_transparency)
7f35fdb
+     {
7f35fdb
+-      m_propList.insert("draw:opacity", m_transparency.value().opacity(), librevenge::RVNG_PERCENT);
7f35fdb
++      m_propList.insert("draw:opacity", get(m_transparency).opacity(), librevenge::RVNG_PERCENT);
7f35fdb
+     }
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+@@ -667,9 +667,9 @@ void ZMFCollector::collectText(const Text &text)
7f35fdb
+       spanPropList.insert("fo:font-style", span.font.isItalic ? "italic" : "normal");
7f35fdb
+       spanPropList.insert("style:text-outline", static_cast<bool>(span.font.outline));
7f35fdb
+ 
7f35fdb
+-      if (span.font.fill && span.font.fill.value().type() == typeid(Color))
7f35fdb
++      if (span.font.fill && get(span.font.fill).type() == typeid(Color))
7f35fdb
+       {
7f35fdb
+-        auto color = boost::get<Color>(span.font.fill.value());
7f35fdb
++        auto color = boost::get<Color>(get(span.font.fill));
7f35fdb
+         spanPropList.insert("fo:color", color.toString());
7f35fdb
+       }
7f35fdb
+ 
7f35fdb
+@@ -759,9 +759,9 @@ void ZMFCollector::collectTable(const Table &table)
7f35fdb
+     {
7f35fdb
+       librevenge::RVNGPropertyList cellPropList;
7f35fdb
+ 
7f35fdb
+-      if (cell.fill && cell.fill.value().type() == typeid(Color))
7f35fdb
++      if (cell.fill && get(cell.fill).type() == typeid(Color))
7f35fdb
+       {
7f35fdb
+-        auto backgroundColor = boost::get<Color>(cell.fill.value());
7f35fdb
++        auto backgroundColor = boost::get<Color>(get(cell.fill));
7f35fdb
+         cellPropList.insert("fo:background-color", backgroundColor.toString());
7f35fdb
+       }
7f35fdb
+ 
7f35fdb
+@@ -769,19 +769,19 @@ void ZMFCollector::collectTable(const Table &table)
7f35fdb
+ 
7f35fdb
+       if (cell.leftBorder)
7f35fdb
+       {
7f35fdb
+-        writeBorder(cellPropList, "fo:border-left", cell.leftBorder.value());
7f35fdb
++        writeBorder(cellPropList, "fo:border-left", get(cell.leftBorder));
7f35fdb
+       }
7f35fdb
+       if (cell.rightBorder)
7f35fdb
+       {
7f35fdb
+-        writeBorder(cellPropList, "fo:border-right", cell.rightBorder.value());
7f35fdb
++        writeBorder(cellPropList, "fo:border-right", get(cell.rightBorder));
7f35fdb
+       }
7f35fdb
+       if (cell.topBorder)
7f35fdb
+       {
7f35fdb
+-        writeBorder(cellPropList, "fo:border-top", cell.topBorder.value());
7f35fdb
++        writeBorder(cellPropList, "fo:border-top", get(cell.topBorder));
7f35fdb
+       }
7f35fdb
+       if (cell.bottomBorder)
7f35fdb
+       {
7f35fdb
+-        writeBorder(cellPropList, "fo:border-bottom", cell.bottomBorder.value());
7f35fdb
++        writeBorder(cellPropList, "fo:border-bottom", get(cell.bottomBorder));
7f35fdb
+       }
7f35fdb
+ 
7f35fdb
+       m_painter->openTableCell(cellPropList);
7f35fdb
+@@ -806,7 +806,7 @@ void ZMFCollector::collectImage(const librevenge::RVNGBinaryData &image, const P
7f35fdb
+ 
7f35fdb
+   if (m_style.transparency)
7f35fdb
+   {
7f35fdb
+-    propList.insert("draw:opacity", m_style.transparency.value().opacity(), librevenge::RVNG_PERCENT);
7f35fdb
++    propList.insert("draw:opacity", get(m_style.transparency).opacity(), librevenge::RVNG_PERCENT);
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+   m_painter->setStyle(propList);
7f35fdb
+@@ -847,17 +847,17 @@ void ZMFCollector::writeStyle(librevenge::RVNGPropertyList &propList, const Styl
7f35fdb
+ 
7f35fdb
+   if (style.pen)
7f35fdb
+   {
7f35fdb
+-    writePen(propList, style.pen.value());
7f35fdb
++    writePen(propList, get(style.pen));
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+   if (style.fill && !noFill)
7f35fdb
+   {
7f35fdb
+-    writeFill(propList, style.fill.value());
7f35fdb
++    writeFill(propList, get(style.fill));
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+   if (style.shadow)
7f35fdb
+   {
7f35fdb
+-    writeShadow(propList, style.shadow.value());
7f35fdb
++    writeShadow(propList, get(style.shadow));
7f35fdb
+   }
7f35fdb
+ }
7f35fdb
+ 
7f35fdb
+@@ -920,7 +920,7 @@ void ZMFCollector::writePen(librevenge::RVNGPropertyList &propList, const Pen &p
7f35fdb
+ 
7f35fdb
+   if (m_style.transparency)
7f35fdb
+   {
7f35fdb
+-    propList.insert("svg:stroke-opacity", m_style.transparency.value().opacity(), librevenge::RVNG_PERCENT);
7f35fdb
++    propList.insert("svg:stroke-opacity", get(m_style.transparency).opacity(), librevenge::RVNG_PERCENT);
7f35fdb
+   }
7f35fdb
+ 
7f35fdb
+   if (pen.startArrow)
7f35fdb
+-- 
7f35fdb
+2.9.3
7f35fdb
+
7f35fdb
diff --git a/external/libzmf/UnpackedTarball_libzmf.mk b/external/libzmf/UnpackedTarball_libzmf.mk
7f35fdb
index c917633..782aeb8 100644
7f35fdb
--- a/external/libzmf/UnpackedTarball_libzmf.mk
7f35fdb
+++ b/external/libzmf/UnpackedTarball_libzmf.mk
7f35fdb
@@ -23,6 +23,8 @@ endif
7f35fdb
 
7f35fdb
 $(eval $(call gb_UnpackedTarball_add_patches,libzmf, \
7f35fdb
 	external/libzmf/0001-add-missing-include.patch.1 \
7f35fdb
+	external/libzmf/0001-allow-build-with-boost-1.56.patch.1 \
7f35fdb
+	external/libzmf/0001-allow-build-with-boost-1.56-part-II.patch.1 \
7f35fdb
 ))
7f35fdb
 
7f35fdb
 # vim: set noet sw=4 ts=4:
7f35fdb
-- 
7f35fdb
2.9.3
7f35fdb