proj/gentoo: Initial commit

This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.

This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.

Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
This commit is contained in:
Robin H. Johnson
2015-08-08 13:49:04 -07:00
commit 56bd759df1
97532 changed files with 3536859 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
DIST python-Levenshtein-0.10.2.tar.gz 45023 SHA256 49a3b3c3210157e2070eb46c0713e64f409efc8c9a7520632ddf16f8a9508bed SHA512 a5ad8e0f58f899152166683d4d38fa2df68150743631db282eeb1cfd29d8e3d0ddf83a4543d4322d1f29ff485ebc9d2605d1f25b5adfbad4c62be746812ff65d WHIRLPOOL 420e47c3d5da3ee833423668e6883e005659b16ec433143064498a5e2f85f0cc398a7e6654c5e6857810ff690836a72ed0c1f040d3dc485ab58f8570d91fb22a
DIST python-Levenshtein-0.11.1.tar.gz 35270 SHA256 7c194ae48457951b42e66188d9315ac28ed43d68ecc995fd82c1975ed1fbdd0e SHA512 335f29253ec7bba8d54881dfe093ac194626cdaad0cc6ed08327917d6187cdfe1fbb3d003744f991587f8dc800aa1d361e3aa0b276b31ecfe7a43d83ea0d660b WHIRLPOOL 34053f03dc123bb60a5a936b56d19cf8238c9c6f443e6643525ea467bd7e9a9bbffbc597481f1426a614077938f98718c0e1e6138f968dced49cc865bc214d7d
DIST python-Levenshtein-0.11.2.tar.gz 45458 SHA256 c1311c71beb5b6eecea4bba200a626331ef67110357448be47ba1bfe3c4aa305 SHA512 67d701e841c9a846948a1f2c70ea06c6473e3ae1437f73df2a2747d576024889a12e00c4a61e95b6c14826554b1ebaf65375cf5be4f26df3b208568403192bf3 WHIRLPOOL 5acbb305efeebd56ce79256efdef870f5ef92832e0b7f6b5b4d7d569c1e51821def06ac0a9ddfa165211b129f109e1089a3982b004a7a1982c93e5ca09aa2c89
DIST python-Levenshtein-0.12.0.tar.gz 48617 SHA256 033a11de5e3d19ea25c9302d11224e1a1898fe5abd23c61c7c360c25195e3eb1 SHA512 95df064490970618b003bccbef9071b1a2a3ee4645ac8e851f4205bd4e8123d21ee0ee733adfeec79085faa01ba39902e2a4a26bfb21b70678377579157df4a5 WHIRLPOOL e1e0b50efcbe82d8043e352d0e0f4275bdcad27342f699f8ad4516d5591647af8ea2b9c27395c7a982a77a0c9593ad12cb1bf8a68996c943877752bf681b41e1

View File

@@ -0,0 +1,214 @@
#!/usr/bin/python
# Simple Python extension module doc generator.
# @(#) $Id$
# Written by Yeti <yeti@physics.muni.cz>
# This program is in the public domain.
import re, sys, types, inspect
from cgi import escape as q
args = sys.argv
args.pop(0)
if not args: sys.exit(0)
selfcontained = False
if args[0].startswith('-') and 'selfcontained'.startswith(args[0].strip('-')):
selfcontained = True
args.pop(0)
if not args: sys.exit(0)
modname = args.pop(0)
plain_docs = args
html_head = """\
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><title>%s %s</title></head>
<body>
"""
html_foot = """\
</body>
</html>
"""
def split_para(doc):
p = []
for x in doc.split('\n\n'):
x = x.strip()
if x.find('\n>>>') > -1:
h, t = x.split('\n>>>', 1)
p.append(h)
p.append('>>>' + t)
else:
p.append(x)
return p
def get_doc(members):
try: doc = members['__doc__']
except KeyError: pass
if doc: return doc
try: doc = 'Python module %s' % members['__name__']
except KeyError: pass
if doc: return doc
else: return 'A Python module'
def format_synopsis(synopsis, link=False, classname=None):
lst = synopsis.split('\n')
for i, s in zip(range(len(lst)), lst):
m = re.match(r'(?P<func>\w+)(?P<args>.*)', s)
args = re.sub(r'([a-zA-Z]\w+)', r'<var>\1</var>', m.group('args'))
func = m.group('func')
if link:
if classname:
func = '<a href="#%s-%s">%s</a>' % (classname, func, func)
else:
func = '<a href="#%s">%s</a>' % (func, func)
lst[i] = func + args
return '<br/>\n'.join(lst)
def format_para(p):
if not p: return ''
doc = ''
if p.startswith('>>>'): doc += '<pre>\n%s\n</pre>\n' % q(p)
else:
if not re.search('^- ', p, re.M): doc += '<p>%s</p>\n' % q(p)
else:
p = re.split('(?m)^- ', p)
if p[0]: doc += '<p>%s</p>\n' % q(p[0].strip())
del p[0]
doc += ('<ul>%s</ul>\n'
% '\n'.join(['<li>%s</li>' % q(p.strip()) for p in p]))
return doc
def preprocess_routine(name, doc):
parts = split_para(doc)
if parts: summary = parts.pop(0)
else: summary = 'FIXME'
if parts and re.match(r'\w+\(.*\)', parts[0]): synopsis = parts.pop(0)
else: synopsis = name + '()'
return {'synopsis': synopsis, 'summary': summary, 'details': parts}
def analyse(obj):
members = obj.__dict__
if inspect.isclass(obj):
main_doc = preprocess_routine(obj.__name__, get_doc(members))
bases = [x.__name__ for x in obj.__bases__]
else:
main_doc = split_para(get_doc(members))
bases = []
routines = {}
classes = {}
data = {}
for name, m in members.items():
if name.startswith('__'): continue
try:
mro = list(inspect.getmro(m))
if mro[0] != m: continue
except AttributeError: pass
if inspect.isroutine(m):
try: doc = m.__doc__
except KeyError: pass
if not doc: doc = 'FIXME'
routines[name] = preprocess_routine(name, doc)
continue
if inspect.isclass(m):
classes[name] = analyse(m)
continue
t = type(m)
if t == types.IntType or t == types.StringType:
data[name] = repr(m)
else:
data[name] = m.__doc__
return {'name': obj.__name__, 'doc': main_doc, 'routines': routines,
'classes': classes, 'data': data, 'bases': bases}
def format(tree, level, prefix=''):
name = tree['name']
if prefix: fullname = '%s-%s' % (prefix, name)
else: fullname = name
##### Main doc
doc = []
if level > 1:
doc = ['<h%d id="%s">' % (level, fullname)]
try: doc.append(format_synopsis(tree['doc']['synopsis']))
except TypeError:
doc.append(name)
doc.append('</h%d>\n' % level)
if tree.has_key('bases'):
doc.append('<p>Bases: %s.</p>\n' % ', '.join(tree['bases']))
try: lst = [tree['doc']['summary']] + tree['doc']['details']
except TypeError: lst = tree['doc']
for p in lst: doc.append(format_para(p))
##### Table of contents
routines = tree['routines'].keys()
classes = tree['classes'].keys()
data = tree['data'].keys()
if routines:
routines.sort()
if level == 1: doc.append('<p><b>Functions:</b></p>\n')
else: doc.append('<p><b>Methods:</b></p>\n')
doc.append('<ul class="ltoc">\n')
for r in routines:
synopsis = tree['routines'][r]['synopsis']
doc.append('<li>%s</li>\n' % format_synopsis(synopsis, True,
fullname))
doc.append('</ul>\n')
if classes:
classes.sort()
doc.append('<p><b>Classes:</b></p>\n')
doc.append('<ul class="ltoc">\n')
for r in classes:
synopsis = tree['classes'][r]['doc']['synopsis']
doc.append('<li>%s</li>\n' % format_synopsis(synopsis, True,
fullname))
doc.append('</ul>\n')
if data:
data.sort()
doc.append('<p><b>Data:</b></p>\n')
doc.append('<ul class="ltoc">\n')
for r in data:
doc.append('<li>%s = %s</li>\n' % (r, q(tree['data'][r])))
doc.append('</ul>\n')
##### Functions
if routines:
if level == 1: doc.append('<hr/>\n')
doc.append('<dl>\n')
for r in routines:
doc.append('<dt id="%s-%s">' % (fullname, r))
rt = tree['routines'][r]
doc.append('%s</dt>\n<dd>' % format_synopsis(rt['synopsis']))
for p in [rt['summary']] + rt['details']:
doc.append(format_para(p))
doc.append('</dd>\n')
doc.append('</dl>\n')
##### Classes
if classes:
for r in classes:
doc.append('<hr/>\n')
doc.append(format(tree['classes'][r], level+1, fullname))
return ''.join(doc)
exec 'import %s as __test__' % modname
doctree = analyse(__test__)
document = format(doctree, 1)
print modname + '.html'
fh = file(modname + '.html', 'w')
if selfcontained: fh.write(html_head % (modname, 'module API'))
fh.write(document)
if selfcontained: fh.write(html_foot)
fh.close()
for f in plain_docs:
try: fh = file(f, 'r')
except: continue
document = fh.read()
fh.close()
print f + '.xhtml'
fh = file(f + '.xhtml', 'w')
if selfcontained: fh.write(html_head % (modname, f))
fh.write('<h1>%s %s</h1>\n\n' % (modname, f))
fh.write('<pre class="main">\n')
fh.write(document)
fh.write('</pre>\n')
if selfcontained: fh.write(html_foot)
fh.close()

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>python</herd>
<upstream>
<remote-id type="pypi">python-Levenshtein</remote-id>
<remote-id type="github">miohtama/python-Levenshtein</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,38 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 pypy )
inherit distutils-r1
MY_PN="python-Levenshtein"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Functions for fast computation of Levenshtein (edit) distance, and edit operations"
HOMEPAGE="http://github.com/miohtama/python-Levenshtein/tree/
http://pypi.python.org/pypi/python-Levenshtein/"
SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ia64 x86"
IUSE="doc"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND=""
S="${WORKDIR}/${MY_P}"
python_compile_all() {
if use doc; then
einfo "Generation of documentation"
"${PYTHON}" "${FILESDIR}/genextdoc.py" Levenshtein || die "Generation of documentation failed"
fi
}
python_install_all() {
use doc && local HTML_DOCS=( Levenshtein.html )
distutils-r1_python_install_all
}

