~mvo/snappy/snappy-lp1460152-workaround-15.04

« back to all changes in this revision

Viewing changes to docs/oem.md

  • Committer: Snappy Tarmac
  • Author(s): Daniel Holbach
  • Date: 2015-04-22 21:22:07 UTC
  • mfrom: (417.2.2 snappy)
  • Revision ID: snappy_tarmac-20150422212207-7ltsnazdfdy1rwj3
  - machanisms -> mechanisms
  - immmutable -> immutable
  - change <code> markdown (pandoc doesn't know about ```yaml)
  - re-flow comments to wrap nicely
 by dholbach approved by chipaca

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
It covers a broad range, such as the software stack with its configuration and
7
7
hardware enablement.
8
8
 
9
 
There can only be *one* snappy package of `type` `oem` and it can only be
 
9
There can only be *one* snappy package of `type: oem` and it can only be
10
10
installed during image provision.
11
11
 
12
12
## Nomenclature
88
88
 
89
89
While these assets are typically used during provisioning, they may also be
90
90
used against a running system. *Caution:* updating these assets on a running
91
 
system may lead to a broken system unless redundancy or fallback machanisms
 
91
system may lead to a broken system unless redundancy or fallback mechanisms
92
92
aren't provided by the OEM.
93
93
 
94
94
#### Partition layout
101
101
 
102
102
## Structure and layout
103
103
 
104
 
The `package.yaml` is structured as
105
 
 
106
 
```yaml
107
 
name: package-string # mandatory
108
 
vendor: vendor-string # mandatory
109
 
icon: icon-path # mandatory
110
 
version: version-string # mandatory
111
 
type: oem # mandatory
112
 
 
113
 
config: # optional
114
 
    snappy-package-string:
115
 
        property-string: property-value
116
 
 
117
 
immutable-config: # optional
118
 
    - filter-string
119
 
 
120
 
oem:
121
 
    store: # optional
122
 
        id: id-string # optional
123
 
 
124
 
    branding: # optional
125
 
        name:  branding-name-string # optional
126
 
        logo: logo-path # optional
127
 
 
128
 
    software: # optional
129
 
        built-in:
130
 
            - # package list
131
 
        preinstalled:
132
 
            - # package list
133
 
    hardware: # mandatory
134
 
        platform: platform-string # mandatory
135
 
        architecture: architecture-string # mandatory (armhf, amd64, i386, arm64, ...)
136
 
        partition-layout: partition-layout-string # mandatory (system-AB)
137
 
        booloader: bootloader-string # mandatory (u-boot or grub)
138
 
        boot-assets: # optional
139
 
            files: #optional
140
 
                - path: file-path
141
 
            raw-files: #optional
142
 
                - path: file-path
143
 
                  offset: offset-uint64
144
 
```
 
104
The `package.yaml` is structured as:
 
105
 
 
106
 
 
107
        name: package-string # mandatory
 
108
        vendor: vendor-string # mandatory
 
109
        icon: icon-path # mandatory
 
110
        version: version-string # mandatory
 
111
        type: oem # mandatory
 
112
 
 
113
        config: # optional
 
114
                snappy-package-string:
 
115
                    property-string: property-value
 
116
 
 
117
        immutable-config: # optional
 
118
                - filter-string
 
119
 
 
120
        oem:
 
121
                store: # optional
 
122
                    id: id-string # optional
 
123
 
 
124
                branding: # optional
 
125
                    name:  branding-name-string # optional
 
126
                    logo: logo-path # optional
 
127
 
 
128
                software: # optional
 
129
                    built-in:
 
130
                        - # package list
 
131
                    preinstalled:
 
132
                        - # package list
 
133
                hardware: # mandatory
 
134
                    platform: platform-string # mandatory
 
135
                    architecture: architecture-string 
 
136
                          # mandatory (armhf, amd64, i386, 
 
137
                          #            arm64, ...)
 
138
                    partition-layout: partition-layout-string
 
139
                              # mandatory (system-AB)
 
140
                    booloader: bootloader-string 
 
141
                          # mandatory (u-boot or grub)
 
142
                    boot-assets: # optional
 
143
                        files: #optional
 
144
                            - path: file-path
 
145
                        raw-files: #optional
 
146
                            - path: file-path
 
147
                              offset: offset-uint64
 
148
 
145
149
 
146
150
The package header section is common to all packages
147
151
 
148
152
The general rules for config:
149
153
 
150
154
- only applied on first boot.
151
 
- if the config is immmutable, updates on in `oem` package will be reflected.
 
155
- if the config is immutable, updates to the `oem` package will be reflected.
152
156
 
153
157
Rules about packages in the config:
154
158