[web] master update

Richard Levitte levitte at openssl.org
Thu Feb 28 14:42:40 UTC 2019


The branch master has been updated
       via  73fe28cd382b6b5fb3c84ec227e8dedce23c2ac4 (commit)
       via  3926d4eec53217895bed4a0dca5394707fbccc66 (commit)
       via  9873de29128aab496a239d4efb6f1f2a0fad6915 (commit)
       via  2caab96c8e0a03e6891a67f1a02b91f3f6f94952 (commit)
       via  ee0137412475ec26b9a9f5f60785d849c89f231f (commit)
       via  8bf82949d36d42eb11836202950256db99bfcc27 (commit)
       via  ea1a835c5069fcb1bdf1126093aeba88f90ef3f7 (commit)
       via  b654262bace5ca81b49e0fc2e62c8ad09809d77e (commit)
       via  d69832a8f9741ef27965e1315fdf53a081457d54 (commit)
       via  d8d36be2491589e2aae592c65fbd5de58383ea46 (commit)
       via  af3fbdeeb010afdb9dba864aee19e18115c0e3f5 (commit)
       via  eb90cf76b940668286deda9035faef001e771945 (commit)
       via  3dcc5b7ed327b993341fe3d25f62f4aba6b4a98c (commit)
       via  b0f6bb016691f83583ef9b7cac1f29901c1e51e6 (commit)
       via  e1b59a61f7397e2e08e572c77997e3ef6157f064 (commit)
      from  160ebaa336556bd42c4df6354f70cabeab77ca7c (commit)


- Log -----------------------------------------------------------------
commit 73fe28cd382b6b5fb3c84ec227e8dedce23c2ac4
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Feb 25 22:08:15 2019 +0100

    Add commentary in the Makefile to explain what is going on
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit 3926d4eec53217895bed4a0dca5394707fbccc66
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Feb 25 01:14:46 2019 +0100

    Change news/openssl-notes.html.in to use Template Toolkit
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit 9873de29128aab496a239d4efb6f1f2a0fad6915
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Feb 25 01:00:36 2019 +0100

    Clean up .gitignore
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit 2caab96c8e0a03e6891a67f1a02b91f3f6f94952
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Feb 25 00:56:11 2019 +0100

    Remove redundancy: generate vulnerabilities indexes from templates
    
    Adapt Makefile accordingly
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit ee0137412475ec26b9a9f5f60785d849c89f231f
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Feb 25 00:36:14 2019 +0100

    Remove redundancy: generate source indexes from templates
    
    Adapt Makefile accordingly
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit 8bf82949d36d42eb11836202950256db99bfcc27
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 23:14:14 2019 +0100

    Remove redundancy: remove the manpage dir cleanup from bin/mk-manpages
    
    Let the Makefile take care of it instead
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit ea1a835c5069fcb1bdf1126093aeba88f90ef3f7
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 23:13:23 2019 +0100

    Remove redundancy: generate docs/manpages.html from template
    
    Change Makefile accordingly
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit b654262bace5ca81b49e0fc2e62c8ad09809d77e
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 23:07:03 2019 +0100

    Remove redundancy: generate all manpage indexes from templates
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit d69832a8f9741ef27965e1315fdf53a081457d54
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 14:12:54 2019 +0100

    Remove redundancy: produce news/changelog.html from a template
    
    This templates produces a list of links to release changelogs from a
    passed list of release versions.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit d8d36be2491589e2aae592c65fbd5de58383ea46
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 14:01:32 2019 +0100

    Remove redundancy: add a template processing script
    
    The choice comes to using [Template Toolkit], as it's powerful,
    flexible, and consistent enough.
    
    -----
    
    [Template Toolkit]: http://www.template-toolkit.org/
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit af3fbdeeb010afdb9dba864aee19e18115c0e3f5
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 13:31:57 2019 +0100

    Remove redundancy: strip away hard coded release versions from scripts
    
    Adapt Makefile accordingly
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit eb90cf76b940668286deda9035faef001e771945
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 13:06:10 2019 +0100

    Remove redundancy: documentation
    
    Move the processing of changelogs and notes to use SERIES, using GNU
    make features.
    
    This only does part of the job.  A later commit will automatically
    create the whole documentation directory structure from templates.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit 3dcc5b7ed327b993341fe3d25f62f4aba6b4a98c
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 12:51:16 2019 +0100

    Remove redundancy: vulnerability pages
    
    Move the processing of vulnerability pages to use SERIES and
    OLDSERIES, using GNU make features.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit b0f6bb016691f83583ef9b7cac1f29901c1e51e6
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 12:48:34 2019 +0100

    Remove redundancy: changelogs and notes
    
    Move the processing of changelogs and notes to use SERIES, using GNU
    make features.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

commit e1b59a61f7397e2e08e572c77997e3ef6157f064
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 24 12:43:00 2019 +0100

    Remove redundancy: Start with defining a few variables for release series
    
    We hard code release series in much too many places, which is error
    prone.
    
    We start with defining a few make variables with current and older
    series.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/web/pull/120)

-----------------------------------------------------------------------

Summary of changes:
 .gitignore                                         |  26 +-
 Makefile                                           | 318 +++++++++++++--------
 bin/from-tt                                        | 123 ++++++++
 bin/mk-mancross                                    |   2 +-
 bin/mk-manpages                                    |  51 ----
 bin/mk-sitemap                                     |   4 +-
 docs/man1.0.2/index.html                           |  40 ---
 docs/man1.0.2/man3/index.html                      |  47 ---
 docs/man1.0.2/man5/index.html                      |  41 ---
 docs/man1.1.0/index.html                           |  40 ---
 docs/man1.1.0/man1/index.html                      |  44 ---
 docs/man1.1.0/man7/index.html                      |  43 ---
 docs/man1.1.1/man1/index.html                      |  44 ---
 docs/man1.1.1/man3/index.html                      |  48 ----
 docs/man1.1.1/man5/index.html                      |  43 ---
 docs/man1.1.1/man7/index.html                      |  43 ---
 docs/manmaster/index.html                          |  40 ---
 docs/manmaster/man1/index.html                     |  44 ---
 docs/manmaster/man3/index.html                     |  48 ----
 docs/manmaster/man5/index.html                     |  43 ---
 docs/manmaster/man7/index.html                     |  43 ---
 docs/{manpages.html => manpages.html.tt}           |   7 +-
 docs/{man1.1.1/index.html => sub-index.html.tt}    |   6 +-
 .../man1/index.html => sub-man1-index.html.tt}     |   7 +-
 .../man3/index.html => sub-man3-index.html.tt}     |  10 +-
 .../man5/index.html => sub-man5-index.html.tt}     |  10 +-
 .../man7/index.html => sub-man7-index.html.tt}     |  10 +-
 inc/common.tt                                      |   9 +
 news/{changelog.html => changelog.html.tt}         |   6 +-
 ...openssl-notes.html.in => openssl-notes.html.tt} |   6 +-
 news/vulnerabilities-0.9.6.html                    |  39 ---
 news/vulnerabilities-0.9.7.html                    |  39 ---
 news/vulnerabilities-0.9.8.html                    |  39 ---
 news/vulnerabilities-1.0.0.html                    |  39 ---
 news/vulnerabilities-1.0.1.html                    |  39 ---
 news/vulnerabilities-1.0.2.html                    |  37 ---
 news/vulnerabilities-1.1.0.html                    |  37 ---
 news/vulnerabilities-1.1.1.html                    |  37 ---
 ...ulnerabilities.html => vulnerabilities.html.tt} |   2 +-
 source/old/0.9.x/index.html                        |  39 ---
 source/old/1.0.0/index.html                        |  41 ---
 source/old/1.0.1/index.html                        |  41 ---
 source/old/1.0.2/index.html                        |  41 ---
 source/old/1.1.0/index.html                        |  41 ---
 source/old/1.1.1/index.html                        |  41 ---
 source/old/{index.html => index.html.tt}           |  10 +-
 source/old/{fips/index.html => sub-index.html.tt}  |   5 +-
 47 files changed, 377 insertions(+), 1436 deletions(-)
 create mode 100755 bin/from-tt
 delete mode 100644 docs/man1.0.2/index.html
 delete mode 100644 docs/man1.0.2/man3/index.html
 delete mode 100644 docs/man1.0.2/man5/index.html
 delete mode 100644 docs/man1.1.0/index.html
 delete mode 100644 docs/man1.1.0/man1/index.html
 delete mode 100644 docs/man1.1.0/man7/index.html
 delete mode 100644 docs/man1.1.1/man1/index.html
 delete mode 100644 docs/man1.1.1/man3/index.html
 delete mode 100644 docs/man1.1.1/man5/index.html
 delete mode 100644 docs/man1.1.1/man7/index.html
 delete mode 100644 docs/manmaster/index.html
 delete mode 100644 docs/manmaster/man1/index.html
 delete mode 100644 docs/manmaster/man3/index.html
 delete mode 100644 docs/manmaster/man5/index.html
 delete mode 100644 docs/manmaster/man7/index.html
 rename docs/{manpages.html => manpages.html.tt} (78%)
 rename docs/{man1.1.1/index.html => sub-index.html.tt} (86%)
 rename docs/{man1.0.2/man1/index.html => sub-man1-index.html.tt} (85%)
 rename docs/{man1.1.0/man3/index.html => sub-man3-index.html.tt} (84%)
 rename docs/{man1.1.0/man5/index.html => sub-man5-index.html.tt} (81%)
 rename docs/{man1.0.2/man7/index.html => sub-man7-index.html.tt} (81%)
 create mode 100644 inc/common.tt
 rename news/{changelog.html => changelog.html.tt} (89%)
 rename news/{openssl-notes.html.in => openssl-notes.html.tt} (80%)
 delete mode 100644 news/vulnerabilities-0.9.6.html
 delete mode 100644 news/vulnerabilities-0.9.7.html
 delete mode 100644 news/vulnerabilities-0.9.8.html
 delete mode 100644 news/vulnerabilities-1.0.0.html
 delete mode 100644 news/vulnerabilities-1.0.1.html
 delete mode 100644 news/vulnerabilities-1.0.2.html
 delete mode 100644 news/vulnerabilities-1.1.0.html
 delete mode 100644 news/vulnerabilities-1.1.1.html
 rename news/{vulnerabilities.html => vulnerabilities.html.tt} (92%)
 delete mode 100644 source/old/0.9.x/index.html
 delete mode 100644 source/old/1.0.0/index.html
 delete mode 100644 source/old/1.0.1/index.html
 delete mode 100644 source/old/1.0.2/index.html
 delete mode 100644 source/old/1.1.0/index.html
 delete mode 100644 source/old/1.1.1/index.html
 rename source/old/{index.html => index.html.tt} (71%)
 rename source/old/{fips/index.html => sub-index.html.tt} (87%)

diff --git a/.gitignore b/.gitignore
index 51ee8fc..b307d34 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,23 +3,15 @@
 *.cross
 blog
 sitemap.txt
-docs/*/apps/*
-!docs/*/apps/index.html
-docs/*/crypto/*
-!docs/*/crypto/index.html
-docs/*/ssl/*
-!docs/*/ssl/index.html
-docs/*/man1/*
-!docs/*/man1/index.html
-docs/*/man3/*
-!docs/*/man3/index.html
-docs/*/man5/*
-!docs/*/man5/index.html
-docs/*/man7/*
-!docs/*/man7/index.html
 community/committers.inc
+community/omc-alumni.inc
+community/omc.inc
+docs/OpenSSL300Design.html
+docs/OpenSSLStrategicArchitecture.html
 docs/faq.inc
 docs/fips.inc
+docs/man*/
+news/changelog.html
 news/changelog.inc
 news/changelog.txt
 news/cl*.txt
@@ -27,13 +19,11 @@ news/newsflash.inc
 news/openssl-*-notes.html
 news/openssl-*-notes.inc
 news/vulnerabilities*.inc
+news/vulnerabilities*.html
 newsflash.inc
 source/*.gz*
 source/*.patch
 source/.htaccess
 source/index.inc
-source/old/*/*.patch
-source/old/*/*.tar.gz*
-source/old/*/*.txt.asc
-source/old/*/index.inc
+source/old/*/
 source/snapshot
diff --git a/Makefile b/Makefile
index 37ffb75..49b9845 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,23 @@ SNAP = $(CHECKOUTS)/openssl
 ## Where releases are found.
 RELEASEDIR = /var/www/openssl/source
 
+######################################################################
+##
+##  Release series.  These represent our release branches, and are
+##  our foundation for what should be built and how (often generated)
+##
+##  The numbers given here RULE
+##
+
+##  Current series
+SERIES=1.1.1 1.1.0 1.0.2
+##  Older series.  The second type is for source listings
+OLDSERIES=1.0.1 1.0.0 0.9.8 0.9.7 0.9.6
+OLDSERIES2=1.0.1 1.0.0 0.9.x
+##  Current series with newer and older manpage layout
+##  (when the number of old man layout releases drop to none, this goes away)
+NEWMANSERIES=1.1.1
+OLDMANSERIES=1.1.0 1.0.2
 
 # All simple generated files.
 SIMPLE = newsflash.inc sitemap.txt \
@@ -16,31 +33,19 @@ SIMPLE = newsflash.inc sitemap.txt \
 	 docs/faq.inc docs/fips.inc \
 	 docs/OpenSSLStrategicArchitecture.html \
 	 docs/OpenSSL300Design.html \
-         news/changelog.inc news/changelog.txt \
-         news/cl102.txt news/cl110.txt news/cl111.txt \
-         news/openssl-1.0.2-notes.inc \
-         news/openssl-1.1.0-notes.inc \
-         news/openssl-1.1.1-notes.inc \
+	 docs/manpages.html \
+         news/changelog.html \
+	 $(foreach S,$(SERIES),news/openssl-$(S)-notes.inc) \
+	 $(foreach S,$(SERIES),news/openssl-$(S)-notes.html) \
 	 news/newsflash.inc \
 	 news/vulnerabilities.inc \
-	 news/vulnerabilities-1.1.1.inc \
-	 news/vulnerabilities-1.1.0.inc \
-	 news/vulnerabilities-1.0.2.inc \
-	 news/vulnerabilities-1.0.1.inc \
-	 news/vulnerabilities-1.0.0.inc \
-	 news/vulnerabilities-0.9.8.inc \
-	 news/vulnerabilities-0.9.7.inc \
-	 news/vulnerabilities-0.9.6.inc \
+	 news/vulnerabilities.html \
+	 $(foreach S,$(SERIES) $(OLDSERIES),news/vulnerabilities-$(S).inc) \
+	 $(foreach S,$(SERIES) $(OLDSERIES),news/vulnerabilities-$(S).html) \
 	 source/.htaccess \
-	 source/index.inc
-SRCLISTS = \
-	   source/old/0.9.x/index.inc \
-	   source/old/1.0.0/index.inc \
-	   source/old/1.0.1/index.inc \
-	   source/old/1.0.2/index.inc \
-	   source/old/1.1.0/index.inc \
-	   source/old/1.1.1/index.inc \
-	   source/old/fips/index.inc \
+	 source/index.inc \
+	 source/old/index.html
+SRCLISTS = $(foreach S,$(SERIES) $(OLDSERIES2) fips,source/old/$(S)/index.inc source/old/$(S)/index.html)
 
 
 .SUFFIXES: .md .html
@@ -64,37 +69,97 @@ simple: all
 generated: all
 rebuild: all
 
+######################################################################
+##
+##  Man-page building section
+##
+##  This is quite a complex set of rules, because there are many
+##  things that need to be built:
+##
+##  -   The man-pages themselves
+##  -   Apropos-like listings
+##  -   Cross-references between man-pages in different OpenSSL
+##      versions
+##
+##  A lot of the work is made with generated rules.
+
+# makemanpages creates rules for targets like manpages-1.1.1, to
+# build the set of man-pages and indexes of man-pages for the given
+# OpenSSL release (such as 1.1.1)
+#
+# $(1) = input directory in CHECKOUTS, $(2) = release version
 define makemanpages
-	./bin/mk-manpages $(1)/doc $(2) docs/man$(2)
+manpages-$(2):
+	@rm -rf docs/man$(2)
+	@mkdir -p docs/man$(2) \
+		  docs/man$(2)/man1 \
+		  docs/man$(2)/man3 \
+		  docs/man$(2)/man5 \
+		  docs/man$(2)/man7
+	./bin/mk-manpages $(CHECKOUTS)/$(1)/doc $(2) docs/man$(2)
 	./bin/mk-apropos docs/man$(2)/man1 > docs/man$(2)/man1/index.inc
 	./bin/mk-apropos docs/man$(2)/man3 > docs/man$(2)/man3/index.inc
 	./bin/mk-apropos docs/man$(2)/man5 > docs/man$(2)/man5/index.inc
 	./bin/mk-apropos docs/man$(2)/man7 > docs/man$(2)/man7/index.inc
+	./bin/from-tt -d docs/man$(2)/man1 releases='$(SERIES)' release='$(2)' \
+		      < docs/sub-man1-index.html.tt > docs/man$(2)/man1/index.html
+	./bin/from-tt -d docs/man$(2)/man1 releases='$(SERIES)' release='$(2)' \
+		      < docs/sub-man3-index.html.tt > docs/man$(2)/man3/index.html
+	./bin/from-tt -d docs/man$(2)/man1 releases='$(SERIES)' release='$(2)' \
+		      < docs/sub-man5-index.html.tt > docs/man$(2)/man5/index.html
+	./bin/from-tt -d docs/man$(2)/man1 releases='$(SERIES)' release='$(2)' \
+		      < docs/sub-man7-index.html.tt > docs/man$(2)/man7/index.html
+	./bin/from-tt -d docs/man$(2) releases='$(SERIES)' release='$(2)' \
+		      < docs/sub-index.html.tt > docs/man$(2)/index.html
 endef
-define makemanmap
+
+# makeoldmanmap creates a .htaccess for the man-pages of a given OpenSSL
+# release.  This is only needed for OpenSSL releases where the subdirectories
+# of doc/ are apps/, crypto/ and ssl/.  OpenSSL 1.1.1 and later have a
+# different structure and don't need this: man1/, man3/, man5/ and man7/.
+#
+# $(1) = release version
+define makeoldmanmap
+manmap-$(1):
 	./bin/mk-manmap docs/man$(1) > docs/man$(1)/.htaccess
 endef
