From f780bf929d9ad09082656a6f9e58cb3fe46a6d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Sat, 5 Mar 2022 16:18:11 +0000 Subject: [PATCH] 7.3.1 release --- .gitignore | 12 +- ...X-code-in-library-static-initializat.patch | 45 -- 0001-disable-ICEing-function-under-x86.patch | 469 ------------------ ...um-assert-that-is-platform-dependant.patch | 49 -- ...ig-endian-hsql-to-firebird-migration.patch | 44 -- ...ix-direct-leaks-in-vcl-cppunit-tests.patch | 401 --------------- ...eal-font-used-for-Roman-is-arbitrary.patch | 103 ---- ...ssumes-KacstBook-has-no-Latin-glyphs.patch | 75 --- libreoffice.spec | 15 +- sources | 12 +- 10 files changed, 17 insertions(+), 1208 deletions(-) delete mode 100644 0001-Avoid-calling-AVX-code-in-library-static-initializat.patch delete mode 100644 0001-disable-ICEing-function-under-x86.patch delete mode 100644 0001-drop-checksum-assert-that-is-platform-dependant.patch delete mode 100644 0001-fix-big-endian-hsql-to-firebird-migration.patch delete mode 100644 0001-fix-direct-leaks-in-vcl-cppunit-tests.patch delete mode 100644 0001-the-real-font-used-for-Roman-is-arbitrary.patch delete mode 100644 0001-this-test-assumes-KacstBook-has-no-Latin-glyphs.patch diff --git a/.gitignore b/.gitignore index 82a225f..820a412 100644 --- a/.gitignore +++ b/.gitignore @@ -4,10 +4,10 @@ /f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf /libreoffice-multiliblauncher.sh /dtoa-20180411.tgz -/libreoffice-7.3.0.3.tar.xz -/libreoffice-7.3.0.3.tar.xz.asc -/libreoffice-help-7.3.0.3.tar.xz -/libreoffice-help-7.3.0.3.tar.xz.asc -/libreoffice-translations-7.3.0.3.tar.xz -/libreoffice-translations-7.3.0.3.tar.xz.asc /libcuckoo-93217f8d391718380c508a722ab9acd5e9081233.tar.gz +/libreoffice-7.3.1.3.tar.xz +/libreoffice-7.3.1.3.tar.xz.asc +/libreoffice-help-7.3.1.3.tar.xz +/libreoffice-help-7.3.1.3.tar.xz.asc +/libreoffice-translations-7.3.1.3.tar.xz +/libreoffice-translations-7.3.1.3.tar.xz.asc diff --git a/0001-Avoid-calling-AVX-code-in-library-static-initializat.patch b/0001-Avoid-calling-AVX-code-in-library-static-initializat.patch deleted file mode 100644 index f59aa65..0000000 --- a/0001-Avoid-calling-AVX-code-in-library-static-initializat.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 3f96d70ce7f31d556b995733b44cb8715b64e329 Mon Sep 17 00:00:00 2001 -From: Thorsten Behrens -Date: Mon, 31 Jan 2022 22:45:37 +0100 -Subject: [PATCH 1/2] Avoid calling AVX code in library static initialization - -Despite 26072b8db7ba53f00c83197cb064229a76001989 and -12c6b1ef6a824b09778163ec83fc44bb196e65db, Linux builds using -RH devtoolset-7 gcc7 still hit occasional unit test crashes -with illegal instructions. - -Backtrace is always: - -> #0 __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at core/sc/source/core/tool/arraysumAVX.cxx:20 -> #1 _GLOBAL__sub_I_arraysumAVX.cxx(void) () at core/sc/source/core/tool/arraysumAVX.cxx:112 -> - -So lets make sure initializer is run only on function entry. - -Change-Id: I69f5cb725e4d72fb346166b21870612473f974b8 -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129246 -Tested-by: Jenkins -Reviewed-by: Thorsten Behrens -(cherry picked from commit d140817428cdbb519efa496f578bf6c054c94361) -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129251 -Reviewed-by: Xisco Fauli ---- - sc/source/core/tool/arraysumAVX.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sc/source/core/tool/arraysumAVX.cxx b/sc/source/core/tool/arraysumAVX.cxx -index e256248047d0..4d9ee02285e7 100644 ---- a/sc/source/core/tool/arraysumAVX.cxx -+++ b/sc/source/core/tool/arraysumAVX.cxx -@@ -30,7 +30,7 @@ using namespace AVX; - */ - static inline void sumAVX(__m256d& sum, __m256d& err, const __m256d& value) - { -- const __m256d ANNULATE_SIGN_BIT -+ static const __m256d ANNULATE_SIGN_BIT - = _mm256_castsi256_pd(_mm256_set1_epi64x(0x7FFF'FFFF'FFFF'FFFF)); - // Temporal parameter - __m256d t = _mm256_add_pd(sum, value); --- -2.33.1 - diff --git a/0001-disable-ICEing-function-under-x86.patch b/0001-disable-ICEing-function-under-x86.patch deleted file mode 100644 index 8e65b95..0000000 --- a/0001-disable-ICEing-function-under-x86.patch +++ /dev/null @@ -1,469 +0,0 @@ -From 9ef5a52faecf9118ef46582911f537fd3b6efaad Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 3 Feb 2022 14:29:21 +0000 -Subject: [PATCH] disable ICEing function under x86 - -Change-Id: I75afe56b248236f30a96876e2aed96f5dd887df1 ---- - sc/Library_sc.mk | 1 + - sc/source/core/tool/bahttext.cxx | 243 +++++++++++++++++++++++++++++++ - sc/source/core/tool/interpr2.cxx | 181 ----------------------- - 3 files changed, 244 insertions(+), 181 deletions(-) - create mode 100644 sc/source/core/tool/bahttext.cxx - -diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk -index 936ca33901ee..f31bbd3f5f8c 100644 ---- a/sc/Library_sc.mk -+++ b/sc/Library_sc.mk -@@ -207,6 +207,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\ - sc/source/core/tool/adiasync \ - sc/source/core/tool/appoptio \ - sc/source/core/tool/autoform \ -+ sc/source/core/tool/bahttext \ - sc/source/core/tool/calcconfig \ - sc/source/core/tool/callform \ - sc/source/core/tool/cellform \ -diff --git a/sc/source/core/tool/bahttext.cxx b/sc/source/core/tool/bahttext.cxx -new file mode 100644 -index 000000000000..307a92e39c7c ---- /dev/null -+++ b/sc/source/core/tool/bahttext.cxx -@@ -0,0 +1,243 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+using ::std::vector; -+using namespace com::sun::star; -+using namespace formula; -+ -+#if defined(X86) -+void ScInterpreter::ScBahtText() {} -+#else -+ -+// BAHTTEXT -+#define UTF8_TH_0 "\340\270\250\340\270\271\340\270\231\340\270\242\340\271\214" -+#define UTF8_TH_1 "\340\270\253\340\270\231\340\270\266\340\271\210\340\270\207" -+#define UTF8_TH_2 "\340\270\252\340\270\255\340\270\207" -+#define UTF8_TH_3 "\340\270\252\340\270\262\340\270\241" -+#define UTF8_TH_4 "\340\270\252\340\270\265\340\271\210" -+#define UTF8_TH_5 "\340\270\253\340\271\211\340\270\262" -+#define UTF8_TH_6 "\340\270\253\340\270\201" -+#define UTF8_TH_7 "\340\271\200\340\270\210\340\271\207\340\270\224" -+#define UTF8_TH_8 "\340\271\201\340\270\233\340\270\224" -+#define UTF8_TH_9 "\340\271\200\340\270\201\340\271\211\340\270\262" -+#define UTF8_TH_10 "\340\270\252\340\270\264\340\270\232" -+#define UTF8_TH_11 "\340\271\200\340\270\255\340\271\207\340\270\224" -+#define UTF8_TH_20 "\340\270\242\340\270\265\340\271\210" -+#define UTF8_TH_1E2 "\340\270\243\340\271\211\340\270\255\340\270\242" -+#define UTF8_TH_1E3 "\340\270\236\340\270\261\340\270\231" -+#define UTF8_TH_1E4 "\340\270\253\340\270\241\340\270\267\340\271\210\340\270\231" -+#define UTF8_TH_1E5 "\340\271\201\340\270\252\340\270\231" -+#define UTF8_TH_1E6 "\340\270\245\340\271\211\340\270\262\340\270\231" -+#define UTF8_TH_DOT0 "\340\270\226\340\271\211\340\270\247\340\270\231" -+#define UTF8_TH_BAHT "\340\270\232\340\270\262\340\270\227" -+#define UTF8_TH_SATANG "\340\270\252\340\270\225\340\270\262\340\270\207\340\270\204\340\271\214" -+#define UTF8_TH_MINUS "\340\270\245\340\270\232" -+ -+// local functions -+static void lclSplitBlock(double& rfInt, sal_Int32& rnBlock, double fValue, double fSize) -+{ -+ rnBlock = static_cast(modf((fValue + 0.1) / fSize, &rfInt) * fSize + 0.1); -+} -+ -+/** Appends a digit (0 to 9) to the passed string. */ -+static void lclAppendDigit(OStringBuffer& rText, sal_Int32 nDigit) -+{ -+ switch (nDigit) -+ { -+ case 0: -+ rText.append(UTF8_TH_0); -+ break; -+ case 1: -+ rText.append(UTF8_TH_1); -+ break; -+ case 2: -+ rText.append(UTF8_TH_2); -+ break; -+ case 3: -+ rText.append(UTF8_TH_3); -+ break; -+ case 4: -+ rText.append(UTF8_TH_4); -+ break; -+ case 5: -+ rText.append(UTF8_TH_5); -+ break; -+ case 6: -+ rText.append(UTF8_TH_6); -+ break; -+ case 7: -+ rText.append(UTF8_TH_7); -+ break; -+ case 8: -+ rText.append(UTF8_TH_8); -+ break; -+ case 9: -+ rText.append(UTF8_TH_9); -+ break; -+ default: -+ OSL_FAIL("lclAppendDigit - illegal digit"); -+ } -+} -+ -+/** Appends a value raised to a power of 10: nDigit*10^nPow10. -+ @param nDigit A digit in the range from 1 to 9. -+ @param nPow10 A value in the range from 2 to 5. -+ */ -+static void lclAppendPow10(OStringBuffer& rText, sal_Int32 nDigit, sal_Int32 nPow10) -+{ -+ OSL_ENSURE((1 <= nDigit) && (nDigit <= 9), "lclAppendPow10 - illegal digit"); -+ lclAppendDigit(rText, nDigit); -+ switch (nPow10) -+ { -+ case 2: -+ rText.append(UTF8_TH_1E2); -+ break; -+ case 3: -+ rText.append(UTF8_TH_1E3); -+ break; -+ case 4: -+ rText.append(UTF8_TH_1E4); -+ break; -+ case 5: -+ rText.append(UTF8_TH_1E5); -+ break; -+ default: -+ OSL_FAIL("lclAppendPow10 - illegal power"); -+ } -+} -+ -+/** Appends a block of 6 digits (value from 1 to 999,999) to the passed string. */ -+static void lclAppendBlock(OStringBuffer& rText, sal_Int32 nValue) -+{ -+ OSL_ENSURE((1 <= nValue) && (nValue <= 999999), "lclAppendBlock - illegal value"); -+ if (nValue >= 100000) -+ { -+ lclAppendPow10(rText, nValue / 100000, 5); -+ nValue %= 100000; -+ } -+ if (nValue >= 10000) -+ { -+ lclAppendPow10(rText, nValue / 10000, 4); -+ nValue %= 10000; -+ } -+ if (nValue >= 1000) -+ { -+ lclAppendPow10(rText, nValue / 1000, 3); -+ nValue %= 1000; -+ } -+ if (nValue >= 100) -+ { -+ lclAppendPow10(rText, nValue / 100, 2); -+ nValue %= 100; -+ } -+ if (nValue <= 0) -+ return; -+ -+ sal_Int32 nTen = nValue / 10; -+ sal_Int32 nOne = nValue % 10; -+ if (nTen >= 1) -+ { -+ if (nTen >= 3) -+ lclAppendDigit(rText, nTen); -+ else if (nTen == 2) -+ rText.append(UTF8_TH_20); -+ rText.append(UTF8_TH_10); -+ } -+ if ((nTen > 0) && (nOne == 1)) -+ rText.append(UTF8_TH_11); -+ else if (nOne > 0) -+ lclAppendDigit(rText, nOne); -+} -+ -+void ScInterpreter::ScBahtText() -+{ -+ sal_uInt8 nParamCount = GetByte(); -+ if (!MustHaveParamCount(nParamCount, 1)) -+ return; -+ -+ double fValue = GetDouble(); -+ if (nGlobalError != FormulaError::NONE) -+ { -+ PushError(nGlobalError); -+ return; -+ } -+ -+ // sign -+ bool bMinus = fValue < 0.0; -+ fValue = std::abs(fValue); -+ -+ // round to 2 digits after decimal point, fValue contains Satang as integer -+ fValue = ::rtl::math::approxFloor(fValue * 100.0 + 0.5); -+ -+ // split Baht and Satang -+ double fBaht = 0.0; -+ sal_Int32 nSatang = 0; -+ lclSplitBlock(fBaht, nSatang, fValue, 100.0); -+ -+ OStringBuffer aText; -+ -+ // generate text for Baht value -+ if (fBaht == 0.0) -+ { -+ if (nSatang == 0) -+ aText.append(UTF8_TH_0); -+ } -+ else -+ while (fBaht > 0.0) -+ { -+ OStringBuffer aBlock; -+ sal_Int32 nBlock = 0; -+ lclSplitBlock(fBaht, nBlock, fBaht, 1.0e6); -+ if (nBlock > 0) -+ lclAppendBlock(aBlock, nBlock); -+ // add leading "million", if there will come more blocks -+ if (fBaht > 0.0) -+ aBlock.insert(0, UTF8_TH_1E6); -+ -+ aText.insert(0, aBlock.makeStringAndClear()); -+ } -+ if (!aText.isEmpty()) -+ aText.append(UTF8_TH_BAHT); -+ -+ // generate text for Satang value -+ if (nSatang == 0) -+ { -+ aText.append(UTF8_TH_DOT0); -+ } -+ else -+ { -+ lclAppendBlock(aText, nSatang); -+ aText.append(UTF8_TH_SATANG); -+ } -+ -+ // add the minus sign -+ if (bMinus) -+ aText.insert(0, UTF8_TH_MINUS); -+ -+ PushString(OStringToOUString(aText.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); -+} -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx -index 6525f2a6784b..96f47f2e27ad 100644 ---- a/sc/source/core/tool/interpr2.cxx -+++ b/sc/source/core/tool/interpr2.cxx -@@ -3307,187 +3307,6 @@ void ScInterpreter::ScEuroConvert() - } - } - --// BAHTTEXT --#define UTF8_TH_0 "\340\270\250\340\270\271\340\270\231\340\270\242\340\271\214" --#define UTF8_TH_1 "\340\270\253\340\270\231\340\270\266\340\271\210\340\270\207" --#define UTF8_TH_2 "\340\270\252\340\270\255\340\270\207" --#define UTF8_TH_3 "\340\270\252\340\270\262\340\270\241" --#define UTF8_TH_4 "\340\270\252\340\270\265\340\271\210" --#define UTF8_TH_5 "\340\270\253\340\271\211\340\270\262" --#define UTF8_TH_6 "\340\270\253\340\270\201" --#define UTF8_TH_7 "\340\271\200\340\270\210\340\271\207\340\270\224" --#define UTF8_TH_8 "\340\271\201\340\270\233\340\270\224" --#define UTF8_TH_9 "\340\271\200\340\270\201\340\271\211\340\270\262" --#define UTF8_TH_10 "\340\270\252\340\270\264\340\270\232" --#define UTF8_TH_11 "\340\271\200\340\270\255\340\271\207\340\270\224" --#define UTF8_TH_20 "\340\270\242\340\270\265\340\271\210" --#define UTF8_TH_1E2 "\340\270\243\340\271\211\340\270\255\340\270\242" --#define UTF8_TH_1E3 "\340\270\236\340\270\261\340\270\231" --#define UTF8_TH_1E4 "\340\270\253\340\270\241\340\270\267\340\271\210\340\270\231" --#define UTF8_TH_1E5 "\340\271\201\340\270\252\340\270\231" --#define UTF8_TH_1E6 "\340\270\245\340\271\211\340\270\262\340\270\231" --#define UTF8_TH_DOT0 "\340\270\226\340\271\211\340\270\247\340\270\231" --#define UTF8_TH_BAHT "\340\270\232\340\270\262\340\270\227" --#define UTF8_TH_SATANG "\340\270\252\340\270\225\340\270\262\340\270\207\340\270\204\340\271\214" --#define UTF8_TH_MINUS "\340\270\245\340\270\232" -- --// local functions --namespace { -- --void lclSplitBlock( double& rfInt, sal_Int32& rnBlock, double fValue, double fSize ) --{ -- rnBlock = static_cast< sal_Int32 >( modf( (fValue + 0.1) / fSize, &rfInt ) * fSize + 0.1 ); --} -- --/** Appends a digit (0 to 9) to the passed string. */ --void lclAppendDigit( OStringBuffer& rText, sal_Int32 nDigit ) --{ -- switch( nDigit ) -- { -- case 0: rText.append( UTF8_TH_0 ); break; -- case 1: rText.append( UTF8_TH_1 ); break; -- case 2: rText.append( UTF8_TH_2 ); break; -- case 3: rText.append( UTF8_TH_3 ); break; -- case 4: rText.append( UTF8_TH_4 ); break; -- case 5: rText.append( UTF8_TH_5 ); break; -- case 6: rText.append( UTF8_TH_6 ); break; -- case 7: rText.append( UTF8_TH_7 ); break; -- case 8: rText.append( UTF8_TH_8 ); break; -- case 9: rText.append( UTF8_TH_9 ); break; -- default: OSL_FAIL( "lclAppendDigit - illegal digit" ); -- } --} -- --/** Appends a value raised to a power of 10: nDigit*10^nPow10. -- @param nDigit A digit in the range from 1 to 9. -- @param nPow10 A value in the range from 2 to 5. -- */ --void lclAppendPow10( OStringBuffer& rText, sal_Int32 nDigit, sal_Int32 nPow10 ) --{ -- OSL_ENSURE( (1 <= nDigit) && (nDigit <= 9), "lclAppendPow10 - illegal digit" ); -- lclAppendDigit( rText, nDigit ); -- switch( nPow10 ) -- { -- case 2: rText.append( UTF8_TH_1E2 ); break; -- case 3: rText.append( UTF8_TH_1E3 ); break; -- case 4: rText.append( UTF8_TH_1E4 ); break; -- case 5: rText.append( UTF8_TH_1E5 ); break; -- default: OSL_FAIL( "lclAppendPow10 - illegal power" ); -- } --} -- --/** Appends a block of 6 digits (value from 1 to 999,999) to the passed string. */ --void lclAppendBlock( OStringBuffer& rText, sal_Int32 nValue ) --{ -- OSL_ENSURE( (1 <= nValue) && (nValue <= 999999), "lclAppendBlock - illegal value" ); -- if( nValue >= 100000 ) -- { -- lclAppendPow10( rText, nValue / 100000, 5 ); -- nValue %= 100000; -- } -- if( nValue >= 10000 ) -- { -- lclAppendPow10( rText, nValue / 10000, 4 ); -- nValue %= 10000; -- } -- if( nValue >= 1000 ) -- { -- lclAppendPow10( rText, nValue / 1000, 3 ); -- nValue %= 1000; -- } -- if( nValue >= 100 ) -- { -- lclAppendPow10( rText, nValue / 100, 2 ); -- nValue %= 100; -- } -- if( nValue <= 0 ) -- return; -- -- sal_Int32 nTen = nValue / 10; -- sal_Int32 nOne = nValue % 10; -- if( nTen >= 1 ) -- { -- if( nTen >= 3 ) -- lclAppendDigit( rText, nTen ); -- else if( nTen == 2 ) -- rText.append( UTF8_TH_20 ); -- rText.append( UTF8_TH_10 ); -- } -- if( (nTen > 0) && (nOne == 1) ) -- rText.append( UTF8_TH_11 ); -- else if( nOne > 0 ) -- lclAppendDigit( rText, nOne ); --} -- --} // namespace -- --void ScInterpreter::ScBahtText() --{ -- sal_uInt8 nParamCount = GetByte(); -- if ( !MustHaveParamCount( nParamCount, 1 ) ) -- return; -- -- double fValue = GetDouble(); -- if( nGlobalError != FormulaError::NONE ) -- { -- PushError( nGlobalError); -- return; -- } -- -- // sign -- bool bMinus = fValue < 0.0; -- fValue = std::abs( fValue ); -- -- // round to 2 digits after decimal point, fValue contains Satang as integer -- fValue = ::rtl::math::approxFloor( fValue * 100.0 + 0.5 ); -- -- // split Baht and Satang -- double fBaht = 0.0; -- sal_Int32 nSatang = 0; -- lclSplitBlock( fBaht, nSatang, fValue, 100.0 ); -- -- OStringBuffer aText; -- -- // generate text for Baht value -- if( fBaht == 0.0 ) -- { -- if( nSatang == 0 ) -- aText.append( UTF8_TH_0 ); -- } -- else while( fBaht > 0.0 ) -- { -- OStringBuffer aBlock; -- sal_Int32 nBlock = 0; -- lclSplitBlock( fBaht, nBlock, fBaht, 1.0e6 ); -- if( nBlock > 0 ) -- lclAppendBlock( aBlock, nBlock ); -- // add leading "million", if there will come more blocks -- if( fBaht > 0.0 ) -- aBlock.insert( 0, UTF8_TH_1E6 ); -- -- aText.insert(0, aBlock.makeStringAndClear()); -- } -- if (!aText.isEmpty()) -- aText.append( UTF8_TH_BAHT ); -- -- // generate text for Satang value -- if( nSatang == 0 ) -- { -- aText.append( UTF8_TH_DOT0 ); -- } -- else -- { -- lclAppendBlock( aText, nSatang ); -- aText.append( UTF8_TH_SATANG ); -- } -- -- // add the minus sign -- if( bMinus ) -- aText.insert( 0, UTF8_TH_MINUS ); -- -- PushString( OStringToOUString(aText.makeStringAndClear(), RTL_TEXTENCODING_UTF8) ); --} -- - void ScInterpreter::ScGetPivotData() - { - sal_uInt8 nParamCount = GetByte(); --- -2.33.1 - diff --git a/0001-drop-checksum-assert-that-is-platform-dependant.patch b/0001-drop-checksum-assert-that-is-platform-dependant.patch deleted file mode 100644 index 3c9d2e8..0000000 --- a/0001-drop-checksum-assert-that-is-platform-dependant.patch +++ /dev/null @@ -1,49 +0,0 @@ -From dad09df8cf2fd44105c7224203d76d0273ed04d9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 8 Feb 2022 08:37:34 +0000 -Subject: [PATCH] drop checksum assert that is platform dependant - -Change-Id: I3459d753a8f655ca34ecf6c25fdfd9655687c6d1 ---- - emfio/qa/cppunit/emf/EmfImportTest.cxx | 11 ----------- - 1 file changed, 11 deletions(-) - -diff --git a/emfio/qa/cppunit/emf/EmfImportTest.cxx b/emfio/qa/cppunit/emf/EmfImportTest.cxx -index 0f0bd76d199d..c9c2bcb94219 100644 ---- a/emfio/qa/cppunit/emf/EmfImportTest.cxx -+++ b/emfio/qa/cppunit/emf/EmfImportTest.cxx -@@ -853,10 +853,6 @@ void Test::TestBitBltStretchBltWMF() - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[1]", "xy23", "406"); - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[1]", "height", "10"); - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[1]", "width", "10"); --#if !defined(MACOSX) \ -- && !defined(_WIN32) // TODO Bitmap display needs to be aligned for macOS and Windows -- assertXPath(pDocument, aXPathPrefix + "mask/bitmap[1]", "checksum", "747141214295528493"); --#endif - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[1]/data", 10); - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[1]/data[1]", "row", - "000000,000000,000000,000000,000000,000000,000000,000000,000000,000000"); -@@ -874,10 +870,6 @@ void Test::TestBitBltStretchBltWMF() - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[2]", "height", "10"); - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[2]", "width", "10"); - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[2]/data", 10); --#if !defined(MACOSX) \ -- && !defined(_WIN32) // TODO Bitmap display needs to be aligned for macOS and Windows -- assertXPath(pDocument, aXPathPrefix + "mask/bitmap[2]", "checksum", "3134789313661517563"); --#endif - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[2]/data[1]", "row", - "000000,00001c,000038,000055,000071,00008d,0000aa,0000c6,0000e2,0000ff"); - assertXPath(pDocument, aXPathPrefix + "mask/bitmap[2]/data[5]", "row", -@@ -1052,9 +1044,6 @@ void Test::TestStretchDIBWMF() - - assertXPath(pDocument, aXPathPrefix + "mask/bitmap", "height", "10"); - assertXPath(pDocument, aXPathPrefix + "mask/bitmap", "width", "10"); --#if !defined(MACOSX) // TODO DIB display needs to be aligned for macOS -- assertXPath(pDocument, aXPathPrefix + "mask/bitmap", "checksum", "14148300367030905133"); --#endif - assertXPath(pDocument, aXPathPrefix + "mask/bitmap/data", 10); - assertXPath(pDocument, aXPathPrefix + "/mask/bitmap/data[1]", "row", - "000000,00001c,000038,000055,000071,00008d,0000aa,0000c6,0000e2,0000ff"); --- -2.34.1 - diff --git a/0001-fix-big-endian-hsql-to-firebird-migration.patch b/0001-fix-big-endian-hsql-to-firebird-migration.patch deleted file mode 100644 index b9f1050..0000000 --- a/0001-fix-big-endian-hsql-to-firebird-migration.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 099a72eb674ca25e348747229a188da5d00a58e1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Mon, 7 Feb 2022 12:17:03 +0000 -Subject: [PATCH] fix big-endian hsql to firebird migration - -Change-Id: I047d2366ad80eca701924cb0f66b6b1bcfdcac5b ---- - connectivity/source/drivers/firebird/PreparedStatement.cxx | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx -index 9225c3b26895..39fef04a185c 100644 ---- a/connectivity/source/drivers/firebird/PreparedStatement.cxx -+++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx -@@ -207,7 +207,8 @@ void SAL_CALL OPreparedStatement::setString(sal_Int32 nParameterIndex, - { - str = str.copy(0, max_varchar_len); - } -- const auto nLength = str.getLength(); -+ const sal_uInt16 nLength = str.getLength(); -+ static_assert(sizeof(nLength) == 2, "must match dest memcpy len"); - memcpy(pVar->sqldata, &nLength, 2); - // Actual data - memcpy(pVar->sqldata + 2, str.getStr(), str.getLength()); -@@ -908,7 +909,7 @@ void SAL_CALL OPreparedStatement::setBytes(sal_Int32 nParameterIndex, - { - xBytesCopy.realloc( nMaxSize ); - } -- const auto nSize = xBytesCopy.getLength(); -+ const sal_uInt16 nSize = xBytesCopy.getLength(); - // 8000 corresponds to value from lcl_addDefaultParameters - // in dbaccess/source/filter/hsqldb/createparser.cxx - if (nSize > 8000) -@@ -916,6 +917,7 @@ void SAL_CALL OPreparedStatement::setBytes(sal_Int32 nParameterIndex, - free(pVar->sqldata); - pVar->sqldata = static_cast(malloc(sizeof(char) * nSize + 2)); - } -+ static_assert(sizeof(nSize) == 2, "must match dest memcpy len"); - // First 2 bytes indicate string size - memcpy(pVar->sqldata, &nSize, 2); - // Actual data --- -2.33.1 - diff --git a/0001-fix-direct-leaks-in-vcl-cppunit-tests.patch b/0001-fix-direct-leaks-in-vcl-cppunit-tests.patch deleted file mode 100644 index 2708799..0000000 --- a/0001-fix-direct-leaks-in-vcl-cppunit-tests.patch +++ /dev/null @@ -1,401 +0,0 @@ -From e60f4c7cc51bb58b4e42bb47b37209fa0e6b3400 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 4 Feb 2022 15:02:17 +0000 -Subject: [PATCH] fix direct leaks in vcl cppunit tests - -the uses of new are wholly unnecessary - -Change-Id: Id7238be6e73567add8a0d3ed6dc9f3262e15c043 -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129435 -Tested-by: Jenkins -Reviewed-by: Xisco Fauli ---- - vcl/qa/cppunit/text.cxx | 276 ++++++++++++++++++++-------------------- - 1 file changed, 138 insertions(+), 138 deletions(-) - -diff --git a/vcl/qa/cppunit/text.cxx b/vcl/qa/cppunit/text.cxx -index eef1478286d5..072a0d0a1f98 100644 ---- a/vcl/qa/cppunit/text.cxx -+++ b/vcl/qa/cppunit/text.cxx -@@ -425,67 +425,67 @@ void VclTextTest::testImplLayoutRuns_AddPos() - aRuns.AddPos(6, true); // add RTL marker glyph - aRuns.AddPos(7, false); - -- int* pCharPos = new int(0); -- bool* pRightToLeftMarker = new bool(false); -+ int nCharPos(0); -+ bool bRightToLeftMarker(false); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(1, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(1, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(2, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(2, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(3, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(3, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(4, *pCharPos); -- CPPUNIT_ASSERT(*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(4, nCharPos); -+ CPPUNIT_ASSERT(bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(5, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(5, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(6, *pCharPos); -- CPPUNIT_ASSERT(*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(6, nCharPos); -+ CPPUNIT_ASSERT(bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(7, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(7, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - - // no next position, we are running off the end -- CPPUNIT_ASSERT(!aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -+ CPPUNIT_ASSERT(!aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); - - aRuns.ResetPos(); - - int nMinRunPos, nEndRunPos; -- bool* pRightToLeft = new bool(false); -+ bool bRightToLeft(false); - -- CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, pRightToLeft)); -+ CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, &bRightToLeft)); - CPPUNIT_ASSERT_EQUAL(1, nMinRunPos); - CPPUNIT_ASSERT_EQUAL(4, nEndRunPos); -- CPPUNIT_ASSERT(!*pRightToLeft); -+ CPPUNIT_ASSERT(!bRightToLeft); - - aRuns.NextRun(); -- CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, pRightToLeft)); -+ CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, &bRightToLeft)); - CPPUNIT_ASSERT_EQUAL(4, nMinRunPos); - CPPUNIT_ASSERT_EQUAL(5, nEndRunPos); -- CPPUNIT_ASSERT(*pRightToLeft); -+ CPPUNIT_ASSERT(bRightToLeft); - - aRuns.NextRun(); -- CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, pRightToLeft)); -+ CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, &bRightToLeft)); - CPPUNIT_ASSERT_EQUAL(5, nMinRunPos); - CPPUNIT_ASSERT_EQUAL(6, nEndRunPos); -- CPPUNIT_ASSERT(!*pRightToLeft); -+ CPPUNIT_ASSERT(!bRightToLeft); - - aRuns.NextRun(); -- CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, pRightToLeft)); -+ CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, &bRightToLeft)); - CPPUNIT_ASSERT_EQUAL(6, nMinRunPos); - CPPUNIT_ASSERT_EQUAL(7, nEndRunPos); -- CPPUNIT_ASSERT(*pRightToLeft); -+ CPPUNIT_ASSERT(bRightToLeft); - - // test clear - aRuns.Clear(); -@@ -500,63 +500,63 @@ void VclTextTest::testImplLayoutRuns_AddRuns() - aRuns.AddRun(5, 6, false); - aRuns.AddRun(6, 7, true); - -- int* pCharPos = new int(0); -- bool* pRightToLeftMarker = new bool(false); -+ int nCharPos(0); -+ bool bRightToLeftMarker(false); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(1, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(1, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(2, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(2, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(3, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(3, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(4, *pCharPos); -- CPPUNIT_ASSERT(*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(4, nCharPos); -+ CPPUNIT_ASSERT(bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(5, *pCharPos); -- CPPUNIT_ASSERT(!*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(5, nCharPos); -+ CPPUNIT_ASSERT(!bRightToLeftMarker); - -- CPPUNIT_ASSERT(aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -- CPPUNIT_ASSERT_EQUAL(6, *pCharPos); -- CPPUNIT_ASSERT(*pRightToLeftMarker); -+ CPPUNIT_ASSERT(aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); -+ CPPUNIT_ASSERT_EQUAL(6, nCharPos); -+ CPPUNIT_ASSERT(bRightToLeftMarker); - - // no next position, we are running off the end -- CPPUNIT_ASSERT(!aRuns.GetNextPos(pCharPos, pRightToLeftMarker)); -+ CPPUNIT_ASSERT(!aRuns.GetNextPos(&nCharPos, &bRightToLeftMarker)); - - aRuns.ResetPos(); - - int nMinRunPos, nEndRunPos; -- bool* pRightToLeft = new bool(false); -+ bool bRightToLeft(false); - -- CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, pRightToLeft)); -+ CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, &bRightToLeft)); - CPPUNIT_ASSERT_EQUAL(1, nMinRunPos); - CPPUNIT_ASSERT_EQUAL(4, nEndRunPos); -- CPPUNIT_ASSERT(!*pRightToLeft); -+ CPPUNIT_ASSERT(!bRightToLeft); - - aRuns.NextRun(); -- CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, pRightToLeft)); -+ CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, &bRightToLeft)); - CPPUNIT_ASSERT_EQUAL(4, nMinRunPos); - CPPUNIT_ASSERT_EQUAL(5, nEndRunPos); -- CPPUNIT_ASSERT(*pRightToLeft); -+ CPPUNIT_ASSERT(bRightToLeft); - - aRuns.NextRun(); -- CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, pRightToLeft)); -+ CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, &bRightToLeft)); - CPPUNIT_ASSERT_EQUAL(5, nMinRunPos); - CPPUNIT_ASSERT_EQUAL(6, nEndRunPos); -- CPPUNIT_ASSERT(!*pRightToLeft); -+ CPPUNIT_ASSERT(!bRightToLeft); - - aRuns.NextRun(); -- CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, pRightToLeft)); -+ CPPUNIT_ASSERT(aRuns.GetRun(&nMinRunPos, &nEndRunPos, &bRightToLeft)); - CPPUNIT_ASSERT_EQUAL(6, nMinRunPos); - CPPUNIT_ASSERT_EQUAL(7, nEndRunPos); -- CPPUNIT_ASSERT(*pRightToLeft); -+ CPPUNIT_ASSERT(bRightToLeft); - } - - void VclTextTest::testImplLayoutRuns_PosIsInRun() -@@ -603,23 +603,23 @@ void VclTextTest::testImplLayoutArgsBiDiStrong() - SalLayoutFlags::BiDiStrong, LanguageTag(LANGUAGE_NONE), - nullptr); - -- int* nMinRunPos = new int(0); -- int* nEndRunPos = new int(0); -- bool* pRTL = new bool(false); -+ int nMinRunPos(0); -+ int nEndRunPos(0); -+ bool bRTL(false); - -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(0, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(19, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(0, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(19, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); - -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(20, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(51, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(20, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(51, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); - -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(20, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(51, *nEndRunPos); -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(20, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(51, nEndRunPos); - } - - void VclTextTest::testImplLayoutArgsBiDiRtl() -@@ -629,29 +629,29 @@ void VclTextTest::testImplLayoutArgsBiDiRtl() - vcl::text::ImplLayoutArgs aArgs(sTestString, 0, sTestString.getLength(), - SalLayoutFlags::BiDiRtl, LanguageTag(LANGUAGE_NONE), nullptr); - -- int* nMinRunPos = new int(0); -- int* nEndRunPos = new int(0); -- bool* pRTL = new bool(false); -- -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(45, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(51, *nEndRunPos); -- CPPUNIT_ASSERT(*pRTL); -- -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(21, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(45, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -- -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(20, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(21, *nEndRunPos); -- CPPUNIT_ASSERT(*pRTL); -- -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(0, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(19, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -+ int nMinRunPos(0); -+ int nEndRunPos(0); -+ bool bRTL(false); -+ -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(45, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(51, nEndRunPos); -+ CPPUNIT_ASSERT(&bRTL); -+ -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(21, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(45, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); -+ -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(20, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(21, nEndRunPos); -+ CPPUNIT_ASSERT(bRTL); -+ -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(0, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(19, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); - } - - void VclTextTest::testImplLayoutArgsRightAlign() -@@ -662,24 +662,24 @@ void VclTextTest::testImplLayoutArgsRightAlign() - SalLayoutFlags::RightAlign, LanguageTag(LANGUAGE_NONE), - nullptr); - -- int* nMinRunPos = new int(0); -- int* nEndRunPos = new int(0); -- bool* pRTL = new bool(false); -+ int nMinRunPos(0); -+ int nEndRunPos(0); -+ bool bRTL(false); - -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(0, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(19, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(0, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(19, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); - -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(20, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(45, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(20, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(45, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); - -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(45, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(51, *nEndRunPos); -- CPPUNIT_ASSERT(*pRTL); -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(45, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(51, nEndRunPos); -+ CPPUNIT_ASSERT(bRTL); - } - - void VclTextTest::testImplLayoutArgs_PrepareFallback_precalculatedglyphs() -@@ -702,29 +702,29 @@ void VclTextTest::testImplLayoutArgs_PrepareFallback_precalculatedglyphs() - - aArgs.PrepareFallback(pGlyphsImpl); - -- int* nMinRunPos = new int(0); -- int* nEndRunPos = new int(0); -- bool* pRTL = new bool(false); -- -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(0, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(3, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -- -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(4, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(9, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -- -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(11, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(17, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -- -- aArgs.GetNextRun(nMinRunPos, nEndRunPos, pRTL); -- CPPUNIT_ASSERT_EQUAL(18, *nMinRunPos); -- CPPUNIT_ASSERT_EQUAL(22, *nEndRunPos); -- CPPUNIT_ASSERT(!*pRTL); -+ int nMinRunPos(0); -+ int nEndRunPos(0); -+ bool bRTL(false); -+ -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(0, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(3, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); -+ -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(4, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(9, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); -+ -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(11, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(17, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); -+ -+ aArgs.GetNextRun(&nMinRunPos, &nEndRunPos, &bRTL); -+ CPPUNIT_ASSERT_EQUAL(18, nMinRunPos); -+ CPPUNIT_ASSERT_EQUAL(22, nEndRunPos); -+ CPPUNIT_ASSERT(!bRTL); - } - - CPPUNIT_TEST_SUITE_REGISTRATION(VclTextTest); --- -2.33.1 - diff --git a/0001-the-real-font-used-for-Roman-is-arbitrary.patch b/0001-the-real-font-used-for-Roman-is-arbitrary.patch deleted file mode 100644 index e6922f4..0000000 --- a/0001-the-real-font-used-for-Roman-is-arbitrary.patch +++ /dev/null @@ -1,103 +0,0 @@ -From ccc57428482903923e6df745ea62f5cad8c64bbf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 3 Feb 2022 16:05:48 +0000 -Subject: [PATCH] the real font used for 'Roman' is arbitrary - -the font name isn't a typical semi-standard one so it neither exists nor -has a standard fallback. binary-hack "Roman" to "Arial" which is -conveniently the same length and does have a standard fallback of -"Liberation Sans" which we can add a dependency on via more_fonts - -Change-Id: I1d9b8294f67a00a1e5cabe38b71467e66b83aedf -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129473 -Tested-by: Jenkins -Reviewed-by: Adolfo Jayme Barrientos ---- - emfio/CppunitTest_emfio_emf.mk | 2 ++ - emfio/CppunitTest_emfio_wmf.mk | 1 + - .../wmf/data/tdf88163-non-placeable.wmf | Bin 1268 -> 1268 bytes - .../wmf/data/tdf88163-wrong-font-size.wmf | Bin 1290 -> 1290 bytes - emfio/qa/cppunit/wmf/wmfimporttest.cxx | 13 +++---------- - 5 files changed, 6 insertions(+), 10 deletions(-) - -diff --git a/emfio/CppunitTest_emfio_emf.mk b/emfio/CppunitTest_emfio_emf.mk -index 5b32187b7ea8..1714755a4fb1 100644 ---- a/emfio/CppunitTest_emfio_emf.mk -+++ b/emfio/CppunitTest_emfio_emf.mk -@@ -40,6 +40,8 @@ $(eval $(call gb_CppunitTest_use_vcl,emfio_emf)) - - $(eval $(call gb_CppunitTest_use_rdb,emfio_emf,services)) - -+$(eval $(call gb_CppunitTest_use_more_fonts,emfio_emf)) -+ - $(eval $(call gb_CppunitTest_use_configuration,emfio_emf)) - - # vim: set noet sw=4 ts=4: -diff --git a/emfio/CppunitTest_emfio_wmf.mk b/emfio/CppunitTest_emfio_wmf.mk -index ec67bff3a9b4..44f0a1b273b7 100644 ---- a/emfio/CppunitTest_emfio_wmf.mk -+++ b/emfio/CppunitTest_emfio_wmf.mk -@@ -40,6 +40,7 @@ $(eval $(call gb_CppunitTest_use_components,emfio_wmf,\ - unotools/util/utl \ - )) - -+$(eval $(call gb_CppunitTest_use_more_fonts,emfio_wmf)) - $(eval $(call gb_CppunitTest_use_configuration,emfio_wmf)) - $(eval $(call gb_CppunitTest_use_sdk_api,emfio_wmf)) - $(eval $(call gb_CppunitTest_use_ure,emfio_wmf)) -diff --git a/emfio/qa/cppunit/wmf/data/tdf88163-non-placeable.wmf b/emfio/qa/cppunit/wmf/data/tdf88163-non-placeable.wmf -index b39514bd1b5cefc721175680ddca05cfe2341c15..6d27691f0d2d9dbf9936996b077f1ec64e255d83 100644 -GIT binary patch -delta 16 -Xcmeyu`Gs?W7OP`XW@64p{i7@ZI9&!z - -delta 16 -Xcmeyu`Gs?W7Hd#`Zerd>{i7@ZIRpk^ - -diff --git a/emfio/qa/cppunit/wmf/data/tdf88163-wrong-font-size.wmf b/emfio/qa/cppunit/wmf/data/tdf88163-wrong-font-size.wmf -index edcab8aea63552e27ee3b75a0bf7bff74b3966f5..4902ba18d16bb567cb58c93c7a4167311cf05b19 100644 -GIT binary patch -delta 16 -XcmeC;>f)Nf)N 3000); -- CPPUNIT_ASSERT_MESSAGE(fileName.toUtf8().getStr(), x.toInt32() < 3500); -+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3272), x.toInt32()); - - // Fails without the fix: Expected: 7359, Actual: 7336 - assertXPath(pDoc, "/metafile/push[2]/textarray[1]", "x", "7359"); -@@ -157,12 +153,9 @@ void WmfTest::testTdf88163PlaceableWmf() - - // These values come from the fix for tdf#88163 - -- // Font 'Roman' and its height can vary according to the platform - // The fix does not affect the font size -- // Linux: 300 - Mac: 309 - Windows: 316 - auto x = getXPath(pDoc, "/metafile/push[2]/font[1]", "height"); -- CPPUNIT_ASSERT_MESSAGE(fileName.toUtf8().getStr(), x.toInt32() > 290); -- CPPUNIT_ASSERT_MESSAGE(fileName.toUtf8().getStr(), x.toInt32() < 320); -+ CPPUNIT_ASSERT_EQUAL(sal_Int32(313), x.toInt32()); - - // Fails without the fix: Expected: 1900, Actual: 19818 - assertXPath(pDoc, "/metafile", "height", "1900"); --- -2.33.1 - diff --git a/0001-this-test-assumes-KacstBook-has-no-Latin-glyphs.patch b/0001-this-test-assumes-KacstBook-has-no-Latin-glyphs.patch deleted file mode 100644 index 309eb2c..0000000 --- a/0001-this-test-assumes-KacstBook-has-no-Latin-glyphs.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 32ec6094e81d292346f83db6e18a3daec99bd2ff Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 4 Feb 2022 15:13:28 +0000 -Subject: [PATCH] this test assumes KacstBook has no Latin glyphs - -which is true for the one bundled with LibreOffice but is not -true for the fedora one (kacst-book-fonts-2.0-26.fc35), but -neither of them have Cyrillic glyphs - -Change-Id: Ide8b84502886c7b9e0bc4fcef4685b4b89ec2bc3 - -test fails with both fedora KacstBook and bundled KacstBook installed - -fedora KacstBook ver is less than bundled KacstBook ver so bundled is -preferred, bundled KacstBook has no Latin glyphs, but glyph fallback -finds system one and sees it has the missing glyphs, determines that the -whole thing can be done in the fallback font, so the toplevel is unused -and so "invalid" and this test fails on checking that. - -The test is supposed to ensure that glyph caching gives the same result -as uncached, which it does, so just assert if there is a difference -between cached and uncached - -Change-Id: I3c424a17f3e544aa64f4af98e0c151fc00b2e6e5 ---- - vcl/qa/cppunit/complextext.cxx | 4 +--- - vcl/qa/cppunit/text.cxx | 6 ++++-- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/vcl/qa/cppunit/complextext.cxx b/vcl/qa/cppunit/complextext.cxx -index 21e1e58f96ac..5d9ac92f1f69 100644 ---- a/vcl/qa/cppunit/complextext.cxx -+++ b/vcl/qa/cppunit/complextext.cxx -@@ -172,13 +172,11 @@ static void testCachedGlyphs( const OUString& aText, const OUString& aFontName = - std::unique_ptr pLayout1 = pOutputDevice->ImplLayout( - aText, 0, aText.getLength(), Point(0, 0), 0, {}, SalLayoutFlags::GlyphItemsOnly); - SalLayoutGlyphs aGlyphs1 = pLayout1->GetGlyphs(); -- CPPUNIT_ASSERT_MESSAGE(message, aGlyphs1.IsValid()); -- CPPUNIT_ASSERT_MESSAGE(message, aGlyphs1.Impl(0) != nullptr); - // Reuse the cached glyphs to get glyphs again. - std::unique_ptr pLayout2 = pOutputDevice->ImplLayout( - aText, 0, aText.getLength(), Point(0, 0), 0, {}, SalLayoutFlags::GlyphItemsOnly, nullptr, &aGlyphs1); - SalLayoutGlyphs aGlyphs2 = pLayout2->GetGlyphs(); -- CPPUNIT_ASSERT_MESSAGE(message, aGlyphs2.IsValid()); -+ CPPUNIT_ASSERT_EQUAL_MESSAGE(message, aGlyphs1.IsValid(), aGlyphs2.IsValid()); - // And check it's the same. - for( int level = 0; level < MAX_FALLBACK; ++level ) - { -diff --git a/vcl/qa/cppunit/text.cxx b/vcl/qa/cppunit/text.cxx -index 072a0d0a1f98..3647589a38d1 100644 ---- a/vcl/qa/cppunit/text.cxx -+++ b/vcl/qa/cppunit/text.cxx -@@ -690,7 +690,8 @@ void VclTextTest::testImplLayoutArgs_PrepareFallback_precalculatedglyphs() - ScopedVclPtrInstance pVirDev; - pVirDev->SetFont(aFont); - -- const OUString sTestString = "The quick\n jumped over"; -+ const OString sUTF8String(u8"Тхе яуицк\n ыумпед овер"); -+ const OUString sTestString(OUString::fromUtf8(sUTF8String)); - std::unique_ptr pLayout - = pVirDev->ImplLayout(sTestString, 0, sTestString.getLength(), Point(0, 0), 0, {}, - SalLayoutFlags::GlyphItemsOnly); -@@ -698,7 +699,8 @@ void VclTextTest::testImplLayoutArgs_PrepareFallback_precalculatedglyphs() - SalLayoutGlyphsImpl* pGlyphsImpl = aGlyphs.Impl(1); - - vcl::text::ImplLayoutArgs aArgs(sTestString, 0, sTestString.getLength(), -- SalLayoutFlags::BiDiRtl, LanguageTag(LANGUAGE_LATIN), nullptr); -+ SalLayoutFlags::BiDiRtl, LanguageTag(LANGUAGE_RUSSIAN), -+ nullptr); - - aArgs.PrepareFallback(pGlyphsImpl); - --- -2.33.1 - diff --git a/libreoffice.spec b/libreoffice.spec index a863532..92c0261 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -1,5 +1,5 @@ # download path contains version without the last (fourth) digit -%global libo_version 7.3.0 +%global libo_version 7.3.1 # Should contain .alphaX / .betaX, if this is pre-release (actually # pre-RC) version. The pre-release string is part of tarball file names, # so we need a way to define it easily at one place. @@ -57,7 +57,7 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 Version: %{libo_version}.3 -Release: 3%{?libo_prerelease}%{?dist} +Release: 1%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0 URL: http://www.libreoffice.org/ @@ -245,14 +245,6 @@ Patch1: 0001-disble-tip-of-the-day-dialog-by-default.patch Patch2: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch # backported Patch3: 0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch -Patch4: 0001-the-real-font-used-for-Roman-is-arbitrary.patch -Patch5: 0001-fix-direct-leaks-in-vcl-cppunit-tests.patch -Patch6: 0001-this-test-assumes-KacstBook-has-no-Latin-glyphs.patch -Patch7: 0001-Avoid-calling-AVX-code-in-library-static-initializat.patch -Patch8: 0001-fix-big-endian-hsql-to-firebird-migration.patch -Patch9: 0001-drop-checksum-assert-that-is-platform-dependant.patch -# see if ICE still happens -Patch10: 0001-disable-ICEing-function-under-x86.patch # not upstreamed Patch500: 0001-disable-libe-book-support.patch @@ -2184,6 +2176,9 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : %{_includedir}/LibreOfficeKit %changelog +* Sat Mar 05 2022 Caolán McNamara - 1:7.3.1.3-1 +- 7.3.1 release + * Sat Feb 05 2022 Jiri Vanek - 1:7.3.0.3-3 - Rebuilt for java-17-openjdk as system jdk diff --git a/sources b/sources index bf576ae..dc56d28 100644 --- a/sources +++ b/sources @@ -4,10 +4,10 @@ SHA512 (a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip) = 2d3835f7ac356805025 SHA512 (f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf) = 6a6d131dad5191614950a49323ae6d9385afe331983c1c85fde82ce6ee816051d95dde9ef90658b8f0a8a0a21754e72ff724bf41f6b96c046b7b4c2660f7095b SHA512 (libreoffice-multiliblauncher.sh) = db532afdf5000bc66f9e02c7d0ab586468466f63f8f0bdb204832581e8277c5c59f688fa096548d642411cb8c46e8de4a744676b4e624c075262cfd6945138cd SHA512 (dtoa-20180411.tgz) = 722aa814c33a34bfffe6c0201b0035cc3b65854a0ba9ae2f51620a89d68019353e2c306651b35bca337186b22b2e9865ef3c5e3df8e9328006f882e4577f8c85 -SHA512 (libreoffice-7.3.0.3.tar.xz) = 408b98184afc0721f922768f60e877fd756b656b4fd30cf6ad629bd32ba323fb1f4b052c8427b11395253b4ed67f9a1fd20ef3f7fd5945abc0f8cfb1f40c5d47 -SHA512 (libreoffice-7.3.0.3.tar.xz.asc) = 894ed8f6153fd70194f6f299b5f8406ea1245a54930ec154c6e04763eb2aec7fa41bfd23b0d378df68391659b436f1225fc00ddfcc3719c456d47516fffe2716 -SHA512 (libreoffice-help-7.3.0.3.tar.xz) = 6d6fb4968ce7b40291c9426183d2d031761e5d3421d66adda0b0e1cf57c1aeb68252cec561119935c68b6239add8ba7ee686ce6365ce84cc2ce4f85346fe2aec -SHA512 (libreoffice-help-7.3.0.3.tar.xz.asc) = a4b0d295cacde6eb57dffd35ffbbb462c4e0e9ef4459f59f8585cfd7a1d8b56a3cadbc40f1709351e0d1a7143e03ad908c8a6ef7c26a8c768584a04e0efa86be -SHA512 (libreoffice-translations-7.3.0.3.tar.xz) = 0a7b28ec242159dc6d4fc9c58a966b005dc7b29b6e43e6debf79bd3ab124931f1f9ab203a57f62cfbde6f0a4be43efa62d8b32eb43f317b2b743129f8deaecfb -SHA512 (libreoffice-translations-7.3.0.3.tar.xz.asc) = 7743eb40163dd561c3dfee7b07fdebd710310a50832529122e8ba13afa310e787b5bac70533a4ad82a7c26c7e40244f82d690080b41cc444eb58020e9d747748 SHA512 (libcuckoo-93217f8d391718380c508a722ab9acd5e9081233.tar.gz) = 4159dfb4d08e359feb23127e12db590260913e70774161ac9513abb5183ad6ed6d2bdfbe56fc8aa68e2fc57ee29eae67aa0180e1a7d955016884ecba2ca60ff8 +SHA512 (libreoffice-7.3.1.3.tar.xz) = d0daaee058e2cd7f1af02101b68d33c3df50b3eaae951b40c557c4e74c6f0929162fec0759fa4688cd7da41a5fa7ab4dbf867f31cad428487da2393dcb40a3d8 +SHA512 (libreoffice-7.3.1.3.tar.xz.asc) = ecc7b6e440ad277092ad2967fa1dc1eceed71bcbd175156c640fbb596f651f91f0c08b20288ed6bce0563857e05b265279a3903930e0e2ad12c83e6f7ab38dec +SHA512 (libreoffice-help-7.3.1.3.tar.xz) = cb41afc6b4c35a97a62d4263395210b3309c8a68822cecfc245217d9f93697a0bd9043801622923ed81a14d346161d56f6443ccb6e082d3ba8ddcf737653da0f +SHA512 (libreoffice-help-7.3.1.3.tar.xz.asc) = 5ce16fc3bf1249af33180822ace70ec299b65d65217b76545d3e5e22071d978578ff72fe1574418164a761fac624b5477e7776bd5885768d89a23dce525175a5 +SHA512 (libreoffice-translations-7.3.1.3.tar.xz) = 2760ff338c31ca2c763c7b72e0a031ee7ac0d0d45f0a2bc9f05d431eed62f6a08bd45b66a05f0f13d32d046e45f564cc392c0f6b05194ae92eee669ca8679ea8 +SHA512 (libreoffice-translations-7.3.1.3.tar.xz.asc) = e5cb12e107bbec06eb09744220fcdeace0991a923c9d567108781ddb4086c6d5ecebb1700420bda4dab3f278606cdcd98b898501b984f61dd38eaa62884343a7