1 /* patchlevel.h 2 * 3 * Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 4 * 2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others 5 * 6 * You may distribute under the terms of either the GNU General Public 7 * License or the Artistic License, as specified in the README file. 8 * 9 */ 10 11 #ifndef __PATCHLEVEL_H_INCLUDED__ 12 13 /* do not adjust the whitespace! Configure expects the numbers to be 14 * exactly on the third column */ 15 16 #define PERL_REVISION 5 /* age */ 17 #define PERL_VERSION 14 /* epoch */ 18 #define PERL_SUBVERSION 2 /* generation */ 19 20 /* The following numbers describe the earliest compatible version of 21 Perl ("compatibility" here being defined as sufficient binary/API 22 compatibility to run XS code built with the older version). 23 Normally this should not change across maintenance releases. 24 25 Note that this only refers to an out-of-the-box build. Many non-default 26 options such as usemultiplicity tend to break binary compatibility 27 more often. 28 29 This is used by Configure et al to figure out 30 PERL_INC_VERSION_LIST, which lists version libraries 31 to include in @INC. See INSTALL for how this works. 32 33 Porting/bump-perl-version will automatically set these to the version of perl 34 to be released for blead releases, and to 5.X.0 for maint releases. Manually 35 changing them should not be necessary. 36 */ 37 #define PERL_API_REVISION 5 38 #define PERL_API_VERSION 14 39 #define PERL_API_SUBVERSION 0 40 /* 41 XXX Note: The selection of non-default Configure options, such 42 as -Duselonglong may invalidate these settings. Currently, Configure 43 does not adequately test for this. A.D. Jan 13, 2000 44 */ 45 46 #define __PATCHLEVEL_H_INCLUDED__ 47 #endif 48 49 /* 50 local_patches -- list of locally applied less-than-subversion patches. 51 If you're distributing such a patch, please give it a name and a 52 one-line description, placed just before the last NULL in the array 53 below. If your patch fixes a bug in the perlbug database, please 54 mention the bugid. If your patch *IS* dependent on a prior patch, 55 please place your applied patch line after its dependencies. This 56 will help tracking of patch dependencies. 57 58 Please either use 'diff --unified=0' if your diff supports 59 that or edit the hunk of the diff output which adds your patch 60 to this list, to remove context lines which would give patch 61 problems. For instance, if the original context diff is 62 63 *** patchlevel.h.orig <date here> 64 --- patchlevel.h <date here> 65 *** 38,43 *** 66 --- 38,44 --- 67 ,"FOO1235 - some patch" 68 ,"BAR3141 - another patch" 69 ,"BAZ2718 - and another patch" 70 + ,"MINE001 - my new patch" 71 ,NULL 72 }; 73 74 please change it to 75 *** patchlevel.h.orig <date here> 76 --- patchlevel.h <date here> 77 *** 41,43 *** 78 --- 41,44 --- 79 + ,"MINE001 - my new patch" 80 ,NULL 81 }; 82 83 (Note changes to line numbers as well as removal of context lines.) 84 This will prevent patch from choking if someone has previously 85 applied different patches than you. 86 87 History has shown that nobody distributes patches that also 88 modify patchlevel.h. Do it yourself. The following perl 89 program can be used to add a comment to patchlevel.h: 90 91 #!perl 92 die "Usage: perl -x patchlevel.h comment ..." unless @ARGV; 93 open PLIN, "patchlevel.h" or die "Couldn't open patchlevel.h : $!"; 94 open PLOUT, ">patchlevel.new" or die "Couldn't write on patchlevel.new : $!"; 95 my $seen=0; 96 while (<PLIN>) { 97 if (/\t,NULL/ and $seen) { 98 while (my $c = shift @ARGV){ 99 $c =~ s|\\|\\\\|g; 100 $c =~ s|"|\\"|g; 101 print PLOUT qq{\t,"$c"\n}; 102 } 103 } 104 $seen++ if /local_patches\[\]/; 105 print PLOUT; 106 } 107 close PLOUT or die "Couldn't close filehandle writing to patchlevel.new : $!"; 108 close PLIN or die "Couldn't close filehandle reading from patchlevel.h : $!"; 109 close DATA; # needed to allow unlink to work win32. 110 unlink "patchlevel.bak" or warn "Couldn't unlink patchlevel.bak : $!" 111 if -e "patchlevel.bak"; 112 rename "patchlevel.h", "patchlevel.bak" or 113 die "Couldn't rename patchlevel.h to patchlevel.bak : $!"; 114 rename "patchlevel.new", "patchlevel.h" or 115 die "Couldn't rename patchlevel.new to patchlevel.h : $!"; 116 __END__ 117 118 Please keep empty lines below so that context diffs of this file do 119 not ever collect the lines belonging to local_patches() into the same 120 hunk. 121 122 */ 123 124 #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT) 125 # if defined(PERL_IS_MINIPERL) 126 # define PERL_PATCHNUM "UNKNOWN-miniperl" 127 # define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/ 128 # elif defined(PERL_MICRO) 129 # define PERL_PATCHNUM "UNKNOWN-microperl" 130 # define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/ 131 # else 132 #include "git_version.h" 133 # endif 134 static const char * const local_patches[] = { 135 NULL 136 #ifdef PERL_GIT_UNCOMMITTED_CHANGES 137 ,"uncommitted-changes" 138 #endif 139 PERL_GIT_UNPUSHED_COMMITS /* do not remove this line */ 140 ,NULL 141 }; 142 143 144 145 /* Initial space prevents this variable from being inserted in config.sh */ 146 # define LOCAL_PATCH_COUNT \ 147 ((int)(sizeof(local_patches)/sizeof(local_patches[0])-2)) 148 149 /* the old terms of reference, add them only when explicitly included */ 150 #define PATCHLEVEL PERL_VERSION 151 #undef SUBVERSION /* OS/390 has a SUBVERSION in a system header */ 152 #define SUBVERSION PERL_SUBVERSION 153 #endif 154