From 18e975fc5ef68a89875c77974570884b9214a009 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 20 Jul 2009 17:34:17 +0200 Subject: merged --- .gitignore | 3 +- Makefile.am | 16 +- PROTOCOL | 20 + bootstrap.sh | 15 +- configure.ac | 204 +- git-version-gen | 153 + m4/attributes.m4 | 59 +- man/pulse-daemon.conf.5.xml.in | 49 +- po/LINGUAS | 15 + po/POTFILES.in | 18 +- po/as.po | 2498 ++++++++++++++ po/bn_IN.po | 2513 +++++++++++++++ po/ca.po | 1651 +++++----- po/cs.po | 1629 ++++++---- po/de.po | 1117 ++++--- po/de_CH.po | 2556 +++++++++++++++ po/el.po | 890 ++--- po/es.po | 1483 +++++---- po/fi.po | 1591 +++++---- po/fr.po | 1405 ++++---- po/gu.po | 2496 ++++++++++++++ po/hi.po | 2502 ++++++++++++++ po/it.po | 1194 ++++--- po/kn.po | 2513 +++++++++++++++ po/mr.po | 2496 ++++++++++++++ po/nl.po | 2224 +++++++++++++ po/or.po | 2499 ++++++++++++++ po/pa.po | 1802 +++++++---- po/pl.po | 1078 ++++--- po/pt.po | 2282 +++++++++++++ po/pt_BR.po | 1010 +++--- po/sr.po | 2524 +++++++++++++++ po/sr@latin.po | 2527 +++++++++++++++ po/sv.po | 914 +++--- po/ta.po | 2510 +++++++++++++++ po/te.po | 2494 ++++++++++++++ po/uk.po | 2529 +++++++++++++++ po/zh_CN.po | 1430 ++++---- shave | 79 + shave-libtool | 69 + src/.gitignore | 1 + src/Makefile.am | 266 +- src/daemon/caps.c | 99 +- src/daemon/caps.h | 3 - src/daemon/cmdline.c | 11 +- src/daemon/cpulimit.c | 9 +- src/daemon/daemon-conf.c | 21 +- src/daemon/daemon-conf.h | 3 +- src/daemon/daemon.conf.in | 7 +- src/daemon/default.pa.in | 15 +- src/daemon/dumpmodules.c | 2 + src/daemon/main.c | 308 +- src/daemon/start-pulseaudio-x11.in | 2 + src/log | 1555 +++++++++ src/map-file | 21 + src/modules/alsa/alsa-mixer.c | 3406 ++++++++++++++++++++ src/modules/alsa/alsa-mixer.h | 292 ++ src/modules/alsa/alsa-sink.c | 678 ++-- src/modules/alsa/alsa-sink.h | 3 +- src/modules/alsa/alsa-source.c | 660 ++-- src/modules/alsa/alsa-source.h | 2 +- src/modules/alsa/alsa-util.c | 1191 ++----- src/modules/alsa/alsa-util.h | 122 +- src/modules/alsa/mixer/paths/analog-input-aux.conf | 62 + src/modules/alsa/mixer/paths/analog-input-fm.conf | 62 + .../alsa/mixer/paths/analog-input-linein.conf | 61 + .../alsa/mixer/paths/analog-input-mic-line.conf | 63 + src/modules/alsa/mixer/paths/analog-input-mic.conf | 63 + .../alsa/mixer/paths/analog-input-mic.conf.common | 63 + .../alsa/mixer/paths/analog-input-tvtuner.conf | 62 + .../alsa/mixer/paths/analog-input-video.conf | 61 + src/modules/alsa/mixer/paths/analog-input.conf | 54 + .../alsa/mixer/paths/analog-input.conf.common | 257 ++ .../alsa/mixer/paths/analog-output-headphones.conf | 71 + .../mixer/paths/analog-output-lfe-on-mono.conf | 72 + .../alsa/mixer/paths/analog-output-mono.conf | 69 + src/modules/alsa/mixer/paths/analog-output.conf | 80 + .../alsa/mixer/paths/analog-output.conf.common | 111 + .../alsa/mixer/profile-sets/90-pulseaudio.rules | 26 + src/modules/alsa/mixer/profile-sets/default.conf | 144 + .../profile-sets/native-instruments-audio4dj.conf | 91 + .../profile-sets/native-instruments-audio8dj.conf | 162 + .../mixer/samples/ATI IXP--Realtek ALC655 rev 0 | 150 + .../alsa/mixer/samples/Brooktree Bt878--Bt87x | 24 + .../Ensoniq AudioPCI--Cirrus Logic CS4297A rev 3 | 135 + .../alsa/mixer/samples/HDA ATI HDMI--ATI R6xx HDMI | 4 + .../mixer/samples/HDA Intel--Analog Devices AD1981 | 62 + .../samples/HDA Intel--Conexant CX20551 (Waikiki) | 42 + .../alsa/mixer/samples/HDA Intel--Realtek ALC889A | 113 + .../Intel 82801CA-ICH3--Analog Devices AD1881A | 128 + .../mixer/samples/Logitech USB Speaker--USB Mixer | 27 + .../alsa/mixer/samples/USB Audio--USB Mixer | 37 + .../samples/USB Device 0x46d:0x9a4--USB Mixer | 5 + .../mixer/samples/VIA 8237--Analog Devices AD1888 | 211 ++ .../VIA 8237--C-Media Electronics CMI9761A+ | 160 + src/modules/alsa/module-alsa-card.c | 290 +- src/modules/alsa/module-alsa-sink.c | 12 +- src/modules/alsa/module-alsa-source.c | 14 +- src/modules/bluetooth/bluetooth-util.c | 437 +-- src/modules/bluetooth/bluetooth-util.h | 58 +- src/modules/bluetooth/ipc.c | 1 + src/modules/bluetooth/ipc.h | 73 +- src/modules/bluetooth/module-bluetooth-device.c | 1136 ++++--- src/modules/bluetooth/module-bluetooth-discover.c | 108 +- src/modules/bluetooth/module-bluetooth-proximity.c | 6 +- src/modules/bluetooth/sbc.c | 43 +- src/modules/bluetooth/sbc.h | 14 +- src/modules/hal-util.c | 2 +- src/modules/jack/module-jack-sink.c | 504 +++ src/modules/jack/module-jack-source.c | 454 +++ src/modules/module-augment-properties.c | 73 +- src/modules/module-card-restore.c | 85 +- src/modules/module-combine.c | 82 +- src/modules/module-console-kit.c | 2 +- src/modules/module-cork-music-on-phone.c | 1 - src/modules/module-default-device-restore.c | 17 +- src/modules/module-defs.h.m4 | 2 + src/modules/module-detect.c | 1 + src/modules/module-device-restore.c | 283 +- src/modules/module-esound-sink.c | 56 +- src/modules/module-hal-detect.c | 47 +- src/modules/module-intended-roles.c | 428 +++ src/modules/module-ladspa-sink.c | 43 +- src/modules/module-lirc.c | 37 +- src/modules/module-match.c | 2 +- src/modules/module-mmkbd-evdev.c | 41 +- src/modules/module-null-sink.c | 53 +- src/modules/module-pipe-sink.c | 17 +- src/modules/module-pipe-source.c | 16 +- src/modules/module-protocol-stub.c | 38 +- src/modules/module-remap-sink.c | 20 +- src/modules/module-rescue-streams.c | 60 +- src/modules/module-rygel-media-server.c | 847 +++++ src/modules/module-sine-source.c | 34 +- src/modules/module-solaris.c | 132 +- src/modules/module-stream-restore.c | 516 +-- src/modules/module-suspend-on-idle.c | 41 +- src/modules/module-tunnel.c | 306 +- src/modules/module-udev-detect.c | 457 +++ src/modules/module-volume-restore.c | 3 +- src/modules/module-waveout.c | 4 +- src/modules/module-zeroconf-discover.c | 2 +- src/modules/module-zeroconf-publish.c | 111 +- src/modules/oss/module-oss.c | 39 +- src/modules/raop/module-raop-discover.c | 397 +++ src/modules/raop/module-raop-sink.c | 697 ++++ src/modules/raop/raop_client.c | 2 +- src/modules/reserve-monitor.c | 269 ++ src/modules/reserve-monitor.h | 72 + src/modules/reserve-wrap.c | 200 +- src/modules/reserve-wrap.h | 9 +- src/modules/reserve.c | 24 +- src/modules/reserve.h | 12 +- src/modules/rtp/module-rtp-recv.c | 107 +- src/modules/rtp/module-rtp-send.c | 20 +- src/modules/rtp/rtp.c | 21 +- src/modules/rtp/rtp.h | 2 +- src/modules/rtp/rtsp_client.c | 7 +- src/modules/udev-util.c | 67 +- src/modules/udev-util.h | 3 +- src/modules/x11/module-x11-bell.c | 190 ++ src/modules/x11/module-x11-cork-request.c | 189 ++ src/modules/x11/module-x11-publish.c | 245 ++ src/modules/x11/module-x11-xsmp.c | 254 ++ src/pulse/channelmap.c | 166 +- src/pulse/channelmap.h | 68 +- src/pulse/client-conf-x11.c | 15 + src/pulse/client-conf.c | 31 +- src/pulse/client-conf.h | 2 +- src/pulse/context.c | 185 +- src/pulse/context.h | 15 +- src/pulse/def.h | 40 +- src/pulse/fork-detect.c | 2 +- src/pulse/internal.h | 27 +- src/pulse/introspect.c | 214 +- src/pulse/introspect.h | 56 +- src/pulse/mainloop-api.h | 1 + src/pulse/mainloop-signal.c | 5 +- src/pulse/mainloop.c | 88 +- src/pulse/mainloop.h | 2 +- src/pulse/proplist.c | 15 + src/pulse/proplist.h | 19 +- src/pulse/pulseaudio.h | 2 +- src/pulse/rtclock.c | 35 + src/pulse/rtclock.h | 41 + src/pulse/sample.c | 41 +- src/pulse/sample.h | 24 +- src/pulse/simple.c | 71 +- src/pulse/stream.c | 323 +- src/pulse/stream.h | 158 +- src/pulse/subscribe.h | 2 +- src/pulse/thread-mainloop.c | 4 + src/pulse/timeval.h | 11 +- src/pulse/util.c | 3 +- src/pulse/util.h | 2 +- src/pulse/version.h.in | 7 + src/pulse/volume.c | 267 +- src/pulse/volume.h | 59 +- src/pulse/xmalloc.h | 13 +- src/pulsecore/asyncq.c | 18 +- src/pulsecore/aupdate.c | 129 + src/pulsecore/aupdate.h | 98 + src/pulsecore/authkey.c | 2 +- src/pulsecore/avahi-wrap.c | 9 +- src/pulsecore/card.c | 60 +- src/pulsecore/card.h | 11 +- src/pulsecore/cli-command.c | 116 +- src/pulsecore/cli-text.c | 114 +- src/pulsecore/cli.c | 13 + src/pulsecore/conf-parser.c | 50 +- src/pulsecore/core-rtclock.c | 199 ++ src/pulsecore/core-rtclock.h | 51 + src/pulsecore/core-scache.c | 49 +- src/pulsecore/core-util.c | 454 ++- src/pulsecore/core-util.h | 19 +- src/pulsecore/core.c | 28 +- src/pulsecore/core.h | 14 + src/pulsecore/database-gdbm.c | 249 ++ src/pulsecore/database-tdb.c | 227 ++ src/pulsecore/database.h | 61 + src/pulsecore/dbus-shared.c | 107 + src/pulsecore/dbus-shared.h | 42 + src/pulsecore/dbus-util.c | 424 +++ src/pulsecore/dbus-util.h | 63 + src/pulsecore/endianmacros.h | 8 +- src/pulsecore/hashmap.c | 42 + src/pulsecore/hashmap.h | 17 +- src/pulsecore/hook-list.c | 6 + src/pulsecore/hook-list.h | 2 + src/pulsecore/idxset.c | 14 + src/pulsecore/idxset.h | 7 + src/pulsecore/ioline.c | 48 +- src/pulsecore/ioline.h | 11 + src/pulsecore/ipacl.h | 4 +- src/pulsecore/llist.h | 6 + src/pulsecore/log.c | 48 +- src/pulsecore/log.h | 4 + src/pulsecore/ltdl-helper.h | 1 - src/pulsecore/macro.h | 51 +- src/pulsecore/memblock.c | 88 +- src/pulsecore/memblockq.c | 82 +- src/pulsecore/memblockq.h | 7 +- src/pulsecore/memtrap.c | 230 ++ src/pulsecore/memtrap.h | 51 + src/pulsecore/mime-type.c | 182 ++ src/pulsecore/mime-type.h | 37 + src/pulsecore/modargs.c | 73 +- src/pulsecore/modargs.h | 2 + src/pulsecore/modinfo.c | 5 + src/pulsecore/modinfo.h | 1 + src/pulsecore/module.c | 9 + src/pulsecore/module.h | 4 + src/pulsecore/mutex-posix.c | 2 + src/pulsecore/mutex.h | 4 + src/pulsecore/native-common.h | 10 +- src/pulsecore/object.c | 4 +- src/pulsecore/parseaddr.c | 26 +- src/pulsecore/parseaddr.h | 8 +- src/pulsecore/pdispatch.c | 32 +- src/pulsecore/pdispatch.h | 2 +- src/pulsecore/proplist-util.c | 29 +- src/pulsecore/protocol-esound.c | 34 +- src/pulsecore/protocol-http.c | 681 +++- src/pulsecore/protocol-http.h | 6 +- src/pulsecore/protocol-native.c | 794 +++-- src/pulsecore/protocol-simple.c | 2 +- src/pulsecore/pstream.c | 8 +- src/pulsecore/ratelimit.c | 7 +- src/pulsecore/refcnt.h | 44 +- src/pulsecore/rtkit.c | 189 ++ src/pulsecore/rtkit.h | 62 + src/pulsecore/rtpoll.c | 222 +- src/pulsecore/rtpoll.h | 3 - src/pulsecore/sample-util.c | 12 +- src/pulsecore/sample-util.h | 59 + src/pulsecore/sconv-s16le.c | 10 +- src/pulsecore/sconv.c | 2 +- src/pulsecore/semaphore-posix.c | 22 + src/pulsecore/semaphore.h | 15 + src/pulsecore/shm.c | 57 +- src/pulsecore/sink-input.c | 216 +- src/pulsecore/sink-input.h | 33 +- src/pulsecore/sink.c | 729 ++++- src/pulsecore/sink.h | 76 +- src/pulsecore/sndfile-util.c | 462 +++ src/pulsecore/sndfile-util.h | 52 + src/pulsecore/socket-client.c | 22 +- src/pulsecore/socket-client.h | 2 +- src/pulsecore/socket-server.c | 23 +- src/pulsecore/sound-file-stream.c | 51 +- src/pulsecore/sound-file.c | 102 +- src/pulsecore/sound-file.h | 2 +- src/pulsecore/source-output.c | 114 +- src/pulsecore/source-output.h | 14 +- src/pulsecore/source.c | 376 ++- src/pulsecore/source.h | 45 +- src/pulsecore/strbuf.c | 7 + src/pulsecore/strbuf.h | 1 + src/pulsecore/strlist.c | 12 + src/pulsecore/strlist.h | 6 + src/pulsecore/time-smoother.c | 79 +- src/pulsecore/time-smoother.h | 14 +- src/t.csv | 2551 +++++++++++++++ src/tests/alsa-time-test.c | 2 +- src/tests/gtk-test.c | 41 +- src/tests/interpol-test.c | 42 +- src/tests/ipacl-test.c | 6 +- src/tests/mainloop-test.c | 8 +- src/tests/memblockq-test.c | 18 +- src/tests/mix-test.c | 97 +- src/tests/proplist-test.c | 14 + src/tests/resampler-test.c | 75 +- src/tests/rtpoll-test.c | 6 - src/tests/rtstutter.c | 2 + src/tests/sigbus-test.c | 70 + src/tests/smoother-test.c | 8 +- src/tests/thread-mainloop-test.c | 8 +- src/tests/voltest.c | 3 + src/tests/volume-ui.py | 29 +- src/utils/pabrowse.c | 7 +- src/utils/pacat.c | 738 +++-- src/utils/pacmd.c | 26 +- src/utils/pactl.c | 343 +- src/utils/pasuspender.c | 5 +- 324 files changed, 77174 insertions(+), 13671 deletions(-) create mode 100755 git-version-gen create mode 100644 po/as.po create mode 100644 po/bn_IN.po create mode 100644 po/de_CH.po create mode 100644 po/gu.po create mode 100644 po/hi.po create mode 100644 po/kn.po create mode 100644 po/mr.po create mode 100644 po/nl.po create mode 100644 po/or.po create mode 100644 po/pt.po create mode 100644 po/sr.po create mode 100644 po/sr@latin.po create mode 100644 po/ta.po create mode 100644 po/te.po create mode 100644 po/uk.po create mode 100644 shave create mode 100644 shave-libtool create mode 100644 src/log create mode 100644 src/modules/alsa/alsa-mixer.c create mode 100644 src/modules/alsa/alsa-mixer.h create mode 100644 src/modules/alsa/mixer/paths/analog-input-aux.conf create mode 100644 src/modules/alsa/mixer/paths/analog-input-fm.conf create mode 100644 src/modules/alsa/mixer/paths/analog-input-linein.conf create mode 100644 src/modules/alsa/mixer/paths/analog-input-mic-line.conf create mode 100644 src/modules/alsa/mixer/paths/analog-input-mic.conf create mode 100644 src/modules/alsa/mixer/paths/analog-input-mic.conf.common create mode 100644 src/modules/alsa/mixer/paths/analog-input-tvtuner.conf create mode 100644 src/modules/alsa/mixer/paths/analog-input-video.conf create mode 100644 src/modules/alsa/mixer/paths/analog-input.conf create mode 100644 src/modules/alsa/mixer/paths/analog-input.conf.common create mode 100644 src/modules/alsa/mixer/paths/analog-output-headphones.conf create mode 100644 src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf create mode 100644 src/modules/alsa/mixer/paths/analog-output-mono.conf create mode 100644 src/modules/alsa/mixer/paths/analog-output.conf create mode 100644 src/modules/alsa/mixer/paths/analog-output.conf.common create mode 100644 src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules create mode 100644 src/modules/alsa/mixer/profile-sets/default.conf create mode 100644 src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf create mode 100644 src/modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf create mode 100644 src/modules/alsa/mixer/samples/ATI IXP--Realtek ALC655 rev 0 create mode 100644 src/modules/alsa/mixer/samples/Brooktree Bt878--Bt87x create mode 100644 src/modules/alsa/mixer/samples/Ensoniq AudioPCI--Cirrus Logic CS4297A rev 3 create mode 100644 src/modules/alsa/mixer/samples/HDA ATI HDMI--ATI R6xx HDMI create mode 100644 src/modules/alsa/mixer/samples/HDA Intel--Analog Devices AD1981 create mode 100644 src/modules/alsa/mixer/samples/HDA Intel--Conexant CX20551 (Waikiki) create mode 100644 src/modules/alsa/mixer/samples/HDA Intel--Realtek ALC889A create mode 100644 src/modules/alsa/mixer/samples/Intel 82801CA-ICH3--Analog Devices AD1881A create mode 100644 src/modules/alsa/mixer/samples/Logitech USB Speaker--USB Mixer create mode 100644 src/modules/alsa/mixer/samples/USB Audio--USB Mixer create mode 100644 src/modules/alsa/mixer/samples/USB Device 0x46d:0x9a4--USB Mixer create mode 100644 src/modules/alsa/mixer/samples/VIA 8237--Analog Devices AD1888 create mode 100644 src/modules/alsa/mixer/samples/VIA 8237--C-Media Electronics CMI9761A+ create mode 100644 src/modules/jack/module-jack-sink.c create mode 100644 src/modules/jack/module-jack-source.c create mode 100644 src/modules/module-intended-roles.c create mode 100644 src/modules/module-rygel-media-server.c create mode 100644 src/modules/module-udev-detect.c create mode 100644 src/modules/raop/module-raop-discover.c create mode 100644 src/modules/raop/module-raop-sink.c create mode 100644 src/modules/reserve-monitor.c create mode 100644 src/modules/reserve-monitor.h create mode 100644 src/modules/x11/module-x11-bell.c create mode 100644 src/modules/x11/module-x11-cork-request.c create mode 100644 src/modules/x11/module-x11-publish.c create mode 100644 src/modules/x11/module-x11-xsmp.c create mode 100644 src/pulse/rtclock.c create mode 100644 src/pulse/rtclock.h create mode 100644 src/pulsecore/aupdate.c create mode 100644 src/pulsecore/aupdate.h create mode 100644 src/pulsecore/core-rtclock.c create mode 100644 src/pulsecore/core-rtclock.h create mode 100644 src/pulsecore/database-gdbm.c create mode 100644 src/pulsecore/database-tdb.c create mode 100644 src/pulsecore/database.h create mode 100644 src/pulsecore/dbus-shared.c create mode 100644 src/pulsecore/dbus-shared.h create mode 100644 src/pulsecore/dbus-util.c create mode 100644 src/pulsecore/dbus-util.h create mode 100644 src/pulsecore/memtrap.c create mode 100644 src/pulsecore/memtrap.h create mode 100644 src/pulsecore/mime-type.c create mode 100644 src/pulsecore/mime-type.h create mode 100644 src/pulsecore/rtkit.c create mode 100644 src/pulsecore/rtkit.h create mode 100644 src/pulsecore/sndfile-util.c create mode 100644 src/pulsecore/sndfile-util.h create mode 100644 src/t.csv create mode 100644 src/tests/sigbus-test.c diff --git a/.gitignore b/.gitignore index e2a5091d..85c0fe5f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -shave -shave-libtool +.version .*.swp ABOUT-NLS intltool-extract.in diff --git a/Makefile.am b/Makefile.am index 9a3ca7b7..5967f2ce 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,7 +17,7 @@ ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = bootstrap.sh LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo +EXTRA_DIST = bootstrap.sh git-version-gen LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo SUBDIRS = src doxygen man po MAINTAINERCLEANFILES = @@ -52,7 +52,7 @@ untabify: find \( -name '*.c' -o -name '*.h' \) -exec perl -i -pe 's/\t/ /g;' \{\} \; fedora-snapshot: dist - cp $(distdir).tar.gz $$HOME/cvs.fedora/pulseaudio/devel/$(distdir).git`date +%Y%m%d`.tar.gz + cp $(distdir).tar.gz $$HOME/cvs.fedora/pulseaudio/devel/$(distdir).tar.gz dist-hook: if test -d .git ; then \ @@ -60,14 +60,14 @@ dist-hook: chmod u+w ${distdir}/ChangeLog || true ; \ ( git-changelog.perl || echo "git-changelog.perl failed." ) > ${distdir}/ChangeLog 2>&1 ; \ fi - -update-shave: - for i in shave.in shave.m4 shave-libtool.in; do \ - wget -O $$i http://git.lespiau.name/cgit/shave/blob/\?path=shave/$$i ; \ - done - mv shave.m4 m4/ + echo $(VERSION) > $(distdir)/.tarball-version .PHONY: homepage distcleancheck doxygen +# see git-version-gen +BUILT_SOURCES = $(top_srcdir)/.version +$(top_srcdir)/.version: + echo $(VERSION) > $@-t && mv $@-t $@ + DISTCLEANFILES = \ po/.intltool-merge-cache diff --git a/PROTOCOL b/PROTOCOL index 8c5937b3..92cc2832 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -168,3 +168,23 @@ PA_COMMAND_GET_MODULE_INFO_LIST remove bool auto_unload add proplist at the end + +new messages: + + PA_COMMAND_GET_CARD_INFO + PA_COMMAND_GET_CARD_INFO_LIST + PA_COMMAND_SET_CARD_PROFILE + + PA_COMMAND_CLIENT_EVENT + PA_COMMAND_PLAYBACK_STREAM_EVENT + PA_COMMAND_RECORD_STREAM_EVENT + + PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED + PA_COMMAND_RECORD_BUFFER_ATTR_CHANGED + +### v16, implemented by >= 0.9.15 + +new messages: + + PA_COMMAND_SET_SINK_PORT + PA_COMMAND_SET_SOURCE_PORT diff --git a/bootstrap.sh b/bootstrap.sh index cb74121e..aa9755fa 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -16,7 +16,7 @@ # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -VERSION=1.10 +VERSION=1.11 run_versioned() { local P @@ -40,6 +40,17 @@ run_versioned() { set -ex +if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then + echo "Activating pre-commit hook." + cp -av .git/hooks/pre-commit.sample .git/hooks/pre-commit + chmod -c +x .git/hooks/pre-commit +fi + +if [ -f .tarball-version ]; then + echo "Marking tarball version as modified." + echo -n `cat .tarball-version | sed 's/-rebootstrapped$//'`-rebootstrapped >.tarball-version +fi + # We check for this here, because if pkg-config is not found in the # system, it's likely that the pkg.m4 macro file is also not present, # which will make PKG_PROG_PKG_CONFIG be undefined and the generated @@ -77,7 +88,7 @@ else run_versioned automake "$VERSION" --copy --foreign --add-missing if test "x$NOCONFIGURE" = "x"; then - CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var --enable-force-preopen --enable-shave "$@" + CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var --enable-force-preopen "$@" make clean fi fi diff --git a/configure.ac b/configure.ac index 029899c4..00121f82 100644 --- a/configure.ac +++ b/configure.ac @@ -22,15 +22,16 @@ AC_PREREQ(2.63) -m4_define(pa_major, [0]) -m4_define(pa_minor, [9]) -m4_define(pa_micro, [15]) - -AC_INIT([pulseaudio],[pa_major.pa_minor.pa_micro-test5],[mzchyfrnhqvb (at) 0pointer (dot) net]) +AC_INIT([pulseaudio], m4_esyscmd([./git-version-gen .tarball-version]), + [mzchyfrnhqvb (at) 0pointer (dot) net]) AC_CONFIG_SRCDIR([src/daemon/main.c]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-portability]) +AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax]) + +m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`) +m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`) +m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`) AC_SUBST(PA_MAJOR, pa_major) AC_SUBST(PA_MINOR, pa_minor) @@ -40,7 +41,7 @@ AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro) AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/]) AC_SUBST(PA_API_VERSION, 12) -AC_SUBST(PA_PROTOCOL_VERSION, 15) +AC_SUBST(PA_PROTOCOL_VERSION, 16) # The stable ABI for client applications, for the version info x:y:z # always will hold y=z @@ -75,6 +76,8 @@ case $host in ;; esac +AM_SILENT_RULES([yes]) + #### Checks for programs. #### # mkdir -p @@ -97,11 +100,7 @@ if test "x$M4" = xno ; then fi dnl Compiler flags -DESIRED_FLAGS="-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option" - -for flag in $DESIRED_FLAGS ; do - CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"]) -done +CC_CHECK_CFLAGS_APPEND([-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option]) dnl Linker flags. dnl Check whether the linker supports the -version-script option. @@ -114,6 +113,11 @@ CC_CHECK_LDFLAGS([${tmp_ldflag}], [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file']) AC_SUBST([VERSIONING_LDFLAGS]) +dnl Check for the proper way to build libraries that have no undefined +dnl symbols; on some hosts this needs to be avoided but the macro +dnl takes care of it. +CC_NOUNDEFINED + dnl Check whether to build tests by default (as compile-test) or not AC_ARG_ENABLE([default-build-tests], AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check])) @@ -274,7 +278,7 @@ AC_CHECK_HEADER([ltdl.h], [LIBLTDL=]) AS_IF([test "x$LIBLTDL" = "x"], - [AC_MSG_ERROR([Unable to find libltdl.])]) + [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])]) AC_SUBST([LIBLTDL]) #### Determine build environment #### @@ -300,7 +304,7 @@ AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1") AC_HEADER_STDC # POSIX -AC_CHECK_HEADERS([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \ +AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \ netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \ sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \ sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h]) @@ -324,23 +328,23 @@ AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0]) AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"]) -AC_CHECK_HEADERS([sys/prctl.h]) +AC_CHECK_HEADERS_ONCE([sys/prctl.h]) # Solaris -AC_CHECK_HEADERS([sys/filio.h]) +AC_CHECK_HEADERS_ONCE([sys/filio.h]) # Windows -AC_CHECK_HEADERS([windows.h winsock2.h ws2tcpip.h]) +AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h]) # NetBSD -AC_CHECK_HEADERS([sys/atomic.h]) +AC_CHECK_HEADERS_ONCE([sys/atomic.h]) # Other -AC_CHECK_HEADERS([sys/ioctl.h]) -AC_CHECK_HEADERS([byteswap.h]) -AC_CHECK_HEADERS([sys/syscall.h]) -AC_CHECK_HEADERS([sys/eventfd.h]) -AC_CHECK_HEADERS([execinfo.h]) +AC_CHECK_HEADERS_ONCE([sys/ioctl.h]) +AC_CHECK_HEADERS_ONCE([byteswap.h]) +AC_CHECK_HEADERS_ONCE([sys/syscall.h]) +AC_CHECK_HEADERS_ONCE([sys/eventfd.h]) +AC_CHECK_HEADERS_ONCE([execinfo.h]) #### Typdefs, structures, etc. #### @@ -391,19 +395,16 @@ AC_SEARCH_LIBS([connect], [socket]) # build, disabling its ability to make dlls. AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])]) -AC_CHECK_LIB(gdbm, gdbm_open) -AC_CHECK_HEADERS(gdbm.h, [], [AC_MSG_ERROR([gdbm.h not found])]) - #### Check for functions #### # ISO -AC_CHECK_FUNCS([lrintf strtof]) +AC_CHECK_FUNCS_ONCE([lrintf strtof]) # POSIX AC_FUNC_FORK AC_FUNC_GETGROUPS AC_FUNC_SELECT_ARGTYPES -AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \ +AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \ getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \ sigaction sleep sysconf pthread_setaffinity_np]) @@ -412,20 +413,20 @@ AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0]) AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1") # X/OPEN -AC_CHECK_FUNCS([readlink]) +AC_CHECK_FUNCS_ONCE([readlink]) # SUSv2 -AC_CHECK_FUNCS([ctime_r usleep]) +AC_CHECK_FUNCS_ONCE([ctime_r usleep]) # SUSv3 -AC_CHECK_FUNCS([strerror_r]) +AC_CHECK_FUNCS_ONCE([strerror_r]) # BSD -AC_CHECK_FUNCS([lstat]) +AC_CHECK_FUNCS_ONCE([lstat]) # Non-standard -AC_CHECK_FUNCS([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l]) +AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l]) AC_FUNC_ALLOCA @@ -458,7 +459,7 @@ AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation]) AC_SYS_LARGEFILE # Check for open64 to know if the current system does have open64() and similar functions -AC_CHECK_FUNCS([open64]) +AC_CHECK_FUNCS_ONCE([open64]) #### [lib]iconv #### @@ -537,11 +538,11 @@ fi #### Valgrind (optional) #### -AC_CHECK_HEADERS([valgrind/memcheck.h]) +AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h]) #### Sound file #### -PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.10 ]) +PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ]) AC_SUBST(LIBSNDFILE_CFLAGS) AC_SUBST(LIBSNDFILE_LIBS) @@ -601,6 +602,65 @@ AC_SUBST(LIBSAMPLERATE_LIBS) AC_SUBST(HAVE_LIBSAMPLERATE) AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1]) +#### Database support #### + +HAVE_TDB=0 +HAVE_GDBM=0 + +AC_ARG_WITH( + [database], + AS_HELP_STRING([--with-database=auto|tdb|gdbm],[Choose database backend.]),[],[with_database=auto]) + +if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then + PKG_CHECK_MODULES(TDB, [ tdb ], + [ + HAVE_TDB=1 + with_database=tdb + ], [ + if test "x${with_database}" = "xtdb" ; then + AC_MSG_ERROR([*** tdb not found]) + fi + ]) +fi + +if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then + have_gdbm=yes + + AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no]) + AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no]) + + if test "x${have_gdbm}" = "xyes" ; then + HAVE_GDBM=1 + GDBM_CFLAGS= + GDBM_LIBS=-lgdbm + with_database=gdbm + elif test "x${with_database}" = "xgdbm"; then + AC_MSG_ERROR([*** gdbm not found]) + fi +fi + +if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1; then + AC_MSG_ERROR([*** missing database backend]) +fi + +if test "x${HAVE_TDB}" = x1 ; then + AC_DEFINE([HAVE_TDB], 1, [Have tdb?]) +fi + +if test "x${HAVE_GDBM}" = x1 ; then + AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]) +fi + +AC_SUBST(TDB_CFLAGS) +AC_SUBST(TDB_LIBS) +AC_SUBST(HAVE_TDB) +AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1]) + +AC_SUBST(GDBM_CFLAGS) +AC_SUBST(GDBM_LIBS) +AC_SUBST(HAVE_GDBM) +AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1]) + #### OSS support (optional) #### AC_ARG_ENABLE([oss], @@ -1000,7 +1060,7 @@ AC_ARG_ENABLE([udev], ], [udev=auto]) if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then - PKG_CHECK_MODULES(UDEV, [ libudev >= 137 ], + PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], [ HAVE_UDEV=1 AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]) @@ -1095,44 +1155,6 @@ AC_SUBST(DBUS_LIBS) AC_SUBST(HAVE_DBUS) AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1]) -#### PolicyKit support (optional) #### - -AC_ARG_ENABLE([polkit], - AS_HELP_STRING([--disable-polkit],[Disable optional PolicyKit support]), - [ - case "${enableval}" in - yes) polkit=yes ;; - no) polkit=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-polkit) ;; - esac - ], - [polkit=auto]) - -if test "x${polkit}" != xno ; then - - PKG_CHECK_MODULES(POLKIT, [ polkit-dbus >= 0.7 ], - [ - HAVE_POLKIT=1 - AC_DEFINE([HAVE_POLKIT], 1, [Have PolicyKit]) - policydir=`pkg-config polkit-dbus --variable prefix`/share/PolicyKit/policy/ - AC_SUBST(policydir) - ], - [ - HAVE_POLKIT=0 - if test "x$polkit" = xyes ; then - AC_MSG_ERROR([*** PolicyKit support not found]) - fi - ]) -else - HAVE_POLKIT=0 -fi - -AC_SUBST(POLKIT_CFLAGS) -AC_SUBST(POLKIT_LIBS) -AC_SUBST(HAVE_POLKIT) -AM_CONDITIONAL([HAVE_POLKIT], [test "x$HAVE_POLKIT" = x1]) - - ### IPv6 connection support (optional) ### AC_ARG_ENABLE([ipv6], @@ -1219,15 +1241,6 @@ fi AC_SUBST(PA_SYSTEM_GROUP) AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon]) -AC_ARG_WITH(realtime_group,AS_HELP_STRING([--with-realtime-group=],[Group for users that are allowed to start the PulseAudio daemon with realtime scheduling (realtime)])) -if test -z "$with_realtime_group" ; then - PA_REALTIME_GROUP=pulse-rt -else - PA_REALTIME_GROUP=$with_realtime_group -fi -AC_SUBST(PA_REALTIME_GROUP) -AC_DEFINE_UNQUOTED(PA_REALTIME_GROUP,"$PA_REALTIME_GROUP", [Realtime group]) - AC_ARG_WITH(access_group,AS_HELP_STRING([--with-access-group=],[Group which is allowed access to a system-wide PulseAudio daemon (pulse-access)])) if test -z "$with_access_group" ; then PA_ACCESS_GROUP=pulse-access @@ -1293,8 +1306,8 @@ fi AC_ARG_WITH( [module-dir], - AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/]), - [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/"]) + AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]), + [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"]) AC_SUBST(modlibexecdir) @@ -1306,8 +1319,6 @@ AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"]) AC_CONFIG_FILES([ Makefile -shave -shave-libtool src/Makefile man/Makefile libpulse.pc @@ -1320,9 +1331,7 @@ src/pulse/version.h po/Makefile.in ]) -SHAVE_INIT AC_OUTPUT -SHAVE_OUTPUT # ========================================================================== ENABLE_X11=no @@ -1405,9 +1414,14 @@ if test "x${HAVE_BLUEZ}" = "x1" ; then ENABLE_BLUEZ=yes fi -ENABLE_POLKIT=no -if test "x${HAVE_POLKIT}" = "x1" ; then - ENABLE_POLKIT=yes +ENABLE_GDBM=no +if test "x${HAVE_GDBM}" = "x1" ; then + ENABLE_GDBM=yes +fi + +ENABLE_TDB=no +if test "x${HAVE_TDB}" = "x1" ; then + ENABLE_TDB=yes fi ENABLE_OPENSSL=no @@ -1453,13 +1467,13 @@ echo " Enable BlueZ: ${ENABLE_BLUEZ} Enable TCP Wrappers: ${ENABLE_TCPWRAP} Enable libsamplerate: ${ENABLE_LIBSAMPLERATE} - Enable PolicyKit: ${ENABLE_POLKIT} Enable IPv6: ${ENABLE_IPV6} Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL} + Enable tdb: ${ENABLE_TDB} + Enable gdbm: ${ENABLE_GDBM} System User: ${PA_SYSTEM_USER} System Group: ${PA_SYSTEM_GROUP} - Realtime Group: ${PA_REALTIME_GROUP} Access Group: ${PA_ACCESS_GROUP} Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET} Force preopen: ${FORCE_PREOPEN} diff --git a/git-version-gen b/git-version-gen new file mode 100755 index 00000000..ae3988ea --- /dev/null +++ b/git-version-gen @@ -0,0 +1,153 @@ +#!/bin/sh +# Print a version string. +scriptversion=2008-04-08.07 + +# Copyright (C) 2007-2008 Free Software Foundation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/. +# It may be run two ways: +# - from a git repository in which the "git describe" command below +# produces useful output (thus requiring at least one signed tag) +# - from a non-git-repo directory containing a .tarball-version file, which +# presumes this script is invoked like "./git-version-gen .tarball-version". + +# In order to use intra-version strings in your project, you will need two +# separate generated version string files: +# +# .tarball-version - present only in a distribution tarball, and not in +# a checked-out repository. Created with contents that were learned at +# the last time autoconf was run, and used by git-version-gen. Must not +# be present in either $(srcdir) or $(builddir) for git-version-gen to +# give accurate answers during normal development with a checked out tree, +# but must be present in a tarball when there is no version control system. +# Therefore, it cannot be used in any dependencies. GNUmakefile has +# hooks to force a reconfigure at distribution time to get the value +# correct, without penalizing normal development with extra reconfigures. +# +# .version - present in a checked-out repository and in a distribution +# tarball. Usable in dependencies, particularly for files that don't +# want to depend on config.h but do want to track version changes. +# Delete this file prior to any autoconf run where you want to rebuild +# files to pick up a version string change; and leave it stale to +# minimize rebuild time after unrelated changes to configure sources. +# +# It is probably wise to add these two files to .gitignore, so that you +# don't accidentally commit either generated file. +# +# Use the following line in your configure.ac, so that $(VERSION) will +# automatically be up-to-date each time configure is run (and note that +# since configure.ac no longer includes a version string, Makefile rules +# should not depend on configure.ac for version updates). +# +# AC_INIT([GNU project], +# m4_esyscmd([build-aux/git-version-gen .tarball-version]), +# [bug-project@example]) +# +# Then use the following lines in your Makefile.am, so that .version +# will be present for dependencies, and so that .tarball-version will +# exist in distribution tarballs. +# +# BUILT_SOURCES = $(top_srcdir)/.version +# $(top_srcdir)/.version: +# echo $(VERSION) > $@-t && mv $@-t $@ +# dist-hook: +# echo $(VERSION) > $(distdir)/.tarball-version + +case $# in + 1) ;; + *) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version"; exit 1;; +esac + +tarball_version_file=$1 +nl=' +' + +# First see if there is a tarball-only version file. +# then try "git describe", then default. +if test -f $tarball_version_file +then + v=`cat $tarball_version_file` || exit 1 + case $v in + *$nl*) v= ;; # reject multi-line output + [0-9]*) ;; + *) v= ;; + esac + test -z "$v" \ + && echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2 +fi + +if test -n "$v" +then + : # use $v +elif test -d .git \ + && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \ + || git describe --abbrev=4 HEAD 2>/dev/null` \ + && case $v in + v[0-9]*) ;; + *) (exit 1) ;; + esac +then + # Is this a new git that lists number of commits since the last + # tag or the previous older version that did not? + # Newer: v6.10-77-g0f8faeb + # Older: v6.10-g0f8faeb +# case $v in +# *-*-*) : git describe is okay three part flavor ;; +# *-*) +# : git describe is older two part flavor +# # Recreate the number of commits and rewrite such that the +# # result is the same as if we were using the newer version +# # of git describe. +# vtag=`echo "$v" | sed 's/-.*//'` +# numcommits=`git rev-list "$vtag"..HEAD | wc -l` +# v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; +# ;; +# esac + + # Change the first '-' to a '.', so version-comparing tools work properly. + # Remove the "g" in git describe's output string, to save a byte. +# v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; + : +else + v=UNKNOWN +fi + +v=`echo "$v" |sed 's/^v//'` + +# Don't declare a version "dirty" merely because a time stamp has changed. +git status > /dev/null 2>&1 + +dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty= +case "$dirty" in + '') ;; + *) # Append the suffix only if there isn't one already. + case $v in + *-dirty) ;; + *) v="$v-dirty" ;; + esac ;; +esac + +# Omit the trailing newline, so that m4_esyscmd can use the result directly. +echo "$v" | tr -d '\012' + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/m4/attributes.m4 b/m4/attributes.m4 index 65f83788..28fac277 100644 --- a/m4/attributes.m4 +++ b/m4/attributes.m4 @@ -1,6 +1,6 @@ dnl Macros to check the presence of generic (non-typed) symbols. -dnl Copyright (c) 2006-2007 Diego Pettenò -dnl Copyright (c) 2006-2007 xine project +dnl Copyright (c) 2006-2008 Diego Pettenò +dnl Copyright (c) 2006-2008 xine project dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by @@ -32,6 +32,9 @@ dnl distribute a modified version of the Autoconf Macro, you may extend dnl this special exception to the GPL to apply to your modified version as dnl well. +dnl Check if the flag is supported by compiler +dnl CC_CHECK_CFLAGS_SILENT([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) + AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [ AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]), [ac_save_CFLAGS="$CFLAGS" @@ -46,6 +49,9 @@ AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [ [$2], [$3]) ]) +dnl Check if the flag is supported by compiler (cacheable) +dnl CC_CHECK_CFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) + AC_DEFUN([CC_CHECK_CFLAGS], [ AC_CACHE_CHECK([if $CC supports $1 flag], AS_TR_SH([cc_cv_cflags_$1]), @@ -56,6 +62,28 @@ AC_DEFUN([CC_CHECK_CFLAGS], [ [$2], [$3]) ]) +dnl CC_CHECK_CFLAG_APPEND(FLAG, [action-if-found], [action-if-not-found]) +dnl Check for CFLAG and appends them to CFLAGS if supported +AC_DEFUN([CC_CHECK_CFLAG_APPEND], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_cflags_$1]), + CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! + ) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [CFLAGS="$CFLAGS $1"; DEBUG_CFLAGS="$DEBUG_CFLAGS $1"; $2], [$3]) +]) + +dnl CC_CHECK_CFLAGS_APPEND([FLAG1 FLAG2], [action-if-found], [action-if-not]) +AC_DEFUN([CC_CHECK_CFLAGS_APPEND], [ + for flag in $1; do + CC_CHECK_CFLAG_APPEND($flag, [$2], [$3]) + done +]) + +dnl Check if the flag is supported by linker (cacheable) +dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) + AC_DEFUN([CC_CHECK_LDFLAGS], [ AC_CACHE_CHECK([if $CC supports $1 flag], AS_TR_SH([cc_cv_ldflags_$1]), @@ -63,7 +91,7 @@ AC_DEFUN([CC_CHECK_LDFLAGS], [ LDFLAGS="$LDFLAGS $1" AC_LINK_IFELSE([int main() { return 1; }], [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], - [eval "AS_TR_SH([cc_cv_ldflags_$1])='no'"]) + [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) LDFLAGS="$ac_save_LDFLAGS" ]) @@ -71,6 +99,31 @@ AC_DEFUN([CC_CHECK_LDFLAGS], [ [$2], [$3]) ]) +dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for +dnl the current linker to avoid undefined references in a shared object. +AC_DEFUN([CC_NOUNDEFINED], [ + dnl We check $host for which systems to enable this for. + AC_REQUIRE([AC_CANONICAL_HOST]) + + case $host in + dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads + dnl are requested, as different implementations are present; to avoid problems + dnl use -Wl,-z,defs only for those platform not behaving this way. + *-freebsd* | *-openbsd*) ;; + *) + dnl First of all check for the --no-undefined variant of GNU ld. This allows + dnl for a much more readable commandline, so that people can understand what + dnl it does without going to look for what the heck -z defs does. + for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do + CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"]) + break + done + ;; + esac + + AC_SUBST([LDFLAGS_NOUNDEFINED]) +]) + dnl Check for a -Werror flag or equivalent. -Werror is the GCC dnl and ICC flag that tells the compiler to treat all the warnings dnl as fatal. We usually need this option to make sure that some diff --git a/man/pulse-daemon.conf.5.xml.in b/man/pulse-daemon.conf.5.xml.in index afa7ca00..68bcb77f 100644 --- a/man/pulse-daemon.conf.5.xml.in +++ b/man/pulse-daemon.conf.5.xml.in @@ -163,6 +163,14 @@ USA. memory overcommit.

+ + - - @@ -296,6 +297,23 @@ USA. might alter this setting.

+ + + + + +
@@ -371,11 +389,13 @@ USA. @@ -401,7 +421,8 @@ USA. these buffer metrics for machines with high scheduling latencies. Not all possible values that may be configured here are available in all hardware. The driver will to find the nearest - setting supported.

+ setting supported. Modern drivers that support timer-based + scheduling ignore these options.