1CONFIGSMOKE(1)        User Contributed Perl Documentation       CONFIGSMOKE(1)
2
3
4

NAME

6       configsmoke.pl - Create a configuration for tssmokeperl.pl
7

SYNOPSIS

9           $ perl configsmoke.pl -p <prefix>[ -d <defaultsprefix>]
10
11       or regenerate from previous _config:
12
13           $ perl configsmoke.pl -p <prefix> -des
14

OPTIONS

16       Current options:
17
18         -d dfvalsprefix   Set prefix for a _dfconfig file (<prefix>)
19         -c configprefix   When omitted 'perlcurrent' is used
20         -j jclprefix      When omitted 'perlcurrent' is used
21         -l logprefix      When omitted 'perlcurrent' is used
22         -p prefix         Set -c and -j and -l at once
23
24         -des              confirm all answers (needs previous _config)
25

DESCRIPTION

27       Test::Smoke is the symbolic name for a set of scripts and modules that
28       try to run the perl core tests on as many configurations as possible
29       and combine the results into an easy to read report.
30
31       The main script is tssmokeperl.pl, and this uses a configuration file
32       that is created by this program (configsmoke.pl).  There is no default
33       configuration as some actions can be rather destructive, so you will
34       need to create your own configuration by running this program!
35
36       By default the configuration file created is called
37       smokecurrent_config, this can be changed by specifying the "-c
38       <prefix>" or "-p <prefix>" switch at the command line ("-c" will
39       override "-p" when both are specified).
40
41           $ perl configsmoke.pl -c mysmoke
42
43       will create mysmoke_config as the configuration file.
44
45       After you are done configuring, a small job command list is written.
46       For MSWin32 this is called smokecurrent.cmd otherwise this is called
47       smokecurrent.sh. Again the default prefix can be overridden by
48       specifying the "-j <prefix>" or "-p <prefix>" switch.
49
50       All output (stdout, stderr) from tssmokeperl.pl and its sub-processes
51       is redirected to a logfile called smokecurrent.log by the small jcl.
52       (Use "-l <prefix>" or "-p <prefix>" to override).
53
54       There are two additional configuration default files smoke562_dfconfig
55       and smoke58x_dfconfig to help you configure Test::Smoke for these two
56       maintenance branches of the source-tree.
57
58       To create a configuration for the perl 5.8.x branch:
59
60           $ perl configsmoke.pl -p smoke58x
61
62       This will read additional defaults from smoke58x_dfconfig and create
63       smoke58x_config and smoke58x.sh/smoke58x.cmd and logfile will be
64       smoke58x.log.
65
66       To create another configuration for the same branch (and have the right
67       defaults) you can add the "-d" option:
68
69           $ perl configsmokepl -p snap58x -d smoke58x
70
71       To create a configuration for the perl 5.6.2 brach:
72
73           $ perl configsmoke.pl -p smoke562
74

CONFIGURATION

76       Use of the program:
77
78       ·   Values in angled-brackets (<>) are alternatives (none other
79           allowed)
80
81       ·   Values in square-brackets ([]) are default values (<Enter>
82           confirms)
83
84       ·   Use single space to clear a value
85
86       Here is a description of the configuration sections.
87
88       perl_version
89           "perl_version" sets a number of default_values.  This makes the
90           smoke5?x_dfconfig files almost obsolete, although they still
91           provide a nice way to set the prefix and set the perl_version.
92
93       ddir
94           "ddir" is the destination directory. This is used to put the
95           source-tree in and build perl. If a source-tree appears to be there
96           you will need to confirm your choice.
97
98       cfg "cfg" is the path to the file that holds the build-configurations.
99           There are several build-cfg files provided with the distribution:
100
101           perlcurrent.cfg for 5.11.x+ on unixy systems
102           perl510x.cfg for 5.10.x (MAINT) on unixy systems
103           perl58x.cfg for 5.8.x (MAINT) on unixy systems
104           w32current.cfg for 5.8.x+ on MSWin32
105           vmsperl.cfg for 5.8.x+ on OpenVMS
106       Nick Clark hardlink forest
107           Here is how Nick described it to me:
108
109           My plan is to use a few more directories, and avoid make distclean:
110
111           1.  rsync as before, but to a master directory. this directory is
112               only used for rsyncing from the server
113
114           2.  copy that directory (as a hardlink forest) - gnu cp can do it
115               as cp -lr, and I have a perl script to replicate that (which
116               works nicely on FreeBSD) as a clean master source directory for
117               this smoke session
118
119           3.  run the regen headers script (which 5.9.0 now has as a distinct
120               script) rather than just a Makefile target
121
122               I now have a clean, up-to-date source tree with accurate
123               headers. For each smoking configuration
124
125           4.  copy that directory (hard links again)
126
127           5.  in the copy directory. Configure, build and test
128
129           6.  delete the copy directory
130
131           deleting a directory seems to be faster than make distclean.
132
133       sync_type (fsync)
134           "sync_type" (or "fsync" if you want_forest) can be one of four:
135
136           rsync
137               This will use the rsync program to sync up with the repository.
138               configsmoke.pl checks to see if it can find rsync in your path.
139
140               The default switches passed to rsync are: -az --delete
141
142           snapshot
143               This will use Net::FTP to try to find the latest snapshot on
144               <ftp://ftp.funet.fi/languages/perl/snap/>.
145
146               You can also get the perl-5.8.x snapshots (and others) via HTTP
147               if you have LWP installed. There are two things you should
148               remember:
149
150               1. start the server-name http://
151               2. the snapshot-file must be specified.
152
153               Snapshots are not in sync with the repository, so if you have a
154               working patch program, you can choose to "upgrade" your
155               snapshot by fetching all the seperate patches from the
156               repository and applying them.
157
158           copy
159               This will use File::Copy and File::Find to just copy from a
160               local source directory.
161
162           hardlink
163               This will use File::Find and the link function to copy from a
164               local source directory. (This is also used if you choose
165               "forest".)
166
167           See also Test::Smoke::Syncer
168
169       pfile
170           "pfile" is the path to a textfile that holds the names of patches
171           to be applied before smoking. This can be used to run a smoke test
172           on proposed patches that have not been applied (yet) or to see the
173           effect of reversing an already applied patch. The file format is
174           simple:
175
176           ·       one patchfile per line
177
178           ·       optionally followed by ';' and options to pass to patch
179
180           ·       optionally followed by ';' and a description for the patch
181
182           If the file does not exist yet, a skeleton version will be created
183           for you.
184
185           You will need a working patch program to use this feature.
186
187           TODO: There is an issue when using the "forest" sync, but I will
188           look into that.
189
190       skip_tests
191           This is a MANIFEST-like file with the paths to tests that should be
192           skipped for this smoke.
193
194           The process involves on the fly modification of MANIFEST for tests
195           in lib/ and ext/ and renaming of core-tests in t/.
196
197       hostname
198           In the case "System::Info->hostname" needs to be overridden.
199
200       user_note
201           This gives you a way of adding personal information to the report.
202
203           un_file is the filename where the text to insert into the report is
204           set.
205
206           user_note is the old way to add this text.
207
208           un_position specify if you want the user_note on TOP or at the
209           BOTTOM of te report.
210
211       force_c_locale
212           "force_c_locale" is passed as a switch to mktest.pl to indicate
213           that $ENV{LC_ALL} should be forced to "C" during make test.
214
215       defaultenv
216           "defaultenv", when set will make Test::Smoke remove $ENV{PERLIO}
217           and only do a single pass "make test".
218
219       locale
220           "locale" and its value are passed to mktest.pl and its value is
221           passed to mkovz.pl. mktest.pl will do an extra pass of make test
222           with $ENV{LC_ALL} set to that locale (and "$ENV{PERL_UNICODE} =
223           "";", "$ENV{PERLIO} = "perlio";"). This feature should only be used
224           with UTF8 locales, that is why this is checked (by regex only).
225
226           If you know of a way to get the utf8 locales on your system, which
227           is not covered here, please let me know!
228
229       smokedb_url [http://perl5.test-smoke.org]
230           Instead of flooding a mailing list, reposts should be sent to the
231           SmokeDB.  The option to mail yourself a copy of the report still
232           exists. The SmokeDB however offers a central point of view to the
233           smoke results.
234
235       send_log <always|on_fail|never> [on_fail]
236           Please send in the smoke-logfile for failures.
237
238       send_out <always|on_fail|never> [never]
239       mail
240           "{mail}" will set the new default for tssmokeperl.pl
241
242       mail_type
243           See Test::Smoke::Mailer and mailrpt.pl
244
245       w32args
246           For MSWin32 we need some extra information that is passed to
247           Test::Smoke::Smoker in order to compensate for the lack of
248           Configure.
249
250           See "Configure_win32( )" in Test::Smoke::Util and W32Configure.pl
251
252       vmsmake
253           Get the make program to use for VMS (MMS or MMK). Start with the
254           one this perl was build with.
255
256       make finetuning
257           Two different config options to accomodate the same thing: parallel
258           build and serial testing
259
260             * makeopt  => used by Test::Smoke::Smoker::_make()
261             * testmake => use a different binary for "make _test"
262
263       harnessonly
264           "harnessonly" indicates that "make test" is replaced by "make
265           test_harness".
266
267       hasharness3
268           "hasharness3" is automagically set for perl version >= 5.11
269
270       harness3opts
271           "harness3opts" are passed to "HARNESS_OPTIONS" for the "make
272           test_harness" step.
273
274       umask
275           "umask" will be set in the shell-script that starts the smoke.
276
277       renice
278           "renice" will add a line in the shell-script that starts the smoke.
279
280       v   The verbosity level:
281
282           0: Be as quiet as possible
283           1: Give moderate information
284           2: Be as loud as possible
285
286           Every module has its own verbosity control and these are not verry
287           consistent at the moment.
288
289       smartsmoke
290           "smartsmoke" indicates that the smoke need not happen if the
291           patchlevel is the same after syncing the source-tree.
292
293       killtime
294           When $Config{d_alarm} is found we can use "alarm()" to abort long
295           running smokes. Leave this value empty to keep the old behaviour.
296
297               07:30 => F<tssmokeperl.pl> is aborted on 7:30 localtime
298              +23:45 => F<tssmokeperl.pl> is aborted after 23 hours and 45 minutes
299
300           Thank you Jarkko for donating this suggestion.
301
302       adir
303           The smokereports are lost after a new SYNCTREE step, it might be
304           handy to archive them along with the logfile.
305
306           If you want this then set the directory where you want the stored
307           (empty value means no archiving).
308
309       delay_report
310           Some filesystems do not support opening an already opened file.
311           This makes it hard to scan the logfile for compiler messages. We
312           can delay the creation of the report and call mailrpt.pl after
313           tssmokeperl.pl. VMS might benefit.
314
315       PERL5LIB
316           If you have a value for PERL5LIB set in the config environment, you
317           could have it transferred tho the jcl-wrapperscript. Do not bother
318           asking if it is not there.
319
320       PERL5OPT
321           If you have a value for PERL5OPT set in the config environment, you
322           could have it transferred tho the jcl-wrapperscript. Do not bother
323           asking if it is not there.
324
325       schedule stuff
326           cron/crontab
327               We try to detect 'crontab' or 'cron', read the contents of
328               crontab -l, detect ourself and comment us out.  Then we add an
329               new entry.
330
331           MSWin32 at.exe
332               We only add a new entry, you will need to remove existing
333               entries, as at.exe has not got a way comment-out entries.
334

Supporting subs

336       save_config()
337           "save_config()" writes the configuration data to disk.  If
338           "Data::Dumper->can('Sortkeys')" it will order the keys.
339
340       sort_configkeys()
341           "sort_configkeys()" is the hook for Data::Dumper
342
343           Order and grouping by Merijn, thanks!
344
345       write_sh()
346           "write_sh()" creates the shell-script.
347
348       write_bat()
349           "write_bat()" writes the batch-file. It uses the ".cmd" extension
350           because it uses commands that are not supported by COMMAND.COM
351
352       write_com
353           Write a simple DCL script that helps running the smoke suite.
354
355       default_buildcfg( $file_name, $pversion )
356           Check to see if $file_name exists. If not, copy the default config
357           for $pversion to $file_name.
358
359       check_buildcfg
360           We will try to check the build configurations file to see if we
361           should comment some options out.
362
363       finish_cfgcheck
364           "finish_cfgcheck()" will create a backup of the original file and
365           write the new one in its place.
366
367       _perl_numeric_version( $dotted )
368           Normalize the dotted version to a numeric version.
369

TODO

371       Schedule, logfile optional
372

REVISION

374       In case I forget to update the $VERSION:
375
376           $Id$
377
379       (c) 2002-2003, All rights reserved.
380
381         * Abe Timmerman <abeltje@cpan.org>
382
383       This library is free software; you can redistribute it and/or modify it
384       under the same terms as Perl itself.
385
386       See:
387
388       ·   <http://www.perl.com/perl/misc/Artistic.html>
389
390       ·   <http://www.gnu.org/copyleft/gpl.html>
391
392       This program is distributed in the hope that it will be useful, but
393       WITHOUT ANY WARRANTY; without even the implied warranty of
394       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
395
396
397
398perl v5.30.1                      2020-02-10                    CONFIGSMOKE(1)
Impressum