diff options
author | Dirk Baechle <dl9obn@darc.de> | 2013-05-04 00:26:07 (GMT) |
---|---|---|
committer | Dirk Baechle <dl9obn@darc.de> | 2013-05-04 00:26:07 (GMT) |
commit | af9e799b805c424263e8b214b9a1678363bf5072 (patch) | |
tree | cd73d9b26ad623e6cacbd2d1135cee5ff274c2a8 | |
parent | 2fbab041df44f30a342fc7c0b43bb0808638c7e0 (diff) | |
download | SCons-af9e799b805c424263e8b214b9a1678363bf5072.zip SCons-af9e799b805c424263e8b214b9a1678363bf5072.tar.gz SCons-af9e799b805c424263e8b214b9a1678363bf5072.tar.bz2 |
- patched setup.py and several MANIFEST files, such that the docbook-xsl
folder and all additional documentation sources get packaged properly
- added basic support for wildcards and recursive globbing in MANIFEST files
- added missing JPG/SVG files
-rw-r--r-- | SConstruct | 6 | ||||
-rwxr-xr-x | bootstrap.py | 262 | ||||
-rw-r--r-- | doc/SConscript | 7 | ||||
-rw-r--r-- | doc/design/MANIFEST | 14 | ||||
-rwxr-xr-x | doc/design/titlepage/bricks.jpg | bin | 0 -> 36855 bytes | |||
-rw-r--r-- | doc/man/MANIFEST | 7 | ||||
-rwxr-xr-x | doc/man/titlepage/bricks.jpg | bin | 0 -> 36855 bytes | |||
-rw-r--r-- | doc/python10/MANIFEST | 9 | ||||
-rw-r--r-- | doc/python10/builder.svg | 330 | ||||
-rw-r--r-- | doc/reference/MANIFEST | 8 | ||||
-rwxr-xr-x | doc/reference/titlepage/bricks.jpg | bin | 0 -> 36855 bytes | |||
-rw-r--r-- | doc/user/MANIFEST | 13 | ||||
-rwxr-xr-x | doc/user/titlepage/bricks.jpg | bin | 0 -> 36855 bytes | |||
-rw-r--r-- | rpm/scons.spec.in | 2 | ||||
-rw-r--r-- | src/CHANGES.txt | 6 | ||||
-rw-r--r-- | src/engine/MANIFEST-xml.in | 109 | ||||
-rw-r--r-- | src/engine/MANIFEST.in | 29 | ||||
-rw-r--r-- | src/setup.py | 72 |
18 files changed, 606 insertions, 268 deletions
@@ -42,6 +42,8 @@ import stat import sys import tempfile +import bootstrap + project = 'scons' default_version = '2.3.1.alpha.yyyymmdd' copyright = "Copyright (c) %s The SCons Foundation" % copyright_years @@ -755,7 +757,7 @@ for p in [ scons ]: # destination files. # manifest_in = File(os.path.join(src, 'MANIFEST.in')).rstr() - src_files = [x[:-1] for x in open(manifest_in).readlines()] + src_files = bootstrap.parseManifestLines(src, open(manifest_in).readlines()) raw_files = src_files[:] dst_files = src_files[:] rpm_files = [] @@ -774,7 +776,7 @@ for p in [ scons ]: isubdir = p['subinst_dirs'][sp['pkg']] MANIFEST_in = File(os.path.join(src, ssubdir, 'MANIFEST.in')).rstr() MANIFEST_in_list.append(MANIFEST_in) - files = [x[:-1] for x in open(MANIFEST_in).readlines()] + files = bootstrap.parseManifestLines(os.path.join(src, ssubdir), open(MANIFEST_in).readlines()) raw_files.extend(files) src_files.extend([os.path.join(ssubdir, x) for x in files]) for f in files: diff --git a/bootstrap.py b/bootstrap.py index 0d1a3fc..78a85b5 100755 --- a/bootstrap.py +++ b/bootstrap.py @@ -25,6 +25,7 @@ import os import os.path import sys +import glob import subprocess __doc__ = """bootstrap.py @@ -71,112 +72,165 @@ the following SCons options: "eaten" by the bootstrap.py script. """ -script_dir = os.path.abspath(os.path.dirname(__file__)) - -bootstrap_dir = os.path.join(script_dir, 'bootstrap') - -pass_through_args = [] -update_only = None - -requires_an_argument = 'bootstrap.py: %s requires an argument\n' - -def must_copy(dst, src): - if not os.path.exists(dst): - return 1 - return open(dst, 'rb').read() != open(src, 'rb').read() - -search = [script_dir] - -# Note: We don't use the getopt module to process the command-line -# arguments because we'd have to teach it about all of the SCons options. - -command_line_args = sys.argv[1:] - -while command_line_args: - arg = command_line_args.pop(0) - - if arg == '--bootstrap_dir': - try: - bootstrap_dir = command_line_args.pop(0) - except IndexError: - sys.stderr.write(requires_an_argument % arg) - sys.exit(1) - elif arg[:16] == '--bootstrap_dir=': - bootstrap_dir = arg[16:] - - elif arg == '--bootstrap_force': - def must_copy(dst, src): +def parseManifestLines(basedir, lines): + """ Scans the single lines of a MANIFEST file, + and returns the list of source files. + Has basic support for recursive globs '**', + filename wildcards of the form '*.xml' and + comment lines, starting with a '#'. + """ + sources = [] + oldwd = os.path.abspath(os.getcwd()) + basewd = os.path.abspath(basedir) + os.chdir(basedir) + for l in lines: + if l.startswith('#'): + # Skip comments + continue + l = l.rstrip('\n') + if l.endswith('**'): + # Glob all files recursively + globwd, tail = os.path.split(l) + if globwd: + os.chdir(globwd) + for path, dirs, files in os.walk('.'): + for f in files: + if globwd: + fpath = os.path.join(globwd, path, f) + else: + fpath = os.path.join(path, f) + sources.append(os.path.normpath(fpath)) + if globwd: + os.chdir(basewd) + elif '*' in l: + # Glob file pattern + globwd, tail = os.path.split(l) + if globwd: + os.chdir(globwd) + files = glob.glob(tail) + for f in files: + fpath = os.path.join(globwd, f) + sources.append(os.path.normpath(fpath)) + os.chdir(basewd) + else: + sources.extend(glob.glob(tail)) + else: + sources.append(l) + os.chdir(oldwd) + + return sources + +def main(): + script_dir = os.path.abspath(os.path.dirname(__file__)) + + bootstrap_dir = os.path.join(script_dir, 'bootstrap') + + pass_through_args = [] + update_only = None + + requires_an_argument = 'bootstrap.py: %s requires an argument\n' + + search = [script_dir] + + def find(file, search=search): + for dir in search: + f = os.path.join(dir, file) + if os.path.exists(f): + return os.path.normpath(f) + sys.stderr.write("could not find `%s' in search path:\n" % file) + sys.stderr.write("\t" + "\n\t".join(search) + "\n") + sys.exit(2) + + def must_copy(dst, src): + if not os.path.exists(dst): return 1 - - elif arg == '--bootstrap_src': - try: - search.insert(0, command_line_args.pop(0)) - except IndexError: - sys.stderr.write(requires_an_argument % arg) - sys.exit(1) - elif arg[:16] == '--bootstrap_src=': - search.insert(0, arg[16:]) - - elif arg == '--bootstrap_update': - update_only = 1 - - elif arg in ('-C', '--directory'): - try: - dir = command_line_args.pop(0) - except IndexError: - sys.stderr.write(requires_an_argument % arg) - sys.exit(1) + return open(dst, 'rb').read() != open(src, 'rb').read() + + # Note: We don't use the getopt module to process the command-line + # arguments because we'd have to teach it about all of the SCons options. + + command_line_args = sys.argv[1:] + + while command_line_args: + arg = command_line_args.pop(0) + + if arg == '--bootstrap_dir': + try: + bootstrap_dir = command_line_args.pop(0) + except IndexError: + sys.stderr.write(requires_an_argument % arg) + sys.exit(1) + elif arg[:16] == '--bootstrap_dir=': + bootstrap_dir = arg[16:] + + elif arg == '--bootstrap_force': + def must_copy(dst, src): + return 1 + + elif arg == '--bootstrap_src': + try: + search.insert(0, command_line_args.pop(0)) + except IndexError: + sys.stderr.write(requires_an_argument % arg) + sys.exit(1) + elif arg[:16] == '--bootstrap_src=': + search.insert(0, arg[16:]) + + elif arg == '--bootstrap_update': + update_only = 1 + + elif arg in ('-C', '--directory'): + try: + dir = command_line_args.pop(0) + except IndexError: + sys.stderr.write(requires_an_argument % arg) + sys.exit(1) + else: + os.chdir(dir) + elif arg[:2] == '-C': + os.chdir(arg[2:]) + elif arg[:12] == '--directory=': + os.chdir(arg[12:]) + else: - os.chdir(dir) - elif arg[:2] == '-C': - os.chdir(arg[2:]) - elif arg[:12] == '--directory=': - os.chdir(arg[12:]) - - else: - pass_through_args.append(arg) - -def find(file, search=search): - for dir in search: - f = os.path.join(dir, file) - if os.path.exists(f): - return os.path.normpath(f) - sys.stderr.write("could not find `%s' in search path:\n" % file) - sys.stderr.write("\t" + "\n\t".join(search) + "\n") - sys.exit(2) - -scons_py = os.path.join('src', 'script', 'scons.py') -src_engine = os.path.join('src', 'engine') -MANIFEST_in = find(os.path.join(src_engine, 'MANIFEST.in')) - -files = [ scons_py ] + [os.path.join(src_engine, x[:-1]) - for x in open(MANIFEST_in).readlines()] - -for file in files: - src = find(file) - dst = os.path.join(bootstrap_dir, file) - if must_copy(dst, src): - dir = os.path.split(dst)[0] - if not os.path.isdir(dir): - os.makedirs(dir) - try: os.unlink(dst) - except: pass - open(dst, 'wb').write( open(src, 'rb').read() ) - -if update_only: - sys.exit(0) - -args = [ - sys.executable, - os.path.join(bootstrap_dir, scons_py) - ] + pass_through_args - -sys.stdout.write(" ".join(args) + '\n') -sys.stdout.flush() - -os.environ['SCONS_LIB_DIR'] = os.path.join(bootstrap_dir, src_engine) - -sys.exit(subprocess.Popen(args, env=os.environ).wait()) + pass_through_args.append(arg) + + + scons_py = os.path.join('src', 'script', 'scons.py') + src_engine = os.path.join('src', 'engine') + MANIFEST_in = find(os.path.join(src_engine, 'MANIFEST.in')) + + files = [ scons_py ] + [os.path.join(src_engine, x) + for x in parseManifestLines(src_engine, open(MANIFEST_in).readlines())] + + for file in files: + src = find(file) + dst = os.path.join(bootstrap_dir, file) + if must_copy(dst, src): + dir = os.path.split(dst)[0] + if not os.path.isdir(dir): + os.makedirs(dir) + try: os.unlink(dst) + except: pass + open(dst, 'wb').write( open(src, 'rb').read() ) + + if update_only: + sys.exit(0) + + args = [ + sys.executable, + os.path.join(bootstrap_dir, scons_py) + ] + pass_through_args + + sys.stdout.write(" ".join(args) + '\n') + sys.stdout.flush() + + os.environ['SCONS_LIB_DIR'] = os.path.join(bootstrap_dir, src_engine) + + sys.exit(subprocess.Popen(args, env=os.environ).wait()) + +if __name__ == "__main__": + main() # Local Variables: # tab-width:4 diff --git a/doc/SConscript b/doc/SConscript index 7c888d2..8dcf697 100644 --- a/doc/SConscript +++ b/doc/SConscript @@ -30,6 +30,7 @@ import sys import glob import SConsDoc import SConsExamples +import bootstrap Import('build_dir', 'env', 'whereis', 'revaction') @@ -192,7 +193,7 @@ else: # get included by the document XML files in the subdirectories. # manifest = File('MANIFEST').rstr() - src_files = [x[:-1] for x in open(manifest).readlines()] + src_files = bootstrap.parseManifestLines('.', open(manifest).readlines()) for s in src_files: if not s: continue @@ -217,7 +218,7 @@ else: env.Execute(Mkdir(os.path.join(build, doc))) env.Execute(Mkdir(os.path.join(build, doc, 'titlepage'))) manifest = File(os.path.join(doc, 'MANIFEST')).rstr() - src_files = [x[:-1] for x in open(manifest).readlines()] + src_files = bootstrap.parseManifestLines(doc, open(manifest).readlines()) for s in src_files: if not s: continue @@ -363,7 +364,7 @@ else: # the SConstruct file. e = os.path.join('#src', 'engine') manifest_in = File(os.path.join(e, 'MANIFEST.in')).rstr() - sources = [x[:-1] for x in open(manifest_in).readlines()] + sources = bootstrap.parseManifestLines(e, open(manifest_in).readlines()) sources = [x for x in sources if x.find('Platform') == -1] sources = [x for x in sources if x.find('Tool') == -1] # XXX diff --git a/doc/design/MANIFEST b/doc/design/MANIFEST index e93037f..0168e11 100644 --- a/doc/design/MANIFEST +++ b/doc/design/MANIFEST @@ -1,9 +1,9 @@ +# We don't use a wildcard for the XML files +# here, because it would pull in the created +# ones as well... acks.xml bground.xml copyright.xml -engine.fig -engine.jpg -engine.svg engine.xml goals.xml install.xml @@ -13,10 +13,10 @@ main.xml native.xml overview.xml summary.xml -chtml.xsl -html.xsl -pdf.xsl -scons_title.xsl +engine.fig +engine.jpg +engine.svg +*.xsl scons.css SConstruct titlepage/bricks.jpg diff --git a/doc/design/titlepage/bricks.jpg b/doc/design/titlepage/bricks.jpg Binary files differnew file mode 100755 index 0000000..b2dc16b --- /dev/null +++ b/doc/design/titlepage/bricks.jpg diff --git a/doc/man/MANIFEST b/doc/man/MANIFEST index 6c75f81..7f0ad45 100644 --- a/doc/man/MANIFEST +++ b/doc/man/MANIFEST @@ -1,9 +1,10 @@ +# We don't use a wildcard for the XML files +# here, because it would pull in the created +# ones as well... scons.xml sconsign.xml scons-time.xml -html.xsl -pdf.xsl -scons_title.xsl +*.xsl scons.css SConstruct titlepage/bricks.jpg diff --git a/doc/man/titlepage/bricks.jpg b/doc/man/titlepage/bricks.jpg Binary files differnew file mode 100755 index 0000000..b2dc16b --- /dev/null +++ b/doc/man/titlepage/bricks.jpg diff --git a/doc/python10/MANIFEST b/doc/python10/MANIFEST index 1be563b..5703e36 100644 --- a/doc/python10/MANIFEST +++ b/doc/python10/MANIFEST @@ -1,15 +1,14 @@ +# We don't use a wildcard for the XML files +# here, because it would pull in the created +# ones as well... abstract.xml acks.xml -arch.fig -builder.fig +*.fig copyright.xml design.xml future.xml install.xml intro.xml -job-task.fig main.xml -node.fig process.xml -scanner.fig summary.xml diff --git a/doc/python10/builder.svg b/doc/python10/builder.svg new file mode 100644 index 0000000..5648dd6 --- /dev/null +++ b/doc/python10/builder.svg @@ -0,0 +1,330 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="744.09448" + height="1052.3622" + id="svg2"> + <defs + id="defs4" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1"> + <g + transform="matrix(0.07462687,0,0,0.07462687,-106.34331,286.09351)" + id="g3006" + style="fill:none;stroke-width:0.025in"> + <rect + width="1800" + height="600" + rx="0" + x="2700" + y="1200" + id="rect3008" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1800" + height="600" + rx="0" + x="2700" + y="2400" + id="rect3010" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1800" + height="600" + rx="0" + x="2700" + y="3600" + id="rect3012" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1500" + height="600" + rx="0" + x="8400" + y="3600" + id="rect3014" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1500" + height="900" + rx="0" + x="3900" + y="4800" + id="rect3016" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1500" + height="900" + rx="0" + x="1800" + y="4800" + id="rect3018" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1500" + height="900" + rx="0" + x="6300" + y="4800" + id="rect3020" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1500" + height="900" + rx="0" + x="8400" + y="4800" + id="rect3022" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1500" + height="900" + rx="0" + x="10500" + y="4800" + id="rect3024" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <rect + width="1200" + height="600" + rx="0" + x="900" + y="2400" + id="rect3026" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polygon + points="3600,4200 3600,4200 3525,4350 3675,4350 " + id="polygon3028" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polyline + id="polyline3030" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="3150,4800 3150,4500 4050,4500 4050,4800 " /> + <polyline + id="polyline3032" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="3600,4350 3600,4500 " /> + <polygon + points="9150,4200 9150,4200 9075,4350 9225,4350 " + id="polygon3034" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polyline + id="polyline3036" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="7050,4800 7050,4500 10950,4500 10950,4800 " /> + <polyline + id="polyline3038" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="9150,4350 9150,4800 " /> + <polyline + id="polyline3040" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="11550,4650 11550,3900 10019,3900 " /> + <polygon + points="10021,3870 10021,3870 9901,3900 10021,3930 " + id="polygon3042" + style="fill:#000000;stroke:#000000;stroke-width:7;stroke-miterlimit:8" /> + <polyline + id="polyline3044" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="4650,3900 8280,3900 " /> + <polygon + points="8279,3930 8279,3930 8399,3900 8279,3870 " + id="polygon3046" + style="fill:#000000;stroke:#000000;stroke-width:7;stroke-miterlimit:8" /> + <polyline + id="polyline3048" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="3900,2250 3900,1919 " /> + <polygon + points="3930,1921 3930,1921 3900,1801 3870,1921 " + id="polygon3050" + style="fill:#000000;stroke:#000000;stroke-width:7;stroke-miterlimit:8" /> + <polyline + id="polyline3052" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="3300,1950 3300,2280 " /> + <polygon + points="3270,2279 3270,2279 3300,2399 3330,2279 " + id="polygon3054" + style="fill:#000000;stroke:#000000;stroke-width:7;stroke-miterlimit:8" /> + <polyline + id="polyline3056" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="3600,3150 3600,3480 " /> + <polygon + points="3570,3479 3570,3479 3600,3599 3630,3479 " + id="polygon3058" + style="fill:#000000;stroke:#000000;stroke-width:7;stroke-miterlimit:8" /> + <polyline + id="polyline3060" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="4350,4650 4350,4319 " /> + <polygon + points="4380,4321 4380,4321 4350,4201 4320,4321 " + id="polygon3062" + style="fill:#000000;stroke:#000000;stroke-width:7;stroke-miterlimit:8" /> + <polyline + id="polyline3064" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="2850,4650 2850,4319 " /> + <polygon + points="2880,4321 2880,4321 2850,4201 2820,4321 " + id="polygon3066" + style="fill:#000000;stroke:#000000;stroke-width:7;stroke-miterlimit:8" /> + <polyline + id="polyline3068" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" + points="1500,3150 1500,3900 2580,3900 " /> + <polygon + points="2579,3930 2579,3930 2699,3900 2579,3870 " + id="polygon3070" + style="fill:#000000;stroke:#000000;stroke-width:7;stroke-miterlimit:8" /> + <polygon + points="4575,3940 4650,3900 4650,3900 4575,3860 4500,3900 " + id="polygon3072" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polygon + points="1540,3075 1500,3000 1500,3000 1460,3075 1500,3150 " + id="polygon3074" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polygon + points="3640,3075 3600,3000 3600,3000 3560,3075 3600,3150 " + id="polygon3076" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polygon + points="3340,1875 3300,1800 3300,1800 3260,1875 3300,1950 " + id="polygon3078" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polygon + points="3940,2325 3900,2250 3900,2250 3860,2325 3900,2400 " + id="polygon3080" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polygon + points="4390,4725 4350,4650 4350,4650 4310,4725 4350,4800 " + id="polygon3082" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polygon + points="2890,4725 2850,4650 2850,4650 2810,4725 2850,4800 " + id="polygon3084" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polygon + points="11590,4725 11550,4650 11550,4650 11510,4725 11550,4800 " + id="polygon3086" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" /> + <polyline + id="polyline3088" + style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:40, 40" + points="3600,1200 3600,900 " /> + <text + x="2925" + y="1575" + id="text3090" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Times">Environment</text> + <text + x="3600" + y="2775" + id="text3092" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">BuilderWrapper</text> + <text + x="3600" + y="3975" + id="text3094" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">BuilderBase</text> + <text + x="9150" + y="3975" + id="text3096" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">ActionBase</text> + <text + x="4650" + y="5175" + id="text3098" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">MultiStep-</text> + <text + x="4650" + y="5460" + id="text3100" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Builder</text> + <text + x="2550" + y="5175" + id="text3102" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Composite-</text> + <text + x="2550" + y="5460" + id="text3104" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Builder</text> + <text + x="7050" + y="5175" + id="text3106" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Command</text> + <text + x="7050" + y="5460" + id="text3108" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Action</text> + <text + x="9150" + y="5460" + id="text3110" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Action</text> + <text + x="9150" + y="5175" + id="text3112" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Function</text> + <text + x="11250" + y="5175" + id="text3114" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">List</text> + <text + x="11250" + y="5460" + id="text3116" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Action</text> + <text + x="1500" + y="2775" + id="text3118" + xml:space="preserve" + style="font-size:192px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:Times">Node</text> + </g> + </g> +</svg> diff --git a/doc/reference/MANIFEST b/doc/reference/MANIFEST index a4a0c8f..921a4de 100644 --- a/doc/reference/MANIFEST +++ b/doc/reference/MANIFEST @@ -1,3 +1,6 @@ +# We don't use a wildcard for the XML files +# here, because it would pull in the created +# ones as well... Alias.xml CFile.xml CXXFile.xml @@ -19,10 +22,7 @@ copyright.xml errors.xml main.xml preface.xml -chtml.xsl -html.xsl -pdf.xsl -scons_title.xsl +*.xsl scons.css SConstruct titlepage/bricks.jpg diff --git a/doc/reference/titlepage/bricks.jpg b/doc/reference/titlepage/bricks.jpg Binary files differnew file mode 100755 index 0000000..b2dc16b --- /dev/null +++ b/doc/reference/titlepage/bricks.jpg diff --git a/doc/user/MANIFEST b/doc/user/MANIFEST index 8eb4ea1..e5f8988 100644 --- a/doc/user/MANIFEST +++ b/doc/user/MANIFEST @@ -1,3 +1,6 @@ +# We don't use a wildcard for the XML files +# here, because it would pull in the created +# ones as well... actions.xml add-method.xml alias.xml @@ -46,14 +49,8 @@ tools.xml troubleshoot.xml variants.xml variables.xml -SCons-win32-install-1.jpg -SCons-win32-install-2.jpg -SCons-win32-install-3.jpg -SCons-win32-install-4.jpg -chtml.xsl -html.xsl -pdf.xsl -scons_title.xsl +*.jpg +*.xsl scons.css SConstruct titlepage/bricks.jpg diff --git a/doc/user/titlepage/bricks.jpg b/doc/user/titlepage/bricks.jpg Binary files differnew file mode 100755 index 0000000..b2dc16b --- /dev/null +++ b/doc/user/titlepage/bricks.jpg diff --git a/rpm/scons.spec.in b/rpm/scons.spec.in index 4d2dd12..312eb44 100644 --- a/rpm/scons.spec.in +++ b/rpm/scons.spec.in @@ -41,7 +41,7 @@ defined Builder and/or Scanner objects. python setup.py build %install -python setup.py install --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES --install-lib=/usr/lib/scons --install-scripts=/usr/bin --install-data=/usr/share +python setup.py install --root=$RPM_BUILD_ROOT --install-lib=/usr/lib/scons --install-scripts=/usr/bin --install-data=/usr/share %clean rm -rf $RPM_BUILD_ROOT diff --git a/src/CHANGES.txt b/src/CHANGES.txt index e2f5e09..3494cfd 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -20,6 +20,12 @@ RELEASE 2.3.1.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE From Philipp Kraus: - Added optional ZIPROOT to Zip tool. + From Dirk Baechle: + - Replaced old SGML-based documentation toolchain with a more modern + approach, that also requires less external dependencies (programs and + Python packages). Added a customized Docbook XSD for strict validation of + all input XML files. + RELEASE 2.3.0 - Mon, 02 Mar 2013 13:22:29 -0400 From Anatoly Techtonik: diff --git a/src/engine/MANIFEST-xml.in b/src/engine/MANIFEST-xml.in index 920a603..a657734 100644 --- a/src/engine/MANIFEST-xml.in +++ b/src/engine/MANIFEST-xml.in @@ -1,108 +1,7 @@ -SCons/Action.xml -SCons/Defaults.xml -SCons/Environment.xml -SCons/Platform/__init__.xml -SCons/Platform/posix.xml -SCons/Platform/sunos.xml -SCons/Platform/win32.xml +SCons/*.xml +SCons/Platform/*.xml SCons/Scanner/__init__.xml -SCons/Script/Main.xml -SCons/Script/SConscript.xml -SCons/Subst.xml -SCons/Tool/386asm.xml -SCons/Tool/BitKeeper.xml -SCons/Tool/CVS.xml -SCons/Tool/Perforce.xml -SCons/Tool/RCS.xml -SCons/Tool/SCCS.xml -SCons/Tool/Subversion.xml -SCons/Tool/__init__.xml -SCons/Tool/aixc++.xml -SCons/Tool/aixcc.xml -SCons/Tool/aixf77.xml -SCons/Tool/aixlink.xml -SCons/Tool/applelink.xml -SCons/Tool/ar.xml -SCons/Tool/as.xml -SCons/Tool/bcc32.xml -SCons/Tool/c++.xml -SCons/Tool/cc.xml -SCons/Tool/cvf.xml -SCons/Tool/default.xml -SCons/Tool/dmd.xml +SCons/Script/*.xml +SCons/Tool/*.xml SCons/Tool/docbook/__init__.xml -SCons/Tool/dvi.xml -SCons/Tool/dvipdf.xml -SCons/Tool/dvips.xml -SCons/Tool/f77.xml -SCons/Tool/f90.xml -SCons/Tool/f95.xml -SCons/Tool/fortran.xml -SCons/Tool/g++.xml -SCons/Tool/g77.xml -SCons/Tool/gas.xml -SCons/Tool/gcc.xml -SCons/Tool/gfortran.xml -SCons/Tool/gnulink.xml -SCons/Tool/gs.xml -SCons/Tool/hpc++.xml -SCons/Tool/hpcc.xml -SCons/Tool/hplink.xml -SCons/Tool/icc.xml -SCons/Tool/icl.xml -SCons/Tool/ifl.xml -SCons/Tool/ifort.xml -SCons/Tool/ilink.xml -SCons/Tool/ilink32.xml -SCons/Tool/install.xml -SCons/Tool/intelc.xml -SCons/Tool/jar.xml -SCons/Tool/javac.xml -SCons/Tool/javah.xml -SCons/Tool/latex.xml -SCons/Tool/lex.xml -SCons/Tool/link.xml -SCons/Tool/linkloc.xml -SCons/Tool/m4.xml -SCons/Tool/masm.xml -SCons/Tool/midl.xml -SCons/Tool/mingw.xml -SCons/Tool/mslib.xml -SCons/Tool/mslink.xml -SCons/Tool/mssdk.xml -SCons/Tool/msvc.xml -SCons/Tool/msvs.xml -SCons/Tool/mwcc.xml -SCons/Tool/mwld.xml -SCons/Tool/nasm.xml -SCons/Tool/packaging.xml SCons/Tool/packaging/__init__.xml -SCons/Tool/pdf.xml -SCons/Tool/pdflatex.xml -SCons/Tool/pdftex.xml -SCons/Tool/qt.xml -SCons/Tool/rmic.xml -SCons/Tool/rpcgen.xml -SCons/Tool/sgiar.xml -SCons/Tool/sgic++.xml -SCons/Tool/sgicc.xml -SCons/Tool/sgilink.xml -SCons/Tool/sunar.xml -SCons/Tool/sunc++.xml -SCons/Tool/suncc.xml -SCons/Tool/sunf77.xml -SCons/Tool/sunf90.xml -SCons/Tool/sunf95.xml -SCons/Tool/sunlink.xml -SCons/Tool/swig.xml -SCons/Tool/tar.xml -SCons/Tool/tex.xml -SCons/Tool/textfile.xml -SCons/Tool/tlib.xml -SCons/Tool/yacc.xml -SCons/Tool/zip.xml -SCons/Tool/gettext.xml -SCons/Tool/msgfmt.xml -SCons/Tool/msginit.xml -SCons/Tool/msgmerge.xml -SCons/Tool/xgettext.xml diff --git a/src/engine/MANIFEST.in b/src/engine/MANIFEST.in index 7d3999a..5e7627f 100644 --- a/src/engine/MANIFEST.in +++ b/src/engine/MANIFEST.in @@ -1,14 +1,7 @@ SCons/__init__.py SCons/Action.py SCons/Builder.py -SCons/compat/__init__.py -SCons/compat/_scons_builtins.py -SCons/compat/_scons_collections.py -SCons/compat/_scons_dbm.py -SCons/compat/_scons_hashlib.py -SCons/compat/_scons_io.py -SCons/compat/_scons_sets.py -SCons/compat/_scons_subprocess.py +SCons/compat/*.py SCons/CacheDir.py SCons/Conftest.py SCons/cpp.py @@ -25,12 +18,7 @@ SCons/Node/__init__.py SCons/Node/Alias.py SCons/Node/FS.py SCons/Node/Python.py -SCons/Options/__init__.py -SCons/Options/BoolOption.py -SCons/Options/EnumOption.py -SCons/Options/ListOption.py -SCons/Options/PackageOption.py -SCons/Options/PathOption.py +SCons/Options/*.py SCons/PathList.py SCons/Platform/__init__.py SCons/Platform/aix.py @@ -78,7 +66,7 @@ SCons/Tool/cvf.py SCons/Tool/CVS.py SCons/Tool/default.py SCons/Tool/dmd.py -SCons/Tool/docbook/__init__.xml +SCons/Tool/docbook/__init__.py SCons/Tool/dvi.py SCons/Tool/dvipdf.py SCons/Tool/dvips.py @@ -135,16 +123,7 @@ SCons/Tool/msvs.py SCons/Tool/mwcc.py SCons/Tool/mwld.py SCons/Tool/nasm.py -SCons/Tool/packaging/__init__.py -SCons/Tool/packaging/ipk.py -SCons/Tool/packaging/msi.py -SCons/Tool/packaging/rpm.py -SCons/Tool/packaging/src_tarbz2.py -SCons/Tool/packaging/src_targz.py -SCons/Tool/packaging/src_zip.py -SCons/Tool/packaging/tarbz2.py -SCons/Tool/packaging/targz.py -SCons/Tool/packaging/zip.py +SCons/Tool/packaging/*.py SCons/Tool/pdf.py SCons/Tool/pdflatex.py SCons/Tool/pdftex.py diff --git a/src/setup.py b/src/setup.py index 9037337..a8b59a3 100644 --- a/src/setup.py +++ b/src/setup.py @@ -408,11 +408,81 @@ arguments = { "SCons.Scanner", "SCons.Script", "SCons.Tool", + "SCons.Tool.docbook", "SCons.Tool.MSCommon", "SCons.Tool.packaging", "SCons.Variables", ], - 'package_dir' : {'' : 'engine'}, + 'package_dir' : {'' : 'engine', + 'SCons.Tool.docbook' : 'engine/SCons/Tool/docbook'}, + 'package_data' : {'SCons.Tool.docbook' : ['docbook-xsl-1.76.1/*', + 'docbook-xsl-1.76.1/common/*', + 'docbook-xsl-1.76.1/docsrc/*', + 'docbook-xsl-1.76.1/eclipse/*', + 'docbook-xsl-1.76.1/epub/*', + 'docbook-xsl-1.76.1/epub/bin/*', + 'docbook-xsl-1.76.1/epub/bin/lib/*', + 'docbook-xsl-1.76.1/epub/bin/xslt/*', + 'docbook-xsl-1.76.1/extensions/*', + 'docbook-xsl-1.76.1/fo/*', + 'docbook-xsl-1.76.1/highlighting/*', + 'docbook-xsl-1.76.1/html/*', + 'docbook-xsl-1.76.1/htmlhelp/*', + 'docbook-xsl-1.76.1/images/*', + 'docbook-xsl-1.76.1/images/callouts/*', + 'docbook-xsl-1.76.1/images/colorsvg/*', + 'docbook-xsl-1.76.1/javahelp/*', + 'docbook-xsl-1.76.1/lib/*', + 'docbook-xsl-1.76.1/manpages/*', + 'docbook-xsl-1.76.1/params/*', + 'docbook-xsl-1.76.1/profiling/*', + 'docbook-xsl-1.76.1/roundtrip/*', + 'docbook-xsl-1.76.1/slides/browser/*', + 'docbook-xsl-1.76.1/slides/fo/*', + 'docbook-xsl-1.76.1/slides/graphics/*', + 'docbook-xsl-1.76.1/slides/graphics/active/*', + 'docbook-xsl-1.76.1/slides/graphics/inactive/*', + 'docbook-xsl-1.76.1/slides/graphics/toc/*', + 'docbook-xsl-1.76.1/slides/html/*', + 'docbook-xsl-1.76.1/slides/htmlhelp/*', + 'docbook-xsl-1.76.1/slides/keynote/*', + 'docbook-xsl-1.76.1/slides/keynote/xsltsl/*', + 'docbook-xsl-1.76.1/slides/svg/*', + 'docbook-xsl-1.76.1/slides/xhtml/*', + 'docbook-xsl-1.76.1/template/*', + 'docbook-xsl-1.76.1/tests/*', + 'docbook-xsl-1.76.1/tools/bin/*', + 'docbook-xsl-1.76.1/tools/make/*', + 'docbook-xsl-1.76.1/webhelp/*', + 'docbook-xsl-1.76.1/webhelp/docs/*', + 'docbook-xsl-1.76.1/webhelp/docs/common/*', + 'docbook-xsl-1.76.1/webhelp/docs/common/css/*', + 'docbook-xsl-1.76.1/webhelp/docs/common/images/*', + 'docbook-xsl-1.76.1/webhelp/docs/common/jquery/*', + 'docbook-xsl-1.76.1/webhelp/docs/common/jquery/theme-redmond/*', + 'docbook-xsl-1.76.1/webhelp/docs/common/jquery/theme-redmond/images/*', + 'docbook-xsl-1.76.1/webhelp/docs/common/jquery/treeview/*', + 'docbook-xsl-1.76.1/webhelp/docs/common/jquery/treeview/images/*', + 'docbook-xsl-1.76.1/webhelp/docs/content/*', + 'docbook-xsl-1.76.1/webhelp/docs/content/search/*', + 'docbook-xsl-1.76.1/webhelp/docs/content/search/stemmers/*', + 'docbook-xsl-1.76.1/webhelp/docsrc/*', + 'docbook-xsl-1.76.1/webhelp/template/*', + 'docbook-xsl-1.76.1/webhelp/template/common/*', + 'docbook-xsl-1.76.1/webhelp/template/common/css/*', + 'docbook-xsl-1.76.1/webhelp/template/common/images/*', + 'docbook-xsl-1.76.1/webhelp/template/common/jquery/*', + 'docbook-xsl-1.76.1/webhelp/template/common/jquery/theme-redmond/*', + 'docbook-xsl-1.76.1/webhelp/template/common/jquery/theme-redmond/images/*', + 'docbook-xsl-1.76.1/webhelp/template/common/jquery/treeview/*', + 'docbook-xsl-1.76.1/webhelp/template/common/jquery/treeview/images/*', + 'docbook-xsl-1.76.1/webhelp/template/content/search/*', + 'docbook-xsl-1.76.1/webhelp/template/content/search/stemmers/*', + 'docbook-xsl-1.76.1/webhelp/xsl/*', + 'docbook-xsl-1.76.1/website/*', + 'docbook-xsl-1.76.1/xhtml/*', + 'docbook-xsl-1.76.1/xhtml-1_1/*', + 'utils/*']}, 'data_files' : [('man/man1', man_pages)], 'scripts' : scripts, 'cmdclass' : {'install' : install, |