diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-08-02 18:10:03 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-08-02 18:26:39 +0200 |
commit | 81fd6b084b0f3c0eb5a97c77592f5ceb21d2dfb1 (patch) | |
tree | e5a9ee88b2e11c00060cc8f8e1e9d2d77b5c2f60 /offapi/com | |
parent | 85a8a72067c4e13f3bddbe11e0899702202f4c4f (diff) |
fdo#53006 Force reinstall of all bundled extensions on upgrade
...as the per-user data about bundled extensions can otherwise contain stale
$BUNDLED_EXTENSIONS_PREREG references if the old installation used
share/prereg/bundled/, the new one does not (cf. the fixing for fdo#51252 "LO
cannot start (reports runtime error with Visual C++ Runtime Library)"), and a
bundled extension did not change version.
It is safe to tie this behavior to the existing "force" parameter of
dp_misc::syncRepositories, as the only place that calls it with force=true is
the call to Desktop::SynchronizeExtensionRepositories(newInst) in Desktop::Main,
where newInst=true is the relevant condition for this behavior, too.
As stated in XExtensionManager.idl, "this [...] can go again once no exisiting
UserInstallation's user/extensions/bundled/ data can contain any
$BUNDLED_EXTENSIONS_PREREG references any longer."
Change-Id: I630dec8f2d20282ee47c65ac61ed2c9b062448e1
Diffstat (limited to 'offapi/com')
-rw-r--r-- | offapi/com/sun/star/deployment/XExtensionManager.idl | 8 | ||||
-rw-r--r-- | offapi/com/sun/star/deployment/XPackageManager.idl | 8 |
2 files changed, 15 insertions, 1 deletions
diff --git a/offapi/com/sun/star/deployment/XExtensionManager.idl b/offapi/com/sun/star/deployment/XExtensionManager.idl index 7744ea6d839e..3809d905fa5a 100644 --- a/offapi/com/sun/star/deployment/XExtensionManager.idl +++ b/offapi/com/sun/star/deployment/XExtensionManager.idl @@ -285,11 +285,19 @@ interface XExtensionManager The active extensions are determined. That is, shared or bundled extensions are not necessaryly registered (<member>XPackage::registerPackage</member>). + @param forceBundled + whether to reinstall all bundled extensions even if their versions + have not changed (which might be necessary when an upgraded + installation outdates references to any share/prereg/bundled/ + data; this parameter can go again once no exisiting + UserInstallation's user/extensions/bundled/ data can contain any + $BUNDLED_EXTENSIONS_PREREG references any longer) @return If true - then at least one extension was removed or added. Otherwise nothing was changed. */ boolean synchronize( + [in] boolean forceBundled, [in] com::sun::star::task::XAbortChannel xAbortChannel, [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) raises (DeploymentException, diff --git a/offapi/com/sun/star/deployment/XPackageManager.idl b/offapi/com/sun/star/deployment/XPackageManager.idl index 65cb24a6ac0f..842efdf3b5e4 100644 --- a/offapi/com/sun/star/deployment/XPackageManager.idl +++ b/offapi/com/sun/star/deployment/XPackageManager.idl @@ -259,6 +259,10 @@ interface XPackageManager Added extensions will be added to the database and removed extensions will be removed from the database. + @param force + whether to reinstall all extensions even if their versions have not + changed (see forceBundled parameter of + XExtensionManager.synchronize) @param xAddedExtension new extensions which may need to be registered. @@ -268,7 +272,9 @@ interface XPackageManager If true - then at least one extension was removed or added. Otherwise nothing was changed. */ - boolean synchronize([in] com::sun::star::task::XAbortChannel xAbortChannel, + boolean synchronize( + [in] boolean force, + [in] com::sun::star::task::XAbortChannel xAbortChannel, [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) raises (DeploymentException, com::sun::star::ucb::CommandFailedException, |