~snappy-dev/snapcraft/core

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
$schema: http://json-schema.org/draft-04/schema#

definitions:
  security:
    type: object
    required:
      - apparmor
      - seccomp
    properties:
      apparmor:
        type: string
        format: file-path
      seccomp:
        type: string
        format: file-path

title: snapcraft schema
type: object
properties:
  name:
    type: string
    description: name of the snap package
    pattern: "^[a-z0-9][a-z0-9+-]*$"
  version:
    # python's defaul yaml loading code loads 1.0 as an int
    # type: string
    description: package version
    pattern: "^[a-zA-Z0-9.+~-]*$"
  vendor:
    type: string
    format: email
  icon:
    type: string
    description: path to a 512x512 icon representing the package.
    format: icon-path
  summary:
    type: string
    description: one line summary for the package
    maxLength: 78
  description:
    type: string
    description: long description of the package
  type:
    type: string
    description: the snap type, the implicit type is 'app'
    enum:
      - app
      - framework
  frameworks:
    type: array
    minItems: 1
    uniqueItems: true
    items:
      - type: string
  config:
    type: string
    description: path to a configure hook to expose configuration for the package
  framework-policy:
    type: string
    description: framework policies to add to the package
    format: file-path
  services:
    type: object
    additionalProperties: false
    patternProperties:
      "^[A-Za-z0-9:-]*$":
        type: object
        required:
          - start
        properties:
          start:
            type: string
            description: command executed to start the service
          stop:
            type: string
            description: command executed to stop the service
          security-policy:
            $ref: "#definitions/security"
          security-override:
            $ref: "#definitions/security"
  binaries:
    type: object
    additionalProperties: false
    patternProperties:
      "^[A-Za-z0-9:-]*$":
        type: object
        required:
          - exec
        properties:
          exec:
            type: string
            description: command executed to run the binary
          security-policy:
            $ref: "#definitions/security"
          security-override:
            $ref: "#definitions/security"
  parts:
    type: object
    minProperties: 1
    additionalProperties: false
    patternProperties:
      ^[a-z0-9][a-z0-9+-]*$:
        type: object
        properties:
          plugin:
            type: string
            description: plugin name
          source:
            type: string
            description: path to the sources
          stage-packages:
            type: array
            description: Ubuntu packages used to support the part.
            minItems: 1
            uniqueItems: true
            items:
              type: string
        # required:
        # - plugin
        # - source
required:
  - name
  - version
  - vendor
  - summary
  - description
  - icon
  - parts