mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-08 08:58:00 +00:00
Autogenerate licence text in doc subdir from LICENCE.
Now we have licence.pl, it seems to me to make very good sense to have it generate the Halibut form(s) of the licence and copyright year as well as the source-code forms. As a result, I believe _no_ copies of the licence text or copyright date exist any more except for the master one in LICENCE - so I can completely remove the checklist section about all the places to update it, because there's only one. Hooray!
This commit is contained in:
parent
9ddd071ec2
commit
774d37a0dc
1
.gitignore
vendored
1
.gitignore
vendored
@ -81,6 +81,7 @@
|
||||
/doc/*.hhp
|
||||
/doc/*.hhc
|
||||
/doc/*.hhk
|
||||
/doc/licence.but
|
||||
/icons/*.png
|
||||
/icons/*.ico
|
||||
/icons/*.icns
|
||||
|
17
CHECKLST.txt
17
CHECKLST.txt
@ -1,23 +1,6 @@
|
||||
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
|
||||
---------------------------
|
||||
|
||||
|
@ -34,8 +34,8 @@ else
|
||||
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))
|
||||
|
@ -31,6 +31,6 @@ features not described here; and the \i\cw{pterm} and command-line
|
||||
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.
|
||||
|
@ -1,27 +0,0 @@
|
||||
\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.
|
85
licence.pl
85
licence.pl
@ -2,24 +2,14 @@
|
||||
|
||||
# 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;
|
||||
@ -41,6 +31,25 @@ for my $line (@lines) {
|
||||
}
|
||||
}
|
||||
|
||||
# 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]);
|
||||
@ -51,10 +60,7 @@ for my $i (0..$#paras) {
|
||||
}
|
||||
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) = @_;
|
||||
@ -62,3 +68,48 @@ sub stringlit {
|
||||
$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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user