diff --git a/0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch b/0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch new file mode 100644 index 0000000..0e4a891 --- /dev/null +++ b/0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch @@ -0,0 +1,970 @@ +diff -ru libreoffice-3.5.5.3.orig/cui/source/options/optlingu.cxx libreoffice-3.5.5.3/cui/source/options/optlingu.cxx +--- libreoffice-3.5.5.3.orig/cui/source/options/optlingu.cxx 2012-07-13 12:37:15.032259144 +0100 ++++ libreoffice-3.5.5.3/cui/source/options/optlingu.cxx 2012-07-16 08:49:26.294209540 +0100 +@@ -1150,12 +1150,6 @@ + aLinguDicsEditPB.SetAccessibleName(sAccessibleNameDicsEdit); + aLinguOptionsEditPB.SetAccessibleName(sAccessibleNameOptionEdit); + +- // force recalculation of hash value used for checking the need of updating +- // because new dictionaries might be installed / downloaded. +- //! Thus it needs to be called now since it may infuence the supported languages +- //! to be reported AND the found user-dictionaries(!) as well. +- SvxLinguConfigUpdate::UpdateAll( sal_True ); +- + xProp = uno::Reference< XPropertySet >( SvxGetLinguPropertySet(), UNO_QUERY ); + xDicList = uno::Reference< XDictionaryList >( SvxGetDictionaryList(), UNO_QUERY ); + if (xDicList.is()) +diff -ru libreoffice-3.5.5.3.orig/editeng/inc/editeng/unolingu.hxx libreoffice-3.5.5.3/editeng/inc/editeng/unolingu.hxx +--- libreoffice-3.5.5.3.orig/editeng/inc/editeng/unolingu.hxx 2012-07-13 12:37:16.109269892 +0100 ++++ libreoffice-3.5.5.3/editeng/inc/editeng/unolingu.hxx 2012-07-16 08:49:26.294209540 +0100 +@@ -46,29 +46,6 @@ + class Window; + + /////////////////////////////////////////////////////////////////////////// +-// SvxLinguConfigUpdate +-// class to update configuration items when (before!) the linguistic is used. +-// +-// This class is called by all the dummy implementations to update all of the +-// configuration (list of used/available services) when the linguistic is +-// accessed for the first time. +- +-class SvxLinguConfigUpdate +-{ +- static sal_Int32 nCurrentDataFilesChangedCheckValue; +- static sal_Int16 nNeedUpdating; // n == -1 => needs to be checked +- // n == 0 => already updated, nothing to be done +- // n == 1 => needs to be updated +- +- static sal_Int32 CalcDataFilesChangedCheckValue(); +- +-public: +- +- EDITENG_DLLPUBLIC static void UpdateAll( sal_Bool bForceCheck = sal_False ); +- static sal_Bool IsNeedUpdateAll( sal_Bool bForceCheck = sal_False ); +-}; +- +-/////////////////////////////////////////////////////////////////////////// + + class EDITENG_DLLPUBLIC LinguMgr + { +diff -ru libreoffice-3.5.5.3.orig/editeng/source/misc/unolingu.cxx libreoffice-3.5.5.3/editeng/source/misc/unolingu.cxx +--- libreoffice-3.5.5.3.orig/editeng/source/misc/unolingu.cxx 2012-07-13 12:37:15.900267806 +0100 ++++ libreoffice-3.5.5.3/editeng/source/misc/unolingu.cxx 2012-07-16 08:52:53.919596778 +0100 +@@ -90,365 +90,6 @@ + return xRes; + } + +-sal_Bool lcl_FindEntry( const OUString &rEntry, const Sequence< OUString > &rCfgSvcs ) +-{ +- sal_Int32 nRes = -1; +- sal_Int32 nEntries = rCfgSvcs.getLength(); +- const OUString *pEntry = rCfgSvcs.getConstArray(); +- for (sal_Int32 i = 0; i < nEntries && nRes == -1; ++i) +- { +- if (rEntry == pEntry[i]) +- nRes = i; +- } +- return nRes != -1; +-} +- +- +-Sequence< OUString > lcl_RemoveMissingEntries( +- const Sequence< OUString > &rCfgSvcs, +- const Sequence< OUString > &rAvailSvcs ) +-{ +- Sequence< OUString > aRes( rCfgSvcs.getLength() ); +- OUString *pRes = aRes.getArray(); +- sal_Int32 nCnt = 0; +- +- sal_Int32 nEntries = rCfgSvcs.getLength(); +- const OUString *pEntry = rCfgSvcs.getConstArray(); +- for (sal_Int32 i = 0; i < nEntries; ++i) +- { +- if (!pEntry[i].isEmpty() && lcl_FindEntry( pEntry[i], rAvailSvcs )) +- pRes[ nCnt++ ] = pEntry[i]; +- } +- +- aRes.realloc( nCnt ); +- return aRes; +-} +- +- +-Sequence< OUString > lcl_GetLastFoundSvcs( +- SvtLinguConfig &rCfg, +- const OUString &rLastFoundList , +- const Locale &rAvailLocale ) +-{ +- Sequence< OUString > aRes; +- +- OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( +- SvxLocaleToLanguage( rAvailLocale ) ) ); +- +- Sequence< OUString > aNodeNames( rCfg.GetNodeNames(rLastFoundList) ); +- sal_Bool bFound = lcl_FindEntry( aCfgLocaleStr, aNodeNames); +- +- if (bFound) +- { +- Sequence< OUString > aNames(1); +- OUString &rNodeName = aNames.getArray()[0]; +- rNodeName = rLastFoundList; +- rNodeName += OUString::valueOf( (sal_Unicode)'/' ); +- rNodeName += aCfgLocaleStr; +- Sequence< Any > aValues( rCfg.GetProperties( aNames ) ); +- if (aValues.getLength()) +- { +- OSL_ENSURE( aValues.getLength() == 1, "unexpected length of sequence" ); +- Sequence< OUString > aSvcImplNames; +- if (aValues.getConstArray()[0] >>= aSvcImplNames) +- aRes = aSvcImplNames; +- else +- { +- OSL_FAIL( "type mismatch" ); +- } +- } +- } +- +- return aRes; +-} +- +- +-Sequence< OUString > lcl_GetNewEntries( +- const Sequence< OUString > &rLastFoundSvcs, +- const Sequence< OUString > &rAvailSvcs ) +-{ +- sal_Int32 nLen = rAvailSvcs.getLength(); +- Sequence< OUString > aRes( nLen ); +- OUString *pRes = aRes.getArray(); +- sal_Int32 nCnt = 0; +- +- const OUString *pEntry = rAvailSvcs.getConstArray(); +- for (sal_Int32 i = 0; i < nLen; ++i) +- { +- if (!pEntry[i].isEmpty() && !lcl_FindEntry( pEntry[i], rLastFoundSvcs )) +- pRes[ nCnt++ ] = pEntry[i]; +- } +- +- aRes.realloc( nCnt ); +- return aRes; +-} +- +- +-Sequence< OUString > lcl_MergeSeq( +- const Sequence< OUString > &rCfgSvcs, +- const Sequence< OUString > &rNewSvcs ) +-{ +- Sequence< OUString > aRes( rCfgSvcs.getLength() + rNewSvcs.getLength() ); +- OUString *pRes = aRes.getArray(); +- sal_Int32 nCnt = 0; +- +- for (sal_Int32 k = 0; k < 2; ++k) +- { +- // add previously configuerd service first and append +- // new found services at the end +- const Sequence< OUString > &rSeq = k == 0 ? rCfgSvcs : rNewSvcs; +- +- sal_Int32 nLen = rSeq.getLength(); +- const OUString *pEntry = rSeq.getConstArray(); +- for (sal_Int32 i = 0; i < nLen; ++i) +- { +- if (!pEntry[i].isEmpty() && !lcl_FindEntry( pEntry[i], aRes )) +- pRes[ nCnt++ ] = pEntry[i]; +- } +- } +- +- aRes.realloc( nCnt ); +- return aRes; +-} +- +-sal_Int16 SvxLinguConfigUpdate::nNeedUpdating = -1; +-sal_Int32 SvxLinguConfigUpdate::nCurrentDataFilesChangedCheckValue = -1; +- +-void SvxLinguConfigUpdate::UpdateAll( sal_Bool bForceCheck ) +-{ +- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::UpdateAll" ); +- +- if (IsNeedUpdateAll( bForceCheck )) +- { +- typedef OUString OUstring_t; +- typedef Sequence< OUString > Sequence_OUString_t; +- typedef std::map< OUstring_t, Sequence_OUString_t > list_entry_map_t; +- +- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::UpdateAll - updating..." ); +- +- OSL_ENSURE( nNeedUpdating == 1, "SvxLinguConfigUpdate::UpdateAll already updated!" ); +- +- uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() ); +- OSL_ENSURE( xLngSvcMgr.is(), "service manager missing"); +- if (!xLngSvcMgr.is()) +- return; +- +- SvtLinguConfig aCfg; +- +- const int nNumServices = 4; +- const sal_Char * apServices[nNumServices] = { SN_SPELLCHECKER, SN_GRAMMARCHECKER, SN_HYPHENATOR, SN_THESAURUS }; +- const sal_Char * apCurLists[nNumServices] = { "ServiceManager/SpellCheckerList", "ServiceManager/GrammarCheckerList", "ServiceManager/HyphenatorList", "ServiceManager/ThesaurusList" }; +- const sal_Char * apLastFoundLists[nNumServices] = { "ServiceManager/LastFoundSpellCheckers", "ServiceManager/LastFoundGrammarCheckers", "ServiceManager/LastFoundHyphenators", "ServiceManager/LastFoundThesauri" }; +- +- // usage of indices as above: 0 = spell checker, 1 = grammar checker, 2 = hyphenator, 3 = thesaurus +- std::vector< list_entry_map_t > aLastFoundSvcs(nNumServices); +- std::vector< list_entry_map_t > aCurSvcs(nNumServices); +- +- for (int k = 0; k < nNumServices; ++k) +- { +- OUString aService( ::rtl::OUString::createFromAscii( apServices[k] ) ); +- OUString aActiveList( ::rtl::OUString::createFromAscii( apCurLists[k] ) ); +- OUString aLastFoundList( ::rtl::OUString::createFromAscii( apLastFoundLists[k] ) ); +- sal_Int32 i; +- +- // +- // remove configured but not available language/services entries +- // +- Sequence< OUString > aNodeNames( aCfg.GetNodeNames( aActiveList ) ); // list of configured locales +- sal_Int32 nNodeNames = aNodeNames.getLength(); +- const OUString *pNodeName = aNodeNames.getConstArray(); +- for (i = 0; i < nNodeNames; ++i) +- { +- Locale aLocale( SvxCreateLocale( MsLangId::convertIsoStringToLanguage(pNodeName[i]) ) ); +- Sequence< OUString > aCfgSvcs( +- xLngSvcMgr->getConfiguredServices( aService, aLocale )); +- Sequence< OUString > aAvailSvcs( +- xLngSvcMgr->getAvailableServices( aService, aLocale )); +-#if OSL_DEBUG_LEVEL > 1 +- const OUString * pCfgSvcs = aCfgSvcs.getConstArray(); +- const OUString * pAvailSvcs = aAvailSvcs.getConstArray(); +- (void) pCfgSvcs; +- (void) pAvailSvcs; +-#endif +- aCfgSvcs = lcl_RemoveMissingEntries( aCfgSvcs, aAvailSvcs ); +- +- aCurSvcs[k][ pNodeName[i] ] = aCfgSvcs; +- } +- +- // +- // add new available language/servcice entries +- // +- uno::Reference< XAvailableLocales > xAvail( xLngSvcMgr, UNO_QUERY ); +- Sequence< Locale > aAvailLocales( xAvail->getAvailableLocales(aService) ); +- sal_Int32 nAvailLocales = aAvailLocales.getLength(); +- const Locale *pAvailLocale = aAvailLocales.getConstArray(); +- for (i = 0; i < nAvailLocales; ++i) +- { +- Sequence< OUString > aAvailSvcs( +- xLngSvcMgr->getAvailableServices( aService, pAvailLocale[i] )); +- Sequence< OUString > aLastSvcs( +- lcl_GetLastFoundSvcs( aCfg, aLastFoundList , pAvailLocale[i] )); +- Sequence< OUString > aNewSvcs = +- lcl_GetNewEntries( aLastSvcs, aAvailSvcs ); +-#if OSL_DEBUG_LEVEL > 1 +- const OUString * pAvailSvcs = aAvailSvcs.getConstArray(); +- const OUString * pLastSvcs = aLastSvcs.getConstArray(); +- const OUString * pNewSvcs = aNewSvcs.getConstArray(); +- (void) pAvailSvcs; +- (void) pLastSvcs; +- (void) pNewSvcs; +-#endif +- +- OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( +- SvxLocaleToLanguage( pAvailLocale[i] ) ) ); +- Sequence< OUString > aCfgSvcs( aCurSvcs[k][ aCfgLocaleStr ] ); +- +- // merge services list (previously configured to be listed first). +- aCfgSvcs = lcl_MergeSeq( aCfgSvcs, aNewSvcs ); +- +-/* +- // there is at most one Hyphenator per language allowed +- // to be configured, thus we only use the first one found. +- if (k == 2 && aCfgSvcs.getLength() > 1) +- aCfgSvcs.realloc(1); +-*/ +- aCurSvcs[k][ aCfgLocaleStr ] = aCfgSvcs; +- } +- +- // +- // set last found services to currently available ones +- // +- for (i = 0; i < nAvailLocales; ++i) +- { +- Sequence< OUString > aSvcImplNames( +- xLngSvcMgr->getAvailableServices( aService, pAvailLocale[i] ) ); +- +-#if OSL_DEBUG_LEVEL > 1 +- sal_Int32 nSvcs = aSvcImplNames.getLength(); +- const OUString *pSvcImplName = aSvcImplNames.getConstArray(); +- for (sal_Int32 j = 0; j < nSvcs; ++j) +- { +- OUString aImplName( pSvcImplName[j] ); +- } +-#endif +- +- OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( +- SvxLocaleToLanguage( pAvailLocale[i] ) ) ); +- aLastFoundSvcs[k][ aCfgLocaleStr ] = aSvcImplNames; +- } +- } +- +- // +- // write new data back to configuration +- // +- for (int k = 0; k < nNumServices; ++k) +- { +- for (int i = 0; i < 2; ++i) +- { +- const sal_Char *pSubNodeName = (i == 0) ? apCurLists[k] : apLastFoundLists[k]; +- OUString aSubNodeName( ::rtl::OUString::createFromAscii(pSubNodeName) ); +- +- list_entry_map_t &rCurMap = (i == 0) ? aCurSvcs[k] : aLastFoundSvcs[k]; +- list_entry_map_t::const_iterator aIt( rCurMap.begin() ); +- sal_Int32 nVals = static_cast< sal_Int32 >( rCurMap.size() ); +- Sequence< PropertyValue > aNewValues( nVals ); +- PropertyValue *pNewValue = aNewValues.getArray(); +- while (aIt != rCurMap.end()) +- { +- OUString aCfgEntryName( aSubNodeName ); +- aCfgEntryName += OUString::valueOf( (sal_Unicode) '/' ); +- aCfgEntryName += (*aIt).first; +- +-#if OSL_DEBUG_LEVEL > 1 +- Sequence< OUString > aSvcImplNames( (*aIt).second ); +- sal_Int32 nSvcs = aSvcImplNames.getLength(); +- const OUString *pSvcImplName = aSvcImplNames.getConstArray(); +- for (sal_Int32 j = 0; j < nSvcs; ++j) +- { +- OUString aImplName( pSvcImplName[j] ); +- } +-#endif +- pNewValue->Name = aCfgEntryName; +- pNewValue->Value <<= (*aIt).second; +- ++pNewValue; +- ++aIt; +- } +- OSL_ENSURE( pNewValue - aNewValues.getArray() == nVals, +- "possible mismatch of sequence size and property number" ); +- +- { +- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::UpdateAll - ReplaceSetProperties" ); +- // add new or replace existing entries. +- sal_Bool bRes = aCfg.ReplaceSetProperties( aSubNodeName, aNewValues ); +- if (!bRes) +- { +-#if OSL_DEBUG_LEVEL > 1 +- OSL_FAIL( "failed to set new configuration values" ); +-#endif +- } +- } +- } +- } +- OSL_ENSURE( nCurrentDataFilesChangedCheckValue != -1, "SvxLinguConfigUpdate::UpdateAll DataFilesChangedCheckValue not yet calculated!" ); +- Any aAny; +- +- // for the time being (developer builds until OOo 3.0) +- // we should always check for everything available +- // otherwise we may miss a new installed extension dicitonary +- // just because e.g. the spellchecker is not asked what +- // languages it does support currently... +- // Since the check is on-demand occuring and executed once it should +- // not be too troublesome. +- // In OOo 3.0 we will not need the respective code anymore at all. +-// aAny <<= nCurrentDataFilesChangedCheckValue; +- aAny <<= (sal_Int32) -1; // keep the value set to 'need to check' +- +- aCfg.SetProperty( A2OU( "DataFilesChangedCheckValue" ), aAny ); +- +- //! Note 1: the new values are commited when the 'aCfg' object +- //! gets destroyed. +- //! Note 2: the new settings in the configuration get applied +- //! because the 'LngSvcMgr' (in linguistic/source/lngsvcmgr.hxx) +- //! listens to the configuration for changes of the relevant +- //! properties and then applies the new settings. +- +- // nothing needs to be done anymore +- nNeedUpdating = 0; +- } +-} +- +- +-sal_Int32 SvxLinguConfigUpdate::CalcDataFilesChangedCheckValue() +-{ +- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::CalcDataFilesChangedCheckValue" ); +- +- sal_Int32 nHashVal = 0; +- // nothing to be checked anymore since those old directory paths are gone by now +- return nHashVal; +-} +- +- +-sal_Bool SvxLinguConfigUpdate::IsNeedUpdateAll( sal_Bool bForceCheck ) +-{ +- RTL_LOGFILE_CONTEXT( aLog, "svx: SvxLinguConfigUpdate::IsNeedUpdateAll" ); +- if (nNeedUpdating == -1 || bForceCheck ) // need to check if updating is necessary +- { +- // calculate hash value for current data files +- nCurrentDataFilesChangedCheckValue = CalcDataFilesChangedCheckValue(); +- +- // compare hash value and check value to see if anything has changed +- // and thus the configuration needs to be updated +- SvtLinguOptions aLinguOpt; +- SvtLinguConfig aCfg; +- aCfg.GetOptions( aLinguOpt ); +- nNeedUpdating = (nCurrentDataFilesChangedCheckValue == aLinguOpt.nDataFilesChangedCheckValue) ? 0 : 1; +- } +- OSL_ENSURE( nNeedUpdating != -1, +- "need for linguistic configuration update should have been already checked." ); +- +- return nNeedUpdating == 1; +-} +- + + //! Dummy implementation in order to avoid loading of lingu DLL + //! when only the XSupportedLocales interface is used. +@@ -520,10 +158,6 @@ + + void ThesDummy_Impl::GetThes_Impl() + { +- // update configuration before accessing the service +- if (SvxLinguConfigUpdate::IsNeedUpdateAll()) +- SvxLinguConfigUpdate::UpdateAll(); +- + if (!xThes.is()) + { + uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() ); +@@ -543,8 +177,7 @@ + ThesDummy_Impl::getLocales() + throw(uno::RuntimeException) + { +- if (!SvxLinguConfigUpdate::IsNeedUpdateAll()) // configuration already update and thus lingu DLL's already loaded ? +- GetThes_Impl(); ++ GetThes_Impl(); + if (xThes.is()) + return xThes->getLocales(); + else if (!pLocaleSeq) // if not already loaded save startup time by avoiding loading them now +@@ -557,8 +190,7 @@ + ThesDummy_Impl::hasLocale( const lang::Locale& rLocale ) + throw(uno::RuntimeException) + { +- if (!SvxLinguConfigUpdate::IsNeedUpdateAll()) // configuration already update and thus lingu DLL's already loaded ? +- GetThes_Impl(); ++ GetThes_Impl(); + if (xThes.is()) + return xThes->hasLocale( rLocale ); + else if (!pLocaleSeq) // if not already loaded save startup time by avoiding loading them now +@@ -632,10 +264,6 @@ + + void SpellDummy_Impl::GetSpell_Impl() + { +- // update configuration before accessing the service +- if (SvxLinguConfigUpdate::IsNeedUpdateAll()) +- SvxLinguConfigUpdate::UpdateAll(); +- + if (!xSpell.is()) + { + uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() ); +@@ -748,10 +376,6 @@ + + void HyphDummy_Impl::GetHyph_Impl() + { +- // update configuration before accessing the service +- if (SvxLinguConfigUpdate::IsNeedUpdateAll()) +- SvxLinguConfigUpdate::UpdateAll(); +- + if (!xHyph.is()) + { + uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() ); +diff -ru libreoffice-3.5.5.3.orig/linguistic/Library_lng.mk libreoffice-3.5.5.3/linguistic/Library_lng.mk +--- libreoffice-3.5.5.3.orig/linguistic/Library_lng.mk 2012-07-13 12:23:35.568866084 +0100 ++++ libreoffice-3.5.5.3/linguistic/Library_lng.mk 2012-07-16 08:49:27.810226966 +0100 +@@ -56,6 +56,7 @@ + tl \ + ucbhelper \ + utl \ ++ vcl \ + xo \ + $(gb_STDLIBS) \ + )) +diff -ru libreoffice-3.5.5.3.orig/linguistic/prj/build.lst libreoffice-3.5.5.3/linguistic/prj/build.lst +--- libreoffice-3.5.5.3.orig/linguistic/prj/build.lst 2012-07-13 12:23:35.611866523 +0100 ++++ libreoffice-3.5.5.3/linguistic/prj/build.lst 2012-07-16 08:49:27.820227082 +0100 +@@ -1,2 +1,2 @@ +-lg linguistic : svl xmloff ucbhelper comphelper ICU:icu LIBXSLT:libxslt NULL ++lg linguistic : svl vcl xmloff ucbhelper comphelper ICU:icu LIBXSLT:libxslt NULL + lg linguistic\prj nmake - all lg_prj NULL +diff -ru libreoffice-3.5.5.3.orig/linguistic/source/lngsvcmgr.cxx libreoffice-3.5.5.3/linguistic/source/lngsvcmgr.cxx +--- libreoffice-3.5.5.3.orig/linguistic/source/lngsvcmgr.cxx 2012-07-13 12:23:35.585866257 +0100 ++++ libreoffice-3.5.5.3/linguistic/source/lngsvcmgr.cxx 2012-07-16 08:49:27.829227184 +0100 +@@ -27,6 +27,7 @@ + ************************************************************************/ + + ++#include + #include + #include + #include +@@ -270,8 +271,6 @@ + } + } + +- +-//IMPL_LINK( LngSvcMgrListenerHelper, TimeOut, Timer*, pTimer ) + long LngSvcMgrListenerHelper::Timeout() + { + osl::MutexGuard aGuard( GetLinguMutex() ); +@@ -483,11 +482,98 @@ + pNames[2] = "ServiceManager/HyphenatorList"; + pNames[3] = "ServiceManager/ThesaurusList"; + EnableNotification( aNames ); ++ ++ UpdateAll(); ++ ++ aUpdateTimer.SetTimeout(500); ++ aUpdateTimer.SetTimeoutHdl(LINK(this, LngSvcMgr, updateAndBroadcast)); ++ ++ // request to be notified if an extension has been added/removed ++ uno::Reference xContext(comphelper::getProcessComponentContext()); ++ ++ uno::Reference xExtensionManager( ++ deployment::ExtensionManager::get(xContext)); ++ if (xExtensionManager.is()) ++ { ++ xMB = uno::Reference(xExtensionManager, uno::UNO_QUERY_THROW); ++ ++ uno::Reference xListener(this); ++ xMB->addModifyListener( xListener ); ++ } ++} ++ ++// ::com::sun::star::util::XModifyListener ++void LngSvcMgr::modified(const lang::EventObject&) ++ throw(uno::RuntimeException) ++{ ++ osl::MutexGuard aGuard(GetLinguMutex()); ++ //assume that if an extension has been added/removed that ++ //it might be a dictionary extension, so drop our cache ++ ++ delete pAvailSpellSvcs; ++ pAvailSpellSvcs = NULL; ++ delete pAvailGrammarSvcs; ++ pAvailGrammarSvcs = NULL; ++ delete pAvailHyphSvcs; ++ pAvailHyphSvcs = NULL; ++ delete pAvailThesSvcs; ++ pAvailThesSvcs = NULL; ++ ++ //schedule in an update to execute in the main thread ++ aUpdateTimer.Start(); ++} ++ ++//run update, and inform everyone that dictionaries (may) have changed, this ++//needs to be run in the main thread because ++//utl::ConfigChangeListener_Impl::changesOccurred grabs the SolarMutex and we ++//get notified that an extension was added from an extension manager thread ++IMPL_LINK_NOARG(LngSvcMgr, updateAndBroadcast) ++{ ++ osl::MutexGuard aGuard( GetLinguMutex() ); ++ ++ UpdateAll(); ++ ++ if (pListenerHelper) ++ { ++ pListenerHelper->AddLngSvcEvt( ++ linguistic2::LinguServiceEventFlags::SPELL_CORRECT_WORDS_AGAIN | ++ linguistic2::LinguServiceEventFlags::SPELL_WRONG_WORDS_AGAIN | ++ linguistic2::LinguServiceEventFlags::PROOFREAD_AGAIN | ++ linguistic2::LinguServiceEventFlags::HYPHENATE_AGAIN ); ++ } ++ ++ return 0; + } + ++void LngSvcMgr::stopListening() ++{ ++ osl::MutexGuard aGuard(GetLinguMutex()); ++ ++ if (xMB.is()) ++ { ++ try ++ { ++ uno::Reference xListener(this); ++ xMB->removeModifyListener(xListener); ++ } ++ catch (const uno::Exception&) ++ { ++ } ++ ++ xMB.clear(); ++ } ++} ++ ++void LngSvcMgr::disposing(const lang::EventObject&) ++ throw (uno::RuntimeException) ++{ ++ stopListening(); ++} + + LngSvcMgr::~LngSvcMgr() + { ++ stopListening(); ++ + // memory for pSpellDsp, pHyphDsp, pThesDsp, pListenerHelper + // will be freed in the destructor of the respective Reference's + // xSpellDsp, xGrammarDsp, xHyphDsp, xThesDsp +@@ -498,6 +584,252 @@ + delete pAvailThesSvcs; + } + ++namespace ++{ ++ using lang::Locale; ++ using uno::Any; ++ using uno::Sequence; ++ ++ sal_Bool lcl_FindEntry( const OUString &rEntry, const Sequence< OUString > &rCfgSvcs ) ++ { ++ sal_Int32 nRes = -1; ++ sal_Int32 nEntries = rCfgSvcs.getLength(); ++ const OUString *pEntry = rCfgSvcs.getConstArray(); ++ for (sal_Int32 i = 0; i < nEntries && nRes == -1; ++i) ++ { ++ if (rEntry == pEntry[i]) ++ nRes = i; ++ } ++ return nRes != -1; ++ } ++ ++ Sequence< OUString > lcl_GetLastFoundSvcs( ++ SvtLinguConfig &rCfg, ++ const OUString &rLastFoundList , ++ const Locale &rAvailLocale ) ++ { ++ Sequence< OUString > aRes; ++ ++ OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( ++ LocaleToLanguage( rAvailLocale ) ) ); ++ ++ Sequence< OUString > aNodeNames( rCfg.GetNodeNames(rLastFoundList) ); ++ sal_Bool bFound = lcl_FindEntry( aCfgLocaleStr, aNodeNames); ++ ++ if (bFound) ++ { ++ Sequence< OUString > aNames(1); ++ OUString &rNodeName = aNames.getArray()[0]; ++ rNodeName = rLastFoundList; ++ rNodeName += OUString::valueOf( (sal_Unicode)'/' ); ++ rNodeName += aCfgLocaleStr; ++ Sequence< Any > aValues( rCfg.GetProperties( aNames ) ); ++ if (aValues.getLength()) ++ { ++ OSL_ENSURE( aValues.getLength() == 1, "unexpected length of sequence" ); ++ Sequence< OUString > aSvcImplNames; ++ if (aValues.getConstArray()[0] >>= aSvcImplNames) ++ aRes = aSvcImplNames; ++ else ++ { ++ OSL_FAIL( "type mismatch" ); ++ } ++ } ++ } ++ ++ return aRes; ++ } ++ ++ Sequence< OUString > lcl_RemoveMissingEntries( ++ const Sequence< OUString > &rCfgSvcs, ++ const Sequence< OUString > &rAvailSvcs ) ++ { ++ Sequence< OUString > aRes( rCfgSvcs.getLength() ); ++ OUString *pRes = aRes.getArray(); ++ sal_Int32 nCnt = 0; ++ ++ sal_Int32 nEntries = rCfgSvcs.getLength(); ++ const OUString *pEntry = rCfgSvcs.getConstArray(); ++ for (sal_Int32 i = 0; i < nEntries; ++i) ++ { ++ if (!pEntry[i].isEmpty() && lcl_FindEntry( pEntry[i], rAvailSvcs )) ++ pRes[ nCnt++ ] = pEntry[i]; ++ } ++ ++ aRes.realloc( nCnt ); ++ return aRes; ++ } ++ ++ Sequence< OUString > lcl_GetNewEntries( ++ const Sequence< OUString > &rLastFoundSvcs, ++ const Sequence< OUString > &rAvailSvcs ) ++ { ++ sal_Int32 nLen = rAvailSvcs.getLength(); ++ Sequence< OUString > aRes( nLen ); ++ OUString *pRes = aRes.getArray(); ++ sal_Int32 nCnt = 0; ++ ++ const OUString *pEntry = rAvailSvcs.getConstArray(); ++ for (sal_Int32 i = 0; i < nLen; ++i) ++ { ++ if (!pEntry[i].isEmpty() && !lcl_FindEntry( pEntry[i], rLastFoundSvcs )) ++ pRes[ nCnt++ ] = pEntry[i]; ++ } ++ ++ aRes.realloc( nCnt ); ++ return aRes; ++ } ++ ++ Sequence< OUString > lcl_MergeSeq( ++ const Sequence< OUString > &rCfgSvcs, ++ const Sequence< OUString > &rNewSvcs ) ++ { ++ Sequence< OUString > aRes( rCfgSvcs.getLength() + rNewSvcs.getLength() ); ++ OUString *pRes = aRes.getArray(); ++ sal_Int32 nCnt = 0; ++ ++ for (sal_Int32 k = 0; k < 2; ++k) ++ { ++ // add previously configuerd service first and append ++ // new found services at the end ++ const Sequence< OUString > &rSeq = k == 0 ? rCfgSvcs : rNewSvcs; ++ ++ sal_Int32 nLen = rSeq.getLength(); ++ const OUString *pEntry = rSeq.getConstArray(); ++ for (sal_Int32 i = 0; i < nLen; ++i) ++ { ++ if (!pEntry[i].isEmpty() && !lcl_FindEntry( pEntry[i], aRes )) ++ pRes[ nCnt++ ] = pEntry[i]; ++ } ++ } ++ ++ aRes.realloc( nCnt ); ++ return aRes; ++ } ++} ++ ++void LngSvcMgr::UpdateAll() ++{ ++ using beans::PropertyValue; ++ using lang::Locale; ++ using uno::Sequence; ++ ++ typedef OUString OUstring_t; ++ typedef Sequence< OUString > Sequence_OUString_t; ++ typedef std::map< OUstring_t, Sequence_OUString_t > list_entry_map_t; ++ ++ SvtLinguConfig aCfg; ++ ++ const int nNumServices = 4; ++ const sal_Char * apServices[nNumServices] = { SN_SPELLCHECKER, SN_GRAMMARCHECKER, SN_HYPHENATOR, SN_THESAURUS }; ++ const sal_Char * apCurLists[nNumServices] = { "ServiceManager/SpellCheckerList", "ServiceManager/GrammarCheckerList", "ServiceManager/HyphenatorList", "ServiceManager/ThesaurusList" }; ++ const sal_Char * apLastFoundLists[nNumServices] = { "ServiceManager/LastFoundSpellCheckers", "ServiceManager/LastFoundGrammarCheckers", "ServiceManager/LastFoundHyphenators", "ServiceManager/LastFoundThesauri" }; ++ ++ // usage of indices as above: 0 = spell checker, 1 = grammar checker, 2 = hyphenator, 3 = thesaurus ++ std::vector< list_entry_map_t > aLastFoundSvcs(nNumServices); ++ std::vector< list_entry_map_t > aCurSvcs(nNumServices); ++ ++ for (int k = 0; k < nNumServices; ++k) ++ { ++ OUString aService( ::rtl::OUString::createFromAscii( apServices[k] ) ); ++ OUString aActiveList( ::rtl::OUString::createFromAscii( apCurLists[k] ) ); ++ OUString aLastFoundList( ::rtl::OUString::createFromAscii( apLastFoundLists[k] ) ); ++ sal_Int32 i; ++ ++ // ++ // remove configured but not available language/services entries ++ // ++ Sequence< OUString > aNodeNames( aCfg.GetNodeNames( aActiveList ) ); // list of configured locales ++ sal_Int32 nNodeNames = aNodeNames.getLength(); ++ const OUString *pNodeName = aNodeNames.getConstArray(); ++ for (i = 0; i < nNodeNames; ++i) ++ { ++ Locale aLocale( CreateLocale( MsLangId::convertIsoStringToLanguage(pNodeName[i]) ) ); ++ Sequence< OUString > aCfgSvcs( getConfiguredServices( aService, aLocale )); ++ Sequence< OUString > aAvailSvcs( getAvailableServices( aService, aLocale )); ++ ++ aCfgSvcs = lcl_RemoveMissingEntries( aCfgSvcs, aAvailSvcs ); ++ ++ aCurSvcs[k][ pNodeName[i] ] = aCfgSvcs; ++ } ++ ++ // ++ // add new available language/service entries ++ // and ++ // set last found services to currently available ones ++ // ++ Sequence< Locale > aAvailLocales( getAvailableLocales(aService) ); ++ sal_Int32 nAvailLocales = aAvailLocales.getLength(); ++ const Locale *pAvailLocale = aAvailLocales.getConstArray(); ++ for (i = 0; i < nAvailLocales; ++i) ++ { ++ OUString aCfgLocaleStr( MsLangId::convertLanguageToIsoString( ++ LocaleToLanguage( pAvailLocale[i] ) ) ); ++ ++ Sequence< OUString > aAvailSvcs( getAvailableServices( aService, pAvailLocale[i] )); ++ ++ aLastFoundSvcs[k][ aCfgLocaleStr ] = aAvailSvcs; ++ ++ Sequence< OUString > aLastSvcs( ++ lcl_GetLastFoundSvcs( aCfg, aLastFoundList , pAvailLocale[i] )); ++ Sequence< OUString > aNewSvcs = ++ lcl_GetNewEntries( aLastSvcs, aAvailSvcs ); ++ ++ Sequence< OUString > aCfgSvcs( aCurSvcs[k][ aCfgLocaleStr ] ); ++ ++ // merge services list (previously configured to be listed first). ++ aCfgSvcs = lcl_MergeSeq( aCfgSvcs, aNewSvcs ); ++ ++ aCurSvcs[k][ aCfgLocaleStr ] = aCfgSvcs; ++ } ++ } ++ ++ // ++ // write new data back to configuration ++ // ++ for (int k = 0; k < nNumServices; ++k) ++ { ++ for (int i = 0; i < 2; ++i) ++ { ++ const sal_Char *pSubNodeName = (i == 0) ? apCurLists[k] : apLastFoundLists[k]; ++ OUString aSubNodeName( ::rtl::OUString::createFromAscii(pSubNodeName) ); ++ ++ list_entry_map_t &rCurMap = (i == 0) ? aCurSvcs[k] : aLastFoundSvcs[k]; ++ list_entry_map_t::const_iterator aIt( rCurMap.begin() ); ++ sal_Int32 nVals = static_cast< sal_Int32 >( rCurMap.size() ); ++ Sequence< PropertyValue > aNewValues( nVals ); ++ PropertyValue *pNewValue = aNewValues.getArray(); ++ while (aIt != rCurMap.end()) ++ { ++ OUString aCfgEntryName( aSubNodeName ); ++ aCfgEntryName += OUString::valueOf( (sal_Unicode) '/' ); ++ aCfgEntryName += (*aIt).first; ++ ++ pNewValue->Name = aCfgEntryName; ++ pNewValue->Value <<= (*aIt).second; ++ ++pNewValue; ++ ++aIt; ++ } ++ OSL_ENSURE( pNewValue - aNewValues.getArray() == nVals, ++ "possible mismatch of sequence size and property number" ); ++ ++ { ++ // add new or replace existing entries. ++ sal_Bool bRes = aCfg.ReplaceSetProperties( aSubNodeName, aNewValues ); ++ if (!bRes) ++ { ++#if OSL_DEBUG_LEVEL > 1 ++ OSL_FAIL( "failed to set new configuration values" ); ++#endif ++ } ++ } ++ } ++ } ++ ++ //The new settings in the configuration get applied ! because we are ++ //listening to the configuration for changes of the relevant ! properties ++ //and Notify applies the new settings. ++} + + void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames ) + { +@@ -1263,32 +1595,21 @@ + + if (0 == rServiceName.compareToAscii( SN_SPELLCHECKER )) + { +- // don't used cached data here (force re-evaluation in order to have downloaded dictionaries +- // already found without the need to restart the office +- delete pAvailSpellSvcs; pAvailSpellSvcs = 0; + GetAvailableSpellSvcs_Impl(); + pInfoArray = pAvailSpellSvcs; + } + else if (0 == rServiceName.compareToAscii( SN_GRAMMARCHECKER )) + { +-// disable force re-loading of the cache - re-start needed for new grammer checkers: fdo#35270 +-// delete pAvailGrammarSvcs; pAvailGrammarSvcs = 0; + GetAvailableGrammarSvcs_Impl(); + pInfoArray = pAvailGrammarSvcs; + } + else if (0 == rServiceName.compareToAscii( SN_HYPHENATOR )) + { +- // don't used cached data here (force re-evaluation in order to have downloaded dictionaries +- // already found without the need to restart the office +- delete pAvailHyphSvcs; pAvailHyphSvcs = 0; + GetAvailableHyphSvcs_Impl(); + pInfoArray = pAvailHyphSvcs; + } + else if (0 == rServiceName.compareToAscii( SN_THESAURUS )) + { +- // don't used cached data here (force re-evaluation in order to have downloaded dictionaries +- // already found without the need to restart the office +- delete pAvailThesSvcs; pAvailThesSvcs = 0; + GetAvailableThesSvcs_Impl(); + pInfoArray = pAvailThesSvcs; + } +diff -ru libreoffice-3.5.5.3.orig/linguistic/source/lngsvcmgr.hxx libreoffice-3.5.5.3/linguistic/source/lngsvcmgr.hxx +--- libreoffice-3.5.5.3.orig/linguistic/source/lngsvcmgr.hxx 2012-07-13 12:23:35.598866391 +0100 ++++ libreoffice-3.5.5.3/linguistic/source/lngsvcmgr.hxx 2012-07-16 08:49:27.833227231 +0100 +@@ -30,7 +30,7 @@ + #define _LINGUISTIC_LNGSVCMGR_HXX_ + + #include // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type +-#include // helper for implementations ++#include // helper for implementations + #include //OMultiTypeInterfaceContainerHelper + + +@@ -39,8 +39,10 @@ + #include + #include + #include ++#include ++#include + #include +- ++#include + #include + + #include "linguistic/misc.hxx" +@@ -65,12 +67,13 @@ + + + class LngSvcMgr : +- public cppu::WeakImplHelper4 ++ public cppu::WeakImplHelper5 + < + com::sun::star::linguistic2::XLinguServiceManager, + com::sun::star::linguistic2::XAvailableLocales, + com::sun::star::lang::XComponent, +- com::sun::star::lang::XServiceInfo ++ com::sun::star::lang::XServiceInfo, ++ com::sun::star::util::XModifyListener + >, + private utl::ConfigItem + { +@@ -90,6 +93,12 @@ + com::sun::star::uno::Reference< + ::com::sun::star::lang::XEventListener > xListenerHelper; + ++ com::sun::star::uno::Reference< ++ ::com::sun::star::util::XModifyBroadcaster> xMB; ++ ++ Timer aUpdateTimer; ++ ++ + com::sun::star::uno::Sequence< + com::sun::star::lang::Locale > aAvailSpellLocales; + com::sun::star::uno::Sequence< +@@ -140,6 +149,10 @@ + virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString > &rPropertyNames ); + virtual void Commit(); + ++ void UpdateAll(); ++ void stopListening(); ++ DECL_LINK( updateAndBroadcast, void* ); ++ + public: + LngSvcMgr(); + virtual ~LngSvcMgr(); +@@ -167,6 +180,11 @@ + virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); + ++ // XEventListener ++ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& rSource ) throw(::com::sun::star::uno::RuntimeException); ++ ++ // XModifyListener ++ virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& rEvent ) throw(::com::sun::star::uno::RuntimeException); + + static inline ::rtl::OUString getImplementationName_Static(); + static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static() throw(); diff --git a/0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch b/0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch new file mode 100644 index 0000000..d434c9b --- /dev/null +++ b/0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch @@ -0,0 +1,37 @@ +From 4fc8af89257436b9cad70de574a166aa11ec42f1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 9 Jul 2012 12:51:16 +0100 +Subject: [PATCH] Resolves: rhbz#838368 --view ignored while -view accepted + +and our ooviewdoc script uses --view + +Change-Id: Ice708f1c72c8d29d411ba21e93cb19876af13881 +--- + desktop/source/app/cmdlineargs.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx +index af7ee26..c67db8c 100644 +--- a/desktop/source/app/cmdlineargs.cxx ++++ b/desktop/source/app/cmdlineargs.cxx +@@ -217,7 +217,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) + bStartEvent = false; + bDisplaySpec = false; + } +- else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-view" ))) ++ else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "view" ))) + { + // open in viewmode + bOpenEvent = false; +@@ -229,7 +229,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) + bStartEvent = false; + bDisplaySpec = false; + } +- else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-show" ))) ++ else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "show" ))) + { + // open in viewmode + bOpenEvent = false; +-- +1.7.10.4 + diff --git a/0001-disable-failing-check.patch b/0001-disable-failing-check.patch new file mode 100644 index 0000000..336f1c1 --- /dev/null +++ b/0001-disable-failing-check.patch @@ -0,0 +1,25 @@ +From b2d583e88ac53aafe96e71eb9b1068f6014100b7 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Thu, 21 Jun 2012 12:14:39 +0200 +Subject: [PATCH] disable failing check + +Change-Id: I746cd1178c40c78127e04dbc1876de052794bd57 +--- + sdext/Module_sdext.mk | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/sdext/Module_sdext.mk b/sdext/Module_sdext.mk +index 6280984..ffafa6b 100644 +--- a/sdext/Module_sdext.mk ++++ b/sdext/Module_sdext.mk +@@ -50,7 +50,6 @@ $(eval $(call gb_Module_add_targets,sdext,\ + )) + + $(eval $(call gb_Module_add_check_targets,sdext,\ +- CppunitTest_pdfimport \ + )) + endif + +-- +1.7.10.2 + diff --git a/disable-qtunixeventloop.patch b/disable-qtunixeventloop.patch deleted file mode 100644 index ccd035d..0000000 --- a/disable-qtunixeventloop.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./vcl/unx/kde4/KDEXLib.cxx 2011-09-19 15:55:17.000000000 +0000 -+++ ./vcl/unx/kde4/KDEXLib.cxx 2011-09-19 15:55:34.000000000 +0000 -@@ -58,7 +58,7 @@ - #include - - #if QT_VERSION >= QT_VERSION_CHECK( 4, 8, 1 ) --#define QT_UNIX_EVENT_LOOP_SUPPORT -+// #define QT_UNIX_EVENT_LOOP_SUPPORT - #ifdef KDE_HAVE_GLIB - #define GLIB_EVENT_LOOP_SUPPORT - #endif diff --git a/fix-build.diff b/fix-build.diff new file mode 100644 index 0000000..dc12541 --- /dev/null +++ b/fix-build.diff @@ -0,0 +1,11 @@ +--- configure.in.tv 2012-08-02 10:07:41.303904565 +0000 ++++ configure.in 2012-08-02 10:08:26.854002828 +0000 +@@ -11707,7 +11707,7 @@ + echo "setting up the build environment variables..." + + if test -z "$COMPATH"; then +- AC_MSG_ERROR([No compiler found.]) ++ COMPATH=/usr/bin + fi + AC_SUBST(COMPATH) + diff --git a/glib2.31.patch b/glib2.31.patch deleted file mode 100644 index 2039a17..0000000 --- a/glib2.31.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./ucb/source/ucp/gvfs/gvfs_content.hxx 2011-11-04 18:24:28.000000000 +0000 -+++ ./ucb/source/ucp/gvfs/gvfs_content.hxx 2011-11-04 18:50:10.000000000 +0000 -@@ -35,7 +35,7 @@ - #include - #include - --#include -+#include - #include - #include - diff --git a/libreoffice-3.4.5-fpicker-kde-4.8.0-compile.patch b/libreoffice-3.4.5-fpicker-kde-4.8.0-compile.patch deleted file mode 100644 index cd49d3b..0000000 --- a/libreoffice-3.4.5-fpicker-kde-4.8.0-compile.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- libreoffice-3.4.5/fpicker/source/unx/kde4/KDE4FilePicker.cxx 2012-04-19 15:41:14.571469364 +0300 -+++ libreoffice-3.4.5/fpicker/source/unx/kde4/KDE4FilePicker.cxx 2012-04-19 15:42:56.414093242 +0300 -@@ -56,7 +56,12 @@ - #define Region QtXRegion - - //kde has an enum that uses this...OO does too -+#define LO_SETTINGS_MOUSE SETTINGS_MOUSE - #undef SETTINGS_MOUSE -+#define LO_SETTINGS_LOCALE SETTINGS_LOCALE -+#undef SETTINGS_LOCALE -+#define LO_SETTINGS_STYLE SETTINGS_STYLE -+#undef SETTINGS_STYLE - - #include - #include -@@ -70,6 +75,13 @@ - - #undef Region - -+#define SETTINGS_MOUSE LO_SETTINGS_MOUSE -+#undef LO_SETTINGS_MOUSE -+#define SETTINGS_LOCALE LO_SETTINGS_LOCALE -+#undef LO_SETTINGS_LOCALE -+#define SETTINGS_STYLE LO_SETTINGS_STYLE -+#undef LO_SETTINGS_STYLE -+ - using namespace ::com::sun::star; - - using namespace ::com::sun::star::ui::dialogs; diff --git a/libreoffice-3.5.2-no-slackwareicons.patch b/libreoffice-3.5.2-no-slackwareicons.patch new file mode 100644 index 0000000..4742de0 --- /dev/null +++ b/libreoffice-3.5.2-no-slackwareicons.patch @@ -0,0 +1,11 @@ +--- libreoffice-3.5.2/sysui/desktop/slackware/makefile.mk.bero 2012-04-06 16:49:47.906638015 +0200 ++++ libreoffice-3.5.2/sysui/desktop/slackware/makefile.mk 2012-04-06 16:49:52.325637730 +0200 +@@ -46,7 +46,7 @@ MENUFILES=$(PKGDIR)$/{$(PRODUCTLIST)}$(P + + .INCLUDE : target.mk + +-.IF "$(OS)" == "LINUX" ++.IF "$(OS)" == "SLACKWARELINUX" + + ALLTAR : $(MENUFILES) + diff --git a/libreoffice-3.5.2.2-icu-49.patch b/libreoffice-3.5.2.2-icu-49.patch new file mode 100644 index 0000000..e5a6a06 --- /dev/null +++ b/libreoffice-3.5.2.2-icu-49.patch @@ -0,0 +1,49 @@ +From 0c08a84c04b166ab6479716e2c33cd444d7e3dbe Mon Sep 17 00:00:00 2001 +From: Arfrever Frehtes Taifersar Arahesis +Date: Mon, 02 Apr 2012 16:46:32 +0000 +Subject: Make ICU build with icu-49 by removing no-longer used variables. + +Signed-off-by: Tomas Chvatal +--- +diff --git a/i18npool/source/breakiterator/data/char.txt b/i18npool/source/breakiterator/data/char.txt +index 8e49a56..acb932e 100644 +--- a/i18npool/source/breakiterator/data/char.txt ++++ b/i18npool/source/breakiterator/data/char.txt +@@ -16,7 +16,6 @@ + $CR = [\p{Grapheme_Cluster_Break = CR}]; + $LF = [\p{Grapheme_Cluster_Break = LF}]; + $Control = [\p{Grapheme_Cluster_Break = Control}]; +-$Prepend = [\p{Grapheme_Cluster_Break = Prepend}]; + $Extend = [\p{Grapheme_Cluster_Break = Extend}]; + $SpacingMark = [\p{Grapheme_Cluster_Break = SpacingMark}]; + # True Indic wants to move by syllables. Break up SpacingMark. This based on Unicode 6.0 data +diff --git a/i18npool/source/breakiterator/data/char_in.txt b/i18npool/source/breakiterator/data/char_in.txt +index 5e1ed67..5ad12a7 100644 +--- a/i18npool/source/breakiterator/data/char_in.txt ++++ b/i18npool/source/breakiterator/data/char_in.txt +@@ -15,7 +15,6 @@ + $CR = [\p{Grapheme_Cluster_Break = CR}]; + $LF = [\p{Grapheme_Cluster_Break = LF}]; + $Control = [\p{Grapheme_Cluster_Break = Control}]; +-$Prepend = [\p{Grapheme_Cluster_Break = Prepend}]; + $Extend = [\p{Grapheme_Cluster_Break = Extend}]; + $SpacingMark = [\p{Grapheme_Cluster_Break = SpacingMark}]; + $BengaliLetter = [\u0985-\u09B9 \u09CE \u09DC-\u09E1 \u09F0-\u09F1]; +@@ -72,7 +71,6 @@ $L ($L | $V | $LV | $LVT); + [^$Control $CR $LF] $Extend; + + [^$Control $CR $LF] $SpacingMark; +-$Prepend [^$Control $CR $LF]; + + + ## ------------------------------------------------- +@@ -94,7 +92,6 @@ $T ($LVT | $T); + + $Extend [^$Control $CR $LF]; + $SpacingMark [^$Control $CR $LF]; +-[^$Control $CR $LF] $Prepend; + + + ## ------------------------------------------------- +-- +cgit v0.9.0.2-2-gbebe diff --git a/libreoffice.rpmlintrc b/libreoffice.rpmlintrc index b379584..33f0e5c 100644 --- a/libreoffice.rpmlintrc +++ b/libreoffice.rpmlintrc @@ -23,3 +23,21 @@ addFilter('E: invalid-desktopfile') # FIXME: Dependencies of the l10n packages should be sorted out better # Not a priority though because directory dependencies work addFilter('E: no-dependency-on') + +# FIXME: +addFilter('E: script-without-shebang') + +# libreoffice-base.x86_64: E: outside-libdir-files (Badness: 1) /usr/bin/lobase +# libreoffice-calc.x86_64: E: outside-libdir-files (Badness: 1) /usr/share/icons/hicolor/scalable/apps/mandriva-rosa-lo-calc_72.svg +# libreoffice-common.x86_64: E: outside-libdir-files (Badness: 1) /usr/share/icons/gnome/48x48/mimetypes/libreoffice-oasis-spreadsheet.png +# libreoffice-draw.x86_64: E: outside-libdir-files (Badness: 1) /usr/bin/lodraw +# libreoffice-impress.x86_64: E: outside-libdir-files (Badness: 1) /usr/share/icons/hicolor/scalable/apps/mandriva-rosa-lo-impress_72.svg +# libreoffice-math.x86_64: E: outside-libdir-files (Badness: 1) /usr/bin/lomath +# libreoffice-writer.x86_64: E: outside-libdir-files (Badness: 1) /usr/bin/loweb +# /usr/bin files for start up libreoffice apps then does not makes sense being +# considerated as libdir-files +addFilter('E: outside-libdir-files') + +# openoffice.org64 in the core package conflicts +addFilter('E: incoherent-version-in-name') + diff --git a/libreoffice.spec b/libreoffice.spec index 679820c..61ed01e 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -6,6 +6,7 @@ %{?_without_l10n: %global l10n 0} %define javaless 1 +%define extensionenabled 1 %define ooname libreoffice %define name libreoffice @@ -14,14 +15,17 @@ #define _binary_payload w9.bzdio #define _binary_payload w9.lzdio #define _source_payload w9.bzdio -%define _binary_payload w1.gzdio -%define _source_payload w1.gzdio +#define _binary_payload w1.gzdio +#define _source_payload w1.gzdio -%define version 3.4.5 -%define release %mkrel 1 +%define _binary_payload w1.xzdio +%define _source_payload w1.xzdio -%define buildver 3.4.5.2 -%define basis basis3.4 +%define version 3.6.1 + +%define release 1 + +%define buildver 3.6.1.2 %define jdkver 1_5_0_11 %define ooodir %{_libdir}/libreoffice %define libdbver 4.2 @@ -33,16 +37,14 @@ %define firefox_plugin libnpsoplugin.so -%define oootarext bz2 +%define oootarext xz %ifarch x86_64 %define distroname Mandriva64 %define jdkver 1.4.2 -%define libsuffix lx %else %define distroname Mandriva %define jdkver 1_5_0_11 -%define libsuffix li %endif %define use_icecream 0 @@ -75,13 +77,17 @@ %{?_with_systemboost: %global use_systemboost 1} %{?_without_systemboost: %global use_systemboost 0} -# (fix to avoid gcc 4.0.2 produces segfaulting javaldx bin which breaks -# building process) -%define optsafe "" +%if %{_use_internal_dependency_generator} +%define __noautoreq libjawt.so\\|libmyspell.so\\|libstlport_gcc.so\\|libmono.so\\|mono +%define __noautoprov libsndfile.so\\|libportaudio.so\\|libdb-4.2.so\\|libdb_java-4.2.so\\|libmyspell.so\\|libstlport_gcc.so\\|librdf.so.0\\|libraptor.so.1\\|libxmlsec1-nss.so.1\\|libxmlsec1.so.1 +%else %define _requires_exceptions libjawt.so\\|libmyspell.so\\|libstlport_gcc.so\\|libmono.so\\|mono %define _provides_exceptions libsndfile.so\\|libportaudio.so\\|libdb-4.2.so\\|libdb_java-4.2.so\\|libmyspell.so\\|libstlport_gcc.so\\|librdf.so.0\\|libraptor.so.1\\|libxmlsec1-nss.so.1\\|libxmlsec1.so.1 +%endif -%define unopkg %{_bindir}/unopkg +%define antpath %{_builddir}/libreoffice-%{version}/apache-ant-1.8.1 + +#define unopkg %{_bindir}/unopkg Summary: Office suite Name: %{name} @@ -89,7 +95,7 @@ Epoch: 1 Version: %{version} Release: %{release} URL: http://www.libreoffice.org -License: LGPL +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 Artistic Group: Office Vendor: Mandriva # Requres to all our packages @@ -99,8 +105,10 @@ Requires: %{name}-draw = %{EVRD} Requires: %{name}-impress = %{EVRD} Requires: %{name}-math = %{EVRD} Requires: %{name}-writer = %{EVRD} -# Suggests: %{name}-dtd-officedocument1.0 = %{version} +Suggests: %{name}-dtd-officedocument1.0 = %{EVRD} +%if %extensionenabled Suggests: %{name}-pdfimport = %{EVRD} +%endif Obsoletes: %{ooname}-go-ooo <= %{version} %ifarch x86_64 Obsoletes: openoffice.org64 <= 1:3.1-4 @@ -136,7 +144,6 @@ BuildRequires: gcc >= 3.2-0.3mdk BuildRequires: gcc-c++ >= 3.2-0.3mdk BuildRequires: glitz-devel BuildRequires: gnutls-devel -BuildRequires: gnome-vfsmm2.6-devel BuildRequires: gperf BuildRequires: imagemagick %if %{use_systemdb} @@ -154,12 +161,12 @@ BuildRequires: libsvg-devel BuildRequires: libgstreamer-plugins-base-devel BuildRequires: xaw-devel BuildRequires: openldap-devel -BuildRequires: portaudio0-devel >= 18.1 +BuildRequires: portaudio-devel >= 18.1 BuildRequires: sndfile-devel BuildRequires: unixODBC-devel -BuildRequires: libxslt-proc >= 1.0.19 -BuildRequires: libxslt-devel -BuildRequires: libxml2-devel >= 2.4.23 +BuildRequires: libxslt-proc >= 1.0.19 +BuildRequires: libxslt-devel +BuildRequires: libxml2-devel %if %{use_mono} BuildRequires: mono-devel BuildRequires: mono-data-sqlite @@ -209,7 +216,9 @@ BuildRequires: qt4-devel BuildRequires: task-kde4-devel BuildRequires: cppunit-devel BuildRequires: redland-devel -%if !%javaless +BuildRequires: postgresql-devel +BuildRequires: librsvg-devel +%if !%{javaless} BuildRequires: ant BuildRequires: hsqldb BuildRequires: jakarta-commons-codec @@ -217,14 +226,15 @@ BuildRequires: jakarta-commons-lang BuildRequires: jakarta-commons-httpclient %endif BuildRequires: graphite2-devel -BuildRequires: textcat-devel BuildRequires: python-translate >= 1.9.0 # STLport-devel 4.5 + private patches are needed BuildConflicts: STLport-devel -BuildRequires: java-devel +BuildRequires: java-devel = 0:1.6.0 +BuildConflicts: java-devel >= 0:1.7.0 +#Gnome Stuff BuildRequires: pkgconfig(ORBit-2.0) -# recent enough rpm with broken unpackaged subpackage check no longer erroring out -#BuildRequires: rpm-build >= 1:5.4.4-27 +BuildRequires: pkgconfig(gconf-2.0) +BuildRequires: pkgconfig(gnome-vfs-2.0) # BuildRequires: jakarta-commons-logging #################################################################### @@ -232,32 +242,17 @@ BuildRequires: pkgconfig(ORBit-2.0) # Sources # #################################################################### -Source0: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-artwork-%{buildver}.tar.%{oootarext} -Source1: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-base-%{buildver}.tar.%{oootarext} -Source2: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-bootstrap-%{buildver}.tar.%{oootarext} -Source3: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-calc-%{buildver}.tar.%{oootarext} -Source4: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-components-%{buildver}.tar.%{oootarext} -Source5: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-extensions-%{buildver}.tar.%{oootarext} -Source6: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-extras-%{buildver}.tar.%{oootarext} -Source7: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-filters-%{buildver}.tar.%{oootarext} -Source8: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-help-%{buildver}.tar.%{oootarext} -Source9: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-impress-%{buildver}.tar.%{oootarext} -Source10: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-libs-core-%{buildver}.tar.%{oootarext} -Source11: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-libs-extern-%{buildver}.tar.%{oootarext} -Source12: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-libs-extern-sys-%{buildver}.tar.%{oootarext} -Source13: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-libs-gui-%{buildver}.tar.%{oootarext} -Source14: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-postprocess-%{buildver}.tar.%{oootarext} -Source15: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-sdk-%{buildver}.tar.%{oootarext} -Source16: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-testing-%{buildver}.tar.%{oootarext} -Source17: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-ure-%{buildver}.tar.%{oootarext} -Source18: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-writer-%{buildver}.tar.%{oootarext} -Source19: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-translations-%{buildver}.tar.%{oootarext} +Source0: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-binfilter-%{buildver}.tar.%{oootarext} +Source1: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-core-%{buildver}.tar.%{oootarext} +Source2: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-dictionaries-%{buildver}.tar.%{oootarext} +Source3: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-help-%{buildver}.tar.%{oootarext} +Source4: http://download.documentfoundation.org/libreoffice/src/%version/%{ooname}-translations-%{buildver}.tar.%{oootarext} Source20: Mandriva-Rosa_Icons.tar.bz2 Source31: http://download.go-oo.org/DEV300/ooo_oxygen_images-2009-06-17.tar.gz Source32: http://hg.services.openoffice.org/binaries/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz -Source36: http://download.go-oo.org/src/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 +Source36: http://dev-www.libreoffice.org/src/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 Source37: http://download.go-oo.org/src/0f63ee487fda8f21fafa767b3c447ac9-ixion-0.2.0.tar.gz Source38: http://hg.services.openoffice.org/binaries/067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz Source39: http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll @@ -267,7 +262,7 @@ Source43: http://hg.services.openoffice.org/binaries/284e768eeda0e2898b0d5bf7e2 Source44: http://hg.services.openoffice.org/binaries/fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz Source45: http://hg.services.openoffice.org/binaries/1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_AFMs-314.tar.gz Source46: http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz -Source47: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip +Source47: http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip Source48: http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip Source49: http://hg.services.openoffice.org/binaries/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip Source50: http://hg.services.openoffice.org/binaries/48a9f787f43a09c0a9b7b00cd1fddbbf-hyphen-2.7.1.tar.gz @@ -275,27 +270,53 @@ Source51: http://hg.services.openoffice.org/binaries/26b3e95ddf3d9c077c480ea4587 Source52: http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz Source54: http://hg.services.openoffice.org/binaries/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip Source55: http://download.go-oo.org/src/ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz +Source62: http://dev-www.libreoffice.org/src/e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2 +Source63: http://dev-www.libreoffice.org/src/7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz +Source64: http://dev-www.libreoffice.org/src/94e7f271e38c976462558b4278590178-libvisio-0.0.19.tar.bz2 + +# jfreereport +Source65: http://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip +Source66: http://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip +Source67: http://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip +Source68: http://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip +Source69: http://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip +Source70: http://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip +Source71: http://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip +Source72: http://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip +Source73: http://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip +Source74: http://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip +Source75: http://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip + #javaless -Source56: http://hg.services.openoffice.org/binaries/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz -Source57: http://dev-www.libreoffice.org/ooo_external/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz -Source58: http://hg.services.openoffice.org/binaries/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz -Source59: http://hg.services.openoffice.org/binaries/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz -Source60: http://archive.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.bz2 -Source61: http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip +Source56: http://hg.services.openoffice.org/binaries/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz +Source57: http://dev-www.libreoffice.org/ooo_external/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz +Source58: http://hg.services.openoffice.org/binaries/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz +Source59: http://hg.services.openoffice.org/binaries/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz +Source60: http://archive.apache.org/dist/ant/binaries/apache-ant-1.8.1-bin.tar.bz2 +Source61: http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip Source100: libreoffice.rpmlintrc +# Upstream: +# http://cgit.freedesktop.org/libreoffice/core/patch/?id=0c08a84c04b166ab6479716e2c33cd444d7e3dbe + +Patch1: openoffice.org-2.0.2.rh188467.printingdefaults.patch +Patch2: openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch +Patch3: libreoffice-3.5.2.2-icu-49.patch Patch4: xulrunner-to-mozila-plugin.pc.diff -Patch5: mdv-sysui-disableslack.diff -Patch6: libreoffice-3.4.5-fpicker-kde-4.8.0-compile.patch -Patch9: vbahelper.visibility.patch -Patch10: disable-qtunixeventloop.patch -Patch11: poppler0.18.1.patch -Patch12: glib2.31.patch +Patch5: libreoffice-3.5.2-no-slackwareicons.patch +Patch6: 0001-disable-failing-check.patch +Patch7: 0001-Resolves-rhbz-836937-insanely-slow-with-Zemberek-ins.patch +Patch8: 0001-Resolves-rhbz-838368-view-ignored-while-view-accepte.patch +Patch9: openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch +Patch10: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch +Patch12: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch +Patch13: openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch + +#MDV patch # bug fix 64789 -Patch13: help-images-mdv64789.patch -# bug fix 64945 (experimental) -Patch14: libreoffice34-gcc462.patch +Patch100: help-images-mdv64789.patch +Patch101: fix-build.diff %description LibreOffice is an Open Source, community-developed, multi-platform @@ -312,7 +333,7 @@ Summary: LibreOffice office suite - database Requires: %{name}-core = %{EVRD} Requires: %{name}-common = %{EVRD} # Heavy java deps -%if !%javaless +%if !%{javaless} Requires: hsqldb %endif Suggests: %{name}-java-common = %{EVRD} @@ -455,8 +476,6 @@ Conflicts: openoffice.org-impress <= 2.3.0.5-1mdv Conflicts: openoffice.org-kde <= 2.3.0.5-1mdv Conflicts: openoffice.org-writer <= 2.3.0.5-1mdv Obsoletes: openoffice.org-core < 1:3.3-1:2011.0 -# Provides: openoffice.org-core = 1:3.3-1:2011.0 -# Provides: openoffice.org-core = %{EVRD} %ifarch x86_64 Conflicts: openoffice.org64 <= 2.1.0 Conflicts: openoffice.org64-base <= 2.3.0.5-1mdv @@ -493,7 +512,6 @@ zipped source of the UNO Java libraries for use in IDEs like eclipse. %package devel-doc Group: Office Summary: LibreOffice SDK - documentation -Requires: %{name}-devel = %{version} # Due to the split Conflicts: openoffice.org <= 2.2.1 Obsoletes: openoffice.org-devel-doc < 1:3.3-1:2011.0 @@ -539,19 +557,19 @@ near drop-in replacement for Microsoft(R) Office. This package contains the drawing component for LibreOffice. -# package dtd-officedocument1.0 -# Group: Office -# Summary: OfficeDocument 1.0 DTD (OpenOffice.org 1.x) -## due to the split -#Conflicts: %{name} <= 2.2.1 -## no need to require -core or -common, see #37559 +%package dtd-officedocument1.0 +Group: Office +Summary: OfficeDocument 1.0 DTD +# due to the split +Conflicts: openoffice.org <= 2.2.1 +# no need to require -core or -common, see #37559 -#%description dtd-officedocument1.0 -#LibreOffice is a full-featured office productivity suite that provides a -#near drop-in replacement for Microsoft(R) Office. +%description dtd-officedocument1.0 +LibreOffice is a full-featured office productivity suite that provides a +near drop-in replacement for Microsoft(R) Office. -# This package contains the Document Type Definition (DTD) of the OpenOffice.org -# 1.x(!) XML file format. +This package contains the Document Type Definition (DTD) of the LibreOffice +1.x(!) XML file format. %package filter-binfilter Group: Office @@ -761,27 +779,6 @@ This package contains the Python bindings for the UNO library. # #This package contains the test data for the OpenOffice.org Java and Basic APIs. -%package testtool -Group: Office -Summary: LibreOffice Automatic Test Programs -Requires: %{name}-common = %{EVRD} -# Due to the split -Conflicts: openoffice.org <= 2.2.1 -Conflicts: openoffice.org-common <= 2.3.0.5-1mdv -Obsoletes: openoffice.org-testtool < 1:3.3-1:2011.0 -%ifarch x86_64 -Conflicts: openoffice.org64 <= 2.2.1 -Conflicts: openoffice.org64-common <= 2.3.0.5-1mdv -Obsoletes: openoffice.org64-testtool <= 1:3.1-4 -%endif - -%description testtool -LibreOffice is a full-featured office productivity suite that provides a -near drop-in replacement for Microsoft(R) Office. - -This package contains the test tools to automatically test the LibreOffice -programs. - %package style-galaxy Group: Office Summary: Default symbol style for LibreOffice @@ -927,6 +924,8 @@ set of APIs exposed by LibreOffice via UNO. Currently the use of Mono for add-ins & scripting inside LibreOffice itself is not supported. +%if %extensionenabled + %package pdfimport Group: Office Summary: LibreOffice office suite - PDF Import extension @@ -974,27 +973,26 @@ Conflicts: %{name}-presenter-screen <= 1:3.2-rc4.0 Presenter Screen extension helps users to see upcoming slides and slide notes of presentations inside a second view not visible for the spectators. -# %package report-builder -# Group: Office -# Summary: LibreOffice office suite - Report Builder extension -# Requires: %{name}-core = %{version}-%{release} -# Requires: %{name}-common = %{version}-%{release} -# Requires: %{name}-base = %{version} +%package report-builder +Group: Office +Summary: LibreOffice office suite - Report Builder extension +Requires: %{name}-core = %{EVRD} +Requires: %{name}-common = %{EVRD} +Requires: %{name}-base = %{EVRD} # Due to the split -# Conflicts: %{name} <= 2.2.1 -# Conflicts: %{name}-common <= 2.3.0.5-1mdv -# Conflicts: %{name}-core <= 2.3.0.5-1mdv -# %ifarch x86_64 -# Conflicts: %{name}64 <= 2.2.1 -# Conflicts: %{name}64-common <= 2.3.0.5-1mdv -# Conflicts: %{name}64-core <= 2.3.0.5-1mdv -# Obsoletes: openoffice.org64-report-builder < 1:3.1-4 -# %endif +Conflicts: openoffice.org <= 2.2.1 +Conflicts: openoffice.org-common <= 2.3.0.5-1mdv +Conflicts: openoffice.org-core <= 2.3.0.5-1mdv +%ifarch x86_64 +Conflicts: openoffice.org64 <= 2.2.1 +Conflicts: openoffice.org64-common <= 2.3.0.5-1mdv +Conflicts: openoffice.org64-core <= 2.3.0.5-1mdv +%endif -# %description report-builder -# By using %{name}-base the Report Builder extesion enables creating of smart and -# professional looking reports. Further the reports can be exported to PDF or -# OpenDocuments formats. +%description report-builder +By using %{name}-base the Report Builder extesion enables creating of smart and +professional looking reports. Further the reports can be exported to PDF or +OpenDocuments formats. %package wiki-publisher Group: Office @@ -1002,7 +1000,7 @@ Summary: LibreOffice office suite - Wiki Publisher extension Requires: %{name}-core = %{EVRD} Requires: %{name}-common = %{EVRD} Requires: %{name}-writer = %{EVRD} -%if !%javaless +%if !%{javaless} Requires: jakarta-commons-codec, jakarta-commons-httpclient Requires: jakarta-commons-lang, jakarta-commons-logging %endif @@ -1045,11 +1043,22 @@ Obsoletes: openoffice.org64-presentation-minimizer <= 1:3.1-4 Conflicts: openoffice.org-presentation-minimizer <= 1:3.2-rc4.0 %description presentation-minimizer -With Presentation Minimizer extesion is possible to reduce the file size of the -presentation by compressing images and removing data not needed in a automatizated -way. +With Presentation Minimizer extesion is possible to reduce the file size +of the presentation by compressing images and removing data not needed in +a automatizated way. -Note: The Presentation Minimizer also works on Microsoft PowerPoint presentations. +Note: The Presentation Minimizer also works on +Microsoft PowerPoint presentations. +%endif + +%package postgresql +Summary: PostgreSQL connector for LibreOffice +Group: Office +Requires: %{name}-base = %{EVRD} + +%description postgresql +A PostgreSQl connector for the database front-end for LibreOffice. Allows +creation and management of PostgreSQL databases through a GUI. %if %l10n @@ -1535,7 +1544,6 @@ Requires: %{ooname}-common = %{EVRD} Requires: locales-fi Requires: fonts-ttf-dejavu Requires: urw-fonts -Requires: %{ooname}-voikko Provides: LibreOffice-l10n-fi Obsoletes: openoffice.org-go-ooo-l10n-fi <= %{version} Suggests: %{ooname}-help-fi = %{EVRD} @@ -2165,10 +2173,6 @@ standard locales system. Summary: Portuguese Brazilian language support for LibreOffice Group: Office Provides: %{ooname}-l10n = %{EVRD} -# Due to alternatives setup, we must have -release here. (BrOffice) -Requires: %{ooname}-common = %{EVRD} -Requires(post): update-alternatives %{ooname}-common -Requires(postun): update-alternatives %{ooname}-common Requires: locales-pt Requires: urw-fonts Requires: myspell-pt_BR @@ -3348,24 +3352,31 @@ Traditional. %endif %prep -%setup -q -c -a 0 -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -a 10 -a 11 -a 12 -a 13 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 - +%setup -q -c -a 0 -a 1 -a 2 -a 3 -a 4 +rm -rf git-hooks */git-hooks for a in */*; do mv `pwd`/$a .; done #ant -%if %javaless +%if %{javaless} tar -xjvf %{SOURCE60} %endif +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 -b .icu~ %patch4 -p0 -b .xul -%patch5 -p0 -b .sysui -%patch6 -p1 -b .kde48 -%patch9 -p0 -b .vba -%patch10 -p0 -b .vclkde -%patch11 -p1 -b .sdext -%patch12 -p0 -b .ucb -%patch13 -p0 -b .xmlhelp -%patch14 -p0 -b .gcc462 +%patch5 -p1 -b .noslack~ +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 + +%patch100 -p0 -b .xmlhelp +%patch101 -p0 # Add lzma support (REVIEW) %if %{oootarext} == "lzma" @@ -3409,21 +3420,33 @@ export PATH export CCACHE_DIR=%{ccachedir} %endif -export ARCH_FLAGS="%{optflags} %{optsafe} -fno-omit-frame-pointer -fno-strict-aliasing" -export ARCH_FLAGS_CC="%{optflags} %{optsafe} -fno-omit-frame-pointer -fno-strict-aliasing" -export ARCH_FLAGS_CXX="%{optflags} %{optsafe} -fno-omit-frame-pointer -fno-strict-aliasing -fpermissive -fvisibility-inlines-hidden" -export ARCH_FLAGS_OPT="%{optflags} -O2 %{optsafe}" +export ARCH_FLAGS="%{optflags} -fno-omit-frame-pointer -fno-strict-aliasing" +export ARCH_FLAGS_CC="%{optflags} -fno-omit-frame-pointer -fno-strict-aliasing" +export ARCH_FLAGS_CXX="%{optflags} -fno-omit-frame-pointer -fno-strict-aliasing -fpermissive -fvisibility-inlines-hidden" +export ARCH_FLAGS_OPT="%{optflags} -O2" echo "Configure start at: "`date` >> ooobuildtime.log + ENVCFLAGS="%{optflags} %{optsafe} -g0 -fno-omit-frame-pointer -fno-strict-aliasing" \ ENVCXXFLAGS="%{optflags} %{optsafe} -g0 -fno-omit-frame-pointer -fno-strict-aliasing -fpermissive -fvisibility-inlines-hidden " \ -%configure2_5x \ +./autogen.sh \ + --prefix=%{_prefix} \ + --exec-prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --sbindir=%{_sbindir} \ + --sysconfdir=%{_sysconfdir} \ + --datadir=%{_datadir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --libexecdir=%{_libdir} \ + --localstatedir=/var \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} \ --with-distro=%{distroname} \ - --with-vendor=ROSA \ + --with-vendor=Mandriva \ --with-build-version="%{buildver}" \ --with-system-stdlibs \ - --disable-qadevooo \ --enable-lockdown \ --enable-opengl \ --enable-odk \ @@ -3432,40 +3455,36 @@ ENVCXXFLAGS="%{optflags} %{optsafe} -g0 -fno-omit-frame-pointer -fno-strict-alia --enable-binfilter \ --with-system-mozilla=xulrunner \ --with-system-icu \ - --with-system-xrender-headers \ - --with-system-jpeg \ - --with-system-hunspell \ + --with-system-jpeg \ + --with-system-hunspell \ --with-system-zlib \ --with-system-openssl \ --with-system-expat \ --with-system-libxml \ - --with-system-python \ - --with-system-xslt \ + --enable-python=system \ --with-system-curl \ --with-system-vigra \ --with-system-neon \ - --with-system-agg \ - --with-system-libtextcat \ - --with-external-libtextcat-data \ --with-system-libwpd \ --with-system-libwps \ --with-system-libwpg \ --with-system-graphite \ - --with-system-translate-toolkit \ --without-junit \ --with-system-cppunit \ - --enable-broffice \ --with-system-redland \ + --with-system-nss \ + --with-system-postgresql \ + --enable-librsvg=system \ --with-openldap \ --disable-kde \ --enable-kde4 \ --with-intro-bitmaps="%{SOURCE27}" \ --with-about-bitmaps="%{SOURCE28}" \ -%if %javaless - --with-ant-home=%{_builddir}/libreoffice-%version/apache-ant-1.8.1/ \ +%if %{javaless} + --with-ant-home="%{antpath}" \ %else - --with-system-hsqldb \ - --with-system-apache-commons \ + --with-system-hsqldb \ + --with-system-apache-commons \ %endif %if %{use_systemdb} --with-system-db \ @@ -3474,21 +3493,23 @@ ENVCXXFLAGS="%{optflags} %{optsafe} -g0 -fno-omit-frame-pointer -fno-strict-alia --with-system-boost \ %endif --with-lang=%{langs} \ - --with-installed-ooo-dirname=ooo \ - --with-docdir=%{_datadir}/doc/packages/ooo \ - --with-system-sane-header \ + --with-system-sane \ --with-system-cairo \ --without-myspell-dicts \ --with-system-dicts \ --with-external-dict-dir=%{_datadir}/dict/ooo \ - --with-external-hyph-dir=%{_datadir}/dict/ooo \ - --with-external-thes-dir=%{_datadir}/dict/ooo \ + --with-external-hyph-dir=%{_datadir}/dict/ooo \ + --with-external-thes-dir=%{_datadir}/dict/ooo \ --with-system-poppler \ - --enable-ext-pdfimport \ - --enable-ext-presenter-minimizer \ - --enable-ext-presenter-console \ - --enable-ext-wiki-publisher \ - --without-fonts \ +%if !%extensionenabled + --disable-ext-pdfimport \ + --disable-ext-presenter-minimizer \ + --disable-ext-presenter-console \ + --disable-ext-report-builder \ +%else + --enable-ext-wiki-publisher \ +%endif + --without-fonts \ %if %{use_openclipart} --with-openclipart=%{_datadir}/images/openclipart \ %endif @@ -3551,23 +3572,35 @@ ln -sf %{SOURCE52} src/ ln -sf %{SOURCE54} src/ ln -sf %{SOURCE55} src/ ln -sf %{SOURCE56} src/ -%if %javaless +ln -sf %{SOURCE62} src/ +ln -sf %{SOURCE63} src/ +ln -sf %{SOURCE64} src/ +ln -sf %{SOURCE65} src/ +ln -sf %{SOURCE66} src/ +ln -sf %{SOURCE67} src/ +ln -sf %{SOURCE68} src/ +ln -sf %{SOURCE69} src/ +ln -sf %{SOURCE70} src/ +ln -sf %{SOURCE71} src/ +ln -sf %{SOURCE72} src/ +ln -sf %{SOURCE73} src/ +ln -sf %{SOURCE74} src/ +ln -sf %{SOURCE75} src/ +%if %{javaless} ln -sf %{SOURCE57} src/ ln -sf %{SOURCE58} src/ ln -sf %{SOURCE59} src/ ln -sf %{SOURCE61} src/ %endif touch src.downloaded - -#. ./*[Ee]nv.[Ss]et.sh ./bootstrap # %make make \ - ARCH_FLAGS="%{optflags} %{optsafe} -fno-omit-frame-pointer -fno-strict-aliasing" \ - ARCH_FLAGS_CC="%{optflags} %{optsafe} -fno-omit-frame-pointer -fno-strict-aliasing" \ - ARCH_FLAGS_CXX="%{optflags} %{optsafe} -fno-omit-frame-pointer -fno-strict-aliasing -fpermissive -fvisibility-inlines-hidden" \ - ARCH_FLAGS_OPT="%{optflags} -O2 %{optsafe}" + ARCH_FLAGS="%{optflags} -fno-omit-frame-pointer -fno-strict-aliasing" \ + ARCH_FLAGS_CC="%{optflags} -fno-omit-frame-pointer -fno-strict-aliasing" \ + ARCH_FLAGS_CXX="%{optflags} -fno-omit-frame-pointer -fno-strict-aliasing -fpermissive -fvisibility-inlines-hidden" \ + ARCH_FLAGS_OPT="%{optflags} -O2" echo "Make end at: "`date` >> ooobuildtime.log echo "Install start at: "`date` >> ooobuildtime.log @@ -3701,11 +3734,11 @@ find %{buildroot} -type f \( -name '*.so' -o -name '*.so.*' \) -exec chmod a+x ' # files and thus disable unopkg for the rest of install stage. # First make sure there is no actual data pre-existing in this directory, # as that will be lost due to the ghostification: -[ $(find %{buildroot}%{ooodir}/share/uno_packages/cache -type f | wc -l) -eq 0 ] -%{buildroot}%{ooodir}/program/unopkg add --shared %{_builddir}/libreoffice-%version/solver/340/unxlng*/bin/pdfimport/pdfimport.oxt -%{buildroot}%{ooodir}/program/unopkg remove --shared pdfimport.oxt -# clean cache -%{buildroot}%{ooodir}/program/unopkg list --shared +# [ $(find %{buildroot}%{ooodir}/share/uno_packages/cache -type f | wc -l) -eq 0 ] +# %{buildroot}%{ooodir}/program/unopkg add --shared %{_builddir}/libreoffice-%version/solver/340/unxlng*/bin/pdfimport/pdfimport.oxt +# %{buildroot}%{ooodir}/program/unopkg remove --shared pdfimport.oxt +# # clean cache +# %{buildroot}%{ooodir}/program/unopkg list --shared # # there should be more files now: # [ $(find %{buildroot}%{ooodir}/share/uno_packages/cache | wc -l) -ge 5 ] # for path in $(find %{buildroot}%{ooodir}/share/uno_packages/cache/); do @@ -3745,12 +3778,14 @@ echo 'ProgressSize=377,9' >> %{buildroot}%{ooodir}/program/sofficerc # # templates for kde "create new" context menu # # tar xjf %{SOURCE31} -C %{buildroot}%{_datadir} -# copy extensions -install -d -m755 %{buildroot}%{ooodir}/extensions -cp %{_builddir}/libreoffice-%version/solver/340/unxlng*/bin/pdfimport/pdfimport.oxt %{buildroot}%{ooodir}/extensions/ -cp %{_builddir}/libreoffice-%version/solver/340/unxlng*/bin/presenter/presenter-screen.oxt %{buildroot}%{ooodir}/extensions/ -cp %{_builddir}/libreoffice-%version/solver/340/unxlng*/bin/swext/wiki-publisher.oxt %{buildroot}%{ooodir}/extensions/ -cp %{_builddir}/libreoffice-%version/solver/340/unxlng*/bin/minimizer/presentation-minimizer.oxt %{buildroot}%{ooodir}/extensions/ +%if %extensionenabled +# # copy extensions +# install -d -m755 %{buildroot}%{ooodir}/extensions +# cp %{_builddir}/libreoffice-%version/solver/unxlng*/bin/pdfimport/pdfimport.oxt %{buildroot}%{ooodir}/extensions/ +# cp %{_builddir}/libreoffice-%version/solver/unxlng*/bin/presenter/presenter-screen.oxt %{buildroot}%{ooodir}/extensions/ +# cp %{_builddir}/libreoffice-%version/solver/unxlng*/bin/wiki-publisher.oxt %{buildroot}%{ooodir}/extensions/ +# cp %{_builddir}/libreoffice-%version/solver/unxlng*/bin/minimizer/presentation-minimizer.oxt %{buildroot}%{ooodir}/extensions/ +%endif # libre # #fixes #56439 @@ -3767,10 +3802,13 @@ for p in common base calc writer impress draw math; do done; ## drop GTK dependency from -core -sed -i -e '/^.*libqstart_gtk%libsuffix.so$/d' file-lists/core_list.txt +sed -i -e '/^.*libqstart_gtklo.so$/d' file-lists/core_list.txt sed -i -e '/^.*pluginapp.bin$/d' file-lists/core_list.txt -echo '%ooodir/%basis/program/libqstart_gtk%libsuffix.so' >>file-lists/gnome_list.txt -echo '%ooodir/%basis/program/pluginapp.bin' >>file-lists/gnome_list.txt +echo '%ooodir/program/libqstart_gtklo.so' >>file-lists/gnome_list.txt +echo '%ooodir/program/pluginapp.bin' >>file-lists/gnome_list.txt +## GConf too +sed -i -e '/^.*gconfbe1.uno.so$/d' file-lists/core_list.txt +echo '%ooodir/program/gconfbe1.uno.so' >>file-lists/gnome_list.txt ## sort removing duplicates sort -u file-lists/gnome_list.txt > file-lists/gnome_list.uniq.sorted.txt @@ -3793,6 +3831,9 @@ sed -i '/^.*-US.res$/d' file-lists/filter-binfilter_list.txt # sed -i '/^.*libreoffice-base.desktop$/d' file-lists/base_list.txt # sed -i '/^.*libreoffice-math.desktop$/d' file-lists/math_list.txt +#rpmlint: E: non-standard-executable-perm +chmod 0755 %{buildroot}%{ooodir}/share/extensions/pdfimport/xpdfimport + %clean rm -rf %{buildroot} @@ -3849,121 +3890,125 @@ fi %postun writer %{clean_desktop_database} -%post pdfimport -# upgrade -if [ $1 -ge 2 ];then - # removes old installed pdfimport extension - idpdfimport=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.star.PDFImport-linux.*\)/\1/p'); - if [ "z$idpdfimport" != "z" ]; then - %unopkg remove --shared $idpdfimport 2> /dev/null - %unopkg list --shared &> /dev/null - fi -fi +%if %extensionenabled -#install new pdfimport version -%unopkg add --shared %{ooodir}/extensions/pdfimport.oxt 2> /dev/null -%unopkg list --shared &> /dev/null - -#uninstall -%preun pdfimport -if [ $1 -eq 0 ];then - idpdfimport=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.star.PDFImport-linux.*\)/\1/p'); - if [ "z$idpdfimport" != "z" ]; then - %unopkg remove --shared $idpdfimport 2> /dev/null - #clean footprint cache - %unopkg list --shared &> /dev/null - fi -fi - -%post presenter-screen -# upgrade -if [ $1 -ge 2 ];then - idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.PresenterScreen-linux.*\)/\1/p'); - if [ "z$idextension" != "z" ]; then - %unopkg remove --shared $idextension 2> /dev/null - %unopkg list --shared &> /dev/null - fi -fi -#install -%unopkg add --shared %{ooodir}/extensions/presenter-screen.oxt 2> /dev/null -%unopkg list --shared &> /dev/null - - -%preun presenter-screen -if [ $1 -eq 0 ];then - idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.PresenterScreen-linux.*\)/\1/p'); - if [ "z$idextension" != "z" ]; then - %unopkg remove --shared $idextension 2> /dev/null - %unopkg list --shared &> /dev/null - fi -fi - -# %post report-builder -# upgrade -# if [ $1 -ge 1 ];then -# idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.reportdesigner\)/\1/p'); -# if [ "z$idextension" != "z" ]; then -# %unopkg remove --shared $idextension 2> /dev/null -# %unopkg list --shared &> /dev/null -# fi +# %post pdfimport +# # upgrade +# if [ $1 -ge 2 ];then +# # removes old installed pdfimport extension +# idpdfimport=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.star.PDFImport-linux.*\)/\1/p'); +# if [ "z$idpdfimport" != "z" ]; then +# %unopkg remove --shared $idpdfimport 2> /dev/null +# %unopkg list --shared &> /dev/null +# fi # fi -#install -# %unopkg add --shared %{ooodir}/sun-report-builder.oxt 2> /dev/null +# +# #install new pdfimport version +# %unopkg add --shared %{ooodir}/extensions/pdfimport.oxt 2> /dev/null # %unopkg list --shared &> /dev/null - -#uninstall -# %preun report-builder +# +# #uninstall +# %preun pdfimport # if [ $1 -eq 0 ];then -# idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.reportdesigner\)/\1/p'); -# if [ "z$idextension" != "z" ]; then -# %unopkg remove --shared $idextension 2> /dev/null -# %unopkg list --shared &> /dev/null -# fi +# idpdfimport=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.star.PDFImport-linux.*\)/\1/p'); +# if [ "z$idpdfimport" != "z" ]; then +# %unopkg remove --shared $idpdfimport 2> /dev/null +# #clean footprint cache +# %unopkg list --shared &> /dev/null +# fi +# fi +# +# %post presenter-screen +# # upgrade +# if [ $1 -ge 2 ];then +# idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.PresenterScreen-linux.*\)/\1/p'); +# if [ "z$idextension" != "z" ]; then +# %unopkg remove --shared $idextension 2> /dev/null +# %unopkg list --shared &> /dev/null +# fi +# fi +# #install +# %unopkg add --shared %{ooodir}/extensions/presenter-screen.oxt 2> /dev/null +# %unopkg list --shared &> /dev/null +# +# +# %preun presenter-screen +# if [ $1 -eq 0 ];then +# idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.PresenterScreen-linux.*\)/\1/p'); +# if [ "z$idextension" != "z" ]; then +# %unopkg remove --shared $idextension 2> /dev/null +# %unopkg list --shared &> /dev/null +# fi +# fi +# +# # %post report-builder +# # upgrade +# # if [ $1 -ge 1 ];then +# # idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.reportdesigner\)/\1/p'); +# # if [ "z$idextension" != "z" ]; then +# # %unopkg remove --shared $idextension 2> /dev/null +# # %unopkg list --shared &> /dev/null +# # fi +# # fi +# #install +# # %unopkg add --shared %{ooodir}/sun-report-builder.oxt 2> /dev/null +# # %unopkg list --shared &> /dev/null +# +# #uninstall +# # %preun report-builder +# # if [ $1 -eq 0 ];then +# # idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.reportdesigner\)/\1/p'); +# # if [ "z$idextension" != "z" ]; then +# # %unopkg remove --shared $idextension 2> /dev/null +# # %unopkg list --shared &> /dev/null +# # fi +# # fi +# +# %post wiki-publisher +# # upgrade +# if [ $1 -ge 2 ];then +# idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.wiki-publisher\)/\1/p'); +# if [ "z$idextension" != "z" ]; then +# %unopkg remove --shared $idextension 2> /dev/null +# %unopkg list --shared &> /dev/null +# fi +# fi +# #install +# %unopkg add --shared %{ooodir}/extensions/wiki-publisher.oxt 2> /dev/null +# %unopkg list --shared &> /dev/null +# +# %preun wiki-publisher +# if [ $1 -eq 0 ];then +# idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.wiki-publisher\)/\1/p'); +# if [ "z$idextension" != "z" ]; then +# %unopkg remove --shared $idextension 2> /dev/null +# %unopkg list --shared &> /dev/null +# fi +# fi +# +# %post presentation-minimizer +# # upgrade +# if [ $1 -ge 2 ];then +# idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.star.PresentationMinimizer-linux.*\)/\1/p'); +# if [ "z$idextension" != "z" ]; then +# %unopkg remove --shared $idextension 2> /dev/null +# %unopkg list --shared &> /dev/null +# fi +# fi +# #install +# %unopkg add --shared %{ooodir}/extensions/sun-presentation-minimizer.oxt 2> /dev/null +# %unopkg list --shared &> /dev/null +# +# %preun presentation-minimizer +# if [ $1 -eq 0 ];then +# idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.star.PresentationMinimizer-linux.*\)/\1/p'); +# if [ "z$idextension" != "z" ]; then +# %unopkg remove --shared $idextension 2> /dev/null +# %unopkg list --shared &> /dev/null +# fi # fi -%post wiki-publisher -# upgrade -if [ $1 -ge 2 ];then - idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.wiki-publisher\)/\1/p'); - if [ "z$idextension" != "z" ]; then - %unopkg remove --shared $idextension 2> /dev/null - %unopkg list --shared &> /dev/null - fi -fi -#install -%unopkg add --shared %{ooodir}/extensions/wiki-publisher.oxt 2> /dev/null -%unopkg list --shared &> /dev/null - -%preun wiki-publisher -if [ $1 -eq 0 ];then - idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.wiki-publisher\)/\1/p'); - if [ "z$idextension" != "z" ]; then - %unopkg remove --shared $idextension 2> /dev/null - %unopkg list --shared &> /dev/null - fi -fi - -%post presentation-minimizer -# upgrade -if [ $1 -ge 2 ];then - idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.star.PresentationMinimizer-linux.*\)/\1/p'); - if [ "z$idextension" != "z" ]; then - %unopkg remove --shared $idextension 2> /dev/null - %unopkg list --shared &> /dev/null - fi -fi -#install -%unopkg add --shared %{ooodir}/extensions/sun-presentation-minimizer.oxt 2> /dev/null -%unopkg list --shared &> /dev/null - -%preun presentation-minimizer -if [ $1 -eq 0 ];then - idextension=$(%unopkg list --shared 2> /dev/null | sed -ne 's/^Identifier: \(com.sun.star.PresentationMinimizer-linux.*\)/\1/p'); - if [ "z$idextension" != "z" ]; then - %unopkg remove --shared $idextension 2> /dev/null - %unopkg list --shared &> /dev/null - fi -fi +%endif %files @@ -4029,9 +4074,6 @@ fi # libre # %{_datadir}/applications/ooo-extension-manager*.desktop -# Anssi -%dir %{ooodir}/extensions - %files core -f file-lists/core_list.txt %files devel -f file-lists/sdk_list.uniq.sorted.txt @@ -4047,11 +4089,19 @@ fi %{_mandir}/man1/lodraw* %{_datadir}/icons/hicolor/scalable/apps/mandriva-rosa-lo-draw_72.svg -# dev300: -# %files dtd-officedocument1.0 -f build/dtd_list.txt +%files dtd-officedocument1.0 -f file-lists/dtd_list.txt -# dev300: %files filter-binfilter -f file-lists/filter-binfilter_list.txt +%defattr(-,root,root,-) +%{ooodir}/program/resource/bf_frmen-US.res +%{ooodir}/program/resource/bf_ofaen-US.res +%{ooodir}/program/resource/bf_scen-US.res +%{ooodir}/program/resource/bf_schen-US.res +%{ooodir}/program/resource/bf_sden-US.res +%{ooodir}/program/resource/bf_smen-US.res +%{ooodir}/program/resource/bf_svten-US.res +%{ooodir}/program/resource/bf_svxen-US.res +%{ooodir}/program/resource/bf_swen-US.res %files gnome -f file-lists/gnome_list.uniq.sorted.txt @@ -4077,31 +4127,31 @@ fi %files openclipart -f file-lists/gallery_list.txt %files pyuno -f file-lists/pyuno_list.txt +%defattr(-,root,root,-) +%{ooodir}/share/extensions/script-provider-for-python #%files qa-api-tests #%{ooodir}/qadevOOo -%files testtool -f file-lists/testtool_list.txt - %files style-galaxy %defattr(-,root,root,-) -%{ooodir}/%basis/share/config/images.zip +%{ooodir}/share/config/images.zip %files style-crystal %defattr(-,root,root,-) -%{ooodir}/%basis/share/config/images_crystal.zip +%{ooodir}/share/config/images_crystal.zip %files style-hicontrast %defattr(-,root,root,-) -%{ooodir}/%basis/share/config/images_hicontrast.zip +%{ooodir}/share/config/images_hicontrast.zip %files style-tango %defattr(-,root,root,-) -%{ooodir}/%basis/share/config/images_tango.zip +%{ooodir}/share/config/images_tango.zip %files style-oxygen %defattr(-,root,root,-) -%{ooodir}/%basis/share/config/images_oxygen.zip +%{ooodir}/share/config/images_oxygen.zip %files writer -f file-lists/writer_list.txt %defattr(-,root,root,-) @@ -4124,25 +4174,37 @@ fi # %{_libdir}/mono/ooo-%{mdvsuffix} %endif +%if %extensionenabled + %files pdfimport %defattr(-,root,root,-) -%{ooodir}/extensions/pdfimport.oxt +%{ooodir}/share/extensions/pdfimport %files presenter-screen %defattr(-,root,root,-) -%{ooodir}/extensions/presenter-screen.oxt +%{ooodir}/share/extensions/presenter-screen -# %files report-builder -# %defattr(-,root,root,-) -# %{ooodir}/sun-report-builder.oxt +%files report-builder +%defattr(-,root,root,-) +%{ooodir}/share/extensions/report-builder %files wiki-publisher %defattr(-,root,root,-) -%{ooodir}/extensions/wiki-publisher.oxt +%{ooodir}/share/extensions/wiki-publisher %files presentation-minimizer %defattr(-,root,root,-) -%{ooodir}/extensions/presentation-minimizer.oxt +%{ooodir}/share/extensions/presentation-minimizer + +%endif + +%files postgresql +%defattr(-,root,root,-) +%{ooodir}/program/postgresql-sdbc.uno.so +%{ooodir}/program/postgresql-sdbc-impl.uno.so +%{ooodir}/program/postgresql-sdbc.ini +%{ooodir}/program/services/postgresql-sdbc.rdb +%{ooodir}/share/registry/postgresqlsdbc.xcd %if %l10n %files l10n-it -f file-lists/lang_it_list.txt @@ -4484,7 +4546,47 @@ fi %changelog -* Sat Feb 04 2012 Rafael da Veiga Cabral 1:3.4.5-1mdv2012.0 +* Wed Jun 13 2012 Oden Eriksson 1:3.5.4-4mdv2012.0 ++ Revision: 805361 +- new S64 (libvisio-0.0.16) +- 3.5.4.2 +- bump release +- fix bogus deps +- add backporting magic +- sync with libreoffice-3.5.2-3.src.rpm: + * Wed Apr 11 2012 Bernhard Rosenkraenzer 1:3.5.2-3mdv2012.0 + + Revision: 790343 +- Drop GConf dependency from -core +- Fix compatibility with ICU 49.1 +- Rebuild for icu 49.1 +- Update to 3.5.2.2 +- Fix dependency on obsolete portaudio +- 3.5.1.2 + + Rafael da Veiga Cabral + - enables correct system directories parameters on autogen.sh script + - adds libreoffice-3.5.1-kde-4.8.1-namespace.patch in order to correct + build issue against kde 4.8.1 + - enables the xsltml_2.1.2.zip source as it was disabled by mistake + - removes optsafe variable as it is not being used + - some spec indenting + - replaces configure script calling by the autogen.sh which already properly + executes the configure (as an usual local build) and as well there is a problem + calling directely configure which forces the make later to call autogen.sh + however all configure options get lost + - drop unrecognized configure options: --disable-qadevooo, + --with-system-xrender-headers, --with-system-python, --with-system-xslt, + --with-system-agg, --with-system-libtextcat, --with-system-translate-toolkit, + --enable-broffice, --with-installed-ooo-dirname, --with-docdir, + --with-system-sane-header + - properly comments out defines + - moving to current + - current dir + +* Sat Apr 07 2012 Bernhard Rosenkraenzer 1:3.5.2-2 ++ Revision: 789752 +- Rebuild for icu 49.1 + +* Sat Feb 04 2012 Rafael da Veiga Cabral 1:3.4.5-1 + Revision: 771188 - add libsuffix in the drop gtk thing - removes OOo leftover diff --git a/libreoffice34-gcc462.patch b/libreoffice34-gcc462.patch deleted file mode 100644 index c19e520..0000000 --- a/libreoffice34-gcc462.patch +++ /dev/null @@ -1,138 +0,0 @@ ---- ./framework/source/accelerators/acceleratorcache.cxx.orig 2011-12-15 15:08:41.329168423 -0200 -+++ ./framework/source/accelerators/acceleratorcache.cxx 2011-12-15 15:17:59.473190664 -0200 -@@ -61,7 +61,7 @@ AcceleratorCache::AcceleratorCache() - AcceleratorCache::AcceleratorCache(const AcceleratorCache& rCopy) - : ThreadHelpBase(&Application::GetSolarMutex()) - { -- m_lCommand2Keys = rCopy.m_lCommand2Keys; -+ m_lCommand2Keys = const_cast< framework::BaseHash >& > (rCopy.m_lCommand2Keys); - m_lKey2Commands = rCopy.m_lKey2Commands; - } - -@@ -78,7 +78,7 @@ void AcceleratorCache::takeOver(const Ac - // SAFE -> ---------------------------------- - WriteGuard aWriteLock(m_aLock); - -- m_lCommand2Keys = rCopy.m_lCommand2Keys; -+ m_lCommand2Keys = const_cast< framework::BaseHash >& > (rCopy.m_lCommand2Keys); - m_lKey2Commands = rCopy.m_lKey2Commands; - - aWriteLock.unlock(); ---- ./framework/source/loadenv/loadenv.cxx.orig 2011-12-15 15:08:15.771487938 -0200 -+++ ./framework/source/loadenv/loadenv.cxx 2011-12-15 15:19:06.038358483 -0200 -@@ -255,7 +255,8 @@ void LoadEnv::initializeLoading(const :: - // take over all new parameters. - m_xTargetFrame.clear(); - m_xBaseFrame = xBaseFrame ; -- m_lMediaDescriptor = impl_mergeMediaDescriptorWithMightExistingModelArgs(lMediaDescriptor); -+ ::comphelper::MediaDescriptor tmp = impl_mergeMediaDescriptorWithMightExistingModelArgs(lMediaDescriptor); -+ m_lMediaDescriptor = tmp; - m_sTarget = sTarget ; - m_nSearchFlags = nSearchFlags ; - m_eFeature = eFeature ; ---- ./framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx.orig 2011-12-15 15:08:49.033072112 -0200 -+++ ./framework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx 2011-12-15 15:11:07.209344668 -0200 -@@ -175,6 +175,15 @@ namespace framework - sal_Int16 nElementType; - UIElementDataHashMap aElementsHashMap; - com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage; -+ UIElementType& operator=(const UIElementType& rRight) { -+ bModified = rRight.bModified; -+ bLoaded = rRight.bLoaded; -+ bDefaultLayer = rRight.bDefaultLayer; -+ nElementType = rRight.nElementType; -+ aElementsHashMap = rRight.aElementsHashMap; -+ xStorage = rRight.xStorage; -+ return *this; -+ }; - }; - - typedef ::std::vector< UIElementType > UIElementTypesVector; ---- ./framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx.orig 2011-12-19 11:10:56.000000000 +0000 -+++ ./framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx 2011-12-19 11:12:06.000000000 +0000 -@@ -185,6 +185,15 @@ namespace framework - sal_Int16 nElementType; - UIElementDataHashMap aElementsHashMap; - com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage; -+ UIElementType& operator=(const UIElementType& rRight) { -+ bModified = rRight.bModified; -+ bLoaded = rRight.bLoaded; -+ bDefaultLayer = rRight.bDefaultLayer; -+ nElementType = rRight.nElementType; -+ aElementsHashMap = rRight.aElementsHashMap; -+ xStorage = rRight.xStorage; -+ return *this; -+ }; - }; - - typedef ::std::vector< UIElementType > UIElementTypesVector; ---- ./framework/inc/uiconfiguration/uiconfigurationmanager.hxx.orig 2011-12-19 11:14:17.000000000 +0000 -+++ ./framework/inc/uiconfiguration/uiconfigurationmanager.hxx 2011-12-19 11:15:16.000000000 +0000 -@@ -171,6 +171,15 @@ namespace framework - sal_Int16 nElementType; - UIElementDataHashMap aElementsHashMap; - com::sun::star::uno::Reference< com::sun::star::embed::XStorage > xStorage; -+ UIElementType& operator=(const UIElementType& rRight) { -+ bModified = rRight.bModified; -+ bLoaded = rRight.bLoaded; -+ bDefaultLayer = rRight.bDefaultLayer; -+ nElementType = rRight.nElementType; -+ aElementsHashMap = rRight.aElementsHashMap; -+ xStorage = rRight.xStorage; -+ return *this; -+ }; - }; - - typedef ::std::vector< UIElementType > UIElementTypesVector; - ---- ./padmin/source/prtsetup.cxx.orig 2011-12-15 15:09:05.133870823 -0200 -+++ ./padmin/source/prtsetup.cxx 2011-12-15 15:13:55.626239170 -0200 -@@ -813,7 +813,7 @@ extern "C" { - - if( aDialog.Execute() ) - { -- rJobData = aDialog.getSetup(); -+ rJobData = const_cast< ::psp::PrinterInfo & > ( aDialog.getSetup() ); - nRet = 1; - } - ---- ./sfx2/source/doc/guisaveas.cxx.orig 2011-12-15 15:08:58.332955848 -0200 -+++ ./sfx2/source/doc/guisaveas.cxx 2011-12-15 15:12:39.953185212 -0200 -@@ -731,7 +731,7 @@ sal_Int8 ModelData_Impl::CheckFilter( co - if ( aFilterName.getLength() ) - m_pOwner->GetFilterConfiguration()->getByName( aFilterName ) >>= aFilterProps; - -- aFiltPropsHM = ::comphelper::SequenceAsHashMap( aFilterProps ); -+ aFiltPropsHM << aFilterProps; - nFiltFlags = aFiltPropsHM.getUnpackedValueOrDefault( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Flags")), (sal_Int32)0 ); - } - ---- ./framework/inc/classes/filtercachedata.hxx.orig 2011-12-17 13:14:22.102898902 +0000 -+++ ./framework/inc/classes/filtercachedata.hxx 2011-12-17 13:17:51.524424012 +0000 -@@ -230,7 +230,7 @@ - { - bPreferred = rCopy.bPreferred ; - sName = rCopy.sName ; -- lUINames = rCopy.lUINames ; -+ lUINames = const_cast < framework::BaseHash& > (rCopy.lUINames); - sMediaType = rCopy.sMediaType ; - sClipboardFormat = rCopy.sClipboardFormat; - nDocumentIconID = rCopy.nDocumentIconID ; -@@ -298,7 +298,7 @@ - nOrder = rCopy.nOrder ; - sName = rCopy.sName ; - sType = rCopy.sType ; -- lUINames = rCopy.lUINames ; -+ lUINames = const_cast < framework::BaseHash& > (rCopy.lUINames); - sDocumentService = rCopy.sDocumentService ; - sFilterService = rCopy.sFilterService ; - sUIComponent = rCopy.sUIComponent ; -@@ -405,7 +405,7 @@ - inline Loader& impl_copy( const Loader& rCopy ) - { - sName = rCopy.sName ; -- lUINames = rCopy.lUINames ; -+ lUINames = const_cast < framework::BaseHash& > (rCopy.lUINames); - lTypes = rCopy.lTypes ; - return (*this); - } diff --git a/mdv-sysui-disableslack.diff b/mdv-sysui-disableslack.diff deleted file mode 100644 index 9cd9a17..0000000 --- a/mdv-sysui-disableslack.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- sysui/prj/build.lst.old1 2011-08-01 18:41:26.000000000 +0000 -+++ sysui/prj/build.lst 2011-08-01 18:42:37.000000000 +0000 -@@ -13,7 +13,6 @@ - su sysui\desktop\mandriva nmake - u su_dtmdk su_dtshare.u NULL - su sysui\desktop\freedesktop nmake - u su_dtfreedesktop su_dtredhat.u NULL - su sysui\desktop\debian nmake - u su_dtdebian su_dtshare.u NULL --su sysui\desktop\slackware nmake - u su_dtslackware su_dtshare.u NULL - su sysui\desktop\solaris nmake - u su_dtsolaris su_dtshare.u NULL --su sysui\desktop\util nmake - u su_desktop su_dtredhat.u su_dtsuse.u su_dtmdk.u su_dtfreedesktop.u su_dtdebian.u su_dtslackware.u NULL -+su sysui\desktop\util nmake - u su_desktop su_dtredhat.u su_dtsuse.u su_dtmdk.u su_dtfreedesktop.u su_dtdebian.u NULL - su sysui\util nmake - all su_util su_dtsolaris.u su_desktop.u su_iconsw.w NULL diff --git a/openoffice.org-2.0.2.rh188467.printingdefaults.patch b/openoffice.org-2.0.2.rh188467.printingdefaults.patch new file mode 100644 index 0000000..45c40aa --- /dev/null +++ b/openoffice.org-2.0.2.rh188467.printingdefaults.patch @@ -0,0 +1,15 @@ +Index: configuration/ppds/SGENPRT.PS +=================================================================== +RCS file: /cvs/external/psprint_config/configuration/ppds/SGENPRT.PS,v +retrieving revision 1.3 +diff -u -p -u -r1.3 SGENPRT.PS +--- openoffice.org.orig/psprint_config/configuration/ppds/SGENPRT.PS 26 Nov 2004 16:10:35 -0000 1.3 ++++ openoffice.org/psprint_config/configuration/ppds/SGENPRT.PS 30 Aug 2005 11:17:51 -0000 +@@ -58,6 +58,7 @@ + *ColorDevice: True + *DefaultColorSpace: RGB + *LanguageLevel: "2" ++*TTRasterizer: Type42 + + *% --- For None Color or old PostScript(R) printers use following lines --- + *% *ColorDevice: False diff --git a/openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch b/openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch new file mode 100644 index 0000000..b5a7ff7 --- /dev/null +++ b/openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch @@ -0,0 +1,47 @@ +--- openoffice.org.orig/desktop/scripts/unopkg.sh 2008-01-14 15:55:26.000000000 +0000 ++++ openoffice.org/desktop/scripts/unopkg.sh 2008-02-14 10:52:10.000000000 +0000 +@@ -62,6 +62,33 @@ + ;; + esac + ++isnotuser=0 ++for arg in $@ ++do ++if [ "$arg" = "--shared" -o "$arg" = "--bundled" ]; then ++ isnotuser=1 ++fi ++done ++if [ $isnotuser -eq 1 ]; then ++ echo $@ | grep -q env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY ++ if [ $? -ne 0 ]; then ++ set -- $@ '-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1' ++ fi ++ echo $@ | grep -q env:UNO_JAVA_JFW_INSTALL_DATA ++ if [ $? -ne 0 -a -w $sd_prog/../share/config/javasettingsunopkginstall.xml ]; then ++ set -- $@ '-env:UNO_JAVA_JFW_INSTALL_DATA=$$ORIGIN/../share/config/javasettingsunopkginstall.xml' ++ fi ++ echo $@ | grep -q env:UserInstallation ++ if [ $? -ne 0 ]; then ++ INSTDIR=`/bin/mktemp -d --tmpdir unoinstall.XXXXXX` ++ if [ $? -ne 0 ]; then ++ echo "Could not create tmp dir" >&2 ++ exit 1 ++ fi ++ set -- $@ '-env:UserInstallation=file://'$INSTDIR ++ fi ++fi ++ + #collect all bootstrap variables specified on the command line + #so that they can be passed as arguments to javaldx later on + for arg in $@ +@@ -110,6 +137,8 @@ + # SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS + + # execute binary +-exec "$sd_prog/unopkg.bin" "$@" \ ++"$sd_prog/unopkg.bin" "$@" \ + "-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc" +- ++if [ -n "$INSTDIR" ]; then ++ rm -rf $INSTDIR ++fi diff --git a/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch b/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch new file mode 100644 index 0000000..b82f4df --- /dev/null +++ b/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch @@ -0,0 +1,141 @@ +From 5316edea6948f3e2a77e4fc68799f67de21fada7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 5 Dec 2011 15:28:19 +0100 +Subject: [PATCH] vertical content overflowing out of cell (#i88341#) + +--- + sc/source/ui/inc/output.hxx | 2 + + sc/source/ui/view/output2.cxx | 66 ++++++++++++++++++++++++++-------------- + 2 files changed, 45 insertions(+), 23 deletions(-) + +diff --git a/sc/source/ui/inc/output.hxx b/sc/source/ui/inc/output.hxx +index 72934cf..3a91c14 100644 +--- a/sc/source/ui/inc/output.hxx ++++ b/sc/source/ui/inc/output.hxx +@@ -306,6 +306,8 @@ public: + void DrawExtraShadow(sal_Bool bLeft, sal_Bool bTop, sal_Bool bRight, sal_Bool bBottom); + void DrawFrame(); + ++ bool UseNormalClip(SCROW nCellY, const SfxItemSet* pCondSet); ++ + // with logic MapMode set! + void DrawEdit(sal_Bool bPixelToLogic); + +diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx +index de1506a..5522e69 100644 +--- a/sc/source/ui/view/output2.cxx ++++ b/sc/source/ui/view/output2.cxx +@@ -2818,13 +2818,7 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam) + (ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE); + bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1; + +- // Don't clip for text height when printing rows with optimal height, +- // except when font size is from conditional formatting. +- //! Allow clipping when vertically merged? +- if ( eType != OUTTYPE_PRINTER || +- ( pDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || +- ( rParam.mpCondSet && SFX_ITEM_SET == +- rParam.mpCondSet->GetItemState(ATTR_FONT_HEIGHT, true) ) ) ++ if (UseNormalClip(rParam.mnCellY, rParam.mpCondSet)) + bClip = true; + else + bSimClip = true; +@@ -2859,6 +2853,19 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam) + } + + Rectangle aLogicClip; ++ if ( ++ ((nAttrRotate == 9000) || (nAttrRotate == 27000)) && ++ (!(rParam.meOrient==SVX_ORIENTATION_STANDARD && ++ !rParam.mbAsianVertical)) && ++ (!(bClip || bSimClip)) ++ ) ++ { ++ if (UseNormalClip(rParam.mnCellY, rParam.mpCondSet)) ++ bClip = true; ++ else ++ bSimClip = true; ++ } ++ + if (bClip || bSimClip) + { + // Clip marks are already handled in GetOutputArea +@@ -3191,13 +3198,8 @@ void ScOutputData::DrawEditBottomTop(DrawEditParam& rParam) + (ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE); + bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1; + +- // Don't clip for text height when printing rows with optimal height, +- // except when font size is from conditional formatting. +- //! Allow clipping when vertically merged? +- if ( eType != OUTTYPE_PRINTER || +- ( pDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || +- ( rParam.mpCondSet && SFX_ITEM_SET == +- rParam.mpCondSet->GetItemState(ATTR_FONT_HEIGHT, true) ) ) ++ ++ if (UseNormalClip(rParam.mnCellY, rParam.mpCondSet)) + bClip = true; + else + bSimClip = true; +@@ -3563,13 +3565,7 @@ void ScOutputData::DrawEditTopBottom(DrawEditParam& rParam) + (ScMergeAttr*)&rParam.mpPattern->GetItem(ATTR_MERGE); + bool bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1; + +- // Don't clip for text height when printing rows with optimal height, +- // except when font size is from conditional formatting. +- //! Allow clipping when vertically merged? +- if ( eType != OUTTYPE_PRINTER || +- ( pDoc->GetRowFlags( rParam.mnCellY, nTab ) & CR_MANUALSIZE ) || +- ( rParam.mpCondSet && SFX_ITEM_SET == +- rParam.mpCondSet->GetItemState(ATTR_FONT_HEIGHT, true) ) ) ++ if (UseNormalClip(rParam.mnCellY, rParam.mpCondSet)) + bClip = true; + else + bSimClip = true; +@@ -4460,6 +4456,20 @@ void ScOutputData::DrawEditAsianVertical(DrawEditParam& rParam) + rParam.adjustForHyperlinkInPDF(aURLStart, pDev); + } + ++bool ScOutputData::UseNormalClip(SCROW nCellY, const SfxItemSet* pCondSet) ++{ ++ bool bNormalClip = false; ++ // Don't clip for text height when printing rows with optimal height, ++ // except when font size is from conditional formatting. ++ //! Allow clipping when vertically merged? ++ if ( eType != OUTTYPE_PRINTER || ++ ( pDoc->GetRowFlags( nCellY, nTab ) & CR_MANUALSIZE ) || ++ ( pCondSet && SFX_ITEM_SET == ++ pCondSet->GetItemState(ATTR_FONT_HEIGHT, sal_True) ) ) ++ bNormalClip = true; ++ return bNormalClip; ++} ++ + void ScOutputData::DrawEdit(sal_Bool bPixelToLogic) + { + ScFieldEditEngine* pEngine = NULL; +@@ -5168,11 +5178,21 @@ void ScOutputData::DrawRotated(sal_Bool bPixelToLogic) + else + { + // bei gedrehtem Text ist Standard zentriert ++ long nDiff = 0; + if (eHorJust==SVX_HOR_JUSTIFY_RIGHT) +- aLogicStart.X() += nAvailWidth - nEngineWidth; ++ nDiff = nAvailWidth - nEngineWidth; + else if (eHorJust==SVX_HOR_JUSTIFY_CENTER || + eHorJust==SVX_HOR_JUSTIFY_STANDARD) +- aLogicStart.X() += (nAvailWidth - nEngineWidth) / 2; ++ nDiff = (nAvailWidth - nEngineWidth) / 2; ++ ++ if (nEngineWidth > nAvailWidth) ++ { ++ if (nAttrRotate == 9000) ++ nDiff = 0; ++ else if (nAttrRotate == 27000) ++ nDiff = nAvailWidth - nEngineWidth; ++ } ++ aLogicStart.X() += nDiff; + } + } + +-- +1.7.7.3 + diff --git a/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch b/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch new file mode 100644 index 0000000..12868d8 --- /dev/null +++ b/openoffice.org-3.1.0.ooo101274.opening-a-directory.patch @@ -0,0 +1,187 @@ +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 ++#include + #include + #include + #include +@@ -47,6 +48,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -64,6 +67,8 @@ + #include + #include + #include ++#include ++ + #include + #include + #include +@@ -71,6 +76,10 @@ + #include + #include + #include ++#include ++#include ++ ++#include + + using namespace com::sun::star::container; + using namespace com::sun::star::beans; +@@ -373,6 +382,54 @@ static Reference< XContent > getContent( + return Reference< XContent >(); + } + ++namespace ++{ ++ ++void ++lcl_displayMessage( ++ const Reference& rEnvironment, ++ const rtl::OUString& rUri) ++{ ++ // Create exception ++ const Reference xCPM( ++ getContentBroker(true)->getContentProviderManagerInterface()); ++ const PropertyValue aUriProperty( ++ rtl::OUString::createFromAscii("Uri"), ++ -1, ++ makeAny(getSystemPathFromFileURL(xCPM, rUri)), ++ PropertyState_DIRECT_VALUE) ++ ; ++ Sequence lArguments(1); ++ lArguments[0] <<= aUriProperty; ++ const InteractiveAugmentedIOException xError( ++ rtl::OUString(), ++ 0, ++ InteractionClassification_ERROR, ++ IOErrorCode_NO_FILE, ++ lArguments) ++ ; ++ ++ // Create interaction request ++ std::auto_ptr aRequest( ++ new ucbhelper::SimpleInteractionRequest(makeAny(xError), CONTINUATION_APPROVE)); ++ { ++ Reference xContinuation( ++ new ::ucbhelper::InteractionApprove(aRequest.get())); ++ Sequence > lContinuations(1); ++ lContinuations[0].set(xContinuation); ++ aRequest->setContinuations(lContinuations); ++ } ++ ++ Reference xInteraction(rEnvironment->getInteractionHandler()); ++ if (xInteraction.is()) ++ { ++ Reference xRequest(aRequest.release()); ++ xInteraction->handle(xRequest); ++ } ++} ++ ++} ++ + //========================================================================= + //========================================================================= + // +@@ -787,7 +902,10 @@ Reference< XInputStream > Content::openStream() + throw( CommandAbortedException, RuntimeException, Exception ) + { + if ( !isDocument() ) ++ { ++ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); + return Reference< XInputStream >(); ++ } + + Reference< XActiveDataSink > xSink = new ActiveDataSink; + +@@ -813,7 +930,10 @@ Reference< XInputStream > Content::openStreamNoLock() + throw( CommandAbortedException, RuntimeException, Exception ) + { + if ( !isDocument() ) ++ { ++ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); + return Reference< XInputStream >(); ++ } + + Reference< XActiveDataSink > xSink = new ActiveDataSink; + +@@ -838,7 +965,10 @@ Reference< XStream > Content::openWriteableStream() + throw( CommandAbortedException, RuntimeException, Exception ) + { + if ( !isDocument() ) ++ { ++ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); + return Reference< XStream >(); ++ } + + Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer; + +@@ -863,7 +990,10 @@ Reference< XStream > Content::openWriteableStreamNoLock() + throw( CommandAbortedException, RuntimeException, Exception ) + { + if ( !isDocument() ) ++ { ++ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); + return Reference< XStream >(); ++ } + + Reference< XActiveDataStreamer > xStreamer = new ActiveDataStreamer; + +@@ -888,7 +1019,10 @@ sal_Bool Content::openStream( const Reference< XActiveDataSink >& rSink ) + throw( CommandAbortedException, RuntimeException, Exception ) + { + if ( !isDocument() ) ++ { ++ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); + return sal_False; ++ } + + OpenCommandArgument2 aArg; + aArg.Mode = OpenMode::DOCUMENT; +@@ -911,7 +1045,10 @@ sal_Bool Content::openStream( const Reference< XOutputStream >& rStream ) + throw( CommandAbortedException, RuntimeException, Exception ) + { + if ( !isDocument() ) ++ { ++ lcl_displayMessage(m_xImpl->getEnvironment(), getURL()); + return sal_False; ++ } + + OpenCommandArgument2 aArg; + aArg.Mode = OpenMode::DOCUMENT; +-- +1.7.7.3 + diff --git a/openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch b/openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch new file mode 100644 index 0000000..4d90bd7 --- /dev/null +++ b/openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch @@ -0,0 +1,78 @@ +Index: bin/modules/installer/scriptitems.pm +=================================================================== +RCS file: /cvs/tools/solenv/bin/modules/installer/scriptitems.pm,v +retrieving revision 1.17 +diff -u -p -r1.17 scriptitems.pm +--- openoffice.org.orig/solenv/bin/modules/installer/scriptitems.pm 24 Feb 2005 16:21:15 -0000 1.17 ++++ openoffice.org/solenv/bin/modules/installer/scriptitems.pm 18 Mar 2005 22:39:42 -0000 +@@ -1066,7 +1066,7 @@ + } + else + { +- $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file ++ $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file + } + + push( @installer::globals::logfileinfo, $infoline); +@@ -1144,7 +1144,7 @@ + } + else + { +- $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file ++ $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file + } + + push( @installer::globals::logfileinfo, $infoline); +@@ -1356,11 +1356,10 @@ + + if ( ! $installer::globals::languagepack && !$installer::globals::helppack) + { +- $infoline = "ERROR: Removing file $filename from file list.\n"; ++ $infoline = "WARNING: Removing file $filename from file list.\n"; + push( @installer::globals::logfileinfo, $infoline); + +- push(@missingfiles, "ERROR: File not found: $filename\n"); +- $error_occurred = 1; ++ push(@missingfiles, "WARNING: File not found: $filename\n"); + + next; # removing this file from list, if sourcepath is empty + } +@@ -1368,11 +1367,10 @@ + { + if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ )) + { +- $infoline = "ERROR: Removing file $filename from file list.\n"; ++ $infoline = "WARNING: Removing file $filename from file list.\n"; + push( @installer::globals::logfileinfo, $infoline); + +- push(@missingfiles, "ERROR: File not found: $filename\n"); +- $error_occurred = 1; ++ push(@missingfiles, "WARNING: File not found: $filename\n"); + + next; # removing this file from list, if sourcepath is empty + } +@@ -1390,11 +1388,10 @@ + { + if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCEHELPPACK\b/ )) + { +- $infoline = "ERROR: Removing file $filename from file list.\n"; ++ $infoline = "WARNING: Removing file $filename from file list.\n"; + push( @installer::globals::logfileinfo, $infoline); + +- push(@missingfiles, "ERROR: File not found: $filename\n"); +- $error_occurred = 1; ++ push(@missingfiles, "WARNING: File not found: $filename\n"); + + next; # removing this file from list, if sourcepath is empty + } +--- openoffice.org.orig/solenv/bin/modules/installer/simplepackage.pm 2010-07-12 10:27:26.000000000 +0100 ++++ openoffice.org/solenv/bin/modules/installer/simplepackage.pm 2010-07-12 10:27:54.000000000 +0100 +@@ -53,7 +53,7 @@ + ( $installer::globals::packageformat eq "archive" )) + { + $installer::globals::is_simple_packager_project = 1; +- $installer::globals::patch_user_dir = 1; ++ $installer::globals::patch_user_dir = 0; + } + elsif( $installer::globals::packageformat eq "dmg" ) + { diff --git a/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch b/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch new file mode 100644 index 0000000..efc5318 --- /dev/null +++ b/openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch @@ -0,0 +1,199 @@ +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" + ++#include //unicode::getUnicodeScriptType ++#include //ScriptType ++ + #include + #include + +@@ -747,6 +750,138 @@ static void addtopattern(FcPattern *pPattern, + } + } + ++static const char* pick_sample_language(const sal_uInt32 cCode) ++{ ++ using namespace ::com::sun::star::i18n; ++ ++ static ScriptTypeList aScripts[] = ++ { ++ { UnicodeScript_kBasicLatin, UnicodeScript_kBasicLatin, UnicodeScript_kBasicLatin }, ++ { UnicodeScript_kLatin1Supplement, UnicodeScript_kLatin1Supplement, UnicodeScript_kLatin1Supplement }, ++ { UnicodeScript_kLatinExtendedA, UnicodeScript_kLatinExtendedA, UnicodeScript_kLatinExtendedA }, ++ { UnicodeScript_kLatinExtendedB, UnicodeScript_kLatinExtendedB, UnicodeScript_kLatinExtendedB }, ++ { UnicodeScript_kGreek, UnicodeScript_kGreek, UnicodeScript_kGreek }, ++ { UnicodeScript_kCyrillic, UnicodeScript_kCyrillic, UnicodeScript_kCyrillic }, ++ { UnicodeScript_kArmenian, UnicodeScript_kArmenian, UnicodeScript_kArmenian }, ++ { UnicodeScript_kHebrew, UnicodeScript_kHebrew, UnicodeScript_kHebrew }, ++ { UnicodeScript_kArabic, UnicodeScript_kArabic, UnicodeScript_kArabic }, ++ { UnicodeScript_kSyriac, UnicodeScript_kSyriac, UnicodeScript_kSyriac }, ++ { UnicodeScript_kThaana, UnicodeScript_kThaana, UnicodeScript_kThaana }, ++ { UnicodeScript_kDevanagari, UnicodeScript_kDevanagari, UnicodeScript_kDevanagari }, ++ { UnicodeScript_kBengali, UnicodeScript_kBengali, UnicodeScript_kBengali }, ++ { UnicodeScript_kGurmukhi, UnicodeScript_kGurmukhi, UnicodeScript_kGurmukhi }, ++ { UnicodeScript_kGujarati, UnicodeScript_kGujarati, UnicodeScript_kGujarati }, ++ { UnicodeScript_kOriya, UnicodeScript_kOriya, UnicodeScript_kOriya }, ++ { UnicodeScript_kTamil, UnicodeScript_kTamil, UnicodeScript_kTamil }, ++ { UnicodeScript_kTelugu, UnicodeScript_kTelugu, UnicodeScript_kTelugu }, ++ { UnicodeScript_kKannada, UnicodeScript_kKannada, UnicodeScript_kKannada }, ++ { UnicodeScript_kMalayalam, UnicodeScript_kMalayalam, UnicodeScript_kMalayalam }, ++ { UnicodeScript_kSinhala, UnicodeScript_kSinhala, UnicodeScript_kSinhala }, ++ { UnicodeScript_kThai, UnicodeScript_kThai, UnicodeScript_kThai }, ++ { UnicodeScript_kLao, UnicodeScript_kLao, UnicodeScript_kLao }, ++ { UnicodeScript_kTibetan, UnicodeScript_kTibetan, UnicodeScript_kTibetan }, ++ { UnicodeScript_kMyanmar, UnicodeScript_kMyanmar, UnicodeScript_kMyanmar }, ++ { UnicodeScript_kGeorgian, UnicodeScript_kGeorgian, UnicodeScript_kGeorgian }, ++ { UnicodeScript_kHangulJamo, UnicodeScript_kHangulJamo, UnicodeScript_kHangulJamo }, ++ { UnicodeScript_kEthiopic, UnicodeScript_kEthiopic, UnicodeScript_kEthiopic }, ++ { UnicodeScript_kCherokee, UnicodeScript_kCherokee, UnicodeScript_kCherokee }, ++ { UnicodeScript_kUnifiedCanadianAboriginalSyllabics, ++ UnicodeScript_kUnifiedCanadianAboriginalSyllabics, ++ UnicodeScript_kUnifiedCanadianAboriginalSyllabics }, ++ { UnicodeScript_kKhmer, UnicodeScript_kKhmer, UnicodeScript_kKhmer }, ++ { UnicodeScript_kMongolian, UnicodeScript_kMongolian, UnicodeScript_kMongolian }, ++ { UnicodeScript_kLatinExtendedAdditional, UnicodeScript_kLatinExtendedAdditional, ++ UnicodeScript_kLatinExtendedAdditional }, ++ { UnicodeScript_kGreekExtended, UnicodeScript_kGreekExtended, UnicodeScript_kGreekExtended }, ++ { UnicodeScript_kHiragana, UnicodeScript_kHiragana, UnicodeScript_kHiragana }, ++ { UnicodeScript_kKatakana, UnicodeScript_kKatakana, UnicodeScript_kKatakana }, ++ { UnicodeScript_kHangulCompatibilityJamo, UnicodeScript_kHangulCompatibilityJamo, ++ UnicodeScript_kHangulCompatibilityJamo }, ++ { UnicodeScript_kHangulSyllable, UnicodeScript_kHangulSyllable, ++ UnicodeScript_kHangulSyllable }, ++ { UnicodeScript_kArabicPresentationB, UnicodeScript_kArabicPresentationB, ++ UnicodeScript_kArabicPresentationB }, ++ { UnicodeScript_kScriptCount, UnicodeScript_kScriptCount, UnicodeScript_kScriptCount } ++ }; ++ ++ switch (unicode::getUnicodeScriptType(cCode, aScripts, UnicodeScript_kScriptCount)) ++ { ++ case UnicodeScript_kBasicLatin: ++ case UnicodeScript_kLatin1Supplement: ++ case UnicodeScript_kLatinExtendedA: ++ case UnicodeScript_kLatinExtendedB: ++ case UnicodeScript_kLatinExtendedAdditional: ++ return "en"; ++ case UnicodeScript_kGreek: ++ case UnicodeScript_kGreekExtended: ++ return "el"; ++ case UnicodeScript_kCyrillic: ++ return "ru"; ++ case UnicodeScript_kArmenian: ++ return "hy"; ++ case UnicodeScript_kHebrew: ++ return "he"; ++ case UnicodeScript_kArabic: ++ case UnicodeScript_kArabicPresentationB: ++ return "ar"; ++ case UnicodeScript_kSyriac: ++ return "syr"; ++ case UnicodeScript_kThaana: ++ return "dv"; ++ case UnicodeScript_kDevanagari: ++ return "hi"; ++ case UnicodeScript_kBengali: ++ return "bn"; ++ case UnicodeScript_kGurmukhi: ++ return "pa"; ++ case UnicodeScript_kGujarati: ++ return "gu"; ++ case UnicodeScript_kOriya: ++ return "or"; ++ case UnicodeScript_kTamil: ++ return "ta"; ++ case UnicodeScript_kTelugu: ++ return "te"; ++ case UnicodeScript_kKannada: ++ return "ka"; ++ case UnicodeScript_kMalayalam: ++ return "ml"; ++ case UnicodeScript_kSinhala: ++ return "si"; ++ case UnicodeScript_kThai: ++ return "th"; ++ case UnicodeScript_kLao: ++ return "lo"; ++ case UnicodeScript_kTibetan: ++ return "bo"; ++ case UnicodeScript_kMyanmar: ++ return "my"; ++ case UnicodeScript_kGeorgian: ++ return "ka"; ++ case UnicodeScript_kHangulJamo: ++ case UnicodeScript_kHangulCompatibilityJamo: ++ case UnicodeScript_kHangulSyllable: ++ return "ko"; ++ case UnicodeScript_kEthiopic: ++ return "am"; ++ case UnicodeScript_kCherokee: ++ return "chr"; ++ case UnicodeScript_kUnifiedCanadianAboriginalSyllabics: ++ return "ui"; ++ case UnicodeScript_kKhmer: ++ return "km"; ++ case UnicodeScript_kMongolian: ++ return "mn"; ++ case UnicodeScript_kHiragana: ++ case UnicodeScript_kKatakana: ++ return "ja"; ++ default: ++ break; ++ } ++ ++ return NULL; ++} ++ + bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& rMissingCodes ) + { + 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( !aLangAttrib.isEmpty() ) + { +- const FcChar8* pLangAttribUtf8; + if (aLangAttrib.equalsIgnoreAsciiCase(OString(RTL_CONSTASCII_STRINGPARAM("pa-in")))) + pLangAttribUtf8 = (FcChar8*)"pa"; + else + pLangAttribUtf8 = (FcChar8*)aLangAttrib.getStr(); +- FcPatternAddString(pPattern, FC_LANG, pLangAttribUtf8); + } + + // Add required Unicode characters, if any +@@ -783,11 +917,16 @@ bool PrintFontManager::Substitute( FontSelectPattern &rPattern, rtl::OUString& r + // also handle unicode surrogates + const sal_uInt32 nCode = rMissingCodes.iterateCodePoints( &nStrIndex ); + FcCharSetAddChar( unicodes, nCode ); ++ if (!pLangAttribUtf8) ++ pLangAttribUtf8 = (const FcChar8*)pick_sample_language(nCode); + } + FcPatternAddCharSet(pPattern, FC_CHARSET, unicodes); + FcCharSetDestroy(unicodes); + } + ++ if( pLangAttribUtf8 ) ++ FcPatternAddString( pPattern, FC_LANG, pLangAttribUtf8 ); ++ + addtopattern(pPattern, rPattern.meItalic, rPattern.meWeight, + rPattern.meWidthType, rPattern.mePitch); + +-- +1.7.7.3 + diff --git a/poppler0.18.1.patch b/poppler0.18.1.patch deleted file mode 100644 index a6b2267..0000000 --- a/poppler0.18.1.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- ./sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx 2011-11-14 20:32:45.000000000 +0000 -+++ ./sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx 2011-11-14 20:30:53.000000000 +0000 -@@ -150,7 +150,7 @@ void writeBinaryBuffer( const OutputBuff - void writeJpeg_( OutputBuffer& o_rOutputBuf, Stream* str, bool bWithLinefeed ) - { - // dump JPEG file as-is --#if POPPLER_CHECK_VERSION(0, 17, 3) -+#if POPPLER_CHECK_VERSION(0, 17, 3) || POPPLER_CHECK_VERSION(0, 18, 1) - str = str->getBaseStream(); - #else - str = ((DCTStream *)str)->getRawStream(); -@@ -493,7 +493,7 @@ void PDFOutDev::endPage() - printf("endPage\n"); - } - --#if POPPLER_CHECK_VERSION(0, 17, 0) -+#if POPPLER_CHECK_VERSION(0, 17, 0) || POPPLER_CHECK_VERSION(0, 18, 1) - void PDFOutDev::processLink(AnnotLink *link, Catalog *) - #else - void PDFOutDev::processLink(Link* link, Catalog*) ---- ./sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx 2011-11-14 20:22:04.000000000 +0000 -+++ ./sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx 2011-11-14 20:22:55.000000000 +0000 -@@ -201,7 +201,7 @@ namespace pdfi - // virtual void cvtDevToUser(double dx, double dy, double *ux, double *uy); - // virtual void cvtUserToDev(double ux, double uy, int *dx, int *dy); - -- #if POPPLER_CHECK_VERSION(0, 17, 0) -+ #if POPPLER_CHECK_VERSION(0, 17, 0) || POPPLER_CHECK_VERSION(0, 18, 1) - virtual void processLink(AnnotLink *link, Catalog *catalog); - #else - //----- link borders diff --git a/vbahelper.visibility.patch b/vbahelper.visibility.patch deleted file mode 100644 index 5739100..0000000 --- a/vbahelper.visibility.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:27:51.507604173 +0000 -+++ vbahelper/inc/vbahelper/vbacollectionimpl.hxx 2011-01-28 20:28:26.230045727 +0000 -@@ -238,7 +238,7 @@ - - // including a HelperInterface implementation - template< typename Ifc1 > --class ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 > -+class VBAHELPER_DLLPUBLIC ScVbaCollectionBase : public InheritedHelperInterfaceImpl< Ifc1 > - { - typedef InheritedHelperInterfaceImpl< Ifc1 > BaseColBase; - protected: ---- sc/Library_vbaobj.mk -+++ sc/Library_vbaobj.mk -@@ -118,7 +118,6 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\ - sc/source/ui/vba/vbaquerytable \ - sc/source/ui/vba/vbarange \ - sc/source/ui/vba/vbasheetobject \ -- sc/source/ui/vba/vbasheetobjects \ - sc/source/ui/vba/vbastyle \ - sc/source/ui/vba/vbastyles \ - sc/source/ui/vba/vbatextboxshape \ -@@ -133,6 +132,11 @@ $(eval $(call gb_Library_add_exception_objects,vbaobj,\ - sc/source/ui/vba/vbawsfunction \ - )) - -+$(eval $(call gb_Library_add_cxxobjects,vbaobj,\ -+ sc/source/ui/vba/vbasheetobjects \ -+ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \ -+)) -+ - ifneq (,$(filter LINUX DRAGONFLY OPENBSD FREEBSD NETBSD, $(OS))) - $(eval $(call gb_Library_set_ldflags,vbaobj,\ - $$(LDFLAGS) \