author | Edward Pilatowicz <edward.pilatowicz@oracle.com> |
Mon, 16 Sep 2013 21:26:31 -0700 | |
changeset 2945 | 24196b483cc6 |
parent 110 | 2a54111bcaf8 |
permissions | -rw-r--r-- |
41 | 1 |
|
2 |
Requirements gathering for new packaging system |
|
3 |
----------------------------------------------- |
|
4 |
||
5 |
Some of these requirements will be satisfied in part by the use of ZFS |
|
6 |
as a root filesystem. |
|
7 |
||
8 |
In no particular order: |
|
9 |
||
10 |
A new packaging system must: |
|
11 |
||
12 |
* replace existing patching/upgrade/live upgrade/Jumpstart/Jet/SUC/... |
|
13 |
functionality; there should be one way of managing all software change on |
|
14 |
Solaris 11. |
|
15 |
||
16 |
* allow fine grain control of installation contents to support minimization |
|
17 |
A customer should be able to select the desired functionality, and have the |
|
18 |
system bring in the closure of the dependency graph. |
|
19 |
||
20 |
* support the installation of packages to a directory for diskless and Xen |
|
21 |
configs. |
|
22 |
||
23 |
* be repository based to faciltate efficient software distribution. |
|
24 |
||
25 |
* support the user's connection to multiple repositories to provide |
|
26 |
different types of software, newer software, different vendors/suppliers, |
|
27 |
etc. |
|
28 |
||
29 |
* deal with zones: |
|
30 |
* maintain global zone, whole root zones in sync |
|
31 |
* cope w/ directory level split between global and local zones, or |
|
32 |
eliminate them. |
|
33 |
||
34 |
* allow a package to be installed in alternative (non default) locations. |
|
35 |
||
36 |
* allow the installation of multiple instances/revisions of the same package |
|
37 |
in different locations. |
|
38 |
||
39 |
* manage package dependencies in multiple ways: |
|
40 |
* allow a set of packages to be managed as a group; all packages |
|
41 |
must transition together. Groups may include other groups. |
|
42 |
* allow specification of a minimum version level |
|
43 |
* dependency graphs need not be acyclic |
|
44 |
||
45 |
* permit the selection of alternative software streams available from a single |
|
46 |
repository. |
|
47 |
||
48 |
* permit the "tagging" of packages with interesting information such as |
|
49 |
external packaging version number, features provided (at least partially) |
|
50 |
by this packages, etc. |
|
51 |
||
52 |
* permit the creation of alternative package branches to represent either early |
|
53 |
platform introduction or customer-specific fixes that are later merged into |
|
54 |
the mainline. |
|
55 |
||
56 |
* manage updates to client system in a transactional fashion; either we run the |
|
57 |
old bits or the new bits, never some of each. |
|
58 |
||
59 |
* support secure upgrading through firewalls, etc, w/o special handling, |
|
60 |
ports opened, etc, on the client side. It must be possible to both allow |
|
61 |
and disallow anonymous access to the repository, and offer fine grain access |
|
62 |
controls. |
|
63 |
||
64 |
* be robust in the face of filesystem damage on the client side. It must be |
|
65 |
possible to identify where the system doesn't match the packaging information, |
|
66 |
and to be able to repair any damage by restoring damaged components from the |
|
67 |
repository. |
|
68 |
||
69 |
* be open source, and included in OpenSolaris. All the tools necessary to build |
|
70 |
and distribute OpenSolaris via a repository should be part of OpenSolaris. |
|
71 |
||
72 |
* support interactive development. A developer should be readily able to |
|
73 |
create a new repository, make changes, build, commit the changes to the |
|
74 |
repository and update his machine with those changes and reboot. |
|
75 |
||
76 |
* be of acceptable performance. Upgrade operations should not reacquire files |
|
77 |
already in place on the system. As much as possible, packaging operations |
|
78 |
should be order (1) rather then order(number of zones). Packaging operations |
|
110
2a54111bcaf8
Make it possible to import companion into /usr
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
41
diff
changeset
|
79 |
should not be significantly affected by the number of packages already |
2a54111bcaf8
Make it possible to import companion into /usr
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
41
diff
changeset
|
80 |
installed on the system |
41 | 81 |
|
82 |
A new packaging system must not: |
|
83 |
||
84 |
* require changing the build system of consolidations contributing to |
|
85 |
software respository. Different parts of OpenSolaris build in many different |
|
86 |
ways; forcing them all to be the same is unacceptable. |
|
87 |
||
88 |
* require the use of non-local resources for clients; security conscious |
|
89 |
companies must be able to run their own repositories completely disconnected |
|
90 |
from any external networks. |
|
91 |
||
92 |