Yasm is Copyright (c) 2001-2006 Peter Johnson and other Yasm developers.

Yasm developers and/or contributors include:
  Peter Johnson
  Michael Urman
  Stanislav Karchebny
  Brian Gladman

-----------------------------------
Yasm licensing overview and summary
-----------------------------------

Note: This document does not provide legal advice nor is it the actual
license of any part of Yasm.  See the individual licenses for complete
details.  Consult a lawyer for legal advice.

The primary license of Yasm is the 2-clause BSD license.  Please use this
license if you plan on submitting code to the project.

Yasm has absolutely no warranty; not even for merchantibility or fitness
for a particular purpose.

-------
Libyasm
-------
Libyasm is 2-clause or 3-clause BSD licensed, with the exception of
bitvect, which is triple-licensed under the Artistic license, GPL, and
LGPL.  Libyasm is thus GPL and LGPL compatible.  In addition, this also
means that libyasm is free for binary-only distribution as long as the
terms of the 3-clause BSD license and Artistic license (as it applies to
bitvect) are fulfilled.

-------
Modules
-------
The modules are 2-clause or 3-clause BSD licensed, with the exception of:
 preprocs/nasm - LGPL licensed

---------
Frontends
---------
The frontends are 2-clause BSD licensed.

-------------
License Texts
-------------
The full text of all licenses are provided in separate files in the source
distribution.  Each source file may include the entire license (in the case
of the BSD and Artistic licenses), or may reference the GPL or LGPL license
file.

BSD.txt - 2-clause and 3-clause BSD licenses
Artistic.txt - Artistic license
GNU_GPL-2.0 - GNU General Public License
GNU_LGPL-2.0 - GNU Library General Public License
