Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#53557 closed defect (fixed)

pulseaudio @10.0_2 is not correctly set up on Mac OS X 10.6.8/Snow Leopard

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: Ionic (Mihai Moldovan)
Priority: Normal Milestone:
Component: ports Version: 2.4.0
Keywords: Cc: Peter_Dyballa@…
Port: pulseaudio

Description

Configure complains:

configure: WARNING: unrecognized options: --disable-xen, --disable-systemd

The system option seems to have been split into three:

  --disable-systemd-daemon
                          Disable optional systemd daemon (socket activation)
                          support
  --disable-systemd-login Disable optional systemd login support
  --disable-systemd-journal
                          Disable optional systemd journal support

The Xen option has gone.

What worries me more is that speex is not found:

 ---{ pulseaudio 10.0-rebootstrapped }---

    prefix:                        /opt/local
    sysconfdir:                    ${prefix}/etc
    localstatedir:                 ${prefix}/var
    modlibexecdir:                 ${exec_prefix}/lib/pulse-10.0/modules
    System Runtime Path:           /opt/local/var/run/pulse
    System State Path:             /opt/local/var/lib/pulse
    System Config Path:            /opt/local/var/lib/pulse
    Zsh completions directory:     ${datarootdir}/zsh/site-functions
    Bash completions directory:    ${datarootdir}/bash-completion/completions
    Compiler:                      /opt/local/bin/clang-mp-3.4
    CFLAGS:                        -pipe -Os -arch x86_64 -Wall -W -Wextra -Wno-long-long -Wno-overlength-strings -Wundef -Wformat=2 -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 -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto -mmacosx-version-min=10.6 -isysroot /
    CPPFLAGS:                      -I/opt/local/include -DFASTPATH -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
    LIBS:                          -lgdbm  -framework CoreServices

    Enable memfd shared memory:    no
    Enable X11:                    yes
    Enable OSS Output:             no
    Enable OSS Wrapper:            no
    Enable EsounD:                 no
    Enable Alsa:                   no
    Enable CoreAudio:              yes
    Enable Solaris:                no
    Enable WaveOut:                no
    Enable GLib 2.0:               yes
    Enable Gtk+ 3.0:               yes
    Enable GConf:                  no
    Enable Avahi:                  no
    Enable Jack:                   no
    Enable Async DNS:              no
    Enable LIRC:                   no
    Enable D-Bus:                  yes
      Enable BlueZ 4:              no
      Enable BlueZ 5:              no
        Enable ofono headsets:     no
        Enable native headsets:    no
    Enable udev:                   no
      Enable HAL->udev compat:     no
    Enable systemd
      Daemon (Socket Activation):  no
      Login (Session Tracking):    no
      Journal (Logging):           no
    Enable TCP Wrappers:           no
    Enable libsamplerate:          no
    Enable IPv6:                   yes
    Enable OpenSSL (for Airtunes): no
    Enable fftw:                   yes
    Enable orc:                    yes
    Enable Adrian echo canceller:  yes
    Enable speex (resampler, AEC): no
    Enable soxr (resampler):       yes
    Enable WebRTC echo canceller:  no
    Enable gcov coverage:          no
    Enable unit tests:             no
    Database
      tdb:                         no
      gdbm:                        yes
      simple database:             no

    System User:                   pulse
    System Group:                  pulse
    Access Group:                  pulse-access
    Enable per-user EsounD socket: no
    Force preopen:                 no
    Preopened modules:             all

    Legacy Database Entry Support: yes


===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
You do not have udev support enabled. It is strongly recommended
that you enable udev support if your platform supports it as it is
the primary method used to detect hardware audio devices (on Linux)
and is thus a critical part of PulseAudio on that platform.
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====


===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
You do not have speex support enabled. It is strongly recommended
that you enable speex support if your platform supports it as it is
the primary method used for audio resampling and is thus a critical
part of PulseAudio on that platform.
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====

although installed:

  speex @1.2.0_0 (active)
  vorbis-tools @1.4.0_1+flac+speex (active)

Could be that Pulseaudio uses a different Speex, because the configure script looks for:

configure:27758: checking for LIBSPEEX
configure:27765: $PKG_CONFIG --exists --print-errors " speexdsp >= 1.2 "
Package speexdsp was not found in the pkg-config search path.
Perhaps you should add the directory containing `speexdsp.pc'
to the PKG_CONFIG_PATH environment variable
No package 'speexdsp' found
configure:27768: $? = 1
configure:27782: $PKG_CONFIG --exists --print-errors " speexdsp >= 1.2 "
Package speexdsp was not found in the pkg-config search path.
Perhaps you should add the directory containing `speexdsp.pc'
to the PKG_CONFIG_PATH environment variable
No package 'speexdsp' found
configure:27785: $? = 1
configure:27799: result: no
No package 'speexdsp' found

The speex port only installs /opt/local/lib/pkgconfig/speex.pc. When I manually

ln /opt/local/lib/pkgconfig/speex.pc /opt/local/lib/pkgconfig/speexdsp.pc

the library is found:

configure:27758: checking for LIBSPEEX
configure:27765: $PKG_CONFIG --exists --print-errors " speexdsp >= 1.2 "
configure:27768: $? = 0
configure:27782: $PKG_CONFIG --exists --print-errors " speexdsp >= 1.2 "
configure:27785: $? = 0
configure:27823: result: yes

and

    Enable fftw:                   yes
    Enable orc:                    yes
    Enable Adrian echo canceller:  yes
    Enable speex (resampler, AEC): yes
    Enable soxr (resampler):       yes
    Enable WebRTC echo canceller:  no

But build fails (another reason):

clang: warning: no such sysroot directory: '/' [-Wmissing-sysroot]
libtool: compile:  /opt/local/bin/clang-mp-3.4 -DHAVE_CONFIG_H -I. -I.. -I../src -I../src/modules -I../src/modules -DPA_ALSA_PATHS_DIR=\"\" -DPA_ALSA_PROFILE_SETS_DIR=\"\" -DPA_SRCDIR=\"/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-10.0/src\" -DPA_BUILDDIR=\"/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-10.0/src\" -DPULSE_LOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -DFASTPATH -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -std=gnu11 -D_THREAD_SAFE -pthread -pipe -Os -arch x86_64 -Wall -W -Wextra -Wno-long-long -Wno-overlength-strings -Wundef -Wformat=2 -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 -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto -mmacosx-version-min=10.6 -isysroot / -MT pulsecore/mime-type.lo -MD -MP -MF pulsecore/.deps/mime-type.Tpo -c pulsecore/mime-type.c  -fno-common -DPIC -o pulsecore/.libs/mime-type.o
clang: warning: no such sysroot directory: '/' [-Wmissing-sysroot]
pulsecore/protocol-simple.c:68:1: warning: unused function 'connection_ref' [-Wunused-function]
PA_DEFINE_PRIVATE_CLASS(connection, pa_msgobject);
^
./pulsecore/object.h:109:5: note: expanded from macro 'PA_DEFINE_PRIVATE_CLASS'
    PA_DECLARE_CLASS_COMMON(c);                                         \
    ^
./pulsecore/object.h:79:22: note: expanded from macro 'PA_DECLARE_CLASS_COMMON'
    static inline c* c##_ref(c *o) {                                    \
                     ^
<scratch space>:40:1: note: expanded from here
connection_ref
^
pulsecore/protocol-simple.c:68:1: warning: unused function 'connection_refcnt' [-Wunused-function]
./pulsecore/object.h:109:5: note: expanded from macro 'PA_DEFINE_PRIVATE_CLASS'
    PA_DECLARE_CLASS_COMMON(c);                                         \
    ^
./pulsecore/object.h:85:23: note: expanded from macro 'PA_DECLARE_CLASS_COMMON'
    static inline int c##_refcnt(c* o) {                                \
                      ^
<scratch space>:42:1: note: expanded from here
connection_refcnt
^
2 warnings generated.
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-10.0/src'

pulseaudio @10.0_1+x11 built before (without speex and /opt/local/lib/pkgconfig/speexdsp.pc).

Attachments (2)

main.log (183.6 KB) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
speexdsp.pc (298 bytes) - added by ballapete (Peter "Pete" Dyballa) 7 years ago.
The "speexdsp" pkg config file from installation on 2016-12-08.

