Skip to content

Commit

Permalink
Add a license check to tidy. rust-lang#4018
Browse files Browse the repository at this point in the history
  • Loading branch information
brson committed Jan 18, 2013
1 parent 1244c0b commit 6b6acde
Show file tree
Hide file tree
Showing 37 changed files with 160 additions and 17 deletions.
1 change: 1 addition & 0 deletions src/etc/check-summary.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

import sys

Expand Down
1 change: 1 addition & 0 deletions src/etc/combine-tests.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

# this combines all the working run-pass tests into a single large crate so we
# can run it "fast": spawning zillions of windows processes is our major build
Expand Down
2 changes: 2 additions & 0 deletions src/etc/extract-tests.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# xfail-license

# Script for extracting compilable fragments from markdown
# documentation. See prep.js for a description of the format
# recognized by this tool. Expects a directory fragements/ to exist
Expand Down
1 change: 1 addition & 0 deletions src/etc/extract_grammar.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

# This script is for extracting the grammar from the rust docs.

Expand Down
1 change: 1 addition & 0 deletions src/etc/get-snapshot.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

import os, tarfile, re, shutil, sys
from snapshot import *
Expand Down
1 change: 1 addition & 0 deletions src/etc/latest-unix-snaps.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

import os, tarfile, hashlib, re, shutil, sys
from snapshot import *
Expand Down
72 changes: 72 additions & 0 deletions src/etc/licenseck.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Copyright 2013 The Rust Project Developers. See the COPYRIGHT
# file at the top-level directory of this distribution and at
# http://rust-lang.org/COPYRIGHT.
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.

license1 = """// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
"""

license2 = """// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
"""

license3 = """# Copyright 2013 The Rust Project Developers. See the COPYRIGHT
# file at the top-level directory of this distribution and at
# http://rust-lang.org/COPYRIGHT.
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.
"""

licenses = [license1, license2, license3]

exceptions = [
"rt/rust_android_dummy.cpp", # BSD, chromium
"rt/rust_android_dummy.h", # BSD, chromium
"rt/isaac/randport.cpp", # public domain
"rt/isaac/rand.h", # public domain
"rt/isaac/standard.h", # public domain
]

def check_license(name, contents):
valid_license = False
for a_valid_license in licenses:
if contents.startswith(a_valid_license):
valid_license = True
break
if valid_license:
return True

for exception in exceptions:
if name.endswith(exception):
return True

firstlineish = contents[:100]
if firstlineish.find("xfail-license") != -1:
return True

return False

1 change: 1 addition & 0 deletions src/etc/make-snapshot.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

import snapshot, sys

Expand Down
1 change: 1 addition & 0 deletions src/etc/mirror-all-snapshots.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

import os, tarfile, hashlib, re, shutil
from snapshot import *
Expand Down
2 changes: 2 additions & 0 deletions src/etc/snapshot.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# xfail-license

import re, os, sys, glob, tarfile, shutil, subprocess, tempfile

try:
Expand Down
1 change: 1 addition & 0 deletions src/etc/sugarise-doc-comments.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

#
# this script attempts to turn doc comment attributes (#[doc = "..."])
Expand Down
30 changes: 28 additions & 2 deletions src/etc/tidy.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#!/usr/bin/env python
# xfail-license

import sys, fileinput, subprocess, re
from licenseck import *

err=0
cols=78
Expand All @@ -13,14 +15,25 @@
true="true".encode('utf8')
autocrlf=result.strip() == true if result is not None else False

def report_err(s):
def report_error_name_no(name, no, s):
global err
print("%s:%d: %s" % (fileinput.filename(), fileinput.filelineno(), s))
print("%s:%d: %s" % (name, no, s))
err=1

def report_err(s):
report_error_name_no(fileinput.filename(), fileinput.filelineno(), s)

def do_license_check(name, contents):
if not check_license(name, contents):
report_error_name_no(name, 1, "incorrect license")


file_names = [s for s in sys.argv[1:] if (not s.endswith("_gen.rs"))
and (not ".#" in s)]

current_name = ""
current_contents = ""

try:
for line in fileinput.input(file_names,
openhook=fileinput.hook_encoded("utf-8")):
Expand All @@ -42,6 +55,19 @@ def report_err(s):

if line_len > cols:
report_err("line longer than %d chars" % cols)

if fileinput.isfirstline() and current_name != "":
do_license_check(current_name, current_contents)

if fileinput.isfirstline():
current_name = fileinput.filename()
current_contents = ""

current_contents += line

if current_name != "":
do_license_check(current_name, current_contents)

except UnicodeDecodeError, e:
report_err("UTF-8 decoding error " + str(e))

Expand Down
1 change: 1 addition & 0 deletions src/etc/unicode.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python
# xfail-license

# This digests UnicodeData.txt and DerivedCoreProperties.txt and emits rust
# code covering the core properties. Since this is a pretty rare event we
Expand Down
1 change: 0 additions & 1 deletion src/libcargo/cargo.rc
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- rust -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/libcore/bool.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- rust -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
2 changes: 1 addition & 1 deletion src/libcore/os.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2012 The Rust Project Developers.src/libcore/os.rs
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
Expand Down
10 changes: 10 additions & 0 deletions src/libcore/prelude.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// This file is imported into every module by default.

/* Reexported core operators */
Expand Down
1 change: 0 additions & 1 deletion src/libfuzzer/fuzzer.rc
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- rust -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/librustc/driver/driver.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- rust -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/librustc/rustc.rc
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- rust -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
10 changes: 10 additions & 0 deletions src/libstd/bigint.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

/*!
A Big integer (signed version: BigInt, unsigned version: BigUint).
Expand Down
10 changes: 10 additions & 0 deletions src/libstd/flatpipes.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

/*!
Generic communication channels for things that can be represented as,
Expand Down
9 changes: 9 additions & 0 deletions src/libstd/priority_queue.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

//! A priority queue implemented with a binary heap
Expand Down
1 change: 1 addition & 0 deletions src/rt/arch/arm/context.cpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// xfail-license

#include "context.h"
#include "../../rust_globals.h"
Expand Down
1 change: 1 addition & 0 deletions src/rt/arch/arm/context.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// -*- mode: c++ -*-
// xfail-license

#ifndef CONTEXT_H
#define CONTEXT_H
Expand Down
2 changes: 2 additions & 0 deletions src/rt/arch/arm/gpr.cpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// xfail-license

#include "gpr.h"

#define LOAD(rn) do { \
Expand Down
1 change: 1 addition & 0 deletions src/rt/arch/arm/gpr.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// xfail-license
// General-purpose registers. This structure is used during stack crawling.

#ifndef GPR_H
Expand Down
2 changes: 2 additions & 0 deletions src/rt/arch/arm/regs.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// xfail-license

#define RUSTRT_RBX 0
#define RUSTRT_RSP 1
#define RUSTRT_RBP 2
Expand Down
1 change: 0 additions & 1 deletion src/rt/arch/i386/context.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- mode: c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/rt/arch/x86_64/context.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- mode: c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/rt/rust_kernel.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/rt/rust_log.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/rt/sync/lock_and_signal.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/rt/sync/sync.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/rt/util/array_list.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/rt/util/hash_map.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down
1 change: 0 additions & 1 deletion src/rt/util/indexed_list.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// -*- c++ -*-
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
Expand Down

0 comments on commit 6b6acde

Please sign in to comment.