summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2021-08-09 00:02:48 +0000
committerGitHub <noreply@github.com>2021-08-09 00:02:48 +0000
commit444dac9eaf7d7de58e82708c89f82c25a093f077 (patch)
tree0ac70ed8ce9962c80e353cbec61a83eae3e31949
parentMerge release-21.05 into staging-next-21.05 (diff)
parentMerge pull request #131554 from NixOS/backport-127875-to-release-21.05 (diff)
downloadnixpkgs-444dac9eaf7d7de58e82708c89f82c25a093f077.tar.gz
Merge release-21.05 into staging-next-21.05
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--nixos/modules/services/desktops/pipewire/bluez-hardware.conf.json232
-rw-r--r--nixos/modules/services/desktops/pipewire/jack.conf.json14
-rw-r--r--nixos/modules/services/desktops/pipewire/media-session.conf.json1
-rw-r--r--nixos/modules/services/desktops/pipewire/pipewire-media-session.nix6
-rw-r--r--pkgs/development/libraries/libfreeaptx/default.nix31
-rw-r--r--pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch7
-rw-r--r--pkgs/development/libraries/pipewire/0090-pipewire-config-template-paths.patch8
-rw-r--r--pkgs/development/libraries/pipewire/default.nix16
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix2
11 files changed, 308 insertions, 17 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index eb42ca53cd2c..08a24a4f3482 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -5417,6 +5417,12 @@
githubId = 735008;
name = "Louis Taylor";
};
+ kranzes = {
+ email = "personal@ilanjoselevich.com";
+ github = "Kranzes";
+ githubId = 56614642;
+ name = "Ilan Joselevich";
+ };
krav = {
email = "kristoffer@microdisko.no";
github = "krav";
diff --git a/nixos/modules/services/desktops/pipewire/bluez-hardware.conf.json b/nixos/modules/services/desktops/pipewire/bluez-hardware.conf.json
new file mode 100644
index 000000000000..cae9e1bdba06
--- /dev/null
+++ b/nixos/modules/services/desktops/pipewire/bluez-hardware.conf.json
@@ -0,0 +1,232 @@
+{
+ "bluez5.features.device": [
+ {
+ "name": "Air 1 Plus",
+ "no-features": [
+ "hw-volume-mic"
+ ]
+ },
+ {
+ "name": "AirPods",
+ "no-features": [
+ "msbc-alt1",
+ "msbc-alt1-rtl"
+ ]
+ },
+ {
+ "name": "AirPods Pro",
+ "no-features": [
+ "msbc-alt1",
+ "msbc-alt1-rtl"
+ ]
+ },
+ {
+ "name": "AXLOIE Goin",
+ "no-features": [
+ "msbc-alt1",
+ "msbc-alt1-rtl"
+ ]
+ },
+ {
+ "name": "BAA 100",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "name": "JBL Endurance RUN BT",
+ "no-features": [
+ "msbc-alt1",
+ "msbc-alt1-rtl",
+ "sbc-xq"
+ ]
+ },
+ {
+ "name": "JBL LIVE650BTNC"
+ },
+ {
+ "name": "Soundcore Life P2-L",
+ "no-features": [
+ "msbc-alt1",
+ "msbc-alt1-rtl"
+ ]
+ },
+ {
+ "name": "Urbanista Stockholm Plus",
+ "no-features": [
+ "msbc-alt1",
+ "msbc-alt1-rtl"
+ ]
+ },
+ {
+ "address": "~^94:16:25:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^9c:64:8b:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^a0:e9:db:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^0c:a6:94:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^00:14:02:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^44:5e:f3:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^d4:9c:28:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^00:18:6b:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^b8:ad:3e:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^a0:e9:db:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^00:24:1c:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^00:11:b1:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^a4:15:66:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^00:14:f1:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^00:26:7e:",
+ "no-features": [
+ "hw-volume"
+ ]
+ },
+ {
+ "address": "~^90:03:b7:",
+ "no-features": [
+ "hw-volume"
+ ]
+ }
+ ],
+ "bluez5.features.adapter": [
+ {
+ "bus-type": "usb",
+ "vendor-id": "usb:0bda"
+ },
+ {
+ "bus-type": "usb",
+ "no-features": [
+ "msbc-alt1-rtl"
+ ]
+ },
+ {
+ "no-features": [
+ "msbc-alt1-rtl"
+ ]
+ }
+ ],
+ "bluez5.features.kernel": [
+ {
+ "sysname": "Linux",
+ "release": "~^[0-4]\\.",
+ "no-features": [
+ "msbc-alt1",
+ "msbc-alt1-rtl"
+ ]
+ },
+ {
+ "sysname": "Linux",
+ "release": "~^5\\.[1-7]\\.",
+ "no-features": [
+ "msbc-alt1",
+ "msbc-alt1-rtl"
+ ]
+ },
+ {
+ "sysname": "Linux",
+ "release": "~^5\\.(8|9|10)\\.",
+ "no-features": [
+ "msbc-alt1"
+ ]
+ },
+ {
+ "sysname": "Linux",
+ "release": "~^5\\.12\\.(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17)($|[^0-9])"
+ },
+ {
+ "sysname": "Linux",
+ "release": "~^5\\.12\\.",
+ "no-features": [
+ "msbc-alt1"
+ ]
+ },
+ {
+ "sysname": "Linux",
+ "release": "~^5\\.13\\.(1|2)($|[^0-9])"
+ },
+ {
+ "sysname": "Linux",
+ "release": "~^5\\.13\\.",
+ "no-features": [
+ "msbc-alt1"
+ ]
+ },
+ {
+ "sysname": "Linux",
+ "release": "~^5\\.14\\.",
+ "no-features": [
+ "msbc-alt1"
+ ]
+ },
+ {
+ "no-features": []
+ }
+ ]
+}
diff --git a/nixos/modules/services/desktops/pipewire/jack.conf.json b/nixos/modules/services/desktops/pipewire/jack.conf.json
index a6bd34917851..128178bfa027 100644
--- a/nixos/modules/services/desktops/pipewire/jack.conf.json
+++ b/nixos/modules/services/desktops/pipewire/jack.conf.json
@@ -7,7 +7,7 @@
},
"context.modules": [
{
- "name": "libpipewire-module-rtkit",
+ "name": "libpipewire-module-rt",
"args": {},
"flags": [
"ifexists",
@@ -24,5 +24,15 @@
"name": "libpipewire-module-metadata"
}
],
- "jack.properties": {}
+ "jack.properties": {},
+ "jack.rules": [
+ {
+ "matches": [
+ {}
+ ],
+ "actions": {
+ "update-props": {}
+ }
+ }
+ ]
}
diff --git a/nixos/modules/services/desktops/pipewire/media-session.conf.json b/nixos/modules/services/desktops/pipewire/media-session.conf.json
index 24906e767d6d..4b4e302af387 100644
--- a/nixos/modules/services/desktops/pipewire/media-session.conf.json
+++ b/nixos/modules/services/desktops/pipewire/media-session.conf.json
@@ -59,6 +59,7 @@
"with-pulseaudio": [
"with-audio",
"bluez5",
+ "bluez5-autoswitch",
"logind",
"restore-stream",
"streams-follow-default"
diff --git a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
index 17a2d49bb1f3..41ab995e3292 100644
--- a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
+++ b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
@@ -15,6 +15,7 @@ let
defaults = {
alsa-monitor = (builtins.fromJSON (builtins.readFile ./alsa-monitor.conf.json));
bluez-monitor = (builtins.fromJSON (builtins.readFile ./bluez-monitor.conf.json));
+ bluez-hardware = (builtins.fromJSON (builtins.readFile ./bluez-hardware.conf.json));
media-session = (builtins.fromJSON (builtins.readFile ./media-session.conf.json));
v4l2-monitor = (builtins.fromJSON (builtins.readFile ./v4l2-monitor.conf.json));
};
@@ -22,6 +23,7 @@ let
configs = {
alsa-monitor = recursiveUpdate defaults.alsa-monitor cfg.config.alsa-monitor;
bluez-monitor = recursiveUpdate defaults.bluez-monitor cfg.config.bluez-monitor;
+ bluez-hardware = defaults.bluez-hardware;
media-session = recursiveUpdate defaults.media-session cfg.config.media-session;
v4l2-monitor = recursiveUpdate defaults.v4l2-monitor cfg.config.v4l2-monitor;
};
@@ -120,6 +122,10 @@ in {
mkIf config.services.pipewire.pulse.enable {
source = json.generate "bluez-monitor.conf" configs.bluez-monitor;
};
+ environment.etc."pipewire/media-session.d/bluez-hardware.conf" =
+ mkIf config.services.pipewire.pulse.enable {
+ source = json.generate "bluez-hardware.conf" configs.bluez-hardware;
+ };
environment.etc."pipewire/media-session.d/with-jack" =
mkIf config.services.pipewire.jack.enable {
diff --git a/pkgs/development/libraries/libfreeaptx/default.nix b/pkgs/development/libraries/libfreeaptx/default.nix
new file mode 100644
index 000000000000..9e30973f199e
--- /dev/null
+++ b/pkgs/development/libraries/libfreeaptx/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "libfreeaptx";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "iamthehorker";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-eEUhOrKqb2hHWanY+knpY9FBEnjkkFTB+x6BZgMBpbo=";
+ };
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ # disable static builds
+ "ANAME="
+ "AOBJECTS="
+ "STATIC_UTILITIES="
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ description = "Free Implementation of Audio Processing Technology codec (aptX)";
+ license = licenses.lgpl21Plus;
+ homepage = "https://github.com/iamthehorker/libfreeaptx";
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kranzes ];
+ };
+}
diff --git a/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch b/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
index be6683c3e7b7..8290aec5dfc4 100644
--- a/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
+++ b/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
@@ -2,16 +2,13 @@ diff --git a/meson_options.txt b/meson_options.txt
index 93b5e2a9..1b915ac3 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -13,6 +13,9 @@ option('media-session',
- description: 'Build and install pipewire-media-session',
+@@ -200,3 +200,6 @@ option('media-session',
type: 'feature',
value: 'auto')
+option('media-session-prefix',
+ description: 'Install directory for pipewire-media-session and its support files',
+ type: 'string')
- option('man',
- description: 'Build manpages',
- type: 'feature',
+ option('session-managers',
diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
index 1edebb2d..251270eb 100644
--- a/src/daemon/systemd/user/meson.build
diff --git a/pkgs/development/libraries/pipewire/0090-pipewire-config-template-paths.patch b/pkgs/development/libraries/pipewire/0090-pipewire-config-template-paths.patch
index 966cb9579777..1f1a98780e9c 100644
--- a/pkgs/development/libraries/pipewire/0090-pipewire-config-template-paths.patch
+++ b/pkgs/development/libraries/pipewire/0090-pipewire-config-template-paths.patch
@@ -6,8 +6,8 @@ index bbafa134..227d3e06 100644
# access.allowed to list an array of paths of allowed
# apps.
#access.allowed = [
-- # @media_session_path@
-+ # <media_session_path>
+- # @session_manager_path@
++ # <session_manager_path>
#]
# An array of rejected paths.
@@ -15,8 +15,8 @@ index bbafa134..227d3e06 100644
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
-- @comment@{ path = "@media_session_path@" args = "" }
-+ @comment@{ path = "<media_session_path>" args = "" }
+- @comment@{ path = "@session_manager_path@" args = "@session_manager_args@" }
++ @comment@{ path = "<session_manager_path>" args = "@session_manager_args@" }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index b8fb216e3583..8988743d33e5 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -14,6 +14,7 @@
, dbus
, alsaLib
, libjack2
+, libusb1
, udev
, libva
, libsndfile
@@ -28,7 +29,7 @@
, withMediaSession ? true
, gstreamerSupport ? true, gst_all_1 ? null
, ffmpegSupport ? true, ffmpeg ? null
-, bluezSupport ? true, bluez ? null, sbc ? null, libopenaptx ? null, ldacbt ? null, fdk_aac ? null
+, bluezSupport ? true, bluez ? null, sbc ? null, libfreeaptx ? null, ldacbt ? null, fdk_aac ? null
, nativeHspSupport ? true
, nativeHfpSupport ? true
, ofonoSupport ? true
@@ -43,10 +44,11 @@ let
};
mesonEnable = b: if b then "enabled" else "disabled";
+ mesonList = l: "[" + lib.concatStringsSep "," l + "]";
self = stdenv.mkDerivation rec {
pname = "pipewire";
- version = "0.3.30";
+ version = "0.3.33";
outputs = [
"out"
@@ -64,7 +66,7 @@ let
owner = "pipewire";
repo = "pipewire";
rev = version;
- sha256 = "sha256-DnaPvZoDaegjtJNKBmCJEAZe5FQBnSER79FPnxiWQUE=";
+ sha256 = "sha256-HP2HcGjrLw0+8pO1upvJQk32v+bifYpi5Rtod0TbBis=";
};
patches = [
@@ -96,6 +98,7 @@ let
dbus
glib
libjack2
+ libusb1
libsndfile
ncurses
udev
@@ -107,7 +110,7 @@ let
systemd
] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
++ lib.optional ffmpegSupport ffmpeg
- ++ lib.optionals bluezSupport [ bluez libopenaptx ldacbt sbc fdk_aac ]
+ ++ lib.optionals bluezSupport [ bluez libfreeaptx ldacbt sbc fdk_aac ]
++ lib.optional pulseTunnelSupport libpulseaudio
++ lib.optional zeroconfSupport avahi;
@@ -122,6 +125,7 @@ let
"-Dmedia-session-prefix=${placeholder "mediaSession"}"
"-Dlibjack-path=${placeholder "jack"}/lib"
"-Dlibcamera=disabled"
+ "-Droc=disabled"
"-Dlibpulse=${mesonEnable pulseTunnelSupport}"
"-Davahi=${mesonEnable zeroconfSupport}"
"-Dgstreamer=${mesonEnable gstreamerSupport}"
@@ -133,6 +137,7 @@ let
"-Dbluez5-backend-hsphfpd=${mesonEnable hsphfpdSupport}"
"-Dsysconfdir=/etc"
"-Dpipewire_confdata_dir=${placeholder "lib"}/share/pipewire"
+ "-Dsession-managers=${mesonList (lib.optional withMediaSession "media-session")}"
];
FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
@@ -187,6 +192,7 @@ let
paths-out-media-session = [
"nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
"nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
+ "nix-support/etc/pipewire/media-session.d/bluez-hardware.conf.json"
"nix-support/etc/pipewire/media-session.d/media-session.conf.json"
"nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
];
@@ -203,7 +209,7 @@ let
homepage = "https://pipewire.org/";
license = licenses.mit;
platforms = platforms.linux;
- maintainers = with maintainers; [ jtojnar ];
+ maintainers = with maintainers; [ jtojnar kranzes ];
};
};
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 8042655a859d..a4233886a854 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation {
# indeed GHC will refuse to compile with a binutils suffering from it. See
# this comment for more information:
# https://gitlab.haskell.org/ghc/ghc/issues/4210#note_78333
- lib.optional stdenv.targetPlatform.isAarch32 ./R_ARM_COPY.patch;
+ lib.optional (stdenv.targetPlatform.isAarch32 && stdenv.hostPlatform.system != stdenv.targetPlatform.system) ./R_ARM_COPY.patch;
outputs = [ "out" "info" "man" ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8c62b879a316..75fc8f3e8d6a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16099,6 +16099,8 @@ in
libffi = callPackage ../development/libraries/libffi { };
+ libfreeaptx = callPackage ../development/libraries/libfreeaptx { };
+
libfreefare = callPackage ../development/libraries/libfreefare {
inherit (darwin) libobjc;
};