-manpages: manmaster
-	$(call makemanpages,$(CHECKOUTS)/openssl-1.1.1-stable,1.1.1)
-	$(call makemanpages,$(CHECKOUTS)/openssl-1.1.0-stable,1.1.0)
-	$(call makemanmap,1.1.0)
-	$(call makemanpages,$(CHECKOUTS)/openssl-1.0.2-stable,1.0.2)
-	$(call makemanmap,1.0.2)
 
-manmaster:
-	$(call makemanpages,$(CHECKOUTS)/openssl,master)
+# Now that we have the generating macros in place, let's use them!
+#
+# Start off with creating the 'manpages-master' target, taking the
+# source from $(CHECKOUTS)/openssl/doc
+$(eval $(call makemanpages,openssl,master))
+
+# Next, create 'manpages-x.y.z' for all current releases, taking the
+# source from $(CHECKOUTS)/openssl-x.y.z-stable/doc
+$(foreach S,$(SERIES),$(eval $(call makemanpages,openssl-$(S)-stable,$(S))))
+
+# Finally, create 'manmap-x.y.z' for all releases with the old doc/
+# structure.
+$(foreach S,$(OLDMANSERIES),$(eval $(call makeoldmanmap,$(S))))
+
+manmaster: manpages-master
+manpages: $(foreach S,$(NEWMANSERIES),manpages-$(S)) \
+	  $(foreach S,$(OLDMANSERIES),manpages-$(S) manmap-$(S))
 
 mancross:
-	./bin/mk-mancross
+	./bin/mk-mancross master $(SERIES)
+
+docs/manpages.html: docs/manpages.html.tt
+	@rm -f $@
+	./bin/from-tt releases='master $(SERIES)' docs/manpages.html.tt
 
-## $(SIMPLE) -- SIMPLE GENERATED FILES
+######################################################################
+##
+##  $(SIMPLE) -- SIMPLE GENERATED FILES
+##
 .PHONY: sitemap community/committers.inc community/omc.inc community/omc-alumni.inc
 newsflash.inc: news/newsflash.inc
 	@rm -f $@
 	head -7 $? >$@
 sitemap sitemap.txt:
 	@rm -f sitemap.txt
-	./bin/mk-sitemap > sitemap.txt
+	./bin/mk-sitemap master $(SERIES) > sitemap.txt
 
 community/committers.inc:
 	@rm -f $@
