xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/patchlevel.h (revision 0:68f95e015346)
1*0Sstevel@tonic-gate /*    patchlevel.h
2*0Sstevel@tonic-gate  *
3*0Sstevel@tonic-gate  *    Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999,
4*0Sstevel@tonic-gate  *    2000, 2001, 2002, 2003, 2004, by Larry Wall and others
5*0Sstevel@tonic-gate  *
6*0Sstevel@tonic-gate  *    You may distribute under the terms of either the GNU General Public
7*0Sstevel@tonic-gate  *    License or the Artistic License, as specified in the README file.
8*0Sstevel@tonic-gate  *
9*0Sstevel@tonic-gate  */
10*0Sstevel@tonic-gate 
11*0Sstevel@tonic-gate #ifndef __PATCHLEVEL_H_INCLUDED__
12*0Sstevel@tonic-gate 
13*0Sstevel@tonic-gate /* do not adjust the whitespace! Configure expects the numbers to be
14*0Sstevel@tonic-gate  * exactly on the third column */
15*0Sstevel@tonic-gate 
16*0Sstevel@tonic-gate #define PERL_REVISION	5		/* age */
17*0Sstevel@tonic-gate #define PERL_VERSION	8		/* epoch */
18*0Sstevel@tonic-gate #define PERL_SUBVERSION	4		/* generation */
19*0Sstevel@tonic-gate 
20*0Sstevel@tonic-gate /* The following numbers describe the earliest compatible version of
21*0Sstevel@tonic-gate    Perl ("compatibility" here being defined as sufficient binary/API
22*0Sstevel@tonic-gate    compatibility to run XS code built with the older version).
23*0Sstevel@tonic-gate    Normally this should not change across maintenance releases.
24*0Sstevel@tonic-gate 
25*0Sstevel@tonic-gate    Note that this only refers to an out-of-the-box build.  Many non-default
26*0Sstevel@tonic-gate    options such as usemultiplicity tend to break binary compatibility
27*0Sstevel@tonic-gate    more often.
28*0Sstevel@tonic-gate 
29*0Sstevel@tonic-gate    This is used by Configure et al to figure out
30*0Sstevel@tonic-gate    PERL_INC_VERSION_LIST, which lists version libraries
31*0Sstevel@tonic-gate    to include in @INC.  See INSTALL for how this works.
32*0Sstevel@tonic-gate */
33*0Sstevel@tonic-gate #define PERL_API_REVISION	5	/* Adjust manually as needed.  */
34*0Sstevel@tonic-gate #define PERL_API_VERSION	8	/* Adjust manually as needed.  */
35*0Sstevel@tonic-gate #define PERL_API_SUBVERSION	0	/* Adjust manually as needed.  */
36*0Sstevel@tonic-gate /*
37*0Sstevel@tonic-gate    XXX Note:  The selection of non-default Configure options, such
38*0Sstevel@tonic-gate    as -Duselonglong may invalidate these settings.  Currently, Configure
39*0Sstevel@tonic-gate    does not adequately test for this.   A.D.  Jan 13, 2000
40*0Sstevel@tonic-gate */
41*0Sstevel@tonic-gate 
42*0Sstevel@tonic-gate #define __PATCHLEVEL_H_INCLUDED__
43*0Sstevel@tonic-gate #endif
44*0Sstevel@tonic-gate 
45*0Sstevel@tonic-gate /*
46*0Sstevel@tonic-gate 	local_patches -- list of locally applied less-than-subversion patches.
47*0Sstevel@tonic-gate 	If you're distributing such a patch, please give it a name and a
48*0Sstevel@tonic-gate 	one-line description, placed just before the last NULL in the array
49*0Sstevel@tonic-gate 	below.  If your patch fixes a bug in the perlbug database, please
50*0Sstevel@tonic-gate 	mention the bugid.  If your patch *IS* dependent on a prior patch,
51*0Sstevel@tonic-gate 	please place your applied patch line after its dependencies. This
52*0Sstevel@tonic-gate 	will help tracking of patch dependencies.
53*0Sstevel@tonic-gate 
54*0Sstevel@tonic-gate 	Please either use 'diff --unified=0' if your diff supports
55*0Sstevel@tonic-gate 	that or edit the hunk of the diff output which adds your patch
56*0Sstevel@tonic-gate 	to this list, to remove context lines which would give patch
57*0Sstevel@tonic-gate 	problems. For instance, if the original context diff is
58*0Sstevel@tonic-gate 
59*0Sstevel@tonic-gate 	   *** patchlevel.h.orig	<date here>
60*0Sstevel@tonic-gate 	   --- patchlevel.h	<date here>
61*0Sstevel@tonic-gate 	   *** 38,43 ***
62*0Sstevel@tonic-gate 	   --- 38,44 ---
63*0Sstevel@tonic-gate 	     	,"FOO1235 - some patch"
64*0Sstevel@tonic-gate 	     	,"BAR3141 - another patch"
65*0Sstevel@tonic-gate 	     	,"BAZ2718 - and another patch"
66*0Sstevel@tonic-gate 	   + 	,"MINE001 - my new patch"
67*0Sstevel@tonic-gate 	     	,NULL
68*0Sstevel@tonic-gate 	     };
69*0Sstevel@tonic-gate 
70*0Sstevel@tonic-gate 	please change it to
71*0Sstevel@tonic-gate 	   *** patchlevel.h.orig	<date here>
72*0Sstevel@tonic-gate 	   --- patchlevel.h	<date here>
73*0Sstevel@tonic-gate 	   *** 41,43 ***
74*0Sstevel@tonic-gate 	   --- 41,44 ---
75*0Sstevel@tonic-gate 	   + 	,"MINE001 - my new patch"
76*0Sstevel@tonic-gate 	     	,NULL
77*0Sstevel@tonic-gate 	     };
78*0Sstevel@tonic-gate 
79*0Sstevel@tonic-gate 	(Note changes to line numbers as well as removal of context lines.)
80*0Sstevel@tonic-gate 	This will prevent patch from choking if someone has previously
81*0Sstevel@tonic-gate 	applied different patches than you.
82*0Sstevel@tonic-gate 
83*0Sstevel@tonic-gate         History has shown that nobody distributes patches that also
84*0Sstevel@tonic-gate         modify patchlevel.h. Do it yourself. The following perl
85*0Sstevel@tonic-gate         program can be used to add a comment to patchlevel.h:
86*0Sstevel@tonic-gate 
87*0Sstevel@tonic-gate #!perl
88*0Sstevel@tonic-gate die "Usage: perl -x patchlevel.h comment ..." unless @ARGV;
89*0Sstevel@tonic-gate open PLIN, "patchlevel.h" or die "Couldn't open patchlevel.h : $!";
90*0Sstevel@tonic-gate open PLOUT, ">patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
91*0Sstevel@tonic-gate my $seen=0;
92*0Sstevel@tonic-gate while (<PLIN>) {
93*0Sstevel@tonic-gate     if (/\t,NULL/ and $seen) {
94*0Sstevel@tonic-gate        while (my $c = shift @ARGV){
95*0Sstevel@tonic-gate             print PLOUT qq{\t,"$c"\n};
96*0Sstevel@tonic-gate        }
97*0Sstevel@tonic-gate     }
98*0Sstevel@tonic-gate     $seen++ if /local_patches\[\]/;
99*0Sstevel@tonic-gate     print PLOUT;
100*0Sstevel@tonic-gate }
101*0Sstevel@tonic-gate close PLOUT or die "Couldn't close filehandle writing to patchlevel.new : $!";
102*0Sstevel@tonic-gate close PLIN or die "Couldn't close filehandle reading from patchlevel.h : $!";
103*0Sstevel@tonic-gate unlink "patchlevel.bak" or warn "Couldn't unlink patchlevel.bak : $!"
104*0Sstevel@tonic-gate   if -e "patchlevel.bak";
105*0Sstevel@tonic-gate rename "patchlevel.h", "patchlevel.bak" or
106*0Sstevel@tonic-gate   die "Couldn't rename patchlevel.h to patchlevel.bak : $!";
107*0Sstevel@tonic-gate rename "patchlevel.new", "patchlevel.h" or
108*0Sstevel@tonic-gate   die "Couldn't rename patchlevel.new to patchlevel.h : $!";
109*0Sstevel@tonic-gate __END__
110*0Sstevel@tonic-gate 
111*0Sstevel@tonic-gate Please keep empty lines below so that context diffs of this file do
112*0Sstevel@tonic-gate not ever collect the lines belonging to local_patches() into the same
113*0Sstevel@tonic-gate hunk.
114*0Sstevel@tonic-gate 
115*0Sstevel@tonic-gate  */
116*0Sstevel@tonic-gate 
117*0Sstevel@tonic-gate 
118*0Sstevel@tonic-gate 
119*0Sstevel@tonic-gate 
120*0Sstevel@tonic-gate #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
121*0Sstevel@tonic-gate static	char	*local_patches[] = {
122*0Sstevel@tonic-gate         NULL,
123*0Sstevel@tonic-gate 	"22667 The optree builder was looping when constructing the ops ...",
124*0Sstevel@tonic-gate 	"22715 Upgrade to FileCache 1.04",
125*0Sstevel@tonic-gate 	"22733 Missing copyright in the README.",
126*0Sstevel@tonic-gate 	"22746 fix a coredump caused by rv2gv not fully converting a PV ...",
127*0Sstevel@tonic-gate 	"22755 Fix 29149 - another UTF8 cache bug hit by substr.",
128*0Sstevel@tonic-gate 	"22774 [perl #28938] split could leave an array without ...",
129*0Sstevel@tonic-gate 	"22775 [perl #29127] scalar delete of empty slice returned garbage",
130*0Sstevel@tonic-gate 	"22776 [perl #28986] perl -e \"open m\" crashes Perl",
131*0Sstevel@tonic-gate 	"22777 add test for change #22776 (\"open m\" crashes Perl)",
132*0Sstevel@tonic-gate 	"22778 add test for change #22746 ([perl #29102] Crash on assign ...",
133*0Sstevel@tonic-gate 	"22781 [perl #29340] Bizarre copy of ARRAY make sure a pad op's ...",
134*0Sstevel@tonic-gate 	"22796 [perl #29346] Double warning for int(undef) and abs(undef) ...",
135*0Sstevel@tonic-gate 	"22818 BOM-marked and (BOMless) UTF-16 scripts not working",
136*0Sstevel@tonic-gate 	"22823 [perl #29581] glob() misses a lot of matches",
137*0Sstevel@tonic-gate 	"22827 Smoke [5.9.2] 22818 FAIL(F) MSWin32 WinXP/.Net SP1 (x86/1 cpu)",
138*0Sstevel@tonic-gate 	"22830 [perl #29637] Thread creation time is hypersensitive",
139*0Sstevel@tonic-gate 	"22831 improve hashing algorithm for ptr tables in perl_clone: ...",
140*0Sstevel@tonic-gate 	"22839 [perl #29790] Optimization busted: '@a = \"b\", sort @a' ...",
141*0Sstevel@tonic-gate 	"22850 [PATCH] 'perl -v' fails if local_patches contains code snippets",
142*0Sstevel@tonic-gate 	"22852 TEST needs to ignore SCM files",
143*0Sstevel@tonic-gate 	"22886 Pod::Find should ignore SCM files and dirs",
144*0Sstevel@tonic-gate 	"22888 Remove redundant %SIG assignments from FileCache",
145*0Sstevel@tonic-gate 	"23006 [perl #30509] use encoding and \"eq\" cause memory leak",
146*0Sstevel@tonic-gate 	"23074 Segfault using HTML::Entities",
147*0Sstevel@tonic-gate 	"23106 Numeric comparison operators mustn't compare addresses of ...",
148*0Sstevel@tonic-gate 	"23320 [perl #30066] Memory leak in nested shared data structures ...",
149*0Sstevel@tonic-gate 	"23321 [perl #31459] Bug in read()",
150*0Sstevel@tonic-gate 	NULL
151*0Sstevel@tonic-gate };
152*0Sstevel@tonic-gate 
153*0Sstevel@tonic-gate 
154*0Sstevel@tonic-gate 
155*0Sstevel@tonic-gate /* Initial space prevents this variable from being inserted in config.sh  */
156*0Sstevel@tonic-gate #  define	LOCAL_PATCH_COUNT	\
157*0Sstevel@tonic-gate 	(sizeof(local_patches)/sizeof(local_patches[0])-2)
158*0Sstevel@tonic-gate 
159*0Sstevel@tonic-gate /* the old terms of reference, add them only when explicitly included */
160*0Sstevel@tonic-gate #define PATCHLEVEL		PERL_VERSION
161*0Sstevel@tonic-gate #undef  SUBVERSION		/* OS/390 has a SUBVERSION in a system header */
162*0Sstevel@tonic-gate #define SUBVERSION		PERL_SUBVERSION
163*0Sstevel@tonic-gate #endif
164