New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
grub: Add boot.loader.grub.extraGrubInstallArgs
option
#85895
Conversation
Side note: I think the line-based I think it would be better to switch the state file fully to a proper serialisation format, like JSON; that would also make the code cleaner and adding more fields easier. But that is for a another PR. |
0ab5432
to
1e962f6
Compare
@GrahamcOfBorg test installer |
1e962f6
to
f56898e
Compare
Asking for review: @symphorien @emilazy @Mic92 @Kloenk because you reviewed a similar GRUB PR #85418, so maybe you can review this one as well :) |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw your post on Discourse. But I don't have a good way of testing this PR for functionality. So instead, I thought I'd just give some general feedback.
(Thanks for the PR btw, it looks well done.)
@@ -60,6 +60,7 @@ let | |||
inherit (efi) canTouchEfiVariables; | |||
inherit (cfg) | |||
version extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber | |||
extraGrubInstallArgs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This style is nice for keeping the diff clean. But I would prefer that the lines were similar lengths, or if similar things were grouped together.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I need to optimise for a clean, minimal diff here, as I need to cherry-pick this into various projects / backports and need to avoid merge conflicts.
If we want to do extra grouping, I think it should be done in a separate PR.
@@ -236,6 +237,30 @@ in | |||
''; | |||
}; | |||
|
|||
extraGrubInstallArgs = mkOption { | |||
default = [ ]; | |||
example = [ "--modules=nativedisk ahci pata part_gpt part_msdos diskfilter mdraid1x lvm ext2" ]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From this, it's not immediately clear to me whether separate arguments go in separate string entries, or if it's allowable to have several options together e.g.:
[ "--boot-directory=/mnt/usb/bugbios --force --allow-floppy /dev/loop0" ]
or must it be:
[ "--boot-directory=/mnt/usb/bugbios" "--force" "--allow-floppy /dev/loop0" ]
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additionally, it's not clear if ordering is respected, this may be assumed by a user, especially in the first case, where he or she might want to do something like:
{
achiStr = "" ++ lib.optionalString "ahci";
extraGrubInstallArgs = [ "--modules=nativedisk" ahciStr "pata part_gpt part_msdos diskfilter mdraid1x lvm ext2" ]
}
(Reading down, it looks like the arguments are just passed to the perl system command, so ordering is respected, and arguments can be combined and split. So we are dealing with the first case.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
whether separate arguments go in separate string entries, or if it's allowable to have several options together
Separate grub-install
arugments go into separate string entries. Example for passing modules this way..
The perl script uses system PROGRAM LIST
to spawn grub-install
, which explains
If there is more than one argument in LIST, or if LIST is an array with more than one value, starts the program given by the first element of the list with arguments given by the rest of the list. If there is only one scalar argument, the argument is checked for shell metacharacters, ...
We pass a LIST
to it, so the individual elements go straight to execve()
.
I will add this to description
:
The list elements are passed directly as <literal>argv</literal>
arguments to the <literal>grub-install</literal> program, in order.
Just for extra clarity for anyone reading, this means that
extraGrubInstallArgs = [ "--modules=nativedisk" ahciStr "pata part_gpt part_msdos diskfilter mdraid1x lvm ext2" ]
from your example is illegal, because grub expects --modules=space separated list of modules
to be a single argv argument.
|
||
my $devicesDiffer = scalar (List::Compare->new( '-u', '-a', \@deviceTargets, \@prevDeviceTargets)->get_symmetric_difference()); | ||
my $extraGrubInstallArgsDiffer = scalar (List::Compare->new( '-u', '-a', \@extraGrubInstallArgs, \@prevExtraGrubInstallArgs)->get_symmetric_difference()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line seems to be the reason why json was used? Is this robust though? Will the following trigger a rebuild?
extraGrubInstallArgs = [ "--arg1=foo --arg2=bar" ];
prevExtraGrubInstallArgs = [ "--arg1=foo" "--arg2=bar" ];
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line seems to be the reason why json was used?
No, JSON is used because the /boot/grub/state
file remembers all arguments/parameters of the last successful install-grub
run (to avoid unnecessary installation of e.g. the GRUB MBR on every nixos-rebuild
run, which takes a couple seconds and would make no-op rebuilds slow), and the serialisation format that the state file used so far is line-based, which worked so far because there was only 1 word on each line. But as soon as you want to serialise something into it that is a list or can even contain newlines, it gets very messy and likely incorrect, so I use JSON instead and we'll use that going forward.
Your question motivated me to rework the the way this works, full details in #85895 (comment).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this robust though? Will the following trigger a rebuild?
Yes, because these are different (and the first line will be rejected by grub-install
), see #85895 (comment).
e7c9624
to
0bc82c2
Compare
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
662ff09
to
a21282e
Compare
Update: Now
And I've written a repo with a VM test that makes it trivial to test this change: https://github.com/nh2/nixos-vm-examples In particular: https://github.com/nh2/nixos-vm-examples/blob/0b29937fcb23424b95aa98121c94db02fd9b920d/grub-test-vm/configuration.nix |
I have reworked the way JSON is used to store contents in Details: The I reworked the the way this works (with my last force-push), so now it's not just a single JSON list for the new param I've added, but a JSON object on line 6 of the state file, which can take care of all further parameters that need to be added in the future, as structured data with automatic, correct escaping (as correct as you can make it with Perl; this contribution took a long time and way longer than this type of work should take in 2020). Example of what the state file looks like now:
So, further changes should go into the JSON object in the last line. |
Thanks, much appreciated. I made some improvements based on your comments.
#85895 (comment) should address that, but you do not need to test it unless you'd like to, as I've tested with that quite exhaustively now. |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
a21282e
to
f4165c1
Compare
ac36927
to
0a0e073
Compare
Other files were already written atomically, but not this one.
Useful for when you need to build grub modules into your grub kernel to get a working boot, as shown in the added example. To store this new value, we switch to more structural JSON approach. Using one line per value to store in `/boot/grub/state` gets really messy when the values are arrays, or even worse, can contain newlines (escaping would be needed). Further, removing a value from the file would get extra messy (empty lines we'd have to keep for backwards compatibility). Thus, from now on we use JSON to store all values we'll need in the future.
For example, turns the error cannot copy /nix/store/g24xsmmsz46hzi6whv7qwwn17myn3jfq-grub-2.04/share/grub/unicode.pf2 to /boot into the more useful cannot copy /nix/store/g24xsmmsz46hzi6whv7qwwn17myn3jfq-grub-2.04/share/grub/unicode.pf2 to /boot: Read-only file system
0a0e073
to
a90ae33
Compare
#92122 is merged, so this is ready to go too. |
One of these very recent changes in the Grub module has caused the following error on every host I deployed:
The state file contains the following:
|
@petabyteboy That is bad, I had gotten some similar errors too while developing this but then I learned more Perl and thought I fixed all possible cases. I will look into it immediately; thanks for posting your state file. |
@petabyteboy I think I have the fix, testing it now on your setup and with my VM tests from https://github.com/nh2/nixos-vm-examples. |
Fixes error Can't use an undefined value as an ARRAY reference at /nix/store/...-install-grub.pl line 642, <FILE> line 5. with `/boot/grub/state` being: ``` grub 2.04 no /dev/sda /boot ``` I am not sure where the trailing empty line can come from; the script does not seem to write it. In any case, now we handle that situation as well. Further, ensure that `extraGrubInstallArgs` defaults to the empty array if its key is not present in the `jsonState`.
@petabyteboy Could you try PR #92520? |
Fixes error Can't use an undefined value as an ARRAY reference at /nix/store/...-install-grub.pl line 642, <FILE> line 5. with `/boot/grub/state` being: ``` grub 2.04 no /dev/sda /boot ``` I am not sure where the trailing empty line can come from; the script does not seem to write it. In any case, now we handle that situation as well. Further, ensure that `extraGrubInstallArgs` defaults to the empty array if its key is not present in the `jsonState`.
## Changelog for nixpkgs: Commits: [NixOS/nixpkgs@4855aa62...1d801806](NixOS/nixpkgs@4855aa6...1d80180) * [`28becad9`](NixOS/nixpkgs@28becad) minc-tools: actually build Nifti support * [`9fec6555`](NixOS/nixpkgs@9fec655) python27Packages.mwclient: 0.10.0 -> 0.10.1 * [`5cb5ccb5`](NixOS/nixpkgs@5cb5ccb) python3Package.nibabel: 3.1.0 -> 3.1.1 * [`e8a734c6`](NixOS/nixpkgs@e8a734c) clojure-lsp: 20200624T142700 -> 20200706T152722 * [`cd6810e4`](NixOS/nixpkgs@cd6810e) perlPackages.JavaScriptMinifierXS: fix darwin build * [`eb3d8815`](NixOS/nixpkgs@eb3d881) perlPackages.CSSMinifierXS: fix darwin build * [`24cb4175`](NixOS/nixpkgs@24cb417) perlPackages.MojoliciousPluginAssetPack: init at 2.08 * [`a564ea21`](NixOS/nixpkgs@a564ea2) gscan2pdf: 2.6.5 -> 2.8.0 * [`5befae9c`](NixOS/nixpkgs@5befae9) pulseeffects: 4.7.2 -> 4.7.3 * [`956d7b81`](NixOS/nixpkgs@956d7b8) python3Package.gdcm: 3.0.6 -> 3.0.7 * [`f925ce33`](NixOS/nixpkgs@f925ce3) python27Packages.Nuitka: 0.6.8.1 -> 0.6.8.4 * [`275d34a6`](NixOS/nixpkgs@275d34a) python37Packages.libevdev: 0.7 -> 0.9 * [`5c60d0cb`](NixOS/nixpkgs@5c60d0c) python27Packages.latexcodec: 2.0.0 -> 2.0.1 * [`b7fd3f75`](NixOS/nixpkgs@b7fd3f7) python27Packages.paste: 3.4.0 -> 3.4.1 * [`84de929d`](NixOS/nixpkgs@84de929) python27Packages.pep8-naming: 0.10.0 -> 0.11.1 * [`65c2c016`](NixOS/nixpkgs@65c2c01) python37Packages.ckcc-protocol: 1.0.1 -> 1.0.2 * [`7ce695f0`](NixOS/nixpkgs@7ce695f) python27Packages.identify: 1.4.19 -> 1.4.21 * [`11f0e9d2`](NixOS/nixpkgs@11f0e9d) python27Packages.ipdb: 0.13.2 -> 0.13.3 * [`fc068404`](NixOS/nixpkgs@fc06840) python3Packages.mt-940: disable tests, no longer present * [`7971042b`](NixOS/nixpkgs@7971042) nixos/tests/ihatemoney: fix * [`0848c2f5`](NixOS/nixpkgs@0848c2f) python3Packages.ihatemoney: 4.1 -> 4.1.3 * [`3603c4e1`](NixOS/nixpkgs@3603c4e) nixos/ihatemoney: work around bug in uwsgi * [`a71acfeb`](NixOS/nixpkgs@a71acfe) python3Packages.debts: init at 0.5 * [`7918f8c4`](NixOS/nixpkgs@7918f8c) python3Packages.sqlalchemy-i18n: init at 1.0.3 * [`ed5b736a`](NixOS/nixpkgs@ed5b736) python3Packages.sqlalchemy-continuum: init a 1.3.9 * [`2720b533`](NixOS/nixpkgs@2720b53) python3Packages.ihatemoney: 4.1.3 -> 4.2 * [`7761494b`](NixOS/nixpkgs@7761494) python3Packages.ihatemoney: fix postgresql test * [`4b819d44`](NixOS/nixpkgs@4b819d4) python3Packages.ihatemoney: disable on python2 * [`bcafd845`](NixOS/nixpkgs@bcafd84) python3Packages.ihatemoney: pin wtforms to 2.2.1 * [`2e342f4c`](NixOS/nixpkgs@2e342f4) nixos/tests/ihatemoney: fix * [`826b7c18`](NixOS/nixpkgs@826b7c1) uwsgi: 2.0.18 -> 2.0.19.1 * [`2b0cfa48`](NixOS/nixpkgs@2b0cfa4) remove workaround for uwsgi < 2.0.19 * [`f166a133`](NixOS/nixpkgs@f166a13) python37Packages.geopandas: 0.7.0 -> 0.8.0 * [`a5ac6d01`](NixOS/nixpkgs@a5ac6d0) python27Packages.dnslib: 0.9.13 -> 0.9.14 * [`b7f56066`](NixOS/nixpkgs@b7f5606) python37Packages.libversion: 1.2.0 -> 1.2.1 * [`32dd8df0`](NixOS/nixpkgs@32dd8df) python27Packages.elasticsearch: 7.7.1 -> 7.8.0 * [`8fc8153f`](NixOS/nixpkgs@8fc8153) python37Packages.nbsphinx: 0.7.0 -> 0.7.1 * [`a372677b`](NixOS/nixpkgs@a372677) python27Packages.azure-mgmt-cosmosdb: 0.14.0 -> 0.15.0 * [`918a651d`](NixOS/nixpkgs@918a651) python27Packages.geoalchemy2: 0.8.3 -> 0.8.4 * [`fd263c2f`](NixOS/nixpkgs@fd263c2) python27Packages.atlassian-python-api: 1.15.9 -> 1.16.0 * [`be75df90`](NixOS/nixpkgs@be75df9) python27Packages.azure-mgmt-eventhub: 3.1.0 -> 4.0.0 * [`636fec8e`](NixOS/nixpkgs@636fec8) python37Packages.azure-mgmt-security: 0.4.0 -> 0.4.1 * [`f650a878`](NixOS/nixpkgs@f650a87) python27Packages.hvac: 0.10.3 -> 0.10.4 * [`6f17664f`](NixOS/nixpkgs@6f17664) python27Packages.twilio: 6.39.0 -> 6.43.0 * [`216ef5b7`](NixOS/nixpkgs@216ef5b) starship: 0.43.0 -> 0.44.0 * [`40e7f275`](NixOS/nixpkgs@40e7f27) eid-mw: 4.4.16 -> 4.4.27 * [`c93f5194`](NixOS/nixpkgs@c93f519) python37Packages.jupyterlab: 2.1.4 -> 2.1.5 * [`5e79e328`](NixOS/nixpkgs@5e79e32) python3Packages.azure-mgmt-appconfiguration: 0.4.0 -> 0.5.0 * [`acd9f387`](NixOS/nixpkgs@acd9f38) python3Packages.azure-mgmt-compute: 12.0.0 -> 12.1.0 * [`4b0c2874`](NixOS/nixpkgs@4b0c287) python3Packages.azure-mgmt-containerinstance: 1.5.0 -> 2.0.0 * [`ff016179`](NixOS/nixpkgs@ff01617) python3Packages.azure-mgmt-datafactory: 0.10.0 -> 0.11.0 * [`593bcd18`](NixOS/nixpkgs@593bcd1) python3Packages.azure-mgmt-hdinsight: 1.5.0 -> 1.5.1 * [`d61218a7`](NixOS/nixpkgs@d61218a) python3Packages.azure-mgmt-iotcentral: 3.0.0 -> 3.1.0 * [`60eda2a6`](NixOS/nixpkgs@60eda2a) python3Packages.azure-mgmt-media: 2.1.0 -> 2.2.0 * [`f2f30182`](NixOS/nixpkgs@f2f3018) python3Packages.azure-mgmt-network: 10.2.0 -> 11.0.0 * [`0fd0b4ba`](NixOS/nixpkgs@0fd0b4b) python3Packages.azure-mgmt-recoveryservicesbackup: 0.7.0 -> 0.8.0 * [`6a3b7c1a`](NixOS/nixpkgs@6a3b7c1) python3Packages.azure-mgmt-resource: 10.0.0 -> 10.1.0 * [`d3c846e4`](NixOS/nixpkgs@d3c846e) python3Packages.azure-mgmt-sql: 0.18.0 -> 0.19.0 * [`f7315645`](NixOS/nixpkgs@f731564) python3Packages.azure-mgmt-storage: 10.0.0 -> 11.1.0 * [`515a494f`](NixOS/nixpkgs@515a494) python3Packages.azure-mgmt-subscription: 0.5.0 -> 0.6.0 * [`18a7de71`](NixOS/nixpkgs@18a7de7) python3Packages.azure-multiapi-storage: 0.3.2 -> 0.3.5 * [`966d7bed`](NixOS/nixpkgs@966d7be) python3Packages.azure-storage-file-share: 12.1.1 -> 12.1.2 * [`e3fe15df`](NixOS/nixpkgs@e3fe15d) python3Packages.azure-multiapi-storage: fix packaging * [`e9e8486c`](NixOS/nixpkgs@e9e8486) azure-cli: pin azure-mgmt-containerinstance * [`7516429f`](NixOS/nixpkgs@7516429) python3Packages.azure-mgmt-containerservice: 9.1.0 -> 9.2.0 * [`2af99b8b`](NixOS/nixpkgs@2af99b8) azure-cli: 2.7.0 -> 2.8.0 * [`e8cb5d5d`](NixOS/nixpkgs@e8cb5d5) scalafmt: 2.5.2 -> 2.6.2 * [`c7961b69`](NixOS/nixpkgs@c7961b6) python27Packages.pymupdf: 1.17.0 -> 1.17.2 (NixOS/nixpkgs#92490) * [`859e2040`](NixOS/nixpkgs@859e204) maintainers: add bmilanov * [`cb2ab83d`](NixOS/nixpkgs@cb2ab83) nxpmicro-mfgtools: init at 1.3.191 * [`4d148268`](NixOS/nixpkgs@4d14826) qemu-vm: allow bootloader to set EFI vars * [`b278a7d7`](NixOS/nixpkgs@b278a7d) nixos/systemd-boot: test for EFI boot entry * [`90bf7332`](NixOS/nixpkgs@90bf733) OVMF: use Debian dir layout for aarch64 * [`d7e3312a`](NixOS/nixpkgs@d7e3312) qemu-vm: split EFI NVRAM into CODE and VARS * [`fec163d2`](NixOS/nixpkgs@fec163d) qemu-vm: add EFI support for aarch64 * [`ee43e2f1`](NixOS/nixpkgs@ee43e2f) nixos/systemd-boot: run test on aarch64 * [`0b4e2167`](NixOS/nixpkgs@0b4e216) qemu-vm: treat EFI vars as state, similarly to diskImage * [`37bb17cd`](NixOS/nixpkgs@37bb17c) OVMF: add symlinks for Fedora dir layout * [`0dcad215`](NixOS/nixpkgs@0dcad21) install-grub.pl: Refactor: Extract `getList()` * [`81c15742`](NixOS/nixpkgs@81c1574) install-grub.pl: Write state file atomically. * [`8665b5ab`](NixOS/nixpkgs@8665b5a) grub: Add `boot.loader.grub.extraGrubInstallArgs` option. * [`a90ae331`](NixOS/nixpkgs@a90ae33) install-grub.pl: Add errno messages to all `or die` errors. * [`9e780d7a`](NixOS/nixpkgs@9e780d7) weechatScripts.weechat-otr: fix pycrypto build * [`d986fccd`](NixOS/nixpkgs@d986fcc) gitlab: 13.0.6 -> 13.0.8 (NixOS/nixpkgs#92060) * [`70cb417b`](NixOS/nixpkgs@70cb417) nixos/modprobe: Fix modprobe configuration manpage link * [`101e302f`](NixOS/nixpkgs@101e302) dmenu-wayland: 2020-04-03 -> 2020-07-06 * [`42a71671`](NixOS/nixpkgs@42a7167) marktext: 0.16.0-rc.2 -> 0.16.1. * [`8da4950b`](NixOS/nixpkgs@8da4950) marktext: 0.16.1 -> 0.16.2 * [`92ca9d64`](NixOS/nixpkgs@92ca9d6) include-what-you-use: 0.13 -> 0.14 * [`f815cb6a`](NixOS/nixpkgs@f815cb6) nixos/test-driver: print a traceback when testScript fails (NixOS/nixpkgs#92369) * [`c42b5bac`](NixOS/nixpkgs@c42b5ba) python27Packages.pytest-tornado: 0.8.0 -> 0.8.1 * [`b20a7f09`](NixOS/nixpkgs@b20a7f0) bash_5: 5.0p16 -> 5.0p17 * [`11eb84bb`](NixOS/nixpkgs@11eb84b) librepo: 1.11.3 -> 1.12.0 * [`bc49e1f7`](NixOS/nixpkgs@bc49e1f) agave: 14 -> 15 * [`6788f321`](NixOS/nixpkgs@6788f32) s-tui: 1.0.0 -> 1.0.1 * [`e8c1ff9e`](NixOS/nixpkgs@e8c1ff9) grub: Fix incorrect upgrade to new `jsonStateLine`. See NixOS/nixpkgs#85895. (NixOS/nixpkgs#92520) * [`ac59ba81`](NixOS/nixpkgs@ac59ba8) jx: 2.1.65 -> 2.1.90 (NixOS/nixpkgs#92012) * [`963de34c`](NixOS/nixpkgs@963de34) homeassistant: 0.111.4 -> 0.112.0 * [`1093962c`](NixOS/nixpkgs@1093962) nixos/tests/home-assistant: replace internal mqtt broker with mosquitto * [`bf13145e`](NixOS/nixpkgs@bf13145) homeassistant: 0.112.0 -> 0.112.2 * [`887a51e6`](NixOS/nixpkgs@887a51e) python3.pkgs.rx: 1.6.1 -> 3.1.0 * [`47eb4aca`](NixOS/nixpkgs@47eb4ac) python3.pkgs.influxdb-client: init at 1.8.0 * [`6d714a3d`](NixOS/nixpkgs@6d714a3) home-assistant: include influxdb-client * [`867fa90c`](NixOS/nixpkgs@867fa90) python3.pkgs.graphql-core: 2.3.1 -> 3.1.2 * [`cfda348d`](NixOS/nixpkgs@cfda348) python3.pkgs.graphql-server-core: 1.2.0 -> 2.0.0 * [`7e8b36ea`](NixOS/nixpkgs@7e8b36e) homeassistant: 0.112.2 -> 0.112.3 * [`c9412067`](NixOS/nixpkgs@c941206) python27Packages.trimesh: 3.6.43 -> 3.7.4 * [`24c95430`](NixOS/nixpkgs@24c9543) python37Packages.pylast: 3.2.1 -> 3.3.0 * [`18a454bb`](NixOS/nixpkgs@18a454b) python27Packages.willow: 1.3 -> 1.4 * [`5c05f1d4`](NixOS/nixpkgs@5c05f1d) python27Packages.rasterio: 1.1.4 -> 1.1.5 * [`bb2952cf`](NixOS/nixpkgs@bb2952c) python27Packages.sasmodels: 1.0.1 -> 1.0.2 * [`a47c309e`](NixOS/nixpkgs@a47c309) gitAndTools.pre-commit: 2.4.0 -> 2.6.0 * [`f5b2587e`](NixOS/nixpkgs@f5b2587) python27Packages.xlsx2csv: 0.7.6 -> 0.7.7 * [`cc392a88`](NixOS/nixpkgs@cc392a8) python27Packages.simpleparse: 2.2.0 -> 2.2.2 * [`581846c3`](NixOS/nixpkgs@581846c) python37Packages.ueberzug: 18.1.5 -> 18.1.6 * [`d10dd324`](NixOS/nixpkgs@d10dd32) python27Packages.pyclipper: 1.1.0.post3 -> 1.2.0 * [`094fa8bb`](NixOS/nixpkgs@094fa8b) python27Packages.sqlalchemy-utils: 0.36.5 -> 0.36.6 * [`79845c1d`](NixOS/nixpkgs@79845c1) python27Packages.pytest-metadata: 1.9.0 -> 1.10.0 * [`70323183`](NixOS/nixpkgs@7032318) python37Packages.python-telegram-bot: 12.7 -> 12.8 * [`049bf096`](NixOS/nixpkgs@049bf09) python27Packages.sortedcollections: 1.1.2 -> 1.2.1 * [`7403a990`](NixOS/nixpkgs@7403a99) python37Packages.srsly: 2.0.1 -> 2.2.0 * [`ffda15d6`](NixOS/nixpkgs@ffda15d) python27Packages.pyqtwebengine: 5.14.0 -> 5.15.0 * [`7b29f3d0`](NixOS/nixpkgs@7b29f3d) python27Packages.pycountry: 19.8.18 -> 20.7.3 * [`b7a80082`](NixOS/nixpkgs@b7a8008) python3Packages.tinycss2: remove redundant fix for failing tests * [`51a36a40`](NixOS/nixpkgs@51a36a4) python3Packages.cssselect2: fix tests * [`44fd570d`](NixOS/nixpkgs@44fd570) pythonPackages.pyscard: Fix build on Darwin * [`05c716cb`](NixOS/nixpkgs@05c716c) python27Packages.pyqtgraph: 0.10.0 -> 0.11.0 * [`68b8ec30`](NixOS/nixpkgs@68b8ec3) python37Packages.praw: 6.5.1 -> 7.1.0 * [`008e7e32`](NixOS/nixpkgs@008e7e3) python27Packages.tensorflow-estimator_2: 2.1.0 -> 2.2.0 * [`7a4efe0b`](NixOS/nixpkgs@7a4efe0) python27Packages.property-manager: 2.3.1 -> 3.0 * [`21adb8be`](NixOS/nixpkgs@21adb8b) python27Packages.python-vlc: 3.0.9113 -> 3.0.10114 * [`690c11be`](NixOS/nixpkgs@690c11b) python37Packages.typeguard: 2.8.0 -> 2.9.1 * [`98576750`](NixOS/nixpkgs@9857675) python27Packages.ldap: 3.2.0 -> 3.3.1 * [`66bed379`](NixOS/nixpkgs@66bed37) glances: remove batinfo dependency * [`3e6b620c`](NixOS/nixpkgs@3e6b620) python37Packages.elementpath: 1.4.5 -> 1.4.6 * [`6e673204`](NixOS/nixpkgs@6e67320) python37Packages.netdisco: 2.7.0 -> 2.7.1 * [`02b3cac1`](NixOS/nixpkgs@02b3cac) r8125: 9.003.02 -> 9.003.05 * [`41ea5dea`](NixOS/nixpkgs@41ea5de) libsForQt5.quazip: 0.9 -> 0.9.1 * [`049b68be`](NixOS/nixpkgs@049b68b) libsForQt5.qwt: 6.1.4 -> 6.1.5 * [`dc5113fb`](NixOS/nixpkgs@dc5113f) petsc: 3.13.1 -> 3.13.2 * [`3734ac91`](NixOS/nixpkgs@3734ac9) nix-linter: keep the closure small * [`b0a88e25`](NixOS/nixpkgs@b0a88e2) oh-my-zsh: 2020-07-05 -> 2020-07-06 * [`d36cf57a`](NixOS/nixpkgs@d36cf57) zoom-us: 5.1.418436.0628 -> 5.1.422789.0705 * [`63bba798`](NixOS/nixpkgs@63bba79) springLobby: 0.269 -> 0.270 * [`be048e3b`](NixOS/nixpkgs@be048e3) insync: use autoPatchelfHook to fix warning (NixOS/nixpkgs#92463) * [`82cf1d9d`](NixOS/nixpkgs@82cf1d9) nixos/plasma5: Noto Mono -> Noto Sans Mono * [`d4c29c00`](NixOS/nixpkgs@d4c29c0) python.pkgs.check-manifest: mark as unbroken * [`e2b498ff`](NixOS/nixpkgs@e2b498f) beamerpresenter: init at 0.1.1 * [`fb7bc3cd`](NixOS/nixpkgs@fb7bc3c) python37Packages.pygls: 0.8.1 -> 0.9.0 * [`29f08dc7`](NixOS/nixpkgs@29f08dc) python37Packages.PyChromecast: 6.0.0 -> 7.1.0 * [`8e1bae55`](NixOS/nixpkgs@8e1bae5) pythonPackages.PyRMVtransport: init at v0.2.9 * [`a1121c12`](NixOS/nixpkgs@a1121c1) home-assistant: regenerate component-packages.nix (PyRMVtransport) * [`b6176231`](NixOS/nixpkgs@b617623) codebraid: 0.5.0-unstable-2019-12-11 -> 0.5.0-unstable-2020-07-01 * [`9b0000f5`](NixOS/nixpkgs@9b0000f) python27Packages.reportlab: 3.5.42 -> 3.5.44 * [`70450f1d`](NixOS/nixpkgs@70450f1) python27Packages.prance: 0.18.3 -> 0.19.0 * [`484613c1`](NixOS/nixpkgs@484613c) python37Packages.pint: 0.11 -> 0.14 * [`2d61c4c8`](NixOS/nixpkgs@2d61c4c) pygrok: init at 1.0.0 * [`ede5c964`](NixOS/nixpkgs@ede5c96) python37Packages.aiorun: 2020.2.1 -> 2020.6.1 * [`26aead68`](NixOS/nixpkgs@26aead6) python27Packages.XlsxWriter: 1.2.8 -> 1.2.9 * [`bb7d41ef`](NixOS/nixpkgs@bb7d41e) python38Packages.zconfig: fix build * [`1ff59e4a`](NixOS/nixpkgs@1ff59e4) python37Packages.breathe: 4.18.1 -> 4.19.2 * [`9ddd8489`](NixOS/nixpkgs@9ddd848) python37Packages.libcloud: 3.0.0 -> 3.1.0 * [`99c1276c`](NixOS/nixpkgs@99c1276) python27Packages.boltons: 20.1.0 -> 20.2.0 * [`ef88530d`](NixOS/nixpkgs@ef88530) python27Packages.sqlmap: 1.4.6 -> 1.4.7 * [`53ae3eff`](NixOS/nixpkgs@53ae3ef) gitAndTools.subgit: 3.3.9 -> 3.3.10 * [`babd73a3`](NixOS/nixpkgs@babd73a) spring-boot-cli: 2.3.0 -> 2.3.1 * [`a157b7e8`](NixOS/nixpkgs@a157b7e) psensor: 1.2.0 -> 1.2.1 * [`b1ad1d27`](NixOS/nixpkgs@b1ad1d2) python27Packages.transitions: 0.8.1 -> 0.8.2 * [`391d1e9f`](NixOS/nixpkgs@391d1e9) python27Packages.ntlm-auth: 1.4.0 -> 1.5.0 * [`f8484844`](NixOS/nixpkgs@f848484) python27Packages.xxhash: 1.4.3 -> 1.4.4 * [`ad8cf827`](NixOS/nixpkgs@ad8cf82) plantuml: 1.2020.12 -> 1.2020.15 * [`330bd7c3`](NixOS/nixpkgs@330bd7c) padthv1: 0.9.14 -> 0.9.15 * [`2d085243`](NixOS/nixpkgs@2d08524) ocamlPackages.lwt_ssl: 1.1.2 -> 1.1.3 * [`ed9f1b36`](NixOS/nixpkgs@ed9f1b3) mill: 0.7.3 -> 0.7.4 * [`45af43ff`](NixOS/nixpkgs@45af43f) nx-libs: 3.5.99.23 -> 3.5.99.24 * [`db00b125`](NixOS/nixpkgs@db00b12) drumkv1: 0.9.14 -> 0.9.15 * [`62d18f78`](NixOS/nixpkgs@62d18f7) flexibee: 2019.3.1.3 -> 2020.2.1.2 * [`6387252e`](NixOS/nixpkgs@6387252) geekbench: 5.2.0 -> 5.2.1 * [`9ba55213`](NixOS/nixpkgs@9ba5521) jamulus: 3.5.6 -> 3.5.8 * [`02fe1ec6`](NixOS/nixpkgs@02fe1ec) gwyddion: 2.55 -> 2.56 * [`711e47ac`](NixOS/nixpkgs@711e47a) vulnix: 1.9.4 -> 1.9.6 * [`63e6866c`](NixOS/nixpkgs@63e6866) libebml: 1.3.10 -> 1.4.0 * [`832a240b`](NixOS/nixpkgs@832a240) cmake-language-server: build with pygls 0.9.x * [`1891480e`](NixOS/nixpkgs@1891480) perlPackages.YAMLSyck: fix darwin build * [`1cb30eb7`](NixOS/nixpkgs@1cb30eb) python2Packages.unittest-sml-reporting: disable py2 * [`6560b608`](NixOS/nixpkgs@6560b60) waypipe: 0.6.1 -> 0.7.0 * [`94df3d44`](NixOS/nixpkgs@94df3d4) perlPackages.BeanstalkClient: init at 1.07 * [`2603a6d8`](NixOS/nixpkgs@2603a6d) krita: 4.2.9 -> 4.3.0 * [`af0d1f95`](NixOS/nixpkgs@af0d1f9) ssh-chat: init at 1.9 * [`976856c3`](NixOS/nixpkgs@976856c) monit: 5.26.0 -> 5.27.0 (NixOS/nixpkgs#92361) * [`d3f434e7`](NixOS/nixpkgs@d3f434e) python.pkgs.pytest-sugar: run tests * [`484184df`](NixOS/nixpkgs@484184d) python.pkgs.pytest-sugar: 0.9.3 -> 0.9.4 * [`2f938b38`](NixOS/nixpkgs@2f938b3) python.pkgs.junit-xml: simplify tests * [`e2786e8e`](NixOS/nixpkgs@e2786e8) python.pkgs.wordcloud: simplify checkInputs * [`91859703`](NixOS/nixpkgs@9185970) python.pkgs.ics: simplify tests * [`f10148ea`](NixOS/nixpkgs@f10148e) python.pkgs.sanic: simplify checkInputs * [`1d801806`](NixOS/nixpkgs@1d80180) python.pkgs.amqp: run tests
See NixOS#92520 (comment). In NixOS#85895 I accidentally introduced a comparison between an array reference and an array, which can never be true. Fixed by dereferencing.
dependencies updates. ## Changelog for nixpkgs: Commits: [NixOS/nixpkgs@9d0c3ffe...1d801806](NixOS/nixpkgs@9d0c3ff...1d80180) * [`28becad9`](NixOS/nixpkgs@28becad) minc-tools: actually build Nifti support * [`9fec6555`](NixOS/nixpkgs@9fec655) python27Packages.mwclient: 0.10.0 -> 0.10.1 * [`5cb5ccb5`](NixOS/nixpkgs@5cb5ccb) python3Package.nibabel: 3.1.0 -> 3.1.1 * [`e8a734c6`](NixOS/nixpkgs@e8a734c) clojure-lsp: 20200624T142700 -> 20200706T152722 * [`cd6810e4`](NixOS/nixpkgs@cd6810e) perlPackages.JavaScriptMinifierXS: fix darwin build * [`eb3d8815`](NixOS/nixpkgs@eb3d881) perlPackages.CSSMinifierXS: fix darwin build * [`24cb4175`](NixOS/nixpkgs@24cb417) perlPackages.MojoliciousPluginAssetPack: init at 2.08 * [`a564ea21`](NixOS/nixpkgs@a564ea2) gscan2pdf: 2.6.5 -> 2.8.0 * [`5befae9c`](NixOS/nixpkgs@5befae9) pulseeffects: 4.7.2 -> 4.7.3 * [`956d7b81`](NixOS/nixpkgs@956d7b8) python3Package.gdcm: 3.0.6 -> 3.0.7 * [`f925ce33`](NixOS/nixpkgs@f925ce3) python27Packages.Nuitka: 0.6.8.1 -> 0.6.8.4 * [`275d34a6`](NixOS/nixpkgs@275d34a) python37Packages.libevdev: 0.7 -> 0.9 * [`5c60d0cb`](NixOS/nixpkgs@5c60d0c) python27Packages.latexcodec: 2.0.0 -> 2.0.1 * [`b7fd3f75`](NixOS/nixpkgs@b7fd3f7) python27Packages.paste: 3.4.0 -> 3.4.1 * [`84de929d`](NixOS/nixpkgs@84de929) python27Packages.pep8-naming: 0.10.0 -> 0.11.1 * [`65c2c016`](NixOS/nixpkgs@65c2c01) python37Packages.ckcc-protocol: 1.0.1 -> 1.0.2 * [`7ce695f0`](NixOS/nixpkgs@7ce695f) python27Packages.identify: 1.4.19 -> 1.4.21 * [`11f0e9d2`](NixOS/nixpkgs@11f0e9d) python27Packages.ipdb: 0.13.2 -> 0.13.3 * [`fc068404`](NixOS/nixpkgs@fc06840) python3Packages.mt-940: disable tests, no longer present * [`7971042b`](NixOS/nixpkgs@7971042) nixos/tests/ihatemoney: fix * [`0848c2f5`](NixOS/nixpkgs@0848c2f) python3Packages.ihatemoney: 4.1 -> 4.1.3 * [`3603c4e1`](NixOS/nixpkgs@3603c4e) nixos/ihatemoney: work around bug in uwsgi * [`a71acfeb`](NixOS/nixpkgs@a71acfe) python3Packages.debts: init at 0.5 * [`7918f8c4`](NixOS/nixpkgs@7918f8c) python3Packages.sqlalchemy-i18n: init at 1.0.3 * [`ed5b736a`](NixOS/nixpkgs@ed5b736) python3Packages.sqlalchemy-continuum: init a 1.3.9 * [`2720b533`](NixOS/nixpkgs@2720b53) python3Packages.ihatemoney: 4.1.3 -> 4.2 * [`7761494b`](NixOS/nixpkgs@7761494) python3Packages.ihatemoney: fix postgresql test * [`4b819d44`](NixOS/nixpkgs@4b819d4) python3Packages.ihatemoney: disable on python2 * [`bcafd845`](NixOS/nixpkgs@bcafd84) python3Packages.ihatemoney: pin wtforms to 2.2.1 * [`2e342f4c`](NixOS/nixpkgs@2e342f4) nixos/tests/ihatemoney: fix * [`826b7c18`](NixOS/nixpkgs@826b7c1) uwsgi: 2.0.18 -> 2.0.19.1 * [`2b0cfa48`](NixOS/nixpkgs@2b0cfa4) remove workaround for uwsgi < 2.0.19 * [`f166a133`](NixOS/nixpkgs@f166a13) python37Packages.geopandas: 0.7.0 -> 0.8.0 * [`a5ac6d01`](NixOS/nixpkgs@a5ac6d0) python27Packages.dnslib: 0.9.13 -> 0.9.14 * [`b7f56066`](NixOS/nixpkgs@b7f5606) python37Packages.libversion: 1.2.0 -> 1.2.1 * [`32dd8df0`](NixOS/nixpkgs@32dd8df) python27Packages.elasticsearch: 7.7.1 -> 7.8.0 * [`8fc8153f`](NixOS/nixpkgs@8fc8153) python37Packages.nbsphinx: 0.7.0 -> 0.7.1 * [`a372677b`](NixOS/nixpkgs@a372677) python27Packages.azure-mgmt-cosmosdb: 0.14.0 -> 0.15.0 * [`918a651d`](NixOS/nixpkgs@918a651) python27Packages.geoalchemy2: 0.8.3 -> 0.8.4 * [`fd263c2f`](NixOS/nixpkgs@fd263c2) python27Packages.atlassian-python-api: 1.15.9 -> 1.16.0 * [`be75df90`](NixOS/nixpkgs@be75df9) python27Packages.azure-mgmt-eventhub: 3.1.0 -> 4.0.0 * [`636fec8e`](NixOS/nixpkgs@636fec8) python37Packages.azure-mgmt-security: 0.4.0 -> 0.4.1 * [`f650a878`](NixOS/nixpkgs@f650a87) python27Packages.hvac: 0.10.3 -> 0.10.4 * [`6f17664f`](NixOS/nixpkgs@6f17664) python27Packages.twilio: 6.39.0 -> 6.43.0 * [`216ef5b7`](NixOS/nixpkgs@216ef5b) starship: 0.43.0 -> 0.44.0 * [`40e7f275`](NixOS/nixpkgs@40e7f27) eid-mw: 4.4.16 -> 4.4.27 * [`c93f5194`](NixOS/nixpkgs@c93f519) python37Packages.jupyterlab: 2.1.4 -> 2.1.5 * [`5e79e328`](NixOS/nixpkgs@5e79e32) python3Packages.azure-mgmt-appconfiguration: 0.4.0 -> 0.5.0 * [`acd9f387`](NixOS/nixpkgs@acd9f38) python3Packages.azure-mgmt-compute: 12.0.0 -> 12.1.0 * [`4b0c2874`](NixOS/nixpkgs@4b0c287) python3Packages.azure-mgmt-containerinstance: 1.5.0 -> 2.0.0 * [`ff016179`](NixOS/nixpkgs@ff01617) python3Packages.azure-mgmt-datafactory: 0.10.0 -> 0.11.0 * [`593bcd18`](NixOS/nixpkgs@593bcd1) python3Packages.azure-mgmt-hdinsight: 1.5.0 -> 1.5.1 * [`d61218a7`](NixOS/nixpkgs@d61218a) python3Packages.azure-mgmt-iotcentral: 3.0.0 -> 3.1.0 * [`60eda2a6`](NixOS/nixpkgs@60eda2a) python3Packages.azure-mgmt-media: 2.1.0 -> 2.2.0 * [`f2f30182`](NixOS/nixpkgs@f2f3018) python3Packages.azure-mgmt-network: 10.2.0 -> 11.0.0 * [`0fd0b4ba`](NixOS/nixpkgs@0fd0b4b) python3Packages.azure-mgmt-recoveryservicesbackup: 0.7.0 -> 0.8.0 * [`6a3b7c1a`](NixOS/nixpkgs@6a3b7c1) python3Packages.azure-mgmt-resource: 10.0.0 -> 10.1.0 * [`d3c846e4`](NixOS/nixpkgs@d3c846e) python3Packages.azure-mgmt-sql: 0.18.0 -> 0.19.0 * [`f7315645`](NixOS/nixpkgs@f731564) python3Packages.azure-mgmt-storage: 10.0.0 -> 11.1.0 * [`515a494f`](NixOS/nixpkgs@515a494) python3Packages.azure-mgmt-subscription: 0.5.0 -> 0.6.0 * [`18a7de71`](NixOS/nixpkgs@18a7de7) python3Packages.azure-multiapi-storage: 0.3.2 -> 0.3.5 * [`966d7bed`](NixOS/nixpkgs@966d7be) python3Packages.azure-storage-file-share: 12.1.1 -> 12.1.2 * [`e3fe15df`](NixOS/nixpkgs@e3fe15d) python3Packages.azure-multiapi-storage: fix packaging * [`e9e8486c`](NixOS/nixpkgs@e9e8486) azure-cli: pin azure-mgmt-containerinstance * [`7516429f`](NixOS/nixpkgs@7516429) python3Packages.azure-mgmt-containerservice: 9.1.0 -> 9.2.0 * [`2af99b8b`](NixOS/nixpkgs@2af99b8) azure-cli: 2.7.0 -> 2.8.0 * [`e8cb5d5d`](NixOS/nixpkgs@e8cb5d5) scalafmt: 2.5.2 -> 2.6.2 * [`c7961b69`](NixOS/nixpkgs@c7961b6) python27Packages.pymupdf: 1.17.0 -> 1.17.2 (NixOS/nixpkgs#92490) * [`859e2040`](NixOS/nixpkgs@859e204) maintainers: add bmilanov * [`cb2ab83d`](NixOS/nixpkgs@cb2ab83) nxpmicro-mfgtools: init at 1.3.191 * [`4d148268`](NixOS/nixpkgs@4d14826) qemu-vm: allow bootloader to set EFI vars * [`b278a7d7`](NixOS/nixpkgs@b278a7d) nixos/systemd-boot: test for EFI boot entry * [`90bf7332`](NixOS/nixpkgs@90bf733) OVMF: use Debian dir layout for aarch64 * [`d7e3312a`](NixOS/nixpkgs@d7e3312) qemu-vm: split EFI NVRAM into CODE and VARS * [`fec163d2`](NixOS/nixpkgs@fec163d) qemu-vm: add EFI support for aarch64 * [`ee43e2f1`](NixOS/nixpkgs@ee43e2f) nixos/systemd-boot: run test on aarch64 * [`0b4e2167`](NixOS/nixpkgs@0b4e216) qemu-vm: treat EFI vars as state, similarly to diskImage * [`37bb17cd`](NixOS/nixpkgs@37bb17c) OVMF: add symlinks for Fedora dir layout * [`0dcad215`](NixOS/nixpkgs@0dcad21) install-grub.pl: Refactor: Extract `getList()` * [`81c15742`](NixOS/nixpkgs@81c1574) install-grub.pl: Write state file atomically. * [`8665b5ab`](NixOS/nixpkgs@8665b5a) grub: Add `boot.loader.grub.extraGrubInstallArgs` option. * [`a90ae331`](NixOS/nixpkgs@a90ae33) install-grub.pl: Add errno messages to all `or die` errors. * [`9e780d7a`](NixOS/nixpkgs@9e780d7) weechatScripts.weechat-otr: fix pycrypto build * [`d986fccd`](NixOS/nixpkgs@d986fcc) gitlab: 13.0.6 -> 13.0.8 (NixOS/nixpkgs#92060) * [`70cb417b`](NixOS/nixpkgs@70cb417) nixos/modprobe: Fix modprobe configuration manpage link * [`101e302f`](NixOS/nixpkgs@101e302) dmenu-wayland: 2020-04-03 -> 2020-07-06 * [`42a71671`](NixOS/nixpkgs@42a7167) marktext: 0.16.0-rc.2 -> 0.16.1. * [`8da4950b`](NixOS/nixpkgs@8da4950) marktext: 0.16.1 -> 0.16.2 * [`92ca9d64`](NixOS/nixpkgs@92ca9d6) include-what-you-use: 0.13 -> 0.14 * [`f815cb6a`](NixOS/nixpkgs@f815cb6) nixos/test-driver: print a traceback when testScript fails (NixOS/nixpkgs#92369) * [`c42b5bac`](NixOS/nixpkgs@c42b5ba) python27Packages.pytest-tornado: 0.8.0 -> 0.8.1 * [`b20a7f09`](NixOS/nixpkgs@b20a7f0) bash_5: 5.0p16 -> 5.0p17 * [`11eb84bb`](NixOS/nixpkgs@11eb84b) librepo: 1.11.3 -> 1.12.0 * [`bc49e1f7`](NixOS/nixpkgs@bc49e1f) agave: 14 -> 15 * [`6788f321`](NixOS/nixpkgs@6788f32) s-tui: 1.0.0 -> 1.0.1 * [`e8c1ff9e`](NixOS/nixpkgs@e8c1ff9) grub: Fix incorrect upgrade to new `jsonStateLine`. See NixOS/nixpkgs#85895. (NixOS/nixpkgs#92520) * [`ac59ba81`](NixOS/nixpkgs@ac59ba8) jx: 2.1.65 -> 2.1.90 (NixOS/nixpkgs#92012) * [`963de34c`](NixOS/nixpkgs@963de34) homeassistant: 0.111.4 -> 0.112.0 * [`1093962c`](NixOS/nixpkgs@1093962) nixos/tests/home-assistant: replace internal mqtt broker with mosquitto * [`bf13145e`](NixOS/nixpkgs@bf13145) homeassistant: 0.112.0 -> 0.112.2 * [`887a51e6`](NixOS/nixpkgs@887a51e) python3.pkgs.rx: 1.6.1 -> 3.1.0 * [`47eb4aca`](NixOS/nixpkgs@47eb4ac) python3.pkgs.influxdb-client: init at 1.8.0 * [`6d714a3d`](NixOS/nixpkgs@6d714a3) home-assistant: include influxdb-client * [`867fa90c`](NixOS/nixpkgs@867fa90) python3.pkgs.graphql-core: 2.3.1 -> 3.1.2 * [`cfda348d`](NixOS/nixpkgs@cfda348) python3.pkgs.graphql-server-core: 1.2.0 -> 2.0.0 * [`7e8b36ea`](NixOS/nixpkgs@7e8b36e) homeassistant: 0.112.2 -> 0.112.3 * [`c9412067`](NixOS/nixpkgs@c941206) python27Packages.trimesh: 3.6.43 -> 3.7.4 * [`24c95430`](NixOS/nixpkgs@24c9543) python37Packages.pylast: 3.2.1 -> 3.3.0 * [`18a454bb`](NixOS/nixpkgs@18a454b) python27Packages.willow: 1.3 -> 1.4 * [`5c05f1d4`](NixOS/nixpkgs@5c05f1d) python27Packages.rasterio: 1.1.4 -> 1.1.5 * [`bb2952cf`](NixOS/nixpkgs@bb2952c) python27Packages.sasmodels: 1.0.1 -> 1.0.2 * [`a47c309e`](NixOS/nixpkgs@a47c309) gitAndTools.pre-commit: 2.4.0 -> 2.6.0 * [`f5b2587e`](NixOS/nixpkgs@f5b2587) python27Packages.xlsx2csv: 0.7.6 -> 0.7.7 * [`cc392a88`](NixOS/nixpkgs@cc392a8) python27Packages.simpleparse: 2.2.0 -> 2.2.2 * [`581846c3`](NixOS/nixpkgs@581846c) python37Packages.ueberzug: 18.1.5 -> 18.1.6 * [`d10dd324`](NixOS/nixpkgs@d10dd32) python27Packages.pyclipper: 1.1.0.post3 -> 1.2.0 * [`094fa8bb`](NixOS/nixpkgs@094fa8b) python27Packages.sqlalchemy-utils: 0.36.5 -> 0.36.6 * [`79845c1d`](NixOS/nixpkgs@79845c1) python27Packages.pytest-metadata: 1.9.0 -> 1.10.0 * [`70323183`](NixOS/nixpkgs@7032318) python37Packages.python-telegram-bot: 12.7 -> 12.8 * [`049bf096`](NixOS/nixpkgs@049bf09) python27Packages.sortedcollections: 1.1.2 -> 1.2.1 * [`7403a990`](NixOS/nixpkgs@7403a99) python37Packages.srsly: 2.0.1 -> 2.2.0 * [`ffda15d6`](NixOS/nixpkgs@ffda15d) python27Packages.pyqtwebengine: 5.14.0 -> 5.15.0 * [`7b29f3d0`](NixOS/nixpkgs@7b29f3d) python27Packages.pycountry: 19.8.18 -> 20.7.3 * [`b7a80082`](NixOS/nixpkgs@b7a8008) python3Packages.tinycss2: remove redundant fix for failing tests * [`51a36a40`](NixOS/nixpkgs@51a36a4) python3Packages.cssselect2: fix tests * [`44fd570d`](NixOS/nixpkgs@44fd570) pythonPackages.pyscard: Fix build on Darwin * [`05c716cb`](NixOS/nixpkgs@05c716c) python27Packages.pyqtgraph: 0.10.0 -> 0.11.0 * [`68b8ec30`](NixOS/nixpkgs@68b8ec3) python37Packages.praw: 6.5.1 -> 7.1.0 * [`008e7e32`](NixOS/nixpkgs@008e7e3) python27Packages.tensorflow-estimator_2: 2.1.0 -> 2.2.0 * [`7a4efe0b`](NixOS/nixpkgs@7a4efe0) python27Packages.property-manager: 2.3.1 -> 3.0 * [`21adb8be`](NixOS/nixpkgs@21adb8b) python27Packages.python-vlc: 3.0.9113 -> 3.0.10114 * [`690c11be`](NixOS/nixpkgs@690c11b) python37Packages.typeguard: 2.8.0 -> 2.9.1 * [`98576750`](NixOS/nixpkgs@9857675) python27Packages.ldap: 3.2.0 -> 3.3.1 * [`66bed379`](NixOS/nixpkgs@66bed37) glances: remove batinfo dependency * [`3e6b620c`](NixOS/nixpkgs@3e6b620) python37Packages.elementpath: 1.4.5 -> 1.4.6 * [`6e673204`](NixOS/nixpkgs@6e67320) python37Packages.netdisco: 2.7.0 -> 2.7.1 * [`02b3cac1`](NixOS/nixpkgs@02b3cac) r8125: 9.003.02 -> 9.003.05 * [`41ea5dea`](NixOS/nixpkgs@41ea5de) libsForQt5.quazip: 0.9 -> 0.9.1 * [`049b68be`](NixOS/nixpkgs@049b68b) libsForQt5.qwt: 6.1.4 -> 6.1.5 * [`dc5113fb`](NixOS/nixpkgs@dc5113f) petsc: 3.13.1 -> 3.13.2 * [`3734ac91`](NixOS/nixpkgs@3734ac9) nix-linter: keep the closure small * [`b0a88e25`](NixOS/nixpkgs@b0a88e2) oh-my-zsh: 2020-07-05 -> 2020-07-06 * [`d36cf57a`](NixOS/nixpkgs@d36cf57) zoom-us: 5.1.418436.0628 -> 5.1.422789.0705 * [`63bba798`](NixOS/nixpkgs@63bba79) springLobby: 0.269 -> 0.270 * [`be048e3b`](NixOS/nixpkgs@be048e3) insync: use autoPatchelfHook to fix warning (NixOS/nixpkgs#92463) * [`82cf1d9d`](NixOS/nixpkgs@82cf1d9) nixos/plasma5: Noto Mono -> Noto Sans Mono * [`d4c29c00`](NixOS/nixpkgs@d4c29c0) python.pkgs.check-manifest: mark as unbroken * [`e2b498ff`](NixOS/nixpkgs@e2b498f) beamerpresenter: init at 0.1.1 * [`fb7bc3cd`](NixOS/nixpkgs@fb7bc3c) python37Packages.pygls: 0.8.1 -> 0.9.0 * [`29f08dc7`](NixOS/nixpkgs@29f08dc) python37Packages.PyChromecast: 6.0.0 -> 7.1.0 * [`8e1bae55`](NixOS/nixpkgs@8e1bae5) pythonPackages.PyRMVtransport: init at v0.2.9 * [`a1121c12`](NixOS/nixpkgs@a1121c1) home-assistant: regenerate component-packages.nix (PyRMVtransport) * [`b6176231`](NixOS/nixpkgs@b617623) codebraid: 0.5.0-unstable-2019-12-11 -> 0.5.0-unstable-2020-07-01 * [`9b0000f5`](NixOS/nixpkgs@9b0000f) python27Packages.reportlab: 3.5.42 -> 3.5.44 * [`70450f1d`](NixOS/nixpkgs@70450f1) python27Packages.prance: 0.18.3 -> 0.19.0 * [`484613c1`](NixOS/nixpkgs@484613c) python37Packages.pint: 0.11 -> 0.14 * [`2d61c4c8`](NixOS/nixpkgs@2d61c4c) pygrok: init at 1.0.0 * [`ede5c964`](NixOS/nixpkgs@ede5c96) python37Packages.aiorun: 2020.2.1 -> 2020.6.1 * [`26aead68`](NixOS/nixpkgs@26aead6) python27Packages.XlsxWriter: 1.2.8 -> 1.2.9 * [`bb7d41ef`](NixOS/nixpkgs@bb7d41e) python38Packages.zconfig: fix build * [`1ff59e4a`](NixOS/nixpkgs@1ff59e4) python37Packages.breathe: 4.18.1 -> 4.19.2 * [`9ddd8489`](NixOS/nixpkgs@9ddd848) python37Packages.libcloud: 3.0.0 -> 3.1.0 * [`99c1276c`](NixOS/nixpkgs@99c1276) python27Packages.boltons: 20.1.0 -> 20.2.0 * [`ef88530d`](NixOS/nixpkgs@ef88530) python27Packages.sqlmap: 1.4.6 -> 1.4.7 * [`53ae3eff`](NixOS/nixpkgs@53ae3ef) gitAndTools.subgit: 3.3.9 -> 3.3.10 * [`babd73a3`](NixOS/nixpkgs@babd73a) spring-boot-cli: 2.3.0 -> 2.3.1 * [`a157b7e8`](NixOS/nixpkgs@a157b7e) psensor: 1.2.0 -> 1.2.1 * [`b1ad1d27`](NixOS/nixpkgs@b1ad1d2) python27Packages.transitions: 0.8.1 -> 0.8.2 * [`391d1e9f`](NixOS/nixpkgs@391d1e9) python27Packages.ntlm-auth: 1.4.0 -> 1.5.0 * [`f8484844`](NixOS/nixpkgs@f848484) python27Packages.xxhash: 1.4.3 -> 1.4.4 * [`ad8cf827`](NixOS/nixpkgs@ad8cf82) plantuml: 1.2020.12 -> 1.2020.15 * [`330bd7c3`](NixOS/nixpkgs@330bd7c) padthv1: 0.9.14 -> 0.9.15 * [`2d085243`](NixOS/nixpkgs@2d08524) ocamlPackages.lwt_ssl: 1.1.2 -> 1.1.3 * [`ed9f1b36`](NixOS/nixpkgs@ed9f1b3) mill: 0.7.3 -> 0.7.4 * [`45af43ff`](NixOS/nixpkgs@45af43f) nx-libs: 3.5.99.23 -> 3.5.99.24 * [`db00b125`](NixOS/nixpkgs@db00b12) drumkv1: 0.9.14 -> 0.9.15 * [`62d18f78`](NixOS/nixpkgs@62d18f7) flexibee: 2019.3.1.3 -> 2020.2.1.2 * [`6387252e`](NixOS/nixpkgs@6387252) geekbench: 5.2.0 -> 5.2.1 * [`9ba55213`](NixOS/nixpkgs@9ba5521) jamulus: 3.5.6 -> 3.5.8 * [`02fe1ec6`](NixOS/nixpkgs@02fe1ec) gwyddion: 2.55 -> 2.56 * [`711e47ac`](NixOS/nixpkgs@711e47a) vulnix: 1.9.4 -> 1.9.6 * [`63e6866c`](NixOS/nixpkgs@63e6866) libebml: 1.3.10 -> 1.4.0 * [`832a240b`](NixOS/nixpkgs@832a240) cmake-language-server: build with pygls 0.9.x * [`1891480e`](NixOS/nixpkgs@1891480) perlPackages.YAMLSyck: fix darwin build * [`1cb30eb7`](NixOS/nixpkgs@1cb30eb) python2Packages.unittest-sml-reporting: disable py2 * [`6560b608`](NixOS/nixpkgs@6560b60) waypipe: 0.6.1 -> 0.7.0 * [`94df3d44`](NixOS/nixpkgs@94df3d4) perlPackages.BeanstalkClient: init at 1.07 * [`2603a6d8`](NixOS/nixpkgs@2603a6d) krita: 4.2.9 -> 4.3.0 * [`af0d1f95`](NixOS/nixpkgs@af0d1f9) ssh-chat: init at 1.9 * [`976856c3`](NixOS/nixpkgs@976856c) monit: 5.26.0 -> 5.27.0 (NixOS/nixpkgs#92361) * [`d3f434e7`](NixOS/nixpkgs@d3f434e) python.pkgs.pytest-sugar: run tests * [`484184df`](NixOS/nixpkgs@484184d) python.pkgs.pytest-sugar: 0.9.3 -> 0.9.4 * [`2f938b38`](NixOS/nixpkgs@2f938b3) python.pkgs.junit-xml: simplify tests * [`e2786e8e`](NixOS/nixpkgs@e2786e8) python.pkgs.wordcloud: simplify checkInputs * [`91859703`](NixOS/nixpkgs@9185970) python.pkgs.ics: simplify tests * [`f10148ea`](NixOS/nixpkgs@f10148e) python.pkgs.sanic: simplify checkInputs * [`1d801806`](NixOS/nixpkgs@1d80180) python.pkgs.amqp: run tests
See #92520 (comment). In #85895 I accidentally introduced a comparison between an array reference and an array, which can never be true. Fixed by dereferencing.
TODO
/boot
read-only restriction #92122, merge that firstMotivation for this change
Useful for when you need to build grub modules into your grub kernel to get a working boot, as shown in the added example, but also for many other use cases where you want to customise the call to
grub-install
.Related
grub-help
thread, whose members kindly helped out understanding the related issues: https://lists.gnu.org/archive/html/help-grub/2020-04/msg00004.htmlAlso fixes the NixOS
/boot/grub/state
file not being written atomically, and I added a couple comments in case some other people have to update this perl script in the future.I've ensured backwards compatibility of the state file. @chpatrick has co-authored this.
I've tested this on my dedicated server, the one from https://discourse.nixos.org/t/howto-install-nixos-on-an-ovh-dedicated-server/3089/4?u=nh2.
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)