diff options
| author | Yarny0 <41838844+Yarny0@users.noreply.github.com> | 2022-07-07 18:41:47 +0200 |
|---|---|---|
| committer | Yarny0 <41838844+Yarny0@users.noreply.github.com> | 2022-08-18 16:51:18 +0200 |
| commit | 3871f8be8d6de48d5f094fbe90a09e42cc0b289c (patch) | |
| tree | 534dd3ad9cd116ebd82dd0e19be7415c8b1247a5 /pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch | |
| parent | 78e5c0c97f9ab98b53ba8f1935bba1b1369c0ae5 (diff) | |
pulseaudioFull: fix wrapGApp wrapping
Since
https://github.com/NixOS/nixpkgs/commit/7a2605e0f3dc99e02cd577634f792f7a4d229378
the pulseaudio build recipe incorporates the `wrapGAppsHook`
wrapper setup-hook if `advancedBluetoothCodecs` are enabled.
This wrapper setup-hook -- like most wrappers --
wraps binaries in `$out/bin` by first renaming them,
then placing a wrapper script where the original binary was.
Unfortunatelly, pulseaudio doesn't like its
binary moved around after installation:
It records the binaries path during installation time
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/blob/e5ad31e873eed62bc580a86a61177047f9e8c491/meson.build#L154
then checks the path in `/proc/self/exe` and complains
> Jun 16 19:06:48 nixosb pulseaudio[2219]: W: [.pulseaudio-wra] main.c: /proc/self/exe does not point to /nix/store/bqfyzxwpxa2ydmyvh3j32xrm4chxbj22-pulseaudio-15.0/bin/pulseaudio, cannot self execute. Are you playing games?
if they don't match
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/blob/e5ad31e873eed62bc580a86a61177047f9e8c491/src/daemon/main.c#L577
Somehow, this also results in a real bug:
`pacmd` fails to connect to the pulseaudio server, see
https://github.com/NixOS/nixpkgs/issues/177915
To fix this issue, the commit at hand changes the
installation directory for binaries to `$out/.bin-unwrapped`.
After the installation, `$out/bin` is created by hand and
populated with symlinks to files in `$out/.bin-unwrapped`.
`wrapGAppsHook` doesn't know or care about the `.bin-unwrapped`
directory; it just sees all the symlinks in `bin`,
renames them and places wrapper scripts beside them.
Effectively, this leaves the original
binary in `.bin-unwrapped` unchanged!
So pulseaudio will find itself still in its oritinal place,
and "users" of the package can call pulseaudio
via the wrapper script in `bin` as usual.
Diffstat (limited to 'pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch')
0 files changed, 0 insertions, 0 deletions
