A lot of adjectives in English are based on a noun + the ending -ful.
The opposite adjective is usually constructed with the ending -less
According to Wiktionary, both endings -ful and -full existed in Old and Middle English. Moreover, it seems that this ending is based as expected on the word full, just like the ending -less is based on the word less.
However, it seems that the ending -full does not exist in modern English and it is considered a typo to write it as such.
So why did -ful with one l stick, when the spelling of full that sticked was the one with two l‘s?
It is a simple spelling rule. When full is added to an adjective it becomes
-ful with one l. I don’t know who invented that rule. Also if full is used as a prefix it becomes ful- as in to fulfill.
Similar in all right and the more informal alright.