Reuse, not rework
Home

License Awareness



Highly Reusable Software

By activity
Professions, Sciences, Humanities, Business, ...

User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...

Text Strings
Conversions, tests, processing, manipulation,...

Math
Integer, Floating point, Matrix, Statistics, Boolean, ...

Processing
Algorithms, Memory, Process control, Debugging, ...

Stored Data
Data storage, Integrity, Encryption, Compression, ...

Communications
Networks, protocols, Interprocess, Remote, Client Server, ...

Hard World
Timing, Calendar and Clock, Audio, Video, Printer, Controls...

File System
Management, Filtering, File & Directory access, Viewers, ...


Creating a license description file


Always use existing license description files whenever possible. (See Obtaining existing license description files) Since LIDESC is an open architecture, you can create a description file when no existing one is available. Mib Software can assist you in this task. (See LIDESC Downloads and Services.) If done accurately, you will need to perform this task only once for each license.

CAUTION: license compatibility reports are only as good as the description files created by human interpretation of license texts. You should obtain them from trusted suppliers, and be careful when creating them yourself. If a symbol list for a license is empty or incomplete, it is not possible to accurately report incompatibility.

Steps to create license description files


1. Create a common directory with a name unlikely to be chosen by any other publisher to hold all locally created license description files. This name will be used as a prefix. When you distribute the files, a unique name reduces the risk that extra work will be needed to accommodate combined works with file name collisions.

2. Identify each license with a unique short name, which will be the base name for the files. The base name is also included in the macro names defined by the license description file.

3. Prepare an ASCII-only copy of the license text, with no line wider than 76 characters. (LIDESC does not need this, but this will ensure that everyone who receives a copy of the license will be able to read it.)

4. Create basic license description files by piping the license text into the LIDESC utility.
	lidesc -d{license-directory} create {prefix} {shortname} <{license-text}
The license description will be stored at license-directory/shortname.lh The license text will be stored at license-directory/shortname.txt. If the files exist, LIDESC refuses to overwrite and reports an error.

IMPORTANT: The only copyright statements in the license text file should be for the license itself, not the software being licensed.

5. Fill in the symbolic TAGS and COMBINE strings in the .lh file. Filling in these description strings is what enables license compatibility reporting and other features.
You may wish to try to find a description file which is similar to what you want and use it as a guide. IMPORTANT: license compatibility reports are only as good as the symbol lists. It is better to leave a symbol list empty than to create an inaccurate list.
Creating a LIDESC_TAGS string
Creating a LIDESC_COMBINE string
Formal syntax of the TAGS strings in LIDESC license description files

Use the standard librock_ tags whenever possible. For local needs, you can define other tags. (See Creating additional symbolic tags for important guidelines.)

When performing license compatibility checks, LIDESC uses the CHECKED_TAGS string to determine which symbols are definitely not in the TAGS string. When you add a symbol to TAGS, or specifically know that it does not apply, add an entry to CHECKED_TAGS, of the form
    ct(SYMBOL)

6. Once you start using the description files, if you need to update the license text, you should create new files with a new base name. This is because the original license text must be available in order to look up files which have been stamped using it.

7. If you are specifying local policy you may wish to look at the closed source compatibility test as an example. (These files define a COMBINE string, but leave other variables undefined so they are not mistaken for actual licenses.)

Next topic: Formal syntax of the TAGS strings in LIDESC license description files
Up to: LIDESC User Documentation



Librock LIDESC. Software License Analyzer and Compatibility Reporter
Copyright 2001-2002, Forrest J. Cavalier III, Mib Software
You may reproduce verbatim copies of this page, but changing it is not allowed.
Email: Contact