Issue 66005

Summary: Extensions: Versioning and Dependencies
Product: General Reporter: Stephan Bergmann <stephan.bergmann.secondary>
Component: codeAssignee: b.osi.ooo
Status: CLOSED FIXED QA Contact: issues@framework <issues>
Severity: Trivial    
Priority: P3 CC: issues
Version: current   
Target Milestone: OOo 2.0.4   
Hardware: All   
OS: All   
URL: http://specs.openoffice.org/source/browse/specs/www/appwide/packagemanager/simple_extension_license.odt
Issue Type: ENHANCEMENT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
testcase
none
testcase
none
testcase
none
testcase
none
testcase
none
testcase
none
testcase
none
testcase
none
testcase none

Description Stephan Bergmann 2006-06-01 13:41:42 UTC
Extensions (formerly known as "Packages" or "UNO Packages") need to be versioned
(and uniquely identifiable), and the dependencies of an extension (on UNO types,
services, and singletons; other extensions; specific OOo versions; external
libraries; etc.) need to be expressed by the extension and checked at deploy time.
Comment 1 Stephan Bergmann 2006-06-01 13:42:28 UTC
.
Comment 2 Stephan Bergmann 2006-06-29 14:14:41 UTC
For OOo 2.0.4, only very little needs to be done:

- For versioning, nothing needs to be done right now, as an extension that has
no version information is implicitly version 1.0.0.  (And OOo 2.0.4, like 2.0.3,
will not have automatic support for upgrading extensions.  If you want to
upgrade an extension, you need to first remove the old version and then add the
new version in Package Manager.)

- OOo 2.0.4 does not yet specify any entities an extension can depend on.  An
.oxt extension that does not specify any dependencies implicitly depends on OOo
2.0.4 (which is implemented by the fact that .oxt is first supported in OOo
2.0.4, anyway), while an .uno.pkg or .zip extension that does not specify any
dependencies simply has none.

- The only thing that needs to be implemented for OOo 2.0.4 is to check whether
an extension specifies any dependencies, and if so, display an error box that
the extension cannot be installed because of its (unsatisfied) dependencies.
Comment 3 Stephan Bergmann 2006-07-07 16:10:36 UTC
Created attachment 37565 [details]
testcase
Comment 4 Stephan Bergmann 2006-07-07 16:10:58 UTC
Created attachment 37566 [details]
testcase
Comment 5 Stephan Bergmann 2006-07-07 16:11:56 UTC
Created attachment 37568 [details]
testcase
Comment 6 Stephan Bergmann 2006-07-07 16:12:25 UTC
Created attachment 37569 [details]
testcase
Comment 7 Stephan Bergmann 2006-07-07 16:13:57 UTC
Created attachment 37571 [details]
testcase
Comment 8 Stephan Bergmann 2006-07-07 16:14:28 UTC
Created attachment 37572 [details]
testcase
Comment 9 Stephan Bergmann 2006-07-07 16:14:52 UTC
Created attachment 37573 [details]
testcase
Comment 10 Stephan Bergmann 2006-07-07 16:15:12 UTC
Created attachment 37574 [details]
testcase
Comment 11 Stephan Bergmann 2006-07-07 16:15:32 UTC
Created attachment 37575 [details]
testcase
Comment 12 Stephan Bergmann 2006-07-07 16:25:19 UTC
For testing purposes, I attached a number of extensions:

no-description.oxt, no-dependencies.oxt, empty-dependencies.oxt effectively have
no dependencies and should thus install successfully.

broken-dependencies.oxt contains a malformed description.xml and should thus
display an error and not install.

double-dependencies.oxt contains a description.xml with two dependencies
elements.  This is not allowed by the spec but behaviour is unspecified.  In the
current implementation, it combines the two elements, and thus finds two
unsatisfied dependencies, displays the Unsatisfied Dependencies dialog and does
not install.

All of the following testcases should result in the Unsatisfied Dependencies
dialog being displayed and the extension not being installed:

unknown-dependency.oxt contains a dependency without a name attribute, and
should thus display "Unknown" (localized).

funny-dependency.oxt, many-dependencies.oxt contain somewhat extreme input.

license-dependency.oxt contains both a license to be accepted by the user and
dependencies.  What is important here is that the Unsatisfied Dependencies
dialog is displayed, but not the license (as installation aborts as soon as
unsatisfied dependencies are found).
Comment 13 Stephan Bergmann 2006-07-10 13:01:54 UTC
.
Comment 14 b.osi.ooo 2006-07-12 17:51:34 UTC
verified
Comment 15 b.osi.ooo 2006-07-19 12:38:30 UTC
 close