@@ -117,69 +182,83 @@ docs/fips.inc: $(wildcard docs/fips/*) bin/mk-filelist
 news/changelog.inc: news/changelog.txt bin/mk-changelog
 	@rm -f $@
 	./bin/mk-changelog <news/changelog.txt >$@
-news/changelog.txt: $(SNAP)/CHANGES
-	@rm -f $@
-	cp $? $@
-news/cl102.txt: $(CHECKOUTS)/openssl-1.0.2-stable/CHANGES
-	@rm -f $@
-	cp $? $@
-news/cl110.txt: $(CHECKOUTS)/openssl-1.1.0-stable/CHANGES
-	@rm -f $@
-	cp $? $@
-news/cl111.txt: $(CHECKOUTS)/openssl-1.1.1-stable/CHANGES
-	@rm -f $@
-	cp $? $@
-news/openssl-1.0.2-notes.html: news/openssl-notes.html.in
-	@rm -f $@
-	sed -e 's|@VERSION@|1.0.2|g' < $< > $@
-news/openssl-1.1.0-notes.html: news/openssl-notes.html.in
-	@rm -f $@
-	sed -e 's|@VERSION@|1.1.0|g' < $< > $@
-news/openssl-1.1.1-notes.html: news/openssl-notes.html.in
+news/changelog.html: news/changelog.html.tt news/changelog.inc
 	@rm -f $@
-	sed -e 's|@VERSION@|1.1.1|g' < $< > $@
-news/openssl-1.0.2-notes.inc: $(CHECKOUTS)/openssl-1.0.2-stable/NEWS news/openssl-1.0.2-notes.html bin/mk-notes
-	@rm -f $@
-	./bin/mk-notes 1.0.2 < $(CHECKOUTS)/openssl-1.0.2-stable/NEWS > $@
-news/openssl-1.1.0-notes.inc: $(CHECKOUTS)/openssl-1.1.0-stable/NEWS news/openssl-1.1.0-notes.html bin/mk-notes
-	@rm -f $@
-	./bin/mk-notes 1.1.0 < $(CHECKOUTS)/openssl-1.1.0-stable/NEWS > $@
-news/openssl-1.1.1-notes.inc: $(CHECKOUTS)/openssl-1.1.1-stable/NEWS news/openssl-1.1.1-notes.html bin/mk-notes
-	@rm -f $@
-	./bin/mk-notes 1.1.1 < $(CHECKOUTS)/openssl-1.1.1-stable/NEWS > $@
+	./bin/from-tt 'releases=$(SERIES)' $<
+# Additionally, make news/changelog.html depend on clxyz.txt, where xyz
+# comes from the release number x.y.z.  This permits it to be automatically
+# recreated whenever there's a new major release.
+news/changelog.html: $(foreach S,$(SERIES),news/cl$(subst .,,$(S)).txt)
+
+# mknews_changelogtxt creates a target and ruleset for any changelog text
+# file depending on the CHANGES file from the target release.
+#
+# $(1) = output file, $(2) = source directory in CHECKOUTS
+define mknews_changelogtxt
+news/$(1): $(CHECKOUTS)/$(2)/CHANGES
+	@rm -f $$@
+	cp $$? $$@
+endef
+
+# Create the target 'news/changelog.txt', taking the source from
+# $(CHECKOUTS)/openssl/CHANGES
+$(eval $(call mknews_changelogtxt,changelog.txt,openssl))
+
+# Create the targets 'news/clxyz.txt' for all current releases, taking the
+# source from $(CHECKOUTS)/openssl-x.y.z-stable/CHANGES
+$(foreach S,$(SERIES),\
+$(eval $(call mknews_changelogtxt,cl$(subst .,,$(S)).txt,openssl-$(S)-stable)))
+
+# mknews_noteshtml creates two targets and rulesets for creating notes from
+# the NEWS file for each release.  One target is to create a wrapping HTML
+# file from a template, the other is to create the inclusion file with the
+# actual text.
+#
+# $(1) = release version
+define mknews_noteshtml
+news/openssl-$(1)-notes.html: news/openssl-notes.html.tt
+	@rm -f $$@
+	./bin/from-tt -d news release='$(1)' < $$< > $$@
+news/openssl-$(1)-notes.inc: $(CHECKOUTS)/openssl-$(1)-stable/NEWS bin/mk-notes
+	@rm -f $$@
+	./bin/mk-notes $(1) < $(CHECKOUTS)/openssl-$(1)-stable/NEWS > $$@
+endef
+
+# Create the targets 'news/openssl-x.y.z-notes.html' and
+# 'news/openssl-x.y.z-notes.inc' for each release number x.y.z, taking
+# the source from $(CHECKOUTS)/openssl-$(1)-stable/NEWS
+$(foreach S,$(SERIES),$(eval $(call mknews_noteshtml,$(S))))
+
 news/newsflash.inc: news/newsflash.txt
 	sed <$? >$@ \
 	    -e '/^#/d' \
 	    -e 's@^@<tr><td class="d">@' \
 	    -e 's@: @</td><td class="t">@' \
 	    -e 's@$$@</td></tr>@'
-news/vulnerabilities.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml > $@
-news/vulnerabilities-1.1.1.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml -b 1.1.1 > $@
-news/vulnerabilities-1.1.0.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml -b 1.1.0 > $@
-news/vulnerabilities-1.0.2.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml -b 1.0.2 > $@
-news/vulnerabilities-1.0.1.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml -b 1.0.1 > $@
-news/vulnerabilities-1.0.0.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml -b 1.0.0 > $@
-news/vulnerabilities-0.9.8.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml -b 0.9.8 > $@
-news/vulnerabilities-0.9.7.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml -b 0.9.7 > $@
-news/vulnerabilities-0.9.6.inc: bin/mk-cvepage news/vulnerabilities.xml
-	@rm -f $@
-	./bin/mk-cvepage -i news/vulnerabilities.xml -b 0.9.6 > $@
+
+# mknews_vulnerability creates two targets and rulesets for creating
+# vulnerability lists for each release.  One target is to create a wrapping
+# HTML file from a template, the other is to create the inclusion file with
+# the actual text.
+#
+# $(1) = output file mod, $(2) = release version switch, $(3) = release version
+define mknews_vulnerability
+news/vulnerabilities$(1).inc: bin/mk-cvepage news/vulnerabilities.xml
+	@rm -f $$@
+	./bin/mk-cvepage -i news/vulnerabilities.xml $(2) > $$@
+news/vulnerabilities$(1).html: news/vulnerabilities.html.tt bin/from-tt
+	@rm -f $$@
+	./bin/from-tt -d news vulnerabilitiesinc='vulnerabilities$(1).inc' < $$< > $$@
+endef
+
+# Create the main vulnerability index 'news/vulnerabilities.html' and
+# 'news/vulnerabilities.inc'
+$(eval $(call mknews_vulnerability,,))
+
+# Create the vulnerability index 'news/vulnerabilities-x.y.z.html' and
+# 'news/vulnerabilities-x.y.z.inc' for each release x.y.z
+$(foreach S,$(SERIES) $(OLDSERIES),$(eval $(call mknews_vulnerability,-$(S),-b $(S))))
+
 source/.htaccess: $(wildcard source/openssl-*.tar.gz) bin/mk-latest
 	@rm -f @?
 	./bin/mk-latest source >$@
@@ -187,34 +266,41 @@ source/index.inc: $(wildcard $(RELEASEDIR)/openssl-*.tar.gz) bin/mk-filelist
 	@rm -f $@
 	./bin/mk-filelist $(RELEASEDIR) '' 'openssl-*.tar.gz' >$@
 
-## $(SRCLISTS) -- LISTS OF SOURCES
-source/old/0.9.x/index.inc: $(wildcard source/old/0.9.x/*.gz) bin/mk-filelist
-	@rm -f $@
-	./bin/mk-filelist source/old/0.9.x '' '*.gz' >$@
-source/old/1.0.0/index.inc: $(wildcard source/old/1.0.0/*.gz) bin/mk-filelist
-	@rm -f $@
-	./bin/mk-filelist source/old/1.0.0 '' '*.gz' >$@
-source/old/1.0.1/index.inc: $(wildcard source/old/1.0.1/*.gz) bin/mk-filelist
-	@rm -f $@
-	./bin/mk-filelist source/old/1.0.1 '' '*.gz' >$@
-source/old/1.0.2/index.inc: $(wildcard source/old/1.0.2/*.gz) bin/mk-filelist
-	@rm -f $@
-	./bin/mk-filelist source/old/1.0.2 '' '*.gz' >$@
-source/old/1.1.0/index.inc: $(wildcard source/old/1.1.0/*.gz) bin/mk-filelist
-	@rm -f $@
-	./bin/mk-filelist source/old/1.1.0 '' '*.gz' >$@
-source/old/1.1.1/index.inc: $(wildcard source/old/1.1.1/*.gz) bin/mk-filelist
-	@rm -f $@
-	./bin/mk-filelist source/old/1.1.1 '' '*.gz' >$@
-source/old/fips/index.inc: $(wildcard source/old/fips/*.gz) bin/mk-filelist
+######################################################################
+##
+##  $(SRCLISTS) -- LISTS OF SOURCES
+##
+
+# mkoldsourceindex creates two targets and rulesets for creating the
+# list of update tarballs for each release.  One target is to create a
+# wrapping HTML file from a template, the other is to create the
+# inclusion file with the actual text.
+#
+# $(1) = release, $(2) = release title
+define mkoldsourceindex
+source/old/$(1)/index.inc: $(wildcard $(RELEASEDIR)/old/$(1)/*.gz) bin/mk-filelist
+	@rm -f $$@
+	./bin/mk-filelist $(RELEASEDIR)/old/$(1) '' '*.gz' > $$@
+source/old/$(1)/index.html: source/old/sub-index.html.tt bin/from-tt
+	@rm -f $$@
+	./bin/from-tt -d source/old/$(1) \
+		      release='$(1)' releasetitle='Old $(2) Releases' \
+		      < $$< > $$@
+endef
+
+# Create the update tarball index 'source/old/x.y.z/index.html' and
+# 'source/old/x.y.z/index.inc' for each release x.y.z.
+# We also create a list specifically for the old FIPS module, carefully
+# crafting an HTML title with an uppercase 'FIPS' while the subdirectory
+# remains named 'fips'
+$(foreach S,fips $(SERIES) $(OLDSERIES2),$(eval $(call mkoldsourceindex,$(S),$(patsubst fips,FIPS,$(S)))))
+
+source/old/index.html: source/old/index.html.tt bin/from-tt
 	@rm -f $@
-	./bin/mk-filelist source/old/fips '' '*.gz' >$@
+	./bin/from-tt releases='fips $(SERIES) $(OLDSERIES2)' $<
 
 # Because these the indexes of old tarballs will inevitably be newer
 # than the tarballs that are moved into their respective directory,
 # we must declare them phony, or they will not be regenerated when
 # they should.
-.PHONY : \
-	 source/old/1.0.1/index.inc source/old/1.0.2/index.inc \
-	 source/old/1.1.0/index.inc source/old/1.1.1/index.inc \
-	 source/old/fips/index.inc
+.PHONY : $(SRCLISTS)
diff --git a/bin/from-tt b/bin/from-tt
new file mode 100755
index 0000000..e3ddf79
--- /dev/null
+++ b/bin/from-tt
@@ -0,0 +1,123 @@
+#! /bin/bash
+
+HERE=$(cd $(dirname $0); pwd)
+THIS=$(basename $0)
+
+dir=
+
+shortopts='d:h'
+longopts='dir:,help'
+usage="\
+Usage 1: $THIS [ options ] [ key=value ... ] < file.tt > file
+Usage 2: $THIS [ options ] [ key=value ... ] file.tt ...
+
+Options:
+    -d, --dir=DIR               Directory of the output file
+    -h, --help                  Output this usage and do nothing else
+
+In usage 1, the template is read from standard input and the processing
+result is output to standard output.  In this usage, the --dir option is
+mandatory.
+
+In usage 2, the templates are read from the files given as argument, and
+the processing result for each of them is written to a corresponding file
+without the '.tt' suffix.  All given file names must have the '.tt' suffix.
+
+In both usages, one can also set template variables with with the form
+key=value.  They must come before any file name."
+
+# Standard getopt calling sequence
+if ! TEMP=$(getopt -o "$shortopts" --long "$longopts" -n $THIS -- "$@"); then
+    echo >&2 "$usage"
+    exit 1
+fi
+eval set -- "$TEMP"
+unset TEMP
+
+# Check the parsed options
+while true; do
+    case "$1" in
+	'-d' | '--dir' )
+	    dir="$2"
+	    shift 2
+	    continue
+	    ;;
+	'-h' | '--help' )
+	    echo >&2 "$usage"
+	    exit 0
+	    ;;
+	'--' )
+	    shift
+	    break
+	    ;;
+	* )
+	    echo >&2 'Internal error!'
+            echo >&2 "$usage"
+	    exit 1
+	    ;;
+    esac
+done
+
+tpagecmd="tpage"
+while true; do
+    case "$1" in
+	*=* )
+	    tpagecmd="$tpagecmd --define '$1'"
+	    shift
+	    ;;
+	* )
+	    break
+	    ;;
+    esac
+done    
+
+# If there are no other arguments, read from stdin, write to stdout.
+# Otherwise, read from the input files and write to corresponding output files.
+if [ $# -eq 0 ]; then
+    if [ -z "$dir" ]; then
+	echo >&2 'Directory must be set with -d / --dir in this mode'
+	exit 1
+    fi
+    (
+	cd $dir
+	( cat $HERE/../inc/common.tt; cat ) | \
+	    eval "$tpagecmd --define 'dir=${dir:-filedir}'"
+    )
+else
+    errfiles=
+    nofiles=
+    for f in "$@"; do
+	base=$(basename "$f" .tt)
+
+	if [ "$base" = "$f" ]; then
+	    errfiles="$errfiles '$f'"
+	elif [ ! -f "$f" ]; then
+	    nofiles="$nofiles '$f'"
+	fi
+    done
+    if [ -n "$errfiles" ]; then
+	echo >&2 "Files not ending with .tt:$errfiles"
+    fi
+    if [ -n "$nofiles" ]; then
+	echo >&2 "Files no present:$nofiles"
+    fi
+    if [ -n "$errfiles" -o -n "$nofiles" ]; then
+	exit 1
+    fi
+
+    for f in "$@"; do
+	base=$(basename "$f" .tt)
+	filedir=$(dirname "$f")
+
+	if [ "$f" != "$base" ]; then
+	    if ! (
+		    cd $filedir
+		    ( cat $HERE/../inc/common.tt; cat $base.tt ) | \
+			eval "$tpagecmd --define 'dir=${dir:-filedir}'" \
+			     > $base
+		); then
+		exit $?
+	    fi
+	fi
+    done
+fi
diff --git a/bin/mk-mancross b/bin/mk-mancross
index e197b06..e76c3b1 100755
--- a/bin/mk-mancross
+++ b/bin/mk-mancross
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-releases="master 1.1.1 1.1.0 1.0.2"
+releases="$*"
 
 log () {
     echo >&2 "$@"
diff --git a/bin/mk-manpages b/bin/mk-manpages
index 3b1d32a..b756128 100755
--- a/bin/mk-manpages
+++ b/bin/mk-manpages
@@ -12,21 +12,13 @@ use Pod::Simple::XHTML;
 
 __PACKAGE__->run(@ARGV);
 
-sub Releases    { return (qw(master 1.1.1 1.1.0 1.0.2)) }
 sub Dirs        { return (qw(apps crypto ssl
                              man1 man3 man5 man7)) }
 sub Dir2Section { return ( apps => "man1", crypto => "man3", ssl => "man3" ) }
 
-sub getRelease {
-    my ( $class, $ver ) = @_;
-    my %known = map { $_ => 1 } $class->Releases;
-    return @_ != 2 ? %known : defined $known{$ver} ? $ver : undef;
-}
-
 sub run {
     my ( $class, @argv ) = @_;
     my $opt = $class->process_options(@argv);
-    $class->cleanup( $opt->{WwwDir}, $opt->{RelVer} );
     exit $class->main( $opt->{SrcDir}, $opt->{WwwDir}, $opt->{RelVer} );
 }
 
@@ -226,44 +218,6 @@ sub error {
     warn("$prog: $_\n") for @_;
 }
 
-# Remove all files from a manpage subtree, and leave only
-# the index and the section subdirs.
-sub cleanup {
-    my ( $class, $wwwdir, $release ) = @_;
-    my $idx = File::Spec->catfile( $wwwdir, "index.html" );
-
-    if ( !-d $wwwdir ) {
-        mkdir($wwwdir) or $class->die("mkdir '$wwwdir': $!");
-    }
-
-    # TBD: was $class->die
-    $class->error("No $idx") unless ( -f $idx );
-    foreach my $subdir ( $class->Dirs ) {
-        my $realsubdir = { $class->Dir2Section }->{$subdir} // $subdir;
-        my $realsdir = File::Spec->catfile( $wwwdir, $realsubdir );
-        if ( !-d $realsdir ) {
-            mkdir($realsdir) or $class->die("mkdir '$realsdir': $!");
-            next;
-        }
-
-        my $sdir = File::Spec->catfile( $wwwdir, $subdir );
-        if ( -d $sdir ) {
-            opendir( my $dh, $sdir ) or $class->die("opendir '$sdir': $!");
-            while ( my $ent = readdir($dh) ) {
-                next if $ent =~ /^\./;
-                next if $realsdir eq $sdir && $ent =~ /^index.(?:html|inc)$/;
-                my $f = File::Spec->catfile( $sdir, $ent );
-                unlink($f) or $class->error("Can't unlink '$f': $!");
-            }
-            closedir( $dh );
-
-            if ( $realsubdir ne $subdir ) {
-                rmdir $sdir;
-            }
-        }
-    }
-}
-
 sub process_options {
     my ( $class, @argv ) = @_;
     my %opt;
@@ -298,11 +252,6 @@ sub process_options {
     push( @err, "No documentation directories in $docdir" )
         unless ( @found_dirs );
 
-    # verify release
-    push( @err, "Unknown release '$opt{RelVer}'" )
-      unless ( $class->getRelease( $opt{RelVer} ) );
-    $class->die(@err) if @err;
-
     return \%opt;
 }
 
diff --git a/bin/mk-sitemap b/bin/mk-sitemap
index fdfd1b2..1a778e1 100755
--- a/bin/mk-sitemap
+++ b/bin/mk-sitemap
@@ -1,6 +1,8 @@
 #! /usr/bin/perl -w
 use strict;
 
+my @series = @ARGV;
+
 sub
 dodir()
 {
@@ -33,7 +35,7 @@ dodir()
 	$simple =~ s at .*/@@;
 	print "\n", "\t" x $level, $simple, "/\n";
 	next if $entry =~ m/secadv/;
-        next if $entry =~ m/man1.0.2|man1.1.0|manmaster/;
+	next if grep { $entry eq "man$_" } @series;
 	&dodir($entry, $level + 1);
     }
 }
