Hi Misha,

I think including this kind of script in the JDK is a great idea.

Follow-up work could include adding a script that would use this first script to verify the source files had the expected license. Such a check could be a make target run as part of the build.

Cheers,

-Joe

On 3/5/2012 4:20 PM, Misha Bykov wrote:

I need a reviewer for a new attached script for JDK8 infrastructure.

SUMMARY

Most of JDK source files are required to contain a legal approved license header. The content and the format of the header is pre-defined by legal and any alteration is not permitted.

At the moment JDK8 contains three templates for source license headers: gpl, gpl-cp and bsd.
The templates are located in $ROOT/make/templates directory:

$ ls $ROOT/make/templates
bsd-header  gpl-cp-header  gpl-header
$

It's recommended for a developer, when he introduced or modified source code files, to check whether a license header is precisely correct for every file he worked on.

The new script allows a JDK developer to check if the specified license header for a given file (or a set of files) matches the right header template.

NAME

lic_check.sh - JDK source code legal headers conformance verification

SYNOPSIS

lic_check.sh [-gpl] or [-gplcp] or [-bsd] file(s)

DESCRIPTION

The script for OpenJDK distribution to verify legal notices in a particular source file or a set of files.

The script must be located in the directory:

$ROOT/make/scripts

It uses templates from:

$ROOT/make/templates

The successful output example:

###
### Checking copyright notice in the file: filename.java
###
No differences encountered
SUCCESS: The license header for filename.java has been verified.

The unsuccessful output example if Oracle copyright string is missing or copyright years are not correct :

###
### Checking copyright notice in the file: filename.java
###
ERROR: Copyright string is not correct or missing in filename.java.

If the copyright string is correct, but the license header is not correct, the script should produce the "diff" output between a template in $ROOT/make/templates and the license header from the given file.

HOW TO TEST

1. Place the script into $ROOT/make/scripts in JDK8 source repository (otherwise it will not find $ROOT/make/templates and produce an error).
2. cd to the directory with the files to check license headers
3. $ROOT/make/scripts/lic_check.sh [-gpl] or [-gplcp] or [-bsd] filename(s)

Any questions or comments about bugs in the script, improvement suggestions, script style, etc. would be appreciated.

Thanks,
Misha

Reply via email to