Merge ~morphis/snappy-hwe-snaps/+git/pulseaudio:f/use-explicit-runtime-dir into ~snappy-hwe-team/snappy-hwe-snaps/+git/pulseaudio:master
- Git
- lp:~morphis/snappy-hwe-snaps/+git/pulseaudio
- f/use-explicit-runtime-dir
- Merge into master
Status: | Merged |
---|---|
Approved by: | Alfonso Sanchez-Beato |
Approved revision: | 6dab7ea4791e5c693b1685d2ca7cfa8694bceb7d |
Merged at revision: | e8a08971715c7571e0dafd24af562698084af201 |
Proposed branch: | ~morphis/snappy-hwe-snaps/+git/pulseaudio:f/use-explicit-runtime-dir |
Merge into: | ~snappy-hwe-team/snappy-hwe-snaps/+git/pulseaudio:master |
Prerequisite: | ~morphis/snappy-hwe-snaps/+git/pulseaudio:f/alias-support |
Diff against target: |
534 lines (+310/-38) 13 files modified
bin/client-wrapper (+34/-0) bin/pulseaudio (+1/-0) dev/null (+0/-30) docs/access-from-other-snaps.md (+65/-0) docs/faq.md (+9/-0) docs/index.md (+40/-0) docs/install-pulseaudio.md (+51/-0) docs/metadata.yaml (+23/-0) docs/release-notes.md (+13/-0) docs/report-bug.md (+19/-0) snapcraft.yaml (+6/-8) tests/main/documentation-builds/task.yaml (+14/-0) tests/main/uses-global-runtime-dir/task.yaml (+35/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Konrad Zapałowicz (community) | code | Approve | |
System Enablement Bot | continuous-integration | Approve | |
Jim Hodapp | Pending | ||
Review via email: mp+318477@code.launchpad.net |
Commit message
Description of the change
Use PULSE_RUNTIME_PATH to specify global runtime directory
As we run pulseaudio in system mode we don't have a per user runtime
directory. If we just start pulseaudio in system mode it still tries
to create on below XDG_RUNTIME_DIR but as mediate access via
interfaces already to our PULSE_RUNTIME_PATH directory we can use a
global one to make our life much easier.
This also adds a few other things and starts with documentation but focuses mainly on documenting the changed client setup this MP implements.
System Enablement Bot (system-enablement-ci-bot) wrote : | # |
System Enablement Bot (system-enablement-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:ab8d6b040b2
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
None: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
Konrad Zapałowicz (kzapalowicz) wrote : | # |
Comments inline
System Enablement Bot (system-enablement-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:b2f1261bb0f
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
None: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
System Enablement Bot (system-enablement-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:6dab7ea4791
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
None: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
Konrad Zapałowicz (kzapalowicz) wrote : | # |
ack
Preview Diff
1 | diff --git a/bin/client-wrapper b/bin/client-wrapper | |||
2 | 0 | new file mode 100755 | 0 | new file mode 100755 |
3 | index 0000000..255187c | |||
4 | --- /dev/null | |||
5 | +++ b/bin/client-wrapper | |||
6 | @@ -0,0 +1,34 @@ | |||
7 | 1 | #!/bin/sh | ||
8 | 2 | # | ||
9 | 3 | # Copyright (C) 2016 Canonical Ltd | ||
10 | 4 | # | ||
11 | 5 | # This program is free software: you can redistribute it and/or modify | ||
12 | 6 | # it under the terms of the GNU General Public License version 3 as | ||
13 | 7 | # published by the Free Software Foundation. | ||
14 | 8 | # | ||
15 | 9 | # This program is distributed in the hope that it will be useful, | ||
16 | 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | 12 | # GNU General Public License for more details. | ||
19 | 13 | # | ||
20 | 14 | # You should have received a copy of the GNU General Public License | ||
21 | 15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
22 | 16 | |||
23 | 17 | if [ "$(id -u)" -ne 0 ]; then | ||
24 | 18 | echo "This script must be run as root" 1>&2 | ||
25 | 19 | exit 1 | ||
26 | 20 | fi | ||
27 | 21 | |||
28 | 22 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ | ||
29 | 23 | export PULSE_CLIENTCONFIG=$SNAP/etc/pulse/client.conf | ||
30 | 24 | export PULSE_RUNTIME_PATH=/var/run/pulse | ||
31 | 25 | export PULSE_SYSTEM=1 | ||
32 | 26 | |||
33 | 27 | unset XDG_RUNTIME_DIR | ||
34 | 28 | |||
35 | 29 | export HOME=$SNAP_DATA/home | ||
36 | 30 | mkdir -p "$HOME" | ||
37 | 31 | |||
38 | 32 | command="$SNAP/$1" | ||
39 | 33 | shift | ||
40 | 34 | exec "$command" "$@" | ||
41 | diff --git a/bin/pactl b/bin/pactl | |||
42 | 0 | deleted file mode 100755 | 35 | deleted file mode 100755 |
43 | index f39f21b..0000000 | |||
44 | --- a/bin/pactl | |||
45 | +++ /dev/null | |||
46 | @@ -1,30 +0,0 @@ | |||
47 | 1 | #!/bin/sh | ||
48 | 2 | # | ||
49 | 3 | # Copyright (C) 2016 Canonical Ltd | ||
50 | 4 | # | ||
51 | 5 | # This program is free software: you can redistribute it and/or modify | ||
52 | 6 | # it under the terms of the GNU General Public License version 3 as | ||
53 | 7 | # published by the Free Software Foundation. | ||
54 | 8 | # | ||
55 | 9 | # This program is distributed in the hope that it will be useful, | ||
56 | 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
57 | 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
58 | 12 | # GNU General Public License for more details. | ||
59 | 13 | # | ||
60 | 14 | # You should have received a copy of the GNU General Public License | ||
61 | 15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
62 | 16 | |||
63 | 17 | if [ $(id -u) -ne 0 ]; then | ||
64 | 18 | echo "This script must be run as root" 1>&2 | ||
65 | 19 | exit 1 | ||
66 | 20 | fi | ||
67 | 21 | |||
68 | 22 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ | ||
69 | 23 | export PULSE_CLIENTCONFIG=$SNAP/etc/pulse/client.conf | ||
70 | 24 | export HOME=$SNAP_DATA/home | ||
71 | 25 | |||
72 | 26 | unset XDG_RUNTIME_DIR | ||
73 | 27 | |||
74 | 28 | mkdir -p $HOME | ||
75 | 29 | |||
76 | 30 | $SNAP/usr/bin/pactl $@ | ||
77 | diff --git a/bin/paplay b/bin/paplay | |||
78 | 31 | deleted file mode 100755 | 0 | deleted file mode 100755 |
79 | index eb759c9..0000000 | |||
80 | --- a/bin/paplay | |||
81 | +++ /dev/null | |||
82 | @@ -1,30 +0,0 @@ | |||
83 | 1 | #!/bin/sh | ||
84 | 2 | # | ||
85 | 3 | # Copyright (C) 2016 Canonical Ltd | ||
86 | 4 | # | ||
87 | 5 | # This program is free software: you can redistribute it and/or modify | ||
88 | 6 | # it under the terms of the GNU General Public License version 3 as | ||
89 | 7 | # published by the Free Software Foundation. | ||
90 | 8 | # | ||
91 | 9 | # This program is distributed in the hope that it will be useful, | ||
92 | 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
93 | 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
94 | 12 | # GNU General Public License for more details. | ||
95 | 13 | # | ||
96 | 14 | # You should have received a copy of the GNU General Public License | ||
97 | 15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
98 | 16 | |||
99 | 17 | if [ $(id -u) -ne 0 ]; then | ||
100 | 18 | echo "This script must be run as root" 1>&2 | ||
101 | 19 | exit 1 | ||
102 | 20 | fi | ||
103 | 21 | |||
104 | 22 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ | ||
105 | 23 | export PULSE_CLIENTCONFIG=$SNAP/etc/pulse/client.conf | ||
106 | 24 | export HOME=$SNAP_DATA/home | ||
107 | 25 | |||
108 | 26 | unset XDG_RUNTIME_DIR | ||
109 | 27 | |||
110 | 28 | mkdir -p $HOME | ||
111 | 29 | |||
112 | 30 | $SNAP/usr/bin/paplay $@ | ||
113 | diff --git a/bin/parec b/bin/parec | |||
114 | 31 | deleted file mode 100755 | 0 | deleted file mode 100755 |
115 | index ea78b35..0000000 | |||
116 | --- a/bin/parec | |||
117 | +++ /dev/null | |||
118 | @@ -1,30 +0,0 @@ | |||
119 | 1 | #!/bin/sh | ||
120 | 2 | # | ||
121 | 3 | # Copyright (C) 2016 Canonical Ltd | ||
122 | 4 | # | ||
123 | 5 | # This program is free software: you can redistribute it and/or modify | ||
124 | 6 | # it under the terms of the GNU General Public License version 3 as | ||
125 | 7 | # published by the Free Software Foundation. | ||
126 | 8 | # | ||
127 | 9 | # This program is distributed in the hope that it will be useful, | ||
128 | 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
129 | 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
130 | 12 | # GNU General Public License for more details. | ||
131 | 13 | # | ||
132 | 14 | # You should have received a copy of the GNU General Public License | ||
133 | 15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
134 | 16 | |||
135 | 17 | if [ $(id -u) -ne 0 ]; then | ||
136 | 18 | echo "This script must be run as root" 1>&2 | ||
137 | 19 | exit 1 | ||
138 | 20 | fi | ||
139 | 21 | |||
140 | 22 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ | ||
141 | 23 | export PULSE_CLIENTCONFIG=$SNAP/etc/pulse/client.conf | ||
142 | 24 | export HOME=$SNAP_DATA/home | ||
143 | 25 | |||
144 | 26 | unset XDG_RUNTIME_DIR | ||
145 | 27 | |||
146 | 28 | mkdir -p $HOME | ||
147 | 29 | |||
148 | 30 | $SNAP/usr/bin/parec $@ | ||
149 | diff --git a/bin/pulseaudio b/bin/pulseaudio | |||
150 | index 8e23f97..40c9a85 100755 | |||
151 | --- a/bin/pulseaudio | |||
152 | +++ b/bin/pulseaudio | |||
153 | @@ -3,6 +3,7 @@ set -e | |||
154 | 3 | set -x | 3 | set -x |
155 | 4 | 4 | ||
156 | 5 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ | 5 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/usr/lib/pulseaudio:$SNAP/usr/lib/pulse-8.0/modules/ |
157 | 6 | export PULSE_RUNTIME_PATH=/var/run/pulse | ||
158 | 6 | export PULSE_STATE_PATH=$SNAP_DATA/state | 7 | export PULSE_STATE_PATH=$SNAP_DATA/state |
159 | 7 | export ALSA_CONFIG_UCM=$SNAP/usr/share/alsa/ucm | 8 | export ALSA_CONFIG_UCM=$SNAP/usr/share/alsa/ucm |
160 | 8 | export ALSA_CONFIG_TPLG=$SNAP/usr/share/alsa/topology | 9 | export ALSA_CONFIG_TPLG=$SNAP/usr/share/alsa/topology |
161 | diff --git a/docs/access-from-other-snaps.md b/docs/access-from-other-snaps.md | |||
162 | 9 | new file mode 100644 | 10 | new file mode 100644 |
163 | index 0000000..3e778d7 | |||
164 | --- /dev/null | |||
165 | +++ b/docs/access-from-other-snaps.md | |||
166 | @@ -0,0 +1,65 @@ | |||
167 | 1 | --- | ||
168 | 2 | title: "Access PulseAudio From Other Snaps" | ||
169 | 3 | table_of_contents: True | ||
170 | 4 | --- | ||
171 | 5 | |||
172 | 6 | # Access PulseAudio From Other Snaps | ||
173 | 7 | |||
174 | 8 | To allow other snaps to play or record audio by using the PulseAudio service | ||
175 | 9 | the *pulseaudio* interface exists which can be used to get access to features | ||
176 | 10 | PulseAudio offers. Apart from using the *pulseaudio* interface a few other things | ||
177 | 11 | need to be considered in order to get playback or recording working. These are | ||
178 | 12 | |||
179 | 13 | 1. Define a pulseaudio interface plug for your application in the applications | ||
180 | 14 | snapcraft.yaml. | ||
181 | 15 | 2. Set necessary environment variables for each application which communicates | ||
182 | 16 | with PulseAudio. | ||
183 | 17 | |||
184 | 18 | ## Define Pulseaudio Interface Plug | ||
185 | 19 | |||
186 | 20 | To use the *pulseaudio* interface you simply need to define a plug with it | ||
187 | 21 | in your *snapcraft.yaml* for all relevant applications: | ||
188 | 22 | |||
189 | 23 | ``` | ||
190 | 24 | name: my-audio-snap | ||
191 | 25 | [...] | ||
192 | 26 | apps: | ||
193 | 27 | player: | ||
194 | 28 | command: bin/player | ||
195 | 29 | plugs: | ||
196 | 30 | - pulseaudio | ||
197 | 31 | [...] | ||
198 | 32 | ``` | ||
199 | 33 | |||
200 | 34 | With this, the plug will be listed by *snap interfaces* once you installed your | ||
201 | 35 | snap. You can connect it to the PulseAudio service via: | ||
202 | 36 | |||
203 | 37 | ``` | ||
204 | 38 | $ snap connect my-audio-snap:pulseaudio pulseaudio:service | ||
205 | 39 | ``` | ||
206 | 40 | |||
207 | 41 | Now the interface connection between your client snap and the service is established. | ||
208 | 42 | |||
209 | 43 | ## Set Necessary Environment Variables | ||
210 | 44 | |||
211 | 45 | In order to talk with the PulseAudio service you need to set one environment variable | ||
212 | 46 | to ensure that libpulse finds the socket and other files it requires to talk to | ||
213 | 47 | the service. The environment variable you need to set is the following: | ||
214 | 48 | |||
215 | 49 | ``` | ||
216 | 50 | PULSE_RUNTIME_PATH=/var/run/pulse | ||
217 | 51 | ``` | ||
218 | 52 | |||
219 | 53 | This can be included in the snapcraft.yaml or in shell scripts you use as wrappers | ||
220 | 54 | around your programs. In our example we will directly include it in the *snapcraft.yaml* file: | ||
221 | 55 | |||
222 | 56 | ``` | ||
223 | 57 | name: my-audio-snap | ||
224 | 58 | [...] | ||
225 | 59 | apps: | ||
226 | 60 | player: | ||
227 | 61 | command: PULSE_RUNTIME_PATH=/var/run/pulse bin/player | ||
228 | 62 | plugs: | ||
229 | 63 | - pulseaudio | ||
230 | 64 | [...] | ||
231 | 65 | ``` | ||
232 | diff --git a/docs/faq.md b/docs/faq.md | |||
233 | 0 | new file mode 100644 | 66 | new file mode 100644 |
234 | index 0000000..e1c725c | |||
235 | --- /dev/null | |||
236 | +++ b/docs/faq.md | |||
237 | @@ -0,0 +1,9 @@ | |||
238 | 1 | --- | ||
239 | 2 | title: "FAQ" | ||
240 | 3 | table_of_contents: False | ||
241 | 4 | --- | ||
242 | 5 | |||
243 | 6 | # FAQ | ||
244 | 7 | |||
245 | 8 | This section covers some of the most commonly encountered problems and attempts | ||
246 | 9 | to provide solutions for them. | ||
247 | diff --git a/docs/index.md b/docs/index.md | |||
248 | 0 | new file mode 100644 | 10 | new file mode 100644 |
249 | index 0000000..ea4f41e | |||
250 | --- /dev/null | |||
251 | +++ b/docs/index.md | |||
252 | @@ -0,0 +1,40 @@ | |||
253 | 1 | --- | ||
254 | 2 | title: "PulseAudio" | ||
255 | 3 | table_of_contents: False | ||
256 | 4 | --- | ||
257 | 5 | |||
258 | 6 | # About PulseAudio | ||
259 | 7 | |||
260 | 8 | PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for your | ||
261 | 9 | sound applications. It allows you to do advanced operations on your sound data | ||
262 | 10 | as it passes between your application and your hardware. Things like transferring | ||
263 | 11 | the audio to a different machine, changing the sample format or channel count and | ||
264 | 12 | mixing several sounds into one are easily achieved using a sound server. | ||
265 | 13 | |||
266 | 14 | PulseAudio is an integral part of all relevant modern Linux distributions and used | ||
267 | 15 | in various mobile devices by multiple vendors. | ||
268 | 16 | |||
269 | 17 | ## What PulseAudio Offers | ||
270 | 18 | |||
271 | 19 | * Extensible plugin architecture (by loading dynamic loadable modules with dlopen()) | ||
272 | 20 | * Support for static linking of modules, allowing a single binary for all your needs | ||
273 | 21 | * Module autoloading | ||
274 | 22 | * Support for more than one sink/source | ||
275 | 23 | * Good low latency behaviour | ||
276 | 24 | * Very accurate latency measurement for playback and recording. | ||
277 | 25 | * Client side latency interpolation | ||
278 | 26 | * Embeddable into other software (the core is available as C library) | ||
279 | 27 | * Completely asynchronous C API, complemented by two synchronous variants for simple use in synchronous applications | ||
280 | 28 | * Simple command line interface for reconfiguring the daemon while running | ||
281 | 29 | * Flexible, implicit sample type conversion and resampling | ||
282 | 30 | * "Zero-Copy" architecture | ||
283 | 31 | * May be used to combine multiple sound cards to one (with sample rate adjustment) | ||
284 | 32 | * Ability to fully synchronize multiple playback streams | ||
285 | 33 | * Various network audio streaming options | ||
286 | 34 | |||
287 | 35 | Please see [the upstream feature list](https://www.freedesktop.org/wiki/Software/PulseAudio/About/) for more details. | ||
288 | 36 | |||
289 | 37 | ## Upstream documentation | ||
290 | 38 | |||
291 | 39 | Existing documentation from the upstream project can be found | ||
292 | 40 | [here](https://www.freedesktop.org/wiki/Software/PulseAudio/). | ||
293 | diff --git a/docs/install-pulseaudio.md b/docs/install-pulseaudio.md | |||
294 | 0 | new file mode 100644 | 41 | new file mode 100644 |
295 | index 0000000..02d633f | |||
296 | --- /dev/null | |||
297 | +++ b/docs/install-pulseaudio.md | |||
298 | @@ -0,0 +1,51 @@ | |||
299 | 1 | --- | ||
300 | 2 | title: "Install PulseAudio" | ||
301 | 3 | table_of_contents: True | ||
302 | 4 | --- | ||
303 | 5 | |||
304 | 6 | # Install PulseAudio | ||
305 | 7 | |||
306 | 8 | The PulseAudio snap is available from the Ubuntu Store. It can be installed on | ||
307 | 9 | any system that supports snaps but is only recommended on | ||
308 | 10 | [Ubuntu Core](https://www.ubuntu.com/core) at the moment. | ||
309 | 11 | |||
310 | 12 | You can install the snap with the following command: | ||
311 | 13 | |||
312 | 14 | ``` | ||
313 | 15 | $ snap install pulseaudio | ||
314 | 16 | pulseaudio 8.0-3 from 'canonical' installed | ||
315 | 17 | ``` | ||
316 | 18 | |||
317 | 19 | Although the pulseaudio snap is available from other channels (candidate, beta, edge), | ||
318 | 20 | only the stable version should be used for production devices. Their meaning is internal | ||
319 | 21 | to the development team of the pulseaudio snap. | ||
320 | 22 | |||
321 | 23 | All necessary plugs and slots will be automatically connected within the | ||
322 | 24 | installation process. You can verify this with: | ||
323 | 25 | |||
324 | 26 | ``` | ||
325 | 27 | $ snap interfaces pulseaudio | ||
326 | 28 | Slot Plug | ||
327 | 29 | :network pulseaudio | ||
328 | 30 | pulseaudio:service pulseaudio:client | ||
329 | 31 | - pulseaudio:home | ||
330 | 32 | |||
331 | 33 | ``` | ||
332 | 34 | |||
333 | 35 | As may noted, we do not connect the home plug of the PulseAudio snap by default. | ||
334 | 36 | This is because normally you will use another snap to play audio through PulseAudio | ||
335 | 37 | and then PulseAudio itself does not need any access to something outside of its | ||
336 | 38 | snap as the playing snap will submits its audio data over network or memory based | ||
337 | 39 | transport. If you want to use the included parec or paplay utilities you have to | ||
338 | 40 | connect the home plug as otherwise both can only read/write data within the | ||
339 | 41 | PulseAudio snap and nowhere else. You can connect it via: | ||
340 | 42 | |||
341 | 43 | ``` | ||
342 | 44 | $ snap connect pulseaudio:home core | ||
343 | 45 | ``` | ||
344 | 46 | |||
345 | 47 | Now you have PulseAudio successfully installed. | ||
346 | 48 | |||
347 | 49 | ## Next Steps | ||
348 | 50 | |||
349 | 51 | * [Access from other snaps](access-from-other-snaps.md) | ||
350 | diff --git a/docs/metadata.yaml b/docs/metadata.yaml | |||
351 | 0 | new file mode 100644 | 52 | new file mode 100644 |
352 | index 0000000..321e111 | |||
353 | --- /dev/null | |||
354 | +++ b/docs/metadata.yaml | |||
355 | @@ -0,0 +1,23 @@ | |||
356 | 1 | site_title: PulseAudio documentation | ||
357 | 2 | site_logo_url: https://assets.ubuntu.com/v1/c5cb0f8e-picto-ubuntu.svg | ||
358 | 3 | navigation: | ||
359 | 4 | - title: Introduction | ||
360 | 5 | children: | ||
361 | 6 | - title: About PulseAudio | ||
362 | 7 | location: index.md | ||
363 | 8 | - title: Install & Configure | ||
364 | 9 | children: | ||
365 | 10 | - title: Install PulseAudio | ||
366 | 11 | location: install-pulseaudio.md | ||
367 | 12 | - title: Access from other snaps | ||
368 | 13 | location: access-from-other-snaps.md | ||
369 | 14 | - title: Reference | ||
370 | 15 | children: | ||
371 | 16 | - title: Troubleshoot | ||
372 | 17 | children: | ||
373 | 18 | - title: FAQ | ||
374 | 19 | location: faq.md | ||
375 | 20 | - title: Release Notes | ||
376 | 21 | location: release-notes.md | ||
377 | 22 | - title: Report a Bug | ||
378 | 23 | location: report-bug.md | ||
379 | diff --git a/docs/release-notes.md b/docs/release-notes.md | |||
380 | 0 | new file mode 100644 | 24 | new file mode 100644 |
381 | index 0000000..dab11ae | |||
382 | --- /dev/null | |||
383 | +++ b/docs/release-notes.md | |||
384 | @@ -0,0 +1,13 @@ | |||
385 | 1 | --- | ||
386 | 2 | title: "Release Notes" | ||
387 | 3 | table_of_contents: False | ||
388 | 4 | --- | ||
389 | 5 | |||
390 | 6 | # Release Notes | ||
391 | 7 | |||
392 | 8 | The version numbers mentioned on this page correspond to those released in the | ||
393 | 9 | Ubuntu snap store. | ||
394 | 10 | |||
395 | 11 | ## 8.0-3 | ||
396 | 12 | |||
397 | 13 | * Initial release | ||
398 | diff --git a/docs/report-bug.md b/docs/report-bug.md | |||
399 | 0 | new file mode 100644 | 14 | new file mode 100644 |
400 | index 0000000..0d49470 | |||
401 | --- /dev/null | |||
402 | +++ b/docs/report-bug.md | |||
403 | @@ -0,0 +1,19 @@ | |||
404 | 1 | --- | ||
405 | 2 | title: "Report a Bug" | ||
406 | 3 | table_of_contents: False | ||
407 | 4 | --- | ||
408 | 5 | |||
409 | 6 | # Report a Bug | ||
410 | 7 | |||
411 | 8 | Bugs can be reported [here](https://bugs.launchpad.net/snappy-hwe-snaps/+filebug). | ||
412 | 9 | |||
413 | 10 | When submitting a bug report, please attach: | ||
414 | 11 | |||
415 | 12 | * */var/log/syslog* | ||
416 | 13 | |||
417 | 14 | And the output of the following commands: | ||
418 | 15 | |||
419 | 16 | ``` | ||
420 | 17 | $ sudo pactl list | ||
421 | 18 | $ cat /proc/asound/cards | ||
422 | 19 | ``` | ||
423 | diff --git a/snapcraft.yaml b/snapcraft.yaml | |||
424 | index a070369..535b4b6 100644 | |||
425 | --- a/snapcraft.yaml | |||
426 | +++ b/snapcraft.yaml | |||
427 | @@ -17,17 +17,17 @@ apps: | |||
428 | 17 | daemon: simple | 17 | daemon: simple |
429 | 18 | slots: [service] | 18 | slots: [service] |
430 | 19 | pactl: | 19 | pactl: |
432 | 20 | command: bin/pactl | 20 | command: bin/client-wrapper usr/bin/pactl |
433 | 21 | plugs: [client, network] | 21 | plugs: [client, network] |
434 | 22 | aliases: | 22 | aliases: |
435 | 23 | - pactl | 23 | - pactl |
436 | 24 | paplay: | 24 | paplay: |
438 | 25 | command: bin/paplay | 25 | command: bin/client-wrapper usr/bin/paplay |
439 | 26 | plugs: [client, home, network] | 26 | plugs: [client, home, network] |
440 | 27 | aliases: | 27 | aliases: |
441 | 28 | - paplay | 28 | - paplay |
442 | 29 | parec: | 29 | parec: |
444 | 30 | command: bin/parec | 30 | command: bin/client-wrapper usr/bin/parec |
445 | 31 | plugs: [client, home, network] | 31 | plugs: [client, home, network] |
446 | 32 | aliases: | 32 | aliases: |
447 | 33 | - parec | 33 | - parec |
448 | @@ -47,9 +47,7 @@ parts: | |||
449 | 47 | plugin: copy | 47 | plugin: copy |
450 | 48 | files: | 48 | files: |
451 | 49 | bin/pulseaudio: bin/pulseaudio | 49 | bin/pulseaudio: bin/pulseaudio |
455 | 50 | bin/pactl: bin/pactl | 50 | bin/client-wrapper: bin/client-wrapper |
453 | 51 | bin/paplay: bin/paplay | ||
454 | 52 | bin/parec: bin/parec | ||
456 | 53 | bin/config: bin/config | 51 | bin/config: bin/config |
457 | 54 | data/copyright: usr/share/doc/pulseaudio/copyright | 52 | data/copyright: usr/share/doc/pulseaudio/copyright |
458 | 55 | 53 | ||
459 | @@ -137,7 +135,7 @@ parts: | |||
460 | 137 | - --with-system-group=root | 135 | - --with-system-group=root |
461 | 138 | 136 | ||
462 | 139 | filesets: | 137 | filesets: |
464 | 140 | pauseaudiofiles: | 138 | wanted: |
465 | 141 | - etc/* | 139 | - etc/* |
466 | 142 | - lib/* | 140 | - lib/* |
467 | 143 | - usr/bin/pacat | 141 | - usr/bin/pacat |
468 | @@ -153,4 +151,4 @@ parts: | |||
469 | 153 | - usr/share/pulseaudio/* | 151 | - usr/share/pulseaudio/* |
470 | 154 | 152 | ||
471 | 155 | snap: | 153 | snap: |
473 | 156 | - $pauseaudiofiles | 154 | - $wanted |
474 | diff --git a/tests/main/documentation-builds/task.yaml b/tests/main/documentation-builds/task.yaml | |||
475 | 157 | new file mode 100644 | 155 | new file mode 100644 |
476 | index 0000000..848fff8 | |||
477 | --- /dev/null | |||
478 | +++ b/tests/main/documentation-builds/task.yaml | |||
479 | @@ -0,0 +1,14 @@ | |||
480 | 1 | summary: Verify the project documentation builds without errors | ||
481 | 2 | |||
482 | 3 | execute: | | ||
483 | 4 | # Need to install in devmode as otherwise the snap can't access our project | ||
484 | 5 | # home which is outside of the home directory of our current user. | ||
485 | 6 | snap install --devmode documentation-builder | ||
486 | 7 | |||
487 | 8 | outdir=$PROJECT_PATH/docs/build | ||
488 | 9 | |||
489 | 10 | cd $PROJECT_PATH/docs | ||
490 | 11 | /snap/bin/documentation-builder --output-path $outdir | ||
491 | 12 | |||
492 | 13 | # Ensure we have some files in the output directory | ||
493 | 14 | test `find $outdir -type f | wc -l` -gt 0 | ||
494 | diff --git a/tests/main/uses-global-runtime-dir/task.yaml b/tests/main/uses-global-runtime-dir/task.yaml | |||
495 | 0 | new file mode 100644 | 15 | new file mode 100644 |
496 | index 0000000..bcc4c8c | |||
497 | --- /dev/null | |||
498 | +++ b/tests/main/uses-global-runtime-dir/task.yaml | |||
499 | @@ -0,0 +1,35 @@ | |||
500 | 1 | summary: Verify pulseaudio and its clients are using a global runtime directory | ||
501 | 2 | |||
502 | 3 | execute: | | ||
503 | 4 | # If PULSE_RUNTIME_PATH is not set correctly every client will print a | ||
504 | 5 | # warning that it can't create a secure directory in the configured runtime | ||
505 | 6 | # directory. We verify here that no command prints those warning messages | ||
506 | 7 | # anymore as we now have PULSE_RUNTIME_PATH set for both client and server. | ||
507 | 8 | |||
508 | 9 | /snap/bin/pactl list | grep -v "Failed to create secure directory" | ||
509 | 10 | |||
510 | 11 | # For playback/recording we need the home interface connected | ||
511 | 12 | snap connect pulseaudio:home core | ||
512 | 13 | |||
513 | 14 | # /var/run is a just a symlink to /run so check both | ||
514 | 15 | for d in /var/run /run ; do | ||
515 | 16 | test -e $d/pulse/.config | ||
516 | 17 | test -e $d/pulse/native | ||
517 | 18 | test -e $d/pulse/pid | ||
518 | 19 | done | ||
519 | 20 | |||
520 | 21 | pid=$(pidof pulseaudio) | ||
521 | 22 | test "$pid" = "$(cat /var/run/pulse/pid)" | ||
522 | 23 | |||
523 | 24 | # The alsa-utils snap includes some example wav files we can use for playback | ||
524 | 25 | snap install alsa-utils | ||
525 | 26 | cp -v /snap/alsa-utils/current/usr/share/sounds/alsa/Front_Center.wav /root | ||
526 | 27 | chown root:root /root/Front_Center.wav | ||
527 | 28 | /snap/bin/paplay /root/Front_Center.wav &> /tmp/paplay.log & | ||
528 | 29 | wait $! | ||
529 | 30 | [ -s /tmp/paplay.log ] && grep -q -v "Failed to create secure directory" /tmp/paplay.log | ||
530 | 31 | |||
531 | 32 | # parec is a little bit more tricky as it needs to be run in background | ||
532 | 33 | /snap/bin/parec &> /tmp/parec.log & | ||
533 | 34 | pid=$! ; sleep 1 ; kill -TERM $pid | ||
534 | 35 | [ -s /tmp/parec.log ] && grep -q -v "Failed to create secure directory" /tmp/parec.log |
PASSED: Continuous integration, rev:bf363842b6c e32ab7408b96295 f93cef6a3591ff /jenkins. canonical. com/system- enablement/ job/generic- build-snap/ 1060/ /jenkins. canonical. com/system- enablement/ job/generic- build-snap- worker/ 61 /jenkins. canonical. com/system- enablement/ job/generic- test-snap/ 758 /jenkins. canonical. com/system- enablement/ job/generic- update- snap-mp/ 969/console /jenkins. canonical. com/system- enablement/ job/generic- test-snap/ 757
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
None: https:/
SUCCESS: https:/
Click here to trigger a rebuild: /jenkins. canonical. com/system- enablement/ job/generic- build-snap/ 1060/rebuild
https:/