c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen
c25356d5978632df6203437e1953bcb29e0c736fTimo SirainenRequirements gathering for new packaging system
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen-----------------------------------------------
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo SirainenSome of these requirements will be satisfied in part by the use of ZFS
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainenas a root filesystem.
10399559650f552a23949772be79eb6a80198c5aTimo Sirainen
10399559650f552a23949772be79eb6a80198c5aTimo SirainenIn no particular order:
10399559650f552a23949772be79eb6a80198c5aTimo Sirainen
eca38954bcf972618f6b85932a3690acbd2b673aTimo SirainenA new packaging system must:
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
3954326e793bdef1e94e0ad781ed6cc7e48beebbTimo Sirainen* replace existing patching/upgrade/live upgrade/Jumpstart/Jet/SUC/...
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen functionality; there should be one way of managing all software change on
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen Solaris 11.
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* allow fine grain control of installation contents to support minimization
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen A customer should be able to select the desired functionality, and have the
9c7f6dbf65ca01026e5f9c8c8b67c7e629c0b5e7Timo Sirainen system bring in the closure of the dependency graph.
92d1458b00f4f236c4cec96a696253d3bbf8b05aTimo Sirainen
8d25b6ad05b99e75613cb045a121efd51e6afbb6Timo Sirainen* support the installation of packages to a directory for diskless and Xen
8d25b6ad05b99e75613cb045a121efd51e6afbb6Timo Sirainen configs.
8d25b6ad05b99e75613cb045a121efd51e6afbb6Timo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* be repository based to faciltate efficient software distribution.
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
d3fce898d31ad40b554c91f3035a7f4d7d52ed52Timo Sirainen* support the user's connection to multiple repositories to provide
3954326e793bdef1e94e0ad781ed6cc7e48beebbTimo Sirainen different types of software, newer software, different vendors/suppliers,
3954326e793bdef1e94e0ad781ed6cc7e48beebbTimo Sirainen etc.
3954326e793bdef1e94e0ad781ed6cc7e48beebbTimo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* deal with zones:
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen * maintain global zone, whole root zones in sync
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen * cope w/ directory level split between global and local zones, or
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen eliminate them.
92d1458b00f4f236c4cec96a696253d3bbf8b05aTimo Sirainen
92d1458b00f4f236c4cec96a696253d3bbf8b05aTimo Sirainen* allow a package to be installed in alternative (non default) locations.
2aed6c2062317d1750f59c5c88e77d9f10967462Timo Sirainen
2aed6c2062317d1750f59c5c88e77d9f10967462Timo Sirainen* allow the installation of multiple instances/revisions of the same package
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen in different locations.
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* manage package dependencies in multiple ways:
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen * allow a set of packages to be managed as a group; all packages
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen must transition together. Groups may include other groups.
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen * allow specification of a minimum version level
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen * dependency graphs need not be acyclic
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* permit the selection of alternative software streams available from a single
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen repository.
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* permit the "tagging" of packages with interesting information such as
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen external packaging version number, features provided (at least partially)
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen by this packages, etc.
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* permit the creation of alternative package branches to represent either early
2be7df5df08ac4639ad83559ec5fcf552c84fb4aTimo Sirainen platform introduction or customer-specific fixes that are later merged into
2be7df5df08ac4639ad83559ec5fcf552c84fb4aTimo Sirainen the mainline.
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* manage updates to client system in a transactional fashion; either we run the
e3fabe8d0faa9aab7cae2d0eee9653f581a3061dTimo Sirainen old bits or the new bits, never some of each.
31257b47d47510ceb093a6b218810a1a5b830c55Timo Sirainen
fefd62f9aaccecbc6011ecae359a3389668cbff5Timo Sirainen* support secure upgrading through firewalls, etc, w/o special handling,
75bb83681e30d6a86109bbafdfe6b513c11124bcTimo Sirainen ports opened, etc, on the client side. It must be possible to both allow
31257b47d47510ceb093a6b218810a1a5b830c55Timo Sirainen and disallow anonymous access to the repository, and offer fine grain access
e3fabe8d0faa9aab7cae2d0eee9653f581a3061dTimo Sirainen controls.
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen
* be robust in the face of filesystem damage on the client side. It must be
possible to identify where the system doesn't match the packaging information,
and to be able to repair any damage by restoring damaged components from the
repository.
* be open source, and included in OpenSolaris. All the tools necessary to build
and distribute OpenSolaris via a repository should be part of OpenSolaris.
* support interactive development. A developer should be readily able to
create a new repository, make changes, build, commit the changes to the
repository and update his machine with those changes and reboot.
* be of acceptable performance. Upgrade operations should not reacquire files
already in place on the system. As much as possible, packaging operations
should be order (1) rather then order(number of zones). Packaging operations
should not be significantly affected by the number of packages already
installed on the system
A new packaging system must not:
* require changing the build system of consolidations contributing to
software respository. Different parts of OpenSolaris build in many different
ways; forcing them all to be the same is unacceptable.
* require the use of non-local resources for clients; security conscious
companies must be able to run their own repositories completely disconnected
from any external networks.