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
> 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