Commit Graph

41 Commits

Author SHA1 Message Date
Doron Behar
2415e26111 nixos/pipewire: mention possible integration with pulseaudio
The previous assert message was inaccurate, as it didn't reflect the
assertion condition, misleading users into thinking that either
pulseaudio or pipewire should be used as a sound server.
2024-11-05 18:02:03 +02:00
Artturin
e0464e4788 treewide: replace stdenv.is with stdenv.hostPlatform.is
In preparation for the deprecation of `stdenv.isX`.

These shorthands are not conducive to cross-compilation because they
hide the platforms.

Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way

One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059

There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.

```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
2024-09-25 00:04:37 +03:00
K900
333e6672e1 nixos/pipewire: install the default limits config, make group always exist 2024-08-16 12:00:08 +03:00
éclairevoyant
ff8f1a1f4e
nixos/pipewire: document example for services.pipewire.configPackages 2024-03-26 16:41:51 -04:00
éclairevoyant
27a2f2a429
nixos/pipewire: replace with lib; with inherit 2024-03-26 16:41:51 -04:00
éclairevoyant
f3b74afdc7
nixos/pipewire: remove lib.mdDoc (no-op) 2024-03-26 16:41:51 -04:00
Cabia Rangris
eaf6b74366
nixos/pipewire: raopOpenFirewall option
RAOP requires UDP/6001-6002 for timing
information, and won't work with apple devices if
firewall is enabled.
2024-03-20 18:32:01 +03:00
Hans Christian Schmitz
3f86bd950c
nixos/pipewire: add docs for passthru.requiredLv2Packages 2024-02-29 13:28:04 +01:00
Hans Christian Schmitz
5f6dca8403
nixos/pipewire: add assertions for migration to extraConfig/configPackages
The PR #282377 made files/directories specified in
`environment.etc."pipewire<...>"` and `environment.etc."wireplumber<...>"`
conflict with existing configuration of the PipeWire NixOS module due to how
the `configPackages` options were implemented. This sadly wasn't easily
avoidable. As this can cause breakage for users moving from 23.11 to 24.05
though, assertions can help guide them to use `services.pipewire.extraConfig`
or `services.pipewire.configPackages` / `services.wireplumber.configPackages`
instead, fixing the breakage.
2024-02-28 01:22:28 +01:00
K900
eb74747f38 nixos/pipewire: add LV2 plugins option
Follow-up #282377.

Some packages may want to load LV2 plugins directly from PipeWire config instead, so add another option to accomodate those.
2024-02-26 10:04:45 +03:00
Hans Christian Schmitz
5bf2637b48
nixos/wireplumber: add config packages option 2024-02-23 08:58:15 +01:00
Hans Christian Schmitz
054bba560a
nixos/pipewire: add config packages option 2024-02-23 08:57:16 +01:00
Hans Christian Schmitz
992582fdf8
nixos/pipewire: Fix capitalization
In docs PipeWire and WirePlumber should be capitalized as in this
sentence.
2024-02-23 08:57:12 +01:00
jopejoe1
8ba76f8dd4 nixos/pipewire: add pipewire config 2023-12-17 13:38:32 +03:00
h7x4
0a37316d6c
treewide: use mkPackageOption
This commit replaces a lot of usages of `mkOption` with the package
type, to be `mkPackageOption`, in order to reduce the amount of code.
2023-11-27 01:28:36 +01:00
K900
30e8b8e18d nixos/pipewire: simplify pw-pulse disabling 2023-10-20 10:22:53 +03:00
K900
ff44e8ab07 pipewire: simplify outputs drastically
This drops a whole bunch of patches we carry to avoid output cycles, at the cost of +1MB to closure size
on systems that don't already have Pipewire, which are becoming rarer and rarer.
2023-10-20 00:57:18 +03:00
K900
1fab86929f nixos/pipewire: spring cleaning
- drop media-session (rip 💀)
- stop trying to let people override default configs, those never got merged correctly
- drop all the complexity arising from having to vendor default config files
- build docs in sandbox as we no longer recurse
2023-03-14 20:31:32 +03:00
K900
ffaae97867 nixos/pipewire: add myself as maintainer 2023-01-30 09:09:47 +03:00
pennae
ef176dcf7e nixos/*: automatically convert option descriptions
conversions were done using https://github.com/pennae/nix-doc-munge
using (probably) rev f34e145 running

    nix-doc-munge nixos/**/*.nix
    nix-doc-munge --import nixos/**/*.nix

the tool ensures that only changes that could affect the generated
manual *but don't* are committed, other changes require manual review
and are discarded.
2022-08-31 16:32:53 +02:00
pennae
2e751c0772 treewide: automatically md-convert option descriptions
the conversion procedure is simple:

 - find all things that look like options, ie calls to either `mkOption`
   or `lib.mkOption` that take an attrset. remember the attrset as the
   option
 - for all options, find a `description` attribute who's value is not a
   call to `mdDoc` or `lib.mdDoc`
 - textually convert the entire value of the attribute to MD with a few
   simple regexes (the set from mdize-module.sh)
 - if the change produced a change in the manual output, discard
 - if the change kept the manual unchanged, add some text to the
   description to make sure we've actually found an option. if the
   manual changes this time, keep the converted description

this procedure converts 80% of nixos options to markdown. around 2000
options remain to be inspected, but most of those fail the "does not
change the manual output check": currently the MD conversion process
does not faithfully convert docbook tags like <code> and <package>, so
any option using such tags will not be converted at all.
2022-07-30 15:16:34 +02:00
Lily Foster
b5818b7a30 nixos/pipewire: only add pipewire-pulse.conf conditionally 2022-06-15 15:05:44 -07:00
Lily Foster
1e3747b98b nixos/pipewire: add pkgs.pulseaudio to pipewire-pulse user unit path 2022-06-15 15:05:44 -07:00
K900
955d1a6dde pipewire: create home directory for the pipewire user when running systemwide
wireplumber wants to store state there
2022-06-06 18:06:38 +03:00
Anders Kaseorg
b362ef4eff pipewire: Never set an empty LD_LIBRARY_PATH
An empty LD_LIBRARY_PATH may confuse some applications into appending
:, creating an empty segment that insecurely refers to the current
directory, not the absence of directories.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-06-05 13:34:35 +02:00
K900
435a5b675b nixos/pipewire: introduce an explicit option to use Pipewire as audio server 2022-03-26 08:54:18 +03:00
K900
1dbc26d995 nixos/pipewire: unbreak mixed Pulse/Pipewire setups
Fixes #163066
2022-03-22 11:29:46 +03:00
Jan Solanti
394c6f7949 nixos/pipewire: use standalone config when no session manger enabled 2022-02-17 17:39:53 +02:00
Jörg Thalheim
989238ec03
Merge pull request #153426 from 4z3/systemwide-pipewire
nixos/pipewire: add systemWide option
2022-01-05 21:33:07 +00:00
tv
7678a5848c nixos/pipewire: add systemWide option 2022-01-04 16:07:07 +01:00
pennae
fc614c37c6 nixos/documentation: split options doc build
most modules can be evaluated for their documentation in a very
restricted environment that doesn't include all of nixpkgs. this
evaluation can then be cached and reused for subsequent builds, merging
only documentation that has changed into the cached set. since nixos
ships with a large number of modules of which only a few are used in any
given config this can save evaluation a huge percentage of nixos
options available in any given config.

in tests of this caching, despite having to copy most of nixos/, saves
about 80% of the time needed to build the system manual, or about two
second on the machine used for testing. build time for a full system
config shrank from 9.4s to 7.4s, while turning documentation off
entirely shortened the build to 7.1s.
2022-01-02 19:46:13 +01:00
Sandro Jäckel
8547db919a
treewide: switch `builtins.fromJSON(builtins.readFile ./file.json)` to lib.importJSON ./file.json 2021-11-03 14:43:52 +01:00
Jan Solanti
b3bcf51c05 pipewire: 0.3.38 -> 0.3.39
Split pipewire-media-session into its own package
2021-10-25 20:34:40 +03:00
Naïm Favier
2ddc335e6f
nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
Artturin
756e60344f nixos/pipewire: use absolute path for jack libs 2021-09-02 17:17:15 +03:00
talyz
2a3c276b53
nixos/pipewire: Use formats.json, stricter typing, line breaks
The upstream pipewire config is written in an almost, but not quite
JSON format. The parser accepts standard JSON, though, so we don't
need to write our file in the same nonstandard version.

The typing for all config options is changed from `types.attrs`, which
behaves poorly when the option is set from multiple locations, to the
formats.json-type.

Also, rewrite some very long one-liners for improved readability.
2021-04-01 12:08:29 +02:00
Jan Solanti
fbdb248e54 pipewire: 0.3.23 -> 0.3.24 2021-03-19 05:14:44 +02:00
Jan Solanti
b012ecaae7 pipewire: 0.3.22 -> 0.3.23 2021-03-05 00:41:02 +02:00
Jan Solanti
78bfbdd77a pipewire: 0.3.21 -> 0.3.22 2021-03-05 00:39:32 +02:00
Jan Solanti
b9b9fff6d6 pipewire: use strictly upstream defaults 2021-02-14 23:54:17 +02:00
Jan Solanti
0fd29f6ce0 pipewire: move pipewire-media-session to its own output and module 2021-02-03 23:54:32 +02:00