nixpkgs/nixos
Klemens Nanni 987400b848 nixos/desktop-manager: Use literal newline to fix shell syntax
Running `nixos/tests/keepassxc.nix` shows:
```
machine # [   18.705390] xsession[985]: /nix/store/2g2jx5c6x3p152wbiijr0rmky7byqivc-xsession: line 13: nn: command not found
```

This garbled bash script runs without `set -o errexit` and thus skips
"\n\n" as invalid command:
```
$ cat -n /nix/store/2g2jx5c6x3p152wbiijr0rmky7byqivc-xsession
...
\n\n
            if [ -e $HOME/.background-image ]; then
              /nix/store/wq1d1ph8wj4alpx78akvpbd0a0m9qkd1-feh-3.8/bin/feh --bg-scale  $HOME/.background-image
            fi
...
```

KeePassXC uses it through
`nixos/modules/services/x11/display-managers/default.nix`:
```
...
        # Script responsible for starting the window manager and the desktop manager.
        xsession = dm: wm: pkgs.writeScript "xsession" ''
          #! ${pkgs.bash}/bin/bash

          # Legacy session script used to construct .desktop files from
          # `services.xserver.displayManager.session` entries. Called from
          # `sessionWrapper`.

          # Start the window manager.
          ${wm.start}

          # Start the desktop manager.
          ${dm.start}
...
        '';
...
```

The bogus line was introduced in PR #160752:
```
commit 0bc0dc8090
Author: Shaw Vrana <shaw@vranix.com>
Date:   Fri Feb 18 11:27:42 2022 -0800

    desktop manager script: start properly

    Adds a missing line feed when X is enabled to the start script name
    and the appended if check. Resolves #160735
```

I have not tried to reproduce the original issue and thus don't know
why "\n\n" apparently gets interpreted fine in one place but remains
literal the `xsession` case.

However, using a literal newline must be valid for all cases and
certainly fixes the warning seen in KeePassXC tests.

Furthermore, starting the nix string (`''`) with a newline as usual also
fixes its overall indentation.
2022-07-01 16:30:47 +04:00
..
doc Merge pull request #179220 from romildo/fix.xfconf 2022-06-30 07:39:27 -03:00
lib nixos/make-options-doc: Support Nix-provided declaration locations 2022-06-27 22:07:20 +02:00
maintainers maintainers/create-amis.sh: Add more AWS regions 2022-05-17 10:20:30 +01:00
modules nixos/desktop-manager: Use literal newline to fix shell syntax 2022-07-01 16:30:47 +04:00
tests Merge pull request #179425 from McSinyx/phylactery 2022-06-30 18:29:19 +03:00
COPYING
default.nix nixos: Make system.build.vm a standard attribute based on vmVariant 2021-12-17 14:49:31 +01:00
README
release-combined.nix nixos/release: add podman, oci-containers.podman to tested 2022-05-03 19:42:33 +10:00
release-small.nix nixos/release: disable nfs3.simple 2022-03-03 06:34:59 +10:00
release.nix nixos/release.nix: expose a kexec.$system attribute 2022-06-09 20:00:26 +02:00

*** NixOS ***

NixOS is a Linux distribution based on the purely functional package
management system Nix.  More information can be found at
https://nixos.org/nixos and in the manual in doc/manual.