| 1 | #!/usr/bin/perl |
|---|
| 2 | use strict; |
|---|
| 3 | use warnings; |
|---|
| 4 | use ExtUtils::MakeMaker qw(prompt); |
|---|
| 5 | use File::Basename; |
|---|
| 6 | use File::Path; |
|---|
| 7 | use File::Spec; |
|---|
| 8 | use Template; |
|---|
| 9 | use YAML; |
|---|
| 10 | |
|---|
| 11 | my $path = File::Spec->catfile($ENV{HOME}, "/.pmsetuprc"); |
|---|
| 12 | my $config = eval { YAML::LoadFile($path) } || {}; |
|---|
| 13 | |
|---|
| 14 | my $save; |
|---|
| 15 | while (! $config->{author}) { |
|---|
| 16 | $config->{author} = prompt("Your name: ", ''); |
|---|
| 17 | $save++; |
|---|
| 18 | } |
|---|
| 19 | |
|---|
| 20 | while (! $config->{email}) { |
|---|
| 21 | $config->{email} = prompt("Your email: ", ''); |
|---|
| 22 | $save++; |
|---|
| 23 | } |
|---|
| 24 | |
|---|
| 25 | my $modname = shift @ARGV or die "Usage: $0 module\n"; |
|---|
| 26 | $modname =~ s/-/::/g; |
|---|
| 27 | |
|---|
| 28 | write_plugin_files($modname, $config); |
|---|
| 29 | |
|---|
| 30 | END { |
|---|
| 31 | YAML::DumpFile($path, $config) if $save; |
|---|
| 32 | } |
|---|
| 33 | |
|---|
| 34 | sub write_plugin_files { |
|---|
| 35 | my($module, $config) = @_; |
|---|
| 36 | |
|---|
| 37 | # $module = "Foo::Bar" |
|---|
| 38 | # $dist = "Foo-Bar" |
|---|
| 39 | # $path = "Foo/Bar.pm" |
|---|
| 40 | my @pkg = split /::/, $module; |
|---|
| 41 | my $dist = join "-", @pkg; |
|---|
| 42 | my $path = join("/", @pkg) . ".pm"; |
|---|
| 43 | |
|---|
| 44 | mkdir $dist, 0777; |
|---|
| 45 | chdir $dist; |
|---|
| 46 | |
|---|
| 47 | my @template = YAML::Load(join '', <DATA>); |
|---|
| 48 | my $vars = { module => $module, dist => $dist, path => $path, |
|---|
| 49 | config => $config, localtime => scalar localtime }; |
|---|
| 50 | |
|---|
| 51 | for my $tmpl (@template) { |
|---|
| 52 | my $file = $tmpl->{file}; |
|---|
| 53 | $file =~ s/(\$\w+)/$1/eeg; |
|---|
| 54 | write_file($file, $tmpl->{template}, $vars); |
|---|
| 55 | } |
|---|
| 56 | |
|---|
| 57 | !system "perl Makefile.PL" or die $?; |
|---|
| 58 | !system 'make test' or die $?; |
|---|
| 59 | !system 'make manifest' or die $?; |
|---|
| 60 | !system 'make distclean' or die $?; |
|---|
| 61 | } |
|---|
| 62 | |
|---|
| 63 | sub write_file { |
|---|
| 64 | my($path, $template, $vars) = @_; |
|---|
| 65 | |
|---|
| 66 | if (-e $path) { |
|---|
| 67 | my $ans = prompt("$path exists. Override? [yN] ", 'n'); |
|---|
| 68 | return if $ans !~ /[Yy]/; |
|---|
| 69 | } |
|---|
| 70 | |
|---|
| 71 | my $dir = File::Basename::dirname($path); |
|---|
| 72 | unless (-e $dir) { |
|---|
| 73 | warn "Creating directory $dir\n"; |
|---|
| 74 | File::Path::mkpath($dir, 1, 0777); |
|---|
| 75 | } |
|---|
| 76 | |
|---|
| 77 | my $tt = Template->new; |
|---|
| 78 | $tt->process(\$template, $vars, \my $content); |
|---|
| 79 | |
|---|
| 80 | warn "Creating $path\n"; |
|---|
| 81 | open my $out, ">", $path or die "$path: $!"; |
|---|
| 82 | print $out $content; |
|---|
| 83 | close $out; |
|---|
| 84 | } |
|---|
| 85 | |
|---|
| 86 | __DATA__ |
|---|
| 87 | --- |
|---|
| 88 | file: Makefile.PL |
|---|
| 89 | template: | |
|---|
| 90 | use inc::Module::Install; |
|---|
| 91 | name '[% dist %]'; |
|---|
| 92 | all_from 'lib/[% path %]'; |
|---|
| 93 | |
|---|
| 94 | build_requires 'Test::More'; |
|---|
| 95 | use_test_base; |
|---|
| 96 | auto_include; |
|---|
| 97 | WriteAll; |
|---|
| 98 | |
|---|
| 99 | --- |
|---|
| 100 | file: t/00_compile.t |
|---|
| 101 | template: | |
|---|
| 102 | use strict; |
|---|
| 103 | use Test::More tests => 1; |
|---|
| 104 | |
|---|
| 105 | BEGIN { use_ok '[% module %]' } |
|---|
| 106 | --- |
|---|
| 107 | file: t/pod.t |
|---|
| 108 | template: | |
|---|
| 109 | use Test::More; |
|---|
| 110 | eval "use Test::Pod 1.00"; |
|---|
| 111 | plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; |
|---|
| 112 | all_pod_files_ok(); |
|---|
| 113 | --- |
|---|
| 114 | file: t/pod_coverage.t |
|---|
| 115 | template: | |
|---|
| 116 | use Test::More; |
|---|
| 117 | eval "use Test::Pod::Coverage 1.04"; |
|---|
| 118 | plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" |
|---|
| 119 | if $@; |
|---|
| 120 | all_pod_coverage_ok(); |
|---|
| 121 | --- |
|---|
| 122 | file: Changes |
|---|
| 123 | template: | |
|---|
| 124 | Revision history for Perl extension [% module %] |
|---|
| 125 | |
|---|
| 126 | 0.01 [% localtime %] |
|---|
| 127 | - original version |
|---|
| 128 | --- |
|---|
| 129 | file: lib/$path |
|---|
| 130 | template: | |
|---|
| 131 | package [% module %]; |
|---|
| 132 | use strict; |
|---|
| 133 | use warnings; |
|---|
| 134 | |
|---|
| 135 | our $VERSION = '0.01'; |
|---|
| 136 | |
|---|
| 137 | =head1 NAME |
|---|
| 138 | |
|---|
| 139 | [% module %] - Module abstract (<= 44 characters) goes here |
|---|
| 140 | |
|---|
| 141 | =head1 SYNOPSIS |
|---|
| 142 | |
|---|
| 143 | use [% module %]; |
|---|
| 144 | blah blah blah |
|---|
| 145 | |
|---|
| 146 | =head1 DESCRIPTION |
|---|
| 147 | |
|---|
| 148 | Stub documentation for this module was created by ExtUtils::ModuleMaker. |
|---|
| 149 | It looks like the author of the extension was negligent enough |
|---|
| 150 | to leave the stub unedited. |
|---|
| 151 | |
|---|
| 152 | Blah blah blah. |
|---|
| 153 | |
|---|
| 154 | =head1 AUTHOR |
|---|
| 155 | |
|---|
| 156 | [% config.author %] <[% config.email %]> |
|---|
| 157 | |
|---|
| 158 | =head1 COPYRIGHT |
|---|
| 159 | |
|---|
| 160 | This program is free software; you can redistribute |
|---|
| 161 | it and/or modify it under the same terms as Perl itself. |
|---|
| 162 | |
|---|
| 163 | The full text of the license can be found in the |
|---|
| 164 | LICENSE file included with this module. |
|---|
| 165 | |
|---|
| 166 | =cut |
|---|
| 167 | |
|---|
| 168 | 1; |
|---|
| 169 | --- |
|---|
| 170 | file: MANIFEST.SKIP |
|---|
| 171 | template: | |
|---|
| 172 | \bRCS\b |
|---|
| 173 | \bCVS\b |
|---|
| 174 | ^MANIFEST\. |
|---|
| 175 | ^Makefile$ |
|---|
| 176 | ~$ |
|---|
| 177 | \.old$ |
|---|
| 178 | ^blib/ |
|---|
| 179 | ^pm_to_blib |
|---|
| 180 | ^MakeMaker-\d |
|---|
| 181 | \.gz$ |
|---|
| 182 | \.cvsignore |
|---|
| 183 | ^9\d_.*\.t |
|---|
| 184 | ^\.git/ |
|---|
| 185 | ^\.shipit$ |
|---|
| 186 | --- |
|---|
| 187 | file: .shipit |
|---|
| 188 | template: | |
|---|
| 189 | steps = FindVersion, ChangeVersion, CheckChangeLog, DistTest, Commit, Tag, MakeDist, UploadCPAN |
|---|
| 190 | |
|---|
| 191 | git.tagpattern = release-%v |
|---|
| 192 | git.push_to = origin |
|---|
| 193 | |
|---|
| 194 | --- |
|---|
| 195 | file: README |
|---|
| 196 | template: | |
|---|
| 197 | This is Perl module [% module %]. |
|---|
| 198 | |
|---|
| 199 | INSTALLATION |
|---|
| 200 | |
|---|
| 201 | [% module %] installation is straightforward. If your CPAN shell is set up, |
|---|
| 202 | you should just be able to do |
|---|
| 203 | |
|---|
| 204 | % cpan [% module %] |
|---|
| 205 | |
|---|
| 206 | Download it, unpack it, then build it as per the usual: |
|---|
| 207 | |
|---|
| 208 | % perl Makefile.PL |
|---|
| 209 | % make && make test |
|---|
| 210 | |
|---|
| 211 | Then install it: |
|---|
| 212 | |
|---|
| 213 | % make install |
|---|
| 214 | |
|---|
| 215 | DOCUMENTATION |
|---|
| 216 | |
|---|
| 217 | [% module %] documentation is available as in POD. So you can do: |
|---|
| 218 | |
|---|
| 219 | % perldoc [% module %] |
|---|
| 220 | |
|---|
| 221 | to read the documentation online with your favorite pager. |
|---|
| 222 | |
|---|
| 223 | [% config.author %] |
|---|
| 224 | --- |
|---|
| 225 | file: LICENSE |
|---|
| 226 | template: | |
|---|
| 227 | Terms of Perl itself |
|---|
| 228 | |
|---|
| 229 | a) the GNU General Public License as published by the Free |
|---|
| 230 | Software Foundation; either version 1, or (at your option) any |
|---|
| 231 | later version, or |
|---|
| 232 | b) the "Artistic License" |
|---|
| 233 | |
|---|
| 234 | --------------------------------------------------------------------------- |
|---|
| 235 | |
|---|
| 236 | The General Public License (GPL) |
|---|
| 237 | Version 2, June 1991 |
|---|
| 238 | |
|---|
| 239 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, |
|---|
| 240 | Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute |
|---|
| 241 | verbatim copies of this license document, but changing it is not allowed. |
|---|
| 242 | |
|---|
| 243 | Preamble |
|---|
| 244 | |
|---|
| 245 | The licenses for most software are designed to take away your freedom to share |
|---|
| 246 | and change it. By contrast, the GNU General Public License is intended to |
|---|
| 247 | guarantee your freedom to share and change free software--to make sure the |
|---|
| 248 | software is free for all its users. This General Public License applies to most of |
|---|
| 249 | the Free Software Foundation's software and to any other program whose |
|---|
| 250 | authors commit to using it. (Some other Free Software Foundation software is |
|---|
| 251 | covered by the GNU Library General Public License instead.) You can apply it to |
|---|
| 252 | your programs, too. |
|---|
| 253 | |
|---|
| 254 | When we speak of free software, we are referring to freedom, not price. Our |
|---|
| 255 | General Public Licenses are designed to make sure that you have the freedom |
|---|
| 256 | to distribute copies of free software (and charge for this service if you wish), that |
|---|
| 257 | you receive source code or can get it if you want it, that you can change the |
|---|
| 258 | software or use pieces of it in new free programs; and that you know you can do |
|---|
| 259 | these things. |
|---|
| 260 | |
|---|
| 261 | To protect your rights, we need to make restrictions that forbid anyone to deny |
|---|
| 262 | you these rights or to ask you to surrender the rights. These restrictions |
|---|
| 263 | translate to certain responsibilities for you if you distribute copies of the |
|---|
| 264 | software, or if you modify it. |
|---|
| 265 | |
|---|
| 266 | For example, if you distribute copies of such a program, whether gratis or for a |
|---|
| 267 | fee, you must give the recipients all the rights that you have. You must make |
|---|
| 268 | sure that they, too, receive or can get the source code. And you must show |
|---|
| 269 | them these terms so they know their rights. |
|---|
| 270 | |
|---|
| 271 | We protect your rights with two steps: (1) copyright the software, and (2) offer |
|---|
| 272 | you this license which gives you legal permission to copy, distribute and/or |
|---|
| 273 | modify the software. |
|---|
| 274 | |
|---|
| 275 | Also, for each author's protection and ours, we want to make certain that |
|---|
| 276 | everyone understands that there is no warranty for this free software. If the |
|---|
| 277 | software is modified by someone else and passed on, we want its recipients to |
|---|
| 278 | know that what they have is not the original, so that any problems introduced by |
|---|
| 279 | others will not reflect on the original authors' reputations. |
|---|
| 280 | |
|---|
| 281 | Finally, any free program is threatened constantly by software patents. We wish |
|---|
| 282 | to avoid the danger that redistributors of a free program will individually obtain |
|---|
| 283 | patent licenses, in effect making the program proprietary. To prevent this, we |
|---|
| 284 | have made it clear that any patent must be licensed for everyone's free use or |
|---|
| 285 | not licensed at all. |
|---|
| 286 | |
|---|
| 287 | The precise terms and conditions for copying, distribution and modification |
|---|
| 288 | follow. |
|---|
| 289 | |
|---|
| 290 | GNU GENERAL PUBLIC LICENSE |
|---|
| 291 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND |
|---|
| 292 | MODIFICATION |
|---|
| 293 | |
|---|
| 294 | 0. This License applies to any program or other work which contains a notice |
|---|
| 295 | placed by the copyright holder saying it may be distributed under the terms of |
|---|
| 296 | this General Public License. The "Program", below, refers to any such program |
|---|
| 297 | or work, and a "work based on the Program" means either the Program or any |
|---|
| 298 | derivative work under copyright law: that is to say, a work containing the |
|---|
| 299 | Program or a portion of it, either verbatim or with modifications and/or translated |
|---|
| 300 | into another language. (Hereinafter, translation is included without limitation in |
|---|
| 301 | the term "modification".) Each licensee is addressed as "you". |
|---|
| 302 | |
|---|
| 303 | Activities other than copying, distribution and modification are not covered by |
|---|
| 304 | this License; they are outside its scope. The act of running the Program is not |
|---|
| 305 | restricted, and the output from the Program is covered only if its contents |
|---|
| 306 | constitute a work based on the Program (independent of having been made by |
|---|
| 307 | running the Program). Whether that is true depends on what the Program does. |
|---|
| 308 | |
|---|
| 309 | 1. You may copy and distribute verbatim copies of the Program's source code as |
|---|
| 310 | you receive it, in any medium, provided that you conspicuously and appropriately |
|---|
| 311 | publish on each copy an appropriate copyright notice and disclaimer of warranty; |
|---|
| 312 | keep intact all the notices that refer to this License and to the absence of any |
|---|
| 313 | warranty; and give any other recipients of the Program a copy of this License |
|---|
| 314 | along with the Program. |
|---|
| 315 | |
|---|
| 316 | You may charge a fee for the physical act of transferring a copy, and you may at |
|---|
| 317 | your option offer warranty protection in exchange for a fee. |
|---|
| 318 | |
|---|
| 319 | 2. You may modify your copy or copies of the Program or any portion of it, thus |
|---|
| 320 | forming a work based on the Program, and copy and distribute such |
|---|
| 321 | modifications or work under the terms of Section 1 above, provided that you also |
|---|
| 322 | meet all of these conditions: |
|---|
| 323 | |
|---|
| 324 | a) You must cause the modified files to carry prominent notices stating that you |
|---|
| 325 | changed the files and the date of any change. |
|---|
| 326 | |
|---|
| 327 | b) You must cause any work that you distribute or publish, that in whole or in |
|---|
| 328 | part contains or is derived from the Program or any part thereof, to be licensed |
|---|
| 329 | as a whole at no charge to all third parties under the terms of this License. |
|---|
| 330 | |
|---|
| 331 | c) If the modified program normally reads commands interactively when run, you |
|---|
| 332 | must cause it, when started running for such interactive use in the most ordinary |
|---|
| 333 | way, to print or display an announcement including an appropriate copyright |
|---|
| 334 | notice and a notice that there is no warranty (or else, saying that you provide a |
|---|
| 335 | warranty) and that users may redistribute the program under these conditions, |
|---|
| 336 | and telling the user how to view a copy of this License. (Exception: if the |
|---|
| 337 | Program itself is interactive but does not normally print such an announcement, |
|---|
| 338 | your work based on the Program is not required to print an announcement.) |
|---|
| 339 | |
|---|
| 340 | These requirements apply to the modified work as a whole. If identifiable |
|---|
| 341 | sections of that work are not derived from the Program, and can be reasonably |
|---|
| 342 | considered independent and separate works in themselves, then this License, |
|---|
| 343 | and its terms, do not apply to those sections when you distribute them as |
|---|
| 344 | separate works. But when you distribute the same sections as part of a whole |
|---|
| 345 | which is a work based on the Program, the distribution of the whole must be on |
|---|
| 346 | the terms of this License, whose permissions for other licensees extend to the |
|---|
| 347 | entire whole, and thus to each and every part regardless of who wrote it. |
|---|
| 348 | |
|---|
| 349 | Thus, it is not the intent of this section to claim rights or contest your rights to |
|---|
| 350 | work written entirely by you; rather, the intent is to exercise the right to control |
|---|
| 351 | the distribution of derivative or collective works based on the Program. |
|---|
| 352 | |
|---|
| 353 | In addition, mere aggregation of another work not based on the Program with the |
|---|
| 354 | Program (or with a work based on the Program) on a volume of a storage or |
|---|
| 355 | distribution medium does not bring the other work under the scope of this |
|---|
| 356 | License. |
|---|
| 357 | |
|---|
| 358 | 3. You may copy and distribute the Program (or a work based on it, under |
|---|
| 359 | Section 2) in object code or executable form under the terms of Sections 1 and 2 |
|---|
| 360 | above provided that you also do one of the following: |
|---|
| 361 | |
|---|
| 362 | a) Accompany it with the complete corresponding machine-readable source |
|---|
| 363 | code, which must be distributed under the terms of Sections 1 and 2 above on a |
|---|
| 364 | medium customarily used for software interchange; or, |
|---|
| 365 | |
|---|
| 366 | b) Accompany it with a written offer, valid for at least three years, to give any |
|---|
| 367 | third party, for a charge no more than your cost of physically performing source |
|---|
| 368 | distribution, a complete machine-readable copy of the corresponding source |
|---|
| 369 | code, to be distributed under the terms of Sections 1 and 2 above on a medium |
|---|
| 370 | customarily used for software interchange; or, |
|---|
| 371 | |
|---|
| 372 | c) Accompany it with the information you received as to the offer to distribute |
|---|
| 373 | corresponding source code. (This alternative is allowed only for noncommercial |
|---|
| 374 | distribution and only if you received the program in object code or executable |
|---|
| 375 | form with such an offer, in accord with Subsection b above.) |
|---|
| 376 | |
|---|
| 377 | The source code for a work means the preferred form of the work for making |
|---|
| 378 | modifications to it. For an executable work, complete source code means all the |
|---|
| 379 | source code for all modules it contains, plus any associated interface definition |
|---|
| 380 | files, plus the scripts used to control compilation and installation of the |
|---|
| 381 | executable. However, as a special exception, the source code distributed need |
|---|
| 382 | not include anything that is normally distributed (in either source or binary form) |
|---|
| 383 | with the major components (compiler, kernel, and so on) of the operating system |
|---|
| 384 | on which the executable runs, unless that component itself accompanies the |
|---|
| 385 | executable. |
|---|
| 386 | |
|---|
| 387 | If distribution of executable or object code is made by offering access to copy |
|---|
| 388 | from a designated place, then offering equivalent access to copy the source |
|---|
| 389 | code from the same place counts as distribution of the source code, even though |
|---|
| 390 | third parties are not compelled to copy the source along with the object code. |
|---|
| 391 | |
|---|
| 392 | 4. You may not copy, modify, sublicense, or distribute the Program except as |
|---|
| 393 | expressly provided under this License. Any attempt otherwise to copy, modify, |
|---|
| 394 | sublicense or distribute the Program is void, and will automatically terminate |
|---|
| 395 | your rights under this License. However, parties who have received copies, or |
|---|
| 396 | rights, from you under this License will not have their licenses terminated so long |
|---|
| 397 | as such parties remain in full compliance. |
|---|
| 398 | |
|---|
| 399 | 5. You are not required to accept this License, since you have not signed it. |
|---|
| 400 | However, nothing else grants you permission to modify or distribute the Program |
|---|
| 401 | or its derivative works. These actions are prohibited by law if you do not accept |
|---|
| 402 | this License. Therefore, by modifying or distributing the Program (or any work |
|---|
| 403 | based on the Program), you indicate your acceptance of this License to do so, |
|---|
| 404 | and all its terms and conditions for copying, distributing or modifying the |
|---|
| 405 | Program or works based on it. |
|---|
| 406 | |
|---|
| 407 | 6. Each time you redistribute the Program (or any work based on the Program), |
|---|
| 408 | the recipient automatically receives a license from the original licensor to copy, |
|---|
| 409 | distribute or modify the Program subject to these terms and conditions. You |
|---|
| 410 | may not impose any further restrictions on the recipients' exercise of the rights |
|---|
| 411 | granted herein. You are not responsible for enforcing compliance by third parties |
|---|
| 412 | to this License. |
|---|
| 413 | |
|---|
| 414 | 7. If, as a consequence of a court judgment or allegation of patent infringement |
|---|
| 415 | or for any other reason (not limited to patent issues), conditions are imposed on |
|---|
| 416 | you (whether by court order, agreement or otherwise) that contradict the |
|---|
| 417 | conditions of this License, they do not excuse you from the conditions of this |
|---|
| 418 | License. If you cannot distribute so as to satisfy simultaneously your obligations |
|---|
| 419 | under this License and any other pertinent obligations, then as a consequence |
|---|
| 420 | you may not distribute the Program at all. For example, if a patent license would |
|---|
| 421 | not permit royalty-free redistribution of the Program by all those who receive |
|---|
| 422 | copies directly or indirectly through you, then the only way you could satisfy |
|---|
| 423 | both it and this License would be to refrain entirely from distribution of the |
|---|
| 424 | Program. |
|---|
| 425 | |
|---|
| 426 | If any portion of this section is held invalid or unenforceable under any particular |
|---|
| 427 | circumstance, the balance of the section is intended to apply and the section as |
|---|
| 428 | a whole is intended to apply in other circumstances. |
|---|
| 429 | |
|---|
| 430 | It is not the purpose of this section to induce you to infringe any patents or other |
|---|
| 431 | property right claims or to contest validity of any such claims; this section has |
|---|
| 432 | the sole purpose of protecting the integrity of the free software distribution |
|---|
| 433 | system, which is implemented by public license practices. Many people have |
|---|
| 434 | made generous contributions to the wide range of software distributed through |
|---|
| 435 | that system in reliance on consistent application of that system; it is up to the |
|---|
| 436 | author/donor to decide if he or she is willing to distribute software through any |
|---|
| 437 | other system and a licensee cannot impose that choice. |
|---|
| 438 | |
|---|
| 439 | This section is intended to make thoroughly clear what is believed to be a |
|---|
| 440 | consequence of the rest of this License. |
|---|
| 441 | |
|---|
| 442 | 8. If the distribution and/or use of the Program is restricted in certain countries |
|---|
| 443 | either by patents or by copyrighted interfaces, the original copyright holder who |
|---|
| 444 | places the Program under this License may add an explicit geographical |
|---|
| 445 | distribution limitation excluding those countries, so that distribution is permitted |
|---|
| 446 | only in or among countries not thus excluded. In such case, this License |
|---|
| 447 | incorporates the limitation as if written in the body of this License. |
|---|
| 448 | |
|---|
| 449 | 9. The Free Software Foundation may publish revised and/or new versions of the |
|---|
| 450 | General Public License from time to time. Such new versions will be similar in |
|---|
| 451 | spirit to the present version, but may differ in detail to address new problems or |
|---|
| 452 | concerns. |
|---|
| 453 | |
|---|
| 454 | Each version is given a distinguishing version number. If the Program specifies a |
|---|
| 455 | version number of this License which applies to it and "any later version", you |
|---|
| 456 | have the option of following the terms and conditions either of that version or of |
|---|
| 457 | any later version published by the Free Software Foundation. If the Program does |
|---|
| 458 | not specify a version number of this License, you may choose any version ever |
|---|
| 459 | published by the Free Software Foundation. |
|---|
| 460 | |
|---|
| 461 | 10. If you wish to incorporate parts of the Program into other free programs |
|---|
| 462 | whose distribution conditions are different, write to the author to ask for |
|---|
| 463 | permission. For software which is copyrighted by the Free Software Foundation, |
|---|
| 464 | write to the Free Software Foundation; we sometimes make exceptions for this. |
|---|
| 465 | Our decision will be guided by the two goals of preserving the free status of all |
|---|
| 466 | derivatives of our free software and of promoting the sharing and reuse of |
|---|
| 467 | software generally. |
|---|
| 468 | |
|---|
| 469 | NO WARRANTY |
|---|
| 470 | |
|---|
| 471 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS |
|---|
| 472 | NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY |
|---|
| 473 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE |
|---|
| 474 | COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM |
|---|
| 475 | "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR |
|---|
| 476 | IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|---|
| 477 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE |
|---|
| 478 | ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE |
|---|
| 479 | PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, |
|---|
| 480 | YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR |
|---|
| 481 | CORRECTION. |
|---|
| 482 | |
|---|
| 483 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED |
|---|
| 484 | TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY |
|---|
| 485 | WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS |
|---|
| 486 | PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY |
|---|
| 487 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES |
|---|
| 488 | ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM |
|---|
| 489 | (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING |
|---|
| 490 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD |
|---|
| 491 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY |
|---|
| 492 | OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS |
|---|
| 493 | BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
|---|
| 494 | |
|---|
| 495 | END OF TERMS AND CONDITIONS |
|---|
| 496 | |
|---|
| 497 | |
|---|
| 498 | --------------------------------------------------------------------------- |
|---|
| 499 | |
|---|
| 500 | The Artistic License |
|---|
| 501 | |
|---|
| 502 | Preamble |
|---|
| 503 | |
|---|
| 504 | The intent of this document is to state the conditions under which a Package |
|---|
| 505 | may be copied, such that the Copyright Holder maintains some semblance of |
|---|
| 506 | artistic control over the development of the package, while giving the users of the |
|---|
| 507 | package the right to use and distribute the Package in a more-or-less customary |
|---|
| 508 | fashion, plus the right to make reasonable modifications. |
|---|
| 509 | |
|---|
| 510 | Definitions: |
|---|
| 511 | |
|---|
| 512 | - "Package" refers to the collection of files distributed by the Copyright |
|---|
| 513 | Holder, and derivatives of that collection of files created through textual |
|---|
| 514 | modification. |
|---|
| 515 | - "Standard Version" refers to such a Package if it has not been modified, |
|---|
| 516 | or has been modified in accordance with the wishes of the Copyright |
|---|
| 517 | Holder. |
|---|
| 518 | - "Copyright Holder" is whoever is named in the copyright or copyrights for |
|---|
| 519 | the package. |
|---|
| 520 | - "You" is you, if you're thinking about copying or distributing this Package. |
|---|
| 521 | - "Reasonable copying fee" is whatever you can justify on the basis of |
|---|
| 522 | media cost, duplication charges, time of people involved, and so on. (You |
|---|
| 523 | will not be required to justify it to the Copyright Holder, but only to the |
|---|
| 524 | computing community at large as a market that must bear the fee.) |
|---|
| 525 | - "Freely Available" means that no fee is charged for the item itself, though |
|---|
| 526 | there may be fees involved in handling the item. It also means that |
|---|
| 527 | recipients of the item may redistribute it under the same conditions they |
|---|
| 528 | received it. |
|---|
| 529 | |
|---|
| 530 | 1. You may make and give away verbatim copies of the source form of the |
|---|
| 531 | Standard Version of this Package without restriction, provided that you duplicate |
|---|
| 532 | all of the original copyright notices and associated disclaimers. |
|---|
| 533 | |
|---|
| 534 | 2. You may apply bug fixes, portability fixes and other modifications derived from |
|---|
| 535 | the Public Domain or from the Copyright Holder. A Package modified in such a |
|---|
| 536 | way shall still be considered the Standard Version. |
|---|
| 537 | |
|---|
| 538 | 3. You may otherwise modify your copy of this Package in any way, provided |
|---|
| 539 | that you insert a prominent notice in each changed file stating how and when |
|---|
| 540 | you changed that file, and provided that you do at least ONE of the following: |
|---|
| 541 | |
|---|
| 542 | a) place your modifications in the Public Domain or otherwise |
|---|
| 543 | make them Freely Available, such as by posting said modifications |
|---|
| 544 | to Usenet or an equivalent medium, or placing the modifications on |
|---|
| 545 | a major archive site such as ftp.uu.net, or by allowing the |
|---|
| 546 | Copyright Holder to include your modifications in the Standard |
|---|
| 547 | Version of the Package. |
|---|
| 548 | |
|---|
| 549 | b) use the modified Package only within your corporation or |
|---|
| 550 | organization. |
|---|
| 551 | |
|---|
| 552 | c) rename any non-standard executables so the names do not |
|---|
| 553 | conflict with standard executables, which must also be provided, |
|---|
| 554 | and provide a separate manual page for each non-standard |
|---|
| 555 | executable that clearly documents how it differs from the Standard |
|---|
| 556 | Version. |
|---|
| 557 | |
|---|
| 558 | d) make other distribution arrangements with the Copyright Holder. |
|---|
| 559 | |
|---|
| 560 | 4. You may distribute the programs of this Package in object code or executable |
|---|
| 561 | form, provided that you do at least ONE of the following: |
|---|
| 562 | |
|---|
| 563 | a) distribute a Standard Version of the executables and library |
|---|
| 564 | files, together with instructions (in the manual page or equivalent) |
|---|
| 565 | on where to get the Standard Version. |
|---|
| 566 | |
|---|
| 567 | b) accompany the distribution with the machine-readable source of |
|---|
| 568 | the Package with your modifications. |
|---|
| 569 | |
|---|
| 570 | c) accompany any non-standard executables with their |
|---|
| 571 | corresponding Standard Version executables, giving the |
|---|
| 572 | non-standard executables non-standard names, and clearly |
|---|
| 573 | documenting the differences in manual pages (or equivalent), |
|---|
| 574 | together with instructions on where to get the Standard Version. |
|---|
| 575 | |
|---|
| 576 | d) make other distribution arrangements with the Copyright Holder. |
|---|
| 577 | |
|---|
| 578 | 5. You may charge a reasonable copying fee for any distribution of this Package. |
|---|
| 579 | You may charge any fee you choose for support of this Package. You may not |
|---|
| 580 | charge a fee for this Package itself. However, you may distribute this Package in |
|---|
| 581 | aggregate with other (possibly commercial) programs as part of a larger |
|---|
| 582 | (possibly commercial) software distribution provided that you do not advertise |
|---|
| 583 | this Package as a product of your own. |
|---|
| 584 | |
|---|
| 585 | 6. The scripts and library files supplied as input to or produced as output from |
|---|
| 586 | the programs of this Package do not automatically fall under the copyright of this |
|---|
| 587 | Package, but belong to whomever generated them, and may be sold |
|---|
| 588 | commercially, and may be aggregated with this Package. |
|---|
| 589 | |
|---|
| 590 | 7. C or perl subroutines supplied by you and linked into this Package shall not |
|---|
| 591 | be considered part of this Package. |
|---|
| 592 | |
|---|
| 593 | 8. Aggregation of this Package with a commercial distribution is always permitted |
|---|
| 594 | provided that the use of this Package is embedded; that is, when no overt attempt |
|---|
| 595 | is made to make this Package's interfaces visible to the end user of the |
|---|
| 596 | commercial distribution. Such use shall not be construed as a distribution of |
|---|
| 597 | this Package. |
|---|
| 598 | |
|---|
| 599 | 9. The name of the Copyright Holder may not be used to endorse or promote |
|---|
| 600 | products derived from this software without specific prior written permission. |
|---|
| 601 | |
|---|
| 602 | 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR |
|---|
| 603 | IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
|---|
| 604 | WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR |
|---|
| 605 | PURPOSE. |
|---|
| 606 | |
|---|
| 607 | The End |
|---|