author | Edward Pilatowicz <edward.pilatowicz@oracle.com> |
Mon, 16 Sep 2013 21:26:31 -0700 | |
changeset 2945 | 24196b483cc6 |
parent 2219 | 60ad60f7592c |
permissions | -rw-r--r-- |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1 |
pkg(5): image packaging system |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
2 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
3 |
This information is Copyright (c) 2010, Oracle and/or its affiliates. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
4 |
All rights reserved. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
5 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
6 |
ON-DISK FORMAT PROPOSAL |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
7 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
8 |
1. Introduction |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
9 |
1.1. Date of This Document: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
10 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
11 |
06/02/2010 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
12 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
13 |
1.2. Name of Document Author/Supplier: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
14 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
15 |
Shawn Walker, Oracle, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
16 |
on behalf of the pkg(5) project team |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
17 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
18 |
1.3. Acknowledgements: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
19 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
20 |
This document is largely based on comments from the following |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
21 |
individuals to whom the author is exceedingly indebted to: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
22 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
23 |
- Danek Duvall |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
24 |
- Mike Gerdts |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
25 |
- Stephen Hahn |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
26 |
- Krister Johansen |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
27 |
- Dan Price |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
28 |
- Brock Pytlik |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
29 |
- Bart Smaalders |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
30 |
- Peter Tribble |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
31 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
32 |
2. Project Summary |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
33 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
34 |
2.1. Project Description: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
35 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
36 |
"...the repository can be archived up, put on a CD, memory |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
37 |
stick, 2D barcode, and protected by the Black Knight, fire |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
38 |
moats, komodo dragons, etc." - Danek Duvall |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
39 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
40 |
pkg(5) is primarily a network-oriented binary packaging system. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
41 |
Although some of the tools it provides support filesystem-based |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
42 |
operations for publication, the primary expected use for package |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
43 |
operations (such as install, update, search, etc.) is between an |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
44 |
intelligent client and one or more servers that provide access |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
45 |
to a package repository and/or other interactive services. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
46 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
47 |
This project seeks to define and establish an on-disk format |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
48 |
(and corresponding container format), for the pkg(5) system, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
49 |
with the intent that it can enable the ubiquitous, transparent |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
50 |
use of package data from filesystem-based resources. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
51 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
52 |
The changes proposed by this project are evolutionary, not |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
53 |
revolutionary, in nature. In particular, this project seeks |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
54 |
to refine and adopt the existing repository format used by the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
55 |
pkg(5) depot server as the on-disk format. Supplementary to |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
56 |
that, it also seeks the addition of a container format to ease |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
57 |
provisioning of the on-disk format, and the unification of the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
58 |
scheme used by the client and server to store package data. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
59 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
60 |
2.2. Problem Area: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
61 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
62 |
For some deployments, network-based package data access is not |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
63 |
possible or is undesirable. Concerns often cited in this area |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
64 |
include: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
65 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
66 |
- lack of access control or ability to easily integrate with |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
67 |
existing access control systems, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
68 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
69 |
- inability to rely on alternative (or existing) provisioning |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
70 |
arrangements (such as NFS-based file servers), |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
71 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
72 |
- environmental or procedural requirements that prohibit the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
73 |
ability to or use of a network-based service, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
74 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
75 |
- characteristics of network protocols (such as HTTP, etc.) that |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
76 |
artificially limit functionality or performance (as opposed to |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
77 |
iSCSI or other alternatives), |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
78 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
79 |
- ease of administration of filesystem-based resources, and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
80 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
81 |
- ease of transferring package data. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
82 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
83 |
3. Project Technical Description: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
84 |
3.1. Details: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
85 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
86 |
This project defines an on-disk format (and corresponding con- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
87 |
tainer format) that is intended for the supplemental or complete |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
88 |
provisioning of package data at all stages of the package life- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
89 |
cycle. That is, when package data is published, stored by the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
90 |
client or server, or otherwise used during package operations. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
91 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
92 |
The on-disk format (defined in detail later in this document) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
93 |
is intended to be distributable in its raw form (a pre-defined |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
94 |
structure of directories and files) or within a container format |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
95 |
(such as a zip file, etc.). |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
96 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
97 |
Out of necessity, the use of filesystem-based resources (such as |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
98 |
those provided by the on-disk format) will sometimes limit the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
99 |
operations that can be performed to a subset of those normally |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
100 |
available when interacting with a network-based repository. For |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
101 |
example, search and publisher configuration may not be possible, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
102 |
and purely interactive services such as the BUI (Browser UI) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
103 |
offered by the depot server for a repository, RSS feeds, and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
104 |
others will not be available. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
105 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
106 |
Because of the wide-ranging impact of the changes required to |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
107 |
implement this functionality, it is intended that the project |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
108 |
be implemented in the following sequence: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
109 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
110 |
- Client Support for filesystem-based Repository Access |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
111 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
112 |
- Depot Storage, Client Transport and Publication Tool Update |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
113 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
114 |
- Client Storage and Image Format Update |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
115 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
116 |
- Client and Depot Support for On-Disk Archive Format |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
117 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
118 |
3.2. Bug/RFE Number(s): |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
119 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
120 |
As an example of the kinds of defects and RFEs intended to be |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
121 |
resolved by this project, see the following selection of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
122 |
defect.opensolaris.org bug IDs: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
123 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
124 |
2152 standalone package support needed (on-disk format) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
125 |
166 depot doesn't set directory mode when creating directories |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
126 |
2086 validate that a repository is really a repository in pkg.depotd |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
127 |
6335 publisher repo with invalid certificate information shouldn't |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
128 |
prevent querying other repos |
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
129 |
6576 pkg install/update support for temporary publisher origins desired |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
130 |
6940 depot support for file:// URI desired |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
131 |
7213 ability to remove published packages |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
132 |
7273 manifests should be arranged in a hierarchy by publisher |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
133 |
7276 /var/pkg metadata needs reorg (looks busy) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
134 |
8433 client and pull need to refer to refer to "repository" instead of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
135 |
"server" |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
136 |
8722 advanced repository metadata store needed |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
137 |
8725 versioning information for depot and repository metadata needed |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
138 |
9571 CachedManifest should be named FactoredManifest |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
139 |
9572 CachedManifest should allow consumers to specify cache location |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
140 |
9872 publication api should use new transport subsystem |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
141 |
9933 ability to control repository creation behaviour or removal of it |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
142 |
10244 caching dictionaries as a class variable prevents multi-image and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
143 |
repo search |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
144 |
11362 Image update dying when trying to talk to a disabled and offline |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
145 |
publisher |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
146 |
11740 publishers with installed packages should not be removable |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
147 |
12814 publisher prefixes should be forcibly lower-cased or case |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
148 |
insensitive |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
149 |
14802 ability to have separate read / write download caches |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
150 |
15320 pkgsend will traceback if unable to parse server error response |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
151 |
15371 repository property defaults opensolaris.org-specific |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
152 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
153 |
3.3. In Scope: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
154 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
155 |
Filesystem-based data resourcing for package operations. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
156 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
157 |
3.4. Out of Scope: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
158 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
159 |
Package signing and fine-grained access control for package |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
160 |
repositories. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
161 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
162 |
4. On-Disk Format Technical Description: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
163 |
4.1. Overview: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
164 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
165 |
The on-disk format is intended to exist both in a raw format as |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
166 |
a pre-defined structure of directories and files, and in an |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
167 |
archive format which is primarily a simple container for |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
168 |
the raw format. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
169 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
170 |
4.2. Raw Format: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
171 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
172 |
4.2.1. Goals: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
173 |
The goals for the raw on-disk format include: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
174 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
175 |
- unification of client and server package data storage |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
176 |
for data common to both, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
177 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
178 |
- transparent usage of package data regardless of operation |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
179 |
or use by client or server, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
180 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
181 |
- ease in composition and decomposition of package data |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
182 |
stored within by publisher or package, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
183 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
184 |
- re-use of existing publication tools for on-disk format, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
185 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
186 |
- enablement of future publication tools to automatically |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
187 |
be able to manipulate or use on-disk format, and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
188 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
189 |
- ease of provisioning. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
190 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
191 |
4.2.2. Raw Format specification: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
192 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
193 |
The pkg(5) repository format is a set of directories and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
194 |
files that conform to a pre-defined structure. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
195 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
196 |
For a version 3 repository (the current format), the |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
197 |
structure is as follows: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
198 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
199 |
<REPO_ROOT>/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
200 |
catalog/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
201 |
<catalog v1 files> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
202 |
index/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
203 |
<index files> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
204 |
file/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
205 |
<first two letters of file hash>/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
206 |
<file-named-by-hash> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
207 |
pkg/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
208 |
<stem>/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
209 |
<manifest-file> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
210 |
trans/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
211 |
<in-flight transaction files> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
212 |
cfg_cache (optional repository configuration file) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
213 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
214 |
Version 4 of the repository format eliminates the potential |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
215 |
for unintended collisions between package metadata from |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
216 |
different publishers and simplifies composition and decomp- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
217 |
osition of repository content. The top-level is an optional |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
218 |
shared storage space for data common to all publishers in |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
219 |
the repository, while the publisher subdirectory contains |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
220 |
data specific to a publisher. It is essentially a nested |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
221 |
repository format, and can be defined as follows: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
222 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
223 |
<REPO_ROOT>/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
224 |
file/ (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
225 |
publisher/ (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
226 |
<prefix>/ (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
227 |
catalog/ (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
228 |
<catalog v1 files> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
229 |
file/ (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
230 |
<first two letters of file hash>/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
231 |
<file-named-by-hash> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
232 |
index/ (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
233 |
pkg/ (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
234 |
<stem>/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
235 |
<manifest-file-for-pkg-version> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
236 |
trans/ (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
237 |
<in-flight transaction files> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
238 |
pub.p5i (optional) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
239 |
pkg5.repository (required) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
240 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
241 |
By default, repository operations will store data in the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
242 |
publisher-specific location found under publisher/<prefix> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
243 |
for new repositories. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
244 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
245 |
In the case that the top-level file/ directory is used, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
246 |
automatic decomposition of contents into its publisher- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
247 |
specific components will not be possible unless |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
248 |
corresponding package manifests are also available. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
249 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
250 |
To support easy composition, filtering, and creation of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
251 |
package archives, directories above marked with the text |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
252 |
'(optional)' must not be required. The behaviour of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
253 |
consumers accessing the contents of the repository should |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
254 |
be as follows based on the directory accessed: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
255 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
256 |
- file/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
257 |
This optional directory serves as a place to store file |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
258 |
data for more than one publisher. Package files are |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
259 |
stored in gzip format using a sha1sum of the file as the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
260 |
filename, and then the first two letters of the filename |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
261 |
as the parent directory's name. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
262 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
263 |
- publisher/<prefix>/catalog/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
264 |
If absent, consumers should determine the list of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
265 |
packages available based on the manifest files present |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
266 |
in the publisher/ subdirectory. If present, consumers |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
267 |
should expect v1 (or newer) catalog files, or none at |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
268 |
all, to be contained within. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
269 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
270 |
- publisher/<prefix>/file/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
271 |
Consumers should always check this subdirectory first |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
272 |
(if present) when retrieving package file data if the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
273 |
publisher is known. Package files are stored in gzip |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
274 |
format using a sha1sum of the file as the filename, and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
275 |
then the first two letters of the filename as the parent |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
276 |
directory's name. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
277 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
278 |
- publisher/<prefix>/index/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
279 |
If absent, search functionality should be disabled for |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
280 |
this publisher, or a fallback to 'slow manifest-based |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
281 |
search' performed. If present, consumers should expect |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
282 |
v1 (or newer) search files, or none at all, to be con- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
283 |
tained within. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
284 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
285 |
- publisher/<prefix>/pkg/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
286 |
If absent, search must be disabled for this publisher |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
287 |
even if index is present. If present, manifests are |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
288 |
stored in pkg(5) manifest format using the uri-encoded |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
289 |
version of the package FMRI as the filename, and using |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
290 |
the uri-encoded package FMRI stem (name) as the parent |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
291 |
directory's name. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
292 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
293 |
- publisher/<prefix>/trans/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
294 |
If absent, this directory will be created during |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
295 |
publication operations. If present, in progress |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
296 |
transaction data is stored in a directory named |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
297 |
by the open time of the transaction as a UTC UNIX |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
298 |
timestamp plus an '_' and the URI-encoded package |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
299 |
FRMI. As an example: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
300 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
301 |
1245176111_pkg%3A%2FBRCMbnx%400.5.11%2C5.11-0.116 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
302 |
%3A20090616T181511Z |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
303 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
304 |
- publisher/<prefix>/pub.p5i |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
305 |
This pkg(5) information (p5i) file should contain |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
306 |
suggested configuration information for clients such as |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
307 |
origins, mirrors, alias, etc. Consumers can use this to |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
308 |
provide clients with initial or suggested configuration |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
309 |
information for a given publisher. If not present, the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
310 |
publisher's identity should be assumed based on the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
311 |
directory structure, while the refresh interval should |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
312 |
be assumed to be 4 hours. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
313 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
314 |
- pkg5.repository |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
315 |
This file serves as an identifier and a place to store |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
316 |
configuration information specific to the repository. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
317 |
It *is not* an equivalent to the existing cfg_cache |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
318 |
file which will no longer be used. Its format and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
319 |
structure are as follows: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
320 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
321 |
[repository] |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
322 |
version = <integer> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
323 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
324 |
Any information found in the cfg_cache used in the previous |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
325 |
repository format related to a publisher is now stored in |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
326 |
the pub.p5i file for the related publisher. (Examples of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
327 |
information include origins, mirrors, maintainer info, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
328 |
etc.) As a result, the cfg_cache file is no longer used. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
329 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
330 |
Any depot-specific properties, such as the feed icon, logo, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
331 |
etc. are now completely managed using SMF or a user-provided |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
332 |
configuration file. This change was made not only to sim- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
333 |
plify configuration, but to separate depot configuration |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
334 |
from repsitory configuration. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
335 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
336 |
An example version 4 repository might be structured as |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
337 |
follows: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
338 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
339 |
<REPO_ROOT>/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
340 |
publisher/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
341 |
example.com/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
342 |
catalog/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
343 |
catalog.attrs |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
344 |
catalog.base.C |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
345 |
file/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
346 |
ff/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
347 |
fffff277f5a8fb63e57670afc178415c2c5e706d |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
348 |
index/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
349 |
__at_depend |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
350 |
... |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
351 |
pkg/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
352 |
package%2Fpkg/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
353 |
0.5.11%2C5.11-0.136%3A20100327T063139Z |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
354 |
trans/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
355 |
1245176111_pkg%3A%2FBRCMbnx%400.5.11%2C5.11-0.116 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
356 |
%3A20090616T181511Z |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
357 |
pub.p5i |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
358 |
example.net/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
359 |
catalog/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
360 |
catalog.attrs |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
361 |
catalog.base.C |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
362 |
file/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
363 |
af/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
364 |
affff277f5a8fb63e57670afc178415c2c5e706d |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
365 |
index/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
366 |
__at_depend |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
367 |
... |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
368 |
pkg/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
369 |
package%2Fpkg/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
370 |
0.5.11%2C5.11-0.133%3A20090327T062137Z |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
371 |
trans/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
372 |
1245176111_pkg%3A%2FFAAMbnx%400.5.11%2C5.11-0.139 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
373 |
%3A20100616T181511Z |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
374 |
pub.p5i |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
375 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
376 |
pkg5.repository: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
377 |
[repository] |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
378 |
version = 4 |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
379 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
380 |
4.3. Archive Format: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
381 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
382 |
4.3.1. Requirements: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
383 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
384 |
The requirements for the on-disk archive format include: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
385 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
386 |
- support for archives greater than 8GB in size, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
387 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
388 |
- support for files in archive greater than 4GB in size, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
389 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
390 |
- support for efficient storage of hard links, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
391 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
392 |
- support for pathnames sigificantly greater than > 255 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
393 |
characters in length, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
394 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
395 |
- core Python bindings exist or can be easily created using |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
396 |
an existing library, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
397 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
398 |
- can be a container of compressed files, as opposed to a |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
399 |
compressed container of uncompressed files, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
400 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
401 |
- open, royalty-free, well-documented format with wide |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
402 |
platform support and acceptance, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
403 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
404 |
- multi-threaded decompression and compression possible, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
405 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
406 |
- creation and basic manipulation of package archives |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
407 |
possible using widely-available tools, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
408 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
409 |
- simple composition and filtering of its content should be |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
410 |
possible, and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
411 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
412 |
- random access to the archive contents must be possible |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
413 |
without reading the entire archive file. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
414 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
415 |
4.3.2. Candidates: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
416 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
417 |
A number of potential archive formats have been considered |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
418 |
for use, including: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
419 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
420 |
- 7z (7-Zip) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
421 |
- cpio |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
422 |
- pax (portable archive exchange format) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
423 |
- ZIP |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
424 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
425 |
The evaluations provided for each format here are not in- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
426 |
tended to be exhaustive; rather they focus on the specific |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
427 |
requirements of this project. For more information about |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
428 |
these formats, and the documents used to evaluate them, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
429 |
please refer to section 6 of this proposal. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
430 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
431 |
4.3.3. 7z Evaluation: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
432 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
433 |
The 7z format was rejected for the following reasons: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
434 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
435 |
- Does not permit random access to archive contents or |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
436 |
requires the entire archive file to access the contents |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
437 |
and adding this would require a custom variation of 7z. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
438 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
439 |
- Although the 7z format supports compression methods other |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
440 |
than LZMA, a primary motivator for using 7z would be the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
441 |
ability to use LZMA natively as part of the conatiner |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
442 |
format. However, the tradeoffs in terms of CPU and memory |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
443 |
footprint currently make LZMA unsuitable for pkg(5) when |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
444 |
compared to other compression algorithms such as those |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
445 |
used by gzip(1). |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
446 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
447 |
- Use of the 7z format would require integration of the LZMA |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
448 |
SDK (which also provides a basic 7z API in C) and the cre- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
449 |
ation of python bindings or the integration of a third |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
450 |
party's (such as pylzma). |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
451 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
452 |
- No native support for extended attributes or UNIX owner/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
453 |
group permissions. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
454 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
455 |
4.3.4. cpio Evaluation: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
456 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
457 |
The cpio format doesn't natively support random access to |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
458 |
archive contents, but the format itself doesn't prevent |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
459 |
this. An index could be added first file in the archive |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
460 |
with the information needed to provide fast, random access |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
461 |
to the archive contents. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
462 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
463 |
The cpio format was rejected for the following reasons: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
464 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
465 |
- The length of pathnames in cpio archives is limited to |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
466 |
256 characters for the portable format. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
467 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
468 |
- Available tools vary significantly in maximum archive size |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
469 |
support. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
470 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
471 |
- The portable cpio format stores a copy of the file data |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
472 |
with every hard link in an archive instead of simply |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
473 |
storing a pointer to the source file in the archive. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
474 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
475 |
4.3.4. PAX Evaluation: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
476 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
477 |
The PAX format meets all of the requirements except that of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
478 |
random access to archive contents. However, the format |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
479 |
itself doesn't prevent this. A table of contents file could |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
480 |
be supplied as the first file in the archive with the info- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
481 |
rmation needed to provide fast, random access to the con- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
482 |
tainer contents. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
483 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
484 |
4.3.5. ZIP Evaluation: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
485 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
486 |
The ZIP format meets all of the requirements listed above |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
487 |
(assuming that ZIP64 extensions are used), with the ex- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
488 |
ceptions listed below for which it was rejected: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
489 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
490 |
- The use or implementation of some of the functionality |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
491 |
documented in the .ZIP file format requires a license from |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
492 |
PKWARE. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
493 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
494 |
- While random archive content access is possible, the ZIP |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
495 |
file format stores the index for the archive at the end of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
496 |
the archive (as opposed to the beginning). This increases |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
497 |
the number of round trips that would be required for |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
498 |
potential remote random content access. It also means |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
499 |
that extraction requires multiple seeks to the end of the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
500 |
file before any content can be extracted from the archive, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
501 |
which can be detrimental to performance for some media |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
502 |
types (optical, etc.). |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
503 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
504 |
4.3.6. Evaluation Conclusion: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
505 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
506 |
Based on the requirements set forth in section 4.3.1, the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
507 |
PAX format was selected as the on-disk archive format |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
508 |
for pkg(5) packages. However, to enable efficient access |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
509 |
to the archive contents, an index file needs to be present |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
510 |
as the first file in the archive. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
511 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
512 |
Early evaluations of an unoptimised prototype were performed |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
513 |
using a repository containing all packages for build 136 and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
514 |
unbundleds. The on-disk size of the repository was appox- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
515 |
imately 4.98G. The resulting archive was 5.0G in size, with |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
516 |
an archive index file 9.7M in size (when the index was comp- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
517 |
ressed using gzip). |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
518 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
519 |
First time access to the prototype archive for extraction of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
520 |
a single file after creation yielded a total time of approx- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
521 |
imately 5 seconds compared to approximately 36-42 seconds |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
522 |
for utilities such as pax(1), tar(1), or gtar(1). |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
523 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
524 |
Creation of the archive took 7 minutes, 35 seconds on a |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
525 |
custom-built Intel Core 2 DUO E8400, with 8GB Memory, |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
526 |
and a 1TB 10000 RPM SATA Drive w/ 64MB Cache. |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
527 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
528 |
4.3.7. Package Archive Specification: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
529 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
530 |
pkg(5) archive files will have an extension of 'p5p' which |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
531 |
will stand for 'pkg(5) package'. The format of these |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
532 |
archives matches that defined by IEEE Std 1003.1, 2004 for |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
533 |
the pax Interchange Format, with the exception that the |
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
534 |
first archive entry is tagged with an extended pax archive |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
535 |
header that specifies the archive version and the version |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
536 |
of the pkg(5) API that was used to write it. In addition, |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
537 |
the file for the first archive entry must be the index |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
538 |
file file for the package archive. The layout can be |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
539 |
visualised as follows: |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
540 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
541 |
.--------------------------------------------------------. |
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
542 |
| ustar header for pax header global archive data | |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
543 |
.--------------------------------------------------------. |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
544 |
| pax global extended header data for archive | |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
545 |
.--------------------------------------------------------. |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
546 |
| ustar header for pax header for archive index file | |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
547 |
.--------------------------------------------------------. |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
548 |
| pax extended header data for archive index file | |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
549 |
.--------------------------------------------------------. |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
550 |
| ustar header for package archive index file | |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
551 |
.--------------------------------------------------------. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
552 |
| file data for package archive index file | |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
553 |
.--------------------------------------------------------. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
554 |
| remaining archive data | |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
555 |
.________________________________________________________. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
556 |
|
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
557 |
The archive and API version is stored in the header of the |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
558 |
index file instead of the global header for two reasons: |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
559 |
first, any headers in the global header are treated as |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
560 |
though they apply to every entry in the archive, and |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
561 |
secondly, the pax specification states that global headers |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
562 |
should not be used with interchange media that could suffer |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
563 |
partial data loss during transport. Since the archive |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
564 |
version primarily serves as a way for clients to reliably |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
565 |
determine if a "standard" pax archive versus one with an |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
566 |
index is being read, this approach seems reasonable. |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
567 |
|
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
568 |
The reason for this limitation is to ensure that clients |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
569 |
performing selective archive extraction can be guaranteed |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
570 |
to find the location and size of the package archive index |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
571 |
file without knowing the size of the header for the index |
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
572 |
file in advance (this layout ensures that clients can |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
573 |
find the archive index and/or identify the archive in |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
574 |
the first 2048 bytes). |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
575 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
576 |
In addition, pkg(5) archives in this format make remote, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
577 |
selective archive access possible. For example, a client |
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
578 |
could request the first 2048 bytes of a pkg(5) archive file |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
579 |
from a remote repository, identify the offsets of the index |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
580 |
and then retrieve it using a HTTP/1.1 byte-ranges request. |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
581 |
Once it has the archive index file, it can then perform |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
582 |
additional byte-range requests to selectively transfer the |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
583 |
the data for a set of specific files from the archive. This |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
584 |
convention also optimises access to the archive for sources |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
585 |
that are heavily biased towards sequential reads. |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
586 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
587 |
The index file must be named using the following template |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
588 |
and be compressed using the gzip format described by RFCs |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
589 |
1951 and 1952, and formatted according to section 4.3.8: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
590 |
|
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
591 |
p5p.index.<index_file_number>.v<index_version>.gz |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
592 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
593 |
<index_file_number> is an integer in string form that |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
594 |
indicates which index file this is. The number only |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
595 |
exists so that each index file can remain unique in |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
596 |
the archive. An archive may contain multiple index |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
597 |
files to support fast archive additions. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
598 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
599 |
<index_version> is an integer in string form that |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
600 |
indicates the version of the index file. The initial |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
601 |
version for this proposal will be '0'. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
602 |
|
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
603 |
However, if the first file in the archive is found to not |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
604 |
use the layout or format shown above, or any of the index |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
605 |
files in the archive are not in a format supported by the |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
606 |
client (version too old or too new), the archive must be |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
607 |
treated as a standard pax archive and some operations may |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
608 |
not be possible or experience degraded performance. The |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
609 |
same is also true if the index file is found to not match |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
610 |
the archive contents. |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
611 |
|
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
612 |
All entries in the archive (excluding any archive index |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
613 |
files) must conform to the repository layout specified in |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
614 |
section 4.2.2 of this proposal. |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
615 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
616 |
Since a pkg(5) repository can contain one or more packages, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
617 |
pkg(5) archive files can also contain the data for one or |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
618 |
more packages. This allows easy redistribution of a single |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
619 |
package and all of its dependencies in a single file. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
620 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
621 |
Finally, it should be noted that only ascii character path- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
622 |
names are expected in the archive as the raw repository |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
623 |
format does not use or support unicode pathnames. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
624 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
625 |
4.3.8. Package Archive Index Specification: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
626 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
627 |
The pkg(5) archive index file enables fast, efficient access |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
628 |
to the contents of an archive. It contains an entry for all |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
629 |
files in the archive excluding the index file itself in the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
630 |
following format (also referred to as index format version |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
631 |
0): |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
632 |
|
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
633 |
<name>NUL<offset>NUL<entry_size>NUL<size>NUL<typeflag> |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
634 |
NULNL |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
635 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
636 |
<name> is a string containing the pathname of the file |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
637 |
in the archive using only ascii characters. It can be |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
638 |
up to 65,535 bytes in length. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
639 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
640 |
<offset> is an unsigned long long integer in string form |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
641 |
containing the relative offset in bytes of the first |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
642 |
header block for the file in the archive. The offset is |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
643 |
relative to the end of the last block of the index file |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
644 |
in the archive they are listed in. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
645 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
646 |
<entry_size> is an unsigned long long integer in string |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
647 |
form containing the size of the file's entry in bytes |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
648 |
in the archive (including archive headers and trailers |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
649 |
for the entry). |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
650 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
651 |
<size> is an unsigned long long integer in string form |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
652 |
containing the size of the file in bytes in the archive. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
653 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
654 |
<typeflag> is a single character representing the type |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
655 |
of the file in the archive. Possible values are: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
656 |
0 Regular File |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
657 |
1 Hard Link |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
658 |
2 Symbolic Link |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
659 |
5 Directory or subdirectory |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
660 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
661 |
All values not listed above are reserved for future |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
662 |
use. Unrecognised values should be treated as a |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
663 |
regular file. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
664 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
665 |
An example set of entries would appear as follows: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
666 |
|
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
667 |
pkg5.repositoryNUL0NUL546NUL2560NUL0NUL |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
668 |
pkgNUL2560NUL0NUL1536NUL5NUL |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
669 |
pkg/service%2Ffault-managementNUL4096NUL0NUL1536NUL5NUL |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
670 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
671 |
It should be noted that other possible formats were |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
672 |
evaluated for the index file, including those based |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
673 |
on: JSON, XDR, and python's pack. However, all other |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
674 |
formats were found to be deficient for one or more |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
675 |
of the following reasons: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
676 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
677 |
- larger in size |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
678 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
679 |
- no streaming support (required entire index file be |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
680 |
loaded into memory) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
681 |
|
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
682 |
- significantly greater parsing times using currently |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
683 |
available Python libraries |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
684 |
|
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
685 |
- required developing an envelope format that could |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
686 |
contain the encoded data |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
687 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
688 |
5. Proposed Changes: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
689 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
690 |
5.1. Client Support for filesystem-based Repository Access: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
691 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
692 |
The pkg.client.api provided by pkg(5) will be updated to allow |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
693 |
access to repositories via the filesystem. All functionality |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
694 |
normally offered by pkg.depotd will be supported. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
695 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
696 |
pkg(1) and packagemanager(1) will be modified to support the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
697 |
use of URIs using the 'file' scheme. No user visible changes |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
698 |
will be made to any existing subcommands or options except |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
699 |
that URIs using the 'file' scheme will be allowed. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
700 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
701 |
When accessing repositories using the 'file' scheme, clients |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
702 |
by default will not copy package file data into the client's |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
703 |
cache (e.g. /var/pkg/download). Instead, the transport system |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
704 |
will treat configured repositories as an additional read-only |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
705 |
cache. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
706 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
707 |
5.2. Depot Storage, Client Transport and Publication Tool Update: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
708 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
709 |
The pkg.server.repository module will be updated to support |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
710 |
the new repository format outlined in section 4.2.2. Existing |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
711 |
repositories will not automatically be upgraded, while new |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
712 |
repositories will use the new format. A new administrative |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
713 |
command detailed below has been introduced to allow upgrading |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
714 |
existing repositories to the new format. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
715 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
716 |
These changes will automatically allow the client to access |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
717 |
repositories in the new format when using filesystem-based |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
718 |
access. Older clients will remain unable to access repo- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
719 |
sitories in the new format. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
720 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
721 |
The client transport system will be updated to support all |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
722 |
publication operations and the publication tools and project |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
723 |
private APIs will be changed to use the client transport |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
724 |
system. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
725 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
726 |
The '-d' option of pkgrecv(1) will be changed such that if |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
727 |
the name of a file with a '.p5p' extension is specified, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
728 |
and that file does not already exist, a pkg(5) archive |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
729 |
file will be created containing the specified packages. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
730 |
If the file already exists, it will exit with an error. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
731 |
When pkgrecv(1) creates pkg(5) archive files, it will omit |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
732 |
catalog and index data. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
733 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
734 |
Due to the transport changes above, pkgrecv(1) will also |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
735 |
be able to use pkg(5) archive files as a source of package |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
736 |
data. pkgsend(1) will not support the use of pkg(5) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
737 |
archive files as a destination due to the publication |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
738 |
model it currently uses. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
739 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
740 |
To support the expanded multiple publisher version 4 format |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
741 |
of repositories, the depot server will be updated to respond |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
742 |
to requests as follows: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
743 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
744 |
- If clients include the publisher prefix as part of the request |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
745 |
path, then responses will be for that specific publisher's |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
746 |
data. For example: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
747 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
748 |
http://localhost/dev/opensolaris.org/manifest/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
749 |
0/opensolaris.org/backup%2Fareca/7.1%2C5.11-0.134 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
750 |
%3A20100302T005731Z |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
751 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
752 |
http://localhost/dev/file/0/opensolaris.org/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
753 |
2ce6c746c85cd7ac44571d094b53c5fe1bfc32c8 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
754 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
755 |
- The default publisher specified in the depot configuration |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
756 |
will be used when responding to requests for operations that |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
757 |
do not include the publisher prefix. For example: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
758 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
759 |
http://localhost/dev/manifest/0/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
760 |
backup%2Fareca/7.1%2C5.11-0.134%3A20100302T005731Z |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
761 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
762 |
...provides a response identical to the first case where the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
763 |
publisher prefix was provided as part of the request. Those |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
764 |
expecting to maintain a large population of older clients |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
765 |
should reassign publisher URLs down a level, to include the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
766 |
publisher explicitly although this is not required for |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
767 |
correct operation. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
768 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
769 |
A new utility named pkgrepo will be added to facilitate the |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
770 |
creation and management of pkg(5) repositories. It will have |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
771 |
the following global options: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
772 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
773 |
-s repo_uri_or_path |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
774 |
A URI or path specifying the location of a pkg(5) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
775 |
package repository. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
776 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
777 |
-? / --help |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
778 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
779 |
It will have the following subcommands: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
780 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
781 |
create <uri_or_path> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
782 |
Creates a pkg(5) repository at the specified location. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
783 |
Can only be used with filesystem-based repositories. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
784 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
785 |
publisher [<pub_prefix> ...] |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
786 |
Lists the publishers of packages in the repository: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
787 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
788 |
PUBLISHER PACKAGES VERSIONS UPDATED |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
789 |
<pub_1> <num_uniq_pkgs> <num_pkg_vers> <cat_last_modified> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
790 |
<pub_2> <num_uniq_pkgs> <num_pkg_vers> <cat_last_modified> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
791 |
... |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
792 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
793 |
rebuild |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
794 |
Discards any catalog, search or other cached informaqtion |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
795 |
found in the repository and then re-creates it based on |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
796 |
the current contents of the repository. Can only be used |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
797 |
with filesystem-based repositories. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
798 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
799 |
refresh |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
800 |
By default, catalogs any new packages found in the repo- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
801 |
sitory and updates search indices. This is intended for |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
802 |
use with deferred publication (--no-catalog or --no-index |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
803 |
options of pkgsend). Can only be used with filesystem-based |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
804 |
repositories. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
805 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
806 |
Options: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
807 |
--no-catalog - doesn't add new packages |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
808 |
--no-index - doesn't refresh search indices |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
809 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
810 |
remove fmri_pattern ... |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
811 |
Removes the specified package(s) from the repository. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
812 |
If more than one match is found for any given pattern, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
813 |
the exact FMRI must be provided. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
814 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
815 |
upgrade |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
816 |
Can only be used with filesystem-based repositories. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
817 |
Upgrades the repository to the most current format if |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
818 |
possible. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
819 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
820 |
Has these options: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
821 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
822 |
-n determine whether the upgrade could be formed and exit |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
823 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
824 |
-v show a summary of what will be done, the current format |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
825 |
of the repository and what it will be upgraded to |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
826 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
827 |
5.3. Client Storage and Image Format Update: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
828 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
829 |
To simplify and unify the storage format used by the client, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
830 |
and pkg(5) repositories, the format of the client image |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
831 |
will be changed to use the structure described below. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
832 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
833 |
For a version 3 image (the current format), the structure is as |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
834 |
follows: |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
835 |
|
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
836 |
<IMG_ROOT> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
837 |
download/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
838 |
<first two letters of file hash>/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
839 |
<file-named-by-hash> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
840 |
file/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
841 |
gui_cache/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
842 |
history/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
843 |
index/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
844 |
lost+found/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
845 |
pkg/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
846 |
<stem>/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
847 |
<version>/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
848 |
manifest |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
849 |
manifest.<cachefiles> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
850 |
publisher/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
851 |
<prefix>/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
852 |
catalog/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
853 |
certs/ (optional) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
854 |
last_refreshed (optional) |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
855 |
state/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
856 |
installed/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
857 |
<image catalog files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
858 |
known/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
859 |
<image catalog files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
860 |
tmp/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
861 |
cfg_cache |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
862 |
lock |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
863 |
|
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
864 |
For a version 4 image (the proposed format), the structure is |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
865 |
as follows: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
866 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
867 |
<IMG_ROOT> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
868 |
cache/ |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
869 |
index/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
870 |
<api search index files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
871 |
publisher/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
872 |
<publisher_prefix>/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
873 |
catalog/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
874 |
<repository composition cache files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
875 |
pkg/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
876 |
<stem>/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
877 |
<version>/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
878 |
<manifest-cache-files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
879 |
tmp/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
880 |
<api temporary files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
881 |
gui_cache/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
882 |
<package manager data files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
883 |
history/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
884 |
<client history files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
885 |
license/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
886 |
<stem>/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
887 |
<license files> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
888 |
lost+found/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
889 |
<salvaged filesystem objects> |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
890 |
publisher/ |
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
891 |
<prefix>/ |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
892 |
certs/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
893 |
<publisher signing certificates> |
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
894 |
<otherwise as described in section 4.2.2> |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
895 |
ssl/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
896 |
client ssl certificates> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
897 |
state/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
898 |
installed/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
899 |
<image catalog files> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
900 |
known/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
901 |
<image catalog files> |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
902 |
pkg5.image (client configuration file; was cfg_cache) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
903 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
904 |
A new property named 'version' will be added to the image |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
905 |
and will be readonly (cannot be set using the set-property |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
906 |
subcommand of pkg(1)). |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
907 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
908 |
Existing images will not automatically be upgraded to the new |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
909 |
format. To enable the upgrading of existing images to newer |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
910 |
formats, the following subcommands will be added: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
911 |
|
2144
2ac203b826ab
7276 /var/pkg metadata needs reorg (looks busy)
Shawn Walker <shawn.walker@oracle.com>
parents:
1968
diff
changeset
|
912 |
update-format |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
913 |
Updates the format of the client's image to the current |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
914 |
format if possible. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
915 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
916 |
5.4. Client and Depot Support for On-Disk Archive Format: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
917 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
918 |
The pkg.server.repository module will be updated to support |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
919 |
the serving of a repository in readonly mode using a pkg(5) |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
920 |
archive file. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
921 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
922 |
The pkg.client.api transport system will be updated to support |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
923 |
the usage of a pkg(5) archive file as an origin for package |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
924 |
data. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
925 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
926 |
To support the specification of temporary origins, the install |
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
927 |
and update subcommands will be modified by adding a '-g' option |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
928 |
to specify additional temporary package origin URIs or |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
929 |
the path to a pkg(5) archive file or pkg(5) info file. The |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
930 |
'-g' option may be specified multiple times. As an example: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
931 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
932 |
$ pkg install -g /path/to/foo.p5p \ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
933 |
-g http://mytemprepo:10000/ \ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
934 |
-g file:/path/to/bar.p5p \ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
935 |
foo bar localpkg |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
936 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
937 |
pkg(5) archive files used as a source of package data during an |
2219
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
938 |
install or update operation will have their content cached by |
60ad60f7592c
2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
2144
diff
changeset
|
939 |
the client before the operation begins. Any publishers found |
1968
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
940 |
in the archive will be temporarily added to the image if they do |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
941 |
not already exist. Publishers that were temporarily added but |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
942 |
not used during the operation will be removed after operation |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
943 |
completion or failure. Any package FMRIs or patterns provided |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
944 |
will be matched using only the sources provided using '-g'. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
945 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
946 |
The pkg list and pkg info commands will also be updated by |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
947 |
adding the '-g' option described above, with the exception |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
948 |
that the '-g' option may only be specified once, and only |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
949 |
the source named will be used for the operation. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
950 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
951 |
Using '-g' with the pkg list subcommand implies '-n' by default, |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
952 |
unless '-f' is specified; it also implies '-a'. To list all |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
953 |
versions, the '-f' option must be used. As an example: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
954 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
955 |
$ pkg list -g /path/to/foo.p5p |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
956 |
NAME (PUBLISHER) VERSION STATE UFOXI |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
957 |
bar (example.com) 1.0-0.133 known ----- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
958 |
foo (example.com) 1.0-0.133 installed ----- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
959 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
960 |
$ pkg list -g file:/path/to/foo.p5p |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
961 |
NAME (PUBLISHER) VERSION STATE UFOXI |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
962 |
bar (example.com) 1.0-0.133 known ----- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
963 |
foo (example.com) 1.0-0.133 installed ----- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
964 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
965 |
$ pkg list -f -g http://example.com/multi_foo.p5p |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
966 |
NAME (PUBLISHER) VERSION STATE UFOXI |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
967 |
foo (example.com) 1.0-0.133 installed u---- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
968 |
foo (example.com) 2.0-0.133 known u---- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
969 |
foo (example.com) 3.0-0.133 known ----- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
970 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
971 |
$ pkg list -g file:/path/to/repo |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
972 |
NAME (PUBLISHER) VERSION STATE UFOXI |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
973 |
repopkg (example.com) 2.0-0.133 known ----- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
974 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
975 |
$ pkg list -g http://myrepo:10000 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
976 |
NAME (PUBLISHER) VERSION STATE UFOXI |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
977 |
localpkg (example.org) 3.0-0.133 known ----- |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
978 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
979 |
Using '-g' with the pkg info subcommand implies '-r'. The '-l' |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
980 |
option cannot be used in combination with '-g'. As an example: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
981 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
982 |
$ pkg info -g /path/to/bundle.p5p |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
983 |
Name: bar |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
984 |
Summary: A useful complement to foo. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
985 |
State: Not Installed |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
986 |
... |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
987 |
Name: foo |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
988 |
Summary: Provides useful utilities. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
989 |
State: Installed |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
990 |
... |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
991 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
992 |
'-g' was chosen for the option usage described above to match |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
993 |
the '-g' already used by set-publisher and image-create for |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
994 |
origins, and due to the unfortunate existing usage of '-s' |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
995 |
by the 'pkg list' subcommand. |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
996 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
997 |
6. Reference Documents: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
998 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
999 |
Project team members and community members have provided a number of |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1000 |
informal comments that served as the basis for the goals of this |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1001 |
project: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1002 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1003 |
- "new on-disk format?", 18 Jan. 2008: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1004 |
http://markmail.org/thread/2kg6w5bfwp4x3knc |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1005 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1006 |
- "reorganising the repository and client metadata", 23. Sep. 2009: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1007 |
http://markmail.org/thread/stfrosvx3v6if2fi |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1008 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1009 |
- "ZAP - Zip Archive Packaging", Sep. 2007: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1010 |
http://markmail.org/thread/ijyq3mlrhaofccgx |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1011 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1012 |
In addition, the following materials were referenced when writing |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1013 |
this proposal: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1014 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1015 |
- "7z", 12 Apr. 2010: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1016 |
http://en.wikipedia.org/wiki/7z |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1017 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1018 |
- "RFC2616: HTTP/1.1 Header Field Definitions", 01 Sep. 2004: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1019 |
http://www.w3.org/Protocols/rfc2616/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1020 |
rfc2616-sec14.html#sec14.35.1 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1021 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1022 |
- "cpio", 21 Mar. 2010: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1023 |
http://en.wikipedia.org/wiki/Cpio |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1024 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1025 |
- "copy file archives in and out", 26 Mar. 2007: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1026 |
http://heirloom.sourceforge.net/man/cpio.1.html |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1027 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1028 |
- "The gzip file format", Date Unknown: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1029 |
http://www.gzip.org/format.txt |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1030 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1031 |
- "DragonFly File Formats Manual, cpio -- format of cpio archive |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1032 |
files" |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1033 |
http://leaf.dragonflybsd.org/cgi/web-man?command=cpio§ion=5 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1034 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1035 |
- "A Quick Benchmark: Gzip vs. Bzip2 vs. LZMA", 31 May. 2005: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1036 |
http://tukaani.org/lzma/benchmarks.html |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1037 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1038 |
- "Lempel Ziv Markov Algorithm and 7-Zip", 7 Feb. 2008: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1039 |
http://blogs.sun.com/clayb/entry/lempel_ziv_markov_algorithm_and |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1040 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1041 |
- "The Open Group Base Specifications Issue 6: pax Interchange |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1042 |
Format, IEEE Std 1003.1, 2004 Edition" |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1043 |
http://www.opengroup.org/onlinepubs/009695399/utilities/ |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1044 |
pax.html#tag_04_100_13_01 |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1045 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1046 |
- ".ZIP File Format Specification", 28 Sep. 2007: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1047 |
http://www.pkware.com/documents/casestudies/APPNOTE.TXT |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1048 |
|
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1049 |
- "ZIP (file format)", 17 Apr. 2010: |
c0540b1e4f7e
8722 advanced repository metadata store needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff
changeset
|
1050 |
http://en.wikipedia.org/wiki/ZIP_%28file_format%29 |