c25356d5978632df6203437e1953bcb29e0c736fTimo SirainenRequirements gathering for new packaging system
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen-----------------------------------------------
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo SirainenSome of these requirements will be satisfied in part by the use of ZFS
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainenas a root filesystem.
10399559650f552a23949772be79eb6a80198c5aTimo SirainenIn no particular order:
eca38954bcf972618f6b85932a3690acbd2b673aTimo SirainenA new packaging system must:
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
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.
8d25b6ad05b99e75613cb045a121efd51e6afbb6Timo Sirainen* support the installation of packages to a directory for diskless and Xen
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen* be repository based to faciltate efficient software distribution.
d3fce898d31ad40b554c91f3035a7f4d7d52ed52Timo Sirainen* support the user's connection to multiple repositories to provide
3954326e793bdef1e94e0ad781ed6cc7e48beebbTimo Sirainen different types of software, newer software, different vendors/suppliers,
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* allow a package to be installed in alternative (non default) locations.
2aed6c2062317d1750f59c5c88e77d9f10967462Timo Sirainen* allow the installation of multiple instances/revisions of the same package
28c75d59f1d1a7caeb85635964f3881c0038eb23Timo Sirainen in different locations.
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* permit the selection of alternative software streams available from a single
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* 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* 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.
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