Merge master into staging-next
This commit is contained in:
commit
44763c135b
|
@ -235,7 +235,7 @@ let
|
|||
# https://github.com/NixOS/nixpkgs/pull/81371#issuecomment-605526099
|
||||
wantedBy = optionals (!config.boot.isContainer) [ "multi-user.target" ];
|
||||
|
||||
path = with pkgs; [ lego coreutils diffutils ];
|
||||
path = with pkgs; [ lego coreutils diffutils openssl ];
|
||||
|
||||
serviceConfig = commonServiceConfig // {
|
||||
Group = data.group;
|
||||
|
@ -274,6 +274,34 @@ let
|
|||
script = ''
|
||||
set -euxo pipefail
|
||||
|
||||
# This reimplements the expiration date check, but without querying
|
||||
# the acme server first. By doing this offline, we avoid errors
|
||||
# when the network or DNS are unavailable, which can happen during
|
||||
# nixos-rebuild switch.
|
||||
is_expiration_skippable() {
|
||||
pem=$1
|
||||
|
||||
# This function relies on set -e to exit early if any of the
|
||||
# conditions or programs fail.
|
||||
|
||||
[[ -e $pem ]]
|
||||
|
||||
expiration_line="$(
|
||||
set -euxo pipefail
|
||||
openssl x509 -noout -enddate <$pem \
|
||||
| grep notAfter \
|
||||
| sed -e 's/^notAfter=//'
|
||||
)"
|
||||
[[ -n "$expiration_line" ]]
|
||||
|
||||
expiration_date="$(date -d "$expiration_line" +%s)"
|
||||
now="$(date +%s)"
|
||||
expiration_s=$[expiration_date - now]
|
||||
expiration_days=$[expiration_s / (3600 * 24)] # rounds down
|
||||
|
||||
[[ $expiration_days -gt ${toString cfg.validMinDays} ]]
|
||||
}
|
||||
|
||||
${optionalString (data.webroot != null) ''
|
||||
# Ensure the webroot exists
|
||||
mkdir -p '${data.webroot}/.well-known/acme-challenge'
|
||||
|
@ -288,8 +316,14 @@ let
|
|||
# When domains are updated, there's no need to do a full
|
||||
# Lego run, but it's likely renew won't work if days is too low.
|
||||
if [ -e certificates/domainhash.txt ] && cmp -s domainhash.txt certificates/domainhash.txt; then
|
||||
lego ${renewOpts} --days ${toString cfg.validMinDays}
|
||||
if is_expiration_skippable out/full.pem; then
|
||||
echo 1>&2 "nixos-acme: skipping renewal because expiration isn't within the coming ${toString cfg.validMinDays} days"
|
||||
else
|
||||
echo 1>&2 "nixos-acme: renewing now, because certificate expires within the configured ${toString cfg.validMinDays} days"
|
||||
lego ${renewOpts} --days ${toString cfg.validMinDays}
|
||||
fi
|
||||
else
|
||||
echo 1>&2 "certificate domain(s) have changed; will renew now"
|
||||
# Any number > 90 works, but this one is over 9000 ;-)
|
||||
lego ${renewOpts} --days 9001
|
||||
fi
|
||||
|
|
6
nixos/modules/services/desktops/pipewire/README.md
Normal file
6
nixos/modules/services/desktops/pipewire/README.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Updating
|
||||
|
||||
1. Update the version & hash in pkgs/development/libraries/pipewire/default.nix
|
||||
2. run `nix build -f /path/to/nixpkgs/checkout pipewire pipewire.mediaSession`
|
||||
3. copy all JSON files from result/etc/pipewire and result-mediaSession/etc/pipewire/media-session.d to this directory
|
||||
4. add new files to the module config and passthru tests
|
|
@ -6,21 +6,34 @@
|
|||
"audio.convert.*": "audioconvert/libspa-audioconvert",
|
||||
"support.*": "support/libspa-support"
|
||||
},
|
||||
"context.modules": {
|
||||
"libpipewire-module-rtkit": {
|
||||
"context.modules": [
|
||||
{
|
||||
"name": "libpipewire-module-rtkit",
|
||||
"args": {},
|
||||
"flags": [
|
||||
"ifexists",
|
||||
"nofail"
|
||||
]
|
||||
},
|
||||
"libpipewire-module-protocol-native": null,
|
||||
"libpipewire-module-client-node": null,
|
||||
"libpipewire-module-client-device": null,
|
||||
"libpipewire-module-adapter": null,
|
||||
"libpipewire-module-metadata": null,
|
||||
"libpipewire-module-session-manager": null
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-protocol-native"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-node"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-device"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-adapter"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-metadata"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-session-manager"
|
||||
}
|
||||
],
|
||||
"filter.properties": {},
|
||||
"stream.properties": {}
|
||||
}
|
||||
|
|
|
@ -6,14 +6,26 @@
|
|||
"audio.convert.*": "audioconvert/libspa-audioconvert",
|
||||
"support.*": "support/libspa-support"
|
||||
},
|
||||
"context.modules": {
|
||||
"libpipewire-module-protocol-native": null,
|
||||
"libpipewire-module-client-node": null,
|
||||
"libpipewire-module-client-device": null,
|
||||
"libpipewire-module-adapter": null,
|
||||
"libpipewire-module-metadata": null,
|
||||
"libpipewire-module-session-manager": null
|
||||
},
|
||||
"context.modules": [
|
||||
{
|
||||
"name": "libpipewire-module-protocol-native"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-node"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-device"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-adapter"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-metadata"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-session-manager"
|
||||
}
|
||||
],
|
||||
"filter.properties": {},
|
||||
"stream.properties": {}
|
||||
}
|
||||
|
|
|
@ -5,17 +5,24 @@
|
|||
"context.spa-libs": {
|
||||
"support.*": "support/libspa-support"
|
||||
},
|
||||
"context.modules": {
|
||||
"libpipewire-module-rtkit": {
|
||||
"context.modules": [
|
||||
{
|
||||
"name": "libpipewire-module-rtkit",
|
||||
"args": {},
|
||||
"flags": [
|
||||
"ifexists",
|
||||
"nofail"
|
||||
]
|
||||
},
|
||||
"libpipewire-module-protocol-native": null,
|
||||
"libpipewire-module-client-node": null,
|
||||
"libpipewire-module-metadata": null
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-protocol-native"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-node"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-metadata"
|
||||
}
|
||||
],
|
||||
"jack.properties": {}
|
||||
}
|
||||
|
|
|
@ -6,21 +6,34 @@
|
|||
"api.v4l2.*": "v4l2/libspa-v4l2",
|
||||
"api.libcamera.*": "libcamera/libspa-libcamera"
|
||||
},
|
||||
"context.modules": {
|
||||
"libpipewire-module-rtkit": {
|
||||
"context.modules": [
|
||||
{
|
||||
"name": "libpipewire-module-rtkit",
|
||||
"args": {},
|
||||
"flags": [
|
||||
"ifexists",
|
||||
"nofail"
|
||||
]
|
||||
},
|
||||
"libpipewire-module-protocol-native": null,
|
||||
"libpipewire-module-client-node": null,
|
||||
"libpipewire-module-client-device": null,
|
||||
"libpipewire-module-adapter": null,
|
||||
"libpipewire-module-metadata": null,
|
||||
"libpipewire-module-session-manager": null
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-protocol-native"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-node"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-device"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-adapter"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-metadata"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-session-manager"
|
||||
}
|
||||
],
|
||||
"session.modules": {
|
||||
"default": [
|
||||
"flatpak",
|
||||
|
|
|
@ -9,21 +9,12 @@ let
|
|||
&& pkgs.stdenv.isx86_64
|
||||
&& pkgs.pkgsi686Linux.pipewire != null;
|
||||
|
||||
prioritizeNativeProtocol = {
|
||||
"context.modules" = {
|
||||
"libpipewire-module-protocol-native" = {
|
||||
_priority = -100;
|
||||
_content = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Use upstream config files passed through spa-json-dump as the base
|
||||
# Patched here as necessary for them to work with this module
|
||||
defaults = {
|
||||
alsa-monitor = (builtins.fromJSON (builtins.readFile ./alsa-monitor.conf.json));
|
||||
bluez-monitor = (builtins.fromJSON (builtins.readFile ./bluez-monitor.conf.json));
|
||||
media-session = recursiveUpdate (builtins.fromJSON (builtins.readFile ./media-session.conf.json)) prioritizeNativeProtocol;
|
||||
media-session = (builtins.fromJSON (builtins.readFile ./media-session.conf.json));
|
||||
v4l2-monitor = (builtins.fromJSON (builtins.readFile ./v4l2-monitor.conf.json));
|
||||
};
|
||||
# Helpers for generating the pipewire JSON config file
|
||||
|
|
|
@ -4,25 +4,35 @@
|
|||
"audio.convert.*": "audioconvert/libspa-audioconvert",
|
||||
"support.*": "support/libspa-support"
|
||||
},
|
||||
"context.modules": {
|
||||
"libpipewire-module-rtkit": {
|
||||
"context.modules": [
|
||||
{
|
||||
"name": "libpipewire-module-rtkit",
|
||||
"args": {},
|
||||
"flags": [
|
||||
"ifexists",
|
||||
"nofail"
|
||||
]
|
||||
},
|
||||
"libpipewire-module-protocol-native": null,
|
||||
"libpipewire-module-client-node": null,
|
||||
"libpipewire-module-adapter": null,
|
||||
"libpipewire-module-metadata": null,
|
||||
"libpipewire-module-protocol-pulse": {
|
||||
{
|
||||
"name": "libpipewire-module-protocol-native"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-node"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-adapter"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-metadata"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-protocol-pulse",
|
||||
"args": {
|
||||
"server.address": [
|
||||
"unix:native"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
],
|
||||
"stream.properties": {}
|
||||
}
|
||||
|
|
|
@ -14,42 +14,66 @@
|
|||
"api.jack.*": "jack/libspa-jack",
|
||||
"support.*": "support/libspa-support"
|
||||
},
|
||||
"context.modules": {
|
||||
"libpipewire-module-rtkit": {
|
||||
"context.modules": [
|
||||
{
|
||||
"name": "libpipewire-module-rtkit",
|
||||
"args": {},
|
||||
"flags": [
|
||||
"ifexists",
|
||||
"nofail"
|
||||
]
|
||||
},
|
||||
"libpipewire-module-protocol-native": null,
|
||||
"libpipewire-module-profiler": null,
|
||||
"libpipewire-module-metadata": null,
|
||||
"libpipewire-module-spa-device-factory": null,
|
||||
"libpipewire-module-spa-node-factory": null,
|
||||
"libpipewire-module-client-node": null,
|
||||
"libpipewire-module-client-device": null,
|
||||
"libpipewire-module-portal": {
|
||||
{
|
||||
"name": "libpipewire-module-protocol-native"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-profiler"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-metadata"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-spa-device-factory"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-spa-node-factory"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-node"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-client-device"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-portal",
|
||||
"flags": [
|
||||
"ifexists",
|
||||
"nofail"
|
||||
]
|
||||
},
|
||||
"libpipewire-module-access": {
|
||||
{
|
||||
"name": "libpipewire-module-access",
|
||||
"args": {}
|
||||
},
|
||||
"libpipewire-module-adapter": null,
|
||||
"libpipewire-module-link-factory": null,
|
||||
"libpipewire-module-session-manager": null
|
||||
},
|
||||
"context.objects": {
|
||||
"spa-node-factory": {
|
||||
{
|
||||
"name": "libpipewire-module-adapter"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-link-factory"
|
||||
},
|
||||
{
|
||||
"name": "libpipewire-module-session-manager"
|
||||
}
|
||||
],
|
||||
"context.objects": [
|
||||
{
|
||||
"factory": "spa-node-factory",
|
||||
"args": {
|
||||
"factory.name": "support.node.driver",
|
||||
"node.name": "Dummy-Driver",
|
||||
"priority.driver": 8000
|
||||
}
|
||||
}
|
||||
},
|
||||
"context.exec": {}
|
||||
],
|
||||
"context.exec": []
|
||||
}
|
||||
|
|
|
@ -18,45 +18,15 @@ let
|
|||
ln -s "${cfg.package.jack}/lib" "$out/lib/pipewire"
|
||||
'';
|
||||
|
||||
prioritizeNativeProtocol = {
|
||||
"context.modules" = {
|
||||
# Most other modules depend on this, so put it first
|
||||
"libpipewire-module-protocol-native" = {
|
||||
_priority = -100;
|
||||
_content = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fixDaemonModulePriorities = {
|
||||
"context.modules" = {
|
||||
# Most other modules depend on thism so put it first
|
||||
"libpipewire-module-protocol-native" = {
|
||||
_priority = -100;
|
||||
_content = null;
|
||||
};
|
||||
# Needs to be before libpipewire-module-access
|
||||
"libpipewire-module-portal" = {
|
||||
_priority = -50;
|
||||
_content = {
|
||||
flags = [
|
||||
"ifexists"
|
||||
"nofail"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Use upstream config files passed through spa-json-dump as the base
|
||||
# Patched here as necessary for them to work with this module
|
||||
defaults = {
|
||||
client = recursiveUpdate (builtins.fromJSON (builtins.readFile ./client.conf.json)) prioritizeNativeProtocol;
|
||||
client-rt = recursiveUpdate (builtins.fromJSON (builtins.readFile ./client-rt.conf.json)) prioritizeNativeProtocol;
|
||||
jack = recursiveUpdate (builtins.fromJSON (builtins.readFile ./jack.conf.json)) prioritizeNativeProtocol;
|
||||
client = builtins.fromJSON (builtins.readFile ./client.conf.json);
|
||||
client-rt = builtins.fromJSON (builtins.readFile ./client-rt.conf.json);
|
||||
jack = builtins.fromJSON (builtins.readFile ./jack.conf.json);
|
||||
# Remove session manager invocation from the upstream generated file, it points to the wrong path
|
||||
pipewire = recursiveUpdate (builtins.fromJSON (builtins.readFile ./pipewire.conf.json)) fixDaemonModulePriorities;
|
||||
pipewire-pulse = recursiveUpdate (builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json)) prioritizeNativeProtocol;
|
||||
pipewire = builtins.fromJSON (builtins.readFile ./pipewire.conf.json);
|
||||
pipewire-pulse = builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json);
|
||||
};
|
||||
|
||||
# Helpers for generating the pipewire JSON config file
|
||||
|
|
|
@ -118,8 +118,9 @@ in
|
|||
[network]
|
||||
cni_plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
|
||||
|
||||
${lib.optionalString (cfg.ociSeccompBpfHook.enable == true) ''
|
||||
[engine]
|
||||
init_path = "${pkgs.catatonit}/bin/catatonit"
|
||||
${lib.optionalString (cfg.ociSeccompBpfHook.enable) ''
|
||||
hooks_dir = [
|
||||
"${config.boot.kernelPackages.oci-seccomp-bpf-hook}",
|
||||
]
|
||||
|
|
|
@ -96,6 +96,15 @@ import ./make-test-python.nix (
|
|||
podman.succeed(su_cmd("podman ps | grep sleeping"))
|
||||
podman.succeed(su_cmd("podman stop sleeping"))
|
||||
podman.succeed(su_cmd("podman rm sleeping"))
|
||||
|
||||
with subtest("Run container with init"):
|
||||
podman.succeed(
|
||||
"tar cv -C ${pkgs.pkgsStatic.busybox} . | podman import - busybox"
|
||||
)
|
||||
pid = podman.succeed("podman run --rm busybox readlink /proc/self").strip()
|
||||
assert pid == "1"
|
||||
pid = podman.succeed("podman run --rm --init busybox readlink /proc/self").strip()
|
||||
assert pid == "2"
|
||||
'';
|
||||
}
|
||||
)
|
||||
|
|
39
pkgs/applications/virtualization/catatonit/default.nix
Normal file
39
pkgs/applications/virtualization/catatonit/default.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, glibc, nixosTests }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "catatonit";
|
||||
version = "0.1.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openSUSE";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "ciJ1MI7jr5P2PgxIykQ+BiwNUO8lQHGt0+U8CNbc5bI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix compilation with musl
|
||||
(fetchpatch {
|
||||
url = "https://github.com/openSUSE/catatonit/commit/75014b1c3099245b7d0f44f24d7f6dc4888a45fd.patch";
|
||||
sha256 = "sha256-9VMNUT1U90ocjvE7EXYfLxuodDwTXXHYg89qqa5Jq0g=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
buildInputs = lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
readelf -d $out/bin/catatonit | grep 'There is no dynamic section in this file.'
|
||||
'';
|
||||
|
||||
passthru.tests = { inherit (nixosTests) podman; };
|
||||
|
||||
meta = with lib; {
|
||||
description = "A container init that is so simple it's effectively brain-dead";
|
||||
homepage = "https://github.com/openSUSE/catatonit";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ erosennin ] ++ teams.podman.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -171,11 +171,11 @@ let
|
|||
priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
|
||||
};
|
||||
} // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
|
||||
crossVersion = "1.3.5"; # Jan 24, 2021
|
||||
crossVersion = "e53999d0c340769792ba18d749751b0df3d1d177"; # Mar 21, 2021
|
||||
|
||||
perl-cross-src = fetchurl {
|
||||
url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
|
||||
sha256 = "1sa2f8s1hc604g5y98w6m6y5q43s9jiyrpnp4b34zkfx1qs3w6l4";
|
||||
sha256 = "14vcpwjhq667yh0cs7ism70df8l7068vn4a0ww59hdjyj7yc84i6";
|
||||
};
|
||||
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
|
||||
|
@ -211,7 +211,7 @@ in {
|
|||
perldevel = common {
|
||||
perl = pkgs.perldevel;
|
||||
buildPerl = buildPackages.perldevel;
|
||||
version = "5.33.6";
|
||||
sha256 = "1fx6b2q7wzd0xwy7qkmkvd5bdm09d3zfnynrb6afl9ghd8ww56fv";
|
||||
version = "5.33.8";
|
||||
sha256 = "1zr6sdsfcmk86n3f8j65x07xkv29v0pi8bwc986ahmjx7x92xzgl";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "zef";
|
||||
version = "0.11.4";
|
||||
version = "0.11.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ugexe";
|
||||
repo = "zef";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-wccVMEUAfTWs/8hnrT7nrxfYPHyNl+lXt+KUDkyplto=";
|
||||
sha256 = "sha256-LLUAwqky/q9KvFltrcff5U2BSLvOk/BbDSj07QlePSg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index a6c8af72..8e5c3d73 100644
|
||||
index e2a1e028..310029f2 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -10,6 +10,9 @@ option('media-session',
|
||||
description: 'Build and install pipewire-media-session',
|
||||
type: 'boolean',
|
||||
value: true)
|
||||
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: 'boolean',
|
||||
type: 'feature',
|
||||
diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
|
||||
index 4a70b0b0..84c9a19e 100644
|
||||
index 5c4d1af0..7296220f 100644
|
||||
--- a/src/daemon/systemd/user/meson.build
|
||||
+++ b/src/daemon/systemd/user/meson.build
|
||||
@@ -10,7 +10,7 @@ install_data(
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
diff --git a/meson.build b/meson.build
|
||||
index ffee41b4..bab6f019 100644
|
||||
index 97d4d939..b17358e5 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -318,8 +318,8 @@ alsa_dep = (get_option('pipewire-alsa')
|
||||
? dependency('alsa', version : '>=1.1.7')
|
||||
: dependency('', required: false))
|
||||
|
||||
@@ -353,8 +353,8 @@ libinotify_dep = (build_machine.system() == 'freebsd'
|
||||
|
||||
alsa_dep = dependency('alsa', version : '>=1.1.7', required: get_option('pipewire-alsa'))
|
||||
|
||||
-installed_tests_metadir = join_paths(pipewire_datadir, 'installed-tests', pipewire_name)
|
||||
-installed_tests_execdir = join_paths(pipewire_libexecdir, 'installed-tests', pipewire_name)
|
||||
+installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', pipewire_name)
|
||||
+installed_tests_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', pipewire_name)
|
||||
installed_tests_enabled = get_option('installed_tests')
|
||||
installed_tests_enabled = not get_option('installed_tests').disabled()
|
||||
installed_tests_template = files('template.test.in')
|
||||
|
||||
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index f03033c3..32df6c53 100644
|
||||
index fba0d647..8c6106cd 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -18,6 +18,9 @@ option('installed_tests',
|
||||
@@ -26,6 +26,9 @@ option('installed_tests',
|
||||
description: 'Install manual and automated test executables',
|
||||
type: 'boolean',
|
||||
value: false)
|
||||
type: 'feature',
|
||||
value: 'disabled')
|
||||
+option('installed_test_prefix',
|
||||
+ description: 'Prefix for installed tests',
|
||||
+ type: 'string')
|
||||
option('gstreamer',
|
||||
description: 'Build GStreamer plugins',
|
||||
type: 'boolean',
|
||||
type: 'feature',
|
||||
|
|
|
@ -39,11 +39,11 @@ let
|
|||
fontDirectories = [];
|
||||
};
|
||||
|
||||
mesonBool = b: if b then "true" else "false";
|
||||
mesonEnable = b: if b then "enabled" else "disabled";
|
||||
|
||||
self = stdenv.mkDerivation rec {
|
||||
pname = "pipewire";
|
||||
version = "0.3.23";
|
||||
version = "0.3.24";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
|
@ -61,7 +61,7 @@ let
|
|||
owner = "pipewire";
|
||||
repo = "pipewire";
|
||||
rev = version;
|
||||
hash = "sha256:1HMUrE1NBmrdBRMKX3LRlXaCEH3wqP2jGtW8Rp9oyQA=";
|
||||
hash = "sha256:PcY20FTtUtJYAwCscEs+HfkdwDksYPFZIVTVORP1ooI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -103,22 +103,23 @@ let
|
|||
++ lib.optionals bluezSupport [ bluez libopenaptx ldacbt sbc fdk_aac ];
|
||||
|
||||
mesonFlags = [
|
||||
"-Ddocs=true"
|
||||
"-Dman=false" # we don't have xmltoman
|
||||
"-Dexamples=${mesonBool withMediaSession}" # only needed for `pipewire-media-session`
|
||||
"-Ddocs=enabled"
|
||||
"-Dman=disabled" # we don't have xmltoman
|
||||
"-Dexamples=${mesonEnable withMediaSession}" # only needed for `pipewire-media-session`
|
||||
"-Dudevrulesdir=lib/udev/rules.d"
|
||||
"-Dinstalled_tests=true"
|
||||
"-Dinstalled_tests=enabled"
|
||||
"-Dinstalled_test_prefix=${placeholder "installedTests"}"
|
||||
"-Dpipewire_pulse_prefix=${placeholder "pulse"}"
|
||||
"-Dmedia-session-prefix=${placeholder "mediaSession"}"
|
||||
"-Dlibjack-path=${placeholder "jack"}/lib"
|
||||
"-Dgstreamer=${mesonBool gstreamerSupport}"
|
||||
"-Dffmpeg=${mesonBool ffmpegSupport}"
|
||||
"-Dbluez5=${mesonBool bluezSupport}"
|
||||
"-Dbluez5-backend-hsp-native=${mesonBool nativeHspSupport}"
|
||||
"-Dbluez5-backend-hfp-native=${mesonBool nativeHfpSupport}"
|
||||
"-Dbluez5-backend-ofono=${mesonBool ofonoSupport}"
|
||||
"-Dbluez5-backend-hsphfpd=${mesonBool hsphfpdSupport}"
|
||||
"-Dlibcamera=disabled"
|
||||
"-Dgstreamer=${mesonEnable gstreamerSupport}"
|
||||
"-Dffmpeg=${mesonEnable ffmpegSupport}"
|
||||
"-Dbluez5=${mesonEnable bluezSupport}"
|
||||
"-Dbluez5-backend-hsp-native=${mesonEnable nativeHspSupport}"
|
||||
"-Dbluez5-backend-hfp-native=${mesonEnable nativeHfpSupport}"
|
||||
"-Dbluez5-backend-ofono=${mesonEnable ofonoSupport}"
|
||||
"-Dbluez5-backend-hsphfpd=${mesonEnable hsphfpdSupport}"
|
||||
"-Dpipewire_config_dir=/etc/pipewire"
|
||||
];
|
||||
|
||||
|
|
14
pkgs/development/ocaml-modules/faraday/async.nix
Normal file
14
pkgs/development/ocaml-modules/faraday/async.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{ buildDunePackage, faraday, core, async }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "faraday-async";
|
||||
inherit (faraday) version src useDune2;
|
||||
|
||||
minimumOCamlVersion = "4.08";
|
||||
|
||||
propagatedBuildInputs = [ faraday core async ];
|
||||
|
||||
meta = faraday.meta // {
|
||||
description = "Async support for Faraday";
|
||||
};
|
||||
}
|
12
pkgs/development/ocaml-modules/faraday/lwt-unix.nix
Normal file
12
pkgs/development/ocaml-modules/faraday/lwt-unix.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ buildDunePackage, faraday, faraday-lwt, lwt }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "faraday-lwt-unix";
|
||||
inherit (faraday) version src useDune2 minimumOCamlVersion;
|
||||
|
||||
propagatedBuildInputs = [ lwt faraday-lwt ];
|
||||
|
||||
meta = faraday.meta // {
|
||||
description = "Lwt + Unix support for Faraday";
|
||||
};
|
||||
}
|
12
pkgs/development/ocaml-modules/faraday/lwt.nix
Normal file
12
pkgs/development/ocaml-modules/faraday/lwt.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ buildDunePackage, faraday, lwt }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "faraday-lwt";
|
||||
inherit (faraday) version src useDune2 minimumOCamlVersion;
|
||||
|
||||
propagatedBuildInputs = [ faraday lwt ];
|
||||
|
||||
meta = faraday.meta // {
|
||||
description = "Lwt support for Faraday";
|
||||
};
|
||||
}
|
|
@ -1,31 +1,26 @@
|
|||
{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
|
||||
, colorama, mypy, pyyaml, regex
|
||||
, dataclasses, typing
|
||||
, pytestrunner, pytest-mypy
|
||||
, colorama, regex
|
||||
, pytestrunner, pytestCheckHook, pytest-mypy
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "TatSu";
|
||||
version = "5.5.0";
|
||||
pname = "tatsu";
|
||||
version = "5.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neogeny";
|
||||
repo = pname;
|
||||
repo = "TatSu";
|
||||
rev = "v${version}";
|
||||
sha256 = "07bmdnwh99p60cgzhlb8s5vwi5v4r5zi8shymxnnarannkc66hzn";
|
||||
sha256 = "sha256-kC2MxMebS4TQEZBgTmYRBWaWSF36rVS3bXIsQgRrF0Y=";
|
||||
};
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
nativeBuildInputs = [ pytestrunner ];
|
||||
propagatedBuildInputs = [ colorama mypy pyyaml regex ]
|
||||
++ lib.optionals (pythonOlder "3.7") [ dataclasses ]
|
||||
++ lib.optionals (pythonOlder "3.5") [ typing ];
|
||||
checkInputs = [ pytest-mypy ];
|
||||
propagatedBuildInputs = [ colorama regex ];
|
||||
checkInputs = [ pytestCheckHook pytest-mypy ];
|
||||
|
||||
checkPhase = ''
|
||||
pytest test/
|
||||
'';
|
||||
pythonImportsCheck = [ "tatsu" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Generates Python parsers from grammars in a variation of EBNF";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "flow";
|
||||
version = "0.146.0";
|
||||
version = "0.147.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "flow";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "0kxws51hri0b4z7k05li6vg1arcdc7i5jzfibi0iplsfyy14159q";
|
||||
sha256 = "sha256-3U8BOYUHl1YiOnxAIV2V6Ib+LZ0DydtSfwAxN2Hj09g=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
|
|||
changelog = "https://github.com/facebook/flow/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
platforms = ocamlPackages.ocaml.meta.platforms;
|
||||
broken = stdenv.isAarch64; # https://github.com/facebook/flow/issues/7556
|
||||
maintainers = with maintainers; [ marsam puffnfresh ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{ lib, buildGoPackage, fetchFromGitLab, fetchurl }:
|
||||
|
||||
let
|
||||
version = "13.9.0";
|
||||
version = "13.10.0";
|
||||
# Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
|
||||
docker_x86_64 = fetchurl {
|
||||
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
|
||||
sha256 = "0zgnp6l0p1i7x6lppd24nfb6kqa8mw7rnr2p5gmwbmjv9i9zkycs";
|
||||
sha256 = "0lw087xcbzf4d68mq0h0s31na7lww2d9nv43icw9qx05aknlcddv";
|
||||
};
|
||||
|
||||
docker_arm = fetchurl {
|
||||
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
|
||||
sha256 = "06b5p9ygcnrjrisp6bcgw9s3j2zlycp8jsri259bjf7rrfbwpkma";
|
||||
sha256 = "1mf3w85ivc8r2rmb78r4b87rrxmbb1zda9pp8n4nvd0igg23xqk8";
|
||||
};
|
||||
in
|
||||
buildGoPackage rec {
|
||||
|
@ -30,7 +30,7 @@ buildGoPackage rec {
|
|||
owner = "gitlab-org";
|
||||
repo = "gitlab-runner";
|
||||
rev = "v${version}";
|
||||
sha256 = "0wzqrfjg43wnf9lr34jn3ydlxi7vsnqs55pm5igba592q8ykfbxk";
|
||||
sha256 = "0xy5mpcpxcmwfdrspd29z8nyn1m9i4ma7d5kbihwa2yxznylydpx";
|
||||
};
|
||||
|
||||
patches = [ ./fix-shell-path.patch ];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, coreutils, git, gnused, nix, nixfmt }:
|
||||
|
||||
let
|
||||
version = "2.0.14";
|
||||
version = "2.0.15";
|
||||
|
||||
zshCompletion = fetchurl {
|
||||
url =
|
||||
|
@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
|
|||
src = fetchurl {
|
||||
url =
|
||||
"https://github.com/coursier/coursier/releases/download/v${version}/coursier";
|
||||
sha256 = "sha256-mGVOg+I42O3VYj7RStEOfZajS9RZo9hLWKap6UdjJCE=";
|
||||
sha256 = "sha256-XfTW8GNoPsNXamy0K9Ai3SSzBSyS1dNNCeWsbD8xCQI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
35
pkgs/misc/scimark/default.nix
Normal file
35
pkgs/misc/scimark/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, unzip
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "scimark";
|
||||
version = "4c";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://math.nist.gov/scimark2/${pname}${version}.zip";
|
||||
hash = "sha256-kcg5vKYp0B7+bC/CmFMO/tMwxf9q6nvuFv0vRSy3MbE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
unzip
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
installPhase = ''
|
||||
install -d $out/bin/
|
||||
install scimark4 $out/bin/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://math.nist.gov/scimark2/index.html";
|
||||
description = "Scientific and numerical computing benchmark (ANSI C version)";
|
||||
license = licenses.publicDomain;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
# TODO [ AndersonTorres ]: Java version
|
|
@ -197,6 +197,8 @@ in
|
|||
inherit (python3Packages) sphinx;
|
||||
};
|
||||
|
||||
catatonit = callPackage ../applications/virtualization/catatonit { };
|
||||
|
||||
cen64 = callPackage ../misc/emulators/cen64 { };
|
||||
|
||||
cereal = callPackage ../development/libraries/cereal { };
|
||||
|
@ -7914,6 +7916,8 @@ in
|
|||
pulseSupport = config.pulseaudio or false;
|
||||
};
|
||||
|
||||
scimark = callPackage ../misc/scimark { };
|
||||
|
||||
screen = callPackage ../tools/misc/screen {
|
||||
inherit (darwin.apple_sdk.libs) utmp;
|
||||
};
|
||||
|
|
|
@ -345,6 +345,12 @@ let
|
|||
|
||||
faraday = callPackage ../development/ocaml-modules/faraday { };
|
||||
|
||||
faraday-async = callPackage ../development/ocaml-modules/faraday/async.nix { };
|
||||
|
||||
faraday-lwt = callPackage ../development/ocaml-modules/faraday/lwt.nix { };
|
||||
|
||||
faraday-lwt-unix = callPackage ../development/ocaml-modules/faraday/lwt-unix.nix { };
|
||||
|
||||
farfadet = callPackage ../development/ocaml-modules/farfadet { };
|
||||
|
||||
fdkaac = callPackage ../development/ocaml-modules/fdkaac { };
|
||||
|
|
Loading…
Reference in a new issue