Merged revisions 58053-58090 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r58061 | ronald.oussoren | 2007-09-09 13:13:42 +0200 (Sun, 09 Sep 2007) | 12 lines

  Newer autoconf versions (from 2.60) want a 'datarootdir' definition in
  (Make-)files that use mandir (and other data directory macros).

  This patch solves a warning during configure, specifically:

  ...
  config.status: creating Makefile.pre
  config.status: WARNING:  ../Makefile.pre.in seems to ignore the --datarootdir setting
  ...

  See also: <http://www.gnu.org/software/automake/manual/autoconf/Changed-Directory-Variables.html>
........
  r58064 | gregory.p.smith | 2007-09-09 22:25:00 +0200 (Sun, 09 Sep 2007) | 2 lines

  email address update
........
  r58067 | gregory.p.smith | 2007-09-10 01:36:46 +0200 (Mon, 10 Sep 2007) | 22 lines

  Change socket.error to inherit from IOError rather than being a stand
  alone class.  This addresses the primary concern in

   http://bugs.python.org/issue1706815

  python-dev discussion here:

   http://mail.python.org/pipermail/python-dev/2007-July/073749.html

  I chose IOError rather than EnvironmentError as the base class since
  socket objects are often used as transparent duck typed file objects
  in code already prepared to deal with IOError exceptions.

  also a minor fix:

   urllib2 - fix a couple places where IOError was raised rather than URLError.
             for better or worse, URLError already inherits from IOError so
             this won't break any existing code.

   test_urllib2net - replace bad ftp urls.
........
  r58084 | martin.v.loewis | 2007-09-10 08:18:32 +0200 (Mon, 10 Sep 2007) | 3 lines

  tr a-z A-Z does not work on Solaris (would require
  /usr/xpg4/bin/tr); make the character ranges explicit.
........
  r58086 | martin.v.loewis | 2007-09-10 12:21:22 +0200 (Mon, 10 Sep 2007) | 1 line

  Take chm file from build/htmlhelp/pydoc.chm.
........
  r58087 | martin.v.loewis | 2007-09-10 12:22:05 +0200 (Mon, 10 Sep 2007) | 1 line

  Beginnings of a "build MSI" step.
........
  r58088 | martin.v.loewis | 2007-09-10 15:19:10 +0200 (Mon, 10 Sep 2007) | 1 line

  Allow making update with no prior checkout.
........
  r58089 | martin.v.loewis | 2007-09-10 15:20:03 +0200 (Mon, 10 Sep 2007) | 1 line

  Update before making htmlhelp.
........
  r58090 | martin.v.loewis | 2007-09-10 15:30:38 +0200 (Mon, 10 Sep 2007) | 1 line

  Require that bash.exe is on the path, along with the rest of Cygwin.
........
diff --git a/Doc/Makefile b/Doc/Makefile
index 8888cf6..21ca0b7 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -32,7 +32,7 @@
 	  svn checkout $(SVNROOT)/external/Pygments-0.8.1/pygments tools/pygments; \
 	fi
 
-update:
+update: checkout
 	svn update tools/sphinx
 	svn update tools/docutils
 	svn update tools/pygments
diff --git a/Lib/test/test_pipes.py b/Lib/test/test_pipes.py
index 94c2231..63eaa4d 100644
--- a/Lib/test/test_pipes.py
+++ b/Lib/test/test_pipes.py
@@ -9,6 +9,9 @@
 
 TESTFN2 = TESTFN + "2"
 
+# tr a-z A-Z is not portable, so make the ranges explicit
+s_command = 'tr %s %s' % (string.ascii_lowercase, string.ascii_uppercase)
+
 class SimplePipeTests(unittest.TestCase):
     def tearDown(self):
         for f in (TESTFN, TESTFN2):
@@ -16,7 +19,7 @@
 
     def testSimplePipe1(self):
         t = pipes.Template()
-        t.append('tr a-z A-Z', pipes.STDIN_STDOUT)
+        t.append(s_command, pipes.STDIN_STDOUT)
         f = t.open(TESTFN, 'w')
         f.write('hello world #1')
         f.close()
@@ -25,14 +28,14 @@
     def testSimplePipe2(self):
         open(TESTFN, 'w').write('hello world #2')
         t = pipes.Template()
-        t.append('tr a-z A-Z < $IN > $OUT', pipes.FILEIN_FILEOUT)
+        t.append(s_command + ' < $IN > $OUT', pipes.FILEIN_FILEOUT)
         t.copy(TESTFN, TESTFN2)
         self.assertEqual(open(TESTFN2).read(), 'HELLO WORLD #2')
 
     def testSimplePipe3(self):
         open(TESTFN, 'w').write('hello world #2')
         t = pipes.Template()
-        t.append('tr a-z A-Z < $IN', pipes.FILEIN_STDOUT)
+        t.append(s_command + ' < $IN', pipes.FILEIN_STDOUT)
         self.assertEqual(t.open(TESTFN, 'r').read(), 'HELLO WORLD #2')
 
     def testEmptyPipeline1(self):
diff --git a/Makefile.pre.in b/Makefile.pre.in
index aa280c0..2e03527 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -82,6 +82,9 @@
 # Install prefix for architecture-dependent files
 exec_prefix=	@exec_prefix@
 
+# Install prefix for data files
+datarootdir=    @datarootdir@
+
 # Expanded directories
 BINDIR=		$(exec_prefix)/bin
 LIBDIR=		$(exec_prefix)/lib
diff --git a/Tools/buildbot/buildmsi.bat b/Tools/buildbot/buildmsi.bat
new file mode 100644
index 0000000..c04f578
--- /dev/null
+++ b/Tools/buildbot/buildmsi.bat
@@ -0,0 +1,10 @@
+@rem Used by the buildbot "buildmsi" step.
+cmd /c Tools\buildbot\external.bat
+call "%VS71COMNTOOLS%vsvars32.bat"
+cmd /q/c Tools\buildbot\kill_python.bat
+devenv.com /useenv /build Release PCbuild\pcbuild.sln
+bash.exe -c 'cd Doc;make PYTHON=python2.5 update htmlhelp'
+"%ProgramFiles%\HTML Help Workshop\hhc.exe Doc\build\htmlhelp\pydoc.hhp
+cd Tools\msi
+del *.msi
+%HOST_PYTHON% msi.py
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index 0d54255..c179fd7 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -1049,7 +1049,7 @@
     htmlfiles.set_current()
     lib = PyDirectory(db, cab, root, "Doc", "Doc", "DOC|Doc")
     lib.start_component("documentation", keyfile="Python%s%s.chm" % (major,minor))
-    lib.add_file("Python%s%s.chm" % (major, minor))
+    lib.add_file("Python%s%s.chm" % (major, minor), src="build/htmlhelp/pydoc.chm")
 
     cab.commit(db)