Merge pull request #34507 from jtojnar/pipewire

pipewire: init at 0.1.8
This commit is contained in:
Jan Tojnar 2018-02-14 02:29:39 +01:00 committed by GitHub
commit 44695e7045
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 93 additions and 2 deletions

View File

@ -201,6 +201,7 @@
./services/desktops/dleyna-renderer.nix ./services/desktops/dleyna-renderer.nix
./services/desktops/dleyna-server.nix ./services/desktops/dleyna-server.nix
./services/desktops/geoclue2.nix ./services/desktops/geoclue2.nix
./services/desktops/pipewire.nix
./services/desktops/gnome3/at-spi2-core.nix ./services/desktops/gnome3/at-spi2-core.nix
./services/desktops/gnome3/chrome-gnome-shell.nix ./services/desktops/gnome3/chrome-gnome-shell.nix
./services/desktops/gnome3/evolution-data-server.nix ./services/desktops/gnome3/evolution-data-server.nix

View File

@ -0,0 +1,23 @@
# pipewire service.
{ config, lib, pkgs, ... }:
with lib;
{
###### interface
options = {
services.pipewire = {
enable = mkEnableOption "pipewire service";
};
};
###### implementation
config = mkIf config.services.pipewire.enable {
environment.systemPackages = [ pkgs.pipewire ];
systemd.packages = [ pkgs.pipewire ];
};
meta.maintainers = with lib.maintainers; [ jtojnar ];
}

View File

@ -1,7 +1,7 @@
{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo { fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
, pango, cogl, clutter, libstartup_notification, zenity, libcanberra_gtk3 , pango, cogl, clutter, libstartup_notification, zenity, libcanberra_gtk3
, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput , libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput
, libgudev, libwacom, xwayland, autoreconfHook }: , pipewire, libgudev, libwacom, xwayland, autoreconfHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
inherit (import ./src.nix fetchurl) name src; inherit (import ./src.nix fetchurl) name src;
@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
configureFlags = [ configureFlags = [
"--with-x" "--with-x"
"--disable-static" "--disable-static"
"--enable-remote-desktop"
"--enable-shape" "--enable-shape"
"--enable-sm" "--enable-sm"
"--enable-startup-notification" "--enable-startup-notification"
@ -18,6 +19,15 @@ stdenv.mkDerivation rec {
"--with-xwayland-path=${xwayland}/bin/Xwayland" "--with-xwayland-path=${xwayland}/bin/Xwayland"
]; ];
patches = [
# Pipewire 0.1.8 compatibility
(fetchurl {
name = "mutter-pipewire-0.1.8-compat.patch";
url = https://bugzilla.gnome.org/attachment.cgi?id=367356;
sha256 = "10bx5zf11wwhhy686w11ggikk56pbxydpbk9fbd947ir385x92cz";
})
];
propagatedBuildInputs = [ propagatedBuildInputs = [
# required for pkgconfig to detect mutter-clutter # required for pkgconfig to detect mutter-clutter
libXtst libXtst
@ -30,7 +40,7 @@ stdenv.mkDerivation rec {
gnome_desktop cairo pango cogl clutter zenity libstartup_notification gnome_desktop cairo pango cogl clutter zenity libstartup_notification
gnome3.geocode_glib libinput libgudev libwacom gnome3.geocode_glib libinput libgudev libwacom
libcanberra_gtk3 zenity xkeyboard_config libxkbfile libcanberra_gtk3 zenity xkeyboard_config libxkbfile
libxkbcommon libxkbcommon pipewire
]; ];
preFixup = '' preFixup = ''

View File

@ -0,0 +1,47 @@
{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, doxygen, graphviz, valgrind
, glib, dbus, gst_all_1, v4l_utils, alsaLib, ffmpeg, libjack2, libudev, libva, xlibs
, sbc, SDL2
}:
let
version = "0.1.8";
in stdenv.mkDerivation rec {
name = "pipewire-${version}";
src = fetchFromGitHub {
owner = "PipeWire";
repo = "pipewire";
rev = version;
sha256 = "1nim8d1lsf6yxk97piwmsz686w84b09lk6cagbyjr9m3k2hwybqn";
};
outputs = [ "out" "dev" "doc" ];
nativeBuildInputs = [
meson ninja pkgconfig doxygen graphviz valgrind
];
buildInputs = [
glib dbus gst_all_1.gst-plugins-base gst_all_1.gstreamer v4l_utils
alsaLib ffmpeg libjack2 libudev libva xlibs.libX11 sbc SDL2
];
patches = [
./fix-paths.patch
];
mesonFlags = [
"-Denable_docs=true"
"-Denable_gstreamer=true"
];
doCheck = true;
checkPhase = "meson test";
meta = with stdenv.lib; {
description = "Server and user space API to deal with multimedia pipelines";
homepage = http://pipewire.org/;
license = licenses.lgpl21;
platforms = platforms.linux;
maintainers = with maintainers; [ jtojnar ];
};
}

View File

@ -0,0 +1,8 @@
--- a/src/daemon/systemd/user/meson.build
+++ b/src/daemon/systemd/user/meson.build
@@ -1,4 +1,4 @@
-systemd_user_services_dir = systemd.get_pkgconfig_variable('systemduserunitdir')
+systemd_user_services_dir = join_paths(get_option('prefix'), 'etc', 'systemd', 'user')
install_data(sources : 'pipewire.socket', install_dir : systemd_user_services_dir)

View File

@ -7034,6 +7034,8 @@ with pkgs;
pew = callPackage ../development/tools/pew {}; pew = callPackage ../development/tools/pew {};
pipenv = callPackage ../development/tools/pipenv {}; pipenv = callPackage ../development/tools/pipenv {};
pipewire = callPackage ../development/libraries/pipewire {};
pyrex = pyrex095; pyrex = pyrex095;
pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { }; pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };