COMP 5900, Open Source Software

Assignment #1

School of Computer Science

Carleton University

Due Sept 29, 2010

The purpose of this assignment is to make you familiar with open source software licenses and Eclipse plug-ins.

1) Compare and contrast (1500-2000 words) the open source licenses MIT, BSD, GPL, LGPL, Creative Commons to the Eclipse Public License. Make sure to include a table (rows heading is feature, column heading is license) that summaries your discussion. Submit the answer to this question as an HTML document.

2) Propose an XML specification that will handle and identify the content of an Open Source License. Make sure NOT to include tags that our out of the scope with the Open Source philosphy. Examples of tags discussed in class are below. The overall goal is to capture an annotation of a license with the intent to clarify the implications of the license. 

Add your tags to a copy of the Eclipse Public License.

3) Write an Eclipse plug-in that contributes a view to the Eclipse workbench. Your view should implement the behavior similar to the following standalone ToDoList view. Note that the Add button is only enabled when the user enters a new item to add. The Delete button is enabled only when an item is selected in the list. The Delete All button is enabled only when there is at least one item in the list. Submit the answer to this question as an Eclipse Plug-in. Use SampleView.java as your starting point.

Group 1 Tags

* license
* version
* url
* patent protection
* commercial
* published date
* order
* permissions

Group 2 Tags

<title></title>
<author></author>
<version><branch></branch></version>
<date></date>

<derivedWorks>allow|disallow</derivedWorks>
<!-- Are derived works allowed -->

<allowOtherLicenses>true|false</allowOtherlicenses>
<!-- can other licenses be used in the software -->

<restrictions>
<none />
<sourceCodeModifiable></sourceCodeModifiable>
</restrictions>
<!-- restrictions on useage of the software -->

<includeSource>true|false</includeSource>
<!-- Is the source code included with the software -->

<royalties>allow|disallow</royalties>
<!-- Are any royalties attached to the software -->

<includeLicenseInPackage>true|false</includeLicenceInPackage>
<!-- Include this license in any distribution of the software -->

<officialSource>true|false</officialSource>
<!-- Is it the official/original source code -->

<contractBound></contractBound>
<!-- Do you need to agree to the license before compiling or installing -->

<!-- needs structure, i.e. begin license and end license -->
<!-- needs subtags within parent tags to capture more details -->

Group 3 Tags

<license>
<license name>
<license date>
<license version>
<license URL>
<license description>
<disclosure type> e.g. infectious
<distributable>
<rule>...</rule>
<rule>...</rule>
</distributable>
<source included>true or false

<project title>
<project version>
<project date & distribution>
<project author & contributors>
<project URLs (main site, src URL, etc...)>

(optionally)
<files within your project scope>
<file>
...
full path & name
<license type>
<rules>
</file>
</files>

<derived work (a.k.a. any OSS that your project makes use of)>
<project>
<project title>
<license type>
</project>
<project>
...
</project>

</derived work>

<license>

Group 4 Tags

<license>
<license_url>
<license_version>
<license_description>
<license_description>
<project>
<title>
<derived works>
<licence type>
<author>
<date>
<project_description>
<project_version>
<source_url>
<files> (optional)
<liscence_type>
<liscence_rules>
<disclosure>
<distributables>
<rules>

Group 5 Tags

Group 6 Tags

 


Copyright © 2007, 2008, 2009, 2010 School of Computer Science
Last updated Jan 4, 2010