Merge pull request #279852 from Madouura/pr/bcachefs

bcachefs: update comments, release-notes, only use IFS for bcachefs, update bcachefs-tools and module
This commit is contained in:
Jörg Thalheim 2024-01-25 01:11:04 +01:00 committed by GitHub
commit 559ddda570
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 33 additions and 12 deletions

View File

@ -10,7 +10,7 @@ In addition to numerous new and upgraded packages, this release has the followin
- `screen`'s module has been cleaned, and will now require you to set `programs.screen.enable` in order to populate `screenrc` and add the program to the environment.
- `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_testing`, and is therefore no longer available.
- `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_latest`, and is therefore no longer available.
- NixOS now installs a stub ELF loader that prints an informative error message when users attempt to run binaries not made for NixOS.
- This can be disabled through the `environment.stub-ld.enable` option.

View File

@ -86,9 +86,14 @@ touch /etc/initrd-release
# Function for waiting for device(s) to appear.
waitDevice() {
local device="$1"
# Split device string using ':' as a delimiter as bcachefs
# uses this for multi-device filesystems, i.e. /dev/sda1:/dev/sda2:/dev/sda3
local IFS=':'
# Split device string using ':' as a delimiter, bcachefs uses
# this for multi-device filesystems, i.e. /dev/sda1:/dev/sda2:/dev/sda3
local IFS
# bcachefs is the only known use for this at the moment
# Preferably, the 'UUID=' syntax should be enforced, but
# this is kept for compatibility reasons
if [ "$fsType" = bcachefs ]; then IFS=':'; fi
# USB storage devices tend to appear with some delay. It would be
# great if we had a way to synchronously wait for them, but

View File

@ -123,9 +123,14 @@ in
inherit assertions;
# needed for systemd-remount-fs
system.fsPackages = [ pkgs.bcachefs-tools ];
# FIXME: Remove this line when the default kernel has bcachefs
# FIXME: Remove this line when the LTS (default) kernel is at least version 6.7
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
systemd.services = lib.mapAttrs' (mkUnits "") (lib.filterAttrs (n: fs: (fs.fsType == "bcachefs") && (!utils.fsNeededForBoot fs)) config.fileSystems);
services.udev.packages = [ pkgs.bcachefs-tools ];
systemd = {
packages = [ pkgs.bcachefs-tools ];
services = lib.mapAttrs' (mkUnits "") (lib.filterAttrs (n: fs: (fs.fsType == "bcachefs") && (!utils.fsNeededForBoot fs)) config.fileSystems);
};
}
(lib.mkIf ((lib.elem "bcachefs" config.boot.initrd.supportedFilesystems) || (bootFs != {})) {

View File

@ -19,6 +19,7 @@
, rustPlatform
, makeWrapper
, writeScript
, python3
, fuseSupport ? false
}:
@ -26,7 +27,6 @@ stdenv.mkDerivation (finalAttrs: {
pname = "bcachefs-tools";
version = "1.4.1";
src = fetchFromGitHub {
owner = "koverstreet";
repo = "bcachefs-tools";
@ -65,12 +65,12 @@ stdenv.mkDerivation (finalAttrs: {
udev
] ++ lib.optional fuseSupport fuse3;
# FIXME: Try enabling this once the default linux kernel is at least 6.7
doCheck = false; # needs bcachefs module loaded on builder
checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ];
makeFlags = [
"DESTDIR=${placeholder "out"}"
"PREFIX="
"PREFIX=${placeholder "out"}"
"VERSION=${finalAttrs.version}"
"INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools"
];
@ -79,6 +79,17 @@ stdenv.mkDerivation (finalAttrs: {
rm tests/test_fuse.py
'';
# Tries to install to the 'systemd-minimal' and 'udev' nix installation paths
installFlags = [
"PKGCONFIG_SERVICEDIR=$(out)/lib/systemd/system"
"PKGCONFIG_UDEVDIR=$(out)/lib/udev"
];
postInstall = ''
substituteInPlace $out/libexec/bcachefsck_all \
--replace "/usr/bin/python3" "${python3}/bin/python3"
'';
passthru = {
tests = {
smoke-test = nixosTests.bcachefs;

View File

@ -607,9 +607,9 @@ mapAliases ({
'';
linux_latest_hardened = linuxPackages_latest_hardened;
# Added 2023-11-18
linuxPackages_testing_bcachefs = throw "'linuxPackages_testing_bcachefs' has been removed, please use 'linuxPackages_testing', or any other linux kernel with bcachefs support";
linux_testing_bcachefs = throw "'linux_testing_bcachefs' has been removed, please use 'linux_testing', or any other linux kernel with bcachefs support";
# Added 2023-11-18, modified 2024-01-09
linuxPackages_testing_bcachefs = throw "'linuxPackages_testing_bcachefs' has been removed, please use 'linuxPackages_latest', any kernel version at least 6.7, or any other linux kernel with bcachefs support";
linux_testing_bcachefs = throw "'linux_testing_bcachefs' has been removed, please use 'linux_latest', any kernel version at least 6.7, or any other linux kernel with bcachefs support";
lld_6 = throw "lld_6 has been removed from nixpkgs"; # Added 2024-01-08
lld_7 = throw "lld_7 has been removed from nixpkgs"; # Added 2023-11-19