A 253 character filename is passed to the bitbake wget fetcher. The bitbake fetcher appends '.tmp' to the name so that the download can me renamed to the final name in a single operation. This leads to a condition where the filename exceeds the max filename length of the filesystem and wget will refuse to download (or if it tries will fail.) Either the filename needs to be "further" truncated in sstate.bbclass (it already truncates to under 254 characters), or the bitbake fetcher should detect the long filename and prevent the temp name from exceeding the filesystem length.
The ".tmp" is a fetcher implementation detail so sstate shouldn't have to worry about this. This should be fixed in the fetcher.
I think the easiest solution (in the fetcher) is to limit the 'tmp' filename to 250 characters (just truncate it) and then add the '.tmp' suffix. Then when the file is downloaded, it can be renamed to the original name without an issue. Alternatively, we could start generating temp filenames, but I'm not sure we really want to change the system behavior in that way at this time.
Patch merged: https://git.openembedded.org/bitbake/commit/?id=da1fcdf15c647a2a718ae921e261a76e451b442a