[elbe-devel] [PATCH v2 12/27] hdimg: use integer division for size

Bastian Germann bage at linutronix.de
Thu Sep 24 17:09:18 CEST 2020


Am 24.09.20 um 16:56 schrieb Torben Hohn:
> with python3 the size calculation fails:
> 
> Traceback (most recent call last):
>   File "/var/cache/elbe/devel/elbepack/asyncworker.py", line 194, in execute
>     skip_pbuild=self.skip_pbuilder)
>   File "/var/cache/elbe/devel/elbepack/elbeproject.py", line 686, in build
>     self.targetfs.part_target(self.builddir, grub_version, grub_fw_type)
>   File "/var/cache/elbe/devel/elbepack/efilesystem.py", line 425, in part_target
>     grub_fw_type)
>   File "/var/cache/elbe/devel/elbepack/hdimg.py", line 569, in do_hdimg
>     grub_fw_type)
>   File "/var/cache/elbe/devel/elbepack/hdimg.py", line 445, in do_image_hd
>     current_sector)
>   File "/var/cache/elbe/devel/elbepack/hdimg.py", line 322, in create_partition
>     g = parted.Geometry(device=disk.device, start=current_sector, length=sz)
>   File "/usr/lib/python3/dist-packages/parted/decorators.py", line 42, in new
>     ret = fn(*args, **kwds)
>   File "/usr/lib/python3/dist-packages/parted/geometry.py", line 56, in __init__
>     self.__geometry = _ped.Geometry(self.device.getPedDevice(), start, length)
> TypeError: integer argument expected, got float
> 
> Use the integer division from python3
> 
> Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>

Reviewed-by: Bastian Germann <bage at linutronix.de>

> ---
>  elbepack/hdimg.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/elbepack/hdimg.py b/elbepack/hdimg.py
> index 5af46de4c..1d22cd49d 100644
> --- a/elbepack/hdimg.py
> +++ b/elbepack/hdimg.py
> @@ -317,7 +317,7 @@ def create_partition(
>      elif part.text("size") == "remain":
>          sz = size_in_sectors - current_sector
>      else:
> -        sz = size_to_int(part.text("size")) / sector_size
> +        sz = size_to_int(part.text("size")) // sector_size
>  
>      g = parted.Geometry(device=disk.device, start=current_sector, length=sz)
>      if ptype != parted.PARTITION_EXTENDED and \
> @@ -409,7 +409,7 @@ def do_image_hd(hd, fslabel, target, grub_version, grub_fw_type=None):
>  
>      sector_size = 512
>      s = size_to_int(hd.text("size"))
> -    size_in_sectors = s / sector_size
> +    size_in_sectors = s // sector_size
>  
>      imagename = os.path.join(target, hd.text("name"))
>      do('rm -f "%s"' % imagename, allow_fail=True)
> 


More information about the elbe-devel mailing list