diff --git a/docs/man1.0.2/index.html b/docs/man1.0.2/index.html
deleted file mode 100644
index c937ef0..0000000
--- a/docs/man1.0.2/index.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Manpages for 1.0.2</h2></header>
-	  <div class="entry-content">
-	    <p>
-            The manual pages for the 1.0.2 branch are
-            available here.
-            The OpenSSL documentation is divided into three
-            parts:
-	    </p>
-            <ul>
-              <li><a href="man1">Commands</a></li>
-              <li><a href="man3">Libraries</a></li>
-              <li><a href="man5">File Formats</a></li>
-              <li><a href="man7">Overviews</a></li>
-            </ul>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="">1.0.2</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/man1.0.2/man3/index.html b/docs/man1.0.2/man3/index.html
deleted file mode 100644
index d5690f6..0000000
--- a/docs/man1.0.2/man3/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>libraries</h2></header>
-	  <div class="entry-content">
-	    <p>
-	    This is the OpenSSL API for the SSL and Crypto libraries.
-	    The <a href="ssl.html">ssl</a> and <a href="crypto.html">crypto</a>
-	    manpages are general overviews of those libraries.
-	    </p>
-
-	    <p>
-            The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.0.2">1.0.2</a>
-	    : <a href="/docs/man1.0.2/man3">libraries</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/docs/man1.0.2/man5/index.html b/docs/man1.0.2/man5/index.html
deleted file mode 100644
index 651592f..0000000
--- a/docs/man1.0.2/man5/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>file formats</h2></header>
-	  <div class="entry-content">
-	    <p>
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.0.2">1.0.2</a>
-	    : <a href="/docs/man1.0.2/man5">file formats</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/docs/man1.1.0/index.html b/docs/man1.1.0/index.html
deleted file mode 100644
index de57e64..0000000
--- a/docs/man1.1.0/index.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Manpages for 1.1.0</h2></header>
-	  <div class="entry-content">
-	    <p>
-            The manual pages for the 1.1.0 branch are
-            available here.
-            The OpenSSL documentation is divided into three
-            parts:
-	    </p>
-            <ul>
-              <li><a href="man1">Commands</a></li>
-              <li><a href="man3">Libraries</a></li>
-              <li><a href="man5">File Formats</a></li>
-              <li><a href="man7">Overviews</a></li>
-            </ul>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="">1.1.0</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/man1.1.0/man1/index.html b/docs/man1.1.0/man1/index.html
deleted file mode 100644
index c8562a0..0000000
--- a/docs/man1.1.0/man1/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>commands</h2></header>
-	  <div class="entry-content">
-	    <p>
-	    The <a href="openssl.html">openssl</a> manpage provides a
-	    general overview of all the commands.
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.1.0">1.1.0</a>
-	    : <a href="/docs/man1.1.0/man1">commands</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/man1.1.0/man7/index.html b/docs/man1.1.0/man7/index.html
deleted file mode 100644
index d6c8b64..0000000
--- a/docs/man1.1.0/man7/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>commands</h2></header>
-	  <div class="entry-content">
-	    <p>
-	    The <a href="openssl.html">openssl</a> manpage provides a
-	    general overview of all the commands.
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.1.0">1.1.0</a>
-	    : <a href="/docs/man1.1.0/man7">overviews</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/docs/man1.1.1/man1/index.html b/docs/man1.1.1/man1/index.html
deleted file mode 100644
index b008c2b..0000000
--- a/docs/man1.1.1/man1/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>commands</h2></header>
-	  <div class="entry-content">
-	    <p>
-	    The <a href="openssl.html">openssl</a> manpage provides a
-	    general overview of all the commands.
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.1.1">1.1.1</a>
-	    : <a href="/docs/man1.1.1/man1">commands</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/man1.1.1/man3/index.html b/docs/man1.1.1/man3/index.html
deleted file mode 100644
index afe7dd6..0000000
--- a/docs/man1.1.1/man3/index.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>crypto library</h2></header>
-	  <div class="entry-content">
-	    <p>
-	    This is the OpenSSL API for the SSL and Crypto libraries.
-	    The <a href="../man7/ssl.html">ssl</a> and
-	    <a href="../man7/crypto.html">crypto</a> manpages are
-	    general overviews of those libraries.
-	    </p>
-
-	    <p>
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.1.1">1.1.1</a>
-	    : <a href="/docs/man1.1.1/man3">libraries</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/docs/man1.1.1/man5/index.html b/docs/man1.1.1/man5/index.html
deleted file mode 100644
index 7d47c8f..0000000
--- a/docs/man1.1.1/man5/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>crypto library</h2></header>
-	  <div class="entry-content">
-	    <p>
-            OpenSSL file formats.
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.1.1">1.1.1</a>
-	    : <a href="/docs/man1.1.1/man5">file formats</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/man1.1.1/man7/index.html b/docs/man1.1.1/man7/index.html
deleted file mode 100644
index 7223213..0000000
--- a/docs/man1.1.1/man7/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>crypto library</h2></header>
-	  <div class="entry-content">
-	    <p>
-            OpenSSL overviews.
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.1.1">1.1.1</a>
-	    : <a href="/docs/man1.1.1/man7">overviews</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/manmaster/index.html b/docs/manmaster/index.html
deleted file mode 100644
index 1cc870f..0000000
--- a/docs/manmaster/index.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Manpages for master</h2></header>
-	  <div class="entry-content">
-	    <p>
-            The manual pages for the master branch are
-            available here.
-            The OpenSSL documentation is divided into the following
-            sections:
-	    </p>
-            <ul>
-              <li><a href="man1">Commands</a></li>
-              <li><a href="man3">Libraries</a></li>
-              <li><a href="man5">File Formats</a></li>
-              <li><a href="man7">Overviews</a></li>
-            </ul>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="">master</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/manmaster/man1/index.html b/docs/manmaster/man1/index.html
deleted file mode 100644
index 83a2859..0000000
--- a/docs/manmaster/man1/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>commands</h2></header>
-	  <div class="entry-content">
-	    <p>
-	    The <a href="openssl.html">openssl</a> manpage provides a
-	    general overview of all the commands.
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/manmaster">master</a>
-	    : <a href="/docs/manmaster/man1">commands</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/manmaster/man3/index.html b/docs/manmaster/man3/index.html
deleted file mode 100644
index 79ddc60..0000000
--- a/docs/manmaster/man3/index.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>crypto library</h2></header>
-	  <div class="entry-content">
-	    <p>
-	    This is the OpenSSL API for the SSL and Crypto libraries.
-	    The <a href="../man7/ssl.html">ssl</a> and
-	    <a href="../man7/crypto.html">crypto</a> manpages are
-	    general overviews of those libraries.
-	    </p>
-
-	    <p>
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/manmaster">master</a>
-	    : <a href="/docs/manmaster/man3">libraries</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/docs/manmaster/man5/index.html b/docs/manmaster/man5/index.html
deleted file mode 100644
index 0227046..0000000
--- a/docs/manmaster/man5/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>crypto library</h2></header>
-	  <div class="entry-content">
-	    <p>
-            OpenSSL file formats.
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/manmaster">master</a>
-	    : <a href="/docs/manmaster/man5">file formats</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/manmaster/man7/index.html b/docs/manmaster/man7/index.html
deleted file mode 100644
index 9eb7a14..0000000
--- a/docs/manmaster/man7/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-  <!--#include virtual="/inc/banner.shtml" -->
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>crypto library</h2></header>
-	  <div class="entry-content">
-	    <p>
-            OpenSSL overviews.
-	    The detailed list is here:
-	    </p>
-
-	    <table style="border-spacing: 10px 0;">
-	      <tr>
-		<td>NAME</td>
-		<td>Description</td>
-	      </tr>
-	      <!--#include virtual="index.inc" -->
-	    </table>
-	    <p> </p>
-
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href="/docs">Documentation</a>
-	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/manmaster">master</a>
-	    : <a href="/docs/manmaster/man7">overviews</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="/inc/mansidebar.shtml" -->
-    </div>
-  </div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
-
diff --git a/docs/manpages.html b/docs/manpages.html.tt
similarity index 78%
rename from docs/manpages.html
rename to docs/manpages.html.tt
index d75fec0..28defc3 100644
--- a/docs/manpages.html
+++ b/docs/manpages.html.tt
@@ -13,10 +13,9 @@
             The manual pages for all releases are available online:
 	    </p>
             <ul>
-              <li><a href="manmaster">master</a></li>
-              <li><a href="man1.1.1">1.1.1</a></li>
-              <li><a href="man1.1.0">1.1.0</a></li>
-              <li><a href="man1.0.2">1.0.2</a></li>
+[% FOREACH release IN releases.split('\s+') -%]
+              <li><a href="man[% release %]">[% release %]</a></li>
+[% END -%]
             </ul>
 	  </div>
 	  <footer>
diff --git a/docs/man1.1.1/index.html b/docs/sub-index.html.tt
similarity index 86%
rename from docs/man1.1.1/index.html
rename to docs/sub-index.html.tt
index 49d2b6c..b0b3bb3 100644
--- a/docs/man1.1.1/index.html
+++ b/docs/sub-index.html.tt
@@ -7,10 +7,10 @@
     <div id="content">
       <div class="blog-index">
 	<article>
-	  <header><h2>Manpages for 1.1.1</h2></header>
+	  <header><h2>Manpages for [% release %]</h2></header>
 	  <div class="entry-content">
 	    <p>
-            The manual pages for the 1.1.1 branch are
+            The manual pages for the [% release %] branch are
             available here.
             The OpenSSL documentation is divided into the following
             sections:
@@ -26,7 +26,7 @@
 	    You are here: <a href="/">Home</a>
 	    : <a href="/docs">Documentation</a>
 	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="">1.1.1</a>
+	    : <a href="">[% release %]</a>
 	    <br/><a href="/sitemap.txt">Sitemap</a>
 	  </footer>
 	</article>
diff --git a/docs/man1.0.2/man1/index.html b/docs/sub-man1-index.html.tt
similarity index 85%
rename from docs/man1.0.2/man1/index.html
rename to docs/sub-man1-index.html.tt
index 485bdc3..d213130 100644
--- a/docs/man1.0.2/man1/index.html
+++ b/docs/sub-man1-index.html.tt
@@ -7,12 +7,11 @@
     <div id="content">
       <div class="blog-index">
 	<article>
-	  <header><h2>commands</h2></header>
+	  <header><h2>OpenSSL commands</h2></header>
 	  <div class="entry-content">
 	    <p>
 	    The <a href="openssl.html">openssl</a> manpage provides a
 	    general overview of all the commands.
-	    The detailed list is here:
 	    </p>
 
 	    <table style="border-spacing: 10px 0;">
@@ -29,8 +28,8 @@
 	    You are here: <a href="/">Home</a>
 	    : <a href="/docs">Documentation</a>
 	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.0.2">1.0.2</a>
-	    : <a href="/docs/man1.0.2/man1">commands</a>
+	    : <a href="/docs/man[% release %]">[% release %]</a>
+	    : <a href="/docs/man[% release %]/man1">commands</a>
 	    <br/><a href="/sitemap.txt">Sitemap</a>
 	  </footer>
 	</article>
diff --git a/docs/man1.1.0/man3/index.html b/docs/sub-man3-index.html.tt
similarity index 84%
rename from docs/man1.1.0/man3/index.html
rename to docs/sub-man3-index.html.tt
index 388816a..03aee4f 100644
--- a/docs/man1.1.0/man3/index.html
+++ b/docs/sub-man3-index.html.tt
@@ -7,7 +7,7 @@
     <div id="content">
       <div class="blog-index">
 	<article>
-	  <header><h2>libraries</h2></header>
+	  <header><h2>OpenSSL libraries</h2></header>
 	  <div class="entry-content">
 	    <p>
 	    This is the OpenSSL API for the SSL and Crypto libraries.
@@ -16,10 +16,6 @@
 	    general overviews of those libraries.
 	    </p>
 
-	    <p>
-	    The detailed list is here:
-	    </p>
-
 	    <table style="border-spacing: 10px 0;">
 	      <tr>
 		<td>NAME</td>
@@ -34,8 +30,8 @@
 	    You are here: <a href="/">Home</a>
 	    : <a href="/docs">Documentation</a>
 	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.1.0">1.1.0</a>
-	    : <a href="/docs/man1.1.0/man3">libraries</a>
+	    : <a href="/docs/man[% release %]">[% release %]</a>
+	    : <a href="/docs/man[% release %]/man3">libraries</a>
 	    <br/><a href="/sitemap.txt">Sitemap</a>
 	  </footer>
 	</article>
diff --git a/docs/man1.1.0/man5/index.html b/docs/sub-man5-index.html.tt
similarity index 81%
rename from docs/man1.1.0/man5/index.html
rename to docs/sub-man5-index.html.tt
index 8b39715..9cc6826 100644
--- a/docs/man1.1.0/man5/index.html
+++ b/docs/sub-man5-index.html.tt
@@ -7,12 +7,8 @@
     <div id="content">
       <div class="blog-index">
 	<article>
-	  <header><h2>overviews</h2></header>
+	  <header><h2>OpenSSL file formats and conventions</h2></header>
 	  <div class="entry-content">
-	    <p>
-	    The detailed list is here:
-	    </p>
-
 	    <table style="border-spacing: 10px 0;">
 	      <tr>
 		<td>NAME</td>
@@ -27,8 +23,8 @@
 	    You are here: <a href="/">Home</a>
 	    : <a href="/docs">Documentation</a>
 	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.1.0">1.1.0</a>
-	    : <a href="/docs/man1.1.0/man5">file formats</a>
+	    : <a href="/docs/man[% release %]">[% release %]</a>
+	    : <a href="/docs/man[% release %]/man5">file formats</a>
 	    <br/><a href="/sitemap.txt">Sitemap</a>
 	  </footer>
 	</article>
diff --git a/docs/man1.0.2/man7/index.html b/docs/sub-man7-index.html.tt
similarity index 81%
rename from docs/man1.0.2/man7/index.html
rename to docs/sub-man7-index.html.tt
index 0b6ebc4..74c6119 100644
--- a/docs/man1.0.2/man7/index.html
+++ b/docs/sub-man7-index.html.tt
@@ -7,12 +7,8 @@
     <div id="content">
       <div class="blog-index">
 	<article>
-	  <header><h2>overviews</h2></header>
+	  <header><h2>OpenSSL overviews</h2></header>
 	  <div class="entry-content">
-	    <p>
-	    The detailed list is here:
-	    </p>
-
 	    <table style="border-spacing: 10px 0;">
 	      <tr>
 		<td>NAME</td>
@@ -27,8 +23,8 @@
 	    You are here: <a href="/">Home</a>
 	    : <a href="/docs">Documentation</a>
 	    : <a href="/docs/manpages.html">Manpages</a>
-	    : <a href="/docs/man1.0.2">1.0.2</a>
-	    : <a href="/docs/man1.0.2/man7">overviews</a>
+	    : <a href="/docs/man[% release %]">[% release %]</a>
+	    : <a href="/docs/man[% release %]/man7">overviews</a>
 	    <br/><a href="/sitemap.txt">Sitemap</a>
 	  </footer>
 	</article>
diff --git a/inc/common.tt b/inc/common.tt
new file mode 100644
index 0000000..c605810
--- /dev/null
+++ b/inc/common.tt
@@ -0,0 +1,9 @@
+[% # Ensure dir contains no repeated slashes, and no ending slash
+   dir = dir.replace('//+', '/').replace('/$', '');
+   # Calculate the path to the top directory.
+   # It will always have an ending slash.
+   top = "";
+   IF dir != ".";
+     top = "../";
+     top = top.repeat(dir.split("/").size);
+   END -%]
diff --git a/news/changelog.html b/news/changelog.html.tt
similarity index 89%
rename from news/changelog.html
rename to news/changelog.html.tt
index fd2c062..95097b7 100644
--- a/news/changelog.html
+++ b/news/changelog.html.tt
@@ -29,8 +29,10 @@
             For other branches, the changelogs are distributed with
             the source, but are also available here:
             <ul>
-              <li><a href="cl102.txt">1.0.2</a></li>
-              <li><a href="cl110.txt">1.1.0</a></li>
+[% FOREACH release IN releases.split('\s+').reverse -%]
+              <li><a href="cl[% release.replace('\.', '') %].txt">[%
+              release %]</a></li>
+[% END -%]
             </ul>
 	    <!--#include virtual="changelog.inc" -->
 	  </div>
diff --git a/news/openssl-notes.html.in b/news/openssl-notes.html.tt
similarity index 80%
rename from news/openssl-notes.html.in
rename to news/openssl-notes.html.tt
index b215835..6d6205f 100644
--- a/news/openssl-notes.html.in
+++ b/news/openssl-notes.html.tt
@@ -9,10 +9,10 @@
     <div id="content">
       <div class="blog-index">
 	<article>
-	  <header><h2>OpenSSL @VERSION@ Series Release Notes<h2></header>
+	  <header><h2>OpenSSL [% release %] Series Release Notes<h2></header>
 	  <div class="entry-content">
 	    <p>
-	    The major changes and known issues for the @VERSION@ branch
+	    The major changes and known issues for the [% release %] branch
 	    of the OpenSSL toolkit are summarised below. The contents
 	    reflect the current state of the <tt>NEWS</tt> file inside
 	    the git repository.
@@ -22,7 +22,7 @@
 	    More details can be found in the <a href="changelog.html">ChangeLog</a>.
 	    </p>
 
-	    <!--#include virtual="openssl- at VERSION@-notes.inc" -->
+	    <!--#include virtual="openssl-[% release %]-notes.inc" -->
 	  </div>
 	  <footer>
 	    You are here: <a href="/">Home</a>
diff --git a/news/vulnerabilities-0.9.6.html b/news/vulnerabilities-0.9.6.html
deleted file mode 100644
index 34d4b20..0000000
--- a/news/vulnerabilities-0.9.6.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Vulnerabilities<h2></header>
-	  <div class="entry-content">
-	    <p>
-              If you think you have found a security bug in OpenSSL,
-              please <a href="/community/#securityreports">report it to us</a>.
-	    </p>
-            <h2>Note: Support for OpenSSL 0.9.6 ended and
-              is no longer receiving security updates</h2>
-            <!--#include virtual="vulnerabilities-0.9.6.inc" -->
-	    </p>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href=".">News</a>
-            : <a href="">Vulnerabilities</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="sidebar.shtml" -->
-    </div>
-  </div>
-
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-
-</html>
-
diff --git a/news/vulnerabilities-0.9.7.html b/news/vulnerabilities-0.9.7.html
deleted file mode 100644
index 8293333..0000000
--- a/news/vulnerabilities-0.9.7.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Vulnerabilities<h2></header>
-	  <div class="entry-content">
-	    <p>
-              If you think you have found a security bug in OpenSSL,
-              please <a href="/community/#securityreports">report it to us</a>.
-	    </p>
-            <h2>Note: Support for OpenSSL 0.9.7 ended and
-              is no longer receiving security updates</h2>
-            <!--#include virtual="vulnerabilities-0.9.7.inc" -->
-	    </p>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href=".">News</a>
-            : <a href="">Vulnerabilities</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="sidebar.shtml" -->
-    </div>
-  </div>
-
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-
-</html>
-
diff --git a/news/vulnerabilities-0.9.8.html b/news/vulnerabilities-0.9.8.html
deleted file mode 100644
index 127624f..0000000
--- a/news/vulnerabilities-0.9.8.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Vulnerabilities<h2></header>
-	  <div class="entry-content">
-	    <p>
-              If you think you have found a security bug in OpenSSL,
-              please <a href="/community/#securityreports">report it to us</a>.
-	    </p>
-            <h2>Note: Support for OpenSSL 0.9.8 ended on 31st December 2015 and
-              is no longer receiving security updates</h2>
-            <!--#include virtual="vulnerabilities-0.9.8.inc" -->
-	    </p>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href=".">News</a>
-            : <a href="">Vulnerabilities</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="sidebar.shtml" -->
-    </div>
-  </div>
-
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-
-</html>
-
diff --git a/news/vulnerabilities-1.0.0.html b/news/vulnerabilities-1.0.0.html
deleted file mode 100644
index f0c375d..0000000
--- a/news/vulnerabilities-1.0.0.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Vulnerabilities<h2></header>
-	  <div class="entry-content">
-	    <p>
-              If you think you have found a security bug in OpenSSL,
-              please <a href="/community/#securityreports">report it to us</a>.
-	    </p>
-            <h2>Note: Support for OpenSSL 1.0.0 ended on 31st December 2015 and
-            is no longer receiving security updates</h2>
-            <!--#include virtual="vulnerabilities-1.0.0.inc" -->
-	    </p>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href=".">News</a>
-            : <a href="">Vulnerabilities</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="sidebar.shtml" -->
-    </div>
-  </div>
-
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-
-</html>
-
diff --git a/news/vulnerabilities-1.0.1.html b/news/vulnerabilities-1.0.1.html
deleted file mode 100644
index 08302c2..0000000
--- a/news/vulnerabilities-1.0.1.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Vulnerabilities<h2></header>
-	  <div class="entry-content">
-	    <p>
-              If you think you have found a security bug in OpenSSL,
-              please <a href="/community/#securityreports">report it to us</a>.
-	    </p>
-            <h2>Note: Support for OpenSSL 1.0.1 ended on 31st December 2016 and
-            is no longer receiving security updates</h2>
-            <!--#include virtual="vulnerabilities-1.0.1.inc" -->
-	    </p>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href=".">News</a>
-            : <a href="">Vulnerabilities</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="sidebar.shtml" -->
-    </div>
-  </div>
-
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-
-</html>
-
diff --git a/news/vulnerabilities-1.0.2.html b/news/vulnerabilities-1.0.2.html
deleted file mode 100644
index 0f1ac3b..0000000
--- a/news/vulnerabilities-1.0.2.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Vulnerabilities<h2></header>
-	  <div class="entry-content">
-	    <p>
-              If you think you have found a security bug in OpenSSL,
-              please <a href="/community/#securityreports">report it to us</a>.
-	    </p>
-            <!--#include virtual="vulnerabilities-1.0.2.inc" -->
-	    </p>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href=".">News</a>
-            : <a href="">Vulnerabilities</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="sidebar.shtml" -->
-    </div>
-  </div>
-
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-
-</html>
-
diff --git a/news/vulnerabilities-1.1.0.html b/news/vulnerabilities-1.1.0.html
deleted file mode 100644
index 15a62de..0000000
--- a/news/vulnerabilities-1.1.0.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Vulnerabilities<h2></header>
-	  <div class="entry-content">
-	    <p>
-              If you think you have found a security bug in OpenSSL,
-              please <a href="/community/#securityreports">report it to us</a>.
-	    </p>
-            <!--#include virtual="vulnerabilities-1.1.0.inc" -->
-	    </p>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href=".">News</a>
-            : <a href="">Vulnerabilities</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="sidebar.shtml" -->
-    </div>
-  </div>
-
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-
-</html>
-
diff --git a/news/vulnerabilities-1.1.1.html b/news/vulnerabilities-1.1.1.html
deleted file mode 100644
index db54fa1..0000000
--- a/news/vulnerabilities-1.1.1.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-
-  <div id="main">
-    <div id="content">
-      <div class="blog-index">
-	<article>
-	  <header><h2>Vulnerabilities<h2></header>
-	  <div class="entry-content">
-	    <p>
-              If you think you have found a security bug in OpenSSL,
-              please <a href="/community/#securityreports">report it to us</a>.
-	    </p>
-            <!--#include virtual="vulnerabilities-1.1.1.inc" -->
-	    </p>
-	  </div>
-	  <footer>
-	    You are here: <a href="/">Home</a>
-	    : <a href=".">News</a>
-            : <a href="">Vulnerabilities</a>
-	    <br/><a href="/sitemap.txt">Sitemap</a>
-	  </footer>
-	</article>
-      </div>
-      <!--#include virtual="sidebar.shtml" -->
-    </div>
-  </div>
-
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-
-</html>
-
diff --git a/news/vulnerabilities.html b/news/vulnerabilities.html.tt
similarity index 92%
rename from news/vulnerabilities.html
rename to news/vulnerabilities.html.tt
index 672b6ec..840ef33 100644
--- a/news/vulnerabilities.html
+++ b/news/vulnerabilities.html.tt
@@ -15,7 +15,7 @@
               If you think you have found a security bug in OpenSSL,
               please <a href="/community/#securityreports">report it to us</a>.
 	    </p>
