From 63f0e841b5473b4407d58ec005cc933a7da79149 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Dec 09 2014 22:01:44 +0000 Subject: added patches for ODF forward compatibility with LO 4.5 --- diff --git a/0002-fdo-72811-Revert-Broken-security-password-when-savin.patch b/0002-fdo-72811-Revert-Broken-security-password-when-savin.patch new file mode 100644 index 0000000..b48ad3f --- /dev/null +++ b/0002-fdo-72811-Revert-Broken-security-password-when-savin.patch @@ -0,0 +1,40 @@ +From 854505c4c2363c86ff0717aa9d4e83a274784f46 Mon Sep 17 00:00:00 2001 +From: Michael Stahl +Date: Fri, 5 Dec 2014 23:52:34 +0100 +Subject: [PATCH 2/5] fdo#72811: Revert "Broken security/password when saving + to older odf (sx?) + +... formats." + +This exports ODF 1.1 files as ODF 1.2 packages, which is quite wrong. +Since we don't support OOoXML export any more, just revert it. + +This reverts commit 06b918053fb9cf455cf431ca001a63030092d018. + +(cherry picked from commit ebfec3517d001f8aa8baaabde7c4af6b01347b95) + +Change-Id: I27bdd83f96e46be054f808ff6782ad16ecc90da5 +Reviewed-on: https://gerrit.libreoffice.org/13325 +Reviewed-by: Markus Mohrhard +Tested-by: Markus Mohrhard +(cherry picked from commit 5faedcab93d2f987f91e2750119198b18891f4d1) +--- + sfx2/source/doc/objstor.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx +index df12f4f..a1eb2b7 100644 +--- a/sfx2/source/doc/objstor.cxx ++++ b/sfx2/source/doc/objstor.cxx +@@ -382,7 +382,7 @@ void SfxObjectShell::SetupStorage( const uno::Reference< embed::XStorage >& xSto + aEncryptionAlgs[1].Value <<= xml::crypto::CipherID::BLOWFISH_CFB_8; + aEncryptionAlgs[2].Value <<= xml::crypto::DigestID::SHA1_1K; + +- if ( nVersion >= SOFFICE_FILEFORMAT_8 ) ++ if ( nDefVersion >= SvtSaveOptions::ODFVER_012 ) + { + try + { +-- +1.9.3 + diff --git a/0003-fdo-86795-xmloff-ODF-import-do-not-import-checkbox-f.patch b/0003-fdo-86795-xmloff-ODF-import-do-not-import-checkbox-f.patch new file mode 100644 index 0000000..858594f --- /dev/null +++ b/0003-fdo-86795-xmloff-ODF-import-do-not-import-checkbox-f.patch @@ -0,0 +1,100 @@ +From ed23329485dfdda07f444bd61276a2f630da31a4 Mon Sep 17 00:00:00 2001 +From: Michael Stahl +Date: Fri, 5 Dec 2014 18:04:39 +0100 +Subject: [PATCH 3/5] fdo#86795: xmloff: ODF import: do not import checkbox + fieldmark ... + +... if it has start/end, because Writer will become grumpy and crash. + +(cherry picked from commit 25fd11e78279aef5a6b7656347758e5c67a9c45a) + +Conflicts: + xmloff/source/text/XMLTextMarkImportContext.cxx + +Change-Id: I6024051249eeac6ed9e43856fa77db969287f888 +Reviewed-on: https://gerrit.libreoffice.org/13319 +Reviewed-by: Miklos Vajna +Tested-by: Miklos Vajna +(cherry picked from commit b903e2a7ac730865d9a6ee48fb0392ecff2c7d30) +--- + xmloff/source/text/XMLTextMarkImportContext.cxx | 49 +++++++++++++++++-------- + 1 file changed, 34 insertions(+), 15 deletions(-) + +diff --git a/xmloff/source/text/XMLTextMarkImportContext.cxx b/xmloff/source/text/XMLTextMarkImportContext.cxx +index 73ee88d..7720533 100644 +--- a/xmloff/source/text/XMLTextMarkImportContext.cxx ++++ b/xmloff/source/text/XMLTextMarkImportContext.cxx +@@ -143,7 +143,7 @@ static const char *lcl_getFormFieldmarkName(OUString &name) + return NULL; + } + +-static OUString lcl_getFieldmarkName(OUString &name) ++static OUString lcl_getFieldmarkName(OUString const& name) + { + static const char sFormtext[]=ODF_FORMTEXT; + if (name.equalsAscii("msoffice.field.FORMTEXT") || +@@ -288,19 +288,40 @@ void XMLTextMarkImportContext::EndElement() + + bool bImportAsField=((lcl_MarkType)nTmp==TypeFieldmarkEnd && m_rHelper.hasCurrentFieldCtx()); + +- // insert reference +- const Reference xContent( +- CreateAndInsertMark(GetImport(), +- (bImportAsField?sAPI_fieldmark:sAPI_bookmark), +- m_sBookmarkName, +- xInsertionCursor, +- m_sXmlId) ); +- if (pRDFaAttributes) ++ // fdo#86795 check if it's actually a checkbox first ++ bool isInvalid(false); ++ OUString fieldmarkTypeName; ++ if (bImportAsField && m_rHelper.hasCurrentFieldCtx()) + { +- const Reference +- xMeta(xContent, UNO_QUERY); +- GetImport().GetRDFaImportHelper().AddRDFa( +- xMeta, pRDFaAttributes); ++ ++ OUString const type(m_rHelper.getCurrentFieldType()); ++ fieldmarkTypeName = lcl_getFieldmarkName(type); ++ if (fieldmarkTypeName == ODF_FORMCHECKBOX || ++ fieldmarkTypeName == ODF_FORMDROPDOWN) ++ { // sw can't handle checkbox with start+end ++ SAL_INFO("xmloff.text", "invalid fieldmark-start/fieldmark-end ignored"); ++ isInvalid = true; ++ } ++ } ++ ++ Reference xContent; ++ if (!isInvalid) ++ { ++ // insert reference ++ xContent = CreateAndInsertMark(GetImport(), ++ (bImportAsField ++ ? OUString(sAPI_fieldmark) ++ : OUString(sAPI_bookmark)), ++ m_sBookmarkName, ++ xInsertionCursor, ++ m_sXmlId); ++ if (pRDFaAttributes) ++ { ++ const Reference ++ xMeta(xContent, UNO_QUERY); ++ GetImport().GetRDFaImportHelper().AddRDFa( ++ xMeta, pRDFaAttributes); ++ } + } + + if ((lcl_MarkType)nTmp==TypeFieldmarkEnd) { +@@ -308,8 +329,6 @@ void XMLTextMarkImportContext::EndElement() + // setup fieldmark... + Reference< ::com::sun::star::text::XFormField> xFormField(xContent, UNO_QUERY); + if (xFormField.is() && m_rHelper.hasCurrentFieldCtx()) { +- OUString givenTypeName=m_rHelper.getCurrentFieldType(); +- OUString fieldmarkTypeName=lcl_getFieldmarkName(givenTypeName); + + xFormField->setFieldType(fieldmarkTypeName); + m_rHelper.setCurrentFieldParamsTo(xFormField); +-- +1.9.3 + diff --git a/0004-import-part-for-export-to-extension-namespace-instea.patch b/0004-import-part-for-export-to-extension-namespace-instea.patch new file mode 100644 index 0000000..c180492 --- /dev/null +++ b/0004-import-part-for-export-to-extension-namespace-instea.patch @@ -0,0 +1,56 @@ +From 34ed3bc64d64c8f4b1c8738cd530dc2401dbbd78 Mon Sep 17 00:00:00 2001 +From: Markus Mohrhard +Date: Mon, 8 Dec 2014 00:45:29 +0100 +Subject: [PATCH 4/5] import part for: "export to extension namespace instead + of odf ..." + +See master commit a4e4cdcdd7acfe779b2a3b244dd449f136308a93 + +(cherry picked from commit 40ac1ada98e3e2648daf9d17e520040be2c17911) +Signed-off-by: Michael Stahl + +Conflicts: + xmloff/source/style/PageMasterStyleMap.cxx + +(cherry picked from commit 55568c0b95d2b2a072b896107963052bf78f1ff0) + +Conflicts: + xmloff/source/style/PageMasterStyleMap.cxx + +Change-Id: I0b61e05e3b153ba7efe351b18cb705ea6348f546 +--- + xmloff/source/style/PageMasterStyleMap.cxx | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/xmloff/source/style/PageMasterStyleMap.cxx b/xmloff/source/style/PageMasterStyleMap.cxx +index 458bfdf..c32c38e 100644 +--- a/xmloff/source/style/PageMasterStyleMap.cxx ++++ b/xmloff/source/style/PageMasterStyleMap.cxx +@@ -24,12 +24,15 @@ + using namespace ::xmloff::token; + + #define MAP(name,prefix,token,type,context,version) { name, sizeof(name)-1, prefix, token, type, context, version, false } ++#define MAP_IMPORT(name,prefix,token,type,context,version) { name, sizeof(name)-1, prefix, token, type, context, version, true } + #define PLMAP(name,prefix,token,type,context) \ + MAP(name,prefix,token,type|XML_TYPE_PROP_PAGE_LAYOUT,context, SvtSaveOptions::ODFVER_010) + #define PLMAP_12(name,prefix,token,type,context) \ + MAP(name,prefix,token,type|XML_TYPE_PROP_PAGE_LAYOUT,context, SvtSaveOptions::ODFVER_012) + #define PLMAP_EX(name,prefix,token,type,context) \ + MAP(name,prefix,token,type|XML_TYPE_PROP_PAGE_LAYOUT,context, SvtSaveOptions::ODFVER_012_EXT_COMPAT) ++#define PLMAP_EXT_IMPORT(name,prefix,token,type,context) \ ++ MAP_IMPORT(name,prefix,token,type|XML_TYPE_PROP_PAGE_LAYOUT,context, SvtSaveOptions::ODFVER_012_EXT_COMPAT) + #define HFMAP(name,prefix,token,type,context) \ + MAP(name,prefix,token,type|XML_TYPE_PROP_HEADER_FOOTER,context, SvtSaveOptions::ODFVER_010) + +@@ -83,6 +86,8 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] = + PLMAP( "ScaleToPages", XML_NAMESPACE_STYLE, XML_SCALE_TO_PAGES, XML_TYPE_NUMBER16, CTF_PM_SCALETOPAGES ), + PLMAP( "ScaleToPagesX", XML_NAMESPACE_STYLE, XML_SCALE_TO_X, XML_TYPE_NUMBER16, CTF_PM_SCALETOX ), + PLMAP( "ScaleToPagesY", XML_NAMESPACE_STYLE, XML_SCALE_TO_Y, XML_TYPE_NUMBER16, CTF_PM_SCALETOY ), ++ PLMAP_EXT_IMPORT( "ScaleToPagesX", XML_NAMESPACE_LO_EXT, XML_SCALE_TO_X, XML_TYPE_NUMBER16, CTF_PM_SCALETOX ), ++ PLMAP_EXT_IMPORT( "ScaleToPagesY", XML_NAMESPACE_LO_EXT, XML_SCALE_TO_Y, XML_TYPE_NUMBER16, CTF_PM_SCALETOY ), + PLMAP( "CenterHorizontally", XML_NAMESPACE_STYLE, XML_TABLE_CENTERING, XML_PM_TYPE_CENTER_HORIZONTAL | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, 0 ), + PLMAP( "CenterVertically", XML_NAMESPACE_STYLE, XML_TABLE_CENTERING, XML_PM_TYPE_CENTER_VERTICAL | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, 0 ), + PLMAP( "TextColumns", XML_NAMESPACE_STYLE, XML_COLUMNS, MID_FLAG_ELEMENT_ITEM|XML_TYPE_TEXT_COLUMNS, CTF_PM_TEXTCOLUMNS ), +-- +1.9.3 + diff --git a/0005-import-part-for-use-correct-xml-element-name-related.patch b/0005-import-part-for-use-correct-xml-element-name-related.patch new file mode 100644 index 0000000..f4e5cc7 --- /dev/null +++ b/0005-import-part-for-use-correct-xml-element-name-related.patch @@ -0,0 +1,66 @@ +From 05fdfc03bbb4795d1339dad37bbe48dc5b63330d Mon Sep 17 00:00:00 2001 +From: Markus Mohrhard +Date: Mon, 8 Dec 2014 00:47:44 +0100 +Subject: [PATCH 5/5] import part for: " use correct xml element name, related + fdo#45266" + +Change-Id: Ied71383fc837c7e667455f84937801e8d45f2989 +--- + include/xmloff/xmltoken.hxx | 1 + + sc/source/filter/xml/xmldpimp.cxx | 2 +- + sc/source/filter/xml/xmlimprt.cxx | 1 + + xmloff/source/core/xmltoken.cxx | 1 + + 4 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx +index 09bc908..a61ca9c 100644 +--- a/include/xmloff/xmltoken.hxx ++++ b/include/xmloff/xmltoken.hxx +@@ -2608,6 +2608,7 @@ namespace xmloff { namespace token { + XML_IS_GROUP_FIELD, + XML_DATA_PILOT_GROUPS, + XML_DATA_PILOT_GROUP, ++ XML_DATA_PILOT_GROUP_MEMBER, + + XML_JAPANESE_CANDLE_STICK, + XML_NAMED_SYMBOL, +diff --git a/sc/source/filter/xml/xmldpimp.cxx b/sc/source/filter/xml/xmldpimp.cxx +index d9d0ebb..66ca38e 100644 +--- a/sc/source/filter/xml/xmldpimp.cxx ++++ b/sc/source/filter/xml/xmldpimp.cxx +@@ -1867,7 +1867,7 @@ SvXMLImportContext *ScXMLDataPilotGroupContext::CreateChildContext( sal_uInt16 n + + if (nPrefix == XML_NAMESPACE_TABLE) + { +- if (IsXMLToken(rLName, XML_DATA_PILOT_MEMBER)) ++ if (IsXMLToken(rLName, XML_DATA_PILOT_MEMBER) || IsXMLToken(rLName, XML_DATA_PILOT_GROUP_MEMBER)) + pContext = new ScXMLDataPilotGroupMemberContext(GetScImport(), nPrefix, rLName, xAttrList, this); + } + +diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx +index 5c5a761..4b9a076 100644 +--- a/sc/source/filter/xml/xmlimprt.cxx ++++ b/sc/source/filter/xml/xmlimprt.cxx +@@ -1801,6 +1801,7 @@ const SvXMLTokenMap& ScXMLImport::GetDataPilotMembersElemTokenMap() + static const SvXMLTokenMapEntry aDataPilotMembersElemTokenMap[] = + { + { XML_NAMESPACE_TABLE, XML_DATA_PILOT_MEMBER, XML_TOK_DATA_PILOT_MEMBERS_ELEM_DATA_PILOT_MEMBER }, ++ { XML_NAMESPACE_TABLE, XML_DATA_PILOT_GROUP_MEMBER, XML_TOK_DATA_PILOT_MEMBERS_ELEM_DATA_PILOT_MEMBER }, + XML_TOKEN_MAP_END + }; + +diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx +index d9d646e..5a91104 100644 +--- a/xmloff/source/core/xmltoken.cxx ++++ b/xmloff/source/core/xmltoken.cxx +@@ -2613,6 +2613,7 @@ namespace xmloff { namespace token { + TOKEN( "is-group-field", XML_IS_GROUP_FIELD ), + TOKEN( "data-pilot-groups", XML_DATA_PILOT_GROUPS ), + TOKEN( "data-pilot-group", XML_DATA_PILOT_GROUP ), ++ TOKEN( "data-pilot-group-member", XML_DATA_PILOT_GROUP_MEMBER ), + TOKEN( "japanese-candle-stick", XML_JAPANESE_CANDLE_STICK ), + TOKEN( "named-symbol", XML_NAMED_SYMBOL ), + TOKEN( "diamond", XML_DIAMOND ), +-- +1.9.3 + diff --git a/libreoffice.spec b/libreoffice.spec index 2c1d716..8101bb7 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -326,6 +326,10 @@ Patch70: 0001-Resolves-rhbz-1165444-abrt-crash-with-NULL-pView.patch Patch71: 0001-rhbz-1016758-Dispose-bridges-when-disposing-bridge-f.patch Patch72: 0001-fdo-79303-Revert-fdo-70861-SwToSfxPageDescAttr-fix-c.patch Patch73: 0001-Resolves-rhbz-1164614-xslt-dialog-crashes-if-there-a.patch +Patch74: 0002-fdo-72811-Revert-Broken-security-password-when-savin.patch +Patch75: 0003-fdo-86795-xmloff-ODF-import-do-not-import-checkbox-f.patch +Patch76: 0004-import-part-for-export-to-extension-namespace-instea.patch +Patch77: 0005-import-part-for-use-correct-xml-element-name-related.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -2269,6 +2273,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %changelog * Tue Dec 09 2014 David Tardon - 1:4.2.8.2-1 - update to 4.2.8 +- Resolves: fdo#72811 fix ODF 1.1 export * Mon Dec 08 2014 Caolán McNamara - 1:4.2.7.2-12 - Resolves: rhbz#1167683 crash in SwPostItMgr::HasNotes