Merge lp:~mvo/snappy-hub/snappy-examples-oem-hardware-snap into lp:~snappy-dev/snappy-hub/snappy-examples

Proposed by Michael Vogt on 2015-04-20
Status: Needs review
Proposed branch: lp:~mvo/snappy-hub/snappy-examples-oem-hardware-snap
Merge into: lp:~snappy-dev/snappy-hub/snappy-examples
Diff against target: 409 lines (+387/-0)
4 files modified
oem-hardware-assign/bin/serial-monitor.sh (+9/-0)
oem-hardware-assign/meta/package.yaml (+24/-0)
oem-hardware-assign/meta/readme.md (+3/-0)
oem-hardware-assign/meta/serial.svg (+351/-0)
To merge this branch: bzr merge lp:~mvo/snappy-hub/snappy-examples-oem-hardware-snap
Reviewer Review Type Date Requested Status
Snappy Developers 2015-04-20 Pending
Review via email: mp+256800@code.launchpad.net

Description of the Change

This adds a tiny example for a oem hardware assign snap.

To post a comment you must log in.
51. By Michael Vogt on 2015-04-21

add security-template to make it work

52. By Michael Vogt on 2015-04-22

make it a real oem snap

Unmerged revisions

52. By Michael Vogt on 2015-04-22

make it a real oem snap

51. By Michael Vogt on 2015-04-21

add security-template to make it work

50. By Michael Vogt on 2015-04-20

oem-hardware-assign/meta/package.yaml: use sideload example for now

49. By Michael Vogt on 2015-04-20

rename app-id -> part-id

48. By Michael Vogt on 2015-04-20

