summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAkita Noek <akitanoek@gmail.com>2016-06-27 16:53:06 +0200
committerGitHub <noreply@github.com>2016-06-27 16:53:06 +0200
commit073d7033d5b90c1926939ee16478f961e85033b7 (patch)
treec68a25ec8731042c6bfe47be91160a8a7eaec322 /tools
parentMerge pull request #2646 from anoek/2628 (diff)
parentRemove old license auditor thing. (diff)
downloadawx-073d7033d5b90c1926939ee16478f961e85033b7.tar.xz
awx-073d7033d5b90c1926939ee16478f961e85033b7.zip
Merge pull request #2615 from wenottingham/nuke-a-thing
Remove old license auditor thing.
Diffstat (limited to 'tools')
-rw-r--r--tools/license-audit/TowerLicenses.csv153
-rwxr-xr-xtools/license-audit/license-audit.py256
2 files changed, 0 insertions, 409 deletions
diff --git a/tools/license-audit/TowerLicenses.csv b/tools/license-audit/TowerLicenses.csv
deleted file mode 100644
index 5a06eb30ce..0000000000
--- a/tools/license-audit/TowerLicenses.csv
+++ /dev/null
@@ -1,153 +0,0 @@
-Babel,BSD,http://babel.pocoo.org/,pip
-Django,BSD,http://www.djangoproject.com/,pip
-Markdown,BSD,http://packages.python.org/Markdown/,pip
-PrettyTable,BSD,http://code.google.com/p/prettytable/,pip
-PyYAML,MIT,http://pyyaml.org/wiki/PyYAML,pip
-South,Apache 2.0,http://south.aeracode.org/,pip
-amqp,LGPL 2.1,http://github.com/celery/py-amqp,pip
-angular,MIT,https://github.com/angular/angular.js.git,js
-angular-animate,MIT,https://github.com/angular/angular.js.git,js
-angular-codemirror,MIT,https://github.com/chouseknecht/angular-codemirror,js
-angular-cookies,MIT,https://github.com/angular/angular.js.git,js
-angular-filters,Apache 2.0,https://github.com/frapontillo/angular-filters,js
-angular-md5,MIT,https://github.com/gdi2290/angular-md5.git,js
-angular-mocks,MIT,https://github.com/angular/angular.js.git,js
-angular-moment,MIT,http://github.com/urish/angular-moment,js
-angular-resource,MIT,https://github.com/angular/angular.js.git,js
-angular-route,MIT,https://github.com/angular/angular.js.git,js
-angular-sanitize,MIT,https://github.com/angular/angular.js.git,js
-angular-scheduler,MIT,https://github.com/chouseknecht/angular-scheduler,js
-angular-tz-extensions,MIT,https://github.com/chouseknecht/angular-tz-extensions,js
-ansiconv,MIT,https://bitbucket.org/dhrrgn/ansiconv,pip
-anyjson,BSD,http://bitbucket.org/runeh/anyjson/,pip
-apache-libcloud,Apache 2.0,http://libcloud.apache.org/,pip
-argparse,PSF,http://code.google.com/p/argparse/,pip
-azure,Apache 2.0,https://github.com/WindowsAzure/azure-sdk-for-python,pip
-billiard,BSD,http://github.com/celery/billiard,pip
-bootstrap,MIT,https://github.com/twbs/bootstrap.git,js
-bootstrap-datepicker,Apache 2.0,https://github.com/eternicode/bootstrap-datepicker,js
-boto,MIT,https://github.com/boto/boto/,pip
-celery,BSD,http://celeryproject.org,pip
-cffi,MIT,http://cffi.readthedocs.org,pip
-cliff,Apache 2.0,https://launchpad.net/python-cliff,pip
-cmd2,MIT,http://packages.python.org/cmd2/,pip
-codemirror,MIT,https://github.com/codemirror/CodeMirror.git,js
-components-font-awesome,SIL Open Font License and MIT,http://fortawesome.github.io/Font-Awesome/,js
-cryptography,BSD or Apache 2.0,https://github.com/pyca/cryptography,pip
-d2to1,BSD,http://pypi.python.org/pypi/d2to1,pip
-d3,BSD,https://github.com/mbostock/d3.git,js
-distribute,PSF or ZPL,http://packages.python.org/distribute,pip
-django-auth-ldap,BSD,http://bitbucket.org/psagers/django-auth-ldap/,pip
-django-celery,BSD,http://celeryproject.org,pip
-django-crum,BSD,https://projects.ninemoreminutes.com/projects/django-crum/,pip
-django-extensions,MIT,http://github.com/django-extensions/django-extensions,pip
-django-jsonfield,BSD,http://bitbucket.org/schinckel/django-jsonfield/,pip
-django-polymorphic,BSD,https://github.com/chrisglass/django_polymorphic,pip
-django-qsstats-magic,MIT,http://bitbucket.org/kmike/django-qsstats-magic/,pip
-django-rest-framework-mongoengine,MIT,https://github.com/umutbozkurt/django-rest-framework-mongoengine,pip
-django-split-settings,BSD,http://github.com/2general/django-split-settings,pip
-django-taggit,BSD,http://github.com/alex/django-taggit/tree/master,pip
-django_polymorphic,BSD,https://github.com/chrisglass/django_polymorphic,pip
-djangorestframework,BSD,http://www.django-rest-framework.org,pip
-dogpile.cache,BSD,http://bitbucket.org/zzzeek/dogpile.cache,pip
-dogpile.core,BSD,http://bitbucket.org/zzzeek/dogpile.core,pip
-ember-cli-test-loader,MIT,https://github.com/rjackson/ember-cli-test-loader,js
-enum34,BSD,https://pypi.python.org/pypi/enum34,pip
-gevent,MIT,http://www.gevent.org/,pip
-gevent-socketio,BSD,https://github.com/abourget/gevent-socketio,pip
-gevent-websocket,Apache 2.0,https://bitbucket.org/Jeffrey/gevent-websocket,pip
-greenlet,MIT,https://github.com/python-greenlet/greenlet,pip
-httplib2,MIT,https://github.com/jcgregorio/httplib2,pip
-idna,BSD,https://github.com/kjd/idna,pip
-importlib,PSF,https://pypi.python.org/pypi/importlib,pip
-ipaddress,PSF,https://github.com/phihag/ipaddress,pip
-ipy,BSD,https://github.com/autocracy/python-ipy,pip
-iso8601,MIT,https://bitbucket.org/micktwomey/pyiso8601,pip
-isodate,BSD,http://cheeseshop.python.org/pypi/isodate,pip
-jQuery.dotdotdot,MIT and GPL (*Ansible licenses via MIT),https://github.com/BeSite/jQuery.dotdotdot,js
-javascript-detect-element-resize,MIT,https://github.com/sdecima/javascript-detect-element-resize,js
-jquery,MIT,https://github.com/jquery/jquery,js
-jquery-ui,MIT,http://jqueryui.com/,js
-jqueryui,MIT,http://jqueryui.com/,js
-js-yaml,MIT,https://github.com/nodeca/js-yaml,js
-jsonlint,MIT,https://github.com/zaach/jsonlint.git,js
-jsonpatch,BSD,https://github.com/stefankoegl/python-json-patch,pip
-jsonpointer,BSD,https://github.com/stefankoegl/python-json-pointer,pip
-jsonschema,MIT,http://github.com/Julian/jsonschema,pip
-kapusta-jquery.sparkline,BSD,http://omnipotent.net/jquery.sparkline/,js
-keyring,PSF and MIT,http://bitbucket.org/kang/python-keyring-lib,pip
-kombu,BSD,http://kombu.readthedocs.org,pip
-loader.js,MIT,https://github.com/stefanpenner/loader.js,js
-lodash,MIT,https://github.com/lodash/lodash,js
-lrInfiniteScroll,MIT,https://github.com/lorenzofox3/lrInfiniteScroll,js
-lxml,BSD,http://lxml.de/,pip
-mock,BSD,http://www.voidspace.org.uk/python/mock/,pip
-moment,MIT,http://momentjs.com/,js
-mongoengine,MIT,http://mongoengine.org/,pip
-msgpack-python,Apache 2.0,http://msgpack.org/,pip
-netaddr,BSD,https://github.com/drkjam/netaddr/,pip
-netifaces,MIT,https://bitbucket.org/al45tair/netifaces,pip
-nvd3,Apache 2.0,http://www.nvd3.org,js
-ordereddict,MIT,https://pypi.python.org/pypi/ordereddict,pip
-os-client-config,Apache 2.0,http://www.openstack.org/,pip
-os-diskconfig-python-novaclient-ext,Apache 2.0,https://github.com/rackerlabs/os_diskconfig_python_novaclient_ext,pip
-os-networksv2-python-novaclient-ext,Apache 2.0,https://github.com/rackerlabs/os_networksv2_python_novaclient_ext,pip
-os-virtual-interfacesv2-python-novaclient-ext,Apache 2.0,https://github.com/rackerlabs/os_virtual_interfacesv2_ext,pip
-os_diskconfig_python_novaclient_ext,Apache 2.0,https://github.com/rackerlabs/os_diskconfig_python_novaclient_ext,pip
-os_networksv2_python_novaclient_ext,Apache 2.0,https://github.com/rackerlabs/os_networksv2_python_novaclient_ext,pip
-os_virtual_interfacesv2_python_novaclient_ext,Apache 2.0,https://github.com/rackerlabs/os_virtual_interfacesv2_ext,pip
-oslo.config,Apache 2.0,https://launchpad.net/oslo,pip
-oslo.i18n,Apache 2.0,http://launchpad.net/oslo,pip
-oslo.serialization,Apache 2.0,http://launchpad.net/oslo,pip
-oslo.utils,Apache 2.0,http://launchpad.net/oslo,pip
-pbr,Apache 2.0,http://pypi.python.org/pypi/pbr,pip
-pexpect,ISC,http://pexpect.readthedocs.org/,pip
-pip,MIT,http://www.pip-installer.org,pip
-prettytable,BSD,http://code.google.com/p/prettytable/,pip
-psphere,Apache 2.0,https://github.com/jkinred/psphere,pip
-psycopg2,LGPL with exceptions or ZPL,http://initd.org/psycopg/,pip
-pyOpenSSL,Apache 2.0,https://github.com/pyca/pyopenssl,pip
-pyasn1,BSD,http://sourceforge.net/projects/pyasn1/,pip
-pycparser,BSD,https://github.com/eliben/pycparser,pip
-pycrypto,Public domain,http://www.pycrypto.org/,pip
-pymongo,Apache 2.0,http://github.com/mongodb/mongo-python-driver,pip
-pyparsing,MIT,http://pyparsing.wikispaces.com/,pip
-pyrax,Apache 2.0,https://github.com/rackspace/pyrax,pip
-python-cinderclient,Apache 2.0,http://www.openstack.org/,pip
-python-dateutil,BSD,https://dateutil.readthedocs.org,pip
-python-glanceclient,Apache 2.0,http://www.openstack.org/,pip
-python-ironicclient,Apache 2.0,http://www.openstack.org/,pip
-python-keystoneclient,Apache 2.0,http://www.openstack.org/,pip
-python-ldap,Python style,http://www.python-ldap.org/,pip
-python-neutronclient,Apache 2.0,http://www.openstack.org/,pip
-python-novaclient,Apache 2.0,https://git.openstack.org/cgit/openstack/python-novaclient,pip
-python-swiftclient,Apache 2.0,http://www.openstack.org/,pip
-python-troveclient,Apache 2.0,http://www.openstack.org/,pip
-pytz,MIT,http://pythonhosted.org/pytz,pip
-pywinrm,MIT,http://github.com/diyan/pywinrm/,pip
-pyzmq,LGPL+BSD,http://github.com/zeromq/pyzmq,pip
-rackspace-auth-openstack,Apache 2.0,https://github.com/rackerlabs/rackspace-auth-openstack,pip
-rackspace-novaclient,Apache 2.0,https://github.com/rackerlabs/rackspace-novaclient,pip
-rax_default_network_flags_python_novaclient_ext,Apache 2.0,https://github.com/rackerlabs/rax_default_network_flags_python_novaclient_ext,pip
-rax_scheduled_images_python_novaclient_ext,Apache 2.0,https://github.com/rackspace-titan/rax_scheduled_images_python_novaclient_ext,pip
-redis,MIT,http://github.com/andymccurdy/redis-py,pip
-requests,Apache 2.0,http://python-requests.org,pip
-rrule,BSD,https://github.com/jakubroztocil/rrule.git,js
-scrollto,MIT,https://github.com/balupton/jquery-scrollto,js
-select2,MIT,https://github.com/chrisjbaik/select2.git,js
-setuptools,PSF or ZPL,https://bitbucket.org/pypa/setuptools,pip
-shade,Apache 2.0,http://ci.openstack.org/,pip
-simplejson,MIT,http://github.com/simplejson/simplejson,pip
-six,MIT,http://pypi.python.org/pypi/six/,pip
-sizzle,MIT,https://github.com/jquery/sizzle.git,js
-socket.io-client,MIT,https://github.com/Automattic/socket.io-client.git,js
-stevedore,Apache 2.0,https://github.com/dreamhost/stevedore,pip
-suds,LGPL 3,https://fedorahosted.org/suds,pip
-superlance,BSD,http://supervisord.org,pip
-timezone-js,Apache 2.0,https://github.com/mde/timezone-js.git,js
-twitter,MIT,http://getbootstrap.com,js
-underscore,MIT,https://github.com/jashkenas/underscore,js
-warlock,Apache 2.0,http://github.com/bcwaldon/warlock,pip
-wheel,MIT,http://bitbucket.org/pypa/wheel/,pip
-wsgiref,PSF or ZPL,http://cheeseshop.python.org/pypi/wsgiref,pip
-xmltodict,MIT,https://github.com/martinblech/xmltodict,pip
diff --git a/tools/license-audit/license-audit.py b/tools/license-audit/license-audit.py
deleted file mode 100755
index e5a71ec8e2..0000000000
--- a/tools/license-audit/license-audit.py
+++ /dev/null
@@ -1,256 +0,0 @@
-#!/usr/bin/python
-#
-# Parse out as much licensing information as we can from our vendored directories to create a license report.
-# You may need to edit this afterwords to replace any 'UNKNOWN' with actual data.
-
-import csv
-import fnmatch
-import json
-import os
-import re
-import sys
-
-import yolk.pypi
-
-def usage():
- print "license-audit.py <path to tower source> <infile> [<outfile>]"
- sys.exit(1)
-
-def read_requirements(towerpath):
- filename = '%s/requirements/requirements.txt' % (towerpath,)
- ret = {}
- try:
- f = open(filename)
- except:
- print "failed to open %s" %(filename,)
- return None
- data = f.readlines()
- f.close()
- for line in data:
- if line[0] == '#':
- continue
- if '==' in line:
- m = re.match(r"(\S+)==(\S+)",line)
- if m:
- name = m.group(1)
- version = m.group(2)
- item = {}
- item['name'] = name
- item['version'] = version
- ret[name] = item
- continue
- elif line.startswith("git+https"):
- l = line.rsplit('/',1)
- m = re.match(r"(\S+).git@(\S+)#",l[1])
- if m:
- name = m.group(1)
- version = m.group(2)
- if version.startswith('tower_'):
- version = version[6:]
- item = {}
- if name == 'python-ipy':
- name='ipy'
- item['name'] = name
- item['version'] = version
- if len(version) > 20:
- # it's a sha1sum, read it off the egg spec
- lver = l[1].rsplit('-',1)
- if lver[1] == l[1]:
- lver = l[1].rsplit('_',1)
- item['version'] = lver[1][:-1]
- ret[name] = item
- continue
- else:
- item = {}
- item['name'] = line[:-1]
- item['version'] = ''
- ret[name] = item
- continue
- return ret
-
-def get_js(towerpath):
- excludes = [ ]
- directory = '%s/awx/ui/static/lib' % (towerpath,)
- dirlist = os.listdir(directory)
- ret = {}
- for item in dirlist:
- use = True
- for exclude in excludes:
- if fnmatch.fnmatch(item, exclude):
- use = False
- if use:
- try:
- bowerfile = open('%s/%s/bower.json' %(directory, item))
- except:
- # add dummy entry (should read package.json if it exists)
- pkg = {}
- pkg['name'] = item
- pkg['license'] = 'UNKNOWN'
- pkg['url'] = 'UNKNOWN'
- ret[item] = pkg
- continue
- pkginfo = json.load(bowerfile)
- bowerfile.close()
- pkg = {}
- pkg['name'] = item
- if 'license' in pkginfo:
- pkg['license'] = normalize_license(pkginfo['license'])
- else:
- pkg['license'] = 'UNKNOWN'
- if 'homepage' in pkginfo:
- pkg['url'] = pkginfo['homepage']
- elif 'url' in pkginfo:
- pkg['url'] = pkginfo['url']
- else:
- pkg['url'] = 'UNKNOWN'
- ret[item] = pkg
- return ret
-
-
-def search_requirements(requirements_dict, path):
- for item in requirements_dict.values():
- if item['path'] == path:
- return True
- return False
-
-def normalize_license(license):
- if not license:
- return 'UNKNOWN'
- license = license.replace('"','')
- if license == 'None':
- return 'UNKNOWN'
- if license in ['Apache License, Version 2.0', 'Apache License (2.0)', 'Apache License 2.0', 'Apache-2.0', 'Apache License, v2.0', 'APL2']:
- return 'Apache 2.0'
- if license == 'ISC license':
- return 'ISC'
- if license == 'MIT License' or license == 'MIT license':
- return 'MIT'
- if license in ['BSD License', 'Simplified BSD', 'BSD-derived (http://www.repoze.org/LICENSE.txt)', 'BSD-like', 'Modified BSD License']:
- return 'BSD'
- if license == 'LGPL':
- return 'LGPL 2.1'
- # Don't embed YOUR ENTIRE LICENSE in your metadata!
- if license.find('Copyright 2011-2013 Jeffrey Gelens') != -1:
- return 'Apache 2.0'
- if license.find('https://github.com/umutbozkurt/django-rest-framework-mongoengine/blob/master/LICENSE') != -1:
- return 'MIT'
- if license == '"BSD or Apache License, Version 2.0"':
- return 'BSD or Apache 2.0'
- if license == 'Modified BSD License':
- return 'BSD'
- if license == 'Python Software Foundation License':
- return 'PSF'
- return license
-
-def read_csv(filename):
- ret = {}
- f = open(filename)
- if not f:
- print "failed to open %s" %(filename,)
- return None
- reader = csv.reader(f, delimiter=',')
- for line in reader:
- item = {}
- item['name'] = line[0]
- item['license'] = line[1]
- item['url'] = line[2]
- item['source'] = line[3]
- ret[line[0]] = item
- return ret
-
-def write_csv(filename, data):
- keys = data.keys()
- keys.sort()
- csvfile = open(filename, 'wb')
- writer = csv.writer(csvfile, delimiter = ',', lineterminator = '\n')
- for key in keys:
- item = data[key]
- l = (item['name'],item['license'],item['url'],item['source'])
- writer.writerow(l)
- csvfile.close()
-
-
-if len(sys.argv) < 3:
- usage()
-
-if len(sys.argv) < 4:
- outputfile = sys.stdout
-else:
- outputfile = sys.argv[3]
-
-tower_path = sys.argv[1]
-
-# Read old license CSV
-olddata = read_csv(sys.argv[2])
-
-# Read python site-packages README requirements file
-requirements = read_requirements(tower_path)
-
-if not olddata or not requirements:
- print "No starting data"
- sys.exit(1)
-
-# See if there's pip things in our current license list that we don't have now
-reqs = requirements.keys()
-for item in olddata.values():
- if item['source'] == 'pip' and item['name'] not in reqs:
- print "Potentially no longer vendoring %s" %(item['name'],)
-
-# Get directory of vendored JS things from the js dir
-js_packages = get_js(tower_path)
-
-# See if there's JS things in our current license list that we don't have now
-js = js_packages.keys()
-for item in olddata.values():
- if item['source'] == 'js' and item['name'] not in js:
- print "No longer vendoring %s" %(item['name'],)
-
-# Take the requirements file, and get license information where necessary
-cs = yolk.pypi.CheeseShop()
-for req in requirements.values():
- # name sanitization
- (pname, pvers) = cs.query_versions_pypi(req['name'])
- cs_info = cs.release_data(pname,req['version'])
- if not cs_info:
- print "Couldn't find '%s==%s'" %(req['name'],req['version'])
- if req['name'] not in olddata:
- print "... and it's not in the current data. This needs fixed!"
- sys.exit(1)
- continue
- license = normalize_license(cs_info['license'])
- url = cs_info['home_page']
- try:
- data = olddata[req['name']]
- except:
- print "New item %s" %(req['name'])
- item = {}
- item['name'] = req['name']
- item['license'] = license
- item['url'] = url
- item['source'] = 'pip'
- olddata[req['name']] = item
- continue
- if license != 'UNKNOWN' and license != data['license']:
- data['license'] = license
- if url != 'UNKNOWN' and url != data['url']:
- data['url'] = url
-
-# Update JS package info
-for pkg in js:
- if pkg in olddata:
- data = olddata[pkg]
- new = js_packages[pkg]
- if new['license'] != 'UNKNOWN' and new['license'] != data['license']:
- data['license'] = new['license']
- if new['url'] != 'UNKNOWN' and new['url'] != data['url']:
- data['url'] = new['url']
- else:
- item = {}
- item['name'] = pkg
- item['license'] = js_packages[pkg]['license']
- item['url'] = js_packages[pkg]['url']
- item['source'] = 'js'
- olddata[pkg] = item
- continue
-
-write_csv(outputfile, olddata)