Mostly to track / ensure folks are aware of the issue. Haven't tried chasing down patches/fixes/updates for these yet.
Test command:
$ nix build '(with (import ./. {}).linuxPackages_4_15; [ nvidiaPackages spl virtualbox virtualboxGuestAdditions zfs zfsUnstable ])'
virtualbox failure (FIXED)
/build/virtualbox-5.2.4-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.c: In function 'VBoxHost_RTTimerCreateEx':
/build/virtualbox-5.2.4-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.c:1588:13: error: implicit declaration of function 'init_timer_pinned' [-Werror=implicit-function-declaration]
init_timer_pinned(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer);
^~~~~~~~~~~~~~~~~
/build/virtualbox-5.2.4-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.c:1592:52: error: 'struct timer_list' has no member named 'data'
pTimer->aSubTimers[iCpu].u.Std.LnxTimer.data = (unsigned long)&pTimer->aSubTimers[iCpu];
^
/build/virtualbox-5.2.4-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.c:1593:65: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
pTimer->aSubTimers[iCpu].u.Std.LnxTimer.function = rtTimerLinuxStdCallback;
^
cc1: some warnings being treated as errors
make[4]: *** [/nix/store/ganihdijy50pgqxpqmlwlk9alikv9nf0-linux-4.15-dev/lib/modules/4.15.0/source/scripts/Makefile.build:316: /build/virtualbox-5.2.4-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [/nix/store/ganihdijy50pgqxpqmlwlk9alikv9nf0-linux-4.15-dev/lib/modules/4.15.0/source/scripts/Makefile.build:575: /build/virtualbox-5.2.4-modsrc/vboxdrv] Error 2
make[2]: *** [/nix/store/ganihdijy50pgqxpqmlwlk9alikv9nf0-linux-4.15-dev/lib/modules/4.15.0/source/Makefile:1508: _module_/build/virtualbox-5.2.4-modsrc] Error 2
make[1]: *** [Makefile:146: sub-make] Error 2
make: *** [Makefile:24: __sub-make] Error 2
make: Leaving directory '/nix/store/ganihdijy50pgqxpqmlwlk9alikv9nf0-linux-4.15-dev/lib/modules/4.15.0/build'
builder for '/nix/store/fv0hmwz19jlci68s9klh0j6h8bdavb3d-virtualbox-modules-5.2.4-4.15.drv' failed with exit code 2
error: build of '/nix/store/fv0hmwz19jlci68s9klh0j6h8bdavb3d-virtualbox-modules-5.2.4-4.15.drv' failed
nvidia.stable failure
CC [M] /build/kernel/nvidia/nv-i2c.o
/build/kernel/nvidia/nv.c: In function 'nv_start_rc_timer':
/build/kernel/nvidia/nv.c:3389:5: error: implicit declaration of function 'init_timer' [-Werror=implicit-function-declaration]
init_timer(&nvl->rc_timer);
^~~~~~~~~~
/build/kernel/nvidia/nv.c:3390:28: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
nvl->rc_timer.function = nvidia_rc_timer;
^
/build/kernel/nvidia/nv.c:3391:18: error: 'struct timer_list' has no member named 'data'
nvl->rc_timer.data = (unsigned long) nvl;
^
CC [M] /build/kernel/nvidia/nv-mempool.o
CC [M] /build/kernel/nvidia/nv-mmap.o
cc1: some warnings being treated as errors
make[3]: *** [/nix/store/ganihdijy50pgqxpqmlwlk9alikv9nf0-linux-4.15-dev/lib/modules/4.15.0/source/scripts/Makefile.build:316: /build/kernel/nvidia/nv.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [/nix/store/ganihdijy50pgqxpqmlwlk9alikv9nf0-linux-4.15-dev/lib/modules/4.15.0/source/Makefile:1508: _module_/build/kernel] Error 2
make[2]: Leaving directory '/nix/store/ganihdijy50pgqxpqmlwlk9alikv9nf0-linux-4.15-dev/lib/modules/4.15.0/build'
make[1]: *** [Makefile:146: sub-make] Error 2
make[1]: Leaving directory '/nix/store/ganihdijy50pgqxpqmlwlk9alikv9nf0-linux-4.15-dev/lib/modules/4.15.0/source'
make: *** [Makefile:84: modules] Error 2
builder for '/nix/store/sl6v7lxzwj6m26h2gppvq7saxihrfg59-nvidia-x11-387.34-4.15.drv' failed with exit code 2
error: build of '/nix/store/sl6v7lxzwj6m26h2gppvq7saxihrfg59-nvidia-x11-387.34-4.15.drv' failed
Okay so nvidia failure may be fixed by simply updating versions. Unfortunately it appears mapping the descriptions from the download page to our naming (stable/beta/etc.) is beyond me :P.
Particularly, should we use the "long-term" branch for stable, or....?
(related: while short-term is still at 387.34, the archive shows 387.111 has come... which is what Debian uses presently?)
Anyway hopefully the versions make more sense to someone else :).
cc @MP2E @vcunat @andersk can you help putting together an update for the nvidia driver? (cc'ing sampling of folks from recent issues re:4.14 problems and commit history)
Testing with 390.25 (LTS) fixes the build, but not sure if this is right (or how to reasonably trigger evaluation involving all of the hashes).
Adding guest additions to list, per https://github.com/NixOS/nixpkgs/pull/34351#issuecomment-362533550 (thanks!).
nvidia fixed, thanks @thoughtpolice ! :+1:.
spl is broken, so anyone running ZFS is currently SOL:
/tmp/nix-build-spl-0.7.5-4.15.drv-0/source/module/spl/spl-taskq.c: In function 'taskq_dispatch':
/tmp/nix-build-spl-0.7.5-4.15.drv-0/source/module/spl/spl-taskq.c:593:16: error: 'struct timer_list' has no member named 'data'
t->tqent_timer.data = 0;
^
/tmp/nix-build-spl-0.7.5-4.15.drv-0/source/module/spl/spl-taskq.c: In function 'taskq_dispatch_delay':
/tmp/nix-build-spl-0.7.5-4.15.drv-0/source/module/spl/spl-taskq.c:643:16: error: 'struct timer_list' has no member named 'data'
t->tqent_timer.data = (unsigned long)t;
^
/tmp/nix-build-spl-0.7.5-4.15.drv-0/source/module/spl/spl-taskq.c:644:26: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
t->tqent_timer.function = task_expire;
^
/tmp/nix-build-spl-0.7.5-4.15.drv-0/source/module/spl/spl-taskq.c: In function 'taskq_init_ent':
/tmp/nix-build-spl-0.7.5-4.15.drv-0/source/module/spl/spl-taskq.c:735:2: error: implicit declaration of function 'init_timer' [-Werror=implicit-function-declaration]
init_timer(&t->tqent_timer);
when i tried doing a nixos-rebuild switch --upgrade on 18.03 i get this error.
Checking for AA ... /tmp/nix-build-virtualbox-modules-5.1.26-4.15.drv-0/virtualbox-5.1.26-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.c: In function 'VBoxHost_RTTimerCreateEx':
/tmp/nix-build-virtualbox-modules-5.1.26-4.15.drv-0/virtualbox-5.1.26-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.c:1588:13: error: implicit declaration of function 'init_timer_pinned' [-Werror=implicit-function-declaration]
init_timer_pinned(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer);
^~~~~~~~~~~~~~~~~
/tmp/nix-build-virtualbox-modules-5.1.26-4.15.drv-0/virtualbox-5.1.26-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.c:1592:52: error: 'struct timer_list' has no member named 'data'
pTimer->aSubTimers[iCpu].u.Std.LnxTimer.data = (unsigned long)&pTimer->aSubTimers[iCpu];
^
/tmp/nix-build-virtualbox-modules-5.1.26-4.15.drv-0/virtualbox-5.1.26-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.c:1593:65: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
pTimer->aSubTimers[iCpu].u.Std.LnxTimer.function = rtTimerLinuxStdCallback;
^
cc1: some warnings being treated as errors
make[4]: *** [/nix/store/w8ydvrifxir2bwr1n44ydnqgqn8d9vyd-linux-4.15-dev/lib/modules/4.15.0/source/scripts/Makefile.build:317: /tmp/nix-build-virtualbox-modules-5.1.26-4.15.drv-0/virtualbox-5.1.26-modsrc/vboxdrv/r0drv/linux/timer-r0drv-linux.o] Error 1
make[3]: *** [/nix/store/w8ydvrifxir2bwr1n44ydnqgqn8d9vyd-linux-4.15-dev/lib/modules/4.15.0/source/scripts/Makefile.build:575: /tmp/nix-build-virtualbox-modules-5.1.26-4.15.drv-0/virtualbox-5.1.26-modsrc/vboxdrv] Error 2
make[2]: *** [/nix/store/w8ydvrifxir2bwr1n44ydnqgqn8d9vyd-linux-4.15-dev/lib/modules/4.15.0/source/Makefile:1508: _module_/tmp/nix-build-virtualbox-modules-5.1.26-4.15.drv-0/virtualbox-5.1.26-modsrc] Error 2
make[1]: *** [Makefile:146: sub-make] Error 2
make: *** [Makefile:24: __sub-make] Error 2
Yes, that's those virtualboxGuestAdditions listed as unfixed at the top.
I've been informed that the next release is ZFS will support 4.15, so write that one up as needing an upstream bump. It shouldn't be too long; it's in testing now.
Oh, good to know thank you! Is that why zfsUnstable works?
Also, vbox guest additions should be fixed with this:
https://www.virtualbox.org/changeset/70625/vbox
But I'm not sure where in the pipeline it would go-- it modifies files that seem to exist under different names in the extracted ISO? Anyway maybe that's enough for someone to fix things.
Oh, good to know thank you! Is that why zfsUnstable works?
Presumably, yes. The fixes are already in master, and a few people have mentioned cherry-picking them on the last release as well, but I see no reason to take the risk when I can stay on 4.14 until the official release.
spl/zfs merged https://github.com/NixOS/nixpkgs/pull/34713
Thanks @dtzWill
I think things all work now, not sure about Nvidia driver variants but those can be new issues as needed.
Thanks folks!
Most helpful comment
spl is broken, so anyone running ZFS is currently SOL: