Bug 244624 - audio/linux-c7-alsa-plugins-pulseaudio: conf symlink should be relative
Summary: audio/linux-c7-alsa-plugins-pulseaudio: conf symlink should be relative
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-emulation (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-06 06:38 UTC by Yuri Pankov
Modified: 2020-03-06 12:53 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (emulation)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Pankov freebsd_committer freebsd_triage 2020-03-06 06:38:27 UTC
audio/linux-c7-alsa-plugins-pulseaudio installs the following symlink:

/compat/linux/etc/alsa/conf.d/50-pulseaudio.conf -> /usr/share/alsa/alsa.conf.d/50-pulseaudio.conf

This does not work as in case of symlinks there's no translation.  This breaks several "Enhanced Edition" games (BG, PST, IWD) -- the game starts, but there's no sound:

AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"
ALSA lib conf.c:3652:(config_file_open) cannot access file /etc/alsa/conf.d/50-pulseaudio.conf
ALSA lib conf.c:3572:(snd_config_hooks_call) function snd_config_hook_load returned error: No such file or directory
ALSA lib conf.c:4026:(snd_config_update_r) hooks failed, removing configuration
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': No such file or directory

Copying the target file instead of symlink helps, as well as the "fixed" version of symlink:

/compat/linux/etc/alsa/conf.d/50-pulseaudio.conf -> ../../../usr/share/alsa/alsa.conf.d/50-pulseaudio.conf

I'm still getting the warning, but sound works:

AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"

Yes, it could be probably fixed in linuxolator, but as it's the only such symlink within the linux-c7 ports it should be easier to fix the port instead.  I'm not sure how about the proper changes to the port, so no patch provided.
Comment 1 commit-hook freebsd_committer freebsd_triage 2020-03-06 12:47:06 UTC
A commit references this bug:

Author: danfe
Date: Fri Mar  6 12:47:02 UTC 2020
New revision: 527878
URL: https://svnweb.freebsd.org/changeset/ports/527878

Log:
  Replace the symlink to an absolute patch, which escapes Linuxolator's
  translation, to a relative one.

  This allows to unbreak several "Enhanced Edition" games (BG, PST, IWD)
  when previously, the game started, but there was no sound.

  PR:	244624

Changes:
  head/audio/linux-c7-alsa-plugins-pulseaudio/Makefile
Comment 2 Alexey Dokuchaev freebsd_committer freebsd_triage 2020-03-06 12:53:01 UTC
Absolute symlinks are evil indeed, thanks for the report.  Should be fixed as of ports r527878.