uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
|
|
@ -0,0 +1,26 @@
|
|||
From 72f3fe059f031f24c5ad026cb2fc16318f227c09 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Childs <andrew.childs@bibo.com.ph>
|
||||
Date: Tue, 19 Apr 2022 16:29:58 +0900
|
||||
Subject: [PATCH 1/8] Make gio-2.0 optional when gsettings is disabled
|
||||
|
||||
Derived from https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/654
|
||||
---
|
||||
meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index d7e468cab..f7adf1413 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -614,7 +614,7 @@ if dbus_dep.found()
|
||||
cdata.set('HAVE_DBUS', 1)
|
||||
endif
|
||||
|
||||
-gio_dep = dependency('gio-2.0', version : '>= 2.26.0')
|
||||
+gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : false)
|
||||
if get_option('gsettings').enabled()
|
||||
assert(gio_dep.found(), 'GSettings support needs glib I/O library (GIO)')
|
||||
cdata.set('HAVE_GSETTINGS', 1)
|
||||
--
|
||||
2.35.1
|
||||
|
||||
27
pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-macOS.patch
Normal file
27
pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-macOS.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
From 39bef695f783614e6175477417298ddf37e2ac13 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Childs <andrew.childs@bibo.com.ph>
|
||||
Date: Tue, 19 Apr 2022 16:58:43 +0900
|
||||
Subject: [PATCH 2/8] Ignore SCM_CREDS on macOS
|
||||
|
||||
It was added for FreeBSD support, but also enables the
|
||||
unsupported[citation needed] feature on macOS.
|
||||
---
|
||||
src/pulsecore/creds.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/pulsecore/creds.h b/src/pulsecore/creds.h
|
||||
index b599b569c..b5b1c9f37 100644
|
||||
--- a/src/pulsecore/creds.h
|
||||
+++ b/src/pulsecore/creds.h
|
||||
@@ -34,7 +34,7 @@
|
||||
typedef struct pa_creds pa_creds;
|
||||
typedef struct pa_cmsg_ancil_data pa_cmsg_ancil_data;
|
||||
|
||||
-#if defined(SCM_CREDENTIALS) || defined(SCM_CREDS)
|
||||
+#if defined(SCM_CREDENTIALS) || (defined(SCM_CREDS) && !defined(__APPLE__))
|
||||
|
||||
#define HAVE_CREDS 1
|
||||
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From 3f1abb55f4eb985fd0715b2b2ca45dcce3a56824 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Childs <andrew.childs@bibo.com.ph>
|
||||
Date: Tue, 19 Apr 2022 17:06:50 +0900
|
||||
Subject: [PATCH 3/8] Disable `-z nodelete` on darwin
|
||||
|
||||
Not supported[citation needed].
|
||||
---
|
||||
meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index f7adf1413..d4bece11a 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -404,7 +404,7 @@ cdata.set('MESON_BUILD', 1)
|
||||
# so we request the nodelete flag to be enabled.
|
||||
# On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
|
||||
# Windows doesn't support this flag.
|
||||
-if host_machine.system() != 'windows'
|
||||
+if host_machine.system() != 'windows' and host_machine.system() != 'darwin'
|
||||
nodelete_link_args = ['-Wl,-z,nodelete']
|
||||
else
|
||||
nodelete_link_args = []
|
||||
--
|
||||
2.35.1
|
||||
|
||||
57
pkgs/servers/pulseaudio/0004-Prefer-clock_gettime.patch
Normal file
57
pkgs/servers/pulseaudio/0004-Prefer-clock_gettime.patch
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
From 0bd3b613ac3bf16a73b3223fa1b961da3a0db1b2 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Childs <andrew.childs@bibo.com.ph>
|
||||
Date: Tue, 19 Apr 2022 17:12:52 +0900
|
||||
Subject: [PATCH 4/8] Prefer clock_gettime
|
||||
|
||||
Available in darwin since 10.12 (released in 2016).
|
||||
---
|
||||
src/pulsecore/core-rtclock.c | 26 +++++++++++++-------------
|
||||
1 file changed, 13 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/pulsecore/core-rtclock.c b/src/pulsecore/core-rtclock.c
|
||||
index 2c2e28631..a08d4b391 100644
|
||||
--- a/src/pulsecore/core-rtclock.c
|
||||
+++ b/src/pulsecore/core-rtclock.c
|
||||
@@ -65,19 +65,7 @@ pa_usec_t pa_rtclock_age(const struct timeval *tv) {
|
||||
|
||||
struct timeval *pa_rtclock_get(struct timeval *tv) {
|
||||
|
||||
-#if defined(OS_IS_DARWIN)
|
||||
- uint64_t val, abs_time = mach_absolute_time();
|
||||
- Nanoseconds nanos;
|
||||
-
|
||||
- nanos = AbsoluteToNanoseconds(*(AbsoluteTime *) &abs_time);
|
||||
- val = *(uint64_t *) &nanos;
|
||||
-
|
||||
- tv->tv_sec = val / PA_NSEC_PER_SEC;
|
||||
- tv->tv_usec = (val % PA_NSEC_PER_SEC) / PA_NSEC_PER_USEC;
|
||||
-
|
||||
- return tv;
|
||||
-
|
||||
-#elif defined(HAVE_CLOCK_GETTIME)
|
||||
+#if defined(HAVE_CLOCK_GETTIME)
|
||||
struct timespec ts;
|
||||
|
||||
#ifdef CLOCK_MONOTONIC
|
||||
@@ -109,6 +97,18 @@ struct timeval *pa_rtclock_get(struct timeval *tv) {
|
||||
|
||||
return tv;
|
||||
}
|
||||
+#elif defined(OS_IS_DARWIN)
|
||||
+ uint64_t val, abs_time = mach_absolute_time();
|
||||
+ Nanoseconds nanos;
|
||||
+
|
||||
+ nanos = AbsoluteToNanoseconds(*(AbsoluteTime *) &abs_time);
|
||||
+ val = *(uint64_t *) &nanos;
|
||||
+
|
||||
+ tv->tv_sec = val / PA_NSEC_PER_SEC;
|
||||
+ tv->tv_usec = (val % PA_NSEC_PER_SEC) / PA_NSEC_PER_USEC;
|
||||
+
|
||||
+ return tv;
|
||||
+
|
||||
#endif /* HAVE_CLOCK_GETTIME */
|
||||
|
||||
return pa_gettimeofday(tv);
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
From 8dee473920d3a331b73a415b37e7e0b01f014110 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Childs <andrew.childs@bibo.com.ph>
|
||||
Date: Tue, 19 Apr 2022 17:22:23 +0900
|
||||
Subject: [PATCH 5/8] Include poll-posix.c on darwin
|
||||
|
||||
---
|
||||
src/meson.build | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index e2860811b..5bd68cb12 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -182,6 +182,7 @@ if host_machine.system() == 'windows'
|
||||
else
|
||||
libpulsecommon_sources += [
|
||||
'pulsecore/mutex-posix.c',
|
||||
+ 'pulsecore/poll-posix.c',
|
||||
'pulsecore/semaphore-posix.c',
|
||||
'pulsecore/thread-posix.c'
|
||||
]
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
From 419258112b9d90d149ebbd5c657a36d8532b78a2 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Childs <andrew.childs@bibo.com.ph>
|
||||
Date: Tue, 19 Apr 2022 17:31:36 +0900
|
||||
Subject: [PATCH 6/8] Only use version-script on GNU-ish linkers
|
||||
|
||||
---
|
||||
src/pulse/meson.build | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/pulse/meson.build b/src/pulse/meson.build
|
||||
index c2128e087..a5e47867e 100644
|
||||
--- a/src/pulse/meson.build
|
||||
+++ b/src/pulse/meson.build
|
||||
@@ -74,7 +74,11 @@ run_target('update-map-file',
|
||||
command : [ join_paths(meson.source_root(), 'scripts/generate-map-file.sh'), 'map-file',
|
||||
[ libpulse_headers, 'simple.h', join_paths(meson.build_root(), 'src', 'pulse', 'version.h') ] ])
|
||||
|
||||
-versioning_link_args = '-Wl,-version-script=' + join_paths(meson.source_root(), 'src', 'pulse', 'map-file')
|
||||
+if meson.get_compiler('c').get_linker_id().startswith('ld.')
|
||||
+ versioning_link_args = '-Wl,-version-script=' + join_paths(meson.source_root(), 'src', 'pulse', 'map-file')
|
||||
+else
|
||||
+ versioning_link_args = []
|
||||
+endif
|
||||
|
||||
libpulse = shared_library('pulse',
|
||||
libpulse_sources,
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
From 6f132be835d5acb5db4301ea1818601504e47fae Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Childs <andrew.childs@bibo.com.ph>
|
||||
Date: Tue, 19 Apr 2022 17:41:34 +0900
|
||||
Subject: [PATCH 7/8] Adapt undefined link args per linker
|
||||
|
||||
TODO: Why is this required? Isn't it default?
|
||||
---
|
||||
src/modules/meson.build | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/modules/meson.build b/src/modules/meson.build
|
||||
index be72c3b9b..0163b583f 100644
|
||||
--- a/src/modules/meson.build
|
||||
+++ b/src/modules/meson.build
|
||||
@@ -293,6 +293,17 @@ all_modules += [
|
||||
# FIXME: meson doesn't support multiple RPATH arguments currently
|
||||
rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir)
|
||||
|
||||
+if meson.get_compiler('c').get_linker_id().startswith('ld.')
|
||||
+ no_undefined_link_args = [ '-Wl,--no-undefined' ]
|
||||
+elif meson.get_compiler('c').get_linker_id() == 'ld64'
|
||||
+ # TODO: is this required? is this not default?
|
||||
+ no_undefined_link_args = [ '-Wl,-undefined,error' ]
|
||||
+else
|
||||
+ # TODO: what platforms is this? what flag do they use?
|
||||
+ no_undefined_link_args = []
|
||||
+endif
|
||||
+
|
||||
+
|
||||
foreach m : all_modules
|
||||
name = m[0]
|
||||
sources = m[1]
|
||||
@@ -310,7 +321,7 @@ foreach m : all_modules
|
||||
install_rpath : rpath_dirs,
|
||||
install_dir : modlibexecdir,
|
||||
dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libintl_dep, platform_dep, platform_socket_dep] + extra_deps,
|
||||
- link_args : [nodelete_link_args, '-Wl,--no-undefined' ],
|
||||
+ link_args : [nodelete_link_args, no_undefined_link_args ],
|
||||
link_with : extra_libs,
|
||||
name_prefix : '',
|
||||
implicit_include_directories : false)
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From 1a840b6e517004c902dfbea3d358b344c9588978 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Childs <andrew.childs@bibo.com.ph>
|
||||
Date: Tue, 19 Apr 2022 17:49:08 +0900
|
||||
Subject: [PATCH 8/8] Use correct semaphore on darwin
|
||||
|
||||
---
|
||||
src/meson.build | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index 5bd68cb12..041e2fab4 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -183,9 +183,13 @@ else
|
||||
libpulsecommon_sources += [
|
||||
'pulsecore/mutex-posix.c',
|
||||
'pulsecore/poll-posix.c',
|
||||
- 'pulsecore/semaphore-posix.c',
|
||||
'pulsecore/thread-posix.c'
|
||||
]
|
||||
+ if host_machine.system() == 'darwin'
|
||||
+ libpulsecommon_sources += [ 'pulsecore/semaphore-osx.c' ]
|
||||
+ else
|
||||
+ libpulsecommon_sources += [ 'pulsecore/semaphore-posix.c' ]
|
||||
+ endif
|
||||
endif
|
||||
# FIXME: Do SIMD things
|
||||
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -67,6 +67,11 @@ datadir = join_paths(prefix, get_option('datadir'))
|
||||
localedir = join_paths(prefix, get_option('localedir'))
|
||||
localstatedir = join_paths(prefix, get_option('localstatedir'))
|
||||
sysconfdir = join_paths(prefix, get_option('sysconfdir'))
|
||||
+if get_option('sysconfdir_install') != ''
|
||||
+ sysconfdir_install = join_paths(get_option('prefix'), get_option('sysconfdir_install'))
|
||||
+else
|
||||
+ sysconfdir_install = sysconfdir
|
||||
+endif
|
||||
privlibdir = join_paths(libdir, 'pulseaudio')
|
||||
|
||||
if host_machine.system() == 'windows'
|
||||
@@ -82,6 +87,11 @@ endif
|
||||
pkgconfigdir = join_paths(libdir, 'pkgconfig')
|
||||
pulselibexecdir = join_paths(libexecdir, 'pulse')
|
||||
pulsesysconfdir = join_paths(sysconfdir, 'pulse')
|
||||
+if get_option('sysconfdir_install') != ''
|
||||
+ pulsesysconfdir_install = join_paths(get_option('prefix'), get_option('sysconfdir_install'), 'pulse')
|
||||
+else
|
||||
+ pulsesysconfdir_install = pulsesysconfdir
|
||||
+endif
|
||||
|
||||
modlibexecdir = get_option('modlibexecdir')
|
||||
if modlibexecdir == ''
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -72,6 +72,9 @@ option('bashcompletiondir',
|
||||
option('zshcompletiondir',
|
||||
type : 'string',
|
||||
description : 'Directory for zsh completion scripts ["no" disables]')
|
||||
+option('sysconfdir_install',
|
||||
+ type: 'string', value: '',
|
||||
+ description: 'sysconfdir to use during installation')
|
||||
|
||||
# Optional features
|
||||
|
||||
--- a/src/daemon/meson.build
|
||||
+++ b/src/daemon/meson.build
|
||||
@@ -52,7 +52,7 @@ if x11_dep.found()
|
||||
output : '00-pulseaudio-x11',
|
||||
configuration : conf,
|
||||
install : true,
|
||||
- install_dir : join_paths(sysconfdir, 'xdg', 'Xwayland-session.d'),
|
||||
+ install_dir : join_paths(sysconfdir_install, 'xdg', 'Xwayland-session.d'),
|
||||
)
|
||||
|
||||
desktop_file = i18n.merge_file(
|
||||
@@ -61,7 +61,7 @@ if x11_dep.found()
|
||||
po_dir : po_dir,
|
||||
type : 'desktop',
|
||||
install : true,
|
||||
- install_dir : join_paths(sysconfdir, 'xdg', 'autostart'),
|
||||
+ install_dir : join_paths(sysconfdir_install, 'xdg', 'autostart'),
|
||||
)
|
||||
|
||||
desktop_utils = find_program('desktop-file-validate', required: false)
|
||||
@@ -93,7 +93,7 @@ custom_target('daemon.conf',
|
||||
command : [m4, '@INPUT@'],
|
||||
build_by_default : true,
|
||||
install : true,
|
||||
- install_dir : pulsesysconfdir,
|
||||
+ install_dir : pulsesysconfdir_install,
|
||||
)
|
||||
|
||||
default_conf = configuration_data()
|
||||
@@ -117,7 +117,7 @@ custom_target('default.pa',
|
||||
command : [m4, '@INPUT@'],
|
||||
build_by_default : true,
|
||||
install : true,
|
||||
- install_dir : pulsesysconfdir,
|
||||
+ install_dir : pulsesysconfdir_install,
|
||||
)
|
||||
|
||||
system_conf = configuration_data()
|
||||
@@ -136,12 +136,12 @@ custom_target('system.pa',
|
||||
command : [m4, '@INPUT@'],
|
||||
build_by_default : true,
|
||||
install : true,
|
||||
- install_dir : pulsesysconfdir,
|
||||
+ install_dir : pulsesysconfdir_install,
|
||||
)
|
||||
|
||||
if dbus_dep.found()
|
||||
install_data('pulseaudio-system.conf',
|
||||
- install_dir : join_paths(sysconfdir, 'dbus-1', 'system.d')
|
||||
+ install_dir : join_paths(sysconfdir_install, 'dbus-1', 'system.d')
|
||||
)
|
||||
endif
|
||||
|
||||
--- a/src/pulse/meson.build
|
||||
+++ b/src/pulse/meson.build
|
||||
@@ -134,5 +134,5 @@ client_conf_file = configure_file(
|
||||
input : 'client.conf.in',
|
||||
output : 'client.conf',
|
||||
configuration : client_conf,
|
||||
- install_dir : pulsesysconfdir,
|
||||
+ install_dir : pulsesysconfdir_install,
|
||||
)
|
||||
170
pkgs/servers/pulseaudio/default.nix
Normal file
170
pkgs/servers/pulseaudio/default.nix
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch, pkg-config
|
||||
, libsndfile, libtool, makeWrapper, perlPackages
|
||||
, xorg, libcap, alsa-lib, glib, dconf
|
||||
, avahi, libjack2, libasyncns, lirc, dbus
|
||||
, sbc, bluez5, udev, openssl, fftwFloat
|
||||
, soxr, speexdsp, systemd, webrtc-audio-processing
|
||||
, gst_all_1
|
||||
, check, libintl, meson, ninja, m4, wrapGAppsHook
|
||||
|
||||
, x11Support ? false
|
||||
|
||||
, useSystemd ? true
|
||||
|
||||
, # Whether to support the JACK sound system as a backend.
|
||||
jackaudioSupport ? false
|
||||
|
||||
, # Whether to build the OSS wrapper ("padsp").
|
||||
ossWrapper ? true
|
||||
|
||||
, airtunesSupport ? false
|
||||
|
||||
, bluetoothSupport ? true
|
||||
, advancedBluetoothCodecs ? false
|
||||
|
||||
, remoteControlSupport ? false
|
||||
|
||||
, zeroconfSupport ? false
|
||||
|
||||
, # Whether to build only the library.
|
||||
libOnly ? false
|
||||
|
||||
, AudioUnit, Cocoa, CoreServices
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${if libOnly then "lib" else ""}pulseaudio";
|
||||
version = "15.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-${version}.tar.xz";
|
||||
sha256 = "pAuIejupjMJpdusRvbZhOYjxRbGQJNG2VVxqA8nLoaA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Install sysconfdir files inside of the nix store,
|
||||
# but use a conventional runtime sysconfdir outside the store
|
||||
./add-option-for-installation-sysconfdir.patch
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/654
|
||||
./0001-Make-gio-2.0-optional-when-gsettings-is-disabled.patch
|
||||
|
||||
# TODO (not sent upstream)
|
||||
./0002-Ignore-SCM_CREDS-on-macOS.patch
|
||||
./0003-Disable-z-nodelete-on-darwin.patch
|
||||
./0004-Prefer-clock_gettime.patch
|
||||
./0005-Include-poll-posix.c-on-darwin.patch
|
||||
./0006-Only-use-version-script-on-GNU-ish-linkers.patch
|
||||
./0007-Adapt-undefined-link-args-per-linker.patch
|
||||
./0008-Use-correct-semaphore-on-darwin.patch
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config meson ninja makeWrapper perlPackages.perl perlPackages.XMLParser m4 ]
|
||||
++ lib.optionals stdenv.isLinux [ glib ]
|
||||
# gstreamer plugin discovery requires wrapping
|
||||
++ lib.optional (bluetoothSupport && advancedBluetoothCodecs) wrapGAppsHook;
|
||||
|
||||
propagatedBuildInputs =
|
||||
lib.optionals stdenv.isLinux [ libcap ];
|
||||
|
||||
buildInputs =
|
||||
[ libtool libsndfile soxr speexdsp fftwFloat check ]
|
||||
++ lib.optionals stdenv.isLinux [ glib dbus ]
|
||||
++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreServices libintl ]
|
||||
++ lib.optionals (!libOnly) (
|
||||
[ libasyncns webrtc-audio-processing ]
|
||||
++ lib.optional jackaudioSupport libjack2
|
||||
++ lib.optionals x11Support [ xorg.xlibsWrapper xorg.libXtst xorg.libXi ]
|
||||
++ lib.optional useSystemd systemd
|
||||
++ lib.optionals stdenv.isLinux [ alsa-lib udev ]
|
||||
++ lib.optional airtunesSupport openssl
|
||||
++ lib.optionals bluetoothSupport [ bluez5 sbc ]
|
||||
# aptX and LDAC codecs are in gst-plugins-bad so far, rtpldacpay is in -good
|
||||
++ lib.optionals (bluetoothSupport && advancedBluetoothCodecs) (builtins.attrValues { inherit (gst_all_1) gst-plugins-bad gst-plugins-good gst-plugins-base gstreamer; })
|
||||
++ lib.optional remoteControlSupport lirc
|
||||
++ lib.optional zeroconfSupport avahi
|
||||
);
|
||||
|
||||
mesonFlags = [
|
||||
"-Dalsa=${if !libOnly then "enabled" else "disabled"}"
|
||||
"-Dasyncns=${if !libOnly then "enabled" else "disabled"}"
|
||||
"-Davahi=${if zeroconfSupport then "enabled" else "disabled"}"
|
||||
"-Dbluez5=${if !libOnly && bluetoothSupport then "enabled" else "disabled"}"
|
||||
# advanced bluetooth audio codecs are provided by gstreamer
|
||||
"-Dbluez5-gstreamer=${if (!libOnly && bluetoothSupport && advancedBluetoothCodecs) then "enabled" else "disabled"}"
|
||||
"-Ddatabase=simple"
|
||||
"-Ddoxygen=false"
|
||||
"-Delogind=disabled"
|
||||
# gsettings does not support cross-compilation
|
||||
"-Dgsettings=${if stdenv.isLinux && (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
|
||||
"-Dgstreamer=disabled"
|
||||
"-Dgtk=disabled"
|
||||
"-Djack=${if jackaudioSupport && !libOnly then "enabled" else "disabled"}"
|
||||
"-Dlirc=${if remoteControlSupport then "enabled" else "disabled"}"
|
||||
"-Dopenssl=${if airtunesSupport then "enabled" else "disabled"}"
|
||||
"-Dorc=disabled"
|
||||
"-Dsystemd=${if useSystemd && !libOnly then "enabled" else "disabled"}"
|
||||
"-Dtcpwrap=disabled"
|
||||
"-Dudev=${if !libOnly then "enabled" else "disabled"}"
|
||||
"-Dvalgrind=disabled"
|
||||
"-Dwebrtc-aec=${if !libOnly then "enabled" else "disabled"}"
|
||||
"-Dx11=${if x11Support then "enabled" else "disabled"}"
|
||||
|
||||
"-Dlocalstatedir=/var"
|
||||
"-Dsysconfdir=/etc"
|
||||
"-Dsysconfdir_install=${placeholder "out"}/etc"
|
||||
"-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d"
|
||||
]
|
||||
++ lib.optional (stdenv.isLinux && useSystemd) "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
|
||||
++ lib.optionals (stdenv.isDarwin) [
|
||||
"-Ddbus=disabled"
|
||||
"-Dglib=disabled"
|
||||
"-Doss-output=disabled"
|
||||
];
|
||||
|
||||
# tests fail on Darwin because of timeouts
|
||||
doCheck = !stdenv.isDarwin;
|
||||
preCheck = ''
|
||||
export HOME=$(mktemp -d)
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString libOnly ''
|
||||
find $out/share -maxdepth 1 -mindepth 1 ! -name "vala" -prune -exec rm -r {} \;
|
||||
find $out/share/vala -maxdepth 1 -mindepth 1 ! -name "vapi" -prune -exec rm -r {} \;
|
||||
rm -r $out/{bin,etc,lib/pulse-*}
|
||||
''
|
||||
+ ''
|
||||
moveToOutput lib/cmake "$dev"
|
||||
rm -f $out/bin/qpaeq # this is packaged by the "qpaeq" package now, because of missing deps
|
||||
'';
|
||||
|
||||
preFixup = lib.optionalString (stdenv.isLinux && (stdenv.hostPlatform == stdenv.buildPlatform)) ''
|
||||
wrapProgram $out/libexec/pulse/gsettings-helper \
|
||||
--prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/${pname}-${version}" \
|
||||
--prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
pulseDir = "lib/pulse-" + lib.versions.majorMinor version;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Sound server for POSIX and Win32 systems";
|
||||
homepage = "http://www.pulseaudio.org/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
maintainers = with lib.maintainers; [ lovek323 ];
|
||||
platforms = lib.platforms.unix;
|
||||
|
||||
longDescription = ''
|
||||
PulseAudio is a sound server for POSIX and Win32 systems. A
|
||||
sound server is basically a proxy for your sound applications.
|
||||
It allows you to do advanced operations on your sound data as it
|
||||
passes between your application and your hardware. Things like
|
||||
transferring the audio to a different machine, changing the
|
||||
sample format or channel count and mixing several sounds into
|
||||
one are easily achieved using a sound server.
|
||||
'';
|
||||
};
|
||||
}
|
||||
46
pkgs/servers/pulseaudio/hsphfpd.nix
Normal file
46
pkgs/servers/pulseaudio/hsphfpd.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper, perlPackages }:
|
||||
|
||||
let
|
||||
perlLibs = with perlPackages; [ NetDBus XMLTwig XMLParser ];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "hsphfpd";
|
||||
version = "2020-12-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pali";
|
||||
repo = "hsphfpd-prototype";
|
||||
rev = "d294d064879591e9570ca3f444fa3eee2f269df8";
|
||||
sha256 = "0pm5rbsfrm04hnifzdmsyz17rjk8h9h6d19jaikjc5y36z03xf1c";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ perlPackages.perl ];
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/dbus-1/system.d
|
||||
cp org.hsphfpd.conf $out/share/dbus-1/system.d
|
||||
|
||||
mkdir -p $out/bin
|
||||
cp *.pl $out/bin
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
for f in $out/bin/*.pl; do
|
||||
wrapProgram "$f" --set PERL5LIB "${perlPackages.makePerlPath perlLibs}"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Bluetooth HSP/HFP daemon";
|
||||
homepage = "https://github.com/pali/hsphfpd-prototype";
|
||||
license = licenses.artistic1;
|
||||
maintainers = with maintainers; [ gebner ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
54
pkgs/servers/pulseaudio/qpaeq.nix
Normal file
54
pkgs/servers/pulseaudio/qpaeq.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{ mkDerivation
|
||||
, makeDesktopItem
|
||||
, python3
|
||||
, fetchurl
|
||||
, lib
|
||||
, pulseaudio
|
||||
}:
|
||||
|
||||
let
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "qpaeq";
|
||||
exec = "@out@/bin/qpaeq";
|
||||
icon = "audio-volume-high";
|
||||
desktopName = "qpaeq";
|
||||
genericName = "Audio equalizer";
|
||||
categories = [ "AudioVideo" "Audio" "Mixer" ];
|
||||
startupNotify = false;
|
||||
};
|
||||
in
|
||||
mkDerivation rec {
|
||||
pname = "qpaeq";
|
||||
inherit (pulseaudio) version src;
|
||||
|
||||
buildInputs = [
|
||||
((python3.withPackages (ps: with ps; [
|
||||
pyqt5
|
||||
dbus-python
|
||||
])))
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D ./src/utils/qpaeq $out/bin/qpaeq
|
||||
install -D ${desktopItem}/share/applications/qpaeq.desktop $out/share/applications/qpaeq.desktop
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
sed "s|,sip|,PyQt5.sip|g" -i $out/bin/qpaeq
|
||||
wrapQtApp $out/bin/qpaeq
|
||||
sed "s|@out@|$out|g" -i $out/share/applications/qpaeq.desktop
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "An equalizer interface for pulseaudio's equalizer sinks";
|
||||
homepage = "http://www.pulseaudio.org/";
|
||||
license = lib.licenses.lgpl2Plus;
|
||||
maintainers = with lib.maintainers; [ lovek323 mkg20001 ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue