Well, I haven't been here for a little while.
My home PC, which is half owned by my company, has been
commandeered back by them for a little while, while I work
on a project on it (my standard desktop machine at work
runs NT only, and the project is a linux one that requires
more processor power than our 200MHz application server box
can spare...). Hence, not much work has been achieved
recently.
A helpful e-mail recently pointed me in the direction of a
group of NASM developers that I had lost contact with a
while back (when Nelson Rush left their group, as he was
the only one I had ever really had a chance to work with),
and brought up the issue of licensing again.
For those who don't know about it, NASM is currently
released under a rather obscure license, that has been
officially declared by the OSI as 'not free' (I disagree
with them on various points, but agree that it isn't a good
license). For quite a while now, I have been intending to
relicense NASM under the DSPL, an idea I have been playing
with for a little while now. However, after two attempts
to get it OSI certified, it has again not made it due to
the license-discuss list not having given it adequate
discussion. It is a rather unusual free software license,
and I don't think they are entirely comfortable with it.
Maybe now is not the time for it.
So, I have been considering alternative licenses. Those
who know me well will know of my dislike of the GPL. As
one who works in the software business as well as in free
software communities, I know all too well that GPL code is
often avoided for commercial use due to potential
problems. To what extent do two interrelated processes
need to be separate before one of them can be licensed
separately? This is a very important question that the GPL
treats only vaguely.
I have been considering LGPL. A lot of people read that
and say 'but NASM isn't a library'. While this is true,
there are many advantages in treating it as such.
- Aggregation of NASM with projects under different
licenses becomes easy: you can say 'you will need NASM on
the system' without having to worry about whether this
causes your project to be licensed under the same terms as
NASM (it might with the GPL, depending on how you read
it).
- Certain parts of NASM, particularly the instruction
table, and maybe also its preprocessor, would be useful to
turn into an actual library as many other programs could
benefit from using them.
I have considered separating NASM out into a back-end
library (licensed under the LGPL) and a front-end program
(BSD licensed), to prevent any 'but this isn't a library'
style difficulties people may have. The task wouldn't be
too hard.
My other option is to just forget about keeping control of
the project and stick the lot under the BSD license. Then
I could forget about it all and just let people go their
own way - this is very tempting at times.
Anyone want to let me know what they think? E-mail me if you have a
strong opinion...