Merge pull request #36657 from oxij/pkgs/pre-cardiacarrest
prepare for a swtich to `libcardiacarrest`
This commit is contained in:
commit
f74251dc92
@ -1,15 +1,22 @@
|
|||||||
{ stdenv, fetchurl, boost, libpulseaudio }:
|
{ stdenv, fetchFromGitHub, fetchpatch, boost, libpulseaudio }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
name = "pamixer-${version}";
|
name = "pamixer-${version}";
|
||||||
version = "1.3.1";
|
version = "1.3.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/cdemoulins/pamixer/archive/${version}.tar.gz";
|
owner = "cdemoulins";
|
||||||
sha256 = "1lsvb4xk1dq762w9c0jn7xvj3v1lzppql9mj1b55fhzdypbrkm6x";
|
repo = "pamixer";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "15zs2x4hnrpxphqn542b6qqm4ymvhkvbcfyffy69d6cki51chzzw";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Remove after https://github.com/cdemoulins/pamixer/pull/16 gets fixed
|
||||||
|
patches = [(fetchpatch {
|
||||||
|
url = "https://github.com/oxij/pamixer/commit/dea1cd967aa837940e5c0b04ef7ebc47a7a93d63.patch";
|
||||||
|
sha256 = "0s77xmsiwywyyp6f4bjxg1sqdgms1k5fiy7na6ws0aswshfnzfjb";
|
||||||
|
})];
|
||||||
|
|
||||||
buildInputs = [ boost libpulseaudio ];
|
buildInputs = [ boost libpulseaudio ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -0,0 +1,26 @@
|
|||||||
|
Yep, it's a "return code was ignored" bug.
|
||||||
|
diff --git a/media/libcubeb/src/cubeb_pulse.c b/media/libcubeb/src/cubeb_pulse.c
|
||||||
|
index aaaaaaaaaaa..bbbbbbbbbbb 100644
|
||||||
|
--- a/media/libcubeb/src/cubeb_pulse.c
|
||||||
|
+++ b/media/libcubeb/src/cubeb_pulse.c
|
||||||
|
@@ -473,6 +473,8 @@
|
||||||
|
static int
|
||||||
|
pulse_context_init(cubeb * ctx)
|
||||||
|
{
|
||||||
|
+ int r;
|
||||||
|
+
|
||||||
|
if (ctx->context) {
|
||||||
|
assert(ctx->error == 1);
|
||||||
|
pulse_context_destroy(ctx);
|
||||||
|
@@ -486,9 +488,9 @@
|
||||||
|
WRAP(pa_context_set_state_callback)(ctx->context, context_state_callback, ctx);
|
||||||
|
|
||||||
|
WRAP(pa_threaded_mainloop_lock)(ctx->mainloop);
|
||||||
|
- WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL);
|
||||||
|
+ r = WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL);
|
||||||
|
|
||||||
|
- if (wait_until_context_ready(ctx) != 0) {
|
||||||
|
+ if (r < 0 || wait_until_context_ready(ctx) != 0) {
|
||||||
|
WRAP(pa_threaded_mainloop_unlock)(ctx->mainloop);
|
||||||
|
pulse_context_destroy(ctx);
|
||||||
|
ctx->context = NULL;
|
@ -1,6 +1,18 @@
|
|||||||
{ lib, callPackage, stdenv, overrideCC, gcc5, fetchurl, fetchFromGitHub, fetchpatch }:
|
{ lib, callPackage, stdenv, overrideCC, gcc5, fetchurl, fetchFromGitHub, fetchpatch }:
|
||||||
|
|
||||||
let common = opts: callPackage (import ./common.nix opts); in
|
let
|
||||||
|
|
||||||
|
common = opts: callPackage (import ./common.nix opts);
|
||||||
|
|
||||||
|
nixpkgsPatches = [
|
||||||
|
./env_var_for_system_dir.patch
|
||||||
|
|
||||||
|
# this one is actually an omnipresent bug
|
||||||
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
|
||||||
|
./fix-pa-context-connect-retval.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
|
|
||||||
@ -12,9 +24,8 @@ rec {
|
|||||||
sha512 = "ff748780492fc66b3e44c7e7641f16206e4c09514224c62d37efac2c59877bdf428a3670bfb50407166d7b505d4e2ea020626fd776b87f6abb6bc5d2e54c773f";
|
sha512 = "ff748780492fc66b3e44c7e7641f16206e4c09514224c62d37efac2c59877bdf428a3670bfb50407166d7b505d4e2ea020626fd776b87f6abb6bc5d2e54c773f";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = nixpkgsPatches ++ [
|
||||||
./no-buildconfig.patch
|
./no-buildconfig.patch
|
||||||
./env_var_for_system_dir.patch
|
|
||||||
|
|
||||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1430274
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=1430274
|
||||||
# Scheduled for firefox 59
|
# Scheduled for firefox 59
|
||||||
@ -49,8 +60,7 @@ rec {
|
|||||||
sha512 = "cf583df34272b7ff8841c3b093ca0819118f9c36d23c6f9b3135db298e84ca022934bcd189add6473922b199b47330c0ecf14c303ab4177c03dbf26e64476fa4";
|
sha512 = "cf583df34272b7ff8841c3b093ca0819118f9c36d23c6f9b3135db298e84ca022934bcd189add6473922b199b47330c0ecf14c303ab4177c03dbf26e64476fa4";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches =
|
patches = nixpkgsPatches;
|
||||||
[ ./env_var_for_system_dir.patch ];
|
|
||||||
|
|
||||||
meta = firefox.meta // {
|
meta = firefox.meta // {
|
||||||
description = "A web browser built from Firefox Extended Support Release source tree";
|
description = "A web browser built from Firefox Extended Support Release source tree";
|
||||||
@ -93,15 +103,18 @@ rec {
|
|||||||
It will use your default Firefox profile if you're not careful
|
It will use your default Firefox profile if you're not careful
|
||||||
even! Be careful!
|
even! Be careful!
|
||||||
|
|
||||||
It will clash with firefox binary if you install both. But its
|
It will clash with firefox binary if you install both. But it
|
||||||
not a problem since you should run browsers in separate
|
should not be a problem because you should run browsers in
|
||||||
users/VMs anyway.
|
separate users/VMs anyway.
|
||||||
|
|
||||||
Create new profile by starting it as
|
Create new profile by starting it as
|
||||||
|
|
||||||
$ firefox -ProfileManager
|
$ firefox -ProfileManager
|
||||||
|
|
||||||
and then configure it to use your tor instance.
|
and then configure it to use your tor instance.
|
||||||
|
|
||||||
|
Or just use `tor-browser-bundle` package that packs this
|
||||||
|
`tor-browser` back into a sanely-built bundle.
|
||||||
'';
|
'';
|
||||||
homepage = https://www.torproject.org/projects/torbrowser.html;
|
homepage = https://www.torproject.org/projects/torbrowser.html;
|
||||||
platforms = lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
@ -124,8 +137,7 @@ in rec {
|
|||||||
sha256 = "169mjkr0bp80yv9nzza7kay7y2k03lpnx71h4ybcv9ygxgzdgax5";
|
sha256 = "169mjkr0bp80yv9nzza7kay7y2k03lpnx71h4ybcv9ygxgzdgax5";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches =
|
patches = nixpkgsPatches;
|
||||||
[ ./env_var_for_system_dir.patch ];
|
|
||||||
} // commonAttrs) {};
|
} // commonAttrs) {};
|
||||||
|
|
||||||
tor-browser-7-5 = common (rec {
|
tor-browser-7-5 = common (rec {
|
||||||
@ -142,8 +154,7 @@ in rec {
|
|||||||
sha256 = "0llbk7skh1n7yj137gv7rnxfasxsnvfjp4ss7h1fbdnw19yba115";
|
sha256 = "0llbk7skh1n7yj137gv7rnxfasxsnvfjp4ss7h1fbdnw19yba115";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches =
|
patches = nixpkgsPatches;
|
||||||
[ ./env_var_for_system_dir.patch ];
|
|
||||||
} // commonAttrs) {};
|
} // commonAttrs) {};
|
||||||
|
|
||||||
tor-browser = tor-browser-7-5;
|
tor-browser = tor-browser-7-5;
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
{ stdenv, fetchFromGitHub, alsaLib, cmake, pkgconfig, glib }:
|
{ stdenv, fetchFromGitHub, alsaLib, cmake, pkgconfig, glib
|
||||||
|
, tracingSupport ? true, logToStderr ? true }:
|
||||||
|
|
||||||
|
let oz = x: if x then "1" else "0"; in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "apulse-${version}";
|
name = "apulse-${version}";
|
||||||
version = "0.1.11";
|
version = "0.1.11.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "i-rinat";
|
owner = "i-rinat";
|
||||||
repo = "apulse";
|
repo = "apulse";
|
||||||
rev = "v${version}";
|
rev = "602b3a02b4b459d4652a3a0a836fab6f892d4080";
|
||||||
sha256 = "16l278q0czca2794fj388ql6qn1zrw24a0p6k7bayrrf5h32fdzd";
|
sha256 = "0yk9vgb4aws8xnkhdhgpxp5c0rri8yq61yxk85j99j8ax806i3r8";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
@ -17,6 +20,11 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ alsaLib glib ];
|
buildInputs = [ alsaLib glib ];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DWITH_TRACE=${oz tracingSupport}"
|
||||||
|
"-DLOG_TO_STDERR=${oz logToStderr}"
|
||||||
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "PulseAudio emulation for ALSA";
|
description = "PulseAudio emulation for ALSA";
|
||||||
homepage = https://github.com/i-rinat/apulse;
|
homepage = https://github.com/i-rinat/apulse;
|
||||||
|
@ -60,22 +60,22 @@ stdenv.mkDerivation {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = apulse.meta // {
|
meta = apulse.meta // {
|
||||||
description = "libpulseaudio without any sound daemons over pure ALSA";
|
description = "libpulse without any sound daemons over pure ALSA";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
apulse (${apulse.meta.homepage}) implements most of libpulseaudio
|
apulse (${apulse.meta.homepage}) implements most of libpulse
|
||||||
API over pure ALSA in 5% LOC of the original PulseAudio.
|
API over pure ALSA in 5% LOC of the original PulseAudio.
|
||||||
|
|
||||||
But apulse is made to be used as a wrapper that substitutes its
|
But apulse is made to be used as a wrapper that substitutes its
|
||||||
replacement libs into LD_LIBRARY_PATH. The problem with that is
|
replacement libs into LD_LIBRARY_PATH. The problem with that is
|
||||||
that you still have to link against the original libpulseaudio.
|
that you still have to link against the original libpulse.
|
||||||
|
|
||||||
pressureaudio (http://git.r-36.net/pressureaudio/) wraps apulse
|
pressureaudio (http://git.r-36.net/pressureaudio/) wraps apulse
|
||||||
with everything you need to replace libpulseaudio completely.
|
with everything you need to replace libpulse completely.
|
||||||
|
|
||||||
This derivation is a reimplementation of pressureaudio in pure
|
This derivation is a reimplementation of pressureaudio in pure
|
||||||
nix.
|
nix.
|
||||||
|
|
||||||
You can simply override libpulseaudio with this and most
|
You can simply override libpulse with this and most
|
||||||
packages would just work.
|
packages would just work.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
48
pkgs/misc/libcardiacarrest/default.nix
Normal file
48
pkgs/misc/libcardiacarrest/default.nix
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, pkgconfig, glib, libpulseaudio }:
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "libcardiacarrest-${version}";
|
||||||
|
version = "11.0-6"; # <PA API version>-<version>
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "oxij";
|
||||||
|
repo = "libcardiacarrest";
|
||||||
|
rev = "1220b37b3de75238fedee1a66ca703fe1c8c71c3";
|
||||||
|
sha256 = "0fkfiixjybac3rwcd26621hh5dw4f5gnmm230cr4g8fl0i2ikmrz";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
||||||
|
buildInputs = [ glib ];
|
||||||
|
|
||||||
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
moveToOutput $out/include $dev
|
||||||
|
moveToOutput $out/lib/pkgconfig $dev
|
||||||
|
moveToOutput $out/lib/cmake $dev
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = src.meta // {
|
||||||
|
description = "A trivial implementation of libpulse PulseAudio library API";
|
||||||
|
longDescription = ''
|
||||||
|
libcardiacarrest is a trivial implementation of libpulse
|
||||||
|
PulseAudio library API that unconditionally (but gracefully)
|
||||||
|
fails to connect to the PulseAudio daemon and does nothing else.
|
||||||
|
|
||||||
|
apulse and pressureaudio (which uses apulse internally) are an
|
||||||
|
inspiration for this but unlike those two projects
|
||||||
|
libcardiacarrest is not an emulation layer, all it does is it
|
||||||
|
gracefully fails to provide the requested PulseAudio service
|
||||||
|
hoping the application would try something else (e.g. ALSA or
|
||||||
|
JACK).
|
||||||
|
'';
|
||||||
|
license = libpulseaudio.meta.license; # "same as PA headers"
|
||||||
|
maintainers = [ maintainers.oxij ]; # also the author
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -3,7 +3,7 @@
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "vpnc-0.5.3-post-r550";
|
name = "vpnc-0.5.3-post-r550";
|
||||||
src = fetchsvn {
|
src = fetchsvn {
|
||||||
url = "http://svn.unix-ag.uni-kl.de/vpnc";
|
url = "https://svn.unix-ag.uni-kl.de/vpnc";
|
||||||
rev = "550";
|
rev = "550";
|
||||||
sha256 = "0x4ckfv9lpykwmh28v1kyzz91y1j2v48fi8q5nsawrba4q0wlrls";
|
sha256 = "0x4ckfv9lpykwmh28v1kyzz91y1j2v48fi8q5nsawrba4q0wlrls";
|
||||||
};
|
};
|
||||||
|
@ -498,10 +498,6 @@ with pkgs;
|
|||||||
|
|
||||||
aptly = callPackage ../tools/misc/aptly { };
|
aptly = callPackage ../tools/misc/aptly { };
|
||||||
|
|
||||||
apulse = callPackage ../misc/apulse { };
|
|
||||||
|
|
||||||
libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix { };
|
|
||||||
|
|
||||||
archivemount = callPackage ../tools/filesystems/archivemount { };
|
archivemount = callPackage ../tools/filesystems/archivemount { };
|
||||||
|
|
||||||
arandr = callPackage ../tools/X11/arandr { };
|
arandr = callPackage ../tools/X11/arandr { };
|
||||||
@ -10348,8 +10344,8 @@ with pkgs;
|
|||||||
|
|
||||||
libxmi = callPackage ../development/libraries/libxmi { };
|
libxmi = callPackage ../development/libraries/libxmi { };
|
||||||
|
|
||||||
libxml2 = callPackage ../development/libraries/libxml2 {
|
libxml2 = callPackage ../development/libraries/libxml2 { };
|
||||||
};
|
|
||||||
libxml2Python = pkgs.buildEnv { # slightly hacky
|
libxml2Python = pkgs.buildEnv { # slightly hacky
|
||||||
name = "libxml2+py-${self.libxml2.version}";
|
name = "libxml2+py-${self.libxml2.version}";
|
||||||
paths = with libxml2; [ dev bin py ];
|
paths = with libxml2; [ dev bin py ];
|
||||||
@ -12417,10 +12413,7 @@ with pkgs;
|
|||||||
|
|
||||||
pshs = callPackage ../servers/http/pshs { };
|
pshs = callPackage ../servers/http/pshs { };
|
||||||
|
|
||||||
libpulseaudio = callPackage ../servers/pulseaudio {
|
# PulseAudio daemons
|
||||||
libOnly = true;
|
|
||||||
inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Name is changed to prevent use in packages;
|
# Name is changed to prevent use in packages;
|
||||||
# please use libpulseaudio instead.
|
# please use libpulseaudio instead.
|
||||||
@ -12440,6 +12433,25 @@ with pkgs;
|
|||||||
inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
|
inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# libpulse implementations
|
||||||
|
|
||||||
|
libpulseaudio-vanilla = callPackage ../servers/pulseaudio {
|
||||||
|
libOnly = true;
|
||||||
|
inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
|
||||||
|
};
|
||||||
|
|
||||||
|
apulse = callPackage ../misc/apulse { };
|
||||||
|
|
||||||
|
libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix {
|
||||||
|
libpulseaudio = libpulseaudio-vanilla; # headers only
|
||||||
|
};
|
||||||
|
|
||||||
|
libcardiacarrest = callPackage ../misc/libcardiacarrest {
|
||||||
|
libpulseaudio = libpulseaudio-vanilla; # meta only
|
||||||
|
};
|
||||||
|
|
||||||
|
libpulseaudio = libpulseaudio-vanilla;
|
||||||
|
|
||||||
tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
|
tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
|
||||||
|
|
||||||
pies = callPackage ../servers/pies { };
|
pies = callPackage ../servers/pies { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user