Download all attachments as: .zip

Change History (10)

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: speexdsp.pc added

The "speexdsp" pkg config file from installation on 2016-12-08.

comment:1 Changed 7 years ago by Ionic (Mihai Moldovan)

Cc: ionic@… removed
Keywords: configure speex/speexdsp systemd removed
Owner: set to Ionic
Status: newaccepted

Please don't add random keywords. We have a page with a list of usable keywords.

If you CC'd yourself, that's generally not necessary, unless you didn't set up your email address in your Github profile. It's probably worth doing so and you can also hide it for other users. Not sure how trac reacts to that, though.


I'll fix up the systemd and Xen bits later. I must have missed the systemd breakup and Xen removal, both have taken place way before 8.0 it seems. That's not really a problem though, as OS X has neither systemd nor Xen...

The really interesting part is speex. I do have a speexdsp.pc file on my system. Do you want to know why? Because I'm using the speex-devel port... which is now older than the speex port (*sigh*, will have to sync that up.) It seems that between speex 1.2.0rc2 and speex 1.2.0, the package config file has been removed, but pulseaudio wasn't updated to take that into account. I'll probably have to patch PA for that.

Come to think of, I just took a look at your log file. Guess what - the reason for the build failing is not a different one, but indeed speex. The messages you posted are only harmless warnings. The gist is this:

:info:build pulsecore/resampler/speex.c:24:10: fatal error: 'speex/speex_resampler.h' file not found

I'll have to investigate speex.

comment:2 Changed 7 years ago by Ionic (Mihai Moldovan)

Okay, that's more complicated. Starting with 1.2.0rc2, speex and speexDSP are different packages now. So I'll probably need to create a new subport for speexDSP.

Last edited 7 years ago by Ionic (Mihai Moldovan) (previous) (diff)

comment:4 Changed 7 years ago by Mihai Moldovan <ionic@…>

Resolution: fixed
Status: acceptedclosed

In 99a8d902/macports-ports:

audio/pulseaudio: speex changes, maintenance, revbump.

PulseAudio doesn't need speex itself, but only its audio processing
library, called SpeexDSP. Now that we actually have ports for that
(since upstream split up Speex and SpeexDSP into separate packages),
depend upon libspeexdsp/speexDSP (or speexDSP-devel at the user's
discretion.)

Additionally, add the --with-speex configure flag for good measure and
replace --disable-systemd with the new options --disable-systemd-daemon,
--disable-systemd-login and --disable-systemd-journal. Drop the obsolete
and now unrecognized --disable-xen option. These options were removed or
changed quite a while ago, but these are non-functional changes, as we
don't have mentioned software packaged anyway.

Fixes: #53557

comment:5 Changed 7 years ago by Ionic (Mihai Moldovan)

Oh and please remember to delete your faulty speex.pc -> speexdsp.pc hardlink, otherwise you'll be in for some trouble when installing speexDSP...

comment:6 in reply to:  5 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to Ionic:

Oh and please remember to delete your faulty speex.pc -> speexdsp.pc hardlink, otherwise you'll be in for some trouble when installing speexDSP...

That has happened already yesterday! Hard-linking is so easy and with GNU Emacs and its *shell* buffer the command is so easy to recall…

The build went fine, speexDSP came in as binary package.

Thank you for the good and fast work!

comment:7 in reply to:  1 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to Ionic:

Please don't add random keywords. We have a page with a list of usable keywords.

OK, I'll see that I'll look at them!

If you CC'd yourself, that's generally not necessary, unless you didn't set up your email address in your Github profile. It's probably worth doing so and you can also hide it for other users. Not sure how trac reacts to that, though.

In the beginning I did not receive any eMails and wondered whether the maintainers were all asleep. I think my publiv eMail address was marked as being private. Which probably is also the reason that I did not receive any reaction to a completely different bug report…

I'll see /soon/ whether it now works!

comment:8 Changed 7 years ago by Ionic (Mihai Moldovan)

Hmm, yeah, please set your eMail address via https://trac.macports.org/prefs then. I think that should about cover it - and this way, your address can stay private even on Github.

Note: See TracTickets for help on using tickets.