/doc/*.hhp
/doc/*.hhc
/doc/*.hhk
+/doc/licence.but
/icons/*.png
/icons/*.ico
/icons/*.icns
Checklists for PuTTY administrative procedures
==============================================
-Locations of the licence
-------------------------
-
-The PuTTY copyright notice and licence are stored in multiple
-places. At the start of a new year, the copyright year needs
-updating in all of them; and when someone sends a massive patch,
-their name needs adding in all of them too.
-
-The LICENCE file in the main source distribution:
-
- - putty/LICENCE
-
-The documentation (both the preamble blurb and the licence appendix):
-
- - putty/doc/blurb.but
- - putty/doc/licence.but
-
Preparing to make a release
---------------------------
VERSIONIDS=vids
endif
-CHAPTERS := $(SITE) blurb intro gs using config pscp psftp plink pubkey
-CHAPTERS += pageant errors faq feedback licence udp pgpkeys sshnames
+CHAPTERS := $(SITE) copy blurb intro gs using config pscp psftp plink
+CHAPTERS += pubkey pageant errors faq feedback licence udp pgpkeys sshnames
CHAPTERS += index $(VERSIONIDS)
INPUTS = $(patsubst %,%.but,$(CHAPTERS))
Unix-specific documentation that currently exists is the
\I{man pages for PuTTY tools}man pages.
-\copyright This manual is copyright 2001-2015 Simon Tatham. All
+\copyright This manual is copyright \shortcopyrightdetails. All
rights reserved. You may distribute this documentation under the MIT
licence. See \k{licence} for the licence text in full.
+++ /dev/null
-\A{licence} PuTTY \ii{Licence}
-
-PuTTY is \i{copyright} 1997-2015 Simon Tatham.
-
-Portions copyright Robert de Bath, Joris van Rantwijk, Delian
-Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,
-Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus
-Kuhn, Colin Watson, Christopher Staite, and CORE SDI S.A.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation files
-(the \q{Software}), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED \q{AS IS}, WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE
-FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# This script generates licence.h (containing the PuTTY licence in the
# form of macros expanding to C string literals) from the LICENCE
-# master file.
+# master file. It also regenerates the licence-related Halibut input
+# files.
use File::Basename;
+# Read the input file.
$infile = "LICENCE";
-$outfile = "licence.h";
open my $in, $infile or die "$infile: open: $!\n";
-open my $out, ">", $outfile or die "$outfile: open: $!\n";
-select $out;
-
-print "/*\n";
-print " * $outfile - macro definitions for the PuTTY licence.\n";
-print " *\n";
-print " * Generated by @{[basename __FILE__]} from $infile.\n";
-print " * You should edit those files rather than editing this one.\n";
-print " */\n";
-print "\n";
-
my @lines = ();
while (<$in>) {
chomp;
}
}
+# Get the copyright years and short form of copyright holder.
+die "bad format of first paragraph\n"
+ unless $paras[0] =~ m!copyright ([^\.]*)\.!i;
+$shortdetails = $1;
+
+# Write out licence.h.
+
+$outfile = "licence.h";
+open my $out, ">", $outfile or die "$outfile: open: $!\n";
+select $out;
+
+print "/*\n";
+print " * $outfile - macro definitions for the PuTTY licence.\n";
+print " *\n";
+print " * Generated by @{[basename __FILE__]} from $infile.\n";
+print " * You should edit those files rather than editing this one.\n";
+print " */\n";
+print "\n";
+
print "#define LICENCE_TEXT(parsep) \\\n";
for my $i (0..$#paras) {
my $lit = &stringlit($paras[$i]);
}
print "\n";
-die "bad format of first paragraph\n"
- unless $paras[0] =~ m!copyright ([^\.]*)\.!i;
-
-printf "#define SHORT_COPYRIGHT_DETAILS \"%s\"\n", &stringlit($1);
+printf "#define SHORT_COPYRIGHT_DETAILS \"%s\"\n", &stringlit($shortdetails);
sub stringlit {
my ($lit) = @_;
$lit =~ s!"!\\"!g;
return $lit;
}
+
+close $out;
+
+# Write out doc/licence.but.
+
+$outfile = "doc/licence.but";
+open $out, ">", $outfile or die "$outfile: open: $!\n";
+select $out;
+
+print "\\# Generated by @{[basename __FILE__]} from $infile.\n";
+print "\\# You should edit those files rather than editing this one.\n\n";
+
+print "\\A{licence} PuTTY \\ii{Licence}\n\n";
+
+for my $i (0..$#paras) {
+ my $para = &halibutescape($paras[$i]);
+ if ($i == 0) {
+ $para =~ s!copyright!\\i{copyright}!; # index term in paragraph 1
+ }
+ print "$para\n\n";
+}
+
+close $out;
+
+# And write out doc/copy.but, which defines a macro used in the manual
+# preamble blurb.
+
+$outfile = "doc/copy.but";
+open $out, ">", $outfile or die "$outfile: open: $!\n";
+select $out;
+
+print "\\# Generated by @{[basename __FILE__]} from $infile.\n";
+print "\\# You should edit those files rather than editing this one.\n\n";
+
+printf "\\define{shortcopyrightdetails} %s\n\n",
+ &halibutescape($shortdetails);
+
+close $out;
+
+sub halibutescape {
+ my ($text) = @_;
+ $text =~ s![\\{}]!\\$&!g; # Halibut escaping
+ $text =~ s!"([^"]*)"!\\q{$1}!g; # convert quoted strings to \q{}
+ return $text;
+}