View File

@@ -0,0 +1,38 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 pypy )
inherit distutils-r1
MY_PN="python-Levenshtein"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Functions for fast computation of Levenshtein (edit) distance, and edit operations"
HOMEPAGE="http://github.com/miohtama/python-Levenshtein/tree/
http://pypi.python.org/pypi/python-Levenshtein/"
SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ia64 ~x86"
IUSE="doc"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND=""
S="${WORKDIR}/${MY_P}"
python_compile_all() {
if use doc; then
einfo "Generation of documentation"
"${PYTHON}" "${FILESDIR}/genextdoc.py" Levenshtein || die "Generation of documentation failed"
fi
}
python_install_all() {
use doc && local HTML_DOCS=( Levenshtein.html )
distutils-r1_python_install_all
}

View File

@@ -0,0 +1,43 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
inherit distutils-r1
MY_PN="python-Levenshtein"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Functions for fast computation of Levenshtein (edit) distance, and edit operations"
HOMEPAGE="http://github.com/miohtama/python-Levenshtein/tree/
http://pypi.python.org/pypi/python-Levenshtein/"
SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ia64 x86"
IUSE="doc"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND=""
S="${WORKDIR}/${MY_P}"
python_compile_all() {
if use doc; then
# Cannot assume user has a system py2 or pypy
if python_is_python3; then
die "The build of Levenshtein.html is not supported by python3"
else
einfo "Generation of documentation"
"${PYTHON}" "${FILESDIR}/genextdoc.py" Levenshtein || die "Generation of documentation failed"
fi
fi
}
python_install_all() {
use doc && local HTML_DOCS=( Levenshtein.html )
distutils-r1_python_install_all
}

View File

@@ -0,0 +1,43 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
inherit distutils-r1
MY_PN="python-Levenshtein"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Functions for fast computation of Levenshtein (edit) distance, and edit operations"
HOMEPAGE="http://github.com/miohtama/python-Levenshtein/tree/
http://pypi.python.org/pypi/python-Levenshtein/"
SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ia64 ~x86"
IUSE="doc"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND=""
S="${WORKDIR}/${MY_P}"
python_compile_all() {
if use doc; then
# Cannot assume user has a system py2 or pypy
if python_is_python3; then
die "The build of Levenshtein.html is not supported by python3"
else
einfo "Generation of documentation"
"${PYTHON}" "${FILESDIR}/genextdoc.py" Levenshtein || die "Generation of documentation failed"
fi
fi
}
python_install_all() {
use doc && local HTML_DOCS=( Levenshtein.html )
distutils-r1_python_install_all
}