nixpkgs/pkgs/development/libraries/pipewire/0.2.nix
Sergei Trofimovich c9f22532e4 pipewire_0_2: add -fcommon workaround
Without the change build fails as:

    $ nix build --impure --expr 'with import ./. {}; pipewire_0_2.override { stdenv = clang12Stdenv; }' -L
    ...
    ld: spa/plugins/bluez5/libspa-bluez5.so.p/bluez5-monitor.c.o:(.bss+0x0):
      multiple definition of `spa_a2dp_sink_factory'

Newer versions don't require the fix as upstream removed the code completely later.
2022-02-21 07:56:06 +00:00

54 lines
1.4 KiB
Nix

{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, doxygen, graphviz
, glib, dbus, gst_all_1, alsa-lib, ffmpeg_4, libjack2, udev, libva, xorg
, sbc, SDL2, makeFontsConf
}:
let
fontsConf = makeFontsConf {
fontDirectories = [ ];
};
in stdenv.mkDerivation rec {
pname = "pipewire";
version = "0.2.7";
src = fetchFromGitHub {
owner = "PipeWire";
repo = "pipewire";
rev = version;
sha256 = "1q5wrqnhhs6r49p8yvkw1pl0cnsd4rndxy4h5lvdydwgf1civcwc";
};
outputs = [ "out" "lib" "dev" "doc" ];
nativeBuildInputs = [
meson ninja pkg-config doxygen graphviz
];
buildInputs = [
glib dbus gst_all_1.gst-plugins-base gst_all_1.gstreamer
alsa-lib ffmpeg_4 libjack2 udev libva xorg.libX11 sbc SDL2
];
# Workaround build on gcc-10+ and clang11+:
# spa/plugins/bluez5/libspa-bluez5.so.p/bluez5-monitor.c.o:(.bss+0x0):
# multiple definition of `spa_a2dp_sink_factory'
NIX_CFLAGS_COMPILE = [ "-fcommon" ];
mesonFlags = [
"-Ddocs=true"
"-Dgstreamer=enabled"
];
PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = "${placeholder "out"}/lib/systemd/user";
FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
doCheck = true;
meta = with lib; {
description = "Server and user space API to deal with multimedia pipelines";
homepage = "https://pipewire.org/";
license = licenses.lgpl21;
platforms = platforms.linux;
maintainers = with maintainers; [ jtojnar ];
};
}