minimal example for OEMs hardware-assign feature

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'oem-hardware-assign'
2=== added directory 'oem-hardware-assign/bin'
3=== added file 'oem-hardware-assign/bin/serial-monitor.sh'
4--- oem-hardware-assign/bin/serial-monitor.sh 1970-01-01 00:00:00 +0000
5+++ oem-hardware-assign/bin/serial-monitor.sh 2015-04-22 06:57:56 +0000
6@@ -0,0 +1,9 @@
7+#!/bin/sh
8+
9+set -e
10+
11+
12+echo "Reading from /dev/ttyS0"
13+
14+# just a example
15+tail -f /dev/ttyS0
16
17=== added directory 'oem-hardware-assign/meta'
18=== added file 'oem-hardware-assign/meta/package.yaml'
19--- oem-hardware-assign/meta/package.yaml 1970-01-01 00:00:00 +0000
20+++ oem-hardware-assign/meta/package.yaml 2015-04-22 06:57:56 +0000
21@@ -0,0 +1,24 @@
22+name: oem-hardware-assign
23+vendor: snappy-devel@lists.ubuntu.com
24+icon: meta/serial.svg
25+version: 1.0
26+type: oem
27+binaries:
28+ - name: serial-monitor
29+ exec: bin/serial-monitor.sh
30+ security-template: unconfined
31+oem:
32+ branding:
33+ name: amd64
34+ subname: generic
35+ hardware:
36+ bootloader: grub
37+ architecture: amd64
38+ partition-layout: system-AB
39+ assign:
40+ # note that the app-id can be from a different snap too, e.g.
41+ # random-app_some-service
42+ - part-id: oem-hardware-assign
43+ rules:
44+ - kernel: ttyS0
45+ - kernel: ttyUSB0
46
47=== added file 'oem-hardware-assign/meta/readme.md'
48--- oem-hardware-assign/meta/readme.md 1970-01-01 00:00:00 +0000
49+++ oem-hardware-assign/meta/readme.md 2015-04-22 06:57:56 +0000
50@@ -0,0 +1,3 @@
51+OEM demo package with hardware assign
52+This package contains a example OEM part with the hardware assign feature
53+and a app that uses it.
54
55=== added file 'oem-hardware-assign/meta/serial.svg'
56--- oem-hardware-assign/meta/serial.svg 1970-01-01 00:00:00 +0000
57+++ oem-hardware-assign/meta/serial.svg 2015-04-22 06:57:56 +0000
58@@ -0,0 +1,351 @@
59+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
60+<!-- Created with Inkscape (http://www.inkscape.org/) -->
61+<svg
62+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
63+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
64+ xmlns="http://www.w3.org/2000/svg"
65+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
66+ xmlns:ns1="http://sozi.baierouge.fr"
67+ xmlns:cc="http://creativecommons.org/ns#"
68+ xmlns:xlink="http://www.w3.org/1999/xlink"
69+ xmlns:dc="http://purl.org/dc/elements/1.1/"
70+ id="svg2"
71+ sodipodi:docname="Serial port.svg"
72+ viewBox="0 0 48 48"
73+ version="1.1"
74+ inkscape:version="0.48.4 r9939"
75+ >
76+ <defs
77+ id="defs4"
78+ >
79+ <linearGradient
80+ id="linearGradient3936"
81+ inkscape:collect="always"
82+ >
83+ <stop
84+ id="stop3938"
85+ style="stop-color:#ffff3e"
86+ offset="0"
87+ />
88+ <stop
89+ id="stop3940"
90+ style="stop-color:#ff6600"
91+ offset="1"
92+ />
93+ </linearGradient
94+ >
95+ <radialGradient
96+ id="radialGradient3773"
97+ gradientUnits="userSpaceOnUse"
98+ cy="1020.1"
99+ cx="20.421"
100+ gradientTransform="matrix(.99609 -4.3145e-8 2.0134e-8 .46484 3.6586 559.18)"
101+ r="15.059"
102+ inkscape:collect="always"
103+ >
104+ <stop
105+ id="stop3769"
106+ style="stop-color:#2d2d2d"
107+ offset="0"
108+ />
109+ <stop
110+ id="stop3783"
111+ style="stop-color:#666666"
112+ offset="0.8"
113+ />
114+ <stop
115+ id="stop3771"
116+ style="stop-color:#cccccc"
117+ offset="1"
118+ />
119+ </radialGradient
120+ >
121+ <linearGradient
122+ id="linearGradient3900"
123+ y2="1027.9"
124+ gradientUnits="userSpaceOnUse"
125+ x2="38.072"
126+ gradientTransform="translate(0 6)"
127+ y1="1004.4"
128+ x1="7"
129+ inkscape:collect="always"
130+ >
131+ <stop
132+ id="stop3896"
133+ style="stop-color:#ccff42"
134+ offset="0"
135+ />
136+ <stop
137+ id="stop3898"
138+ style="stop-color:#009100"
139+ offset="1"
140+ />
141+ </linearGradient
142+ >
143+ <radialGradient
144+ id="radialGradient3980"
145+ xlink:href="#linearGradient3936"
146+ gradientUnits="userSpaceOnUse"
147+ cy="1025.6"
148+ cx="20.012"
149+ gradientTransform="matrix(2.6874 -.0000046853 .0000034957 2 -33.752 -1019.4)"
150+ r="1.5"
151+ inkscape:collect="always"
152+ />
153+ <radialGradient
154+ id="radialGradient3982"
155+ xlink:href="#linearGradient3936"
156+ gradientUnits="userSpaceOnUse"
157+ cy="1025.4"
158+ cx="24.031"
159+ gradientTransform="matrix(2.6459 .33323 -.24992 1.9844 216.7 -1011.4)"
160+ r="1.5"
161+ inkscape:collect="always"
162+ />
163+ <radialGradient
164+ id="radialGradient3984"
165+ xlink:href="#linearGradient3936"
166+ gradientUnits="userSpaceOnUse"
167+ cy="1025.9"
168+ cx="28"
169+ gradientTransform="matrix(2.6667 -.000010626 .0000066412 1.6667 -46.673 -677.9)"
170+ r="1.5"
171+ inkscape:collect="always"
172+ />
173+ <radialGradient
174+ id="radialGradient3986"
175+ xlink:href="#linearGradient3936"
176+ gradientUnits="userSpaceOnUse"
177+ cy="1025.9"
178+ cx="32"
179+ gradientTransform="matrix(-1.3333 1.6667 -1.3014 -1.0411 1409.8 2046.6)"
180+ r="1.5"
181+ inkscape:collect="always"
182+ />
183+ <radialGradient
184+ id="radialGradient3988"
185+ xlink:href="#linearGradient3936"
186+ gradientUnits="userSpaceOnUse"
187+ cy="1025.9"
188+ cx="16"
189+ gradientTransform="matrix(2.6874 .000016677 -.000010341 1.6667 -26.988 -677.9)"
190+ r="1.5"
191+ inkscape:collect="always"
192+ />
193+ <radialGradient
194+ id="radialGradient3990"
195+ xlink:href="#linearGradient3936"
196+ gradientUnits="userSpaceOnUse"
197+ cy="1029.9"
198+ cx="30"
199+ gradientTransform="matrix(-8.9388 2.4039 -.25970 -.96569 565.62 1958.3)"
200+ r="1.5"
201+ inkscape:collect="always"
202+ />
203+ <radialGradient
204+ id="radialGradient3992"
205+ xlink:href="#linearGradient3936"
206+ gradientUnits="userSpaceOnUse"
207+ cy="1029.9"
208+ cx="26"
209+ gradientTransform="matrix(-6.2722 2.4038 -.35787 -.93377 557.64 1935)"
210+ r="1.5"
211+ inkscape:collect="always"
212+ />
213+ <radialGradient
214+ id="radialGradient3994"
215+ xlink:href="#linearGradient3936"
216+ gradientUnits="userSpaceOnUse"
217+ cy="1029.9"
218+ cx="22"
219+ gradientTransform="matrix(-3.6055 2.4038 -.66667 -.99994 787.9 2012.8)"
220+ r="1.5"
221+ inkscape:collect="always"
222+ />
223+ <radialGradient
224+ id="radialGradient3996"
225+ xlink:href="#linearGradient3936"
226+ gradientUnits="userSpaceOnUse"
227+ cy="1029.9"
228+ cx="18"
229+ gradientTransform="matrix(-.93882 2.4038 -.93148 -.36379 994.2 1367.2)"
230+ r="1.5"
231+ inkscape:collect="always"
232+ />
233+ </defs
234+ >
235+ <sodipodi:namedview
236+ id="base"
237+ bordercolor="#666666"
238+ inkscape:pageshadow="2"
239+ inkscape:window-y="-8"
240+ pagecolor="#ffffff"
241+ inkscape:snap-intersection-paths="true"
242+ inkscape:snap-smooth-nodes="true"
243+ inkscape:window-maximized="1"
244+ inkscape:zoom="1"
245+ inkscape:window-x="-8"
246+ inkscape:window-height="961"
247+ showgrid="true"
248+ borderopacity="1.0"
249+ inkscape:current-layer="layer1"
250+ inkscape:cx="48.670969"
251+ inkscape:cy="35.157085"
252+ inkscape:object-nodes="true"
253+ inkscape:window-width="1280"
254+ inkscape:object-paths="true"
255+ inkscape:pageopacity="0.0"
256+ inkscape:document-units="px"
257+ >
258+ <inkscape:grid
259+ id="grid2985"
260+ enabled="true"
261+ visible="true"
262+ snapvisiblegridlinesonly="true"
263+ type="xygrid"
264+ empspacing="5"
265+ />
266+ </sodipodi:namedview
267+ >
268+ <g
269+ id="layer1"
270+ inkscape:label="Layer 1"
271+ inkscape:groupmode="layer"
272+ transform="translate(0 -1004.4)"
273+ >
274+ <path
275+ id="rect2987"
276+ sodipodi:nodetypes="sssssssss"
277+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3773)"
278+ inkscape:connector-curvature="0"
279+ d="m12 1026.4h24c1.662 0 3.3606 1.3776 3 3l-2 9c-0.36054 1.6224-1.338 3-3 3h-20c-1.662 0-2.6395-1.3776-3-3l-2-9c-0.36054-1.6224 1.338-3 3-3z"
280+ />
281+ <path
282+ id="path2992"
283+ style="fill:#666666"
284+ inkscape:connector-curvature="0"
285+ d="m3 1030.4-2 3 2 3h3l2-3-2-3h-3zm1.5 1.5c0.82843 0 1.5 0.6716 1.5 1.5s-0.67157 1.5-1.5 1.5-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5z"
286+ />
287+ <path
288+ id="path2997"
289+ d="m13 1027.4h22c1.662 0 3.4566 1.402 3 3l-2 7c-0.45658 1.598-1.338 3-3 3h-18c-1.662 0-2.5434-1.402-3-3l-2-7c-0.45658-1.598 1.338-3 3-3z"
290+ sodipodi:nodetypes="sssssssss"
291+ style="fill-rule:evenodd;color:#000000;fill:url(#linearGradient3900)"
292+ inkscape:connector-curvature="0"
293+ />
294+ <path
295+ id="path3868"
296+ style="fill:#666666"
297+ inkscape:connector-curvature="0"
298+ d="m42 1030.4-2 3 2 3h3l2-3-2-3h-3zm1.5 1.5c0.82843 0 1.5 0.6716 1.5 1.5s-0.67157 1.5-1.5 1.5-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5z"
299+ />
300+ <path
301+ id="path3960"
302+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3996)"
303+ inkscape:connector-curvature="0"
304+ d="m19.5 1035.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
305+ />
306+ <path
307+ id="path3958"
308+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3994)"
309+ inkscape:connector-curvature="0"
310+ d="m23.5 1035.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
311+ />
312+ <path
313+ id="path3956"
314+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3992)"
315+ inkscape:connector-curvature="0"
316+ d="m27.5 1035.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
317+ />
318+ <path
319+ id="path3954"
320+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3990)"
321+ inkscape:connector-curvature="0"
322+ d="m31.5 1035.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
323+ />
324+ <path
325+ id="path3952"
326+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3988)"
327+ inkscape:connector-curvature="0"
328+ d="m17.5 1031.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
329+ />
330+ <path
331+ id="path3950"
332+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3986)"
333+ inkscape:connector-curvature="0"
334+ d="m33.5 1031.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
335+ />
336+ <path
337+ id="path3948"
338+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3984)"
339+ inkscape:connector-curvature="0"
340+ d="m29.5 1031.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
341+ />
342+ <path
343+ id="path3946"
344+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3982)"
345+ inkscape:connector-curvature="0"
346+ d="m25.5 1031.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
347+ />
348+ <path
349+ id="path3892"
350+ style="fill-rule:evenodd;color:#000000;fill:url(#radialGradient3980)"
351+ inkscape:connector-curvature="0"
352+ d="m21.5 1031.9c0 0.8284-0.67157 1.5-1.5 1.5s-1.5-0.6716-1.5-1.5 0.67157-1.5 1.5-1.5 1.5 0.6716 1.5 1.5z"
353+ />
354+ <path
355+ id="rect4172"
356+ style="fill-rule:evenodd;color:#000000;fill:#2d2d2d"
357+ d="m33 1012.4h1v7h-1zm-20 0h1v7h-1zm15.5 0c-1.933 0-3.5 1.567-3.5 3.5s1.567 3.5 3.5 3.5 3.5-1.567 3.5-3.5-1.567-3.5-3.5-3.5zm0 1c1.3807 0 2.5 1.1193 2.5 2.5s-1.1193 2.5-2.5 2.5-2.5-1.1193-2.5-2.5 1.1193-2.5 2.5-2.5zm-5.5-1h1v7h-1zm-4.5 0c-1.933 0-3.5 1.567-3.5 3.5s1.567 3.5 3.5 3.5 3.5-1.567 3.5-3.5-1.567-3.5-3.5-3.5zm0 1c1.3807 0 2.5 1.1193 2.5 2.5s-1.1193 2.5-2.5 2.5-2.5-1.1193-2.5-2.5 1.1193-2.5 2.5-2.5z"
358+ />
359+ </g
360+ >
361+ <metadata
362+ >
363+ <rdf:RDF
364+ >
365+ <cc:Work
366+ >
367+ <dc:format
368+ >image/svg+xml</dc:format
369+ >
370+ <dc:type
371+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
372+ />
373+ <cc:license
374+ rdf:resource="http://creativecommons.org/licenses/publicdomain/"
375+ />
376+ <dc:publisher
377+ >
378+ <cc:Agent
379+ rdf:about="http://openclipart.org/"
380+ >
381+ <dc:title
382+ >Openclipart</dc:title
383+ >
384+ </cc:Agent
385+ >
386+ </dc:publisher
387+ >
388+ </cc:Work
389+ >
390+ <cc:License
391+ rdf:about="http://creativecommons.org/licenses/publicdomain/"
392+ >
393+ <cc:permits
394+ rdf:resource="http://creativecommons.org/ns#Reproduction"
395+ />
396+ <cc:permits
397+ rdf:resource="http://creativecommons.org/ns#Distribution"
398+ />
399+ <cc:permits
400+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
401+ />
402+ </cc:License
403+ >
404+ </rdf:RDF
405+ >
406+ </metadata
407+ >
408+</svg
409+>

Subscribers

People subscribed via source and target branches