Lots of changes to the packaging of the documentation, all to keep
directories clean where the packages are unpacked.  Each package now
contains a single directory, Python-Docs-<version>/, which contains the
files for that version of the documentation.

Closes SF feature request #567576.
diff --git a/Doc/Makefile b/Doc/Makefile
index 49608da..f76238a 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -396,54 +396,54 @@
 
 $(ISILOINDEXFILES): $(COMMONPERL) html/about.dat perl/isilo.perl
 
-isilo:	isilo/python-api-$(RELEASE).pdb \
-	isilo/python-doc-$(RELEASE).pdb \
-	isilo/python-ext-$(RELEASE).pdb \
-	isilo/python-lib-$(RELEASE).pdb \
-	isilo/python-mac-$(RELEASE).pdb \
-	isilo/python-ref-$(RELEASE).pdb \
-	isilo/python-tut-$(RELEASE).pdb \
-	isilo/python-dist-$(RELEASE).pdb \
-	isilo/python-inst-$(RELEASE).pdb \
-	isilo/python-whatsnew-$(RELEASE).pdb
+isilo:	isilo/python-api.pdb \
+	isilo/python-doc.pdb \
+	isilo/python-ext.pdb \
+	isilo/python-lib.pdb \
+	isilo/python-mac.pdb \
+	isilo/python-ref.pdb \
+	isilo/python-tut.pdb \
+	isilo/python-dist.pdb \
+	isilo/python-inst.pdb \
+	isilo/python-whatsnew.pdb
 
-isilo/python-api-$(RELEASE).pdb: isilo/api/api.html isilo/api/api.css
+isilo/python-api.pdb: isilo/api/api.html isilo/api/api.css
 	$(MKISILO) "-iPython/C API Reference Manual" \
 		isilo/api/api.html $@
 
-isilo/python-doc-$(RELEASE).pdb: isilo/doc/doc.html isilo/doc/doc.css
+isilo/python-doc.pdb: isilo/doc/doc.html isilo/doc/doc.css
 	$(MKISILO) "-iDocumenting Python" \
 		isilo/doc/doc.html $@
 
-isilo/python-ext-$(RELEASE).pdb: isilo/ext/ext.html isilo/ext/ext.css
+isilo/python-ext.pdb: isilo/ext/ext.html isilo/ext/ext.css
 	$(MKISILO) "-iExtending & Embedding Python" \
 		isilo/ext/ext.html $@
 
-isilo/python-lib-$(RELEASE).pdb: isilo/lib/lib.html isilo/lib/lib.css
+isilo/python-lib.pdb: isilo/lib/lib.html isilo/lib/lib.css
 	$(MKISILO) "-iPython Library Reference" \
 		isilo/lib/lib.html $@
 
-isilo/python-mac-$(RELEASE).pdb: isilo/mac/mac.html isilo/mac/mac.css
+isilo/python-mac.pdb: isilo/mac/mac.html isilo/mac/mac.css
 	$(MKISILO) "-iPython/C API Reference Manual" \
 		isilo/mac/mac.html $@
 
-isilo/python-ref-$(RELEASE).pdb: isilo/ref/ref.html isilo/ref/ref.css
+isilo/python-ref.pdb: isilo/ref/ref.html isilo/ref/ref.css
 	$(MKISILO) "-iPython Reference Manual" \
 		isilo/ref/ref.html $@
 
-isilo/python-tut-$(RELEASE).pdb: isilo/tut/tut.html isilo/tut/tut.css
+isilo/python-tut.pdb: isilo/tut/tut.html isilo/tut/tut.css
 	$(MKISILO) "-iPython Tutorial" \
 		isilo/tut/tut.html $@
 
-isilo/python-dist-$(RELEASE).pdb: isilo/dist/dist.html isilo/dist/dist.css
+isilo/python-dist.pdb: isilo/dist/dist.html isilo/dist/dist.css
 	$(MKISILO) "-iDistributing Python Modules" \
 		isilo/dist/dist.html $@
 
-isilo/python-inst-$(RELEASE).pdb: isilo/inst/inst.html isilo/inst/inst.css
+isilo/python-inst.pdb: isilo/inst/inst.html isilo/inst/inst.css
 	$(MKISILO) "-iInstalling Python Modules" \
 		isilo/inst/inst.html $@
 
