(The first version of this change, in commit 39fad297fd, broke
`nix-build -A nixosTests.installer.simpleUefiSystemdBoot`. This is the
2nd version, which hopefully does not break anything.)
`nixos-rebuild build-vm-with-bootloader` currently fails with the
default NixOS EFI configuration:
$ cat >configuration.nix <<EOF
{
fileSystems."/".device = "/dev/sda1";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
}
EOF
$ nixos-rebuild build-vm-with-bootloader -I nixos-config=$PWD/configuration.nix -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-20.09.tar.gz
[...]
insmod: ERROR: could not insert module /nix/store/1ibmgfr13r8b6xyn4f0wj115819f359c-linux-5.4.83/lib/modules/5.4.83/kernel/fs/efivarfs/efivarfs.ko.xz: No such device
mount: /sys/firmware/efi/efivars: mount point does not exist.
[ 1.908328] reboot: Power down
builder for '/nix/store/dx2ycclyknvibrskwmii42sgyalagjxa-nixos-boot-disk.drv' failed with exit code 32
[...]
Fix it by setting virtualisation.useEFIBoot = true when needed.
Before:
* release-20.03: successful build, unsuccessful run
* release-20.09 (and master): unsuccessful build
After:
* Successful build and run.
Fixes#107255
`nixos-rebuild build-vm-with-bootloader` currently fails with the
default NixOS EFI configuration:
$ cat >configuration.nix <<EOF
{
fileSystems."/".device = "/dev/sda1";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
}
EOF
$ nixos-rebuild build-vm-with-bootloader -I nixos-config=$PWD/configuration.nix -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-20.09.tar.gz
[...]
insmod: ERROR: could not insert module /nix/store/1ibmgfr13r8b6xyn4f0wj115819f359c-linux-5.4.83/lib/modules/5.4.83/kernel/fs/efivarfs/efivarfs.ko.xz: No such device
mount: /sys/firmware/efi/efivars: mount point does not exist.
[ 1.908328] reboot: Power down
builder for '/nix/store/dx2ycclyknvibrskwmii42sgyalagjxa-nixos-boot-disk.drv' failed with exit code 32
[...]
Fix it by setting virtualisation.useEFIBoot = true in qemu-vm.nix, when
efi is needed.
And remove the now unneeded configuration in
./nixos/tests/systemd-boot.nix, since it's handled globally.
Before:
* release-20.03: successful build, unsuccessful run
* release-20.09 (and master): unsuccessful build
After:
* Successful build and run.
Fixes https://github.com/NixOS/nixpkgs/issues/107255
This allows creating HTML presentations with
`asciidoctor-revealjs presentation.adoc`.
NOTE: The generated HTML file implicitly depend on reveal.js (and I see
no good way to bundle it with Nix). Either provide reveal.js in a local
path next to the generated HTML file[1], or override the revealjsdir
attribute, for example by pointing to an URL (can also be a path):
asciidoctor-revealjs -a revealjsdir=https://cdn.jsdelivr.net/npm/reveal.js@3.9.2 presentation.adoc
Implementation details:
1. Added "gem 'asciidoctor-revealjs'" to the Gemfile.
2. Ran "nix-shell -p bundler --run 'bundle lock --update'"
from pkgs/tools/typesetting/asciidoctor/.
3. Hand edited Gemfile.lock to remove all but the asciidoctor-revealjs
changes. (Rationale: allow backporting to release-20.09.)
4. Finish off with "nix-shell -p bundix --run 'bundix'".
[1] Of course Nix can help with _that_, but that's external to the
asciidoctor-revealjs program.
An unmatched double quote in installPhase broke the build in the last update.
Fix it.
Reported by @solson (thanks!).
Fixes: 21b9c04a2c ("basex: 8.6.6 -> 9.4.3")
parallel >= 20200822 uses /bin/echo to calculate the max allowed line
length. Patch it to a correct path, so that it doesn't (silently) fail
and fall back to a low value of 324.
Before:
$ parallel --max-line-length-allowed
324
After:
$ parallel --max-line-length-allowed
131063
Fixes: 16ca8725ff ("parallel: 20200722 -> 20200822")
The patch to set PREFIX needed updating to apply. Rewrite it in a way
that allows submitting upstream. That means we don't hardcode
PREFIX=$out inside the patch but allow the PREFIX to be passed to make
at build time.
Some already have it, this adds it to the rest.
With all extensions having an 'uuid' attr we can do cool things like
declaratively enable extensions on NixOS.
Fixes this build error:
In file included from src/helper/options.c:38:
/nix/store/dl4h1p847f2rsrsfvlmm6cxxx7q21kxj-glibc-2.30-dev/include/sys/sysctl.h:21:2: error: #warning "The <sys/sysctl.h> header is deprecated and will be removed." [-Werror=cpp]
21 | #warning "The <sys/sysctl.h> header is deprecated and will be removed."
| ^~~~~~~
cc1: all warnings being treated as errors
Fixes: 48a997cd ("Merge #66528: glibc: 2.27 -> 2.30 (into staging)")
LD_LIBRARY_PATH isn't expanded properly in makeFlags, so move it to
preBuild.
Fixes: 3cd8ce3bce ("treewide: Fix unsafe concatenation of $LD_LIBRARY_PATH")
This reverts commit b9f3160c2a.
It builds and runs fine. I'm not sure why it was marked broken in the
first place, I successfully built it on commit b9f3160. A runtime issue
that was later fixed?
I missed these in 41832d9100 ("treewide: include missing package names
in deprecation/removal messages").
I changed "deprecated" to "removed" where needed.
Most deprecation/removal messages already do this, but these were
missing.
Now the user does not have to `--enable-trace` and parse the quite long
trace just to find the package name.
Add --use-remote-sudo option. When set, remote commands will be prefixed
with 'sudo'. This allows using sudo remotely _without_ having to use
sudo locally (when using --build-host/--taget-host).
The default openssl version in nixpkgs is too new for eagle7 and it
fails to start:
eagle: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
This adds support for deploying to remote hosts without being root:
sudo nixos-rebuild --target-host non-root@host
Without this change, only root@host is able to deploy.
The idea is that if the local command is run with sudo, so should the
remote one, thus there is no need for adding any CLI options.
Fixes
$ qsynth
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Aborted (core dumped)
(Also, take qt5.* attrs as input instead of the whole qt5 attrset itself.)
Or else `xdg-screensaver suspend <WINDOW_ID>` fails with errors like:
Can't locate Net/DBus.pm in @INC [...]
This increases the closure of xdg-utils from 53 MiB to 119 MiB.
(The issue was found when testing retroarch.)
Fix configure time error:
...
ImportError: No module named wx
CMake Error at CMakeModules/FindwxPython.cmake:52 (message):
wxPython/Phoenix does not appear to be installed on the system
Only build tested.
Fixes: f7e28bf5d8 ("Split buildPythonPackage into setup hooks")
Without this, mdadm won't be able to send email notifications:
$ sudo mdadm --monitor --scan --test
sh: /nix/store/2v8jn0lxza72grcm6hciak9fpgm7xb3a-system-sendmail-1.0: Is a directory
Fixes: b074a40f74 ("mdadm: use shared system-sendmail")
Some executables are built as PIEs (e.g. keepassxc) and are technically
isELFDyn, not isELFExec. Without this change those executables will not
be wrapped.
Fixes
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
See https://github.com/NixOS/nixpkgs/issues/65399
Fixes
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
See https://github.com/NixOS/nixpkgs/issues/65399
Up until now, the output has been the same for swap devices and swap
files:
{ device = "/var/swapfile"; }
Whereas for swap *files* it's easier to manage them declaratively in
configuration.nix:
{ device = "/var/swapfile"; size = 8192; }
(NixOS will create the swapfile, and later resize it, if the size
attribute is changed.)
With the assumption that swap files are specified in configuration.nix,
it's silly to output them to hardware-configuration.nix.
Add "bcache" to boot.initrd.availableKernelModules if a bcache device is
detected.
This fixes a problem I've had one too many times: I install NixOS and
forget to add "bcache", resulting in an unbootable machine (until fixed
with Live CD). Now NixOS will do it for me.
It is already listed in aliases.nix, and I managed to get this from Nix:
error: Alias deadpixi-sam is still in all-packages.nix
Fixes: 218d81bc9d ("all-packages: move aliases to aliases.nix")
Currently there are two calls to curl in the reloadScript, neither which
check for errors. If something is misconfigured (like wrong authToken),
the only trace that something wrong happened is this log message:
Asking Jenkins to reload config
<h1>Bad Message 400</h1><pre>reason: Illegal character VCHAR='<'</pre>
The service isn't marked as failed, so it's easy to miss.
Fix it by passing --fail to curl.
While at it:
* Add $curl_opts and $jenkins_url variables to keep the curl command
lines DRY.
* Add --show-error to curl to show short error message explanation when
things go wrong (like HTTP 401 error).
* Lower-case the $CRUMB variable as upper case is for exported environment
variables.
The new behaviour, when having wrong accessToken:
Asking Jenkins to reload config
curl: (22) The requested URL returned error: 401
And the service is clearly marked as failed in `systemctl --failed`.
This ensures that RPATH entries like "/foo/build/bar" doesn't trigger a
match when TMPDIR is "/build/bar". (I've had this problem with a
prebuilt package.)
Instead of explicitly depending on libelf, use
kernel.moduleBuildDependencies which was introduced in 1e77d0b975
("kernel 4.14 require libelf to compile modules.").
Fixes this:
$ nix-build -A linuxPackages.lttng-modules
[...]
/nix/store/...-linux-4.14.48-dev/lib/modules/4.14.48/source/Makefile:948: \
*** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfu
(Linux 4.16+ has other issues, so mark as broken.)
However, none of the exporters I tried actually _worked_, but now
shutter at least returns an error to the user (pop-up UI element)
instead of silently hanging and only leaving messages on stdout/stderr
about the missing deps.
AFAICS, this changes the failure of Screenshot->Export functionality
from a packaging bug to an application bug (upstream).
Because it improves out-of-the-box user experience a lot (IMHO).
(zsh completion is already on by default.)
Remove "programs.bash.enableCompletion = true" from
nixos-generate-config.pl, which feels superflous now.
Pass the -L flag to curl to make it follow redirects. This fixes an
issue I found when setting up reverse proxy for Jenkins. Without this
fix, the returned HTTP code was stuck at 302, making postStart fail the
service (it expects 200 or 403).
This aligns the package name more with the attrname.
This is a re-application of the idea behind 7405af72e6
("qt: make package names of "full" variants appear as such"), which
seems to have been lost on the way.
A CACHEDIR.TAG file indicates that the contents can be automatically
re-generated. This is not really true for Nix store paths. (Well _Nix_
can recreate them, but that's different.)
I noticed this issue as I was restoring full system backup that "for
some reason" always missed /nix/store/*-fc-cache (found by `nix-store
--verify --repair`). Turns out I was excluding caches from my backup...
Fixes build failure since recent merge of staging branch:
$ nix-build -A qmmp
[...]
AutoMoc error
-------------
Included moc files with the same name will be generated from different sources.
Consider to
- not include the "moc_<NAME>.cpp" file
- add a directory prefix to a "<NAME>.moc" include (e.g "sub/<NAME>.moc")
- rename the source file(s)
Include conflicts
-----------------
"moc_hotkeymanager.cpp" included in
- "/tmp/nix-build-qmmp-1.1.10.drv-0/qmmp-1.1.10/src/plugins/General/hotkey/hotkeymanager_win.cpp"
- "/tmp/nix-build-qmmp-1.1.10.drv-0/qmmp-1.1.10/src/plugins/General/hotkey/hotkeymanager_x11.cpp"
would be generated from
- "/tmp/nix-build-qmmp-1.1.10.drv-0/qmmp-1.1.10/src/plugins/General/hotkey/hotkeymanager.h"
- "/tmp/nix-build-qmmp-1.1.10.drv-0/qmmp-1.1.10/src/plugins/General/hotkey/hotkeymanager.h"
make[2]: *** [src/plugins/General/hotkey/CMakeFiles/hotkey_autogen.dir/build.make:58: src/plugins/General/hotkey/CMakeFiles/hotkey_autogen] Error 1
This makes the commonHook option work also for (read-only) Nix store
paths. Currently it fails on the second activation, because the
destination is read-only.
Looking at upstream git repo (git://github.com/Yubico/pam-u2f.git) the
docs initially said the path was ~/.yubico/u2f_keys, but it was later
changed to ~/.config/Yubico/u2f_keys (in 2015).
I have run pam_u2f.so with "debug" option and observed that the correct
path indeed is ~/.config/Yubico/u2f_keys.