diff options
-rw-r--r-- | Doc/library/hashlib.rst | 4 | ||||
-rw-r--r-- | Lib/distutils/sysconfig.py | 7 | ||||
-rw-r--r-- | Lib/hashlib.py | 3 | ||||
-rwxr-xr-x | Lib/test/regrtest.py | 8 | ||||
-rw-r--r-- | Lib/test/test_import.py | 14 | ||||
-rw-r--r-- | Lib/test/test_int_literal.py | 4 | ||||
-rw-r--r-- | Lib/test/test_nis.py | 10 | ||||
-rw-r--r-- | Lib/test/test_posix.py | 28 | ||||
-rw-r--r-- | Lib/test/test_print.py | 14 | ||||
-rw-r--r-- | Lib/test/test_winsound.py | 36 | ||||
-rw-r--r-- | Lib/test/test_zlib.py | 7 | ||||
-rw-r--r-- | Lib/zipfile.py | 68 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/developers.txt | 2 | ||||
-rw-r--r-- | Modules/binascii.c | 2 | ||||
-rw-r--r-- | Modules/posixmodule.c | 4 | ||||
-rw-r--r-- | Objects/abstract.c | 5 | ||||
-rw-r--r-- | Objects/cellobject.c | 14 | ||||
-rw-r--r-- | PCbuild/_bsddb.vcproj | 43 | ||||
-rw-r--r-- | PCbuild/_sqlite3.vcproj | 26 | ||||
-rw-r--r-- | PCbuild/_tkinter.vcproj | 12 | ||||
-rw-r--r-- | PCbuild/pcbuild.sln | 38 | ||||
-rw-r--r-- | PCbuild/pyproject.vsprops | 38 | ||||
-rw-r--r-- | Python/ast.c | 4 | ||||
-rw-r--r-- | Tools/buildbot/external-amd64.bat | 51 | ||||
-rw-r--r-- | Tools/buildbot/external.bat | 49 |
26 files changed, 277 insertions, 215 deletions
diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst index a725e07..f1f5237 100644 --- a/Doc/library/hashlib.rst +++ b/Doc/library/hashlib.rst @@ -19,6 +19,10 @@ algorithm (defined in Internet :rfc:`1321`). The terms "secure hash" and "message digest" are interchangeable. Older algorithms were called message digests. The modern term is secure hash. +.. note:: + If you want the adler32 or crc32 hash functions they are available in + the :mod:`zlib` module. + .. warning:: Some algorithms have known hash collision weaknesses, see the FAQ at the end. diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index 39216a5..d2b2c9a 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -23,7 +23,8 @@ PREFIX = os.path.normpath(sys.prefix) EXEC_PREFIX = os.path.normpath(sys.exec_prefix) # Path to the base directory of the project. On Windows the binary may -# live in project/PCBuild9 +# live in project/PCBuild9. If we're dealing with an x64 Windows build, +# it'll live in project/PCbuild/amd64. project_base = os.path.dirname(os.path.abspath(sys.executable)) if os.name == "nt" and "pcbuild" in project_base[-8:].lower(): project_base = os.path.abspath(os.path.join(project_base, os.path.pardir)) @@ -31,6 +32,10 @@ if os.name == "nt" and "pcbuild" in project_base[-8:].lower(): if os.name == "nt" and "\\pc\\v" in project_base[-10:].lower(): project_base = os.path.abspath(os.path.join(project_base, os.path.pardir, os.path.pardir)) +# PC/AMD64 +if os.name == "nt" and "\\pcbuild\\amd64" in project_base[-14:].lower(): + project_base = os.path.abspath(os.path.join(project_base, os.path.pardir, + os.path.pardir)) # python_build: (Boolean) if true, we're either building Python or # building an extension with an un-installed Python, so we use diff --git a/Lib/hashlib.py b/Lib/hashlib.py index a39cb57..efe66ec 100644 --- a/Lib/hashlib.py +++ b/Lib/hashlib.py @@ -18,6 +18,9 @@ md5(), sha1(), sha224(), sha256(), sha384(), and sha512() More algorithms may be available on your platform but the above are guaranteed to exist. +NOTE: If you want the adler32 or crc32 hash functions they are available in +the zlib module. + Choose your hash function wisely. Some have known collision weaknesses. sha384 and sha512 will be slow on 32 bit platforms. diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 2212af5..100b26f 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -1157,6 +1157,14 @@ class _ExpectedSkips: if sys.platform != 'sunos5': self.expected.add('test_nis') + # TODO: This is a hack to raise TestSkipped if -3 is not enabled. + # Instead of relying on callable to have a warning, we should expose + # the -3 flag to Python code somehow + with test_support.catch_warning() as w: + callable(int) + if w.message is None: + self.expected.add('test_py3kwarn') + self.valid = True def isvalid(self): diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py index 6eac67e..fe1da52 100644 --- a/Lib/test/test_import.py +++ b/Lib/test/test_import.py @@ -255,8 +255,20 @@ class PathsTests(unittest.TestCase): self.assertEqual(mod.testdata, 'test_trailing_slash') unload("test_trailing_slash") +class RelativeImport(unittest.TestCase): + def tearDown(self): + try: + del sys.modules["test.relimport"] + except: + pass + + def test_relimport_star(self): + # This will import * from .test_import. + from . import relimport + self.assertTrue(hasattr(relimport, "RelativeImport")) + def test_main(verbose=None): - run_unittest(ImportTest, PathsTests) + run_unittest(ImportTest, PathsTests, RelativeImport) if __name__ == '__main__': test_main() diff --git a/Lib/test/test_int_literal.py b/Lib/test/test_int_literal.py index c9ad2a3..9bd0c41 100644 --- a/Lib/test/test_int_literal.py +++ b/Lib/test/test_int_literal.py @@ -6,7 +6,7 @@ This is complex because of changes due to PEP 237. import unittest from test import test_support -class TextHexOctBin(unittest.TestCase): +class TestHexOctBin(unittest.TestCase): def test_hex_baseline(self): # A few upper/lowercase tests @@ -141,7 +141,7 @@ class TextHexOctBin(unittest.TestCase): self.assertEqual(-0b1111111111111111111111111111111111111111111111111111111111111111, -18446744073709551615) def test_main(): - test_support.run_unittest(TextHexOctBin) + test_support.run_unittest(TestHexOctBin) if __name__ == "__main__": test_main() diff --git a/Lib/test/test_nis.py b/Lib/test/test_nis.py index 55dd32c..757edd6 100644 --- a/Lib/test/test_nis.py +++ b/Lib/test/test_nis.py @@ -1,4 +1,4 @@ -from test.test_support import verbose, run_unittest +from test import test_support import unittest import nis @@ -8,8 +8,10 @@ class NisTests(unittest.TestCase): maps = nis.maps() except nis.error as msg: # NIS is probably not active, so this test isn't useful - if verbose: - self.fail("(failing because of verbose mode) %s" % msg) + if test_support.verbose: + print("Test Skipped:", msg) + # Can't raise TestSkipped as regrtest only recognizes the exception + # import time. return try: # On some systems, this map is only accessible to the @@ -35,7 +37,7 @@ class NisTests(unittest.TestCase): break def test_main(): - run_unittest(NisTests) + test_support.run_unittest(NisTests) if __name__ == '__main__': test_main() diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index 13f8f9e..57e9d15 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -9,6 +9,7 @@ except ImportError: import time import os +import pwd import unittest import warnings warnings.filterwarnings('ignore', '.* potential security risk .*', @@ -141,6 +142,33 @@ class PosixTester(unittest.TestCase): if hasattr(posix, 'stat'): self.assert_(posix.stat(test_support.TESTFN)) + if hasattr(posix, 'chown'): + def test_chown(self): + # raise an OSError if the file does not exist + os.unlink(test_support.TESTFN) + self.assertRaises(OSError, posix.chown, test_support.TESTFN, -1, -1) + + # re-create the file + open(test_support.TESTFN, 'w').close() + if os.getuid() == 0: + try: + # Many linux distros have a nfsnobody user as MAX_UID-2 + # that makes a good test case for signedness issues. + # http://bugs.python.org/issue1747858 + # This part of the test only runs when run as root. + # Only scary people run their tests as root. + ent = pwd.getpwnam('nfsnobody') + posix.chown(test_support.TESTFN, ent.pw_uid, ent.pw_gid) + except KeyError: + pass + else: + # non-root cannot chown to root, raises OSError + self.assertRaises(OSError, posix.chown, + test_support.TESTFN, 0, 0) + + # test a successful chown call + posix.chown(test_support.TESTFN, os.getuid(), os.getgid()) + def test_chdir(self): if hasattr(posix, 'chdir'): posix.chdir(os.curdir) diff --git a/Lib/test/test_print.py b/Lib/test/test_print.py index baeab3d..10ef60a 100644 --- a/Lib/test/test_print.py +++ b/Lib/test/test_print.py @@ -12,8 +12,6 @@ except ImportError: # 2.x from StringIO import StringIO -from contextlib import contextmanager - NotDefined = object() # A dispatch table all 8 combinations of providing @@ -40,15 +38,6 @@ dispatch = { lambda args, sep, end, file: print(sep=sep, end=end, file=file, *args), } -@contextmanager -def stdout_redirected(new_stdout): - save_stdout = sys.stdout - sys.stdout = new_stdout - try: - yield None - finally: - sys.stdout = save_stdout - # Class used to test __str__ and print class ClassWith__str__: def __init__(self, x): @@ -69,8 +58,7 @@ class TestPrint(unittest.TestCase): end is not NotDefined, file is not NotDefined)] - t = StringIO() - with stdout_redirected(t): + with test_support.captured_stdout() as t: fn(args, sep, end, file) self.assertEqual(t.getvalue(), expected) diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py index 7cdc275..dac569c 100644 --- a/Lib/test/test_winsound.py +++ b/Lib/test/test_winsound.py @@ -23,25 +23,27 @@ class BeepTest(unittest.TestCase): self.assertRaises(ValueError, winsound.Beep, 32768, 75) def test_extremes(self): - if _have_soundcard(): - winsound.Beep(37, 75) - winsound.Beep(32767, 75) - else: - # The behaviour of winsound.Beep() seems to differ between - # different versions of Windows when there's either a) no - # sound card entirely, b) legacy beep driver has been disabled, - # or c) the legacy beep driver has been uninstalled. Sometimes - # RuntimeErrors are raised, sometimes they're not. Meh. - try: - winsound.Beep(37, 75) - winsound.Beep(32767, 75) - except RuntimeError: - pass + self._beep(37, 75) + self._beep(32767, 75) def test_increasingfrequency(self): - if _have_soundcard(): - for i in range(100, 2000, 100): - winsound.Beep(i, 75) + for i in xrange(100, 2000, 100): + self._beep(i, 75) + + def _beep(self, *args): + # these tests used to use _have_soundcard(), but it's quite + # possible to have a soundcard, and yet have the beep driver + # disabled. So basically, we have no way of knowing whether + # a beep should be produced or not, so currently if these + # tests fail we're ignoring them + # + # XXX the right fix for this is to define something like + # _have_enabled_beep_driver() and use that instead of the + # try/except below + try: + winsound.Beep(*args) + except RuntimeError: + pass class MessageBeepTest(unittest.TestCase): diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py index 0adf507..d2fd504 100644 --- a/Lib/test/test_zlib.py +++ b/Lib/test/test_zlib.py @@ -1,6 +1,7 @@ import unittest from test import test_support import zlib +import binascii import random @@ -46,6 +47,12 @@ class ChecksumTestCase(unittest.TestCase): self.assertEqual(zlib.adler32(foo+foo), 3573550353) self.assertEqual(zlib.adler32('spam'), 72286642) + def test_same_as_binascii_crc32(self): + foo = 'abcdefghijklmnop' + crc = -1808088941 + self.assertEqual(binascii.crc32(foo), crc) + self.assertEqual(zlib.crc32(foo), crc) + self.assertEqual(binascii.crc32('spam'), zlib.crc32('spam')) diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 2865c0a..719ed44 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -8,8 +8,10 @@ import binascii, io try: import zlib # We may need its compression method + crc32 = zlib.crc32 except ImportError: zlib = None + crc32 = binascii.crc32 __all__ = ["BadZipfile", "error", "ZIP_STORED", "ZIP_DEFLATED", "is_zipfile", "ZipInfo", "ZipFile", "PyZipFile", "LargeZipFile" ] @@ -36,13 +38,13 @@ ZIP_DEFLATED = 8 # Here are some struct module formats for reading headers structEndArchive = "<4s4H2LH" # 9 items, end of archive, 22 bytes stringEndArchive = b"PK\005\006" # magic number for end of archive record -structCentralDir = "<4s4B4HlLL5HLL"# 19 items, central directory, 46 bytes +structCentralDir = "<4s4B4HLLL5HLL"# 19 items, central directory, 46 bytes stringCentralDir = b"PK\001\002" # magic number for central directory -structFileHeader = "<4s2B4HlLL2H" # 12 items, file header record, 30 bytes +structFileHeader = "<4s2B4HLLL2H" # 12 items, file header record, 30 bytes stringFileHeader = b"PK\003\004" # magic number for file header -structEndArchive64Locator = "<4slql" # 4 items, locate Zip64 header, 20 bytes +structEndArchive64Locator = "<4sLQL" # 4 items, locate Zip64 header, 20 bytes stringEndArchive64Locator = b"PK\x06\x07" # magic token for locator header -structEndArchive64 = "<4sqhhllqqqq" # 10 items, end of archive (Zip64), 56 bytes +structEndArchive64 = "<4sQHHLLQQQQ" # 10 items, end of archive (Zip64), 56 bytes stringEndArchive64 = b"PK\x06\x06" # magic token for Zip64 header @@ -140,7 +142,7 @@ def _EndRecData(fpin): endrec = list(endrec) endrec.append("") # Append the archive comment endrec.append(filesize - 22) # Append the record start offset - if endrec[-4] == -1 or endrec[-4] == 0xffffffff: + if endrec[-4] == 0xffffffff: return _EndRecData64(fpin, -22, endrec) return endrec # Search the last END_BLOCK bytes of the file for the record signature. @@ -160,7 +162,7 @@ def _EndRecData(fpin): # Append the archive comment and start offset endrec.append(comment) endrec.append(filesize - END_BLOCK + start) - if endrec[-4] == -1 or endrec[-4] == 0xffffffff: + if endrec[-4] == 0xffffffff: return _EndRecData64(fpin, - END_BLOCK + start, endrec) return endrec return # Error, return None @@ -247,7 +249,7 @@ class ZipInfo (object): if file_size > ZIP64_LIMIT or compress_size > ZIP64_LIMIT: # File is larger than what fits into a 4 byte integer, # fall back to the ZIP64 extension - fmt = '<hhqq' + fmt = '<HHQQ' extra = extra + struct.pack(fmt, 1, struct.calcsize(fmt)-4, file_size, compress_size) file_size = 0xffffffff # -1 @@ -267,14 +269,14 @@ class ZipInfo (object): extra = self.extra unpack = struct.unpack while extra: - tp, ln = unpack('<hh', extra[:4]) + tp, ln = unpack('<HH', extra[:4]) if tp == 1: if ln >= 24: - counts = unpack('<qqq', extra[4:28]) + counts = unpack('<QQQ', extra[4:28]) elif ln == 16: - counts = unpack('<qq', extra[4:20]) + counts = unpack('<QQ', extra[4:20]) elif ln == 8: - counts = unpack('<q', extra[4:12]) + counts = unpack('<Q', extra[4:12]) elif ln == 0: counts = () else: @@ -283,7 +285,8 @@ class ZipInfo (object): idx = 0 # ZIP64 extension (large files and/or large archives) - if self.file_size == -1 or self.file_size == 0xFFFFFFFF: + # XXX Is this correct? won't this exclude 2**32-1 byte files? + if self.file_size in (0xffffffffffffffff, 0xffffffff): self.file_size = counts[idx] idx += 1 @@ -950,7 +953,7 @@ class ZipFile: if not buf: break file_size = file_size + len(buf) - CRC = binascii.crc32(buf, CRC) + CRC = crc32(buf, CRC) & 0xffffffff if cmpr: buf = cmpr.compress(buf) compress_size = compress_size + len(buf) @@ -968,7 +971,7 @@ class ZipFile: # Seek backwards and write CRC and file sizes position = self.fp.tell() # Preserve current position in file self.fp.seek(zinfo.header_offset + 14, 0) - self.fp.write(struct.pack("<lLL", zinfo.CRC, zinfo.compress_size, + self.fp.write(struct.pack("<LLL", zinfo.CRC, zinfo.compress_size, zinfo.file_size)) self.fp.seek(position, 0) self.filelist.append(zinfo) @@ -997,7 +1000,7 @@ class ZipFile: zinfo.header_offset = self.fp.tell() # Start of header data self._writecheck(zinfo) self._didModify = True - zinfo.CRC = binascii.crc32(data) # CRC-32 checksum + zinfo.CRC = crc32(data) & 0xffffffff # CRC-32 checksum if zinfo.compress_type == ZIP_DEFLATED: co = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION, zlib.DEFLATED, -15) @@ -1047,7 +1050,7 @@ class ZipFile: if zinfo.header_offset > ZIP64_LIMIT: extra.append(zinfo.header_offset) - header_offset = -1 # struct "l" format: 32 one bits + header_offset = 0xffffffff # -1 32 bit else: header_offset = zinfo.header_offset @@ -1055,7 +1058,7 @@ class ZipFile: if extra: # Append a ZIP64 field to the extra's extra_data = struct.pack( - '<hh' + 'q'*len(extra), + '<HH' + 'Q'*len(extra), 1, 8*len(extra), *extra) + extra_data extract_version = max(45, zinfo.extract_version) @@ -1064,14 +1067,25 @@ class ZipFile: extract_version = zinfo.extract_version create_version = zinfo.create_version - centdir = struct.pack(structCentralDir, - stringCentralDir, create_version, - zinfo.create_system, extract_version, zinfo.reserved, - zinfo.flag_bits, zinfo.compress_type, dostime, dosdate, - zinfo.CRC, compress_size, file_size, - len(zinfo.filename), len(extra_data), len(zinfo.comment), - 0, zinfo.internal_attr, zinfo.external_attr, - header_offset) + try: + centdir = struct.pack(structCentralDir, + stringCentralDir, create_version, + zinfo.create_system, extract_version, zinfo.reserved, + zinfo.flag_bits, zinfo.compress_type, dostime, dosdate, + zinfo.CRC, compress_size, file_size, + len(zinfo.filename), len(extra_data), len(zinfo.comment), + 0, zinfo.internal_attr, zinfo.external_attr, + header_offset) + except DeprecationWarning: + print >>sys.stderr, (structCentralDir, + stringCentralDir, create_version, + zinfo.create_system, extract_version, zinfo.reserved, + zinfo.flag_bits, zinfo.compress_type, dostime, dosdate, + zinfo.CRC, compress_size, file_size, + len(zinfo.filename), len(extra_data), len(zinfo.comment), + 0, zinfo.internal_attr, zinfo.external_attr, + header_offset) + raise self.fp.write(centdir) self.fp.write(zinfo.filename.encode("utf-8")) self.fp.write(extra_data) @@ -1091,10 +1105,8 @@ class ZipFile: stringEndArchive64Locator, 0, pos2, 1) self.fp.write(zip64locrec) - # XXX Why is `pos3` computed next? It's never referenced. - pos3 = self.fp.tell() endrec = struct.pack(structEndArchive, stringEndArchive, - 0, 0, count, count, pos2 - pos1, -1, 0) + 0, 0, count, count, pos2 - pos1, 0xffffffff, 0) self.fp.write(endrec) else: @@ -736,6 +736,7 @@ Lars Wirzenius Stefan Witzel Klaus-Juergen Wolf Dan Wolfe +David Wolever Richard Wolff Gordon Worley Thomas Wouters diff --git a/Misc/developers.txt b/Misc/developers.txt index 7c9df33..d161e76 100644 --- a/Misc/developers.txt +++ b/Misc/developers.txt @@ -17,6 +17,8 @@ the format to accommodate documentation needs as they arise. Permissions History ------------------- +- Jeff Rush was given SVN access on 18 March 2008 by AMK, for Distutils work. + - David Wolever was given SVN access on 17 March 2008 by MvL, for 2to3 work. diff --git a/Modules/binascii.c b/Modules/binascii.c index 5f8705d..2b4b352 100644 --- a/Modules/binascii.c +++ b/Modules/binascii.c @@ -902,7 +902,7 @@ binascii_crc32(PyObject *self, PyObject *args) Py_ssize_t len; long result; - if ( !PyArg_ParseTuple(args, "s#|l:crc32", &bin_data, &len, &crc) ) + if ( !PyArg_ParseTuple(args, "s#|k:crc32", &bin_data, &len, &crc) ) return NULL; crc = ~ crc; diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 3e91f00..716bf7d 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1906,9 +1906,9 @@ static PyObject * posix_chown(PyObject *self, PyObject *args) { char *path = NULL; - int uid, gid; + long uid, gid; int res; - if (!PyArg_ParseTuple(args, "etii:chown", + if (!PyArg_ParseTuple(args, "etll:chown", Py_FileSystemDefaultEncoding, &path, &uid, &gid)) return NULL; diff --git a/Objects/abstract.c b/Objects/abstract.c index c0298a8..dd05fe1 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -2600,6 +2600,11 @@ PyObject_IsInstance(PyObject *inst, PyObject *cls) static PyObject *name = NULL; PyObject *t, *v, *tb; PyObject *checker; + + /* Quick test for an exact match */ + if (Py_TYPE(inst) == (PyTypeObject *)cls) + return 1; + PyErr_Fetch(&t, &v, &tb); if (name == NULL) { diff --git a/Objects/cellobject.c b/Objects/cellobject.c index 490afe0..50a3897 100644 --- a/Objects/cellobject.c +++ b/Objects/cellobject.c @@ -51,6 +51,18 @@ cell_dealloc(PyCellObject *op) PyObject_GC_Del(op); } +static int +cell_compare(PyCellObject *a, PyCellObject *b) +{ + if (a->ob_ref == NULL) { + if (b->ob_ref == NULL) + return 0; + return -1; + } else if (b->ob_ref == NULL) + return 1; + return PyObject_Compare(a->ob_ref, b->ob_ref); +} + static PyObject * cell_repr(PyCellObject *op) { @@ -102,7 +114,7 @@ PyTypeObject PyCell_Type = { 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ - 0, /* tp_compare */ + (cmpfunc)cell_compare, /* tp_compare */ (reprfunc)cell_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ diff --git a/PCbuild/_bsddb.vcproj b/PCbuild/_bsddb.vcproj index 3efdcce..f9d77e8 100644 --- a/PCbuild/_bsddb.vcproj +++ b/PCbuild/_bsddb.vcproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" - Version="9,00" + Version="9.00" Name="_bsddb" ProjectGUID="{B4D38F3F-68FB-42EC-A45D-E00657BB3627}" RootNamespace="_bsddb" @@ -42,7 +42,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(bsddbDir)" + AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.." /> <Tool Name="VCManagedResourceCompilerTool" @@ -52,11 +52,9 @@ /> <Tool Name="VCPreLinkEventTool" - CommandLine="cd $(bsddbDir)
if exist Debug\libdb44sd.lib exit 0
vcbuild /useenv db_static.vcproj "Debug|Win32"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(bsddbDir)\Debug\libdb44sd.lib" BaseAddress="0x1e180000" /> <Tool @@ -105,7 +103,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(bsddbDir)" + AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.." /> <Tool Name="VCManagedResourceCompilerTool" @@ -115,11 +113,11 @@ /> <Tool Name="VCPreLinkEventTool" - CommandLine="cd $(bsddbDir)
if exist "x64\Debug AMD64\db_static.lib" exit 0
vcbuild /useenv db_static.vcproj "Debug AMD64|x64"
" + CommandLine="" /> <Tool Name="VCLinkerTool" - AdditionalDependencies=""$(bsddbDir)x64\Debug AMD64\db_static.lib"" + AdditionalDependencies="$(bsddbDepLibs)" BaseAddress="0x1e180000" /> <Tool @@ -168,7 +166,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(bsddbDir)" + AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.." /> <Tool Name="VCManagedResourceCompilerTool" @@ -178,11 +176,10 @@ /> <Tool Name="VCPreLinkEventTool" - CommandLine="cd $(bsddbDir)
if exist Release\libdb44s.lib exit 0
vcbuild /useenv db_static.vcproj "Release|Win32"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(bsddbDir)\Release\libdb44s.lib" + AdditionalDependencies="$(bsddbDepLibs)" BaseAddress="0x1e180000" /> <Tool @@ -232,7 +229,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(bsddbDir)" + AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.." /> <Tool Name="VCManagedResourceCompilerTool" @@ -242,11 +239,11 @@ /> <Tool Name="VCPreLinkEventTool" - CommandLine="cd $(bsddbDir)
if exist x64\Release AMD64\db_static.lib exit 0
vcbuild /useenv db_static.vcproj "Release AMD64|Win32"
" + CommandLine="" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(bsddbDir)x64\Release AMD64\db_static.lib" + AdditionalDependencies="$(bsddbDepLibs)" BaseAddress="0x1e180000" /> <Tool @@ -295,7 +292,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(bsddbDir)" + AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.." /> <Tool Name="VCManagedResourceCompilerTool" @@ -305,11 +302,10 @@ /> <Tool Name="VCPreLinkEventTool" - CommandLine="cd $(bsddbDir)
if exist Release\libdb44s.lib exit 0
vcbuild /useenv db_static.vcproj "Release|Win32"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(bsddbDir)\Release\libdb44s.lib" + AdditionalDependencies="$(bsddbDepLibs)" BaseAddress="0x1e180000" /> <Tool @@ -359,7 +355,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(bsddbDir)" + AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.." /> <Tool Name="VCManagedResourceCompilerTool" @@ -369,11 +365,10 @@ /> <Tool Name="VCPreLinkEventTool" - CommandLine="cd $(bsddbDir)
if exist "x64\Release AMD64\db_static.lib" exit 0
vcbuild /useenv db_static.vcproj "Release AMD64|Win32"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(bsddbDir)x64\Release AMD64\db_static.lib" + AdditionalDependencies="$(bsddbDepLibs)" BaseAddress="0x1e180000" TargetMachine="17" /> @@ -423,7 +418,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(bsddbDir)" + AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.." /> <Tool Name="VCManagedResourceCompilerTool" @@ -433,11 +428,10 @@ /> <Tool Name="VCPreLinkEventTool" - CommandLine="cd $(bsddbDir)
if exist Release\libdb44s.lib exit 0
vcbuild /useenv db_static.vcproj "Release|Win32"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(bsddbDir)\Release\libdb44s.lib" + AdditionalDependencies="$(bsddbDepLibs)" BaseAddress="0x1e180000" /> <Tool @@ -487,7 +481,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(bsddbDir)" + AdditionalIncludeDirectories="$(bsddbDir),$(bsddbDir)\.." /> <Tool Name="VCManagedResourceCompilerTool" @@ -497,11 +491,10 @@ /> <Tool Name="VCPreLinkEventTool" - CommandLine="cd $(bsddbDir)
if exist x64\Release AMD64\db_static.lib exit 0
vcbuild /useenv db_static.vcproj "Release AMD64|Win32"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(bsddbDir)x64\Release AMD64\db_static.lib" + AdditionalDependencies="$(bsddbDepLibs)" BaseAddress="0x1e180000" TargetMachine="17" /> diff --git a/PCbuild/_sqlite3.vcproj b/PCbuild/_sqlite3.vcproj index 646c545..19d5497 100644 --- a/PCbuild/_sqlite3.vcproj +++ b/PCbuild/_sqlite3.vcproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" - Version="9,00" + Version="9.00" Name="_sqlite3" ProjectGUID="{13CECB97-4119-4316-9D42-8534019A5A44}" RootNamespace="_sqlite3" @@ -53,12 +53,9 @@ /> <Tool Name="VCPreLinkEventTool" - Description="Build sqlite3 libs and dll" - CommandLine="cd "$(sqlite3Dir)"
if not exist "$(OutDir)\sqlite3.dll" if exist $(PlatformName)\sqlite3.dll copy $(PlatformName)\sqlite3.dll "$(OutDir)"
if exist $(PlatformName)\sqlite3.lib exit 0
if not exist $(PlatformName) mkdir $(PlatformName)
cd $(PlatformName)
cl /DNO_TCL /Ox /Ob1 /Oi /GL /GF /FD /MD /Gy ..\*.c
link /INCREMENTAL:NO /NOLOGO /DLL /OPT:REF /OPT:ICF /def:..\sqlite3.def /dll /out:sqlite3.dll *.obj
if not exist "$(OutDir)\sqlite3.dll" copy sqlite3.dll "$(OutDir)"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(sqlite3Dir)\$(PlatformName)\sqlite3.lib" BaseAddress="0x1e180000" /> <Tool @@ -118,12 +115,9 @@ /> <Tool Name="VCPreLinkEventTool" - Description="Build sqlite3 libs and dll" - CommandLine="cd "$(sqlite3Dir)"
if not exist "$(OutDir)\sqlite3.dll" if exist $(PlatformName)\sqlite3.dll copy $(PlatformName)\sqlite3.dll "$(OutDir)"
if exist $(PlatformName)\sqlite3.lib exit 0
if not exist $(PlatformName) mkdir $(PlatformName)
cd $(PlatformName)
cl /DNO_TCL /Ox /Ob1 /Oi /GL /GF /FD /MD /Gy ..\*.c
link /INCREMENTAL:NO /NOLOGO /DLL /OPT:REF /OPT:ICF /def:..\sqlite3.def /dll /out:sqlite3.dll *.obj
if not exist "$(OutDir)\sqlite3.dll" copy sqlite3.dll "$(OutDir)"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(sqlite3Dir)\$(PlatformName)\sqlite3.lib" BaseAddress="0x1e180000" /> <Tool @@ -183,12 +177,9 @@ /> <Tool Name="VCPreLinkEventTool" - Description="Build sqlite3 libs and dll" - CommandLine="cd "$(sqlite3Dir)"
if not exist "$(OutDir)\sqlite3.dll" if exist $(PlatformName)\sqlite3.dll copy $(PlatformName)\sqlite3.dll "$(OutDir)"
if exist $(PlatformName)\sqlite3.lib exit 0
if not exist $(PlatformName) mkdir $(PlatformName)
cd $(PlatformName)
cl /DNO_TCL /Ox /Ob1 /Oi /GL /GF /FD /MD /Gy ..\*.c
link /INCREMENTAL:NO /NOLOGO /DLL /OPT:REF /OPT:ICF /def:..\sqlite3.def /dll /out:sqlite3.dll *.obj
if not exist "$(OutDir)\sqlite3.dll" copy sqlite3.dll "$(OutDir)"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(sqlite3Dir)\$(PlatformName)\sqlite3.lib" BaseAddress="0x1e180000" /> <Tool @@ -249,12 +240,9 @@ /> <Tool Name="VCPreLinkEventTool" - Description="Build sqlite3 libs and dll" - CommandLine="cd "$(sqlite3Dir)"
if not exist "$(OutDir)\sqlite3.dll" if exist $(PlatformName)\sqlite3.dll copy $(PlatformName)\sqlite3.dll "$(OutDir)"
if exist $(PlatformName)\sqlite3.lib exit 0
if not exist $(PlatformName) mkdir $(PlatformName)
cd $(PlatformName)
cl /DNO_TCL /Ox /Ob1 /Oi /GL /GF /FD /MD /Gy ..\*.c
link /INCREMENTAL:NO /NOLOGO /DLL /OPT:REF /OPT:ICF /def:..\sqlite3.def /dll /out:sqlite3.dll *.obj
if not exist "$(OutDir)\sqlite3.dll" copy sqlite3.dll "$(OutDir)"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(sqlite3Dir)\$(PlatformName)\sqlite3.lib" BaseAddress="0x1e180000" /> <Tool @@ -314,12 +302,9 @@ /> <Tool Name="VCPreLinkEventTool" - Description="Build sqlite3 libs and dll" - CommandLine="cd "$(sqlite3Dir)"
if not exist "$(OutDir)\sqlite3.dll" if exist $(PlatformName)\sqlite3.dll copy $(PlatformName)\sqlite3.dll "$(OutDir)"
if exist $(PlatformName)\sqlite3.lib exit 0
if not exist $(PlatformName) mkdir $(PlatformName)
cd $(PlatformName)
cl /DNO_TCL /Ox /Ob1 /Oi /GL /GF /FD /MD /Gy ..\*.c
link /INCREMENTAL:NO /NOLOGO /DLL /OPT:REF /OPT:ICF /def:..\sqlite3.def /dll /out:sqlite3.dll *.obj
if not exist "$(OutDir)\sqlite3.dll" copy sqlite3.dll "$(OutDir)"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(sqlite3Dir)\$(PlatformName)\sqlite3.lib" BaseAddress="0x1e180000" /> <Tool @@ -380,12 +365,9 @@ /> <Tool Name="VCPreLinkEventTool" - Description="Build sqlite3 libs and dll" - CommandLine="cd "$(sqlite3Dir)"
if not exist "$(OutDir)\sqlite3.dll" if exist $(PlatformName)\sqlite3.dll copy $(PlatformName)\sqlite3.dll "$(OutDir)"
if exist $(PlatformName)\sqlite3.lib exit 0
if not exist $(PlatformName) mkdir $(PlatformName)
cd $(PlatformName)
cl /DNO_TCL /Ox /Ob1 /Oi /GL /GF /FD /MD /Gy ..\*.c
link /INCREMENTAL:NO /NOLOGO /DLL /OPT:REF /OPT:ICF /def:..\sqlite3.def /dll /out:sqlite3.dll *.obj
if not exist "$(OutDir)\sqlite3.dll" copy sqlite3.dll "$(OutDir)"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(sqlite3Dir)\$(PlatformName)\sqlite3.lib" BaseAddress="0x1e180000" TargetMachine="17" /> @@ -446,12 +428,9 @@ /> <Tool Name="VCPreLinkEventTool" - Description="Build sqlite3 libs and dll" - CommandLine="cd "$(sqlite3Dir)"
if not exist "$(OutDir)\sqlite3.dll" if exist $(PlatformName)\sqlite3.dll copy $(PlatformName)\sqlite3.dll "$(OutDir)"
if exist $(PlatformName)\sqlite3.lib exit 0
if not exist $(PlatformName) mkdir $(PlatformName)
cd $(PlatformName)
cl /DNO_TCL /Ox /Ob1 /Oi /GL /GF /FD /MD /Gy ..\*.c
link /INCREMENTAL:NO /NOLOGO /DLL /OPT:REF /OPT:ICF /def:..\sqlite3.def /dll /out:sqlite3.dll *.obj
if not exist "$(OutDir)\sqlite3.dll" copy sqlite3.dll "$(OutDir)"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(sqlite3Dir)\$(PlatformName)\sqlite3.lib" BaseAddress="0x1e180000" /> <Tool @@ -512,12 +491,9 @@ /> <Tool Name="VCPreLinkEventTool" - Description="Build sqlite3 libs and dll" - CommandLine="cd "$(sqlite3Dir)"
if not exist "$(OutDir)\sqlite3.dll" if exist $(PlatformName)\sqlite3.dll copy $(PlatformName)\sqlite3.dll "$(OutDir)"
if exist $(PlatformName)\sqlite3.lib exit 0
if not exist $(PlatformName) mkdir $(PlatformName)
cd $(PlatformName)
cl /DNO_TCL /Ox /Ob1 /Oi /GL /GF /FD /MD /Gy ..\*.c
link /INCREMENTAL:NO /NOLOGO /DLL /OPT:REF /OPT:ICF /def:..\sqlite3.def /dll /out:sqlite3.dll *.obj
if not exist "$(OutDir)\sqlite3.dll" copy sqlite3.dll "$(OutDir)"
" /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(sqlite3Dir)\$(PlatformName)\sqlite3.lib" BaseAddress="0x1e180000" TargetMachine="17" /> diff --git a/PCbuild/_tkinter.vcproj b/PCbuild/_tkinter.vcproj index e3baa5c..e8f8aa5 100644 --- a/PCbuild/_tkinter.vcproj +++ b/PCbuild/_tkinter.vcproj @@ -56,7 +56,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(tcltkLib)" + AdditionalDependencies="$(tcltkLibDebug)" /> <Tool Name="VCALinkTool" @@ -104,7 +104,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(tcltk64Dir)\include"" + AdditionalIncludeDirectories="$(tcltk64Dir)\include" PreprocessorDefinitions="WITH_APPINIT" /> <Tool @@ -118,7 +118,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="$(tcltk64Lib)" + AdditionalDependencies="$(tcltk64LibDebug)" /> <Tool Name="VCALinkTool" @@ -229,7 +229,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(tcltk64Dir)\include"" + AdditionalIncludeDirectories="$(tcltk64Dir)\include" PreprocessorDefinitions="WITH_APPINIT" /> <Tool @@ -354,7 +354,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(tcltk64Dir)\include"" + AdditionalIncludeDirectories="$(tcltk64Dir)\include" PreprocessorDefinitions="WITH_APPINIT" /> <Tool @@ -480,7 +480,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(tcltk64Dir)\include"" + AdditionalIncludeDirectories="$(tcltk64Dir)\include" PreprocessorDefinitions="WITH_APPINIT" /> <Tool diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln index 69c4a83..6838d62 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -36,6 +36,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{B4D38F3F-68FB-42EC-A45D-E00657BB3627}" ProjectSection(ProjectDependencies) = postProject + {62172C7D-B39E-409A-B352-370FF5098C19} = {62172C7D-B39E-409A-B352-370FF5098C19} {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject @@ -67,6 +68,7 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {A1A295E5-463C-437F-81CA-1F32367685DA} = {A1A295E5-463C-437F-81CA-1F32367685DA} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}" @@ -114,6 +116,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcproj {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb44", "_bsddb44.vcproj", "{62172C7D-B39E-409A-B352-370FF5098C19}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -486,6 +492,38 @@ Global {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|Win32.Build.0 = Release|Win32 {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.ActiveCfg = Release|x64 {447F05A8-F581-4CAC-A466-5AC7936E207E}.Release|x64.Build.0 = Release|x64 + {62172C7D-B39E-409A-B352-370FF5098C19}.Debug|Win32.ActiveCfg = Debug|Win32 + {62172C7D-B39E-409A-B352-370FF5098C19}.Debug|Win32.Build.0 = Debug|Win32 + {62172C7D-B39E-409A-B352-370FF5098C19}.Debug|x64.ActiveCfg = Debug|x64 + {62172C7D-B39E-409A-B352-370FF5098C19}.Debug|x64.Build.0 = Debug|x64 + {62172C7D-B39E-409A-B352-370FF5098C19}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {62172C7D-B39E-409A-B352-370FF5098C19}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {62172C7D-B39E-409A-B352-370FF5098C19}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {62172C7D-B39E-409A-B352-370FF5098C19}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {62172C7D-B39E-409A-B352-370FF5098C19}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {62172C7D-B39E-409A-B352-370FF5098C19}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {62172C7D-B39E-409A-B352-370FF5098C19}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {62172C7D-B39E-409A-B352-370FF5098C19}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {62172C7D-B39E-409A-B352-370FF5098C19}.Release|Win32.ActiveCfg = Release|Win32 + {62172C7D-B39E-409A-B352-370FF5098C19}.Release|Win32.Build.0 = Release|Win32 + {62172C7D-B39E-409A-B352-370FF5098C19}.Release|x64.ActiveCfg = Release|x64 + {62172C7D-B39E-409A-B352-370FF5098C19}.Release|x64.Build.0 = Release|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.ActiveCfg = Debug|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|Win32.Build.0 = Debug|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.ActiveCfg = Debug|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Debug|x64.Build.0 = Debug|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.ActiveCfg = Release|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|Win32.Build.0 = Release|Win32 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.ActiveCfg = Release|x64 + {A1A295E5-463C-437F-81CA-1F32367685DA}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PCbuild/pyproject.vsprops b/PCbuild/pyproject.vsprops index 54819e88..ccf579d 100644 --- a/PCbuild/pyproject.vsprops +++ b/PCbuild/pyproject.vsprops @@ -46,23 +46,43 @@ /> <UserMacro Name="bsddbDir" - Value="..\..\db-4.4.20\build_win32\" + Value="$(bsddb44Dir)" + /> + <UserMacro + Name="bsddbDepLibs" + Value="$(bsddb44DepLibs)" + /> + <UserMacro + Name="bsddb44Dir" + Value="..\..\db-4.4.20\build_win32" + /> + <UserMacro + Name="bsddb44DepLibs" + Value="" + /> + <UserMacro + Name="bsddb45Dir" + Value="..\..\db-4.5.20.x\build_windows" + /> + <UserMacro + Name="bsddb45DepLibs" + Value="ws2_32.lib" /> <UserMacro Name="sqlite3Dir" - Value="..\..\sqlite-source-3.3.4\" + Value="..\..\sqlite-source-3.3.4" /> <UserMacro Name="bz2Dir" - Value="..\..\bzip2-1.0.3\" + Value="..\..\bzip2-1.0.3" /> <UserMacro Name="opensslDir" - Value="..\..\openssl-0.9.8g\" + Value="..\..\openssl-0.9.8g" /> <UserMacro Name="tcltkDir" - Value="..\..\tcltk\" + Value="..\..\tcltk" /> <UserMacro Name="tcltk64Dir" @@ -73,7 +93,15 @@ Value="$(tcltkDir)\lib\tcl84.lib $(tcltkDir)\lib\tk84.lib" /> <UserMacro + Name="tcltkLibDebug" + Value="$(tcltkDir)\lib\tcl84g.lib $(tcltkDir)\lib\tk84g.lib" + /> + <UserMacro Name="tcltk64Lib" Value="$(tcltk64Dir)\lib\tcl84.lib $(tcltk64Dir)\lib\tk84.lib" /> + <UserMacro + Name="tcltk64LibDebug" + Value="$(tcltk64Dir)\lib\tcl84g.lib $(tcltk64Dir)\lib\tk84g.lib" + /> </VisualStudioPropertySheet> diff --git a/Python/ast.c b/Python/ast.c index d5d84f7..be25ac3 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -2386,10 +2386,6 @@ ast_for_import_stmt(struct compiling *c, const node *n) /* from ... import * */ n = CHILD(n, idx); n_children = 1; - if (ndots) { - ast_error(n, "'import *' not allowed with 'from .'"); - return NULL; - } break; case LPAR: /* from ... import (x, y, z) */ diff --git a/Tools/buildbot/external-amd64.bat b/Tools/buildbot/external-amd64.bat index 0ea4d64..8fd452a 100644 --- a/Tools/buildbot/external-amd64.bat +++ b/Tools/buildbot/external-amd64.bat @@ -1,48 +1,17 @@ @rem Fetches (and builds if necessary) external dependencies -@REM XXX FIXME - building for x64 disabled for now. - @rem Assume we start inside the Python source directory -cd .. -call "%VS90COMNTOOLS%vsvars32.bat" - -@rem bzip -if not exist bzip2-1.0.3 svn export http://svn.python.org/projects/external/bzip2-1.0.3 - -@rem Sleepycat db -@rem Remove VS 2003 builds -if exist db-4.4.20 if not exist db-4.4.20\build_win32\this_is_for_vs9 ( - echo Removing old build - rd /s/q db-4.4.20 -) -if not exist db-4.4.20 svn export http://svn.python.org/projects/external/db-4.4.20-vs9 db-4.4.20 -if not exist db-4.4.20\build_win32\debug\libdb44sd.lib ( - vcbuild db-4.4.20\build_win32\db_static.vcproj "Debug AMD64|x64" -) +call "Tools\buildbot\external-common.bat" +call "%VS90COMNTOOLS%\vsvars32.bat" -@rem OpenSSL -if not exist openssl-0.9.8g ( - if exist openssl-0.9.8a rd /s/q openssl-0.9.8a - svn export http://svn.python.org/projects/external/openssl-0.9.8g +if not exist tcltk64\bin\tcl84g.dll ( + cd tcl-8.4.18.2\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk64 clean all install + cd ..\.. ) -@rem tcltk -if not exist tcl8.4.16 ( - if exist tcltk rd /s/q tcltk - if exist tcl8.4.12 rd /s/q tcl8.4.12 - if exist tk8.4.12 rd /s/q tk8.4.12 - svn export http://svn.python.org/projects/external/tcl8.4.16 - svn export http://svn.python.org/projects/external/tk8.4.16 -@REM cd tcl8.4.16\win -@REM nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 -@REM nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 INSTALLDIR=..\..\tcltk install -@REM cd ..\.. -@REM cd tk8.4.16\win -@REM nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 TCLDIR=..\..\tcl8.4.16 -@REM nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 TCLDIR=..\..\tcl8.4.16 INSTALLDIR=..\..\tcltk install -@REM cd ..\.. +if not exist tcltk64\bin\tk84g.dll ( + cd tk-8.4.18.1\win + nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.4.18.2 clean all install + cd ..\.. ) - -@rem sqlite -if not exist sqlite-source-3.3.4 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4 -@REM if not exist build\PCbuild\sqlite3.dll copy sqlite-source-3.3.4\sqlite3.dll build\PCbuild diff --git a/Tools/buildbot/external.bat b/Tools/buildbot/external.bat index ae18ead..4113605 100644 --- a/Tools/buildbot/external.bat +++ b/Tools/buildbot/external.bat @@ -1,46 +1,17 @@ @rem Fetches (and builds if necessary) external dependencies
@rem Assume we start inside the Python source directory
-cd ..
-call "%VS90COMNTOOLS%vsvars32.bat"
+call "Tools\buildbot\external-common.bat"
+call "%VS90COMNTOOLS%\vsvars32.bat"
-@rem bzip
-if not exist bzip2-1.0.3 svn export http://svn.python.org/projects/external/bzip2-1.0.3
-
-@rem Sleepycat db
-@rem Remove VS 2003 builds
-if exist db-4.4.20 if not exist db-4.4.20\build_win32\this_is_for_vs9 (
- echo Removing old build
- rd /s/q db-4.4.20
-)
-if not exist db-4.4.20 svn export http://svn.python.org/projects/external/db-4.4.20-vs9 db-4.4.20
-if not exist db-4.4.20\build_win32\debug\libdb44sd.lib (
- vcbuild db-4.4.20\build_win32\db_static.vcproj "Debug|Win32"
+if not exist tcltk\bin\tcl84g.dll (
+ cd tcl-8.4.18.2\win
+ nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all install
+ cd ..\..
)
-@rem OpenSSL
-if not exist openssl-0.9.8g (
- if exist openssl-0.9.8a rd /s/q openssl-0.9.8a
- svn export http://svn.python.org/projects/external/openssl-0.9.8g
+if not exist tcltk\bin\tk84g.dll (
+ cd tk-8.4.18.1\win
+ nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.4.18.2 clean all install
+ cd ..\..
)
-
-@rem tcltk
-if not exist tcl8.4.16 (
- if exist tcltk rd /s/q tcltk
- if exist tcl8.4.12 rd /s/q tcl8.4.12
- if exist tk8.4.12 rd /s/q tk8.4.12
- svn export http://svn.python.org/projects/external/tcl8.4.16
- svn export http://svn.python.org/projects/external/tk8.4.16
- cd tcl8.4.16\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 INSTALLDIR=..\..\tcltk install
- cd ..\..
- cd tk8.4.16\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 TCLDIR=..\..\tcl8.4.16
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 TCLDIR=..\..\tcl8.4.16 INSTALLDIR=..\..\tcltk install
- cd ..\..
-)
-
-@rem sqlite
-if not exist sqlite-source-3.3.4 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4
-if not exist build\PCbuild\sqlite3.dll copy sqlite-source-3.3.4\sqlite3.dll build\PCbuild
|