-isilo/python-whatsnew-$(RELEASE).pdb: isilo/whatsnew/$(WHATSNEW).html isilo/whatsnew/$(WHATSNEW).css
+isilo/python-whatsnew.pdb: isilo/whatsnew/$(WHATSNEW).html isilo/whatsnew/$(WHATSNEW).css
 	$(MKISILO) "-iWhat's New in Python X.Y" \
 		isilo/whatsnew/$(WHATSNEW).html $@
 
@@ -541,7 +541,11 @@
 	$(PYTHON) $(TOOLSDIR)/mksourcepkg --zip $(RELEASE)
 
 pdf-$(PAPER)-$(RELEASE).tar: $(PDFFILES)
-	cd paper-$(PAPER) && tar cf ../$@ *.pdf
+	rm -f $@
+	mkdir Python-Docs-$(RELEASE)
+	cp paper-$(PAPER)/*.pdf Python-Docs-$(RELEASE)
+	tar cf $@ Python-Docs-$(RELEASE)
+	rm -r Python-Docs-$(RELEASE)
 
 pdf-$(PAPER)-$(RELEASE).tgz: pdf-$(PAPER)-$(RELEASE).tar
 	gzip -9 <$? >$@
@@ -551,10 +555,18 @@
 
 pdf-$(PAPER)-$(RELEASE).zip: pdf
 	rm -f $@
-	cd paper-$(PAPER) && zip -q -9 ../$@ *.pdf
+	mkdir Python-Docs-$(RELEASE)
+	cp paper-$(PAPER)/*.pdf Python-Docs-$(RELEASE)
+	zip -q -r -9 $@ Python-Docs-$(RELEASE)
+	rm -r Python-Docs-$(RELEASE)
 
 postscript-$(PAPER)-$(RELEASE).tar: $(PSFILES) paper-$(PAPER)/README
-	cd paper-$(PAPER) && tar cf ../$@ *.ps README
+	rm -f $@
+	mkdir Python-Docs-$(RELEASE)
+	cp paper-$(PAPER)/*.ps Python-Docs-$(RELEASE)
+	cp paper-$(PAPER)/README Python-Docs-$(RELEASE)
+	tar cf $@ Python-Docs-$(RELEASE)
+	rm -r Python-Docs-$(RELEASE)
 
 postscript-$(PAPER)-$(RELEASE).tar.bz2: postscript-$(PAPER)-$(RELEASE).tar
 	bzip2 -9 <$< >$@
@@ -564,12 +576,21 @@
 
 postscript-$(PAPER)-$(RELEASE).zip: $(PSFILES) paper-$(PAPER)/README
 	rm -f $@
-	cd paper-$(PAPER) && zip -q -9 ../$@ *.ps README
+	mkdir Python-Docs-$(RELEASE)
+	cp paper-$(PAPER)/*.ps Python-Docs-$(RELEASE)
+	cp paper-$(PAPER)/README Python-Docs-$(RELEASE)
+	zip -q -r -9 $@ Python-Docs-$(RELEASE)
+	rm -r Python-Docs-$(RELEASE)
+
+HTMLPKGFILES=*.html */*.css */*.html */*.gif */*.txt
 
 html-$(RELEASE).tar:	$(ALLHTMLFILES) $(HTMLCSSFILES)
-	cd html && \
-		tar cf ../html-$(RELEASE).tar *.html */*.css */*.html \
-					      */*.gif */*.txt
+	mkdir Python-Docs-$(RELEASE)
+	cd html && tar cf ../temp.tar $(HTMLPKGFILES)
+	cd Python-Docs-$(RELEASE) && tar xf ../temp.tar
+	rm temp.tar
+	tar cf html-$(RELEASE).tar Python-Docs-$(RELEASE)
+	rm -r Python-Docs-$(RELEASE)
 
 html-$(RELEASE).tgz:	html-$(RELEASE).tar
 	gzip -9 <$? >$@
@@ -579,11 +600,19 @@
 
 html-$(RELEASE).zip:	$(ALLHTMLFILES) $(HTMLCSSFILES)
 	rm -f $@
-	cd html && \
-		zip -q -9 ../$@ *.html */*.css */*.html */*.gif */*.txt
+	mkdir Python-Docs-$(RELEASE)
+	cd html && tar cf ../temp.tar $(HTMLPKGFILES)
+	cd Python-Docs-$(RELEASE) && tar xf ../temp.tar
+	rm temp.tar
+	zip -q -r -9 $@ Python-Docs-$(RELEASE)
+	rm -r Python-Docs-$(RELEASE)
 
 isilo-$(RELEASE).zip:	isilo
-	cd isilo && zip -q -9 ../$@ python-*-$(RELEASE).pdb
+	rm -f $@
+	mkdir Python-Docs-$(RELEASE)
+	cp isilo/python-*.pdb Python-Docs-$(RELEASE)
+	zip -q -r -9 $@ Python-Docs-$(RELEASE)
+	rm -r Python-Docs-$(RELEASE)
 
 
 # convenience targets:
@@ -652,6 +681,6 @@
 	rm -rf isilo/api/ isilo/doc/ isilo/ext/ isilo/lib/ isilo/mac/
 	rm -rf isilo/ref/ isilo/tut/ isilo/inst/ isilo/dist/
 	rm -rf isilo/whatsnew/
-	rm -f isilo/python-*-$(RELEASE).pdb isilo-$(RELEASE).zip
+	rm -f isilo/python-*.pdb isilo-$(RELEASE).zip
 
 realclean distclean:  clobber
diff --git a/Doc/tools/mksourcepkg b/Doc/tools/mksourcepkg
index c3ea863..e5e6e65 100755
--- a/Doc/tools/mksourcepkg
+++ b/Doc/tools/mksourcepkg
@@ -73,7 +73,7 @@
           cvstag = args[1]
      tempdir = tempfile.mktemp()
      os.mkdir(tempdir)
-     pkgdir = os.path.join(tempdir, "Python-" + release)
+     pkgdir = os.path.join(tempdir, "Python-Docs-" + release)
      os.mkdir(pkgdir)
      pwd = os.getcwd()
      mydir = os.path.abspath(os.path.dirname(sys.argv[0]))
@@ -90,14 +90,15 @@
           # For some reason, SourceForge/CVS doesn't seem to care that we
           # might not have done a "cvs login" to the anonymous server.
           # That avoids a lot of painful gunk here.
-     os.chdir(pkgdir)
+     os.chdir(tempdir)
      if not quiet:
           print "--- current directory is:", pkgdir
      if cvstag:
-          run("cvs -d%s export -r %s -d Doc python/dist/src/Doc"
-              % (cvsroot, cvstag))
+          run("cvs -d%s export -r %s -d Python-Docs-%s python/dist/src/Doc"
+              % (cvsroot, cvstag, release))
      else:
-          run("cvs -Q -d%s checkout -d Doc python/dist/src/Doc" % cvsroot)
+          run("cvs -Q -d%s checkout -d Python-Docs-%s python/dist/src/Doc"
+              % (cvsroot, release))
           # remove CVS directories
           for p in ('*/CVS', '*/*/CVS', '*/*/*/CVS'):
                map(shutil.rmtree, glob.glob(p))
@@ -105,13 +106,13 @@
                map(os.unlink, glob.glob(f))
      LICENSE = os.path.normpath(
           os.path.join(mydir, os.pardir, os.pardir, "LICENSE"))
-     shutil.copyfile(LICENSE, "Doc/LICENSE")
+     shutil.copyfile(LICENSE, "LICENSE")
      if tools:
           archive = "doctools-" + release
           # we don't want the actual documents in this case:
           for d in ("api", "dist", "doc", "ext", "inst",
                     "lib", "mac", "ref", "tut"):
-               shutil.rmtree(os.path.join(os.path.join(pkgdir, "Doc"), d))
+               shutil.rmtree(os.path.join(pkgdir, d))
      else:
           archive = "latex-" + release
 
@@ -121,15 +122,15 @@
      archive = os.path.join(pwd, archive)
      for format in formats:
           if format == "bzip2":
-               run("tar cf - Python-%s | bzip2 -9 >%s.tar.bz2"
+               run("tar cf - Python-Docs-%s | bzip2 -9 >%s.tar.bz2"
                    % (release, archive))
           elif format == "gzip":
-               run("tar cf - Python-%s | gzip -9 >%s.tgz"
+               run("tar cf - Python-Docs-%s | gzip -9 >%s.tgz"
                    % (release, archive))
           elif format == "zip":
                if os.path.exists(archive + ".zip"):
                     os.unlink(archive + ".zip")
-               run("zip -q -r9 %s.zip Python-%s"
+               run("zip -q -r9 %s.zip Python-Docs-%s"
                    % (archive, release))
 
      # clean up the work area: