···4455## `runCommand` {#trivial-builder-runCommand}
6677-This takes three arguments, `name`, `env`, and `buildCommand`. `name` is just the name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute. `env` is an attribute set specifying environment variables that will be set for this derivation. These attributes are then passed to the wrapped `stdenv.mkDerivation`. `buildCommand` specifies the commands that will be run to create this derivation. Note that you will need to create `$out` for Nix to register the command as successful.
77+`runCommand :: String -> AttrSet -> String -> Derivation`
88+99+`runCommand name drvAttrs buildCommand` returns a derivation that is built by running the specified shell commands.
81099-An example of using `runCommand` is provided below.
1111+`name :: String`
1212+: The name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute.
1313+1414+`drvAttr :: AttrSet`
1515+: Attributes to pass to the underlying call to [`stdenv.mkDerivation`](#chap-stdenv).
1616+1717+`buildCommand :: String`
1818+: Shell commands to run in the derivation builder.
1919+2020+ ::: {.note}
2121+ You have to create a file or directory `$out` for Nix to be able to run the builder successfully.
2222+ :::
2323+2424+::: {.example #ex-runcommand-simple}
2525+# Invocation of `runCommand`
10261127```nix
1228(import <nixpkgs> {}).runCommand "my-example" {} ''
···2844 date
2945''
3046```
4747+:::
31483249## `runCommandCC` {#trivial-builder-runCommandCC}
3350
+20-2
doc/languages-frameworks/beam.section.md
···44444545## How to Install BEAM Packages {#how-to-install-beam-packages}
46464747-BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users. To install any of those builders into your profile, refer to them by their attribute path `beamPackages.rebar3`:
4747+BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users.
4848+To use any of those builders into your environment, refer to them by their attribute path under `beamPackages`, e.g. `beamPackages.rebar3`:
4949+5050+::: {.example #ex-beam-ephemeral-shell}
5151+# Ephemeral shell
48524953```ShellSession
5050-$ nix-env -f "<nixpkgs>" -iA beamPackages.rebar3
5454+$ nix-shell -p beamPackages.rebar3
5155```
5656+:::
5757+5858+::: {.example #ex-beam-declarative-shell}
5959+# Declarative shell
6060+6161+```nix
6262+let
6363+ pkgs = import <nixpkgs> { config = {}; overlays = []; };
6464+in
6565+pkgs.mkShell {
6666+ packages = [ pkgs.beamPackages.rebar3 ];
6767+}
6868+```
6969+:::
52705371## Packaging BEAM Applications {#packaging-beam-applications}
5472
···250250Unfortunately all servers supporting new clients (newer version of anki-sync-server, anki's built in sync server and this new rust package) do not support the older sync protocol that was used in the old server, so such old clients will also need updating and in particular the anki package in nixpkgs is also being updated in this release.
251251The module update takes care of the new config syntax and the data itself (user login and cards) are compatible, so users of the module will be able to just log in again after updating both client and server without any extra action.
252252253253+- `services.matrix-synapse` has new options to configure worker processes for matrix-synapse using [`services.matrix-synapse.workers`](#opt-services.matrix-synapse.workers). It's also now possible to configure a local redis server using [`services.matrix-synapse.configureRedisLocally`](#opt-services.matrix-synapse.configureRedisLocally).
254254+253255- `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts.<name>.listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details.
254256255257- `services.restic.backups` now adds wrapper scripts to your system path, which set the same environment variables as the service, so restic operations can easly be run from the command line. This behavior can be disabled by setting `createWrapper` to `false`, per backup configuration.
···3838 buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
39394040 # our version of buck2; this should be a git tag
4141- version = "2023-09-01";
4141+ version = "2023-09-15";
42424343 # the platform-specific, statically linked binary — which is also
4444 # zstd-compressed
···6363 # tooling
6464 prelude-src =
6565 let
6666- prelude-hash = "3526cf5512668040e011d67e1e272da588264f3b";
6666+ prelude-hash = "1cdbe261a4e669d9bb25bac5617b17919b2bb05c";
6767 name = "buck2-prelude-${version}.tar.gz";
6868 hash = buildHashes."_prelude";
6969 url = "https://github.com/facebook/buck2-prelude/archive/${prelude-hash}.tar.gz";