From d8184f24d39d84cef6ec1d624ec2ca2728e4ea68 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 1 Dec 2011 15:04:23 +0100 Subject: [PATCH] fix patches --- libreoffice.spec | 8 +-- ...-3.1.0.ooo101274.opening-a-directory.patch | 67 +++++++++++-------- ...1.1.ooo105784.vcl.sniffscriptforsubs.patch | 58 ++++++++++------ 3 files changed, 80 insertions(+), 53 deletions(-) diff --git a/libreoffice.spec b/libreoffice.spec index 382965c..b5b62b5 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -106,7 +106,8 @@ Patch10: 0001-wpsimport-writerperfect.diff-WPS-Import-filter-core-.patch Patch11: libreoffice-gcj.patch Patch12: libreoffice-rhel6poppler.patch %endif -Patch13: solenv.fix.mk.inheritance.patch +# TODO: this in S390 only, so it can wait .-) +#Patch13: solenv.fix.mk.inheritance.patch %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %define instdir %{_libdir} @@ -750,12 +751,11 @@ for a in */*; do mv `pwd`/$a .; done tail -n 1 extras/source/palettes/standard.soc) > redhat.soc mv -f redhat.soc extras/source/palettes/standard.soc %patch1 -p1 -# TODO: fix patches %patch2 -p1 -b .ooo86080.unopkg.bodge.patch %patch3 -p1 -b .ooo88341.sc.verticalboxes.patch %patch4 -p1 -b .oooXXXXX.solenv.allowmissing.patch -#%patch5 -p0 -b .ooo101274.opening-a-directory.patch -#%patch6 -p0 -b .ooo105784.vcl.sniffscriptforsubs.patch +%patch5 -p1 -b .ooo101274.opening-a-directory.patch +%patch6 -p1 -b .ooo105784.vcl.sniffscriptforsubs.patch %patch7 -p1 -b .libreoffice-installfix.patch %if 0%{?rhel} %patch8 -p1 -b .libwpd08-1.patch diff --git a/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch b/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch index 8475362..2b13e4f 100644 --- a/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch +++ b/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch @@ -1,8 +1,30 @@ -Index: ucbhelper/source/client/content.cxx -=================================================================== ---- ucbhelper/source/client/content.cxx (revision 270567) -+++ ucbhelper/source/client/content.cxx (working copy) -@@ -39,6 +39,7 @@ +From 7e3bdb601c02e60b772e64ec9d11c56881c9a643 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Thu, 1 Dec 2011 14:02:07 +0100 +Subject: [PATCH 1/2] #i101274 a directory on command line is silently ignored + +--- + .../source/misc/stillreadwriteinteraction.cxx | 1 + + ucbhelper/source/client/content.cxx | 75 ++++++++++++++++++++ + 2 files changed, 76 insertions(+), 0 deletions(-) + +diff --git a/comphelper/source/misc/stillreadwriteinteraction.cxx b/comphelper/source/misc/stillreadwriteinteraction.cxx +index 124564d..506f31c 100644 +--- a/comphelper/source/misc/stillreadwriteinteraction.cxx ++++ b/comphelper/source/misc/stillreadwriteinteraction.cxx +@@ -96,6 +96,7 @@ ucbhelper::InterceptedInteraction::EInterceptionState StillReadWriteInteraction: + bAbort = ( + (exIO.Code == css::ucb::IOErrorCode_ACCESS_DENIED ) + || (exIO.Code == css::ucb::IOErrorCode_LOCKING_VIOLATION ) ++ || (exIO.Code == css::ucb::IOErrorCode_NO_FILE ) + || (exIO.Code == css::ucb::IOErrorCode_NOT_EXISTING ) + #ifdef MACOSX + // this is a workaround for MAC, on this platform if the file is locked +diff --git a/ucbhelper/source/client/content.cxx b/ucbhelper/source/client/content.cxx +index 676acd5..4a599c9 100644 +--- a/ucbhelper/source/client/content.cxx ++++ b/ucbhelper/source/client/content.cxx +@@ -38,6 +38,7 @@ #include #include @@ -10,7 +32,7 @@ Index: ucbhelper/source/client/content.cxx #include #include #include -@@ -48,6 +49,8 @@ +@@ -47,6 +48,8 @@ #include #include #include @@ -19,7 +41,7 @@ Index: ucbhelper/source/client/content.cxx #include #include #include -@@ -65,6 +68,8 @@ +@@ -64,6 +67,8 @@ #include #include #include @@ -28,7 +50,7 @@ Index: ucbhelper/source/client/content.cxx #include #include #include -@@ -72,6 +77,10 @@ +@@ -71,6 +76,10 @@ #include #include #include @@ -39,7 +61,7 @@ Index: ucbhelper/source/client/content.cxx using namespace com::sun::star::container; using namespace com::sun::star::beans; -@@ -375,6 +384,54 @@ +@@ -373,6 +382,54 @@ static Reference< XContent > getContent( return Reference< XContent >(); } @@ -94,7 +116,7 @@ Index: ucbhelper/source/client/content.cxx //========================================================================= //========================================================================= // -@@ -1186,7 +1243,10 @@ +@@ -890,7 +947,10 @@ Reference< XInputStream > Content::openStream() throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) @@ -105,7 +127,7 @@ Index: ucbhelper/source/client/content.cxx Reference< XActiveDataSink > xSink = new ActiveDataSink; -@@ -1211,7 +1271,10 @@ +@@ -915,7 +975,10 @@ Reference< XInputStream > Content::openStreamNoLock() throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) @@ -116,7 +138,7 @@ Index: ucbhelper/source/client/content.cxx Reference< XActiveDataSink > xSink = new ActiveDataSink; -@@ -1236,7 +1299,10 @@ +@@ -940,7 +1003,10 @@ Reference< XStream > Content::openWriteableStream() throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) @@ -127,7 +149,7 @@ Index: ucbhelper/source/client/content.cxx Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer; -@@ -1261,7 +1327,10 @@ +@@ -965,7 +1031,10 @@ Reference< XStream > Content::openWriteableStreamNoLock() throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) @@ -138,7 +160,7 @@ Index: ucbhelper/source/client/content.cxx Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer; -@@ -1286,7 +1355,10 @@ +@@ -990,7 +1059,10 @@ sal_Bool Content::openStream( const Reference< XActiveDataSink >& rSink ) throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) @@ -149,7 +171,7 @@ Index: ucbhelper/source/client/content.cxx OpenCommandArgument2 aArg; aArg.Mode = OpenMode::DOCUMENT; -@@ -1309,7 +1381,10 @@ +@@ -1013,7 +1085,10 @@ sal_Bool Content::openStream( const Reference< XOutputStream >& rStream ) throw( CommandAbortedException, RuntimeException, Exception ) { if ( !isDocument() ) @@ -160,15 +182,6 @@ Index: ucbhelper/source/client/content.cxx OpenCommandArgument2 aArg; aArg.Mode = OpenMode::DOCUMENT; -Index: comphelper/source/misc/mediadescriptor.cxx -=================================================================== ---- comphelper/source/misc/stillreadwriteinteraction.cxx 2010-07-06 15:32:02.000000000 +0100 -+++ comphelper/source/misc/stillreadwriteinteraction.cxx 2010-07-06 15:32:31.000000000 +0100 -@@ -103,6 +103,7 @@ - bAbort = ( - (exIO.Code == css::ucb::IOErrorCode_ACCESS_DENIED ) - || (exIO.Code == css::ucb::IOErrorCode_LOCKING_VIOLATION ) -+ || (exIO.Code == css::ucb::IOErrorCode_NO_FILE ) - || (exIO.Code == css::ucb::IOErrorCode_NOT_EXISTING ) - #ifdef MACOSX - // this is a workaround for MAC, on this platform if the file is locked +-- +1.7.7.3 + diff --git a/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch b/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch index d66c4e7..38b521c 100644 --- a/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch +++ b/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch @@ -1,7 +1,18 @@ -diff -ru vcl.orig/unx/source/fontmanager/fontconfig.cxx vcl/unx/source/fontmanager/fontconfig.cxx ---- vcl.orig/unx/source/fontmanager/fontconfig.cxx 2009-10-08 13:25:00.000000000 +0100 -+++ vcl/generic/fontmanager/fontconfig.cxx 2009-10-08 13:51:51.000000000 +0100 -@@ -92,6 +92,9 @@ +From 36644331aad8382ccab7fb19d7ab3339bbff0c20 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Thu, 1 Dec 2011 14:18:09 +0100 +Subject: [PATCH 2/2] #i105784# vcl: improve selection of fallback font by + supplying language hint when none exists + +--- + vcl/generic/fontmanager/fontconfig.cxx | 143 +++++++++++++++++++++++++++++++- + 1 files changed, 141 insertions(+), 2 deletions(-) + +diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx +index 4d02a76..ecd3b5d 100644 +--- a/vcl/generic/fontmanager/fontconfig.cxx ++++ b/vcl/generic/fontmanager/fontconfig.cxx +@@ -89,6 +89,9 @@ using namespace psp; #include "sal/alloca.h" @@ -11,7 +22,7 @@ diff -ru vcl.orig/unx/source/fontmanager/fontconfig.cxx vcl/unx/source/fontmanag #include #include -@@ -1108,6 +1111,138 @@ +@@ -747,6 +750,138 @@ static void addtopattern(FcPattern *pPattern, } } @@ -147,39 +158,42 @@ diff -ru vcl.orig/unx/source/fontmanager/fontconfig.cxx vcl/unx/source/fontmanag + return NULL; +} + - rtl::OUString PrintFontManager::Substitute(const rtl::OUString& rFontName, - rtl::OUString& rMissingCodes, const rtl::OString &rLangAttrib, - italic::type &rItalic, weight::type &rWeight, -@@ -1128,14 +1263,13 @@ - const FcChar8* pTargetNameUtf8 = (FcChar8*)aTargetName.getStr(); - rWrapper.FcPatternAddString( pPattern, FC_FAMILY, pTargetNameUtf8 ); + bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& rMissingCodes ) const + { + bool bRet = false; +@@ -764,14 +899,13 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& r + FcPatternAddString(pPattern, FC_FAMILY, pTargetNameUtf8); + const rtl::OString aLangAttrib = MsLangId::convertLanguageToIsoByteString(rPattern.meLanguage); + const FcChar8* pLangAttribUtf8 = NULL; - if( rLangAttrib.getLength() ) + if( aLangAttrib.getLength() ) { - const FcChar8* pLangAttribUtf8; - if (rLangAttrib.equalsIgnoreAsciiCase(OString(RTL_CONSTASCII_STRINGPARAM("pa-in")))) + if (aLangAttrib.equalsIgnoreAsciiCase(OString(RTL_CONSTASCII_STRINGPARAM("pa-in")))) pLangAttribUtf8 = (FcChar8*)"pa"; else - pLangAttribUtf8 = (FcChar8*)rLangAttrib.getStr(); -- rWrapper.FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 ); + pLangAttribUtf8 = (FcChar8*)aLangAttrib.getStr(); +- FcPatternAddString(pPattern, FC_LANG, pLangAttribUtf8); } // Add required Unicode characters, if any -@@ -1147,11 +1281,16 @@ +@@ -783,11 +917,16 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& r // also handle unicode surrogates const sal_uInt32 nCode = rMissingCodes.iterateCodePoints( &nStrIndex ); - rWrapper.FcCharSetAddChar( unicodes, nCode ); + FcCharSetAddChar( unicodes, nCode ); + if (!pLangAttribUtf8) + pLangAttribUtf8 = (const FcChar8*)pick_sample_language(nCode); } - rWrapper.FcPatternAddCharSet( pPattern, FC_CHARSET, unicodes); - rWrapper.FcCharSetDestroy( unicodes ); + FcPatternAddCharSet(pPattern, FC_CHARSET, unicodes); + FcCharSetDestroy(unicodes); } + if( pLangAttribUtf8 ) -+ rWrapper.FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 ); ++ FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 ); + - addtopattern(rWrapper, pPattern, rItalic, rWeight, rWidth, rPitch); + addtopattern(pPattern, rPattern.meItalic, rPattern.meWeight, + rPattern.meWidthType, rPattern.mePitch); - // query fontconfig for a substitute +-- +1.7.7.3 +