This adds configuration options which automate the configuration of NVIDIA Optimus using PRIME. This allows using the NVIDIA proprietary driver on Optimus laptops, in order to render using the NVIDIA GPU while outputting to displays connected only to the integrated Intel GPU. It also adds an option for enabling kernel modesetting for the NVIDIA driver (via a kernel command line flag); this is particularly useful together with Optimus/PRIME because it fixes tearing on PRIME-connected screens.
The user still needs to enable the Optimus/PRIME feature and specify the bus IDs of the Intel and NVIDIA GPUs, but this is still much easier for users and more reliable. The implementation handles both the X configuration file as well as getting display managers to run certain necessary `xrandr` commands just after X has started.
Configuration of commands run after X startup is done using a new configuration option `services.xserver.displayManager.setupCommands`. Support for this option is implemented for LightDM, GDM and SDDM; all of these have been tested with this feature including logging into a Plasma session.
Note: support of `setupCommands` for GDM is implemented by making GDM run the session executable via a wrapper; the wrapper will run the `setupCommands` before execing. This seemed like the simplest and most reliable approach, and solves running these commands both for GDM's X server and user X servers (GDM starts separate X servers for itself and user sessions). An alternative approach would be with autostart files but that seems harder to set up and less reliable.
Note that some simple features for X configuration file generation (in `xserver.nix`) are added which are used in the implementation:
- `services.xserver.extraConfig`: Allows adding arbitrary new sections. This is used to add the Device section for the Intel GPU.
- `deviceSection` and `screenSection` within `services.xserver.drivers`. This allows the nvidia configuration module to add additional contents into the `Device` and `Screen` sections of the "nvidia" driver, and not into such sections for other drivers that may be enabled.
Since 772eef9168, the Boost package
doesn't support Python by default anymore, so we need to override it
with Python support because --enable-python-binding is enabled by
default in libtorrent-rasterbar.
The build of the package now succeeds again on my x86_64-linux machine.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @phreedom
Since 772eef9168, Boost by default doesn't
support Python anymore, so we need to override it with Python support.
Signed-off-by: aszlig <aszlig@nix.build>
Since 772eef9168 Boost no longer has
Python support enabled by default, so depending on whether Ledger has
Python support built in we also use either Boost with Python support or
without.
Tested building with and without Python support and both builds now
succeed.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @the-kenny, @jwiegley
Since the exposure of the version attribute done in
892a0e8ff4, the OpenBLAS build fails for
i686-linux:
https://nix-cache.s3.amazonaws.com/log/wi79zyfmwdpwx7bm29dzqh4vglx3x550-openblas-0.3.0.drv
According to @edolstra the build slaves of Hydra updated to a new
kernel, which seems to be the real cause for this issue. The latter is
already tracked upstream[1] and a fix[2] is already included in version
0.3.1.
This very update cases 4795 rebuilds across all architectures we
support, so it's still not significant enough to go through staging. In
addition the number of rebuilds doesn't include the amount of builds
that are currently failing.
My original idea was to add a patch just for fixing this on i686-linux
and do the real update via staging, but the amount of rebuilds still is
in an acceptable range IMO and @edolstra agreed on that on IRC.
[1]: https://github.com/xianyi/OpenBLAS/issues/1575
[2]: https://github.com/xianyi/OpenBLAS/pull/1583
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @ttuegel
* thunderbolt: 0.9.2 -> 0.9.3
Fixed up `cmakeFlags` so `tbtacl`, `tbtacl-write`, `tbtxdomain`, and
the udev rules now show up in the derivation output. Previously there
was only `tbtadm`.
* Add a note about placeholder expressions
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/pmd/versions.
These checks were done:
- built on NixOS
- Warning: no invocation of /nix/store/5h7bbvnfl6iqzpj4pqzv96x6xz349gch-pmd-6.5.0/bin/bgastviewer.bat had a zero exit code or showed the expected version
- Warning: no invocation of /nix/store/5h7bbvnfl6iqzpj4pqzv96x6xz349gch-pmd-6.5.0/bin/cpdgui.bat had a zero exit code or showed the expected version
- Warning: no invocation of /nix/store/5h7bbvnfl6iqzpj4pqzv96x6xz349gch-pmd-6.5.0/bin/designer.bat had a zero exit code or showed the expected version
- Warning: no invocation of /nix/store/5h7bbvnfl6iqzpj4pqzv96x6xz349gch-pmd-6.5.0/bin/pmd.bat had a zero exit code or showed the expected version
- Warning: no invocation of /nix/store/5h7bbvnfl6iqzpj4pqzv96x6xz349gch-pmd-6.5.0/bin/cpd.bat had a zero exit code or showed the expected version
- Warning: no invocation of /nix/store/5h7bbvnfl6iqzpj4pqzv96x6xz349gch-pmd-6.5.0/bin/run.sh had a zero exit code or showed the expected version
- 0 of 6 passed binary check by having a zero exit code.
- 0 of 6 passed binary check by having the new version present in output.
- found 6.5.0 with grep in /nix/store/5h7bbvnfl6iqzpj4pqzv96x6xz349gch-pmd-6.5.0
- directory tree listing: https://gist.github.com/1ef84c65860a67391267c809fcb5cc80
- du listing: https://gist.github.com/309d9939074e63a6c6dcaf04f94312e9
If one of the certificates of the chain gets substituted from a binary
cache and the rest is generated locally it might turn out that we get
invalid certificates, which in turn cause tests using this module to
fail.
So let's set allowSubstitutes to false for all derivations that are
involved with certificate/key generation.
Signed-off-by: aszlig <aszlig@nix.build>
Removes the version pinning for arb and pynac by backporting the
upstream (sage) package upgrades. This necessitates a new patch for arb,
which was however already proposed and accepted upstream.
Instead of using a string to describe kernel config, use a nix
attribute set, then converted to a string.
- allows to override the config, aka convert 'yes' into 'modules' or
vice-versa
- while for now merging different configs is still crude (last spec wins),
at least there should be only one CONFIG_XYZ value compared to the current string
config where the first defined would be used and others ignored.
[initial idea by copumpkin in 2016, a major rebase to 2018 by teto]
If x11Mode is false, ncurses NetHack version will be built (nethack).
If x11Mode is true, x11 NetHack version will be built (nethack-x11).
NetHack DevTeam provide x11 version support only for Linux.