
To Whom it May Concern: 


What This Is and How to Work It
-------------------------------

This directory in the FOSSology source tree
(agents/nomos) contains work for a new license analysis agent. This
code originated from a standalone license-scanning tool called Nomos.

At this point in time, the code is not integrated with the rest of FOSSology. 
It uses it's own non-standard Makefile to build a single standalone 
executable.

To try it out...

   % make
   % ./nomos <file_to_be_scanned>

The file to be scanned should be a regular file (binary or text). In
particular, it should not be an archive. No unpacking is done; the file
is scanned as is.

There are currently no command-line options.


Note About the Source Code and Impending Changes
------------------------------------------------

Because this code came from another tool similar to FOSSology, but with
different structure and conventions, the process of converting it into 
a full-fledged FOSSology agent is ongoing.

With that in mind, comments with "CDB" in them are bread crumbs I've 
left in places where I was unsure about a change I made or to note a potential
refinement (CDB == my initials).



To Do's
-------

- Change all trace calls at beginning of functions to use traceFunc()
  (defined in util.c)
 
- Either add a command-line option to set gl.ptswitch or remove all the
  PROC_TRACE_SWITCH #ifdefs

- Go back and edit CFLAGS options in Makefile to document and accurately
  represent what is still operable.

- Document all Makefile targets

- Remove all HP_INTERNAL and CUSTOMER_VERSION references.

- Check and remove all unused field of the gl global variable structure.

- Migrate to standard FOSSology makefile structure and system.
 


Changes
-------

[This is not at all complete. There have been a lot of changes.]

- Changed ls_t to licSpec_t.
- Changed lic_t to licText_t.


Questions
---------

- Where the hell is checkstrings script? Do we want it?
- SVN_REV #ifdef stolen from other agent code. Where does this get
  #defined?
- Why does nomos set the LANG environment variable?
- Implications of removing custom magic file?
- May want to re-add function validateTools someplace?
- Do we want to keep the Log functionality, but just have the logfile
  be in another place? (Right now, the log stuff has been removed.)
- Do we really need the PROC_TRACE_SWITCH compile #define?


#defines Used
-------------

[Also incomplete.]

BRIEF_LIST
SHOW_LOCATION		Extra code to pinpoint license location. Should
			always be true.
PROC_TRACE
PROC_TRACE_SWITCH	Gives command option for tracing on/off
DEBUG
GLOBAL_DEBUG		Debug access to global variable structure
MEMORY_TRACING		Use Debug Malloc wrapper
STOPWATCH		Performance Measurement
TIMING			Performance Measurement (code has to be added to
places where you want to measure).


Changes made from my nomos_experimental version
-----------------------------------------------

Remove all code #ifdef'd by USE_MMAP 

