summaryrefslogtreecommitdiffstats
path: root/external
Commit message (Collapse)AuthorAgeFilesLines
* Fix gpgmepp build with glibcMike Kaganski2022-01-172-0/+33
| | | | | | | | | | | | | posix-io.c: In function '_gpgme_io_spawn': posix-io.c:492:23: error: void value not ignored as it ought to be 492 | while ((i = closefrom (fd)) && errno == EINTR) | ^ make[1]: *** [Makefile:964: posix-io.lo] Error 1 Change-Id: I0e7abc33200ca7436c72e925447e681fd241c6a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123260 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
* Optionally generate PDBs also for nssJuergen Funk2021-11-231-1/+5
| | | | | | | | | | | | | | | | | | | | | | | Enables pdb generation for symbol builds, for: - freebl3.dll - libeay32.dll - nspr4.dll - nss3.dll - nssckbi.dll - nssdbm3.dll - nssutil3.dll - plc4.dll - plds4.dll - smime3.dll - softokn3.dll - sqlite3.dll - ssl3.dll - ssleay32.dll Change-Id: I231fdc8e8ade7b7a8b85fc76536291e0546f2eac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88673 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* avoid windres preprocessor quoting-messups with current cygwinChristian Lohmaier2021-07-013-3/+3
| | | | | | | | | | | | | | | | | | apparently fresh installs of cygwin behave differently with the windres command's quoting and treats --preprocessor='cpp foo bar' as a single file "cpp foo bar" to run instead of running "cpp" with the arguments "foo" and "bar". (-D and -I options are passed to the preprocessor automatically, so no need to prefix those with --preprocessor-arg) Change-Id: I711e968206f0769ff07152ebb9572e8b71c30cec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114965 Tested-by: Jenkins Reviewed-by: Georgy Litvinov <git@litvinovg.pro> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117600 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* Revert "avoid windres preprocessor quoting-messups with current cygwin"Armin Le Grand (Allotropia)2021-07-013-3/+3
| | | | | This reverts commit 731010a3124c92458be5c7c4839e8804d1c32463. Instead, try 15d36bdb2069cb531cabd9b3b9ffb0fb913a6bd0
* avoid windres preprocessor quoting-messups with current cygwinChristian Lohmaier2021-06-303-3/+3
| | | | | | | | | | | | | | | | | | | | apparently fresh installs of cygwin behave differently with the windres command's quoting and treats --preprocessor='cpp foo bar' as a single file "cpp foo bar" to run instead of running "cpp" with the arguments "foo" and "bar". (-D and -I options are passed to the preprocessor automatically, so no need to prefix those with --preprocessor-arg) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114965 Tested-by: Jenkins Reviewed-by: Georgy Litvinov <git@litvinovg.pro> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> (cherry picked from commit 07f1ec0af02a9ab6c1bf6e6478092ee50495afa7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114971 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 3589180bfa67bc2ef411a56c9e8bb161f6c59902) Change-Id: I711e968206f0769ff07152ebb9572e8b71c30cec
* python3: fix segfault importing ctypesMichael Stahl2021-05-172-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | on this line: CFUNCTYPE(c_int)(lambda:None) python segfaults when compiled with GCC 11. │ 0x7f7e53a5d64c <PyCFuncPtr_new+220> call 0x7f7e53a5c3d0 <GenericPyCData_new> │ │ 0x7f7e53a5d651 <PyCFuncPtr_new+225> mov %rax,%r13 │ │ 0x7f7e53a5d654 <PyCFuncPtr_new+228> test %rax,%rax │ │ 0x7f7e53a5d657 <PyCFuncPtr_new+231> je 0x7f7e53a5d990 <PyCFuncPtr_new+1056> │ │ 0x7f7e53a5d65d <PyCFuncPtr_new+237> mov 0x88(%rsp),%rax │ │ 0x7f7e53a5d665 <PyCFuncPtr_new+245> movq %r15,%xmm0 │ │ 0x7f7e53a5d66a <PyCFuncPtr_new+250> movq %rax,%xmm1 │ │ 0x7f7e53a5d66f <PyCFuncPtr_new+255> addq $0x1,(%rax) │ │ 0x7f7e53a5d673 <PyCFuncPtr_new+259> mov 0x10(%r13),%rax │ │ 0x7f7e53a5d677 <PyCFuncPtr_new+263> punpcklqdq %xmm1,%xmm0 │ │ >0x7f7e53a5d67b <PyCFuncPtr_new+267> movaps %xmm0,0x60(%r13) (rr) p/x ($r13 + 0x60) % 16 $10 = 0x8 (rr) p &self->b_value $11 = (union value *) 0x7f7e53c0fea8 b_value contains "long double" which requires 16 byte alignment so the subsequent 2 pointers have to be 16 byte aligned, so gcc generates "movaps" instruction which requires 16 byte alignment, but they're 8 byte aligned. Change-Id: I8d57311c5dc0d33ab0f7beeb6fee91299bd3de67 (cherry picked from commit 6a38eafc17c7b1b8972e648db19dc841c3f9902e)
* external/libwpd: Missing include for size_tStephan Bergmann2021-05-142-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | ...as now reported when building with recent trunk GCC/libstdc++ on Linux: > In file included from WPXContentListener.cpp:26: > In file included from ./WPXContentListener.h:29: > ./WPXTable.h:56:31: error: unknown type name 'size_t'; did you mean 'std::size_t'? > const WPXTableCell *getCell(size_t i, size_t j) > ^~~~~~ > std::size_t Change-Id: Ic20240f01c7b0305cb87ababf53a3aaf66072d61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105324 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 8d378abf1de0a47517427c086da26588f846592a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115000 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 524cfb93d4033917ad20c718d538235078d068d5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115503 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit fdbc4995522167cc64b6b9ec3f9d523c75e52511)
* exteranl/coinmp: Fix build with recent GCC 11 trunkStephan Bergmann2021-05-142-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It had started to fail for me now with > ~/gcc/trunk/inst/bin/g++ -DHAVE_CONFIG_H -I. -I. -O -MT CoinFinite.lo -MD -MP -MF .deps/CoinFinite.Tpo -c CoinFinite.cpp -fPIC -DPIC -o .libs/CoinFinite.o > CoinFinite.cpp: In function 'bool CoinFinite(double)': > CoinFinite.cpp:38:19: error: 'DBL_MAX' was not declared in this scope > 38 | return val != DBL_MAX && val != -DBL_MAX; > | ^~~~~~~ > CoinFinite.cpp:8:1: note: 'DBL_MAX' is defined in header '<cfloat>'; did you forget to '#include <cfloat>'? > 7 | #include "CoinUtilsConfig.h" > +++ |+#include <cfloat> > 8 | because of a missing -DCOINUTILS_BUILD. Which in turn was caused by workdir/UnpackedTarball/coinmp/CoinUtils/configure (see workdir/UnpackedTarball/coinmp/CoinUtils/config.log), which first tries to determine an ac_declaration that would apparently be a suitable declaration of `exit` without actually including <stdlib.h> in a C++ file. It settles on > configure:3551: ~/gcc/trunk/inst/bin/g++ -c -g -O2 conftest.cc >&5 > conftest.cc:15:17: warning: 'void std::exit(int)' has not been declared within 'std' > 15 | extern "C" void std::exit (int) throw (); using std::exit; > | ^~~ > <built-in>: note: only here as a 'friend' > configure:3557: $? = 0 (which generates a warning, but no error with the given g++ invocation). The determined ac_declaration value is then included in confdefs.h, causing the later > configure:4014: ~/gcc/trunk/inst/bin/g++ -o conftest -O3 -pipe -DNDEBUG -pedantic-errors -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DCOINUTILS_BUILD -Wl,-z,origin -Wl,-rpath,\$$ORIGIN conftest.cc >&5 > conftest.cc:15:17: error: 'void std::exit(int)' has not been declared within 'std' > 15 | extern "C" void std::exit (int) throw (); using std::exit; > | ^~~ > <built-in>: note: only here as a 'friend' > configure:4020: $? = 1 > configure: failed program was: > | /* confdefs.h. */ > | > | #define PACKAGE_NAME "CoinUtils" > | #define PACKAGE_TARNAME "coinutils" > | #define PACKAGE_VERSION "2.9.11" > | #define PACKAGE_STRING "CoinUtils 2.9.11" > | #define PACKAGE_BUGREPORT "http://projects.coin-or.org/CoinUtils" > | #define COINUTILS_VERSION "2.9.11" > | #define COINUTILS_VERSION_MAJOR 2 > | #define COINUTILS_VERSION_MINOR 9 > | #define COINUTILS_VERSION_RELEASE 11 > | #define COIN_COINUTILS_VERBOSITY 0 > | #define COIN_COINUTILS_CHECKLEVEL 0 > | #ifdef __cplusplus > | extern "C" void std::exit (int) throw (); using std::exit; > | #endif > | /* end confdefs.h. */ > | > | int > | main () > | { > | int i=0; i++; > | ; > | return 0; > | } > configure:4045: WARNING: The flags CXXFLAGS="-O3 -pipe -DNDEBUG -pedantic-errors -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DCOINUTILS_BUILD" do not work. I will now just try '-O', but you might want to set CXXFLAGS manually. to fail, because its g++ invocation including -pedantic-errors turns that > 'void std::exit(int)' has not been declared within 'std' warning into an error. There were similar build failures in the Cgl, > ~/gcc/trunk/inst/bin/g++ -DHAVE_CONFIG_H -I. -I. -I~/lo/core/workdir/UnpackedTarball/coinmp/CoinUtils/src -DCOIN_HAS_CLP -O -MT ClpCholeskyDense.lo -MD -MP -MF .deps/ClpCholeskyDense.Tpo -c ClpCholeskyDense.cpp -fPIC -DPIC -o .libs/ClpCholeskyDense.o > In file included from ClpCholeskyDense.cpp:11: > ClpHelperFunctions.hpp:16:4: error: #error "don't have header file for math" > 16 | # error "don't have header file for math" > | ^~~~~ > In file included from ClpCholeskyDense.cpp:11: > ClpHelperFunctions.hpp: In function 'double CoinSqrt(double)': > ClpHelperFunctions.hpp:81:13: error: 'sqrt' was not declared in this scope > 81 | return sqrt(x); > | ^~~~ and Clp, > ~/gcc/trunk/inst/bin/g++ -DHAVE_CONFIG_H -I. -I. -I.. -I./.. -I./../CglGomory -I~/lo/core/workdir/UnpackedTarball/coinmp/CoinUtils/src -I~/lo/core/workdir/UnpackedTarball/coinmp/Osi/src/Osi -I~/lo/core/workdir/UnpackedTarball/coinmp/CoinUtils/src -I~/lo/core/workdir/UnpackedTarball/coinmp/Clp/src/OsiClp -I~/lo/core/workdir/UnpackedTarball/coinmp/Clp/src -I~/lo/core/workdir/UnpackedTarball/coinmp/CoinUtils/src -I~/lo/core/workdir/UnpackedTarball/coinmp/Osi/src/Osi -O -MT CglLandPValidator.lo -MD -MP -MF .deps/CglLandPValidator.Tpo -c CglLandPValidator.cpp -fPIC -DPIC -o .libs/CglLandPValidator.o > CglLandPValidator.cpp: In member function 'int LAP::Validator::cleanCut(OsiRowCut&, const double*, const OsiSolverInterface&, const CglParam&, const double*, const double*)': > CglLandPValidator.cpp:66:22: error: 'fabs' was not declared in this scope; did you mean 'labs'? > 66 | double val = fabs(elems[i]); > | ^~~~ > | labs > CglLandPValidator.cpp: In member function 'int LAP::Validator::cleanCut2(OsiRowCut&, const double*, const OsiSolverInterface&, const CglParam&, const double*, const double*)': > CglLandPValidator.cpp:189:23: error: 'fabs' was not declared in this scope; did you mean 'labs'? > 189 | double smallest = fabs(rhs); > | ^~~~ > | labs subdirectories, and which happened to get solved by the same approach of removing problematic ac_declaration values from configure. I am not sure what all that magic of determining that ac_declaration value is supposed to be good for. There appears to be no trace of it in the corresponding configure.ac sources, so it likely was automatically added by some dated autotools (all three configure files mention "Generated by GNU Autoconf 2.59"). At least on a cursory look, the determined ac_declaration appears to only be used in configure itself, and not leak into the actual coinmp build stage, so dropping the problematic ac_declaration values is hopefully harmless. These three subdirectories were all that failed for me, but there might still be silent issues in other subdirectories when a problematic ac_declaration value would negatively affect other configure checks. (An alternative approach could be to regenerate all the configure files from their configure.ac sources with a recent autotools. But at least some of the existing external/coinmp/*.patch* already change such configure files, which would need to be adapted.) Change-Id: I0a33b0f654800e8288d3ca28e26a64efc23a3f6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103756 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 762aacc4e055fffbc605be81f66f2274dccb4be8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114999 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 802b76340082e817efe67a5be4a021cb998a28a2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115502 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit 7035bb24dd2f925e709ca41241c52fa0aa2e854e)
* external/coinmp: C++17 no longer supports "register"Stephan Bergmann2021-05-142-0/+370
| | | | | | | | | | | | | | | | | | | ...and GCC 11 trunk g++ now defaults to C++17, so compilation started to fail with that compiler Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99082 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit ad607d898f9826c6fa144783c93541a10ad4740c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114998 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 656085bf2757437a088058871573385ff45f8ef5) Change-Id: I792e4c7ff59ad88e5571163d5b2362fdb349667d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115501 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit 7c6f86f10a614b64d7c7097a06670358e11d8cf4)
* external/liborcus: Missing includesStephan Bergmann2021-05-142-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | ...as seen with recent GCC 11 trunk libstdc++: > orcus_xlsx.cpp: In function ‘size_t orcus::{anonymous}::get_schema_rank(orcus::schema_t)’: > orcus_xlsx.cpp:313:59: error: incomplete type ‘std::numeric_limits<long unsigned int>’ used in nested name specifier > 313 | return it == rank_map.end() ? numeric_limits<size_t>::max() : it->second; > | ^~~ etc. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104074 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit a9976a958b2857e308c6598532151878615bfd9f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114997 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit eaa9f84465eb330aa4c68711e8c8ec609503c5d3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115500 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit aed21ef623820b36d4ced1fda5c20e2d0fa683a7) Change-Id: If92cfb565ed9344b2ec1403793d7aeff8bd019ad
* xmlsec: fix signing documents on WNTMichael Stahl2021-04-092-0/+69
| | | | | | | | | | | | | | | | Duplicate ds:X509Certificate elements cause: warn:xmlsecurity.comp:9604:3820:xmlsecurity/source/helper/xmlsignaturehelper.cxx:658: X509Data do not form a chain: certificate in cycle: (regression from 5af5ea893bcb8a8eb472ac11133da10e5a604e66) Change-Id: I3d319a2f74dbec17b73f1c7bb8f4efe4e335f0ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113746 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit ae08aa8a095832ae2a88eac14f9680ac8d3a13b6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113752 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
* postgresql: upgrade to release 13.1Michael Stahl2021-04-099-158/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes CVE-2020-25694, plus a bunch more CVE that don't look relevant. * --with-krb5 no longer exists, neither does --disable-shared * remove internal-zlib.patch.1: zlib is only used by pg_* tools / contrib/pgcrypto * remove postgresql-libs-leak.patch: some relic from pre-gbuild times, not clear what the point is for static libs * remove postgresql-9.2.1-libreoffice.patch: another dmake .mk file relic, and the win32 nmake build system was removed * add postgres-msvc-build.patch.1 to fix Cygwin perl and openssl * on WNT, libpq.dll is now built, no longer static lib postgresql: fix mistake in RepositoryExternal.mk Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109640 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 234833f7823a1424b62c93e145f0cfe2c6b6efd5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109698 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit 1362bf7fa2957d34a7cef18dd95ede22cc42787f) Conflicts: download.lst Change-Id: Ic0232a28801b2f604d9f4e33d5621ae3362defaa
* python3: add patch for CVE-2021-3177Michael Stahl2021-04-092-0/+176
| | | | | | | | | Looks like Python 3.5 is EOL, so backport the patch. Change-Id: I9ba397b3ed7e5f4ee4f78b144d822ce260ca9fb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111059 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
* poppler: upgrade to release 21.01.0Michael Stahl2021-04-092-54/+40
| | | | | | | | | Fixes CVE-2020-27778 and changelogs mention lots of fuzzing fixes. Change-Id: Ib07bdee726905e74afc13a01bbbd53f218121744 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108912 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
* openssl: update to 1.1.1gJan-Marek Glogowski2021-04-0914-359/+53
| | | | | | | | | | | | | | | | | | | | | | | | The OpenSSL 1.1.1 release is currently the only supported version and it already has the Windows Arm64 support I was looking for. This change also explicitly enables thread support, which Python depends on since release 3.7, which removed the --without-threads build option. But the explicit OPENSSL_THREADS was just added in 3.8.4, so the old no-threads build fails now and was wrong since probably much longer. Change-Id: I61d94f966bc59407f213f4a81f0a49d0c05f8948 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98435 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Conflicts: download.lst external/openssl/UnpackedTarball_openssl.mk external/python3/ExternalProject_python3.mk external/python3/python-3.7.6-msvc-ssl.patch.1 Change-Id: If841be42cd5571e88ca765f101c742948fdb98f2
* xmlsecurity: reject a few dangerous annotation types during pdf sig verifyMiklos Vajna2021-04-092-2/+111
| | | | | | | | | | | | | | | | | | | | (cherry picked from commit f231dacde9df1c4aa5f4e0970535c4f4093364a7) Conflicts: xmlsecurity/source/helper/pdfsignaturehelper.cxx Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105926 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit fcab45e0e22f4cf46e71856dba7ae5abd6f99bc5) Change-Id: I950b49a6e7181639daf27348ddfa0f36586baa65 Conflicts: xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx (cherry-picked from 363997c76749219b900f47043d1b17ba8ec9bccd) Change-Id: I7096222bc2547046d988e0ba28df725859270790
* external: update pdfium to 4306Miklos Vajna2021-04-092-9/+24
| | | | | | | | | | | | | | Change-Id: Ic10cf99fa412f8f0b3475e82d0a1839a7f04bd08 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105272 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Conflicts: include/vcl/pdf/PDFAnnotationSubType.hxx (cherry-picked from fe531957e3dcd42927cf15ab31d04473433d81f9) Change-Id: Ieed661b1beb5a3f4cb4494bcd8d3a4ebfe006212
* external: update pdfium to 4260Miklos Vajna2021-04-092-6/+3
| | | | | | | Change-Id: I1b6c7e9991b2e35921f7f849380d940c6662b174 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102787 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* external: update pdfium to 4203Miklos Vajna2021-04-094-9/+42
| | | | | | | Change-Id: Ib712fa5494e5461ef59252a0e832d43eabccbee0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99157 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* external: update pdfium to 4137Miklos Vajna2021-04-094-27/+15
| | | | | | | Change-Id: Ib7c12461e04fa97bf55ee967e8d6c9bcf92fdf4a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94078 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* external: update pdfium to 4083Miklos Vajna2021-04-092-14/+13
| | | | | | | Change-Id: Iab30effaae86a54852196d6e29d39118e0a2f70c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90667 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* make update_pch also consider files in <module>/src/**/incVasily Melenchuk2021-04-091-1/+6
| | | | | | | | | | | | | | | | | With --enable-pch=full there's not much difference between a "public" header in <module>/inc and a private one in <module>/src/somewhere/inc . And since the script searches recursively, this apparently helps to find even more headers for lower pch levels. Change-Id: I8483d0aa5b4fea5a59107c20a8aa5f1ef694af0a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87799 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> (cherry-picked from 69e0d871ec1de2260f9213d3113464155eac173c) (cherry-picked only pdfium part) Change-Id: Icda873a59902aa77d7dcfeed6bc62d37f7d96726
* pdfium: don't patch out the COMPONENT_BUILD check, define itMiklos Vajna2021-04-093-23/+1
| | | | | | | | | So next time we update, no need to adapt a failing patch. Change-Id: I785f16047d1decbf922177fdde4bc6aad7cfebfc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87215 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* external/pdfium: C++20 comparison operator fixStephan Bergmann2021-04-092-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Missing const leads to overload resolution ambiguity when a synthesized candidate of operator == for a reversed-argument rewrite conflicts with the actual operator ==, due to the asymmetric const-ness of the implicit object parameter and the RHS parameter: > In file included from workdir/UnpackedTarball/pdfium/core/fxge/cfx_font.cpp:7: > In file included from workdir/UnpackedTarball/pdfium/core/fxge/cfx_font.h:11: > llvm/inst/include/c++/v1/vector:1369:27: error: use of overloaded operator '!=' is ambiguous (with operand types 'std::__1::__vector_base<unsigned char, FxAllocAllocator<unsigned char> >::allocator_type' (aka 'FxAllocAllocator<unsigned char>') and 'std::__1::__vector_base<unsigned char, FxAllocAllocator<unsigned char> >::allocator_type') > if (__base::__alloc() != __c.__alloc()) > ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~ > llvm/inst/include/c++/v1/vector:1359:5: note: in instantiation of member function 'std::__1::vector<unsigned char, FxAllocAllocator<unsigned char> >::__move_assign' requested here > __move_assign(__x, integral_constant<bool, > ^ > workdir/UnpackedTarball/pdfium/core/fxge/cfx_font.cpp:384:24: note: in instantiation of member function 'std::__1::vector<unsigned char, FxAllocAllocator<unsigned char> >::operator=' requested here > m_FontDataAllocation = std::vector<uint8_t, FxAllocAllocator<uint8_t>>( > ^ > workdir/UnpackedTarball/pdfium/core/fxcrt/fx_memory_wrappers.h:74:8: note: candidate function > bool operator!=(const FxAllocAllocator& that) { return false; } > ^ > workdir/UnpackedTarball/pdfium/core/fxcrt/fx_memory_wrappers.h:73:8: note: candidate function > bool operator==(const FxAllocAllocator& that) { return true; } > ^ > workdir/UnpackedTarball/pdfium/core/fxcrt/fx_memory_wrappers.h:73:8: note: candidate function (with reversed parameter order) Change-Id: I48cfc8ce37287d9d3c0dec8c4d8b14b53de895d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86993 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* external: update pdfium to 4021Miklos Vajna2021-04-094-26/+22
| | | | | | | | | | Change-Id: I1c3280e811bf65641bf559e3f01bc62e609548f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86811 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins Conflicts: vcl/qa/cppunit/pdfexport/pdfexport.cxx
* external: update pdfium to 3963Miklos Vajna2021-04-092-37/+19
| | | | | | | | | Also simplify visibility.patch.1. Change-Id: I8b4ed78b314a1a1f7d31467f782877f056429cc2 Reviewed-on: https://gerrit.libreoffice.org/82548 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* external: update pdfium to 3896Miklos Vajna2021-04-093-37/+20
| | | | | | | Change-Id: I9d47d9afed47e01657b42fbfdb06e7fc91a150c8 Reviewed-on: https://gerrit.libreoffice.org/78806 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* external: update pdfium to 3849Miklos Vajna2021-04-091-21/+25
| | | | | | | Change-Id: I616f57bd9de72b078500a290bf9ff89c71773f26 Reviewed-on: https://gerrit.libreoffice.org/75736 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* external: update pdfium to 3849Miklos Vajna2021-04-093-50/+57
| | | | | | | | | Reviewed-on: https://gerrit.libreoffice.org/75736 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 0ee0ca3036629b69bf20b448d74991fd133f08ac) Change-Id: I616f57bd9de72b078500a290bf9ff89c71773f26
* CVE-2020-25713 raptor2: malformed input file can lead to a segfaultCaolán McNamara2021-04-092-0/+34
| | | | | | | | | | | | | | | due to an out of bounds array access in raptor_xml_writer_start_element_common use a better fix than the initial suggestion See: https: //bugs.mageia.org/show_bug.cgi?id=27605 https: //www.openwall.com/lists/oss-security/2020/11/13/1 Change-Id: Ida4783a61412ffce868eacf81310da338d3e2df1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106249 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Jenkins
* nss: upgrade to release 3.55.0Michael Stahl2021-04-093-50/+9
| | | | | | | | | | | | | | | | | | | | Fixes CVE-2020-6829, CVE-2020-12400 CVE-2020-12401 CVE-2020-12403. (also CVE-2020-12402 CVE-2020-12399 in older releases since 3.47) * external/nss/nss.nspr-parallel-win-debug_build.patch: remove, merged upstream Change-Id: I8b48e25ce68a2327cde1420abdaea8f9e51a7888 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100345 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 495a5944a3d442cfe748a3bb0dcef76f6a961d30) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100420 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 227d30a3a17f2fffb1a166cdc3e2a796bb335214) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100590 Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 94cecbfdf3cf01fe3d5658c7edf78696da2a249f)
* NSS: enable parallel buildJan-Marek Glogowski2021-04-097-29/+75
| | | | | | | | | | | | | | | | | | | | Since NSS 3.53, the Makefile based build should be fixed (upstream bug 290526). The only missing patch is a minimal NSPR fix for the "NSPR, configure + make, parallel, Windows, MS VS, debug" build. That patch isn't incuded in the NSPR 4.25 release (but it's already in the mercurial repo for NSPR 4.26). Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95218 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit b56e8d6def26a0430853835e997f1be841840a61) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100419 Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit c1bce55faebd9ad8751d7b6b9a7f77dff7b3d507) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100589 (cherry picked from commit 3e4dbb1708d4b3b7619602b63602b884a7bb2caa) Change-Id: I8eaa3792a12bdff734e56ac3f552991478957e23
* curl: upgrade to release 7.71.0Michael Stahl2021-04-094-7/+8
| | | | | | | | | | | | | | | Fixes CVE-2020-8169, and about 3 other ones that don't affect LO/libcmis. Disable new optional dependencies "ngtcp2" and "quiche". Change-Id: I595ed909c4e792ac3244643511a338b117e7f102 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97406 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit cb0c7e26e5708010b1fe941ae2f66134f31ed876) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97386 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 43130216127913d30074d3fe99c5706dcce44dee)
* mariadb: upgrade to release 3.1.8Michael Stahl2021-04-0913-594/+325
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes CVE-2018-3081 CVE-2020-2574 CVE-2020-2752 CVE-2020-2922 CVE-2020-13249 Remove obsolete patches: * mariadb-msvc.patch.1 * mariadb-swap.patch * mariadb-inline.patch.1 * mariadb-CONC-104.patch.1 Don't build anything from plugins/ in the hope that it's not needed. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96466 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit fe041bbc343ee08c6e901f63985d55a90da71c8b) mariadb: forgot to adapt flatpak-manifest.in mariadb: the "pvio_socket" plugin turns out to be important ... otherwise can't connect to a TCP socket. (regression from fe041bbc343ee08c6e901f63985d55a90da71c8b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96536 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 82a1650683df7d5c1769dfd68a26a4d071f1a546) Change-Id: I1c8633866b7108a8bb22dae0e0dd5f4a44bf5150 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96519 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 329c83c57989948d16b4e4d646607b93ee407a9e)
* suppress liblangtag -Werror=format=2Michael Stahl2021-04-091-0/+1
| | | | Change-Id: Ib95cc6a5994a678f5e82695e0be1e78c461c3a7f
* external/libmspub: missing includeStephan Bergmann2021-04-092-0/+11
| | | | | | | | Change-Id: I446b26b3c0ffd0d62178f374b570c9fbd1885dd4 Reviewed-on: https://gerrit.libreoffice.org/73813 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit d0e38b8f1efc6a0b2b519ce1f82a83c5766f5633)
* icu: add patch to fix CVE-2020-10531Michael Stahl2020-03-242-0/+119
| | | | | | | | | | | | Change-Id: I0aca4af1bd79f28bf1c920a4d05e80948106aaac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90971 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 002d1152dc418f7d624409e76cd9d4ac0b42c7f8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90975 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 63b573faf984875cda7a879e696ea75fae81df57) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90988
* tdf#127619: external/nss: Load smime3 lib with a path on macOSStephan Bergmann2020-01-182-0/+26
| | | | | | | | | | | | | | | | | | | | | | | A plain dlopen("libsmime3.dylib",...) would search (among other places) DYLD_FALLBACK_LIBRARY_PATH, which when unset defaults to a set of paths including /usr/local/lib (so would erroneously find Homebrew's /usr/local/lib/libsmime3.dylib instead of LO's LibreOffice.app/Contents/Frameworks/libsmime3.dylib next to the calling LibreOffice.app/Contents/Frameworks/libnspr4.dylib). At least macOS 10.15.2 supports a "@loader_path/" prefix in dlopen, to find the requested library next to the calling code, so use that as a quick fix. (Should that turn out to be problematic, there is PORT_LoadLibraryFromOrigin in workdir/UnpackedTarball/nss/nss/lib/util/secload.c that might be useful in a more elaborate fix.) Change-Id: I8688606017a4b32a2dd55740f67b8fdb36fc5435 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86966 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit a3ca9b88b4b38c008efa868844ba7a3105b4bcca) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86971 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
* tdf#129519 Fix crash during WebDAV lock refreshThorsten Behrens2020-01-082-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - NeonSession is shared amongst several files (if on the same server instance) - there's explicit code in DAVSessionFactory::createDAVSession() to share sessions for same host/target - so then after a while, locks get refreshed, and session timeout hits - first lock -> no prob, ne_auth.c:ah_post_send() has auth_challenge() failing, returning error, which puts that lock into m_aRemoveDeferred list - _but_ ah_post_send() then does a clean_session(), and the next lock refresh from the same session hits NULLPTR session host -> so let's delay any sspi_host cleanup until session object gets freed, instead of just cleaned Change-Id: Ie257310c47913aef9fcfec92c1722d64b28c4f89 Reviewed-on: https://gerrit.libreoffice.org/85614 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit df52a213277827a16793791fecc33139582c84c2) Reviewed-on: https://gerrit.libreoffice.org/85639 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit da9a2f68b5b7d17c0d066f2221f16ea443f2b9d5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85736 Reviewed-by: Michael Stahl <michael.stahl@cib.de>
* nss: upgrade to release 3.47.1Michael Stahl2019-11-266-23/+11
| | | | | | | | | | | | | | | Fixes CVE-2019-11745. Remove nss.fix-freebl-add-lcc-support.patch.1, fixed upstream. Change-Id: I72e35c90fabb0a83f547a787dbaee774e35f9c08 Reviewed-on: https://gerrit.libreoffice.org/83673 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit a6238c3fba80889f9090d997e2a4979b78b34ac7) Reviewed-on: https://gerrit.libreoffice.org/83739 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
* libxslt: upgrade to release 1.1.34Michael Stahl2019-11-215-134/+83
| | | | | | | | | | | | | | Fixes CVE-2019-18197. Remove obsolete e03553605b45c88f0b4b2980adfbbb8f6fca2fd6.patch.1. Change-Id: I95cf498e245083528f98bfef8cdd240bbe2211b9 Reviewed-on: https://gerrit.libreoffice.org/83312 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit e9ea24cc004a8b9a5856f2f268bd40433c504db1) Reviewed-on: https://gerrit.libreoffice.org/83378 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
* poppler: upgrade to release 0.82.0Michael Stahl2019-11-214-36/+12
| | | | | | | | | | | | | | | | fixes CVE-2019-9903 CVE-2019-9631 CVE-2019-9545 CVE-2019-9543 CVE-2019-14494 CVE-2019-12293 CVE-2019-11026 CVE-2019-10873 CVE-2019-10872 CVE-2019-10871 CVE-2019-10018 remove obsolete 0001-ImageStream-getLine-fix-crash-on-broken-files.patch.1 Change-Id: I72b3bf89b294ed3e24157c7e75fd58d4f68d9f35 Reviewed-on: https://gerrit.libreoffice.org/83308 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 28e52c49452320ac76489d0f93ca5692456e5331) Reviewed-on: https://gerrit.libreoffice.org/83336 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
* libxml2: upgrade to release 2.9.10Michael Stahl2019-11-212-37/+11
| | | | | | | | | | | | ... which is, surprisingly enough, required to build the latest libxslt. Change-Id: Ifbb36ed61b8f68185f9c788f63a8edeb58899f94 Reviewed-on: https://gerrit.libreoffice.org/83311 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit d1bf39a78ed239d4493f0470ca937852265e79d6) Reviewed-on: https://gerrit.libreoffice.org/83347 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* python3: upgrade to release 3.5.9Michael Stahl2019-11-203-33/+2
| | | | | | | | | | | | | | | | | | | Fixes CVE-2019-9948 CVE-2019-9740 CVE-2019-10160 CVE-2019-16056 and expat CVE-2019-15903. python-3.3.5-pyexpat-symbols.patch.1 fails to apply, and it's a mystery why --with-system-expat is used everywhere but on MacOSX, where 292af048ace2d4b455b2da3a22c784cb05db1d09 disabled it for no obvious reason, so try to remove the special case and get rid of the patch. Change-Id: I5ba4532eb6e7c2fb90daba95d132dcc7c9013d96 Reviewed-on: https://gerrit.libreoffice.org/83117 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit b0930d56130fdddfe65e92b081a8afad77974076) Reviewed-on: https://gerrit.libreoffice.org/83189 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* CVE-2019-16707Caolán McNamara2019-11-132-0/+26
| | | | | | | Change-Id: I69c4c31330fde135b6ff6c0c1c72f613f0cc4b1d Reviewed-on: https://gerrit.libreoffice.org/82552 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
* coinmp: disable "glpk", whatever that isMichael Stahl2019-11-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On Fedora 31, this happens in CppunitTest_sccomp_solver: - loading component library <file:///work/lo/master/instdir/program/libsolverlo.so> failed > nm -D instdir/program/libCbcSolver.so.3 | grep cbc_glp_prob U cbc_glp_prob > grep -r COIN_HAS_GLPK workdir/UnpackedTarball/coinmp | grep config.h workdir/UnpackedTarball/coinmp/Osi/src/Osi/config.h:/* #undef COIN_HAS_GLPK */ workdir/UnpackedTarball/coinmp/Clp/src/config.h.in:#undef COIN_HAS_GLPK workdir/UnpackedTarball/coinmp/Cbc/src/config.h:#define COIN_HAS_GLPK 1 workdir/UnpackedTarball/coinmp/CoinUtils/src/config.h.in:#undef COIN_HAS_GLPK Somehow 2 different configures in coinmp got different ideas about whether something named "glpk" is available.... no idea what that is, it looks like there's a "glpk-devel" package installed on the system, and i doubt that a dependency on that would be desirable. Change-Id: Ief01b6aedc692197c1a8fd6351aef4281e530e70 Reviewed-on: https://gerrit.libreoffice.org/81863 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 82c20b5b1aa76e57a173e0c857ec7f3d02bdda29) Reviewed-on: https://gerrit.libreoffice.org/81881 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* Pass LDFLAGS into external/postgresqlStephan Bergmann2019-10-111-1/+1
| | | | | | | | | | | | | | | This will be needed when building against Flatpak org.freedesktop.Sdk//19.08, which no longer bundles krb5, so we will have a bundled libgssapi_krb5.so at /app/lib (instead of under /usr), but which requires LDFLAGS=-L/app/lib to be found. Change-Id: I8767740ab0cbb02b6ae682b7f0e21ec90ea5ddd7 Reviewed-on: https://gerrit.libreoffice.org/80620 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit cfd06eb99b8f366bfe96e4a6d3112e4c6057098b) Reviewed-on: https://gerrit.libreoffice.org/80633 Reviewed-by: Michael Stahl <michael.stahl@cib.de>
* Resolves: tdf#127887 Fix libwps wrong Lotus version detectionEike Rathke2019-10-042-0/+45
| | | | | | | | | | | | | | | Also return the proper kind and creator values set in WKS4Parser::checkHeader() to callers of WPSDocument::isFileFormatSupported() Change-Id: I3adfde0e18669b80956a9b577080fe8388dd3b1f Reviewed-on: https://gerrit.libreoffice.org/79981 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 5a7d4ee6c4dd92758e0fd213671251e96d6e7f08) Reviewed-on: https://gerrit.libreoffice.org/80015 Tested-by: Xisco Faulí <xiscofauli@libreoffice.org> Reviewed-by: Michael Stahl <michael.stahl@cib.de>
* latest expatCaolán McNamara2019-09-175-13/+10
| | | | | | | Change-Id: Ia98c9718ccd8e18b5f56851027bde944164f05c4 Reviewed-on: https://gerrit.libreoffice.org/78977 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
* libabw, libvisio: follow main configure's --disable-dependency-trackingChristian Lohmaier2019-09-062-0/+2
| | | | | Change-Id: Iaf4fd40a7178b50a396971cfcfd0c39211597285 (cherry picked from commit 3005c107f356ead72d18b5136361e75d82ab1dff)