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
zfsUnstable: 0.8.4 -> 2.0.0-rc1 #96432
Conversation
Result of 6 packages marked as broken and skipped:- linuxPackages_hardkernel_4_14.zfs - linuxPackages_hardkernel_4_14.zfsStable - linuxPackages_hardkernel_4_14.zfsUnstable - linuxPackages_hardkernel_latest.zfs - linuxPackages_hardkernel_latest.zfsStable - linuxPackages_hardkernel_latest.zfsUnstable 1 package blacklisted:- tests.nixos-functions.nixosTest-test 13 packages failed to build:- bareos - deepin.dde-api - deepin.dde-control-center - deepin.dde-daemon - deepin.dde-dock - deepin.dde-file-manager - deepin.dde-kwin - deepin.dde-launcher - deepin.dde-session-ui - deepin.deepin-desktop-base - deepin.deepin-desktop-schemas - deepin.deepin-wallpapers - deepin.startdde 87 packages built:- ceph (ceph-dev) - ceph-client - collectd - collectd-data - docker-machine-kvm - docker-machine-kvm2 - easysnap - gnome3.gnome-boxes - grub2 (grub2_full) - grub2_efi - grub2_pvgrub_image - grub2_xen - haskellPackages.libvirt-hs - haskellPackages.libzfs - libceph - libguestfs - libguestfs-with-appliance - libvirt - libvirt-glib - libvirt_5_9_0 - libvmi - linuxPackages-libre.zfs (linuxPackages-libre.zfsStable) - linuxPackages-libre.zfsUnstable - linuxPackages.zfs (linuxPackages.zfsStable ,linuxPackages_5_4.zfs ,linuxPackages_5_4.zfsStable) - linuxPackages.zfsUnstable (linuxPackages_5_4.zfsUnstable) - linuxPackages_4_14.zfs (linuxPackages_4_14.zfsStable) - linuxPackages_4_14.zfsUnstable - linuxPackages_4_19.zfs (linuxPackages_4_19.zfsStable) - linuxPackages_4_19.zfsUnstable - linuxPackages_4_4.zfs (linuxPackages_4_4.zfsStable) - linuxPackages_4_4.zfsUnstable - linuxPackages_4_9.zfs (linuxPackages_4_9.zfsStable) - linuxPackages_4_9.zfsUnstable - linuxPackages_5_7.zfs (linuxPackages_5_7.zfsStable) - linuxPackages_5_7.zfsUnstable - linuxPackages_5_8.zfs (linuxPackages_5_8.zfsStable ,linuxPackages_latest.zfs ,linuxPackages_latest.zfsStable) - linuxPackages_5_8.zfsUnstable (linuxPackages_latest.zfsUnstable) - linuxPackages_hardened.zfs (linuxPackages_hardened.zfsStable) - linuxPackages_hardened.zfsUnstable - linuxPackages_latest-libre.zfs (linuxPackages_latest-libre.zfsStable) - linuxPackages_latest-libre.zfsUnstable - linuxPackages_latest_hardened.zfs (linuxPackages_latest_hardened.zfsStable) - linuxPackages_latest_hardened.zfsUnstable - linuxPackages_latest_xen_dom0.zfs (linuxPackages_latest_xen_dom0.zfsStable) - linuxPackages_latest_xen_dom0.zfsUnstable - linuxPackages_latest_xen_dom0_hardened.zfs (linuxPackages_latest_xen_dom0_hardened.zfsStable) - linuxPackages_latest_xen_dom0_hardened.zfsUnstable - linuxPackages_testing_bcachefs.zfs (linuxPackages_testing_bcachefs.zfsStable) - linuxPackages_testing_bcachefs.zfsUnstable - linuxPackages_xen_dom0.zfs (linuxPackages_xen_dom0.zfsStable) - linuxPackages_xen_dom0.zfsUnstable - linuxPackages_xen_dom0_hardened.zfs (linuxPackages_xen_dom0_hardened.zfsStable) - linuxPackages_xen_dom0_hardened.zfsUnstable - linuxPackages_zen.zfs (linuxPackages_zen.zfsStable) - linuxPackages_zen.zfsUnstable - minikube - minishift - nixops - nixopsUnstable - nixops_1_6_1 - os-prober - perl528Packages.SysVirt - perl530Packages.SysVirt - python27Packages.guestfs - python27Packages.libvirt - python37Packages.guestfs - python37Packages.libvirt - python38Packages.guestfs - python38Packages.libvirt - rubyPackages.ruby-libvirt (rubyPackages_2_6.ruby-libvirt) - rubyPackages_2_5.ruby-libvirt - rubyPackages_2_7.ruby-libvirt - sambaFull (samba4Full) - sanoid - terraform-full - terraform-providers.libvirt - terraform_0_11-full - terragrunt - vagrant - virt-manager - virt-manager-qt - virt-top - virt-viewer - virtlyst - zfs (zfsStable) - zfsUnstable - zfstools |
|
@ofborg test zfs.stable zfs.unstable |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
😮 nice |
@jonringer That has been in the pipeline for a few years now. It was presented at the OpenZFS Developer Summit 2017. |
yea, but i forgot about it, and seemed like a pipe dream. And looking at the PR history, it looks like it was slow to adopt |
Actually, there seems to be an issue when using the zstd compression; every feature flag enabling the compression is invalid, including the following:
The zfs version registers as |
On my machine I get $ modinfo zfs | grep ^version
version: 2.0.0-rc1
$ zfs --version
zfs-2.0.0-rc1
zfs-kmod-2.0.0-rc1 |
Alright, so, two things:
I'm trying to create the zpool again with a new ISO with the changes. |
This is fixed in master of nixpkgs-review now. Needs a release. |
Same issue as from my post before. Nothing's changed; however, I forgot to mention I'm on NixOS 20.09, if that makes a difference. Oh, and I also added the imported overlay to |
you would need to check out the branch, update your configuration.nix to use the
Then you would need to do a EDIT: |
you could potentially try |
Actually, I'm using the original overlay created by @hmenke over on reddit: https://www.reddit.com/r/NixOS/comments/ihc2se/help_in_packaging_the_latest_zfs_release/g2zifld?utm_medium=android_app&utm_source=share&context=3 |
ah, well, my steps will work generically over all PRs, but either one should work. |
I know; great advice for a newbie such as myself! |
Using |
Yeah, but I'm creating a new one! Why wouldn't that work, though? 🤔 |
I thought compression could be enabled/disabled at any time, shouldn't you be able to just say |
Well, I was going to recreate my pools anyway, so... 😅 |
Wait! ... Does this work in the end? |
It seems to work for everyone except you, so it's quite likely that you are doing something wrong. |
Entirely possible; I'll get back to you on that. Am I supposed to be unable to create pools, though? It seems everyone has no trouble upgrading their pools. |
Also, I'm using a ZFS root on all my systems, which is why I can't upgrade in-place; I'd be rebooting with another zfsUnstable version without upgrading the pool, which would render my system inoperable. Rebuilding and switching doesn't seem to work properly on my system(s). |
I just built an ISO and I can create pools in a VM just fine. |
Can you give me the config file for the iso? |
This is my current config for the ISO, built using # This module defines a NixOS installation CD that contains GNOME.
{ config, lib, pkgs, ... }:
with lib;
{
imports = [ ./installation-cd-graphical-base.nix ];
nixpkgs.overlays = [ (import ../../../../../zfsBackports.nix) ];
# boot.kernelPackages = pkgs.linuxPackages_zen;
environment.systemPackages = with pkgs; [ vscodium zfsUnstable black python38 rsync etcher kitty bat exa diskus git nixops sd tmux byobu neovim curl wget xz woeusb ];
# boot.initrd.kernelModules = [ "zfsUnstable" ];
# boot.initrd.availableKernelModules = [ "zfsUnstable" ];
# boot.initrd.supportedFilesystems = [ "zfsUnstable" "xfs" "btrfs" "ext4" "fat" "vfat" ];
# boot.supportedFilesystems = [ "zfsUnstable" "xfs" "btrfs" "ext4" "fat" "vfat" ];
# boot.zfs.enableUnstable = true;
# boot.extraModulePackages = with config.boot.kernelPackages; [ zfsUnstable ];
isoImage.edition = "gnome";
services.xserver.desktopManager.gnome3.enable = true;
services.xserver.displayManager = {
gdm = {
enable = true;
# autoSuspend makes the machine automatically suspend after inactivity.
# It's possible someone could/try to ssh'd into the machine and obviously
# have issues because it's inactive.
# See:
# * https://github.com/NixOS/nixpkgs/pull/63790
# * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22
autoSuspend = false;
};
autoLogin = {
enable = true;
user = "nixos";
};
};
} |
I can't seem to update the kmod version; it's still stuck at 0.8.4; I also cannot create new pools, with the same errors as before. |
I'm also using a modified version of your overlay, @hmenke: # From: [u/_hmenke](https://www.reddit.com/user/_hmenke/)
# Answer: https://www.reddit.com/r/NixOS/comments/ihc2se/help_in_packaging_the_latest_zfs_release/g2zifld?utm_source=share&utm_medium=web2x&context=3
self: super:
let
patches = [];
version = "2.0.0-rc1";
src = self.fetchFromGitHub {
owner = "openzfs";
repo = "zfs";
rev = "zfs-${version}";
sha256 = "0d1m5zwgqzfwbscvb60zvzkjgl5nkbvas22vjsyci3xygz0qwjsb";
};
in
{
linuxPackages_latest = super.linuxPackages_latest.extend (linuxPackagesSelf: linuxPackagesSuper: {
zfsUnstable = linuxPackagesSuper.zfsUnstable.overrideAttrs (oldAttrs: rec {
inherit patches version src;
name = "zfs-kernel-${version}-${linuxPackagesSuper.kernel.version}";
postPatch = (builtins.replaceStrings [ "./module/zfs/zfs_ctldir.c" ] [ "./module/os/linux/zfs/zfs_ctldir.c" ] oldAttrs.postPatch);
});
});
linuxPackages_latest_xen_dom0 = super.linuxPackages_latest_xen_dom0.extend (linuxPackagesSelf: linuxPackagesSuper: {
zfsUnstable = linuxPackagesSuper.zfsUnstable.overrideAttrs (oldAttrs: rec {
inherit patches version src;
name = "zfs-kernel-${version}-${linuxPackagesSuper.kernel.version}";
postPatch = (builtins.replaceStrings [ "./module/zfs/zfs_ctldir.c" ] [ "./module/os/linux/zfs/zfs_ctldir.c" ] oldAttrs.postPatch);
});
});
linuxPackages_zen = super.linuxPackages_zen.extend (linuxPackagesSelf: linuxPackagesSuper: {
zfsUnstable = linuxPackagesSuper.zfsUnstable.overrideAttrs (oldAttrs: rec {
inherit patches version src;
name = "zfs-kernel-${version}-${linuxPackagesSuper.kernel.version}";
postPatch = (builtins.replaceStrings [ "./module/zfs/zfs_ctldir.c" ] [ "./module/os/linux/zfs/zfs_ctldir.c" ] oldAttrs.postPatch);
});
});
zfsUnstable = super.zfsUnstable.overrideAttrs(oldAttrs: rec {
inherit patches version src;
name = "zfs-user-${version}";
postPatch = (builtins.replaceStrings [ "./lib/libshare/nfs.c" ] [ "./lib/libshare/os/linux/nfs.c" ] oldAttrs.postPatch) + ''
substituteInPlace ./config/zfs-build.m4 --replace "/etc/default" "$out/etc/default"
substituteInPlace ./contrib/initramfs/conf.d/Makefile.am \
--replace "/usr/share/initramfs-tools/conf.d" "$out/usr/share/initramfs-tools/conf.d"
substituteInPlace ./contrib/initramfs/conf-hooks.d/Makefile.am \
--replace "/usr/share/initramfs-tools/conf-hooks.d" "$out/usr/share/initramfs-tools/conf-hooks.d"
'';
});
} |
you'll want:
to use the unstable version, and enable zfs |
I tried with both, but they didn't work; I'll try again and confirm. |
actually, looking at your command, please see #96432 (comment) |
Didn't work; I set your options in the config and added the the |
RIght now it's a real pain and since you are struggling with correctly building an image, you should just wait for about a week or so until the unstable channel is fixed. Honestly I also don't get why you are so focussed on creating pools with 2.0.0-rc1 rather than just create the pool with 0.8.4, install normally and then upgrade the pool to 2.0.0-rc1 after everything is set up successfully. With that out of the way, my {config, pkgs, ...}:
{
imports = [
<nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix>
<nixpkgs/nixos/modules/installer/cd-dvd/channel.nix>
];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.enableUnstable = true;
nix.nixPath = [
"nixpkgs=https://github.com/NixOS/nixpkgs/archive/master.tar.gz"
"nixos-config=/etc/nixos/configuration.nix"
"/nix/var/nix/profiles/per-user/root/channels"
];
} Note that I have set a custom Then to build the image you also have to override NIX_PATH="nixpkgs=https://github.com/NixOS/nixpkgs/archive/master.tar.gz:nixos-config=cdimage.nix" nix-build '<nixpkgs/nixos>' -A config.system.build.isoImage Keep in mind that when you are installing from this image, you will have to add the custom |
Hmm... You're right; too many temporary changes. I'll take your advice and wait for the update in the unstable channel; so a week or so, correct? |
You can take a look at https://status.nixos.org/. Currently |
Found it! Thank you all so much for all the help! |
Motivation for this change
New features from https://github.com/openzfs/zfs/releases/tag/zfs-2.0.0-rc1
zfs send/recv
zpool wait
subcommandzfs share
scalabilityAlso the
__vmalloc
patch is now part of the tree: openzfs/zfs@080102aFixes #96348
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)