From 6b2d45eeaf4c1467b253d0d976a3dd96e4e4e576caa731984bc98ac6a9299ccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Mon, 30 Mar 2020 08:49:15 +0000 Subject: [PATCH] Accepting request 789678 from home:marxin:branches:LibreOffice:Factory - Add replace-boost-bimap-in-sdext-pdfimport.patch and adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch in order to fix boo#1167463. OBS-URL: https://build.opensuse.org/request/show/789678 OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=871 --- ...-to-removal-of-std-span-cbegin-et-al.patch | 68 +++++++++++ libreoffice.changes | 7 ++ libreoffice.spec | 4 + replace-boost-bimap-in-sdext-pdfimport.patch | 110 ++++++++++++++++++ 4 files changed, 189 insertions(+) create mode 100644 adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch create mode 100644 replace-boost-bimap-in-sdext-pdfimport.patch diff --git a/adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch b/adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch new file mode 100644 index 0000000..6fb8d36 --- /dev/null +++ b/adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch @@ -0,0 +1,68 @@ +From 6fbfad6b00e8c35346ee59cd32a0d7ccc0d8c19c Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Sat, 22 Feb 2020 17:29:15 +0100 +Subject: [PATCH] Adapt o3tl::span to removal of std::span::cbegin et al + + "span::cbegin/cend methods produce +different results than std::[ranges::]cbegin/cend", as implemented now in + "libstdc++: Remove std::span::cbegin +and std::span::cend (LWG 3320)". + +Turns out we only used the removed member functions in o3tl/qa/test-span.cxx. + +Change-Id: I6c73797594b4e0e753a88840033d54961e271df5 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89261 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +--- + include/o3tl/span.hxx | 7 ------- + o3tl/qa/test-span.cxx | 6 ------ + 2 files changed, 13 deletions(-) + +diff --git a/include/o3tl/span.hxx b/include/o3tl/span.hxx +index b19d2d847ac7..8af8ba846b65 100644 +--- a/include/o3tl/span.hxx ++++ b/include/o3tl/span.hxx +@@ -62,18 +62,11 @@ public: + constexpr iterator begin() const noexcept { return data_; } + constexpr iterator end() const noexcept { return begin() + size(); } + +- constexpr const_iterator cbegin() const noexcept { return begin(); } +- constexpr const_iterator cend() const noexcept { return end(); } +- + reverse_iterator rbegin() const noexcept + { return reverse_iterator(end()); } + reverse_iterator rend() const noexcept + { return reverse_iterator(begin()); } + +- constexpr const_reverse_iterator crbegin() const noexcept +- { return rbegin(); } +- constexpr const_reverse_iterator crend() const noexcept { return rend(); } +- + constexpr size_type size() const noexcept { return size_; } + + constexpr reference operator [](size_type pos) const { +diff --git a/o3tl/qa/test-span.cxx b/o3tl/qa/test-span.cxx +index 3cb78ace1db2..26eedfc21938 100644 +--- a/o3tl/qa/test-span.cxx ++++ b/o3tl/qa/test-span.cxx +@@ -34,15 +34,9 @@ private: + CPPUNIT_ASSERT_EQUAL(1, *v.begin()); + CPPUNIT_ASSERT_EQUAL( + o3tl::span::difference_type(3), v.end() - v.begin()); +- CPPUNIT_ASSERT_EQUAL(1, *v.cbegin()); +- CPPUNIT_ASSERT_EQUAL( +- o3tl::span::difference_type(3), v.cend() - v.cbegin()); + CPPUNIT_ASSERT_EQUAL(3, *v.rbegin()); + CPPUNIT_ASSERT_EQUAL( + o3tl::span::difference_type(3), v.rend() - v.rbegin()); +- CPPUNIT_ASSERT_EQUAL(3, *v.crbegin()); +- CPPUNIT_ASSERT_EQUAL( +- o3tl::span::difference_type(3), v.crend() - v.crbegin()); + CPPUNIT_ASSERT_EQUAL(std::size_t(3), v.size()); + CPPUNIT_ASSERT(!v.empty()); + CPPUNIT_ASSERT_EQUAL(2, v[1]); +-- +2.24.1 + diff --git a/libreoffice.changes b/libreoffice.changes index 60c725b..0f14f59 100644 --- a/libreoffice.changes +++ b/libreoffice.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Mar 30 08:41:19 UTC 2020 - Martin Liška + +- Add replace-boost-bimap-in-sdext-pdfimport.patch and + adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch + in order to fix boo#1167463. + ------------------------------------------------------------------- Fri Mar 27 12:04:43 UTC 2020 - Michael Gorse diff --git a/libreoffice.spec b/libreoffice.spec index 3604ecc..ddbee9c 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -100,6 +100,8 @@ Patch2: nlpsolver-no-broken-help.diff Patch3: mediawiki-no-broken-help.diff Patch6: fix_old_boost_spirit_namespace.patch Patch7: poppler-0.86.patch +Patch8: replace-boost-bimap-in-sdext-pdfimport.patch +Patch9: adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch # try to save space by using hardlinks Patch990: install-with-hardlinks.diff # save time by relying on rpm check rather than doing stupid find+grep @@ -957,6 +959,8 @@ Provides %{langname} translations and additional resources (help files, etc.) fo %patch3 %patch6 -p1 %patch7 -p1 +%patch8 -p1 +%patch9 -p1 %patch990 -p1 %patch991 -p1 diff --git a/replace-boost-bimap-in-sdext-pdfimport.patch b/replace-boost-bimap-in-sdext-pdfimport.patch new file mode 100644 index 0000000..aa73ebd --- /dev/null +++ b/replace-boost-bimap-in-sdext-pdfimport.patch @@ -0,0 +1,110 @@ +From 193b49763a03d63ba79db50c1fa0563ec0d6b0c3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Wed, 29 Jan 2020 12:44:52 +0000 +Subject: [PATCH] replace boost::bimap in sdext pdfimport + +Change-Id: Ie324a0b81931bbd427483878a87beeca455ada18 +--- + sdext/source/pdfimport/inc/pdfiprocessor.hxx | 12 ++++------- + sdext/source/pdfimport/tree/pdfiprocessor.cxx | 21 +++++++++++-------- + 2 files changed, 16 insertions(+), 17 deletions(-) + +diff --git a/sdext/source/pdfimport/inc/pdfiprocessor.hxx b/sdext/source/pdfimport/inc/pdfiprocessor.hxx +index 89f9d601b7b0..9e08d6a6a765 100644 +--- a/sdext/source/pdfimport/inc/pdfiprocessor.hxx ++++ b/sdext/source/pdfimport/inc/pdfiprocessor.hxx +@@ -37,9 +37,6 @@ + #include "treevisitorfactory.hxx" + #include "genericelements.hxx" + +-#include +-#include +- + namespace pdfi + { + +@@ -160,10 +157,8 @@ namespace pdfi + typedef std::unordered_map IdToFontMap; + typedef std::unordered_map FontToIdMap; + +- typedef boost::bimaps::bimap< +- boost::bimaps::unordered_set_of, +- boost::bimaps::unordered_set_of +- > GCToIdBiMap; ++ typedef std::unordered_map IdToGCMap; ++ typedef std::unordered_map GCToIdMap; + + typedef std::vector GraphicsContextStack; + +@@ -178,7 +173,8 @@ namespace pdfi + + GraphicsContextStack m_aGCStack; + sal_Int32 m_nNextGCId; +- GCToIdBiMap m_aGCToId; ++ IdToGCMap m_aIdToGC; ++ GCToIdMap m_aGCToId; + + ImageContainer m_aImages; + +diff --git a/sdext/source/pdfimport/tree/pdfiprocessor.cxx b/sdext/source/pdfimport/tree/pdfiprocessor.cxx +index c6baa7fee8b2..ed2eaf6510b9 100644 +--- a/sdext/source/pdfimport/tree/pdfiprocessor.cxx ++++ b/sdext/source/pdfimport/tree/pdfiprocessor.cxx +@@ -54,6 +54,7 @@ namespace pdfi + m_aFontToId(), + m_aGCStack(), + m_nNextGCId( 1 ), ++ m_aIdToGC(), + m_aGCToId(), + m_aImages(), + m_nPages(0), +@@ -65,12 +66,13 @@ namespace pdfi + aDefFont.isBold = false; + aDefFont.isItalic = false; + aDefFont.size = 10*PDFI_OUTDEV_RESOLUTION/72; +- m_aIdToFont[ 0 ] = aDefFont; +- m_aFontToId[ aDefFont ] = 0; ++ m_aIdToFont.insert({0, aDefFont}); ++ m_aFontToId.insert({aDefFont, 0}); + + GraphicsContext aDefGC; + m_aGCStack.push_back( aDefGC ); +- m_aGCToId.insert(GCToIdBiMap::relation(aDefGC, 0)); ++ m_aGCToId.insert({aDefGC, 0}); ++ m_aIdToGC.insert({0, aDefGC}); + } + + void PDFIProcessor::setPageNum( sal_Int32 nPages ) +@@ -468,12 +470,13 @@ const FontAttributes& PDFIProcessor::getFont( sal_Int32 nFontId ) const + sal_Int32 PDFIProcessor::getGCId( const GraphicsContext& rGC ) + { + sal_Int32 nGCId = 0; +- auto it = m_aGCToId.left.find( rGC ); +- if( it != m_aGCToId.left.end() ) ++ auto it = m_aGCToId.find( rGC ); ++ if( it != m_aGCToId.end() ) + nGCId = it->second; + else + { +- m_aGCToId.insert(GCToIdBiMap::relation(rGC, m_nNextGCId)); ++ m_aGCToId.insert({rGC, m_nNextGCId}); ++ m_aIdToGC.insert({m_nNextGCId, rGC}); + nGCId = m_nNextGCId; + m_nNextGCId++; + } +@@ -483,9 +486,9 @@ sal_Int32 PDFIProcessor::getGCId( const GraphicsContext& rGC ) + + const GraphicsContext& PDFIProcessor::getGraphicsContext( sal_Int32 nGCId ) const + { +- auto it = m_aGCToId.right.find( nGCId ); +- if( it == m_aGCToId.right.end() ) +- it = m_aGCToId.right.find( 0 ); ++ auto it = m_aIdToGC.find( nGCId ); ++ if( it == m_aIdToGC.end() ) ++ it = m_aIdToGC.find( 0 ); + return it->second; + } + +-- +2.24.1 +