commit:     37d0f50bdb1e7779632a7fe4c6df16158fd2f114
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Nov  9 11:41:58 2021 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Nov  9 11:41:58 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=37d0f50b

app-emulation/lxd: add fix for >btrfs-progs-5.14 safety check

Closes: https://bugs.gentoo.org/822393
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 ...d-4.0.8-btrfs-progs-5.14-safety-check-fix.patch | 75 ++++++++++++++++++++++
 .../lxd/{lxd-4.0.8.ebuild => lxd-4.0.8-r1.ebuild}  |  2 +
 2 files changed, 77 insertions(+)

diff --git 
a/app-emulation/lxd/files/lxd-4.0.8-btrfs-progs-5.14-safety-check-fix.patch 
b/app-emulation/lxd/files/lxd-4.0.8-btrfs-progs-5.14-safety-check-fix.patch
new file mode 100644
index 00000000000..f32debff5e3
--- /dev/null
+++ b/app-emulation/lxd/files/lxd-4.0.8-btrfs-progs-5.14-safety-check-fix.patch
@@ -0,0 +1,75 @@
+From 5efac9cfed92a890dc1a073fe60b1c814c305267 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]>
+Date: Thu, 4 Nov 2021 14:05:27 -0400
+Subject: [PATCH] lxd/storage/btrfs: Support 5.14.2
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Closes #9418
+
+Signed-off-by: Stéphane Graber <[email protected]>
+---
+ lxd/storage/drivers/driver_btrfs.go       | 18 ++++++++++++++++++
+ lxd/storage/drivers/driver_btrfs_utils.go |  8 +++++++-
+ 2 files changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/lxd/storage/drivers/driver_btrfs.go 
b/lxd/storage/drivers/driver_btrfs.go
+index e6a64bf8136..a47be766f8f 100644
+--- a/lxd/storage/drivers/driver_btrfs.go
++++ b/lxd/storage/drivers/driver_btrfs.go
+@@ -17,10 +17,12 @@ import (
+       "github.com/lxc/lxd/shared/api"
+       "github.com/lxc/lxd/shared/units"
+       "github.com/lxc/lxd/shared/validate"
++      "github.com/lxc/lxd/shared/version"
+ )
+ 
+ var btrfsVersion string
+ var btrfsLoaded bool
++var btrfsPropertyForce bool
+ 
+ type btrfs struct {
+       common
+@@ -64,6 +66,22 @@ func (d *btrfs) load() error {
+               }
+       }
+ 
++      // Check if we need --force to set properties.
++      ver5142, err := version.Parse("5.14.2")
++      if err != nil {
++              return err
++      }
++
++      ourVer, err := version.Parse(btrfsVersion)
++      if err != nil {
++              return err
++      }
++
++      // If running 5.14.2 or older, we need --force.
++      if ourVer.Compare(ver5142) > 0 {
++              btrfsPropertyForce = true
++      }
++
+       btrfsLoaded = true
+       return nil
+ }
+diff --git a/lxd/storage/drivers/driver_btrfs_utils.go 
b/lxd/storage/drivers/driver_btrfs_utils.go
+index e1a359e8490..0618e29e6f2 100644
+--- a/lxd/storage/drivers/driver_btrfs_utils.go
++++ b/lxd/storage/drivers/driver_btrfs_utils.go
+@@ -308,7 +308,13 @@ func (d *btrfs) setSubvolumeReadonlyProperty(path string, 
readonly bool) error {
+               return nil
+       }
+ 
+-      _, err := shared.RunCommand("btrfs", "property", "set", "-ts", path, 
"ro", fmt.Sprintf("%t", readonly))
++      args := []string{"property", "set"}
++      if btrfsPropertyForce {
++              args = append(args, "-f")
++      }
++      args = append(args, "-ts", path, "ro", fmt.Sprintf("%t", readonly))
++
++      _, err := shared.RunCommand("btrfs", args...)
+       return err
+ }
+ 

diff --git a/app-emulation/lxd/lxd-4.0.8.ebuild 
b/app-emulation/lxd/lxd-4.0.8-r1.ebuild
similarity index 98%
rename from app-emulation/lxd/lxd-4.0.8.ebuild
rename to app-emulation/lxd/lxd-4.0.8-r1.ebuild
index df0bb65646f..feceaec9226 100644
--- a/app-emulation/lxd/lxd-4.0.8.ebuild
+++ b/app-emulation/lxd/lxd-4.0.8-r1.ebuild
@@ -73,6 +73,8 @@ 
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc
 # make: *** [Makefile:156: check] Error 1
 RESTRICT="test"
 
+PATCHES=( "${FILESDIR}"/lxd-4.0.8-btrfs-progs-5.14-safety-check-fix.patch )
+
 src_prepare() {
        default
 

Reply via email to