diff --git a/_service b/_service
index 4dca374..57ee244 100644
--- a/_service
+++ b/_service
@@ -2,8 +2,8 @@
git
https://evilpiepirate.org/git/bcachefs-tools.git
- v1.3.5
- 1.3.5
+ v1.4.0
+ 1.4.0
*.tar
diff --git a/bcachefs-tools-1.3.5.tar.xz b/bcachefs-tools-1.3.5.tar.xz
deleted file mode 100644
index bf3aa68..0000000
--- a/bcachefs-tools-1.3.5.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8b12eb8bfb2887056248bfd28351e0be8e5a05ba8462d05d00643bb87b354421
-size 727252
diff --git a/bcachefs-tools-1.4.0.tar.xz b/bcachefs-tools-1.4.0.tar.xz
new file mode 100644
index 0000000..ed0a282
--- /dev/null
+++ b/bcachefs-tools-1.4.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0cd3101496aa6ece69dfe5d7997005256f844a4fa7e777015eeac75d581e06b6
+size 743712
diff --git a/bcachefs-tools.changes b/bcachefs-tools.changes
index 3fd8537..0087d76 100644
--- a/bcachefs-tools.changes
+++ b/bcachefs-tools.changes
@@ -1,3 +1,13 @@
+-------------------------------------------------------------------
+Tue Jan 9 03:46:53 UTC 2024 - Joshua Smith
+
+- Add use_libexec_not_lib.patch
+- Update to v1.4.0:
+ * bugfix release
+ * Split brain detection
+ * BCH_IOCTL_OFFLINE_FSCK, and numerous other features and
+ bugfixes.
+
-------------------------------------------------------------------
Sun Dec 3 02:10:44 UTC 2023 - Joshua Smith
diff --git a/bcachefs-tools.spec b/bcachefs-tools.spec
index 3236f5d..8e5b0a7 100644
--- a/bcachefs-tools.spec
+++ b/bcachefs-tools.spec
@@ -1,7 +1,7 @@
#
# spec file for package bcachefs-tools
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,14 @@
Name: bcachefs-tools
-Version: 1.3.5
+Version: 1.4.0
Release: 0
Summary: Configuration utilities for bcachefs
License: GPL-2.0-or-later
Group: System/Filesystems
URL: https://bcachefs.org/
-
Source: %name-%version.tar.xz
+Patch0: use_libexec_not_lib.patch
BuildRequires: libaio-devel
BuildRequires: pkg-config
BuildRequires: xz
@@ -35,6 +35,7 @@ BuildRequires: pkgconfig(libsodium)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(liburcu)
BuildRequires: pkgconfig(libzstd)
+BuildRequires: pkgconfig(udev)
BuildRequires: pkgconfig(uuid)
BuildRequires: pkgconfig(zlib)
@@ -65,8 +66,24 @@ This package contains utilities for creating and mounting bcachefs.
# this ain't no debian
rm -Rf "%buildroot/etc/initramfs-tools" "%buildroot/%_datadir/initramfs-tools"
+%pre
+%service_add_pre bcachefsck_all.service bcachefsck_all_fail.service
+
+%post
+%service_add_post bcachefsck_all.service bcachefsck_all_fail.service
+
+%preun
+%service_del_preun bcachefsck_all.service bcachefsck_all_fail.service
+
+%postun
+%service_del_postun bcachefsck_all.service bcachefsck_all_fail.service
+
%files
%_sbindir/*bcache*
+%_unitdir/bcachefsck*
+%_unitdir/system-bcachefsck*
+%_libexecdir/bcachefsck*
+%_udevrulesdir/64-bcachefs.rules
%_mandir/man8/*.8*
%license COPYING
diff --git a/use_libexec_not_lib.patch b/use_libexec_not_lib.patch
new file mode 100644
index 0000000..4a29bcc
--- /dev/null
+++ b/use_libexec_not_lib.patch
@@ -0,0 +1,89 @@
+From 89abdd87271e237141a9d4f44d531f7c53353b83 Mon Sep 17 00:00:00 2001
+From: Neal Gompa
+Date: Sun, 24 Dec 2023 08:34:16 -0500
+Subject: [PATCH] Makefile, fsck: Use libexec instead of lib
+
+These are executables that need to be installed in a non-path location.
+Most distributions now install these into /usr/libexec, and the
+path variable for this is LIBEXECDIR, so use that instead.
+---
+ Makefile | 12 ++++++------
+ fsck/bcachefsck_all_fail.service.in | 2 +-
+ fsck/bcachefsck_fail@.service.in | 2 +-
+ 3 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 0e5cf6e0..a38f0742 100644
+--- a/Makefile
++++ b/Makefile
+@@ -105,14 +105,14 @@ else
+ ROOT_SBINDIR?=$(PREFIX)/sbin
+ INITRAMFS_DIR=/etc/initramfs-tools
+ endif
+-LIBDIR=$(PREFIX)/lib
++LIBEXECDIR=$(PREFIX)/libexec
+
+ PKGCONFIG_SERVICEDIR:=$(shell $(PKG_CONFIG) --variable=systemdsystemunitdir systemd)
+ ifeq (,$(PKGCONFIG_SERVICEDIR))
+ $(warning skipping systemd integration)
+ else
+ BCACHEFSCK_ARGS=-f -n
+-systemd_libfiles=\
++systemd_libexecfiles=\
+ fsck/bcachefsck_fail \
+ fsck/bcachefsck_all
+
+@@ -133,14 +133,14 @@ built_scripts+=\
+
+ %.service: %.service.in
+ @echo " [SED] $@"
+- $(Q)sed -e "s|@libdir@|$(LIBDIR)|g" \
++ $(Q)sed -e "s|@libexecdir@|$(LIBEXECDIR)|g" \
+ -e "s|@bcachefsck_args@|$(BCACHEFSCK_ARGS)|g" < $< > $@
+
+ fsck/bcachefsck_all: fsck/bcachefsck_all.in
+ @echo " [SED] $@"
+ $(Q)sed -e "s|@bcachefsck_args@|$(BCACHEFSCK_ARGS)|g" < $< > $@
+
+-optional_build+=$(systemd_libfiles) $(systemd_services)
++optional_build+=$(systemd_libexecfiles) $(systemd_services)
+ optional_install+=install_systemd
+ endif # PKGCONFIG_SERVICEDIR
+
+@@ -226,8 +226,8 @@ install: bcachefs $(optional_install)
+ echo "copy_exec $(ROOT_SBINDIR)/bcachefs /sbin/bcachefs" >> $(DESTDIR)$(INITRAMFS_HOOK)
+
+ .PHONY: install_systemd
+-install_systemd: $(systemd_services) $(systemd_libfiles)
+- $(INSTALL) -m0755 -D $(systemd_libfiles) -t $(DESTDIR)$(LIBDIR)
++install_systemd: $(systemd_services) $(systemd_libexecfiles)
++ $(INSTALL) -m0755 -D $(systemd_libexecfiles) -t $(DESTDIR)$(LIBEXECDIR)
+ $(INSTALL) -m0644 -D $(systemd_services) -t $(DESTDIR)$(PKGCONFIG_SERVICEDIR)
+
+ .PHONY: clean
+diff --git a/fsck/bcachefsck_all_fail.service.in b/fsck/bcachefsck_all_fail.service.in
+index b79f8196..fe584514 100644
+--- a/fsck/bcachefsck_all_fail.service.in
++++ b/fsck/bcachefsck_all_fail.service.in
+@@ -10,7 +10,7 @@ Documentation=man:bcachefsck_all(8)
+ [Service]
+ Type=oneshot
+ Environment=EMAIL_ADDR=root
+-ExecStart=@libdir@/bcachefsck_fail "${EMAIL_ADDR}" bcachefsck_all
++ExecStart=@libexecdir@/bcachefsck_fail "${EMAIL_ADDR}" bcachefsck_all
+ User=mail
+ Group=mail
+ SupplementaryGroups=systemd-journal
+diff --git a/fsck/bcachefsck_fail@.service.in b/fsck/bcachefsck_fail@.service.in
+index 369a809a..8d5ed4c6 100644
+--- a/fsck/bcachefsck_fail@.service.in
++++ b/fsck/bcachefsck_fail@.service.in
+@@ -10,7 +10,7 @@ Documentation=man:bcachefs(8)
+ [Service]
+ Type=oneshot
+ Environment=EMAIL_ADDR=root
+-ExecStart=@libdir@/bcachefsck_fail "${EMAIL_ADDR}" bcachefs %f
++ExecStart=@libexecdir@/bcachefsck_fail "${EMAIL_ADDR}" bcachefs %f
+ User=mail
+ Group=mail
+ SupplementaryGroups=systemd-journal