On Linux (mainstreams distributions at least) Font Forge is in the repositories (i.e. app store equivalent) and installed while I typed this.
I have read a page on your site. The one on font substitution and naming. Its informative but does not cover anything. To clarify, font substitution is used if none of the fonts in a CSS font stack (bar the generic serif/sans) contain the characters?
I did not know common windows/mac fonts covered Sinhala. I am pretty sure older versions of these fonts do not (Windows XP includes Arial by default but does not support Sinhala out of the box) so I am going to need an embedded font.
Linux users should be OK, at least with a fallaback font, as I am sure that the number of Sinhala reading Linux users who do not have a Sinhala font installed is going to be very small. Incidentally DejaVu Sans does not cover sinhala.
I am now thinking of something like:
sinhalafont, Helvetica, Arial, sans-serif;
Where I have removed everything but sinhala characters from the sinhala font.
The alternative is to not embed a font and stick to fonts that include sinhala, but with the need to support XP users that does not seem an option.
Licensing is probably OK. Some fonts I downloaded from a government agency (which is the copyright holder) do not contain any terms, but I doubt they will object to my embedding them.
Supporting multiple scripts is much harder than I expected. Everything is unicode all the way so it ought to be smooth, but getting it right in the browser is going to have me tearing my hair out.