Merge ~morphis/snappy-hwe-snaps/+git/pulseaudio:bug/enable-proposed into ~snappy-hwe-team/snappy-hwe-snaps/+git/se-test-tools:master
- Git
- lp:~morphis/snappy-hwe-snaps/+git/pulseaudio
- bug/enable-proposed
- Merge into master
Status: | Superseded |
---|---|
Proposed branch: | ~morphis/snappy-hwe-snaps/+git/pulseaudio:bug/enable-proposed |
Merge into: | ~snappy-hwe-team/snappy-hwe-snaps/+git/se-test-tools:master |
Diff against target: |
1658 lines (+1479/-0) (has conflicts) 26 files modified
MAINTAINERS (+4/-0) README.md (+6/-0) bin/config (+70/-0) bin/pactl (+28/-0) bin/paplay (+28/-0) bin/parec (+28/-0) bin/pulseaudio (+28/-0) data/copyright (+604/-0) run-tests.sh (+84/-0) snapcraft.yaml (+152/-0) spread.yaml (+50/-0) tests/image/README.md (+7/-0) tests/image/create-image.sh (+157/-0) tests/image/pc-model.json (+11/-0) tests/image/pc.model (+21/-0) tests/image/test-user-assertion.json (+13/-0) tests/image/test-user.assertion (+25/-0) tests/lib/prepare-all.sh (+35/-0) tests/lib/prepare-each.sh (+6/-0) tests/lib/prepare.sh (+51/-0) tests/lib/restore-each.sh (+22/-0) tests/lib/snap-names.sh (+7/-0) tests/lib/utilities.sh (+9/-0) tests/main/installation/task.yaml (+16/-0) tests/main/modules-loaded/task.yaml (+11/-0) tests/main/pactl/task.yaml (+6/-0) Conflict in MAINTAINERS Conflict in README.md Conflict in snapcraft.yaml |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
System Enablement Bot | continuous-integration | Needs Fixing | |
Review via email: mp+314226@code.launchpad.net |
This proposal has been superseded by a proposal from 2017-01-06.
Commit message
Description of the change
Enable Ubuntu proposed archive within the classic snap for builds
As the current core snap is based on a systemd deb package from the Ubuntu Core image ppa we run into some conflicts with a newer one from the archive. To fix this issue we need to force upgrade to a newer systemd package from xenial proposed.
System Enablement Bot (system-enablement-ci-bot) wrote : | # |
Unmerged commits
- c755d8e... by Simon Fels
-
tests: upgrade classic system from proposed
- a29ac2f... by =?utf-8?q?Konrad_Zapa=C5=82owicz?= <email address hidden>
-
Version 8.0-3
- c3e5e6e... by System Enablement CI Bot <email address hidden>
-
Merge remote tracking branch feature/
fix-runtime- issues Merge-Proposal: https:/
/code.launchpad .net/~kzapalowi cz/snappy- hwe-snaps/ +git/pulseaudio /+merge/ 313340 - 0792791... by =?utf-8?q?Konrad_Zapa=C5=82owicz?= <email address hidden>
-
Use stable channelm not candidate, for image building
- ef3646b... by =?utf-8?q?Konrad_Zapa=C5=82owicz?= <email address hidden>
-
Use stable channel for image creation
The Core image from th candidate channel hes problems in resolving the
dependencies for the pulseaudio snap. This forces the image to be
created out of the 'stable' channel which should not have this
problem - 99ba403... by =?utf-8?q?Konrad_Zapa=C5=82owicz?= <email address hidden>
-
Fix failing CI infrastructure due to broken packages
The CI is failing because libudev-dev is having the unmet dependencies.
This commit makes sure that the upgrade is performed before the snap
is build. - 9268445... by =?utf-8?q?Konrad_Zapa=C5=82owicz?= <email address hidden>
-
pulseaudio: fix the plug/slot connectin problem
The plugs and slots for pulseaudio snap cannot be connected w/o the
assertion which is a case when installing a locally build snap. This
change makes sure that the snap from the store is installed before
so that the connection is made. - 60fd5cc... by =?utf-8?q?Konrad_Zapa=C5=82owicz?= <email address hidden>
-
Add home plug for parec command
This commit adds home plug to the parec command so that it is possible
to play files from the ~ directory. - 7a8251b... by =?utf-8?q?Konrad_Zapa=C5=82owicz?= <email address hidden>
-
Add network plug
The network plug is needed to overcome SecComp complaining of
the unauthorized usage of the send system call. - d35ba51... by =?utf-8?q?Konrad_Zapa=C5=82owicz?= <email address hidden>
-
Decide to run the pa* scripts only as root
The pactl, parec and paplay commands, when run normally, try to access
/run/user/$USERID/ on Core which is disallowed by AppArmor rules.This commit is make sure that the mentioned commands are run as root,
not regular user.
Preview Diff
1 | diff --git a/MAINTAINERS b/MAINTAINERS |
2 | index 170e9f4..b249add 100644 |
3 | --- a/MAINTAINERS |
4 | +++ b/MAINTAINERS |
5 | @@ -1,2 +1,6 @@ |
6 | +<<<<<<< MAINTAINERS |
7 | Alfonso Sanchez-Beato <alfonso.sanchez-beato@canonical.com> |
8 | +======= |
9 | +Jim Hodapp <jim.hodapp@canonical.com> |
10 | +>>>>>>> MAINTAINERS |
11 | Simon Fels <simon.fels@canonical.com> |
12 | diff --git a/README.md b/README.md |
13 | index 08d7a05..1cc87d3 100644 |
14 | --- a/README.md |
15 | +++ b/README.md |
16 | @@ -1,3 +1,4 @@ |
17 | +<<<<<<< README.md |
18 | # Test tools |
19 | |
20 | This snap bundles various tools needed from the test suites the |
21 | @@ -27,3 +28,8 @@ running them like |
22 | ``` |
23 | $ se-test-tools.radvd -h |
24 | ``` |
25 | +======= |
26 | +# PulseAudio |
27 | + |
28 | +This is the snap to package the PulseAudio management service. |
29 | +>>>>>>> README.md |
30 | diff --git a/bin/config b/bin/config |
31 | new file mode 100755 |
32 | index 0000000..86b115c |
33 | --- /dev/null |
34 | +++ b/bin/config |
35 | @@ -0,0 +1,70 @@ |
36 | +#!/bin/bash |
37 | +# |
38 | +# Copyright (C) 2016 Canonical Ltd |
39 | +# |
40 | +# This program is free software: you can redistribute it and/or modify |
41 | +# it under the terms of the GNU General Public License version 3 as |
42 | +# published by the Free Software Foundation. |
43 | +# |
44 | +# This program is distributed in the hope that it will be useful, |
45 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
46 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
47 | +# GNU General Public License for more details. |
48 | +# |
49 | +# You should have received a copy of the GNU General Public License |
50 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
51 | + |
52 | +export PATH="$PATH:$SNAP/sbin" |
53 | + |
54 | +show_help() { |
55 | + echo "Usage: $0 COMMAND..." |
56 | + echo |
57 | + echo "Commands:" |
58 | + echo " enable-debug Enable verbose debugging." |
59 | + echo " disable-debug Disable verbose debugging." |
60 | +} |
61 | + |
62 | +if [ "$1" = "" ]; then |
63 | + show_help |
64 | + exit |
65 | +fi |
66 | + |
67 | +while [ "$1" != '' ]; do |
68 | + case "$1" in |
69 | + --help) |
70 | + show_help |
71 | + exit |
72 | + ;; |
73 | + enable-debug|disable-debug) |
74 | + commands="$commands $1" |
75 | + shift |
76 | + ;; |
77 | + *) |
78 | + echo "Unknown command: $1" |
79 | + exit 1 |
80 | + ;; |
81 | + esac |
82 | +done |
83 | + |
84 | +if [ ! -d $SNAP_DATA/config ] ; then |
85 | + mkdir $SNAP_DATA/config |
86 | +fi |
87 | + |
88 | +run_commands() { |
89 | + while [ -n "$1" ]; do |
90 | + case "$1" in |
91 | + disable-debug) |
92 | + if [ -e $SNAP_DATA/config/debug ] ; then |
93 | + rm $SNAP_DATA/config/debug |
94 | + fi |
95 | + shift |
96 | + ;; |
97 | + enable-debug) |
98 | + touch $SNAP_DATA/config/debug |
99 | + shift |
100 | + ;; |
101 | + esac |
102 | + done |
103 | +} |
104 | + |
105 | +run_commands $commands |
106 | diff --git a/bin/pactl b/bin/pactl |
107 | new file mode 100755 |
108 | index 0000000..97e23b2 |
109 | --- /dev/null |
110 | +++ b/bin/pactl |
111 | @@ -0,0 +1,28 @@ |
112 | +#!/bin/sh |
113 | +# |
114 | +# Copyright (C) 2016 Canonical Ltd |
115 | +# |
116 | +# This program is free software: you can redistribute it and/or modify |
117 | +# it under the terms of the GNU General Public License version 3 as |
118 | +# published by the Free Software Foundation. |
119 | +# |
120 | +# This program is distributed in the hope that it will be useful, |
121 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
122 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
123 | +# GNU General Public License for more details. |
124 | +# |
125 | +# You should have received a copy of the GNU General Public License |
126 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
127 | + |
128 | +if [ $(id -u) -ne 0 ]; then |
129 | + echo "This script must be run as root" 1>&2 |
130 | + exit 1 |
131 | +fi |
132 | + |
133 | +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ |
134 | +export PULSE_CLIENTCONFIG=$SNAP/etc/pulse/client.conf |
135 | +export HOME=$SNAP_DATA/home |
136 | + |
137 | +mkdir -p $HOME |
138 | + |
139 | +$SNAP/usr/bin/pactl $@ |
140 | diff --git a/bin/paplay b/bin/paplay |
141 | new file mode 100755 |
142 | index 0000000..a132d51 |
143 | --- /dev/null |
144 | +++ b/bin/paplay |
145 | @@ -0,0 +1,28 @@ |
146 | +#!/bin/sh |
147 | +# |
148 | +# Copyright (C) 2016 Canonical Ltd |
149 | +# |
150 | +# This program is free software: you can redistribute it and/or modify |
151 | +# it under the terms of the GNU General Public License version 3 as |
152 | +# published by the Free Software Foundation. |
153 | +# |
154 | +# This program is distributed in the hope that it will be useful, |
155 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
156 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
157 | +# GNU General Public License for more details. |
158 | +# |
159 | +# You should have received a copy of the GNU General Public License |
160 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
161 | + |
162 | +if [ $(id -u) -ne 0 ]; then |
163 | + echo "This script must be run as root" 1>&2 |
164 | + exit 1 |
165 | +fi |
166 | + |
167 | +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ |
168 | +export PULSE_CLIENTCONFIG=$SNAP/etc/pulse/client.conf |
169 | +export HOME=$SNAP_DATA/home |
170 | + |
171 | +mkdir -p $HOME |
172 | + |
173 | +$SNAP/usr/bin/paplay $@ |
174 | diff --git a/bin/parec b/bin/parec |
175 | new file mode 100755 |
176 | index 0000000..269e0f8 |
177 | --- /dev/null |
178 | +++ b/bin/parec |
179 | @@ -0,0 +1,28 @@ |
180 | +#!/bin/sh |
181 | +# |
182 | +# Copyright (C) 2016 Canonical Ltd |
183 | +# |
184 | +# This program is free software: you can redistribute it and/or modify |
185 | +# it under the terms of the GNU General Public License version 3 as |
186 | +# published by the Free Software Foundation. |
187 | +# |
188 | +# This program is distributed in the hope that it will be useful, |
189 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
190 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
191 | +# GNU General Public License for more details. |
192 | +# |
193 | +# You should have received a copy of the GNU General Public License |
194 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
195 | + |
196 | +if [ $(id -u) -ne 0 ]; then |
197 | + echo "This script must be run as root" 1>&2 |
198 | + exit 1 |
199 | +fi |
200 | + |
201 | +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ |
202 | +export PULSE_CLIENTCONFIG=$SNAP/etc/pulse/client.conf |
203 | +export HOME=$SNAP_DATA/home |
204 | + |
205 | +mkdir -p $HOME |
206 | + |
207 | +$SNAP/usr/bin/parec $@ |
208 | diff --git a/bin/pulseaudio b/bin/pulseaudio |
209 | new file mode 100755 |
210 | index 0000000..d9fb85f |
211 | --- /dev/null |
212 | +++ b/bin/pulseaudio |
213 | @@ -0,0 +1,28 @@ |
214 | +#!/bin/sh |
215 | +set -e |
216 | +set -x |
217 | + |
218 | +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ |
219 | +export PULSE_STATE_PATH=$SNAP_DATA/state |
220 | +export ALSA_CONFIG_UCM=$SNAP/usr/share/alsa/ucm |
221 | +export ALSA_CONFIG_TPLG=$SNAP/usr/share/alsa/topology |
222 | +export ALSA_CONFIG_PATH=$SNAP/usr/share/alsa/alsa.conf |
223 | +export ALSA_MIXER_SIMPLE=$SNAP/usr/share/alsa/smixer.conf |
224 | + |
225 | +mkdir -p $PULSE_STATE_PATH |
226 | + |
227 | +EXTRA_ARGS= |
228 | + |
229 | +if [ -e $SNAP_DATA/config/debug ] ; then |
230 | + EXTRA_ARGS="$EXTRA_ARGS -vvvv" |
231 | + export LIBASOUND_DEBUG=1 |
232 | +fi |
233 | + |
234 | +$SNAP/usr/bin/pulseaudio \ |
235 | + --exit-idle-time=-1 \ |
236 | + --disallow-exit=yes \ |
237 | + --system \ |
238 | + -F $SNAP/etc/pulse/default.pa \ |
239 | + -p $SNAP/usr/lib/pulse-8.0/modules \ |
240 | + -n \ |
241 | + $EXTRA_ARGS |
242 | diff --git a/data/copyright b/data/copyright |
243 | new file mode 100644 |
244 | index 0000000..970053b |
245 | --- /dev/null |
246 | +++ b/data/copyright |
247 | @@ -0,0 +1,604 @@ |
248 | +This package was debianized by CJ van den Berg <cj@vdbonline.com> on |
249 | +Thu, 10 Aug 2006 15:59:43 +0200. |
250 | + |
251 | +It was downloaded from <http://pulseaudio.org/wiki/DownloadPulseAudio>. |
252 | + |
253 | + Upstream Authors |
254 | + ================ |
255 | + |
256 | + Lennart Poettering <lennart@poettering.net> |
257 | + Pierre Ossman <drzeus@drzeus.cx>, |
258 | + through his employer Cendio <http://www.cendio.com/> |
259 | + |
260 | +Files: * |
261 | +Copyright: |
262 | + Copyright (C) 2004-2009 Lennart Poettering |
263 | + Copyright (C) 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB |
264 | +License: LGPL-2.1+ |
265 | + The upstream license clarifies pretty well that the sources of pulseaudio are |
266 | + LGPL (please see LGPL license grant below), but that some parts will be |
267 | + effectively GPL since they rely on GPL libraries, quoting the upstream |
268 | + LICENSE: |
269 | + |
270 | + """All PulseAudio source files are licensed under the GNU Lesser General |
271 | + Public License. (see file LGPL for details) |
272 | + |
273 | + However, the server side links to the GPL-only library 'libsamplerate' |
274 | + which practically downgrades the license of the server part to GPL (see |
275 | + file GPL for details), exercising section 3 of the LGPL. |
276 | + |
277 | + Hence you should treat the client library ('libpulse') of PulseAudio as |
278 | + being LGPL licensed and the server part ('libpulsecore') as being GPL |
279 | + licensed. Since the PulseAudio daemon and the modules link to |
280 | + 'libpulsecore' they are of course also GPL licensed. |
281 | + |
282 | + -- Lennart Poettering, April 20th, 2006.""" |
283 | + |
284 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
285 | + /usr/share/common-licenses/LGPL-2.1. |
286 | + |
287 | +File: src/pulsecore/g711.c |
288 | +Copyright: |
289 | + Copyright (C) Sun Microsystems, Inc |
290 | +License: |
291 | + This source code is a product of Sun Microsystems, Inc. and is provided |
292 | + for unrestricted use. Users may copy or modify this source code without |
293 | + charge. |
294 | + |
295 | + SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING |
296 | + THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR |
297 | + PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. |
298 | + |
299 | + Sun source code is provided with no support and without any obligation on |
300 | + the part of Sun Microsystems, Inc. to assist in its use, correction, |
301 | + modification or enhancement. |
302 | + |
303 | + SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE |
304 | + INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE |
305 | + OR ANY PART THEREOF. |
306 | + |
307 | + In no event will Sun Microsystems, Inc. be liable for any lost revenue |
308 | + or profits or other special, indirect and consequential damages, even if |
309 | + Sun has been advised of the possibility of such damages. |
310 | + |
311 | +Files: src/pulsecore/g711.h |
312 | +Copyright: |
313 | + Copyright (C) 2001 Chris Bagwell |
314 | +Licence: |
315 | + Permission to use, copy, modify, and distribute this software and its |
316 | + documentation for any purpose and without fee is hereby granted, provided |
317 | + that the above copyright notice appear in all copies and that both that |
318 | + copyright notice and this permission notice appear in supporting |
319 | + documentation. This software is provided "as is" without express or |
320 | + implied warranty. |
321 | + |
322 | +Files: src/pulsecore/poll.* |
323 | +Copyright: |
324 | + Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB |
325 | + Copyright (C)1994,96,97,98,99,2000,2001,2004 Free Software Foundation, Inc. |
326 | +License: LGPL-2.1+ |
327 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
328 | + /usr/share/common-licenses/LGPL-2.1. |
329 | + |
330 | +Files: src/pulse/utf8.c |
331 | +Copyright: |
332 | + Copyright (C) 1999 Tom Tromey |
333 | + Copyright (C) 2000 Red Hat, Inc. |
334 | +License: LGPL-2.1+ |
335 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
336 | + /usr/share/common-licenses/LGPL-2.1. |
337 | + |
338 | +Files: src/modules/bluetooth/ipc.*, src/modules/bluetooth/rtp.* |
339 | +Copyright: |
340 | + Copyright (C) 2004-2009 Marcel Holtmann <marcel@holtmann.org> |
341 | +License: LGPL-2.1+ |
342 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
343 | + /usr/share/common-licenses/LGPL-2.1. |
344 | + |
345 | +Files: src/modules/bluetooth/module-bluetooth-{device,discover}.c, |
346 | + src/modules/bluetooth/bluetooth-util.* |
347 | +Copyright: |
348 | + Copyright (C) 2008-2009 Joao Paulo Rechi Vita |
349 | +License: LGPL-2.1+ |
350 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
351 | + /usr/share/common-licenses/LGPL-2. |
352 | + |
353 | +File: src/modules/bluetooth/proximity-helper.c |
354 | +Copyright: |
355 | + Copyright (C) 2000-2001 Qualcomm Incorporated |
356 | + Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com> |
357 | + Copyright (C) 2002-2007 Marcel Holtmann <marcel@holtmann.org> |
358 | +License: GPL-2+ |
359 | + On Debian systems, the complete text of the GPL-2 can be found in |
360 | + /usr/share/common-licenses/GPL-2. |
361 | + |
362 | +Files: src/modules/bluetooth/sbc* |
363 | +Copyright: |
364 | + Copyright (C) 2004-2009 Marcel Holtmann <marcel@holtmann.org> |
365 | + Copyright (C) 2004-2005 Henryk Ploetz <henryk@ploetzli.ch> |
366 | + Copyright (C) 2005-2006 Brad Midgley <bmidgley@xmission.com> |
367 | +License: LGPL-2.1+ |
368 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
369 | + /usr/share/common-licenses/LGPL-2.1. |
370 | + |
371 | +File: src/modules/dbus/iface-{client,stream}.c: |
372 | +Copyright: |
373 | + Copyright 2009 Tanu Kaskinen |
374 | + Copyright 2009 Vincent Filali-Ansary <filali.v@azurdigitalnetworks.net> |
375 | +License: LGPL-2.1+ |
376 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
377 | + /usr/share/common-licenses/LGPL-2.1. |
378 | + |
379 | +File: src/modules/dbus/module-dbus-protocol.c |
380 | +Copyright: |
381 | + Copyright 2009 Tanu Kaskinen |
382 | + Copyright 2006 Lennart Poettering |
383 | + Copyright 2006 Shams E. King |
384 | +License: LGPL-2.1+ |
385 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
386 | + /usr/share/common-licenses/LGPL-2.1. |
387 | + |
388 | +Files: src/modules/dbus/* |
389 | +Copyright: |
390 | + Copyright 2009 Tanu Kaskinen |
391 | +License: LGPL-2.1+ |
392 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
393 | + /usr/share/common-licenses/LGPL-2.1. |
394 | + |
395 | +Files: src/modules/echo-cancel/adrian*.* |
396 | +Copyright: |
397 | + Copyright (C) DFS Deutsche Flugsicherung (2004). All Rights Reserved. |
398 | +License: |
399 | + You are allowed to use this source code in any open source or closed |
400 | + source software you want. You are allowed to use the algorithms for a |
401 | + hardware solution. You are allowed to modify the source code. |
402 | + You are not allowed to remove the name of the author from this memo or |
403 | + from the source code files. You are not allowed to monopolize the |
404 | + source code or the algorithms behind the source code as your |
405 | + intellectual property. This source code is free of royalty and comes |
406 | + with no warranty. |
407 | + |
408 | +File: src/modules/echo-cancel/echo-cancel.h |
409 | +Copyright: |
410 | + Copyright 2010 Arun Raghavan <arun.raghavan@collabora.co.uk> |
411 | +License: LGPL-2.1+ |
412 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
413 | + /usr/share/common-licenses/LGPL-2.1. |
414 | + |
415 | +File: src/modules/echo-cancel/module-echo-cancel.c |
416 | +Copyright: |
417 | + Copyright 2010 Wim Taymans <wim.taymans@gmail.com> |
418 | +License: LGPL-2.1+ |
419 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
420 | + /usr/share/common-licenses/LGPL-2.1. |
421 | + |
422 | +File: src/modules/echo-cancel/speex.c |
423 | +Copyright: |
424 | + Copyright 2010 Wim Taymans <wim.taymans@gmail.com> |
425 | + Contributor: Arun Raghavan <arun.raghavan@collabora.co.uk> |
426 | +License: LGPL-2.1+ |
427 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
428 | + /usr/share/common-licenses/LGPL-2.1. |
429 | + |
430 | +File: src/modules/jack/module-jackdbus-detect.c |
431 | +Copyright: |
432 | + Written by David Henningsson <david.henningsson@canonical.com> |
433 | + Copyright 2010 Canonical Ltd. |
434 | +License: LGPL-2.1+ |
435 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
436 | + /usr/share/common-licenses/LGPL-2.1. |
437 | + |
438 | +Files: src/modules/module-device-manager.* |
439 | +Copyright: |
440 | + Copyright 2006-2008 Lennart Poettering |
441 | + Copyright (C) 2009 Colin Guthrie |
442 | +License: LGPL-2.1+ |
443 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
444 | + /usr/share/common-licenses/LGPL-2.1. |
445 | + |
446 | +File: src/modules/module-equalizer-sink.c |
447 | +Copyright: |
448 | + Copyright 2004-2008 Lennart Poettering |
449 | + Copyright 2009 Jason Newton <nevion@gmail.com> |
450 | +License: LGPL-2.1+ |
451 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
452 | + /usr/share/common-licenses/LGPL-2.1. |
453 | + |
454 | +Files: src/pulsecore/dbus-*.*, src/modules/module-hal-detect.c |
455 | +Copyright: |
456 | + Copyright 2006 Lennart Poettering |
457 | + Copyright 2006 Shams E. King |
458 | +License: LGPL-2.1+ |
459 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
460 | + /usr/share/common-licenses/LGPL-2.1. |
461 | + |
462 | +File: src/modules/ladspa.h |
463 | +Copyright: |
464 | + Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis, Stefan |
465 | + Westerfeld. |
466 | +License: LGPL-2.1+ |
467 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
468 | + /usr/share/common-licenses/LGPL-2.1. |
469 | + |
470 | +Files: src/modules/module-always-sink.c, src/modules/rtp/rtsp_client.* |
471 | +Copyright: |
472 | + Copyright (C) 2008 Colin Guthrie |
473 | +License: LGPL-2.1+ |
474 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
475 | + /usr/share/common-licenses/LGPL-2.1. |
476 | + |
477 | +Files: src/modules/module-detect.c |
478 | +Copyright: |
479 | + Copyright 2006 Lennart Poettering |
480 | + Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB |
481 | + Copyright 2006 Diego Petteno |
482 | +License: LGPL-2.1+ |
483 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
484 | + /usr/share/common-licenses/LGPL-2.1. |
485 | + |
486 | +Files: src/modules/roap/*roap*, src/modules/rtp/headerlist.* |
487 | +Copyright: |
488 | + Copyright 2005-2007 Lennart Poettering |
489 | + Copyright (C) 2008 Colin Guthrie |
490 | +License: LGPL-2.1+ |
491 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
492 | + /usr/share/common-licenses/LGPL-2.1. |
493 | + |
494 | +Files: src/modules/roap/base64.* |
495 | +Copyright: |
496 | + Copyright (C) 2008 Colin Guthrie |
497 | + Copyright (C) Kungliga Tekniska Hogskolan |
498 | +License: LGPL-2.1+ |
499 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
500 | + /usr/share/common-licenses/LGPL-2.1. |
501 | + |
502 | +Files: src/modules/module-device-manager.c |
503 | +Copyright: |
504 | + Copyright 2006-2008 Lennart Poettering |
505 | + Copyright 2009 Colin Guthrie |
506 | +License: LGPL-2.1+ |
507 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
508 | + /usr/share/common-licenses/LGPL-2.1. |
509 | + |
510 | +Files: src/modules/module-filter-{apply,heuristics}*.c |
511 | +Copyright: |
512 | + Copyright 2011 Colin Guthrie |
513 | +License: LGPL-2.1+ |
514 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
515 | + /usr/share/common-licenses/LGPL-2.1. |
516 | + |
517 | +Files: src/modules/module-solaris.c |
518 | +Copyright: |
519 | + Copyright 2006 Lennart Poettering |
520 | + Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB |
521 | + Copyright 2009 Finn Thain |
522 | +License: LGPL-2.1+ |
523 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
524 | + /usr/share/common-licenses/LGPL-2.1. |
525 | + |
526 | +File: src/modules/module-switch-on-connect.c |
527 | +Copyright: |
528 | + Copyright 2006 Lennart Poettering |
529 | + Copyright 2009 Canonical Ltd |
530 | +License: LGPL-2.1+ |
531 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
532 | + /usr/share/common-licenses/LGPL-2.1. |
533 | + |
534 | +Files: src/modules/module-virtual-s{ink,ource}.c |
535 | +Copyright: |
536 | + Copyright 2010 Intel Corporation |
537 | + Contributor: Pierre-Louis Bossart <pierre-louis.bossart@intel.com> |
538 | +License: LGPL-2.1+ |
539 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
540 | + /usr/share/common-licenses/LGPL-2.1. |
541 | + |
542 | +Files: src/modules/reserve.* |
543 | +Copyright: |
544 | + Copyright 2009 (C) Lennart Poettering |
545 | +License: |
546 | + Permission is hereby granted, free of charge, to any person |
547 | + obtaining a copy of this software and associated documentation files |
548 | + (the "Software"), to deal in the Software without restriction, |
549 | + including without limitation the rights to use, copy, modify, merge, |
550 | + publish, distribute, sublicense, and/or sell copies of the Software, |
551 | + and to permit persons to whom the Software is furnished to do so, |
552 | + subject to the following conditions: |
553 | + |
554 | + The above copyright notice and this permission notice shall be |
555 | + included in all copies or substantial portions of the Software. |
556 | + |
557 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
558 | + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
559 | + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
560 | + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
561 | + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
562 | + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
563 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
564 | + SOFTWARE. |
565 | + |
566 | +Files: src/pulsecore/atomic.h |
567 | +Copyright: |
568 | + Copyright (C) 2006-2008 Lennart Poettering |
569 | + Copyright (C) 2008 Nokia Corporation |
570 | +License: LGPL-2.1+ |
571 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
572 | + /usr/share/common-licenses/LGPL-2.1. |
573 | + |
574 | +File: src/pulsecore/core-util.c |
575 | +Copyright: |
576 | + Copyright (C) 2004-2006 Lennart Poettering |
577 | + Copyright (C) 2004 Joe Marcus Clarke |
578 | + Copyright (C) 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB |
579 | +License: LGPL-2.1+ |
580 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
581 | + /usr/share/common-licenses/LGPL-2.1. |
582 | + |
583 | +Files: src/pulse/ext-device-manager.* |
584 | +Copyright: |
585 | + Copyright (C) 2008 Lennart Poettering |
586 | + Copyright (C) 2009 Colin Guthrie |
587 | +License: LGPL-2.1+ |
588 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
589 | + /usr/share/common-licenses/LGPL-2.1. |
590 | + |
591 | +File: src/pulsecore/ffmpeg/avcodec.h |
592 | +Copyright: |
593 | + Copyright (c) 2001 Fabrice Bellard |
594 | +License: LGPL-2.1+ |
595 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
596 | + /usr/share/common-licenses/LGPL-2.1. |
597 | + |
598 | +File: src/pulsecore/ffmpeg/resample2.c |
599 | +Copyright: |
600 | + Copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at> |
601 | +License: LGPL-2.1+ |
602 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
603 | + /usr/share/common-licenses/LGPL-2.1. |
604 | + |
605 | +File: src/pulsecore/socket-util.c |
606 | +Copyright: |
607 | + Copyright (C) 2004-2006 Lennart Poettering |
608 | + Copyright (C) 2004 Joe Marcus Clarke |
609 | + Copyright (C) 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB |
610 | +License: LGPL-2.1+ |
611 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
612 | + /usr/share/common-licenses/LGPL-2.1. |
613 | + |
614 | +File: man/xmltoman |
615 | +Copyright: |
616 | + Copyright (C) 2000-2002 Oliver Kurth <oku@masqmail.cx> |
617 | + Copyright (C) 2003 Lennart Poettering <mzkzygbzna@0pointer.de> |
618 | +License: LGPL-2+ |
619 | + On Debian systems, the complete text of the LGPL-2 can be found in |
620 | + /usr/share/common-licenses/LGPL-2. |
621 | + |
622 | +File: po/ca.po |
623 | +Copyright: |
624 | + Copyright (C) 2008 Xavier Conde Rueda <xavi.conde@gmail.com> |
625 | + Copyright (C) 2009 Agustí Grau <fletxa@gmail.com>, 2009. |
626 | + Copyright (C) Judith Pintó Subirada <judithp@gmail.com> |
627 | + Copyright (C) 2009 Josep Torné Llavall <josep.torne@gmail.com> |
628 | + |
629 | +License: LGPL-2.1+ |
630 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
631 | + /usr/share/common-licenses/LGPL-2.1. |
632 | + |
633 | +File: po/cs.po |
634 | +Copyright: |
635 | + Copyright (C) 2008,2009 Petr Kovar <pknbe@volny.cz> |
636 | +License: LGPL-2.1+ |
637 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
638 | + /usr/share/common-licenses/LGPL-2.1. |
639 | + |
640 | +File: po/de.po |
641 | +Copyright: |
642 | + Copyright (C) 2008,2009 Fabian Affolter <fab@fedoraproject.org> |
643 | + Copyright (C) 2008,2009 Micha Pietsch <barney@fedoraproject.org> |
644 | +License: LGPL-2.1+ |
645 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
646 | + /usr/share/common-licenses/LGPL-2.1. |
647 | + |
648 | +File: po/de_CH.po |
649 | +Copyright: |
650 | + Copyright (C) 2008, 2009 Fabian Affolter <fab@fedoraproject.org> |
651 | + Copyright (C) 2008, 2009 Micha Pietsch <barney@fedoraproject.org> |
652 | +License: LGPL-2.1+ |
653 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
654 | + /usr/share/common-licenses/LGPL-2.1. |
655 | + |
656 | +File: po/el.po |
657 | +Copyright: |
658 | + Copyright (C) 2008 Dimitris Glezos <dimitris@glezos.com> |
659 | + Copyright (C) 2009 Thalia Papoutsaki <saliyath@gmail.com> |
660 | +License: LGPL-2.1+ |
661 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
662 | + /usr/share/common-licenses/LGPL-2.1. |
663 | + |
664 | +File: po/es.po |
665 | +Copyright: |
666 | + Copyright (C) 2009 Domingo Becker <domingobecker@gmail.com> |
667 | + Copyright (C) 2008 Hector Daniel Cabrera <h.daniel.cabrera@gmail.com> |
668 | + Copyright (C) 2009 Fernando Gonzalez Blanco <fgonz@fedoraproject.org> |
669 | +License: LGPL-2.1+ |
670 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
671 | + /usr/share/common-licenses/LGPL-2.1. |
672 | + |
673 | +File: po/fi.po |
674 | +Copyright: |
675 | + Copyright (C) 2009 Timo Jyrinki <timo.jyrinki@iki.fi> |
676 | + Copyright (C) 2009 Ville-Pekka Vainio <vpivaini@cs.helsinki.fi> |
677 | +License: LGPL-2.1+ |
678 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
679 | + /usr/share/common-licenses/LGPL-2.1. |
680 | + |
681 | +File: po/fr.po |
682 | +Copyright: |
683 | + Copyright (C) 2008 Robert-Andre Mauchin <zebob.m@pengzone.org> |
684 | + Copyright (C) 2008 Michael Ughetto <telimektar esraonline com> |
685 | + Copyright (C) 2008 Pablo Martin-Gomez <pablo.martin-gomez@laposte.net> |
686 | + Copyright (C) 2009 Corentin Perard <corentin.perard@gmail.com> |
687 | +License: LGPL-2.1+ |
688 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
689 | + /usr/share/common-licenses/LGPL-2.1. |
690 | + |
691 | +File: po/gu.po |
692 | +Copyright: |
693 | + Copyright (C) 2009 Sweta Kothari <swkothar@redhat.com> |
694 | +License: LGPL-2.1+ |
695 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
696 | + /usr/share/common-licenses/LGPL-2.1. |
697 | + |
698 | +File: po/hi.po |
699 | +Copyright: |
700 | + Copyright (C) 2009 Rajesh Ranjan <rajesh672@gmail.com> |
701 | +License: LGPL-2.1+ |
702 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
703 | + /usr/share/common-licenses/LGPL-2.1. |
704 | + |
705 | +File: po/it.po |
706 | +Copyright: |
707 | + Copyright (C) 2008,2009 Luca Ferretti <elle.uca@libero.it> |
708 | + Copyright (C) 2009 Milo Casagrande <milo@ubuntu.com> |
709 | + Copyright (C) 2009 ario_santagiuliana <mario at marionline.it> |
710 | + Copyright (C) 2009 Milo Casagrande <milo@ubuntu.com> |
711 | + |
712 | +License: LGPL-2.1+ |
713 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
714 | + /usr/share/common-licenses/LGPL-2.1. |
715 | + |
716 | +File: po/ja.po |
717 | +Copyright: |
718 | + Copyright (C) 2009 Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp> |
719 | +License: LGPL-2.1+ |
720 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
721 | + /usr/share/common-licenses/LGPL-2.1. |
722 | + |
723 | +File: po/kn.po |
724 | +Copyright: |
725 | + Copyright (C) 2009 Shankar Prasad <svenkate@redhat.com> |
726 | +License: LGPL-2.1+ |
727 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
728 | + /usr/share/common-licenses/LGPL-2.1. |
729 | + |
730 | +File: po/mr.po |
731 | +Copyright: |
732 | + Copyright (C) 2009 Sandeep Shedmake <sandeep.shedmake@gmail.com> |
733 | + Copyright (C) 2009 Sandeep Shedmake <sshedmak@redhat.com> |
734 | +License: LGPL-2.1+ |
735 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
736 | + /usr/share/common-licenses/LGPL-2.1. |
737 | + |
738 | +File: po/nl.po |
739 | +Copyright: |
740 | + Copyright (C) 2009 Geert Warrink <geert.warrink@onsnet.nu> |
741 | + Copyright (C) 2009 Reinout van Schouwen <reinout@gmail.com> |
742 | +License: LGPL-2.1+ |
743 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
744 | + /usr/share/common-licenses/LGPL-2.1. |
745 | + |
746 | +File: po/or.po |
747 | +Copyright: |
748 | + Copyright (C) 2009 Manoj Kumar Giri <mgiri@redhat.com> |
749 | +License: LGPL-2.1+ |
750 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
751 | + /usr/share/common-licenses/LGPL-2.1. |
752 | + |
753 | +File: po/pa.po |
754 | +Copyright: |
755 | + Copyright (C) 2009 Amanpreet Singh Alam <aalam@users.sf.net> |
756 | + Copyright (C) 2009 Jaswinder Singh <jsingh@redhat.com> |
757 | + Copyright (C) 2009 A S Alam <aalam@users.sf.net> |
758 | +License: LGPL-2.1+ |
759 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
760 | + /usr/share/common-licenses/LGPL-2.1. |
761 | + |
762 | +File: po/pl.po |
763 | +Copyright: |
764 | + Copyright (C) 2008 Piotr Drag <piotrdrag@gmail.com> |
765 | +License: LGPL-2.1+ |
766 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
767 | + /usr/share/common-licenses/LGPL-2.1. |
768 | + |
769 | +File: po/pt_BR.po |
770 | +Copyright: |
771 | + Copyright (C) 2008 Fabian Affolter <fab@fedoraproject.org> |
772 | +License: LGPL-2.1+ |
773 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
774 | + /usr/share/common-licenses/LGPL-2.1. |
775 | + |
776 | +File: po/sr.po, po/sr@latin.po |
777 | +Copyright: |
778 | + Copyright (C) 2009 Igor Miletic (Игор Милетић) <grejigl-gnomeprevod@yahoo.ca>, 2009. |
779 | + Copyright (C) 2009 Miloš Komarčević <kmilos@gmail.com>, 2009. |
780 | +License: LGPL-2.1+ |
781 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
782 | + /usr/share/common-licenses/LGPL-2.1. |
783 | + |
784 | +File: po/sv.po |
785 | +Copyright: |
786 | + Copyright (C) 2008 Daniel Nylander <po@danielnylander.se> |
787 | +License: LGPL-2.1+ |
788 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
789 | + /usr/share/common-licenses/LGPL-2.1. |
790 | + |
791 | +File: po/ta.po |
792 | +Copyright: |
793 | + Copyright (C) 2009 I. Felix <ifelix@redhat.com> |
794 | +License: LGPL-2.1+ |
795 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
796 | + /usr/share/common-licenses/LGPL-2.1. |
797 | + |
798 | +File: po/te.po |
799 | +Copyright: |
800 | + Copyright (C) 2009 Krishna Babu K <kkrothap@redhat.com> |
801 | +License: LGPL-2.1+ |
802 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
803 | + /usr/share/common-licenses/LGPL-2.1. |
804 | + |
805 | +File: po/uk.po |
806 | +Copyright: |
807 | + Copyright (C) 2009 Yuri Chornoivan <yurchor@ukr.net> |
808 | +License: LGPL-2.1+ |
809 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
810 | + /usr/share/common-licenses/LGPL-2.1. |
811 | + |
812 | +File: po/zh_CN.po |
813 | +Copyright: |
814 | + Copyright (C) 2008 闫丰刚 (sainry)<sainry@gmail.com> |
815 | +License: LGPL-2.1+ |
816 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
817 | + /usr/share/common-licenses/LGPL-2.1. |
818 | + |
819 | +Files: debian/* |
820 | +Copyright: |
821 | + Copyright 2006-2009 Sjoerd Simons <sjoerd@debian.org> |
822 | + Copyright 2006-2008 CJ van den Berg <cj@vdbonline.com> |
823 | +License: GPL-2+ |
824 | + On Debian systems, the complete text of the GPL-2 can be found in |
825 | + /usr/share/common-licenses/GPL-2. |
826 | + |
827 | +Files: src/pulsecore/cpu-*, src/pulsecore/remap*, |
828 | + src/pulsecore/svolume_{arm,mmx,sse}.c |
829 | +Copyright: |
830 | + Copyright 2004-2006 Lennart Poettering |
831 | + Copyright 2009 Wim Taymans <wim.taymans@collabora.co.uk> |
832 | +License: LGPL-2.1+ |
833 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
834 | + /usr/share/common-licenses/LGPL-2.1. |
835 | + |
836 | + |
837 | +Files: src/pulsecore/sconv_sse.c |
838 | +Copyright: |
839 | + Copyright 2004-2006 Lennart Poettering |
840 | + Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB |
841 | +License: LGPL-2.1+ |
842 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
843 | + /usr/share/common-licenses/LGPL-2.1. |
844 | + |
845 | + |
846 | +Files: src/pulsecore/usergroup.* |
847 | +Copyright: |
848 | + Copyright 2009 Ted Percival |
849 | +License: LGPL-2.1+ |
850 | + On Debian systems, the complete text of the LGPL-2.1 can be found in |
851 | + /usr/share/common-licenses/LGPL-2.1. |
852 | diff --git a/run-tests.sh b/run-tests.sh |
853 | new file mode 100755 |
854 | index 0000000..b4ce91b |
855 | --- /dev/null |
856 | +++ b/run-tests.sh |
857 | @@ -0,0 +1,84 @@ |
858 | +#!/bin/sh |
859 | +# |
860 | +# Copyright (C) 2016 Canonical Ltd |
861 | +# |
862 | +# This program is free software: you can redistribute it and/or modify |
863 | +# it under the terms of the GNU General Public License version 3 as |
864 | +# published by the Free Software Foundation. |
865 | +# |
866 | +# This program is distributed in the hope that it will be useful, |
867 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
868 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
869 | +# GNU General Public License for more details. |
870 | +# |
871 | +# You should have received a copy of the GNU General Public License |
872 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
873 | + |
874 | +set -ex |
875 | + |
876 | +image_name=ubuntu-core-16.img |
877 | +channel=stable |
878 | +spread_opts= |
879 | +force_new_image=0 |
880 | +test_from_channel=0 |
881 | + |
882 | +show_help() { |
883 | + echo "Usage: run-tests.sh [OPTIONS]" |
884 | + echo |
885 | + echo "optional arguments:" |
886 | + echo " --help Show this help message and exit" |
887 | + echo " --channel=<channel> Select another channel to build the base image from (default: $channel)" |
888 | + echo " --debug Enable verbose debugging output" |
889 | + echo " --test-from-channel Pull snap from the specified channel instead of building it from source" |
890 | + echo " --force-new-image Force generating a new image used for testing" |
891 | +} |
892 | + |
893 | +while [ -n "$1" ]; do |
894 | + case "$1" in |
895 | + --help) |
896 | + show_help |
897 | + exit |
898 | + ;; |
899 | + --channel=*) |
900 | + channel=${1#*=} |
901 | + shift |
902 | + ;; |
903 | + --test-from-channel) |
904 | + test_from_channel=1 |
905 | + shift |
906 | + ;; |
907 | + --debug) |
908 | + spread_opts="$spread_opts -vv -debug" |
909 | + shift |
910 | + ;; |
911 | + --force-new-image) |
912 | + force_new_image=1 |
913 | + shift |
914 | + ;; |
915 | + *) |
916 | + echo "Unknown command: $1" |
917 | + exit 1 |
918 | + ;; |
919 | + esac |
920 | +done |
921 | + |
922 | +SPREAD_QEMU_PATH="$HOME/.spread/qemu" |
923 | +if [ `which spread` = /snap/bin/spread ] ; then |
924 | + current_version=`readlink /snap/spread/current` |
925 | + SPREAD_QEMU_PATH="$HOME/snap/spread/$current_version/.spread/qemu/" |
926 | +fi |
927 | + |
928 | +# Make sure we have a base image we use for testing |
929 | +if [ ! -e $SPREAD_QEMU_PATH/$image_name ] || [ $force_new_image -eq 1 ] ; then |
930 | + echo "INFO: Creating new qemu test image ..." |
931 | + (cd tests/image ; sudo ./create-image.sh $channel) |
932 | + mkdir -p $SPREAD_QEMU_PATH |
933 | + mv tests/image/ubuntu-core-16.img $SPREAD_QEMU_PATH/$image_name |
934 | +fi |
935 | + |
936 | +# We currently only run spread tests but we could do other things |
937 | +# here as well like running our snap-lintian tool etc. |
938 | +if [ $test_from_channel -eq 1 ] ; then |
939 | + export SNAP_CHANNEL=$channel |
940 | +fi |
941 | +spread $spread_opts |
942 | diff --git a/snapcraft.yaml b/snapcraft.yaml |
943 | index c121988..ab7d560 100644 |
944 | --- a/snapcraft.yaml |
945 | +++ b/snapcraft.yaml |
946 | @@ -1,13 +1,27 @@ |
947 | +<<<<<<< snapcraft.yaml |
948 | name: se-test-tools |
949 | summary: A set of tools used for testing |
950 | description: | |
951 | This snap contains a few tools used for automated testing in the |
952 | System Enablement team of Canonical. |
953 | version: 2 |
954 | +======= |
955 | +name: pulseaudio |
956 | +version: 8.0-3 |
957 | +summary: PulseAudio sound server |
958 | +description: | |
959 | + PulseAudio, previously known as Polypaudio, is a sound server for POSIX and |
960 | + WIN32 systems. It is a drop in replacement for the ESD sound server with |
961 | + much better latency, mixing/re-sampling quality and overall architecture. |
962 | + |
963 | + Please find the source code for this snap at: |
964 | + https://code.launchpad.net/~snappy-hwe-team/snappy-hwe-snaps/+git/pulseaudio |
965 | +>>>>>>> snapcraft.yaml |
966 | grade: stable |
967 | confinement: strict |
968 | |
969 | apps: |
970 | +<<<<<<< snapcraft.yaml |
971 | radvd: |
972 | command: usr/sbin/radvd |
973 | plugs: |
974 | @@ -41,3 +55,141 @@ parts: |
975 | - isc-dhcp-server |
976 | - ethtool |
977 | - inotify-tools |
978 | +======= |
979 | + pulseaudio: |
980 | + command: bin/pulseaudio |
981 | + daemon: simple |
982 | + slots: [service] |
983 | + pactl: |
984 | + command: bin/pactl |
985 | + plugs: [client, network] |
986 | + paplay: |
987 | + command: bin/paplay |
988 | + plugs: [client, home, network] |
989 | + parec: |
990 | + command: bin/parec |
991 | + plugs: [client, home, network] |
992 | + config: |
993 | + command: bin/config |
994 | + |
995 | +slots: |
996 | + service: |
997 | + interface: pulseaudio |
998 | + |
999 | +plugs: |
1000 | + client: |
1001 | + interface: pulseaudio |
1002 | + |
1003 | +parts: |
1004 | + pulseaudio-common: |
1005 | + plugin: copy |
1006 | + files: |
1007 | + bin/pulseaudio: bin/pulseaudio |
1008 | + bin/pactl: bin/pactl |
1009 | + bin/paplay: bin/paplay |
1010 | + bin/parec: bin/parec |
1011 | + bin/config: bin/config |
1012 | + data/copyright: usr/share/doc/pulseaudio/copyright |
1013 | + |
1014 | + alsa-lib: |
1015 | + plugin: autotools |
1016 | + |
1017 | + source: https://git.launchpad.net/~snappy-hwe-team/snappy-hwe-snaps/+git/pulseaudio |
1018 | + source-type: git |
1019 | + source-branch: alsa-lib/xenial/1.1.0 |
1020 | + |
1021 | + configflags: |
1022 | + - --prefix=/usr |
1023 | + - --sysconfdir=/etc |
1024 | + - --libexec=/usr/lib |
1025 | + - --libdir=/usr/lib |
1026 | + - --localstatedir=/var |
1027 | + - --with-plugindir=/usr/lib/alsa-lib |
1028 | + - --disable-silent-rules |
1029 | + - --disable-static |
1030 | + - --disable-python |
1031 | + |
1032 | + filesets: |
1033 | + libasound2: |
1034 | + - usr/lib/libasound.so* |
1035 | + - usr/lib/alsa-lib/* |
1036 | + - usr/share/alsa/* |
1037 | + |
1038 | + snap: |
1039 | + - $libasound2 |
1040 | + |
1041 | + |
1042 | + pulseaudio: |
1043 | + after: |
1044 | + - alsa-lib |
1045 | + |
1046 | + plugin: autotools |
1047 | + |
1048 | + source: https://git.launchpad.net/~snappy-hwe-team/snappy-hwe-snaps/+git/pulseaudio |
1049 | + source-type: git |
1050 | + source-branch: pulseaudio/8.0 |
1051 | + |
1052 | + build-packages: |
1053 | + - intltool |
1054 | + - libasound2-dev |
1055 | + - libdbus-1-dev |
1056 | + - libjson-c-dev |
1057 | + - libglib2.0-dev |
1058 | + - libspeexdsp-dev |
1059 | + - libbluetooth-dev |
1060 | + - libwebrtc-audio-processing-dev |
1061 | + - libltdl-dev |
1062 | + - libsndfile1-dev |
1063 | + - libx11-xcb-dev |
1064 | + - libx11-dev |
1065 | + - libtdb-dev |
1066 | + - libudev-dev |
1067 | + - libasyncns-dev |
1068 | + - libxcb1-dev |
1069 | + |
1070 | + configflags: |
1071 | + - --prefix=/usr |
1072 | + - --sysconfdir=/etc |
1073 | + - --libexec=/usr/lib |
1074 | + - --libdir=/usr/lib |
1075 | + - --localstatedir=/var |
1076 | + - --enable-udev |
1077 | + - --disable-rpath |
1078 | + - --disable-orc |
1079 | + - --disable-gconf |
1080 | + - --disable-bluez4 |
1081 | + - --disable-bluez5 |
1082 | + - --disable-esound |
1083 | + - --disable-adrian-aec |
1084 | + - --disable-gtk3 |
1085 | + - --disable-hal-compat |
1086 | + - --disable-systemd-login |
1087 | + - --without-caps |
1088 | + - --disable-webrtc-aec |
1089 | + - --disable-dbus |
1090 | + - --disable-oss-output |
1091 | + - --disable-oss-wrapper |
1092 | + - --disable-jack |
1093 | + - --disable-x11 |
1094 | + - --with-system-user=root |
1095 | + - --with-system-group=root |
1096 | + |
1097 | + filesets: |
1098 | + pauseaudiofiles: |
1099 | + - etc/* |
1100 | + - lib/* |
1101 | + - usr/bin/pacat |
1102 | + - usr/bin/pactl |
1103 | + - usr/bin/paplay |
1104 | + - usr/bin/parec |
1105 | + - usr/bin/pulseaudio |
1106 | + - usr/lib/libpulse-mainloop-glib.so* |
1107 | + - usr/lib/libpulse-simple.so* |
1108 | + - usr/lib/libpulse.so* |
1109 | + - usr/lib/pulse-8.0/* |
1110 | + - usr/lib/pulseaudio/*.so |
1111 | + - usr/share/pulseaudio/* |
1112 | + |
1113 | + snap: |
1114 | + - $pauseaudiofiles |
1115 | +>>>>>>> snapcraft.yaml |
1116 | diff --git a/spread.yaml b/spread.yaml |
1117 | new file mode 100644 |
1118 | index 0000000..0c615ba |
1119 | --- /dev/null |
1120 | +++ b/spread.yaml |
1121 | @@ -0,0 +1,50 @@ |
1122 | +# |
1123 | +# Copyright (C) 2016 Canonical Ltd |
1124 | +# |
1125 | +# This program is free software: you can redistribute it and/or modify |
1126 | +# it under the terms of the GNU General Public License version 3 as |
1127 | +# published by the Free Software Foundation. |
1128 | +# |
1129 | +# This program is distributed in the hope that it will be useful, |
1130 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
1131 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1132 | +# GNU General Public License for more details. |
1133 | +# |
1134 | +# You should have received a copy of the GNU General Public License |
1135 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
1136 | + |
1137 | +project: pulseaudio |
1138 | + |
1139 | +environment: |
1140 | + PROJECT_PATH: /home/pulseaudio |
1141 | + TESTSLIB: $PROJECT_PATH/tests/lib |
1142 | + SNAP_NAME: pulseaudio |
1143 | + # Allow the host to pass the channel to use for the test run |
1144 | + SNAP_CHANNEL: $(HOST:echo $SNAP_CHANNEL) |
1145 | + |
1146 | +backends: |
1147 | + qemu: |
1148 | + systems: |
1149 | + - ubuntu-core-16: |
1150 | + username: test |
1151 | + password: test |
1152 | + |
1153 | +# Put this somewhere where we have read-write access |
1154 | +path: /home/pulseaudio |
1155 | + |
1156 | +exclude: |
1157 | + - .git |
1158 | + |
1159 | +prepare: | |
1160 | + . $TESTSLIB/prepare-all.sh |
1161 | + |
1162 | +suites: |
1163 | + tests/main/: |
1164 | + summary: Full-system tests for PulseAudio |
1165 | + systems: |
1166 | + - ubuntu-core-16 |
1167 | + prepare: | |
1168 | + . $TESTSLIB/prepare.sh |
1169 | + restore-each: | |
1170 | + . $TESTSLIB/restore-each.sh |
1171 | + |
1172 | diff --git a/tests/image/README.md b/tests/image/README.md |
1173 | new file mode 100644 |
1174 | index 0000000..b75b66e |
1175 | --- /dev/null |
1176 | +++ b/tests/image/README.md |
1177 | @@ -0,0 +1,7 @@ |
1178 | +# Generate user password |
1179 | + |
1180 | +You can generate the password for the system user assertion via |
1181 | + |
1182 | +``` |
1183 | + $ python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))' |
1184 | +``` |
1185 | diff --git a/tests/image/create-image.sh b/tests/image/create-image.sh |
1186 | new file mode 100755 |
1187 | index 0000000..3aa1d13 |
1188 | --- /dev/null |
1189 | +++ b/tests/image/create-image.sh |
1190 | @@ -0,0 +1,157 @@ |
1191 | +#!/bin/bash |
1192 | +# |
1193 | +# Copyright (C) 2016 Canonical Ltd |
1194 | +# |
1195 | +# This program is free software: you can redistribute it and/or modify |
1196 | +# it under the terms of the GNU General Public License version 3 as |
1197 | +# published by the Free Software Foundation. |
1198 | +# |
1199 | +# This program is distributed in the hope that it will be useful, |
1200 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
1201 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1202 | +# GNU General Public License for more details. |
1203 | +# |
1204 | +# You should have received a copy of the GNU General Public License |
1205 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
1206 | + |
1207 | +set -e |
1208 | + |
1209 | +if [ $(id -u) -ne 0 ] ; then |
1210 | + echo "ERROR: needs to be executed as root" |
1211 | + exit 1 |
1212 | +fi |
1213 | + |
1214 | +channel=stable |
1215 | +if [ ! -z "$1" ] ; then |
1216 | + channel=$1 |
1217 | +fi |
1218 | + |
1219 | +snap= |
1220 | +if [ ! -z "$2" ] ; then |
1221 | + snap=$2 |
1222 | +fi |
1223 | + |
1224 | +model=pc |
1225 | +arch=amd64 |
1226 | +image_name=ubuntu-core-16.img |
1227 | +ubuntu_image_extra_args= |
1228 | + |
1229 | +if [ ! -z "$snap" ] ; then |
1230 | + ubuntu_image_extra_args="--extra-snaps $snap" |
1231 | +fi |
1232 | + |
1233 | +ubuntu-image \ |
1234 | + --channel $channel \ |
1235 | + -o $image_name \ |
1236 | + --image-size 4G \ |
1237 | + $ubuntu_image_extra_args \ |
1238 | + $model.model |
1239 | + |
1240 | +kpartx -a $image_name |
1241 | +sleep 0.5 |
1242 | + |
1243 | +loop_path=`findfs LABEL=writable` |
1244 | +tmp_mount=`mktemp -d` |
1245 | + |
1246 | +mount $loop_path $tmp_mount |
1247 | + |
1248 | +# Migrate all systemd units from core snap into the writable area. This |
1249 | +# would be normally done on firstboot by the initramfs but we can't rely |
1250 | +# on that because we are adding another file in there and that will |
1251 | +# prevent the initramfs from transitioning any files. |
1252 | +core_snap=$(find $tmp_mount/system-data/var/lib/snapd/snaps -name "core_*.snap") |
1253 | +tmp_core=`mktemp -d` |
1254 | +mount $core_snap $tmp_core |
1255 | +mkdir -p $tmp_mount/system-data/etc/systemd |
1256 | +cp -rav $tmp_core/etc/systemd/* \ |
1257 | + $tmp_mount/system-data/etc/systemd/ |
1258 | +umount $tmp_core |
1259 | +rm -rf $tmp_core |
1260 | + |
1261 | +# system-user assertion which gives us our test:test user we use to |
1262 | +# log into the system |
1263 | +mkdir -p $tmp_mount/system-data/var/lib/snapd/seed/assertions |
1264 | +cp test-user.assertion $tmp_mount/system-data/var/lib/snapd/seed/assertions |
1265 | + |
1266 | +# Disable console-conf for the first boot |
1267 | +mkdir -p $tmp_mount/system-data/var/lib/console-conf/ |
1268 | +touch $tmp_mount/system-data/var/lib/console-conf/complete |
1269 | + |
1270 | +# Create systemd service which is running on firstboot and sets up |
1271 | +# various things for us. |
1272 | +mkdir -p $tmp_mount/system-data/etc/systemd/system |
1273 | +cat << 'EOF' > $tmp_mount/system-data/etc/systemd/system/devmode-firstboot.service |
1274 | +[Unit] |
1275 | +Description=Run devmode firstboot setup |
1276 | +After=snapd.service snapd.socket |
1277 | + |
1278 | +[Service] |
1279 | +Type=oneshot |
1280 | +ExecStart=/writable/system-data/var/lib/devmode-firstboot/run.sh |
1281 | +RemainAfterExit=yes |
1282 | +TimeoutSec=3min |
1283 | +EOF |
1284 | + |
1285 | +mkdir -p $tmp_mount/system-data/etc/systemd/system/multi-user.target.wants |
1286 | +ln -sf /etc/systemd/system/devmode-firstboot.service \ |
1287 | + $tmp_mount/system-data/etc/systemd/system/multi-user.target.wants/devmode-firstboot.service |
1288 | + |
1289 | +mkdir $tmp_mount/system-data/var/lib/devmode-firstboot |
1290 | +cat << EOF > $tmp_mount/system-data/var/lib/devmode-firstboot/00-snapd-config.yaml |
1291 | +network: |
1292 | + version: 2 |
1293 | + ethernets: |
1294 | + eth0: |
1295 | + dhcp4: true |
1296 | +EOF |
1297 | + |
1298 | +cat << 'EOF' > $tmp_mount/system-data/var/lib/devmode-firstboot/run.sh |
1299 | +#!/bin/bash |
1300 | + |
1301 | +set -e |
1302 | + |
1303 | +# Don't start again if we're already done |
1304 | +if [ -e /writable/system-data/var/lib/devmode-firstboot/complete ] ; then |
1305 | + exit 0 |
1306 | +fi |
1307 | + |
1308 | +echo "Start devmode-firstboot $(date -Iseconds --utc)" |
1309 | + |
1310 | +if [ "$(snap managed)" = "true" ]; then |
1311 | + echo "System already managed, exiting" |
1312 | + exit 0 |
1313 | +fi |
1314 | + |
1315 | +# no changes at all |
1316 | +while ! snap changes ; do |
1317 | + echo "No changes yet, waiting" |
1318 | + sleep 1 |
1319 | +done |
1320 | + |
1321 | +while snap changes | grep -qE '(Do|Doing) .*Initialize system state' ; do |
1322 | + echo "Initialize system state is in progress, waiting" |
1323 | + sleep 1 |
1324 | +done |
1325 | + |
1326 | +if [ -n "$(snap known system-user)" ]; then |
1327 | + echo "Trying to create known user" |
1328 | + snap create-user --known --sudoer |
1329 | +fi |
1330 | + |
1331 | +cp /writable/system-data/var/lib/devmode-firstboot/00-snapd-config.yaml /writable/system-data/etc/netplan |
1332 | + |
1333 | +# Enable console-conf again |
1334 | +rm /writable/system-data/var/lib/console-conf/complete |
1335 | + |
1336 | +# Mark us done |
1337 | +touch /writable/system-data/var/lib/devmode-firstboot/complete |
1338 | + |
1339 | +# Reboot the system as its now prepared for the user |
1340 | +reboot |
1341 | +EOF |
1342 | + |
1343 | +chmod +x $tmp_mount/system-data/var/lib/devmode-firstboot/run.sh |
1344 | + |
1345 | +umount $tmp_mount |
1346 | +kpartx -d $image_name |
1347 | +rm -rf $tmp_mount |
1348 | diff --git a/tests/image/pc-model.json b/tests/image/pc-model.json |
1349 | new file mode 100644 |
1350 | index 0000000..2eb1411 |
1351 | --- /dev/null |
1352 | +++ b/tests/image/pc-model.json |
1353 | @@ -0,0 +1,11 @@ |
1354 | +{ |
1355 | + "type": "model", |
1356 | + "authority-id": "4BKZlf4WMNBKgQfij0rftmp5BzDdVhlf", |
1357 | + "brand-id": "4BKZlf4WMNBKgQfij0rftmp5BzDdVhlf", |
1358 | + "series": "16", |
1359 | + "model": "pc", |
1360 | + "architecture": "amd64", |
1361 | + "gadget": "pc", |
1362 | + "kernel": "pc-kernel", |
1363 | + "timestamp": "2016-09-09T08:27:36+00:00" |
1364 | +} |
1365 | diff --git a/tests/image/pc.model b/tests/image/pc.model |
1366 | new file mode 100644 |
1367 | index 0000000..345b7e4 |
1368 | --- /dev/null |
1369 | +++ b/tests/image/pc.model |
1370 | @@ -0,0 +1,21 @@ |
1371 | +type: model |
1372 | +authority-id: 4BKZlf4WMNBKgQfij0rftmp5BzDdVhlf |
1373 | +series: 16 |
1374 | +brand-id: 4BKZlf4WMNBKgQfij0rftmp5BzDdVhlf |
1375 | +model: pc |
1376 | +architecture: amd64 |
1377 | +gadget: pc |
1378 | +kernel: pc-kernel |
1379 | +timestamp: 2016-09-09T08:27:36+00:00 |
1380 | +sign-key-sha3-384: a4qX7md6GQGNcZc_cmWPBStTq4RNCnGTzF-4usF5wFylQ-xZQej-SD6prx8Yl89O |
1381 | + |
1382 | +AcLBXAQAAQoABgUCWBBNTwAKCRAVoE002xqmOPH/EACWLf1UeZgICjNbzLI5bO/84LExS8iUjarG |
1383 | +S7DRn8Ln5zu44pxz7UXJNjULgnU8yuKVPVWg0ij7DRvaj8tGxOMMAls1fjSRtEYR8oJFsI3jXDGw |
1384 | +cLjvJG/crUxV8DgdZFlF02Kb5VtmNDXs1OE3zpPeniG19JYHaf2hDz4SRmWZe4c2MFrAt2UwI/VC |
1385 | +o/209Fl3qA8p8x5EYOBycgHooHm3924NTF9mXbKSfLRgGS7YzmN4FXFyiGOTY6CRsp37XnkxGcA1 |
1386 | ++lyZz1X97qT/fOGVUFqHDqUZmuCs5sC3+DNonytTgKt5+7S+V+Ai45HEayD5f4gS9uscnTMTwEEJ |
1387 | +VgSZRU0My+iJwFlXHaGWQe9eC37YCZ3ahBxc2SpkFffXjYhEMtTtr1vDIYCAhbc2k8aa3hPE2GUg |
1388 | +3pv8zs1AuZzSVX+Rp4ysMBqU23UUVP6Bmvr7ZD3E8aEUxE6O/BEA10Km5oZPqpmBfcEVO8a0yZjn |
1389 | +YQxn4XzY1Nwq1d0sJIV7FEDsq9dXH9QCa4qsCH3KG3jHv32GapvLf8mpr6HSH+JmPM5kNeVugLVy |
1390 | +/RUAFNu+Y4hqhpRNC8fc+UDkVBXsLDqHb5gfXnhbFIH8LvpVFR20SSkg9/Km5xC+7wcey0h8SD6/ |
1391 | +Eh70OPLxDkzitEn/1L/0V987dlJnhS4WpqrYfbHYwQ== |
1392 | diff --git a/tests/image/test-user-assertion.json b/tests/image/test-user-assertion.json |
1393 | new file mode 100644 |
1394 | index 0000000..81f6beb |
1395 | --- /dev/null |
1396 | +++ b/tests/image/test-user-assertion.json |
1397 | @@ -0,0 +1,13 @@ |
1398 | +{ |
1399 | + "type": "system-user", |
1400 | + "authority-id": "4BKZlf4WMNBKgQfij0rftmp5BzDdVhlf", |
1401 | + "brand-id": "4BKZlf4WMNBKgQfij0rftmp5BzDdVhlf", |
1402 | + "series": ["16"], |
1403 | + "models": ["pc"], |
1404 | + "name": "Default Test User", |
1405 | + "username": "test", |
1406 | + "email": "test@localhost", |
1407 | + "password": "$6$OCvKy4w/Ppxp7IvC$WPzWiIW.4y18h9htjbOuxLZ.sjQ5M2hoSiEu3FpMU0PMdHQuQdBOqvk8p6DMdS/R/nU/rXidClD23CbSkSgp30", |
1408 | + "since": "2016-10-24T07:12:10+00:00", |
1409 | + "until": "2017-10-24T07:12:10+00:00" |
1410 | +} |
1411 | diff --git a/tests/image/test-user.assertion b/tests/image/test-user.assertion |
1412 | new file mode 100644 |
1413 | index 0000000..7ebb667 |
1414 | --- /dev/null |
1415 | +++ b/tests/image/test-user.assertion |
1416 | @@ -0,0 +1,25 @@ |
1417 | +type: system-user |
1418 | +authority-id: 4BKZlf4WMNBKgQfij0rftmp5BzDdVhlf |
1419 | +brand-id: 4BKZlf4WMNBKgQfij0rftmp5BzDdVhlf |
1420 | +email: test@localhost |
1421 | +models: |
1422 | + - pc |
1423 | +name: Default Test User |
1424 | +password: $6$OCvKy4w/Ppxp7IvC$WPzWiIW.4y18h9htjbOuxLZ.sjQ5M2hoSiEu3FpMU0PMdHQuQdBOqvk8p6DMdS/R/nU/rXidClD23CbSkSgp30 |
1425 | +series: |
1426 | + - 16 |
1427 | +since: 2016-10-24T07:12:10+00:00 |
1428 | +until: 2017-10-24T07:12:10+00:00 |
1429 | +username: test |
1430 | +sign-key-sha3-384: a4qX7md6GQGNcZc_cmWPBStTq4RNCnGTzF-4usF5wFylQ-xZQej-SD6prx8Yl89O |
1431 | + |
1432 | +AcLBXAQAAQoABgUCWBBOJAAKCRAVoE002xqmOKaRD/0cEKWb2nbwhk+BTgOrYZHrwzjbIWTZznDh |
1433 | +xCD6JWF/yr9br1vEmRz2zCNPPWZgFH9HaJ+mT/lktWIs7VVMIdwMDWYOR8P9rdWM/Jx6iyB3z0OI |
1434 | +YO31zaU4XLyolv/YSj/nFXMMD+jIeE4l8j4AtCSJwd7ZS9Jz8F/RfrD8EpG0JU1F55lq8MC0mjZ4 |
1435 | +ul5ws8k9UiP8nA5IAG30NvvReiUGYqtdkO43eQmy88WABL95MbFsbfEk4/VduG0Gt3y/T8vDDcF6 |
1436 | +NJEm8L+O9IXnPBAje0Ve0NX3YtOE3CDTkYRKR7xFFJq2cJVCSvf9CsorREg4KyfagIdMKDSa5Tiq |
1437 | +FzoAJTfI0ltq5cAnLImtxFKulJ+AnGUNMLrKFr1H0FGtqTZBfs/PcIxy0qY0YDXSF4/9F2PUBdQS |
1438 | +tSmN6pT9t1FCGy2Rf5n3QV4e0R2JzS6Kx+vdbPMYqhssQosLU5GwlWj8UbevtphAGf8u8nLBDYWs |
1439 | +MNIPi0IrPmzIewZBD05A6a8T+oHZ9dIg5SAnJ4gmz0sCzNDKarvYqLpcU1rZzu78/UypbHXDvBAt |
1440 | +gnxYpD6WHR2aHSeyx3WvOp130jFco2/55M0RTEm50isO1uv2DqTn9ULkBdCrG/zOqEmZgY18ds3P |
1441 | +yTaAbaIAqUe7scpAHY0a31tfnXq8cRyEX03e9g2Mrg== |
1442 | diff --git a/tests/lib/prepare-all.sh b/tests/lib/prepare-all.sh |
1443 | new file mode 100644 |
1444 | index 0000000..e53efb4 |
1445 | --- /dev/null |
1446 | +++ b/tests/lib/prepare-all.sh |
1447 | @@ -0,0 +1,35 @@ |
1448 | +#!/bin/bash |
1449 | + |
1450 | +# We don't have to build a snap when we should use one from a |
1451 | +# channel |
1452 | +if [ -n "$SNAP_CHANNEL" ] ; then |
1453 | + exit 0 |
1454 | +fi |
1455 | + |
1456 | +# Setup classic snap and build the pulseaudio snap in there |
1457 | +snap install --devmode --beta classic |
1458 | +cat <<-EOF > /home/test/build-snap.sh |
1459 | +#!/bin/sh |
1460 | +set -ex |
1461 | + |
1462 | +# FIXME: Enable propose for now until problems with conflicting systemd |
1463 | +# packages between the Ubuntu Core image ppa and the archive are fixed. |
1464 | +echo "deb http://archive.ubuntu.com/ubuntu/ xenial-proposed restricted main universe" > /etc/apt/sources.list.d/ubuntu-proposed.list |
1465 | + |
1466 | +# Ensure we have the latest updates installed as the core snap |
1467 | +# may be a bit out of date. |
1468 | +apt update |
1469 | +apt upgrade --yes --force-yes |
1470 | + |
1471 | +apt install -y --force-yes snapcraft |
1472 | +cd /home/pulseaudio |
1473 | +snapcraft clean |
1474 | +snapcraft |
1475 | +EOF |
1476 | + |
1477 | +chmod +x /home/test/build-snap.sh |
1478 | +sudo classic /home/test/build-snap.sh |
1479 | +snap remove classic |
1480 | + |
1481 | +# Make sure we have a snap build |
1482 | +test -e /home/pulseaudio/pulseaudio_*_amd64.snap |
1483 | diff --git a/tests/lib/prepare-each.sh b/tests/lib/prepare-each.sh |
1484 | new file mode 100644 |
1485 | index 0000000..de6816d |
1486 | --- /dev/null |
1487 | +++ b/tests/lib/prepare-each.sh |
1488 | @@ -0,0 +1,6 @@ |
1489 | +SNAP_INSTALL_OPTS= |
1490 | +if [ -n "$SNAP_CHANNEL" ] ; then |
1491 | + SNAP_INSTALL_OPTS="--$SNAP_CHANNEL" |
1492 | +fi |
1493 | + |
1494 | +snap install $SNAP_INSTALL_OPTS $SNAP_NAME |
1495 | diff --git a/tests/lib/prepare.sh b/tests/lib/prepare.sh |
1496 | new file mode 100644 |
1497 | index 0000000..60a45e9 |
1498 | --- /dev/null |
1499 | +++ b/tests/lib/prepare.sh |
1500 | @@ -0,0 +1,51 @@ |
1501 | +#!/bin/bash |
1502 | + |
1503 | +echo "Wait for firstboot change to be ready" |
1504 | +while ! snap changes | grep -q "Done"; do |
1505 | + snap changes || true |
1506 | + snap change 1 || true |
1507 | + sleep 1 |
1508 | +done |
1509 | + |
1510 | +echo "Ensure fundamental snaps are still present" |
1511 | +. $TESTSLIB/snap-names.sh |
1512 | +for name in $gadget_name $kernel_name $core_name; do |
1513 | + if ! snap list | grep -q $name ; then |
1514 | + echo "Not all fundamental snaps are available, all-snap image not valid" |
1515 | + echo "Currently installed snaps:" |
1516 | + snap list |
1517 | + exit 1 |
1518 | + fi |
1519 | +done |
1520 | + |
1521 | +echo "Kernel has a store revision" |
1522 | +snap list | grep ^${kernel_name} | grep -E " [0-9]+\s+canonical" |
1523 | + |
1524 | +# If we don't install pulseaudio here we get a system |
1525 | +# without any network connectivity after reboot. |
1526 | +if [ -n "$SNAP_CHANNEL" ] ; then |
1527 | + # Don't reinstall if we have it installed already |
1528 | + if ! snap list | grep pulseaudio ; then |
1529 | + snap install --$SNAP_CHANNEL pulseaudio |
1530 | + fi |
1531 | + echo "USING-CHANNEL" |
1532 | +else |
1533 | + echo "INSTALLING-PULSEAUDIO-SNAP" |
1534 | + # Install prebuilt pulseaudio snap but first install if from |
1535 | + # the store to work around the fact that we are not allowed |
1536 | + # anymore to connect pulseaudio slot to a snap installed with |
1537 | + # --dangerous |
1538 | + snap install --beta pulseaudio |
1539 | + snap install --dangerous /home/pulseaudio/pulseaudio_*_amd64.snap |
1540 | +fi |
1541 | + |
1542 | +# Snapshot of the current snapd state for a later restore |
1543 | +if [ ! -f $SPREAD_PATH/snapd-state.tar.gz ] ; then |
1544 | + systemctl stop snapd.service snapd.socket |
1545 | + tar czf $SPREAD_PATH/snapd-state.tar.gz /var/lib/snapd |
1546 | + systemctl start snapd.socket |
1547 | +fi |
1548 | + |
1549 | +# For debugging dump all snaps and connected slots/plugs |
1550 | +snap list |
1551 | +snap interfaces |
1552 | diff --git a/tests/lib/restore-each.sh b/tests/lib/restore-each.sh |
1553 | new file mode 100644 |
1554 | index 0000000..541ba8c |
1555 | --- /dev/null |
1556 | +++ b/tests/lib/restore-each.sh |
1557 | @@ -0,0 +1,22 @@ |
1558 | +#!/bin/bash |
1559 | + |
1560 | +. $TESTSLIB/snap-names.sh |
1561 | + |
1562 | +# Remove all snaps not being the core, gadget, kernel or snap we're testing |
1563 | +for snap in /snap/*; do |
1564 | + snap="${snap:6}" |
1565 | + case "$snap" in |
1566 | + "bin" | "$gadget_name" | "$kernel_name" | "$core_name" | "$SNAP_NAME") |
1567 | + ;; |
1568 | + *) |
1569 | + snap remove "$snap" |
1570 | + ;; |
1571 | + esac |
1572 | +done |
1573 | + |
1574 | +# Ensure we have the same state for snapd as we had before |
1575 | +systemctl stop snapd.service snapd.socket |
1576 | +rm -rf /var/lib/snapd/* |
1577 | +tar xzf $SPREAD_PATH/snapd-state.tar.gz -C / |
1578 | +rm -rf /root/.snap |
1579 | +systemctl start snapd.service snapd.socket |
1580 | diff --git a/tests/lib/snap-names.sh b/tests/lib/snap-names.sh |
1581 | new file mode 100644 |
1582 | index 0000000..f15b09a |
1583 | --- /dev/null |
1584 | +++ b/tests/lib/snap-names.sh |
1585 | @@ -0,0 +1,7 @@ |
1586 | +#!/bin/bash |
1587 | +gadget_name=$(snap list | sed -n 's/^\(pc\|pi[23]\|dragonboard\) .*/\1/p') |
1588 | +kernel_name=$gadget_name-kernel |
1589 | +core_name=$(snap list | awk '/^(ubuntu-)?core / {print $1; exit}') |
1590 | +if [ "$kernel_name" = "pi3-kernel" ] ; then |
1591 | + kernel_name=pi2-kernel |
1592 | +fi |
1593 | diff --git a/tests/lib/utilities.sh b/tests/lib/utilities.sh |
1594 | new file mode 100644 |
1595 | index 0000000..977d045 |
1596 | --- /dev/null |
1597 | +++ b/tests/lib/utilities.sh |
1598 | @@ -0,0 +1,9 @@ |
1599 | +#!/bin/sh |
1600 | + |
1601 | +wait_for_pulseaudio() { |
1602 | + while ! systemctl status snap.pulseaudio.pulseaudio ; do |
1603 | + sleep 1 |
1604 | + done |
1605 | + sleep 1 |
1606 | +} |
1607 | + |
1608 | diff --git a/tests/main/installation/task.yaml b/tests/main/installation/task.yaml |
1609 | new file mode 100644 |
1610 | index 0000000..2d9fb0d |
1611 | --- /dev/null |
1612 | +++ b/tests/main/installation/task.yaml |
1613 | @@ -0,0 +1,16 @@ |
1614 | +summary: Test pulseaudio snap installation was successful |
1615 | + |
1616 | +execute: | |
1617 | + . $TESTSLIB/utilities.sh |
1618 | + |
1619 | + # Service should be up an running |
1620 | + wait_for_pulseaudio |
1621 | + systemctl status snap.pulseaudio.pulseaudio | grep -Pzq ': active' |
1622 | + |
1623 | + # pactl should be able to reach PulseAudio |
1624 | + /snap/bin/pulseaudio.pactl list | grep -Pzq 'Module' |
1625 | + |
1626 | + # Ensure all necessary plugs/slots are connected |
1627 | + snap interfaces | grep -Pzq "pulseaudio:service +pulseaudio:client" |
1628 | + snap interfaces | grep -P "\-\ +pulseaudio:home" |
1629 | + |
1630 | diff --git a/tests/main/modules-loaded/task.yaml b/tests/main/modules-loaded/task.yaml |
1631 | new file mode 100644 |
1632 | index 0000000..e9ee7dd |
1633 | --- /dev/null |
1634 | +++ b/tests/main/modules-loaded/task.yaml |
1635 | @@ -0,0 +1,11 @@ |
1636 | +summary: Test for common PuleAudio modules being loaded |
1637 | + |
1638 | +execute: | |
1639 | + # Check for some obvious PulseAudio modules |
1640 | + /snap/bin/pulseaudio.pactl list short | grep -Pzq 'module-device-restore' |
1641 | + /snap/bin/pulseaudio.pactl list short | grep -Pzq 'module-stream-restore' |
1642 | + /snap/bin/pulseaudio.pactl list short | grep -Pzq 'module-card-restore' |
1643 | + /snap/bin/pulseaudio.pactl list short | grep -Pzq 'module-switch-on-port-available' |
1644 | + /snap/bin/pulseaudio.pactl list short | grep -Pzq 'module-rescue-streams' |
1645 | + /snap/bin/pulseaudio.pactl list short | grep -Pzq 'module-suspend-on-idle' |
1646 | + |
1647 | diff --git a/tests/main/pactl/task.yaml b/tests/main/pactl/task.yaml |
1648 | new file mode 100644 |
1649 | index 0000000..01f93d0 |
1650 | --- /dev/null |
1651 | +++ b/tests/main/pactl/task.yaml |
1652 | @@ -0,0 +1,6 @@ |
1653 | +summary: Test pactl is working |
1654 | + |
1655 | +execute: | |
1656 | + # Does it even work? |
1657 | + /snap/bin/pulseaudio.pactl info | grep -Pzq 'Server Name: pulseaudio' |
1658 | + |
FAILED: Continuous integration, rev:c755d8efbfb a373d962c36edb6 af99497c50b979 /jenkins. canonical. com/system- enablement/ job/generic- build-snap/ 584/ /jenkins. canonical. com/system- enablement/ job/generic- update- snap-mp/ 492/console
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild: /jenkins. canonical. com/system- enablement/ job/generic- build-snap/ 584/rebuild
https:/