-            <!--#include virtual="vulnerabilities.inc" -->
+            <!--#include virtual="[% vulnerabilitiesinc %]" -->
 	    </p>
 	  </div>
 	  <footer>
diff --git a/source/old/0.9.x/index.html b/source/old/0.9.x/index.html
deleted file mode 100644
index 7a9a2b6..0000000
--- a/source/old/0.9.x/index.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-<div id="main">
-  <div id="content">
-    <div class="blog-index">
-      <article>
-        <header><h2>Old 0.9.x Releases</h2></header>
-        <div class="entry-content">
-          <p>Here are the old 0.9.x releases.</p>
-          <table>
-            <tr>
-              <td>KBytes </td>
-              <td>Date  </td>
-              <td>File </td>
-            </tr>
-            <!--#include virtual="index.inc" -->
-          </table>
-          <p> </p>
-          <!--#include virtual="/inc/legalities.shtml" -->
-        </div>
-        <footer>
-          You are here: <a href="/">Home</a>
-          : <a href="/source">Downloads</a>
-          : <a href="/source/old">Old Releases</a>
-          : <a href="">0.9.x</a>
-          <br/><a href="/sitemap.txt">Sitemap</a>
-        </footer>
-      </article>
-    </div>
-    <!--#include virtual="../../sidebar.shtml" -->
-  </div>
-
-</div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/source/old/1.0.0/index.html b/source/old/1.0.0/index.html
deleted file mode 100644
index f289fe1..0000000
--- a/source/old/1.0.0/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-<div id="main">
-  <div id="content">
-    <div class="blog-index">
-      <article>
-        <header><h2>Old 1.0.0 Releases</h2></header>
-        <div class="entry-content">
-          <p>Here are the old 1.0.0 releases.</p>
-          <table>
-            <tr>
-              <td>KBytes </td>
-              <td>Date  </td>
-              <td>File </td>
-            </tr>
-            <!--#include virtual="index.inc" -->
-          </table>
-          <p> </p>
-          <!--#include virtual="/inc/legalities.shtml" -->
-        </div>
-        <footer>
-          You are here: <a href="/">Home</a>
-          : <a href="/source">Downloads</a>
-          : <a href="/source/old">Old Releases</a>
-          : <a href="">1.0.0</a>
-          <br/><a href="/sitemap.txt">Sitemap</a>
-        </footer>
-      </article>
-
-
-    </div>
-    <!--#include virtual="../../sidebar.shtml" -->
-  </div>
-
-</div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/source/old/1.0.1/index.html b/source/old/1.0.1/index.html
deleted file mode 100644
index e201ac5..0000000
--- a/source/old/1.0.1/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-<div id="main">
-  <div id="content">
-    <div class="blog-index">
-      <article>
-        <header><h2>Old 1.0.1 Releases</h2></header>
-        <div class="entry-content">
-          <p>Here are the old 1.0.1 releases.</p>
-          <table>
-            <tr>
-              <td>KBytes </td>
-              <td>Date  </td>
-              <td>File </td>
-            </tr>
-            <!--#include virtual="index.inc" -->
-          </table>
-          <p> </p>
-          <!--#include virtual="/inc/legalities.shtml" -->
-        </div>
-        <footer>
-          You are here: <a href="/">Home</a>
-          : <a href="/source">Downloads</a>
-          : <a href="/source/old">Old Releases</a>
-          : <a href="">1.0.1</a>
-          <br/><a href="/sitemap.txt">Sitemap</a>
-        </footer>
-      </article>
-
-
-    </div>
-    <!--#include virtual="../../sidebar.shtml" -->
-  </div>
-
-</div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/source/old/1.0.2/index.html b/source/old/1.0.2/index.html
deleted file mode 100644
index da5007c..0000000
--- a/source/old/1.0.2/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-<div id="main">
-  <div id="content">
-    <div class="blog-index">
-      <article>
-        <header><h2>Old 1.0.2 Releases</h2></header>
-        <div class="entry-content">
-          <p>Here are the old 1.0.2 releases.</p>
-          <table>
-            <tr>
-              <td>KBytes </td>
-              <td>Date  </td>
-              <td>File </td>
-            </tr>
-            <!--#include virtual="index.inc" -->
-          </table>
-          <p> </p>
-          <!--#include virtual="/inc/legalities.shtml" -->
-        </div>
-        <footer>
-          You are here: <a href="/">Home</a>
-          : <a href="/source">Downloads</a>
-          : <a href="/source/old">Old Releases</a>
-          : <a href="">1.0.2</a>
-          <br/><a href="/sitemap.txt">Sitemap</a>
-        </footer>
-      </article>
-
-
-    </div>
-    <!--#include virtual="../../sidebar.shtml" -->
-  </div>
-
-</div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/source/old/1.1.0/index.html b/source/old/1.1.0/index.html
deleted file mode 100644
index e9b4c7a..0000000
--- a/source/old/1.1.0/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-<div id="main">
-  <div id="content">
-    <div class="blog-index">
-      <article>
-        <header><h2>Old 1.1.0 Releases</h2></header>
-        <div class="entry-content">
-          <p>Here are the old 1.1.0 releases.</p>
-          <table>
-            <tr>
-              <td>KBytes </td>
-              <td>Date  </td>
-              <td>File </td>
-            </tr>
-            <!--#include virtual="index.inc" -->
-          </table>
-          <p> </p>
-          <!--#include virtual="/inc/legalities.shtml" -->
-        </div>
-        <footer>
-          You are here: <a href="/">Home</a>
-          : <a href="/source">Downloads</a>
-          : <a href="/source/old">Old Releases</a>
-          : <a href="">1.1.0</a>
-          <br/><a href="/sitemap.txt">Sitemap</a>
-        </footer>
-      </article>
-
-
-    </div>
-    <!--#include virtual="../../sidebar.shtml" -->
-  </div>
-
-</div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/source/old/1.1.1/index.html b/source/old/1.1.1/index.html
deleted file mode 100644
index a9635c4..0000000
--- a/source/old/1.1.1/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--#include virtual="/inc/head.shtml" -->
-<body>
-<!--#include virtual="/inc/banner.shtml" -->
-<div id="main">
-  <div id="content">
-    <div class="blog-index">
-      <article>
-        <header><h2>Old 1.1.1 Releases</h2></header>
-        <div class="entry-content">
-          <p>Here are the old 1.1.1 releases.</p>
-          <table>
-            <tr>
-              <td>KBytes </td>
-              <td>Date  </td>
-              <td>File </td>
-            </tr>
-            <!--#include virtual="index.inc" -->
-          </table>
-          <p> </p>
-          <!--#include virtual="/inc/legalities.shtml" -->
-        </div>
-        <footer>
-          You are here: <a href="/">Home</a>
-          : <a href="/source">Downloads</a>
-          : <a href="/source/old">Old Releases</a>
-          : <a href="">1.1.1</a>
-          <br/><a href="/sitemap.txt">Sitemap</a>
-        </footer>
-      </article>
-
-
-    </div>
-    <!--#include virtual="../../sidebar.shtml" -->
-  </div>
-
-</div>
-<!--#include virtual="/inc/footer.shtml" -->
-</body>
-</html>
diff --git a/source/old/index.html b/source/old/index.html.tt
similarity index 71%
rename from source/old/index.html
rename to source/old/index.html.tt
index 47163a2..9ff2913 100644
--- a/source/old/index.html
+++ b/source/old/index.html.tt
@@ -11,13 +11,9 @@
         <div class="entry-content">
           <p>Here are the old releases.</p>
           <ul>
-            <li><a href="0.9.x">0.9.x</a></li>
-            <li><a href="1.0.0">1.0.0</a></li>
-            <li><a href="1.0.1">1.0.1</a></li>
-            <li><a href="1.0.2">1.0.2</a></li>
-            <li><a href="1.1.0">1.1.0</a></li>
-            <li><a href="1.1.1">1.1.1</a></li>
-            <li><a href="fips">fips</a></li>
+[% FOREACH release IN releases.split('\s+').reverse -%]
+            <li><a href="[% release %]">[% release %]</a></li>
+[% END -%]
           </ul>
         </div>
         <!--#include virtual="/inc/legalities.shtml" -->
diff --git a/source/old/fips/index.html b/source/old/sub-index.html.tt
similarity index 87%
rename from source/old/fips/index.html
rename to source/old/sub-index.html.tt
index c483b81..5712174 100644
--- a/source/old/fips/index.html
+++ b/source/old/sub-index.html.tt
@@ -7,9 +7,8 @@
   <div id="content">
     <div class="blog-index">
       <article>
-        <header><h2>Old FIPS Releases</h2></header>
+        <header><h2>[% releasetitle %]</h2></header>
         <div class="entry-content">
-          <p>Here are the old FIPS releases.</p>
           <table>
             <tr>
               <td>KBytes </td>
@@ -25,7 +24,7 @@
           You are here: <a href="/">Home</a>
           : <a href="/source">Downloads</a>
           : <a href="/source/old">Old Releases</a>
-          : <a href="">fips</a>
+          : <a href="">[% release %]</a>
           <br/><a href="/sitemap.txt">Sitemap</a>
         </footer>
       </article>


More information about the openssl-commits mailing list