diff --git a/0001-fdo-75540-setProcessServiceFactory-must-be-called-be.patch b/0001-fdo-75540-setProcessServiceFactory-must-be-called-be.patch new file mode 100644 index 0000000..b4eb34a --- /dev/null +++ b/0001-fdo-75540-setProcessServiceFactory-must-be-called-be.patch @@ -0,0 +1,139 @@ +From 34c72f10939d473eb1a098fac1f05647c0232727 Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Thu, 27 Feb 2014 13:18:36 +0100 +Subject: [PATCH] fdo#75540 setProcessServiceFactory must be called before + InitVCL +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +...because InitVCL now calls: + +> comphelper::getProcessServiceFactory +> comphelper::getProcessComponentContext +> utl::DefaultFontConfiguration::DefaultFontConfiguration +> rtl::Static::get +> utl::DefaultFontConfiguration::get +> ImplStyleData::SetStandardStyles +> ImplStyleData::ImplStyleData +> boost::make_shared +> StyleSettings::StyleSettings +> ImplAllSettingsData::ImplAllSettingsData +> boost::make_shared +> AllSettings::AllSettings +> Application::InitSettings +> Application::GetSettings +> GtkInstance::AfterAppInit +> InitVCL +> ImplSVMain +> SVMain +> sal_main +> main + +and Application::Main is only called after InitVCL. + +(cherry picked from commit c828e3cc409077a1916911b8abf1d7b8dbb2078a) +Conflicts: + padmin/source/pamain.cxx + +Change-Id: I1126e33f454a4ea35ef295cbd3f48429c473efb4 +Reviewed-on: https://gerrit.libreoffice.org/8380 +Reviewed-by: Caolán McNamara +Tested-by: Caolán McNamara +--- + padmin/source/pamain.cxx | 54 +++++++++++++++++++++++++++--------------------- + 1 file changed, 30 insertions(+), 24 deletions(-) + +diff --git a/padmin/source/pamain.cxx b/padmin/source/pamain.cxx +index bbccadf..b510f99 100644 +--- a/padmin/source/pamain.cxx ++++ b/padmin/source/pamain.cxx +@@ -51,6 +51,11 @@ public: + virtual sal_uInt16 Exception( sal_uInt16 nError ); + + static OUString ReadStringHook( const OUString& ); ++ ++private: ++ virtual void Init() SAL_OVERRIDE; ++ ++ Reference< XComponentContext > xCtx_; + }; + + void vclmain::createApplication() +@@ -84,35 +89,13 @@ int MyApp::Main() + + EnableAutoHelpId(); + +- //------------------------------------------------- +- // create the global service-manager +- //------------------------------------------------- +- Reference< XComponentContext > xCtx; +- Reference< XMultiServiceFactory > xFactory; +- try +- { +- xCtx = defaultBootstrap_InitialComponentContext(); +- xFactory = Reference< XMultiServiceFactory >( xCtx->getServiceManager(), UNO_QUERY ); +- if( xFactory.is() ) +- setProcessServiceFactory( xFactory ); +- } +- catch( const com::sun::star::uno::Exception& ) +- { +- } +- +- if( ! xFactory.is() ) +- { +- fprintf( stderr, "Could not bootstrap UNO, installation must be in disorder. Exiting.\n" ); +- exit( 1 ); +- } +- + // Detect desktop environment - need to do this as early as possible + com::sun::star::uno::setCurrentContext( + new DesktopContext( com::sun::star::uno::getCurrentContext() ) ); + + // Create UCB (for backwards compatibility, in case some code still uses + // plain createInstance w/o args directly to obtain an instance): +- com::sun::star::ucb::UniversalContentBroker::create(xCtx); ++ com::sun::star::ucb::UniversalContentBroker::create(xCtx_); + + /* + * Initialize the Java UNO AccessBridge if accessibility is turned on +@@ -139,7 +122,7 @@ int MyApp::Main() + */ + try + { +- Reference xComp(xCtx, UNO_QUERY_THROW); ++ Reference xComp(xCtx_, UNO_QUERY_THROW); + xComp->dispose(); + } + catch(...) +@@ -149,4 +132,27 @@ int MyApp::Main() + return EXIT_SUCCESS; + } + ++void MyApp::Init() ++{ ++ // create the global service-manager ++ ++ Reference< XMultiServiceFactory > xFactory; ++ try ++ { ++ xCtx_ = defaultBootstrap_InitialComponentContext(); ++ xFactory = Reference< XMultiServiceFactory >( xCtx_->getServiceManager(), UNO_QUERY ); ++ if( xFactory.is() ) ++ setProcessServiceFactory( xFactory ); ++ } ++ catch( const com::sun::star::uno::Exception& ) ++ { ++ } ++ ++ if( ! xFactory.is() ) ++ { ++ fprintf( stderr, "Could not bootstrap UNO, installation must be in disorder. Exiting.\n" ); ++ exit( 1 ); ++ } ++} ++ + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ +-- +1.8.5.3 + diff --git a/libreoffice.spec b/libreoffice.spec index 873a163..afbeb55 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -43,7 +43,7 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 Version: %{libo_version}.1 -Release: 3%{?libo_prerelease}%{?dist} +Release: 4%{?libo_prerelease}%{?dist} 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 and MPLv2.0 Group: Applications/Productivity URL: http://www.libreoffice.org/default/ @@ -280,6 +280,7 @@ Patch17: 0001-Related-rhbz-1065807-rework-i66157-for-multiple-writ.patch Patch18: 0001-Resolves-rhbz-1065807-use-xdg-Templates-for-default-.patch Patch19: 0001-explictly-list-common-lang-independant-template-dir.patch Patch20: 0001-rhbz-1057977-avoid-use-of-invalidated-pointers.patch +Patch21: 0001-fdo-75540-setProcessServiceFactory-must-be-called-be.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -2175,6 +2176,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %endif %changelog +* Thu Feb 27 2014 Stephan Bergmann - 1:4.2.1.1-4 +- Resolves: fdo#75540 spadmin does not start + * Thu Feb 27 2014 David Tardon - 1:4.2.1.1-3 - Resolves: rhbz#1057977 do not crash when fonts are updated