[kepler-dev] Copyrights and the about: facility

Christopher Brooks cxh at eecs.berkeley.edu
Mon Dec 12 12:17:58 PST 2005


As a proposed feature, I modified the Kepler configuration.xml and
added copyright.htm so that Kepler can take advantage of the Ptolemy
II about: facility that helps handle copyright issues.

The problem is that packages such as Ptolemy and Kepler include
copyrighted software from various sources.  Each package has
a different copyright that usually must be displayed somewhere                
in the release.                                             

I hacked up the about:copyright facilty to help handle this.  The
current implementation is not perfect, but it helps.

Here's how it works.

If a URL starts with "about:", then code in ptolemy.actor.gui
specially interprets it.  

"about:copyright" creates a page that includes links to some base
copyrights, such as the Ptolemy copyright and the Aelfred copyright.
It also looks for particular actors and if those actors are found, it
includes a link to the appropriate copyright.  One issue here is
that searching for the actors can take time, the user might notice a lag.

If the configuration includes a property called _applicationCopyrights
then that the value of that parameter is assumed to be an array of
records of the form 
{{actor="dot.separated.actor.class.name", copyright="relative/url/to/copyright.htm"}...}

For testing purposes, I added the _applicationCopyrights parameter to
the Kepler configuration with:
{{actor="util.ImageJActor", copyright="imagej-copyright.htm"}}

So, if the util.ImageJActor actor is present, then going to about:copyright
will include a link to the javadoc and also to imagej-copyright.htm
imagej-copyright.htm does not currently exist, but usually this file 
would include the ImageJ jar file copyright.

One issue as that the link to the javadoc defaults to pointing to the
Ptolemy website if the documentation cannot be found.  We could add
yet another parameter that would send this traffic to the Kepler website.
I'll do this later.

So, to try this out, update your Kepler tree, run "ant run-dev"
and then at the bottom of the intro.htm, follow the 
"This software is protected by this license." link.

On the Kepler copyright page, follow the link at the bottom:
"Kepler is based on Ptolemy II"
This will bring you to the about:copyright page.

On other cool feature is at the bottom of the Kepler copyright page
is "Other information about this configuration"

This brings up a page that includes a link (about:configuration) to
expand the configuration, which is a good way to quickly test for
missing classes.  For Kepler, this will not expand to include all the
actors the way it does under Ptolemy, but it still has value.

There are also links to expand all the .xml files listed in a file.
For example, "about:demos#ptolemy/configs/kepler/intro.htm"
will expand all the workflows listed on the Kepler splash page.
One can then run all the demos.  

Also, "about:links#ptolemy/configs/kepler/intro.htm" will open
up all the .htm, .pdf and .xml links on the splash page, which
is a good way to check documentation.

In both cases, the expansion is only one level deep, but I use it
all the time to check releases. 

I don't think this is a perfect solution but it can be used to
help address the copyright problem.  Further refinement would help.
What would need to be done is that for each actor that uses a third
party jar file we would need to create a web page that includes
the copyright.  This takes quite a bit of work, but helps ensure
that the copyright is actually shipped with the release.

If this utility is not of interest, then feel free to remove
the link at the bottom of copyright.htm. 

_Christopher



More information about the Kepler-dev mailing list