From 5217004a38b16459bfa4b90d3ae9ed622791e0411acc9491de4afb50b51f10b0 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Thu, 13 Jan 2022 10:49:00 +0000 Subject: [PATCH] add crash fix OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/scribus?expand=0&rev=73 --- ...difying-container-while-iterating-it.patch | 44 +++++++++++++++++++ scribus.changes | 6 +++ scribus.spec | 3 ++ 3 files changed, 53 insertions(+) create mode 100644 0001-16697-Avoid-modifying-container-while-iterating-it.patch diff --git a/0001-16697-Avoid-modifying-container-while-iterating-it.patch b/0001-16697-Avoid-modifying-container-while-iterating-it.patch new file mode 100644 index 0000000..45be95f --- /dev/null +++ b/0001-16697-Avoid-modifying-container-while-iterating-it.patch @@ -0,0 +1,44 @@ +From 4b996fec980a124c362f47258a2fd2574db38337 Mon Sep 17 00:00:00 2001 +From: jghali +Date: Tue, 7 Dec 2021 22:40:23 +0000 +Subject: [PATCH] #16697: Avoid modifying container while iterating it + +git-svn-id: svn://scribus.net/trunk/Scribus@24777 11d20701-8431-0410-a711-e3c959e3b870 +--- + scribus/langmgr.cpp | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/scribus/langmgr.cpp b/scribus/langmgr.cpp +index 4baff80ee..0e006e565 100644 +--- a/scribus/langmgr.cpp ++++ b/scribus/langmgr.cpp +@@ -20,6 +20,7 @@ for which a new license (GPL+exception) is in place. + ***************************************************************************/ + + #include ++ + #include + #include + #include +@@ -1030,16 +1031,14 @@ void LanguageManager::findSpellingDictionarySets(QStringList &dictionaryPaths, Q + QDir dictLocation(dictionaryPaths.at(i)); + QStringList dictFilters("*.dic"); + QStringList dictList(dictLocation.entryList(dictFilters, QDir::Files, QDir::Name)); +- dictList.replaceInStrings(".dic",""); ++ dictList.replaceInStrings(".dic", ""); ++ dictList.removeDuplicates(); + + //Ensure we have aff+dic file pairs, remove any hyphenation dictionaries from the list + for (const QString& dictName : qAsConst(dictList)) + { + if (!QFile::exists(dictionaryPaths.at(i) + dictName + ".aff")) +- { +- dictList.removeAll(dictName); + continue; +- } + + if (dictionaryMap.contains(dictName)) + continue; +-- +2.34.1 + diff --git a/scribus.changes b/scribus.changes index 6695a5b..501f7b4 100644 --- a/scribus.changes +++ b/scribus.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jan 13 10:47:59 UTC 2022 - Christophe Giboudeaux + +- Add upstream patch to fix potential crash on startup: + * 0001-16697-Avoid-modifying-container-while-iterating-it.patch + ------------------------------------------------------------------- Thu Jan 13 09:27:00 UTC 2022 - Bjørn Lie diff --git a/scribus.spec b/scribus.spec index d7750dd..4c27ad2 100644 --- a/scribus.spec +++ b/scribus.spec @@ -30,7 +30,10 @@ Source: %{name}-%{version}.tar.xz Patch0: 0001-Make-sure-information-displayed-on-the-about-window-.patch # PATCH-FIX-UPSTREAM Patch1: 0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch +# PATCH-FIX-UPSTREAM Patch2: 0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch +# PATCH-FIX-UPSTREAM +Patch3: 0001-16697-Avoid-modifying-container-while-iterating-it.patch BuildRequires: cmake >= 3.14.0 BuildRequires: cups-devel BuildRequires: dos2unix