From 8e67d8e2369e6045970aaad632b5bf32fb611b1f Mon Sep 17 00:00:00 2001
From: "Brian C. Lane" <bcl@redhat.com>
Date: Fri, 11 Jun 2021 09:28:16 -0700
Subject: [PATCH] pylorax: Fix mksparse ftruncate size handling

Make sure that os.ftruncate() is called with an int() size. Before python
3.10 it used to handle this internally, but in 3.9 it was deprecated and
in 3.10 it now raises an error:

    TypeError: 'float' object cannot be interpreted as an integer

This makes sure that the size is truncated to an int(). The value is in
bytes, so truncation does not lose anything.
---
 src/pylorax/imgutils.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pylorax/imgutils.py b/src/pylorax/imgutils.py
index d38f056..44d5b55 100644
--- a/src/pylorax/imgutils.py
+++ b/src/pylorax/imgutils.py
@@ -130,7 +130,7 @@ def mkrootfsimg(rootdir, outfile, label, size=2, sysroot=""):
 def mksparse(outfile, size):
     '''use os.ftruncate to create a sparse file of the given size.'''
     fobj = open(outfile, "w")
-    os.ftruncate(fobj.fileno(), size)
+    os.ftruncate(fobj.fileno(), int(size))
 
 def mkqcow2(outfile, size, options=None):
     '''use qemu-img to create a file of the given size.
-- 
2.45.2

