On Fri, Jun 02, 2006 at 10:17:46AM -0400, Noel J. Bergman wrote:
> Leo Simons wrote:
> > Let's write a piece of software to do the auditing for us.
>
> How do you propose to do this? How do you propose to audit the code and
> know which pieces of code require which license and whether or not that
> license is conforming, and properly documented? Not saying that this can't
> be done, but am asking how you propose to do it.
Hadn't thought about it a whole lot yet. I figured the question was coming so
I typed up some random things on the train...not sure whether it makes sense
but I'm confident it can be done.
cheers!
LSD
----
The Magnificient Release Licensing Assistant
----
--> takes a tarball
--> check tarball name
--> has "incubating" in there
--> checks there is a LICENSE.txt containing at least all of the
apache license, v2.0
--> checks there is a NOTICE.txt containing at least all of the
policy-required ASF copyright statements
--> look for any file which is easily identified as "potentially
third party" (for java projects, this typically means .jars.
For other projects, who knows...)
--> for each such file
--> compare (eg the SHA1 or MD5) with a database of
'known' ASF artifacts (eg based on our maven repo
metadata)
--> if match
--> if "SNAPSHOT", issue warning
--> if "incubating", issue warning
--> if no match
--> compare the name of the file
--> if match, issue error
--> if no match
--> compare with a database of known
'external' artifacts
--> similar policies
--> for known non-apache license
and/or copyright, inspect
LICENSE.txt/NOTICE.txt/legal
subdir (as per 3rd party
policy)
--> if still no match
--> issue warning, request addition
of metadata
--> tool for adding metadata in
some way (webapp? Integrates
with maven repo manager?)
--> check availability of PGP file
--> check validity
--> check availability of SHA1 file
--> check validity
--> etc etc
Frequently Imagined Answers
---
Is this hard to implement?
No!
--> some forloops
--> some switch/case/if/then/else
--> some regular expressions
--> some clever use of 'diff'
--> some file i/o
--> availability of maven POM metadata (perhaps with an
extension or two) is *key*
Why no 'template' tool instead?
--> no idea! Lets do that too!
Why not as a maven subproject?
--> no idea! Lets see if that makes sense!
Why write it using maven?
--> it somehow seems sensible. It looks like our non-java projects tend to
get this right anyhow, and most of our java projects use maven for their
builds and stuff anyway.
But I want to do it using technology X!
--> Cool! Please do. Way to go! Less work for me!
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]