[Slackbuilds-users] Pulseaudio

Christoph Willing chris.willing at iinet.net.au
Sun Oct 11 10:58:05 UTC 2015

On 11/10/15 17:47, B Watson wrote:
> On 10/11/15, Christoph Willing <chris.willing at iinet.net.au> wrote:
>> My guess is that your build environment is incomplete i.e. not a full
>> Slackware installation. In particular, ensure that the bash-completion
>> package is installed; its absence produces exactly the symptom you've
>> described.
> bash-completion is in /extra, not Slackware proper, it's not installed
> when you pick "full install". If pulseaudio actually depends on it,
> that fact should be mentioned in the README... but, it doesn't seem to.

Thanks, I missed that the bash-completion package is from extra - I'll 
update the README

> I just built pulse on Slackware64 14.1 without bash-completion installed,
> it didn't create any dangling symlinks in /. Instead it installed them in
> /etc/bash_completion.d as expected. The directory is part of the package,
> so it'll get created if it's missing, before the doinst.sh runs and
> tries to create symlinks there.

Which pulseaudio version? The most recent 7.0 uses the 
/usr/share/bash-completion/completions directory, as does the 
bash-completion package itself (not /etc/bash_completion.d).

You're right that the directory (either 
/usr/share/bash-completion/completions or /etc/bash_completion.d) is 
created by 'make install' and a pulseaudio script is installed there. 
However the symlinks to that pulseaudio completion script are generated 
separately, using a different, flawed, method (see below) to determine 
where to generate them.

> Don't know what caused the original poster's problem though.

I think the missing bash-completion package remains the cause. If you 
look at the pulseaudio top level Makefile after the configure stage is 
done, you'll find:

         $(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pactl
         $(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pacmd
         $(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pasuspender
         $(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/padsp
         $(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/pacat
         $(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/paplay
         $(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/parec
         $(LN_S) -f pulseaudio $(DESTDIR)$(bashcompletiondir)/parecord

Since $(bashcompletiondir) is empty if the bash-completion package isn't 
found, this install target generates the useless links described by the 
OP. The bash-completion package is considered found by the configure 
stage if it can find the bash-completion.pc file, part of the 
bash-completion package. Only then can the bashcompletiondir variable be 
set to something reasonable (non-empty at least).


More information about the SlackBuilds-users mailing list