[OE-core] [PATCH] sstate.bbclass: fix issue while handling long sstate filenames
Martin Hundebøll
martin at geanix.com
Thu Feb 6 07:52:52 UTC 2020
On 06/02/2020 01.57, Jaewon Lee wrote:
> When moving to python3, divison using '/' now returns float instead of
> an integer. In upstream commit b8025e972081b70960ffcbcbe43a7118041556a1
> sstate filenames longer than the limit are changed to just include
> necessary info + 3 fields just for information. The space left over
> after the necessary info is divided into 3 for each of the fields.
> Casting the outcome of that division to int to solve the following error
> message:
>
> avail = (254 - len(hash + "_" + taskname + extension) -
> len(components[0]) - len(components[1]) - len(components[5]) -
> len(components[6]) - 7) / 3
> > components[2] = components[2][:avail]
> components[3] = components[3][:avail]
> TypeError: slice indices must be integers or None or have an __index__
> method
>
> Signed-off-by: Jaewon Lee <jaewon.lee at xilinx.com>
> Signed-off-by: Mark Hatle <mark.hatle at xilinx.com>
> ---
> meta/classes/sstate.bbclass | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
> index faa6470..53a6d06 100644
> --- a/meta/classes/sstate.bbclass
> +++ b/meta/classes/sstate.bbclass
> @@ -20,7 +20,7 @@ def generate_sstatefn(spec, hash, taskname, siginfo, d):
> components = spec.split(":")
> # Fields 0,5,6 are mandatory, 1 is most useful, 2,3,4 are just for information
> # 7 is for the separators
> - avail = (254 - len(hash + "_" + taskname + extension) - len(components[0]) - len(components[1]) - len(components[5]) - len(components[6]) - 7) / 3
> + avail = int((254 - len(hash + "_" + taskname + extension) - len(components[0]) - len(components[1]) - len(components[5]) - len(components[6]) - 7) / 3)
Python has a nifty // operator that resembles integer division from C:
>>> 3 / 2
1.5
>>> 3 // 2
1
// Martin
> components[2] = components[2][:avail]
> components[3] = components[3][:avail]
> components[4] = components[4][:avail]
>
More information about the Openembedded-core
mailing list