├── .drone.yml ├── .gitignore ├── Dockerfile ├── Makefile ├── README.md ├── bin ├── cpanorg_perl_releases ├── cpanorg_rss_fetch ├── update_data └── update_master ├── dependencies.rc ├── lib ├── style │ └── cpan.html └── tpl │ ├── data │ └── cpan-stats │ ├── defaults │ ├── straps.html │ └── wrapper ├── src ├── ENDINGS ├── SITES.html ├── _modules │ ├── EDITORS_README │ ├── INSTALL.html │ ├── by-authors │ │ └── id │ │ │ └── index.html │ └── index.html ├── disclaimer.html ├── doc │ └── index.html ├── index.html ├── indices │ └── README ├── misc │ ├── cpan-faq.html │ ├── css │ │ └── cpan.css │ ├── gif │ │ ├── funet.gif │ │ ├── valid-xhtml10.gif │ │ └── vcss.gif │ ├── how-to-mirror.html │ ├── images │ │ ├── bg_gradient.jpg │ │ ├── cpan.png │ │ ├── cpan.svg │ │ ├── fastly.png │ │ ├── menubar_highlight.png │ │ ├── netactuate.png │ │ └── phyber.png │ └── jpg │ │ └── cpan.jpg ├── ports │ ├── README │ ├── archive-2011-03-26.html │ ├── binaries.html │ ├── index.html │ └── oses │ │ ├── _template.tt_data │ │ ├── aix.tt_data │ │ ├── centos.tt_data │ │ ├── cygwin.tt_data │ │ ├── debian.tt_data │ │ ├── fedora.tt_data │ │ ├── guix.tt_data │ │ ├── hpux.tt_data │ │ ├── linux.tt_data │ │ ├── list.html │ │ ├── macos.tt_data │ │ ├── openbsd.tt_data │ │ ├── redhat.tt_data │ │ ├── slackware.tt_data │ │ ├── solaris.tt_data │ │ ├── suse.tt_data │ │ ├── ubuntu.tt_data │ │ └── win32.tt_data ├── robots.txt └── src │ ├── README.html │ └── misc │ └── README └── tt.rc /.drone.yml: -------------------------------------------------------------------------------- 1 | kind: pipeline 2 | type: kubernetes 3 | name: default 4 | 5 | steps: 6 | - name: docker 7 | image: harbor.ntppool.org/ntppool/drone-kaniko:latest 8 | pull: always 9 | settings: 10 | pull_image: true 11 | repo: perlorg/cpanorg 12 | registry: harbor.ntppool.org 13 | auto_tag: true 14 | tags: SHA7,${DRONE_SOURCE_BRANCH} 15 | cache: true 16 | username: 17 | from_secret: harbor_perlorg_username 18 | password: 19 | from_secret: harbor_perlorg_password 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | /html/ 3 | /data/ 4 | 5 | # for development with docker 6 | /root/ 7 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM harbor.ntppool.org/perlorg/base-os:3.21.3 2 | 3 | USER root 4 | RUN apk add rsync perl-xml-rss perl-xml-parser 5 | 6 | # for 'make install' 7 | ADD Makefile /tmp/ 8 | 9 | 10 | RUN cd /tmp && make install \ 11 | && cpanm File::Rsync File::Rsync::Mirror::Recent \ 12 | Linux::Inotify2 \ 13 | && rm -fr ~/.cpanm && rm /tmp/Makefile 14 | 15 | RUN addgroup cpan && adduser -u 1000 -D -G cpan cpan 16 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | EXT_BAT= 3 | EXT_EXE= 4 | CPANM=cpanm$(EXT_BAT) 5 | PERL=perl$(EXT_EXE) 6 | TTREE=ttree$(EXT_BAT) 7 | RSYNC=rsync$(EXT_EXE) 8 | 9 | SRC=src 10 | 11 | all: build 12 | 13 | clean: buildclean 14 | 15 | update: update-data build 16 | 17 | update-master: update 18 | @$(RSYNC) --temp-dir=/cpan/tmp -a html/ ../CPAN/ 19 | 20 | buildclean: rmclean build 21 | 22 | rmclean: 23 | $(PERL) -MExtUtils::Command -e "rm_rf" -- html 24 | 25 | build: data/cpan-stats.json 26 | @$(TTREE) "--src=$(SRC)" -f tt.rc 27 | 28 | data/cpan-stats.json: update-data 29 | 30 | update-data: 31 | @$(PERL) ./bin/cpanorg_rss_fetch 32 | @$(PERL) ./bin/update_data 33 | 34 | update-daily: 35 | @$(PERL) ./bin/cpanorg_perl_releases 36 | 37 | install: 38 | $(CPANM) Template JSON Template::Plugin::Comma Template::Plugin::JSON XML::RSS local::lib File::Slurp 39 | 40 | update-docker: 41 | docker run -w /cpan -v $(PWD):/cpan --rm -ti harbor.ntppool.org/perlorg/cpanorg:latest make update 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CPAN.org content repository 2 | 3 | This repository is for maintaining the non-source-code, non-archive content on 4 | [cpan.org](https://www.cpan.org). 5 | Discussion related to this should be on the 6 | [**cpan-workers** mailing list](https://lists.perl.org/list/cpan-workers.html). 7 | 8 | ## Rules for editing content 9 | 10 | * Don't add new output files. Only files already on cpan.org should be added 11 | (and then to their current location). Generally email 12 | [ask@perl.org](mailto:ask@perl.org) to get new files included here. 13 | Making new templates/scripts/etc to produce the output files is fine. 14 | 15 | * Be conservative in your edits. 16 | While lots of updates are needed, this has been around for 20 years and 17 | will be for many more. There's no rush. 18 | 19 | * No style edits for now. Cleanups yes; but a new design/layout will wait. 20 | 21 | ## How to submit changes 22 | 23 | A 'pull request' on GitHub is the best way. 24 | Sending a patch to the [cpan-workers](mailto:cpan-workers@perl.org) list 25 | at the same time will be a good way to get peer review. A change with a 26 | few "+1" votes from the list is more likely to be expediently pulled in. 27 | 28 | ## How it works 29 | 30 | Install [Template Toolkit](https://metacpan.org/dist/Template-Toolkit) 31 | and the other requirements with `cpanm` by running `make install`. 32 | 33 | To fetch the data needed for the site, run `make update-data update-daily`. 34 | 35 | Then run `make`. 36 | 37 | This will in turn run 38 | [`ttree`](https://metacpan.org/dist/Template-Toolkit/view/bin/ttree) 39 | and generate output files in the `html/` directory. 40 | 41 | Image files are copied plainly to the `html/` directory. 42 | 43 | Everything else is processed through 44 | [Template Toolkit](https://metacpan.org/dist/Template-Toolkit). 45 | 46 | Only `.html` files get the "master template" applied automatically. 47 | 48 | ## Run under Docker 49 | 50 | Experimental, you can build the content from those templates with: 51 | 52 | mkdir -p root/tmp root/CPAN 53 | docker run --rm -ti \ 54 | -v `pwd`:/cpan/content -v `pwd`/root:/cpan \ 55 | -w /cpan/content \ 56 | quay.io/perl/cpanorg:master \ 57 | make build update-data update-master 58 | -------------------------------------------------------------------------------- /bin/cpanorg_perl_releases: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | use strict; 3 | use warnings; 4 | 5 | # Work out the earliest and latest of each version of Perl 6 | # save as seperate json files 7 | 8 | use JSON (); 9 | use LWP::Simple qw(get); 10 | use File::Slurp qw(read_file); 11 | use version 0.77; 12 | 13 | my $json = JSON->new->pretty; 14 | 15 | # Fetch all perl versions on cpan, perl_testing seperated out 16 | # will exit if the data has not changed 17 | my ( $perl_versions, $perl_testing ) = fetch_perl_version_data(); 18 | 19 | $perl_versions = sort_versions($perl_versions); 20 | 21 | # Earliest 22 | { 23 | 24 | # Reverse to get earliest first 25 | my $earliest_per_version 26 | = extract_first_per_version_in_list( [ reverse @{$perl_versions} ] ); 27 | 28 | my $earliest = sort_versions( [ values %{$earliest_per_version} ] ); 29 | print_file( "perl_versions_earliest.json", $json->encode($earliest) ); 30 | } 31 | 32 | # Latest 33 | { 34 | 35 | # List ordered with latest first 36 | my $latest_per_version 37 | = extract_first_per_version_in_list($perl_versions); 38 | 39 | my $latest = sort_versions( [ values %{$latest_per_version} ] ); 40 | $latest->[0]->{latest} = 'true'; 41 | 42 | print_file( "perl_version_latest_stable.json", 43 | $json->encode( $latest->[0] ) ); 44 | 45 | # Add the latest test so people know what's coming 46 | # only if: 47 | # - not of the same version as the latest release 48 | # - larger number than the previous release (fix for security releases) 49 | unshift @$latest, $perl_testing->[0] 50 | if ( $perl_testing->[0]->{version_number} ne 51 | $latest->[0]->{version_number} ) 52 | && ( 53 | $perl_testing->[0]->{version_minor} > $latest->[0]->{version_minor} ); 54 | 55 | print_file( "perl_versions_latest.json", $json->encode($latest) ); 56 | } 57 | 58 | sub print_file { 59 | my ( $file, $data ) = @_; 60 | 61 | open my $fh, ">:utf8", "data/$file" 62 | or die "Could not open data/$file: $!"; 63 | print $fh $data; 64 | close $fh; 65 | 66 | } 67 | 68 | sub sort_versions { 69 | my $list = shift; 70 | 71 | my @sorted = sort { 72 | $b->{version_major} <=> $a->{version_major} 73 | || int( $b->{version_minor} ) <=> int( $a->{version_minor} ) 74 | || $b->{version_iota} <=> $a->{version_iota} 75 | } @{$list}; 76 | 77 | return \@sorted; 78 | 79 | } 80 | 81 | sub extract_first_per_version_in_list { 82 | my $versions = shift; 83 | 84 | my $lookup = {}; 85 | foreach my $version ( @{$versions} ) { 86 | my $minor_version = $version->{version_major} . '.' 87 | . int( $version->{version_minor} ); 88 | 89 | $lookup->{$minor_version} = $version 90 | unless $lookup->{$minor_version}; 91 | } 92 | return $lookup; 93 | } 94 | 95 | sub fetch_perl_version_data { 96 | my $perl_dist_url = "http://search.cpan.org/api/dist/perl"; 97 | 98 | my $filename = 'perl_version_all.json'; 99 | 100 | # See what we have on disk 101 | my $disk_json = ''; 102 | $disk_json = read_file("data/$filename") 103 | if -r "data/$filename"; 104 | 105 | my $cpan_json = get($perl_dist_url); 106 | die "Unable to fetch $perl_dist_url" unless $cpan_json; 107 | 108 | if ( $cpan_json eq $disk_json ) { 109 | 110 | # Data has not changed so don't need to do anything 111 | exit; 112 | } else { 113 | 114 | # Save for next fetch 115 | print_file( $filename, $cpan_json ); 116 | } 117 | 118 | my $data = eval { $json->decode($cpan_json) }; 119 | if ( my $err = $@ ) { 120 | die "$err: [$cpan_json]"; 121 | } 122 | 123 | my @perls; 124 | my @testing; 125 | foreach my $module ( @{ $data->{releases} } ) { 126 | next unless $module->{distvname} =~ m/^perl-?v?[\d._]+(-(RC|TRIAL)\d*)?$/; 127 | next unless $module->{authorized}; 128 | 129 | my $version = $module->{version}; 130 | $module->{version_number} = $version; 131 | my $version_obj = version->parse($version); 132 | 133 | my ( $major, $minor, $iota ) = @{ $version_obj->{version} }; 134 | next if $major < 5; 135 | $module->{version_major} = $major; 136 | $module->{version_minor} = int($minor); 137 | $module->{version_iota} = int( $iota || '0' ); 138 | $module->{version_normal} = $version_obj->normal; 139 | 140 | $module->{type} 141 | = $module->{status} eq 'testing' 142 | ? 'Devel' 143 | : 'Maint'; 144 | 145 | # TODO: Ask - please add some validation logic here 146 | # so that on live it checks this exists 147 | my $zip_file = $module->{archive}; 148 | 149 | $module->{zip_file} = $zip_file; 150 | $module->{url} = "https://www.cpan.org/src/5.0/" . $module->{zip_file}; 151 | 152 | ( $module->{released_date}, $module->{released_time} ) 153 | = split( 'T', $module->{released} ); 154 | 155 | if ( $module->{status} eq 'stable' ) { 156 | push @perls, $module; 157 | } else { 158 | push @testing, $module; 159 | } 160 | } 161 | return \@perls, \@testing; 162 | } 163 | -------------------------------------------------------------------------------- /bin/cpanorg_rss_fetch: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | 3 | # Fetch the most recent module releases and save out as JSON 4 | 5 | use strict; 6 | use warnings; 7 | use local::lib; 8 | use File::Temp; 9 | use XML::RSS; 10 | use JSON; 11 | use LWP::Simple qw(mirror RC_OK); 12 | use File::Path qw(mkpath); 13 | 14 | mkpath 'data', 0755 unless -e 'data'; 15 | 16 | process_rss( 17 | { out => 'data/recent.json', 18 | url => "https://metacpan.org/recent.rss", 19 | } 20 | ); 21 | 22 | sub process_rss { 23 | my $conf = shift; 24 | 25 | my $local = $conf->{out} . ".rss"; 26 | 27 | return unless mirror($conf->{url}, $local) == RC_OK; 28 | 29 | my $rss = XML::RSS->new; 30 | $rss->parsefile( $local ); 31 | my $items = $rss->{'items'}; 32 | 33 | my $j = JSON->new(); 34 | 35 | my $json_file = $conf->{out}; 36 | 37 | open my $fh, ">:utf8", $json_file 38 | or die "Could not open $json_file: $!"; 39 | print $fh $j->encode($items); 40 | close $fh; 41 | } 42 | -------------------------------------------------------------------------------- /bin/update_data: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | use strict; 3 | use warnings; 4 | use LWP::Simple qw(mirror); 5 | 6 | mirror("http://www.cpan.org/indices/cpan-stats.json", "data/cpan-stats.json"); 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /bin/update_master: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #cd ~/cpan/content 4 | 5 | current=`git rev-list -n 1 HEAD` 6 | git pull --rebase 7 | new=`git rev-list -n 1 HEAD` 8 | 9 | if [ "$current" != "$new" ]; then 10 | echo "Tagging" 11 | now=`TZ=UTC date +'%Y%m%d-%H%M'` 12 | git tag -s $now -m "Release to master mirror" 13 | git push origin tag $now 14 | fi 15 | 16 | make update-master 17 | 18 | -------------------------------------------------------------------------------- /dependencies.rc: -------------------------------------------------------------------------------- 1 | 2 | *: tpl/wrapper tpl/defaults style/cpan.html tpl/straps.html 3 | SITES.html : SITES-list.html 4 | index.html : recent.json cpan-stats.json 5 | misc/cpan-faq.html : cpan-stats.json 6 | src/README.html : perl_version_latest_stable.json perl_versions_latest.json perl_versions_earliest.json 7 | 8 | misc/how-to-mirror.html : cpan-stats.json 9 | 10 | # the dependency stuff doesn't know about wildcards in the values 11 | ports/binaries.html : ports/oses/_template.tt_data \ 12 | ports/oses/aix.tt_data ports/oses/centos.tt_data \ 13 | ports/oses/cygwin.tt_data ports/oses/debian.tt_data \ 14 | ports/oses/fedora.tt_data ports/oses/hpux.tt_data \ 15 | ports/oses/linux.tt_data ports/oses/mac_osx.tt_data \ 16 | ports/oses/openbsd.tt_data \ 17 | ports/oses/redhat.tt_data ports/oses/slackware.tt_data \ 18 | ports/oses/solaris.tt_data ports/oses/suse.tt_data \ 19 | ports/oses/ubuntu.tt_data ports/oses/win32.tt_data 20 | -------------------------------------------------------------------------------- /lib/style/cpan.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | [% page.title %] - [% site.name %] 5 | 6 | [%- IF page.description %][% END -%] 7 | [%- IF page.keywords %][% END -%] 8 | 9 | 10 | 11 | 12 | [% page.head %] 13 | 14 | 15 | 16 | 17 | 18 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 42 | 43 | 44 | 63 | 64 | 65 | 71 | 72 | 73 | 96 | 97 |
66 |
67 | 68 | [% content %] 69 |
70 |
98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /lib/tpl/data/cpan-stats: -------------------------------------------------------------------------------- 1 | [%- json_data = INSERT "cpan-stats.json" %] 2 | [% 3 | data = JSON.json_decode(json_data); 4 | cpan_stats.import(data); 5 | # USE Dumper; 6 | # Dumper.dump_html(cpan_stats, data); 7 | %] 8 | -------------------------------------------------------------------------------- /lib/tpl/defaults: -------------------------------------------------------------------------------- 1 | [%- 2 | USE Comma; 3 | USE JSON; 4 | 5 | page = { 6 | title = template.title, 7 | style = template.style or 'cpan.html' 8 | stub = '', 9 | }; 10 | 11 | # Configuration for this site 12 | SET site = { 13 | name => 'www.cpan.org', 14 | crum => 'Home', 15 | }; 16 | 17 | # Defaults ( should be overwritten through tpl/data/cpan-stats ) 18 | SET cpan_stats = {}; 19 | 20 | PROCESS "tpl/data/cpan-stats"; 21 | 22 | -%] 23 | [%- BLOCK rss_feed %] 24 | [% TRY %] 25 | [% json_data = INSERT $conf.json_file %] 26 | [% items = JSON.json_decode(json_data) %] 27 | 34 | [% CATCH %] 35 | [% END %] 36 | [% END -%] 37 | -------------------------------------------------------------------------------- /lib/tpl/straps.html: -------------------------------------------------------------------------------- 1 | [%- 2 | USE Math; 3 | 4 | module_count = cpan_stats.modules.count | comma; 5 | 6 | SET straps = [ 7 | "${module_count} open source Perl modules ready to download and use", 8 | "Stop reinventing wheels, start building space rockets", 9 | "Over 20 years of Perl libraries at your fingertips", 10 | "You can never have too many Perl modules", 11 | "LWPs, POEs, and DBIs -- oh my!", 12 | ]; 13 | SET strapid = Math.int(Math.rand(straps.size())); 14 | straps.${strapid}; 15 | -%] 16 | -------------------------------------------------------------------------------- /lib/tpl/wrapper: -------------------------------------------------------------------------------- 1 | [%- content = PROCESS $template; 2 | 3 | #USE Dumper; Dumper.dump_html(page template); 4 | 5 | IF !template.name.search('.html') OR page.style == 'none'; 6 | content; 7 | ELSE; 8 | default_style_template = "style/" _ page.style; 9 | PROCESS $default_style_template; 10 | END; 11 | %] 12 | -------------------------------------------------------------------------------- /src/ENDINGS: -------------------------------------------------------------------------------- 1 | CPAN/ENDINGS 2 | 3 | --- 4 | 5 | FUNNY FILE ENDINGS AND WHAT TO DO ABOUT THEM 6 | 7 | The files in the CPAN have all kinds of curious endings (the parts 8 | after dots) and one must know what to do about them. The tools you 9 | need to run are marked like "this", inside double quotes, in the 10 | below list. Because CPAN is not just one place we cannot point 11 | you explicitly to the tools for your particular system, you have to 12 | locate them for your system, sorry. Try out whether your system 13 | already has them installed. If not, ask your local user support 14 | and/or search for them via the WWW search engines or the archie. 15 | 16 | In Win32 (95/98/NT/W2K) "WinZip" should be able to unpack the most 17 | usual archival and compression formats. 18 | 19 | In MacIntosh StuffIt should work. 20 | 21 | Archives and/or Compressed/Packed 22 | 23 | .tar Tape ARchive (never mind the 'tape' part, historical reasons, 24 | disk will do just fine). Program called "tar" will help, 25 | "tar tvf foo.tar" will list the contents, "tar xvf foo.tar" 26 | will extract the contents. 27 | .gz compressed with "gzip", "gunzip" (or "gzip -d") to uncompress 28 | .bz2 compressed with "bzip2", "bunzip2" (or "bzip2 -d") to uncompress 29 | .tgz .tar.gz in disguise for DOS, see below for "MULTIPLE ENDINGS" 30 | .tbz .tar.bz2 ditto, ditto 31 | .tbz2 .tar.bz2 ditto, ditto 32 | .taz .tar.gz ditto, ditto 33 | .tgZ .tar.Z ditto, ditto 34 | .Z compressed with "compress", "uncompress" to uncompress 35 | .uu UUencoded with "uuencode", "uudecode" to decode 36 | (note: the first line of the .uu file tells the name 37 | of the un-uuencoded file that will appear when you uudecode) 38 | .shar SHell ARchive: can be extracted in UNIX either with "unshar -c" 39 | or "unshar" or "sh". 40 | .zip PCish archive, "unzip -l foo.zip" to list the contents, 41 | "unzip -x foo.zip" to extract, "unzip -h" for help. 42 | .bin MacIntoshish archive, StuffIt should work. In UNIX 43 | a program called "mcvert" should work. 44 | .sit MacIntoshish archive, StuffIt should work. In UNIX 45 | a program called "unsit" should work. 46 | .hqx MacIntoshish archive, StuffIt should work. 47 | .zoo Amigaish/Atarish archive, zoo should work. 48 | 49 | Code and/or Documentation 50 | 51 | .pl PerL: perl script, any Perl version 52 | .pm Perl Module: Perl 5 onwards code 53 | .pod Plain Old Documentation: perl documentation, 54 | quite readable as-is but if needed converters like pod2man, 55 | pod2html, exist in the Perl 5 distribution (CPAN/src/5.0/) 56 | .xs Perl eXtenSion code, please see the perlxs documentation 57 | coming with the Perl 5 distribution 58 | .man UNIX man(1) manual page format (nroff) 59 | .1 ditto 60 | .html HyperText Markup Language: the Web-speak 61 | .tex TeX or LaTeX formatted text 62 | .txt Text 63 | 64 | Graphics 65 | 66 | .xbm X11 BitMap, view with e.g. "xv" 67 | .gif Graphics Interchange Format, view with e.g. "xv" 68 | .ps PostScript: you probably have a laser printer that groks this 69 | and possibly have a previewer like ghostscript ("gs", "gv") that will 70 | display this on screen 71 | .dvi DeVice Independent: TeX portable graphics display format: 72 | converters like "dvips" (DVI -> PostScript) and previewers 73 | like "xdvi" (X Window DVI) exist. 74 | 75 | "BUT I HAVE MULTIPLE ENDINGS..." 76 | 77 | The endings are recursive, work your way down from the right. 78 | 79 | .tar.gz First "gunzip", then "tar". 80 | .tar.bz2 First "bunzip2", then "tar". 81 | .tar.Z First "uncompress", then "tar". Often mangled for 82 | DOSish systems as .tgZ, .tgz, or .taz. 83 | .uu.gz First "gunzip", then "uudecode". 84 | .shar.gz First "gunzip", then "unshar". 85 | 86 | Note 1: 87 | 88 | The GNU zip, "gunzip", "gzip -d", can uncompress both .gz and .Z 89 | 90 | gunzip bar.gz 91 | gunzip foo.Z 92 | 93 | It cannot uncompress .bz2, though. 94 | 95 | Note 2: 96 | 97 | The GNU tar, often installed as "gnutar" or "gtar", can use "gunzip" if 98 | it can find it, one does not need to first uncompress and then "tar" but 99 | can instead do both in one sweep: 100 | 101 | gtar ztvf foo.tar.gz 102 | 103 | will list the contents of the gzipped foo.tar without having foo.tar 104 | in the disk. 105 | 106 | -- 107 | cpan@perl.org 108 | 109 | -------------------------------------------------------------------------------- /src/SITES.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "CPAN Sites", 4 | section => 'home', 5 | }); 6 | %] 7 | [% page.head = BLOCK %] 8 | 10 | 12 | [% END %] 13 | 14 |

15 | CPAN Mirror Network 16 |

17 |

18 | For many years, CPAN benefitted from the mirroring of the central 19 | repository to many sites around the world. In the time of a slower 20 | global Internet, these mirrors provided most Perl users with fast access to 21 | thousands of software distributions. These days, the CPAN is backed by a 22 | CDN that performs the same job, but transparently. There is no longer a 23 | list of registered mirrors, you can just point at www.cpan.org and go. 24 |

25 | 26 |

27 | Thank You 28 |

29 |

30 | We would like to thank all of the mirrors who, throughout the years, made 31 | the CPAN possible, and who helped provide this invaluable resource to the 32 | Perl community. 33 |

34 |

35 | The master CPAN site is hosted by NetActuate in Los Angeles, California. 37 |

38 | 39 |

Feedback

40 |

41 | You can send email to the CPAN 42 | administrators, cpan@perl.org. 43 |

44 | -------------------------------------------------------------------------------- /src/_modules/EDITORS_README: -------------------------------------------------------------------------------- 1 | NOTE: 2 | 3 | Files in here need be symlinked into PAUSE, they 4 | will served from /modules/... NOT /_modules/... 5 | -------------------------------------------------------------------------------- /src/_modules/INSTALL.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "Installing Perl Modules", 4 | section => 'modules', 5 | stub => '../', 6 | canonical => 'modules/INSTALL.html', 7 | }); 8 | %] 9 | 10 |

How to install CPAN modules

11 | 12 |

13 | Here are some recommended approaches to installing modules from CPAN, as 14 | with much of Perl there are several alternatives. 15 |

16 | 17 |

18 | Some basics 19 |

20 |

21 | Most Perl modules are written in Perl, some use XS (they are written in C) so require a 24 | C compiler (it's easy 25 | to get this setup - don't panic), see your OS of choice below to find out how 26 | to get the right compiler. Modules may have dependencies on other modules 27 | (almost always on CPAN) and cannot be 28 | installed without them (or without a specific version of them). It is worth 29 | throughly reading the documentation for the options below. Many modules on 30 | CPAN require a somewhat recent version of Perl (version 5.8 or above). 31 |

32 | 33 |

34 | Quick start 35 |

36 |

37 | Install cpanm to make installing other modules easier (you'll 38 | thank us later). You need to type these commands into a Terminal emulator 40 | (macOS, 41 | Win32, Linux) 43 |

44 |
 45 | cpan App::cpanminus
 46 | 
47 |

48 | Now install any module you can find. 49 |

50 |
 51 | cpanm Module::Name
 52 | 
53 | 54 |

55 | Tools 56 |

57 |

58 | To help you install and manage your modules: 59 |

60 |

61 | local::lib enables 63 | you to install modules into a specified directory, without requiring root 64 | or administrator access. See the 66 | bootstrapping technique for how to get started. You can create a 67 | directory per user/project/company and deploy to other servers, by copying the directory 68 | (as long as you are on the same operating system and perl version). 69 |

70 |

71 | cpanm from 73 | App::cpanminus is 74 | a script to get, unpack, build and install modules from CPAN. It's 75 | dependency free (can bootstrap itself) and requires zero configuration 76 | (install 78 | instructions). It automates the entire build process for the majority 79 | of modules on CPAN and works well with local::lib and 80 | perlbrew. Many experienced Perl developers use this as their tool 81 | of choice. Related tools: cpan-outdated, 83 | pm-uninstall, 85 | cpan-listchanges. 87 |

88 |

89 | perlbrew 91 | from App::perlbrew 92 | is useful if your system perl is too old to support modern CPAN modules, or 93 | if it's troublesome in other capacities (RedHat/CentOS are included in this 94 | list). perlbrew makes the process of installing a Perl in any directory 95 | much easier, so that you can work completely independently of any system 96 | Perl without needing root or administrator privileges. You can use multiple 97 | versions of Perl (maybe as you upgrade) across different projects. The 98 | separation from your system Perl makes server maintenance much easier and 99 | you more confident about how your project is setup. Currently 100 | Windows is not supported. 101 |

102 |

103 | cpan 104 | from CPAN has been 105 | distributed with Perl since 1997 (5.004). It has many more options than 106 | cpanm, it is also much more verbose. 107 |

108 |

109 | cpanp 110 | from CPANPLUS had been 111 | distributed with Perl since 5.10 (2007) until 5.20 (2014). This offers even more options 112 | than cpanm or cpan and can be installed just like cpanminus. 113 |

114 | 115 | 116 | 117 |

118 | Perl on Windows (Win32 and Win64) 119 |

120 |

121 | Strawberry Perl is an open source 122 | binary distribution of Perl for the Windows operating system. It includes a 123 | compiler and pre-installed modules that offer the ability to install XS 124 | CPAN modules directly from CPAN. It also comes with lots of modules 125 | pre-installed, including cpanm. 126 |

127 |

128 | ActiveState 129 | provide a binary distribution of Perl (for many platforms), as well as their 130 | own perl 131 | package manager (ppm). Some modules are not available as ppm's 132 | or have reported errors on the ppm build system, this does not mean 133 | they do not work. You can use the cpan script to build modules 134 | from CPAN against ActiveState Perl. 135 |

136 | 137 |

Perl on macOS

138 | 139 |

140 | macOS comes with Perl pre-installed. in order to build and install your 141 | own modules you will need to install the "Command Line Tools for XCode" 142 | or Xcode package - 143 | details on our 144 | ports page. 145 | Once you have done this you can use all of the tools mentioned above. 146 |

147 | 148 |

Perl on other Unix like OSs

149 |

150 | Install 'make' through your package manager. You can then 151 | use all of the tools mentioned above. 152 |

153 | 154 |

155 | Other tools 156 |

157 |

158 | CPAN::Mini can provide 159 | you with a minimal mirror of CPAN (just 160 | the latest version of all modules). This makes working offline easy. 161 |

162 |

163 | CPAN::Mini::Inject 165 | allows you to add your own modules to your local CPAN::Mini mirror of CPAN. 166 | So you can install and deploy your own modules through the same tools you 167 | use for CPAN modules. 168 |

169 | 170 |

171 | Which modules should I use? 172 |

173 |

174 | Task::Kensho lists 175 | suggested best practice modules for a wide range of tasks. https://metacpan.org/ will let you search 177 | CPAN. You could also get involved with the community, ask on a mailing list or find your nearest Perl Mongers group. 181 |

182 | -------------------------------------------------------------------------------- /src/_modules/by-authors/id/index.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "Perl Modules by author ID", 4 | section => 'modules', 5 | stub => '../../../', 6 | canonical => 'authors/id/', 7 | }); 8 | %] 9 | 10 |

Perl Modules by author ID

11 | 12 |

13 | Author ID (the ID is chosen by module authors) breaks down as follows. 14 | Given an author ID, such as LLAP, the directory will be 15 | L/LL/LLAP. 16 |

17 | 18 | 19 | 20 | [% USE table(['A'..'Z'], cols=3, pad=0); 21 | FOREACH group = table.cols %] 22 | 29 | [% END %] 30 | 31 |
23 |
    24 | [% FOREACH letter = group %] 25 |
  • [% letter %]
  • 26 | [% END %] 27 |
28 |
32 | -------------------------------------------------------------------------------- /src/_modules/index.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "Perl Modules", 4 | section => 'modules', 5 | stub => '../', 6 | canonical => 'modules/index.html', 7 | }); 8 | %] 9 | 10 |

Perl Modules

11 | 12 |

13 | Most Perl modules are written in Perl, some use XS (they are written in C) so require a 16 | C compiler. Modules may have 17 | dependencies on other modules (almost always on CPAN) and cannot be installed without them (or 19 | without a specific version of them). Many modules on CPAN now require a 20 | recent version of Perl (version 5.8 or above). 21 |

22 | 23 |

24 | How to install modules 25 |

26 |

27 | There are several methods you can use, see the Installing Perl Modules page. 29 |

30 | 31 | 32 | 62 | 88 | 89 |
33 |

34 | How to find modules 35 |

36 | 61 |
63 |

64 | How to contribute 65 |

66 | 73 |

74 | Other useful sites 75 |

76 | 87 |
90 | 91 | 92 |

93 | Questions about the modules? Please contact the module author 94 | directly. Corrections? Additions? Suggestions? Please contact cpan@perl.org. Other questions? See the CPAN FAQ. 97 |

98 | -------------------------------------------------------------------------------- /src/disclaimer.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "Disclaimer", 4 | section => 'home', 5 | }); 6 | %] 7 | [% page.head = BLOCK %] 8 | 9 | 11 | [% END %] 12 |

13 | CPAN: Disclaimer 14 |

15 |

16 | CPAN makes no warranties, implied or otherwise, about the suitability of 17 | the software contained within CPAN. CPAN shall not in any case be liable 18 | for special, incidental, consequential, indirect or other similar damages 19 | arising from the transfer, storage, or use of the material stored herein. 20 |

21 |

22 | CPAN is maintained CPAN completely for free as a service to the Perl 23 | community. Files uploaded to CPAN are NOT manually inspected. Of course we 24 | will be very interested to hear if some file contains nasties like Trojan 25 | horses and/or virii, but CPAN takes no responsibility for the contents of 26 | CPAN or what they might do. 27 |

28 |

29 | If you plan to do something commercial out of CPAN such as put it on a 30 | CD-ROM disk, stop right there and think for a moment. We cannot give you 31 | the permission. Larry Wall cannot give you the permission. There is no 32 | single entity on this planet that can give you the permission. Legally 33 | there is no other way than to ask separately from each and every author of 34 | all the separate pieces of software and documentation in CPAN. No, we do 35 | not maintain a list of these authors nor do we intend to. Nobody does and 36 | nobody can. We are not stopping you from making a CD-ROM, just reminding 37 | you. 38 |

39 |

40 | No doubt these short documents raise more questions than they answer. 41 | Please do not hesitate to contact us and point out where we could do 42 | better. 43 |

44 |

45 | cpan@perl.org
46 |

47 | 48 | -------------------------------------------------------------------------------- /src/doc/index.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "Perl Documentation", 4 | section => 'docs', 5 | stub => '../', 6 | }); 7 | %] 8 | 9 |

Perl Documentation

10 | 11 | 12 | 13 | 46 | 74 | 75 |
14 |

15 | Perl Core and Module Documentation 16 |

17 | 29 |

30 | Command line 31 |

32 |
    33 |
  • 34 | perldoc perldoc - find out more about 35 | perldoc 36 |
  • 37 |
  • 38 | perldoc perlintro - introduction to Perl 39 |
  • 40 |
  • 41 | perldoc Module::Name - documentation for an 42 | installed module 43 |
  • 44 |
45 |
47 |

48 | FAQs 49 |

50 | 58 |

59 | Other useful sites 60 |

61 | 73 |
76 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "The Comprehensive Perl Archive Network", 4 | section => 'home', 5 | skip_master_mirror => 0, 6 | }); 7 | 8 | %][% page.head = BLOCK %] 9 | 60 | 66 | 67 | [% END %] 68 | 69 | 70 | 71 | 89 | 90 | 100 | 101 | 127 | 128 |
72 |

Welcome to CPAN

73 |

74 | The Comprehensive Perl Archive Network (CPAN) currently 75 | has [% cpan_stats.modules.count | comma %] 76 | Perl modules in [% cpan_stats.distributions.count | comma %] distributions, 77 | written by [% cpan_stats.authors.count | comma %] authors, 78 | mirrored on [% cpan_stats.mirrors.count | comma %] servers. 79 |

80 |

The archive has been online since October 1995 and is constantly growing.

81 | 82 |

Search CPAN via

83 | 84 | 87 | 88 |
91 |
92 |

Recent Uploads

93 | [% PROCESS rss_feed, conf => { 94 | json_file => "recent.json", 95 | max => 10, 96 | }, rss_footer = '
  • more...
  • ' 97 | %] 98 |
    99 |
    102 |

    Getting Started

    103 | 107 | 108 |

    109 | How to contribute 110 |

    111 | 118 | 119 |

    Perl Resources

    120 | 126 |
    129 | -------------------------------------------------------------------------------- /src/indices/README: -------------------------------------------------------------------------------- 1 | CPAN/indices/README 2 | 3 | This document describes the indices subdirectories of the CPAN. 4 | 5 | The directories contains various index views of CPAN. 6 | --- 7 | 8 | mirrors.json CPAN mirrors list in JSON format 9 | RECENT-ls the recent (7 days) arrivals to CPAN as seen by find -ls 10 | RECENT-print ditto with find -print (the same file as CPAN/RECENT) 11 | du-k.gz disk usage by directory (du -k) 12 | find-ls.gz find -ls output (*) 13 | ls-R.gz ls -R output 14 | ls-ltR ls -ltR output 15 | 16 | --- 17 | 18 | (*) find-ls format: 19 | 20 | inode kB mode nlinks user group bytes mtime:ctime filename 21 | 22 | for files and directories, and 23 | 24 | inode 0 "l" 1 user group bytes mtime:ctime slinkname targetname 25 | 26 | for symbolic links. 27 | 28 | # eof 29 | -------------------------------------------------------------------------------- /src/misc/cpan-faq.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "The CPAN Frequently Asked Questions", 4 | section => 'home', 5 | stub => '../', 6 | }); 7 | 8 | PROCESS "tpl/data/cpan-stats"; 9 | 10 | %] 11 | 12 | [% page.head = BLOCK %] 13 | 20 | [% END %] 21 | 22 |

    23 | CPAN Frequently Asked Questions 24 |

    25 |

    26 | Here are some answers to the most common questions received by 27 | cpan@perl.org. 28 |

    29 |

    30 | For general information about Perl you should see the Perl Home Page (www.perl.org). 32 |

    33 |

    34 | See the Perl FAQ (especially for any Perl programming questions, but also 35 | for other resources), available at http://perldoc.perl.org/index-faq.html. 37 |

    38 |
    39 |

    40 | I. - General Questions. 41 |

    42 | 59 |
    60 |

    61 | II. - The Quest for Perl source, modules and scripts. 62 |

    63 | 114 |
    115 |

    116 | III. - RIF [ Reading is Fun-duh-mental ] 117 |

    118 | 151 |
    152 |

    153 | IV. - Danger Will Robinson! Danger! Danger! 154 |

    155 | 165 |
    166 |

    167 | V. - Searching CPAN. 168 |

    169 | 178 |
    179 |

    180 | VI. - Contributing modules, patches, and bug reports. 181 |

    182 | 224 |
    225 |

    226 | VII. - How to mirror CPAN. 227 |

    228 | 233 |
    234 |

    235 | What is Perl? 236 |

    237 |

    238 | From the Perl documentation: 239 |

    240 |

    241 | Perl is a high-level programming language with an eclectic heritage 242 | written by Larry Wall and a cast of thousands. It derives from the 243 | ubiquitous C programming language and to a lesser extent from sed, awk, the 244 | Unix shell, and at least a dozen other tools and languages. Perl's process, 245 | file, and text manipulation facilities make it particularly well-suited for 246 | tasks involving quick prototyping, system utilities, software tools, system 247 | management tasks, database access, graphical programming, networking, and 248 | web programming. These strengths make it especially popular with 249 | system administrators and web developers, but mathematicians, 250 | geneticists, journalists, and even managers also use Perl. Maybe you 251 | should, too. 252 |

    253 | 254 |

    255 | A good starting point for Perl information is http://www.perl.org/ 257 |

    258 |
    259 |

    260 | What is Perl6? 261 |

    262 |

    263 | Perl and Raku (formerly known as Perl 6) are two languages in the Perl family, but of different 264 | lineages. Raku is not intended primarily as a replacement for Perl, 265 | but as its own thing - and libraries exist to allow you to call Perl code 266 | from Raku programs and vice versa. 267 |

    268 |

    269 | For more about Raku see http://www.raku.org/. 271 |

    272 |

    273 | "We're really serious about reinventing everything that needs reinventing." 274 | --Larry Wall 275 |

    276 |
    277 |

    278 | What is CPAN? 279 |

    280 |

    281 | CPAN is the Comprehensive Perl Archive Network, 282 | a large collection of Perl software and documentation. You can begin 283 | exploring from either http://www.cpan.org/ or any of the mirrors 285 | listed at http://www.cpan.org/SITES.html. 287 |

    288 |

    289 | CPAN is also the name of a Perl module, CPAN.pm, which is used to 290 | download and install Perl software from the CPAN archive. This FAQ covers 291 | only a little about the CPAN module and you may find the documentation for 292 | it by using perldoc CPAN via the command line or on the web at 293 | https://metacpan.org/pod/CPAN. 295 |

    296 |
    297 |

    298 | What is PAUSE? 299 |

    300 |

    301 | PAUSE is the Perl 302 | Authors Upload SErver, a registry for Perl module, 303 | script and documentation authors to upload their work to the CPAN. CPAN and 304 | PAUSE are often used interchangeably but they are distinct from each other. 305 | The CPAN.pm documentation explains it rather simply; 306 |

    307 |

    308 | In this discussion CPAN and PAUSE have become equal -- but they are 309 | not. PAUSE is authors/ and modules/. CPAN is PAUSE plus the 310 | clpa/, doc/, misc/, ports/ and src/. 311 |

    312 |

    313 | See the question 'How do I contribute 314 | modules?' below if you want to become a registered PAUSE user. 315 |

    316 |
    317 | 318 |

    319 | How does the 320 | CPAN work? 321 |

    322 |

    323 | CPAN works with the generosity and cooperation of thousands of developers, 324 | over [% cpan_stats.mirrors.count %] participating mirrors, many companies, 325 | institutions and individuals donating the network bandwidth, storage space 326 | and computing power, volunteers who help keep everything together and users 327 | whose interest in Perl keep the archive alive and growing. 328 |

    329 |

    330 | After an author uploads their module to PAUSE, it will be mirrored to CPAN once an 332 | hour and from there, to the rest of the mirrors around the world. There are 333 | people who advise authors on their choice of name and namespace for their 334 | modules and a few others who answer questions and investigate issues sent 335 | to cpan@perl.org. 336 |

    337 | 338 |
    339 |

    340 | Where can I 341 | find the current release of the Perl source code? 342 |

    343 | 349 |
    350 |

    351 | Where can I find 352 | older/obsolete versions of Perl or Perl Modules? 353 |

    354 |

    355 | Unless you have A Very Good Reason you shouldn't be installing obsolete 356 | versions because they might contain bugs, possibly even security bugs. 357 |

    358 |

    359 | Good Reasons may include having to support Perl 4 programs, trying to 360 | replicate a bug that requires an old Perl release, or pure joy of software 361 | archaeology. (Are you Perl 1 compliant?) 362 |

    363 |

    364 | CPAN does not carry all ancient releases and patchlevels of Perl (because 365 | of the bugs we mentioned above and because they would take quite a lot of 366 | storage space). 367 |

    368 | 377 |
    378 |

    379 | How do I interpret the 380 | Perl version numbers? 381 |

    382 |

    383 | Perl changed the version numbering system with v5.6.0 as was indicated in 384 | the release announcement: 385 |

    386 |

    387 | Perl v5.6.0 is a major release that incorporates all maintenance and 388 | development changes since the last major release, 5.005. As you may have 389 | noticed, the version numbering has changed. Releases will henceforth be 390 | numbered as revision.version.subversion triples. Maintenance releases will 391 | have an even version component, while the version component for development 392 | releases will be odd. For example, the next maintenance update of Perl 393 | 5.6.0 will be v5.6.1, and the development series will begin life at 394 | v5.7.0. 395 |

    396 |

    397 | You may also peruse the perlhist manpage for a complete list of 398 | versions and their release dates. 399 |

    400 |
    401 |

    402 | How do I 403 | install Perl using the source code? 404 |

    405 |

    406 | To build Perl you need a C compilation environment. After downloading the 407 | source code and opening it up, you should first read the INSTALL document 408 | which will detail how to build Perl on most systems. There are a number of 409 | README.[platform] for platforms where special care is needed in building 410 | Perl. As always, reading the documentation is a Good Thing[tm]. 411 |

    412 |

    413 | Perl can be installed using the standard source code distribution on almost 414 | all platforms Perl runs on. This includes all the UNIXes (and good 415 | lookalikes, meaning POSIX environments like OS/2, Plan 9, QNX, Amiga, 416 | MPE/iX, VMS, OS390, Stratus VOS), and Microsoft platforms. The most notable 417 | exceptions are (as of 1999-Mar-24); 418 |

    419 | 427 |

    428 | For these platforms a binary release may be the easiest path. 429 |

    430 |
      431 |
    1. The source code to compile MacPerl is available at http://www.cpan.org/ports/mac/. 433 |
    2. 434 |
    3. The source code for AS/400 and Netware Perls have not been merged to 435 | the main Perl source code distribution. If you want to try compiling them 436 | yourself, get the sources from 437 | http://www.cpan.org/ports/As400/ or http://www.cpan.org/ports/netware/ 439 | and then continue at http://www.cpan.org/src/README 441 |
    4. 442 |
    443 |
    444 |

    445 | Where can I 446 | find Perl modules? 447 |

    448 | 457 |

    458 | Due to the ever increasing number of modules on CPAN, the CPAN search 459 | engine is possibly a better starting point in your quest for code, 460 | especially if you already know exactly what you are looking for. 461 |

    462 |
    463 |

    464 | How do I 465 | install Perl modules? 466 |

    467 |

    468 | Installing a new module can be as simple as typing perl -MCPAN -e 469 | 'install Chocolate::Belgian'. The CPAN.pm documentation has more 471 | complete instructions on how to use this convenient tool. If you are 472 | uncomfortable with having something take that much control over your 473 | software installation, or it otherwise doesn't work for you, the perlmodinstall 475 | documentation covers module installation for UNIX, Windows and Macintosh in 476 | more familiar terms. 477 |

    478 |

    479 | Finally, if you're using ActivePerl on Windows, the PPM (Perl 481 | Package Manager) has much of the same functionality as CPAN.pm. 482 |

    483 |
    484 |

    485 | How do I find 486 | out what modules are already installed on my system? 487 |

    488 | 602 |
    603 |

    604 | Where can I find 605 | the most recently uploaded Perl modules? 606 |

    607 |

    608 | There are so many new and updated modules that it is hard to keep up with 609 | the deluge, but there are ways to stay abreast of the tide. 610 |

    611 | 622 |

    623 | Any of these should be good for your daily feed of new modules. 624 |

    625 |
    626 |

    627 | Where 628 | can I find Perl modules for Windows? 629 |

    630 |

    631 | www.activestate.com 633 | has a FAQ for their Package Manager. Also see http://strawberryperl.com/ which also 634 | enables you to build your own modules from CPAN. 635 |

    636 |
    637 |

    638 | Where can I find 639 | Perl binaries/packages or Perl module binaries? 640 |

    641 |

    642 | http://www.cpan.org/ports/index.html 644 | is a current list of Perl binaries that we are aware of at this time. If 645 | you have a package for a platform, send us a URL. We do not endorse nor 646 | guarantee these packages nor do we store them locally on CPAN due to the 647 | potential size of the archive if we did. 648 |

    649 |

    650 | Perl module binaries for use with ActivePerl's PPM can be found at http://www.activestate.com/PPMPackages/. 652 |

    653 |
    654 |

    655 | How are Perl and 656 | the CPAN modules licensed? 657 |

    658 |

    659 | Most, though not all, modules on CPAN are licensed under the GNU Public 660 | License (GPL) or the Artistic license and should be stated in the 661 | documentation that accompanies the module itself. If the license is not 662 | specifically stated in the module, you can always write the author to 663 | clarify the issue for you. Also, the text of the Artistic license and the 664 | GNU Public License are included in the root directory of the source 665 | distribution. From the 'README' file that comes with Perl: 666 |

    667 |
     668 |                        Perl Kit, Version 5.0
     669 | 
     670 |                    Copyright 1989-1999, Larry Wall
     671 |                         All rights reserved.
     672 | 
     673 | This program is free software; you can redistribute it and/or modify
     674 | it under the terms of either:
     675 | 
     676 |     a) the GNU General Public License as published by the Free
     677 |     Software Foundation; either version 1, or (at your option) any
     678 |     later version, or
     679 |     b) the "Artistic License" which comes with this Kit.
     680 | 
     681 | This program is distributed in the hope that it will be useful,
     682 | but WITHOUT ANY WARRANTY; without even the implied warranty of
     683 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See either
     684 | the GNU General Public License or the Artistic License for more details.
     685 | 
     686 | You should have received a copy of the Artistic License with this
     687 | Kit, in the file named "Artistic".  If not, I'll be glad to provide one.
     688 | 
     689 | You should also have received a copy of the GNU General Public License
     690 | along with this program in the file named "Copying". If not, write to the
     691 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
     692 | 02111-1307, USA or visit their web page on the internet at
     693 | http://www.gnu.org/copyleft/gpl.html.
     694 | 
     695 | For those of you that choose to use the GNU General Public License,
     696 | my interpretation of the GNU General Public License is that no Perl
     697 | script falls under the terms of the GPL unless you explicitly put
     698 | said script under the terms of the GPL yourself.  Furthermore, any
     699 | object code linked with perl does not automatically fall under the
     700 | terms of the GPL, provided such object code only adds definitions
     701 | of subroutines and variables, and does not otherwise impair the
     702 | resulting interpreter from executing any standard Perl script.  I
     703 | consider linking in C subroutines in this manner to be the moral
     704 | equivalent of defining subroutines in the Perl language itself.  You
     705 | may sell such an object file as proprietary provided that you provide
     706 | or offer to provide the Perl source, as specified by the GNU General
     707 | Public License.  (This is merely an alternate way of specifying input
     708 | to the program.)  You may also sell a binary produced by the dumping of
     709 | a running Perl script that belongs to you, provided that you provide or
     710 | offer to provide the Perl source as specified by the GPL.  (The
     711 | fact that a Perl interpreter and your code are in the same binary file
     712 | is, in this case, a form of mere aggregation.)  This is my interpretation
     713 | of the GPL.  If you still have concerns or difficulties understanding
     714 | my intent, feel free to contact me.  Of course, the Artistic License
     715 | spells all this out for your protection, so you may prefer to use that.
     716 | 
    717 |
    718 |

    719 | Does the 720 | Perl source include any modules? 721 |

    722 |

    723 | Yes, Perl comes with a number of useful modules and are listed in the 724 | perlmodlib pod: 725 |

    726 | 735 |
    736 |

    737 | Where can I 738 | find Perl scripts? 739 |

    740 | 750 |
    751 |

    752 | Where can I find 753 | the Perl FAQs? 754 |

    755 |

    756 | The Perl FAQ is included with the Perl source code distribution. 757 |

    758 | 766 |
    767 |

    768 | Where can I find Perl documentation? 770 |

    771 | 786 |
    787 |

    788 | Where can I find Perl module 790 | documentation? 791 |

    792 | 800 |
    801 |

    802 | Where do I find Perl DBI/DBD/database 804 | documentation? 805 |

    806 | 820 |
    821 |

    822 | Where can I find Perl mailing lists? 824 |

    825 |

    826 | There are quite a few mailing lists with a broad range of topics. 827 |

    828 | 841 |
    842 |

    843 | Where can 844 | I find Perl courses/training/on-line tutorials? 845 |

    846 |

    847 | Training 848 |

    849 | 858 |
    859 |

    860 | How do I 861 | find/join/organise a Perl User Group? 862 |

    863 |

    864 | The Perl User Groups are known as "Perl Mongers" and have active groups all 865 | over the world. You can find an established group at http://www.pm.org/groups/ or 867 | start a new group if one isn't near you via http://www.pm.org/start/ 869 |

    870 |
    871 |

    872 | Where can I find a 873 | history of Perl releases or a general history of the Perl community? 874 |

    875 |

    876 | A history of Perl releases can be found in your Perl distribution via 877 | perldoc perlhist or via the web at http://perldoc.perl.org/perlhist.html. 879 | A more general history of the Perl community, CPAST, can be found at 880 | http://history.perl.org/. 881 |

    882 |
    883 |

    884 | I downloaded 885 | a module/script/file but it was corrupt, what should I do? 886 |

    887 |

    888 | Many CPAN filenames end in .tar.gz. Unfortunately some programs mutilate 889 | such names (e.g., rename them with _tar.tar) so that unpacking programs 890 | don't recognise them and refuse to unpack them. Try saving the file using 891 | the .tgz suffix or try changing your web client. Also, you could try a 892 | plain FTP client as almost all the CPAN sites are ftp-reachable. You can 893 | find the full list of mirrors http://www.cpan.org/SITES.html 895 |

    896 |

    897 | If you use FTP remember to download in binary format, not text format. 898 |

    899 |

    900 | Please read http://www.cpan.org/ENDINGS if you aren't 902 | sure what the files should be unpacked with and want to know if you are 903 | using the right program. 904 |

    905 |

    906 | If you still think you have a corrupt file, try downloading the file from 907 | another site. If you still have no satisfaction, then please let us know 908 | the exact file name and URL/FTP site and path. 909 |

    910 |
    911 |

    912 | How do I use module 913 | Foo::Bar, can you help? (a.k.a. Are you a helpdesk?) 914 |

    915 |

    916 | We at CPAN are not a helpdesk. We may point you towards a plethora of 917 | documentation to help you in your quest for knowledge but we cannot debug 918 | your code or read for you. We exist specifically to answer questions and 919 | solve problems relating directly to the functioning of the CPAN itself. 920 |

    921 |

    922 | In addition to the on-line documentation you might try the newsgroup 923 | comp.lang.perl.modules for help with a particular module. Also, looking at 924 | other code using the same module might prove enlightening. 925 |

    926 |
    927 |

    928 | How do I search for anything 929 | in CPAN? 930 |

    931 |

    932 | By using a CPAN search engine.
    933 |

    934 | 946 |
    947 |

    948 | How do I search for module/script 950 | documentation? (also known as "How do I use ..."?) 951 |

    952 |

    953 | In general modules and scripts come with their own documentation which 954 | should have been installed along with your module/script. (Thanks to Perl's 955 | pod-style documentation, "it is very hard to misplace your 956 | documentation".) 957 |

    958 | 969 |
    970 |

    971 | How do I 972 | contribute modules to CPAN? 973 |

    974 |

    975 | If you would like to learn more about PAUSE and how to go about 976 | contributing your module to CPAN please read the PAUSE FAQ at http://www.cpan.org/modules/04pause.html 978 | which will tell you how to go about getting a PAUSE ID and the steps needed 979 | to upload your code. Also,perldoc perlmodlib 981 | and perldoc 982 | perlmod are a good introduction to Perl modules. 983 |

    984 |
    985 |

    986 | Does 987 | CPAN allow contributions of shareware or code that requests a fee of any 988 | kind? 989 |

    990 |

    991 | No. Everything on CPAN is free of charge. The reason for this is that CPAN 992 | is the product of hundreds of people donating their time and resources for 993 | the common good of the Perl community. There are places on the net where 994 | one can offer shareware without treading on the generosity of others and 995 | this is not that place. 996 |

    997 |
    998 |

    999 | How do I 1000 | contribute scripts to CPAN? 1001 |

    1002 |

    1003 | Scripts can be provided in any CPAN distribution, though distributions 1004 | need to contain a module to be easily installable. By convention, CPAN 1005 | modules meant to install scripts are usually put in the App:: namespace. 1006 |

    1007 |
    1008 |

    1009 | How do I contribute documentation to 1011 | CPAN? 1012 |

    1013 |

    1014 | If the documentation is for a particular module that isn't a core 1015 | distribution module, then please send it to the module author. If the 1016 | module is a core module the most appropriate place to send doc patches and 1017 | enhancements is the Perl5Porters mailing list. 1018 |

    1019 |
    1020 |

    1021 | How do I report/fix 1022 | a bug in Perl and/or its documentation? 1023 |

    1024 |

    1025 | Bug reports should be submitted to the GitHub issue tracker at https://github.com/Perl/perl5/issues. 1027 |

    1028 |

    1029 | Always remember to make your bug reports as detailed as possible. "Perl 1030 | doesn't work." is not a bug report.
    1031 | Please note that problems concerning modules that are installed separately 1032 | from the Perl distribution (such as Tk) are reported differently. 1033 |

    1034 |

    1035 | Here is a checklist from perlbug, a bug reporting tool 1037 | included in your Perl distribution. It is a bit on the long side, but 1038 | please read it carefully as the better your bug report is, the more likely 1039 | the issue will be addressed. 1040 |

    1041 | 1188 |

    1189 | Please make your issue title informative. "a bug" is not informative. 1190 | Neither is "perl crashes" nor is "HELP!!!". These don't help. A compact 1191 | description of what's wrong is fine. 1192 |

    1193 |

    1194 | Having done your bit, please be prepared to wait, to be told the bug is in 1195 | your code, or possibly to get no reply at all. The volunteers who maintain 1196 | Perl are busy folks, so if your problem is an obvious bug in your own code, 1197 | is difficult to understand or is a duplicate of an existing report, you may 1198 | not receive a personal reply. 1199 |

    1200 |

    1201 | If it is important to you that your bug be fixed, do monitor the issue 1202 | tracker (you will be subscribed to notifications for issues you submit or 1203 | comment on) and the commit logs to development versions of Perl, and 1204 | encourage the maintainers with kind words or offers of frosty beverages. 1205 | (Please do be kind to the maintainers. Harassing or flaming them is likely 1206 | to have the opposite effect of the one you want.) 1207 |

    1208 |

    1209 | Feel free to update the ticket about your bug on https://github.com/Perl/perl5/issues 1211 | if a new version of Perl is released and your bug is still present. 1212 |

    1213 |
    1214 |

    1215 | How do I 1216 | report/fix a bug in a module/script? 1217 |

    1218 |

    1219 | Please contact the author of the module/script, ideally by 1220 | creating a ticket using the bug tracker for the module (linked as 'Bugs' from 1221 | metacpan.org). 1222 | The author should be automatically notified by email. 1223 |

    1224 |

    1225 | If the author doesn't respond, the documentation of the module/script might 1226 | contain a contact address or you can try CPANID@perl.org where 1227 | CPANID is the authors CPANID. 1228 |

    1229 |

    1230 | Most of the checklist in reporting bugs in 1231 | Perl above applies for modules as well. Make your bug report as good as 1232 | possible if you really want the bug fixed. If the module is included with 1233 | the Perl distribution you should also follow the Perl bug reporting tips. 1234 |

    1235 |
    1236 |

    1237 | How do I go about 1238 | maintaining a module when the author is unresponsive? 1239 |

    1240 |

    1241 | Sometimes a module goes unmaintained for a while due to the author pursuing 1242 | other interests, being busy, etc. and another person needs changes applied 1243 | to that module and may become frustrated when their bug reports and emails 1244 | goes unanswered. 1245 | CPAN does not mediate or dictate a policy in this situation and rely on the 1246 | respective authors to work out the details. If you treat other authors as 1247 | you would like to be treated in the same situation the manner in which you 1248 | go about dealing with such problems should be obvious. 1249 |

    1250 | 1272 |

    1273 | Simply keep in mind that you are dealing with a person who invested time 1274 | and care into something. A little respect and courtesy go a long way. 1275 |

    1276 |
    1277 |

    1278 | How do I adopt or take 1279 | over a module already on CPAN? 1280 |

    1281 |

    1282 | The easiest way to take over a module is to have the current module 1283 | maintainer either make you a co-maintainer or transfer the module to you. 1284 |

    1285 |

    1286 | If you can't reach the author for some reason (e.g. email bounces), the 1287 | PAUSE admins at modules@perl.org can help. The PAUSE admins treat each case 1288 | individually. 1289 |

    1290 |

    1291 | Please make sure you have tried all of the above ways of getting in contact 1292 | with the author before going this way! 1293 |

    1294 | 1313 |
    1314 |

    1315 | Is there a site for module 1316 | bug reports/tests? 1317 |

    1318 |

    1319 | Yes, through the diligence of Paul Schinder and a few others, we have 1320 | CPAN Testers which is a collection 1321 | of test results for modules on a number of different platforms. This 1322 | information is also available when viewing module information on 1323 | Metacpan. 1324 |

    1325 |

    1326 | There is also http://bugs.perl.org/ 1327 | where you might search for a module bug already reported to P5P. 1328 |

    1329 |
    1330 |

    1331 | Does CPAN provide 1332 | download statistics for authors? 1333 |

    1334 |

    1335 | No we don't. http://xxx.lanl.gov/help/faq/statfaq 1337 | sums up our thoughts on the matter quite well. 1338 |

    1339 | 1340 |
    1341 | 1342 | 1343 | 1344 | 1345 | 1346 |

    Questions about mirroring CPAN

    1347 | See How to mirror CPAN. 1348 |
    1349 | 1350 |

    1351 | The CPAN FAQ is copyright Jarkko Hietaniemi and Elaine 1352 | Ashton 1998-2007 and Ask Bjørn Hansen, Leo Lapworth 2011 All 1353 | Rights Reserved. Send questions and comments 1354 | to cpan@perl.org. 1355 | 1356 |

    1357 | -------------------------------------------------------------------------------- /src/misc/css/cpan.css: -------------------------------------------------------------------------------- 1 | body { 2 | width: 99%; 3 | margin: auto; 4 | padding: 0; 5 | margin-bottom: 3em; 6 | font-size: 1em; 7 | font-family: Arial, Verdana, sans-serif; 8 | background: white url(../images/bg_gradient.jpg) repeat-x left top; 9 | max-width: 70em; 10 | } 11 | td#header { 12 | padding:.8em 0; 13 | } 14 | 15 | #header_left { 16 | float: left; 17 | } 18 | #header_right { 19 | padding-top:.8em; 20 | float: right; 21 | } 22 | #header_right h1{ 23 | color: #000; 24 | text-align: right; 25 | font-size:210%; 26 | font-weight:normal; 27 | font-family:Times, Georgia, serif; 28 | margin:0 0 .1em 0; 29 | } 30 | #header_right #strapline { 31 | color:#007CB9; 32 | text-align: right; 33 | text-transform: uppercase; 34 | font-size: 90%; 35 | font-weight: 700; 36 | margin:0; 37 | } 38 | img{ 39 | border:0; 40 | } 41 | a{ 42 | color: #0083C1; 43 | text-decoration: none; 44 | } 45 | a:link { 46 | color: #0083C1; 47 | } 48 | a:hover { 49 | color: #000000; 50 | } 51 | a img{ 52 | border:0; 53 | } 54 | h1 { 55 | color:#006699; 56 | margin-bottom: .6em; 57 | margin-top: .6em; 58 | font-size: 200%; 59 | } 60 | h2 { 61 | color:#006699; 62 | font-size: 150%; 63 | font-family:Calibri, Arial, sans-serif; 64 | font-weight:normal; 65 | margin-top: 0; 66 | margin-bottom: .5em; 67 | } 68 | h3 { 69 | font-size: 100%; 70 | font-weight: normal; 71 | } 72 | h4 { 73 | font-size: 100%; 74 | font-weight: normal; 75 | } 76 | li { 77 | list-style-type: circle; 78 | padding-top: .25em; 79 | } 80 | ul { 81 | margin: .8em 0; 82 | padding-left: 1em; 83 | } 84 | #content{ 85 | padding-top: .5em; 86 | padding-bottom: 1em; 87 | padding-left: .5em; 88 | } 89 | #content li{ 90 | font-size:90%; 91 | } 92 | .section_home #content ul { 93 | padding-left: 1.5em; 94 | } 95 | .search{ 96 | vertical-align: center; 97 | } 98 | #searchtitle { 99 | margin-top: .1em; 100 | margin-bottom: 0; 101 | float: right; 102 | display: inline; 103 | } 104 | #searchfield{ 105 | width:18em; 106 | } 107 | .big { 108 | font-size: 200%; 109 | font-family: Times; 110 | } 111 | p { 112 | font-size: 90%; 113 | } 114 | p img{ 115 | vertical-align:middle; 116 | } 117 | table#wrapper { margin: auto; } 118 | img.border { border: none } 119 | td { 120 | padding: .3em 0; 121 | vertical-align: top; 122 | } 123 | .third{ 124 | width: 30%; 125 | padding-right: 3%; 126 | } 127 | /* nav */ 128 | #menubar_holder { 129 | /*background: #006699 url(../images/menubar_highlight.png) repeat-x left top;*/ 130 | background: #006699; 131 | color: #FFF; 132 | font-family:Arial, Helvetica, sans-serif; 133 | font-weight:bold; 134 | } 135 | .menubar{ 136 | margin:0; 137 | padding:0; 138 | } 139 | .menubar li{ 140 | list-style:none; 141 | float:left; 142 | } 143 | .menubar li a { 144 | display:block; 145 | padding: .35em .9em; 146 | } 147 | .menubar a:link, .menubar a:visited { 148 | color: white; 149 | text-decoration: none; 150 | } 151 | .menubar a:hover { 152 | color: #DBE7EC; 153 | text-decoration: underline; 154 | } 155 | form{ 156 | margin:0; 157 | padding:0; 158 | } 159 | #searchbar{ 160 | float:right; 161 | font-weight:bold; 162 | padding: .3em; 163 | } 164 | 165 | hr { 166 | border: 0; 167 | height: 0.1em; 168 | color: #006699; 169 | background-color: #006699; 170 | margin-top: 1em; 171 | } 172 | img { 173 | max-width: 100%; 174 | height: auto; 175 | } 176 | img #logo { 177 | width: 250px; 178 | height: 77px; 179 | } 180 | img.extlink{ 181 | float: none; 182 | padding-left: 0.25em; 183 | } 184 | img.netactuate { 185 | filter: invert(.50); 186 | } 187 | #footer{ 188 | background: white url(../images/bg_gradient.jpg) repeat-x left top; 189 | padding:.8em; 190 | } 191 | #footer_copyright{ 192 | font-size: 80%; 193 | float: left; 194 | vertical-align: top; 195 | } 196 | #footer_mirror{ 197 | font-size: 90%; 198 | float: right; 199 | vertical-align: top; 200 | } 201 | 202 | /* Ports page version tables */ 203 | div.os_holder { 204 | border-bottom:0.1em solid black; 205 | margin: 0.5em 0; 206 | padding: 0 0.5em; 207 | } 208 | 209 | table.os_version{ 210 | border: 0.1em solid #999; 211 | width: 45%; 212 | } 213 | table.os_version th{ 214 | background-color: #E3E3E3; 215 | padding-left: 0.2em; 216 | text-align: left; 217 | } 218 | table.os_version tr { 219 | font-size: 80%; 220 | } 221 | table.os_version td { 222 | font-size: 90%; 223 | padding: 0; 224 | } 225 | table.os_version tr.table_header { 226 | font-size: 100%; 227 | } 228 | table.os_version tr.latest{ 229 | font-size: 140%; 230 | } 231 | table.os_version tr span{ 232 | font-size: 70%; 233 | color: #BABABA; 234 | } 235 | table.os_version tr.even{ 236 | background-color: #E3E3E3; 237 | } 238 | 239 | .os_binary{ 240 | float: right; 241 | border: 0.1em solid #999; 242 | padding: 0; 243 | width: 45%; 244 | margin-bottom: 0.5em; 245 | } 246 | .os_binary h4{ 247 | background-color: #E3E3E3; 248 | margin: 0; 249 | font-weight: bold; 250 | padding: 0.1em; 251 | margin: 0.1em; 252 | } 253 | .os_binary ul{ 254 | margin: 1em 1em; 255 | } 256 | .clear { 257 | clear: both; 258 | } 259 | 260 | 261 | 262 | -------------------------------------------------------------------------------- /src/misc/gif/funet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/gif/funet.gif -------------------------------------------------------------------------------- /src/misc/gif/valid-xhtml10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/gif/valid-xhtml10.gif -------------------------------------------------------------------------------- /src/misc/gif/vcss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/gif/vcss.gif -------------------------------------------------------------------------------- /src/misc/how-to-mirror.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "How to mirror CPAN", 4 | section => 'home', 5 | stub => '../', 6 | }); 7 | 8 | PROCESS "tpl/data/cpan-stats"; 9 | 10 | %] 11 | 12 | [% page.head = BLOCK %] 13 | 19 | [% END %] 20 |

    21 | How to mirror CPAN 22 |

    23 |

    24 | There are several ways to mirror CPAN depending upon what you want to 25 | achieve. 26 |

    27 | 28 |

    29 | How do I create a private or offline mirror? 30 |

    31 |

    32 | minicpan 33 | from CPAN::Mini is the 34 | best tool for this. Also look at CPAN::Mini::Inject 36 | which allows you to add your own modules into your private mirror. 37 |

    38 | 39 | 40 |

    41 | Requirements for a full / public mirror 42 |

    43 | 55 | 56 |

    It's highly recommended that you also subscribe to the announcements-only 57 | cpan-mirrors 58 | mailing list by emailing cpan-mirrors-subscribe at perl.org. 59 |

    60 | 61 |

    62 | Tools 63 |

    64 |

    65 | CPAN::Mini provides 66 | you with a minimal mirror of CPAN (the 67 | latest version of all modules). This makes working offline easy, it is the 68 | best tool if you are running a private mirror. 69 |

    70 |

    71 | New: rrr-client allows 72 | instant mirroring, and should be used on official public mirrors where 73 | possible. See instant mirroring instructions. 75 |

    76 |

    77 | rsync is the best tool if you need to 78 | mirror the whole of CPAN or if you are providing a public mirror. Rsync 79 | Instructions. 80 |

    81 |

    82 | Only use FTP if these other methods are absolutely impossible. Never mirror 83 | with HTTP - you will end up with a million duplicate files in tens of 84 | gigabytes. 85 |

    86 | 87 |

    88 | Which CPAN Mirror should I use? 89 |

    90 | 91 |

    92 | You can find your nearest rsync enabled site on http://www.cpan.org/SITES.html, or use 94 | mirrors.json 95 | especially if you are building a tool which lets the user select a mirror. 96 |

    97 | 98 |

    99 | You can also sync from rsync://cpan-rsync.perl.org/CPAN/ (the 100 | "tier 1 mirrors"), though you currently might get better 101 | performance from a "local" mirror. 102 |

    103 | 104 |

    105 | Using rsync 106 |

    107 |

    108 | Please limit to once or twice a day. For more frequent updates please see 109 | Instant mirroring. 110 |

    111 |

    112 | On Unix systems 113 |

    114 |
    115 | /usr/bin/rsync -av --delete cpan-rsync.perl.org::CPAN /project/CPAN/
    116 | 
    117 |

    118 | Using 'crontab' you can make rsync run once a day, for example
    119 | 40 4 * * * sleep $(expr $RANDOM \% 7200); /usr/bin/rsync -a --delete 120 | cpan-rsync.perl.org::CPAN /project/CPAN/
    121 | The "sleep $(...);" statement makes the command delay up to 2 hours before 122 | running rsync; the advantage of this is that you (and everybody else) won't 123 | access the mirror at the same time. 124 |

    125 |

    126 | Unless you are mirroring to an SSD you might get timeouts using --delete-after 127 | when many symlinks are being purged. Using --delete will work properly. 128 |

    129 |

    130 | If you have a problem with permissions (files are created with mode 131 | -rw-------), set umask in your cronjob :
    132 | 40 4 * * * umask 022 ; sleep ... ; /usr/bin/rsync ...
    133 | The umask 022 allows rsync to set proper permissions for 134 | files and directories. 135 |

    136 |

    137 | On Windows systems 138 |

    139 |
    140 | C:\Program Files\Rsync\rsync -av --delete cpan-rsync.perl.org::CPAN /project/CPAN/
    141 | 
    142 |

    143 | Using the 'AT' tool, you can schedule rsync to run daily, for example:
    144 | AT 20:00 /every:M,T,W,Th,F,S,Su "C:\Program Files\Rsync\rsync -a 145 | --delete cpan-rsync.perl.org::CPAN /project/CPAN/"
    146 |

    147 | 148 |

    149 | How do I create a public mirror? 150 |

    151 | 170 | 171 |

    172 | Instant mirroring 173 |

    174 |

    175 | "Instant mirroring" keeps your CPAN mirror up-to-date by continuously 176 | tracking the CPAN master; picking up the changes from the master, a short 177 | time (minutes) after they occur. 178 |

    179 |

    180 | Instant mirroring is used for all Tier 1 mirrors (so 181 | cpan-rsync.perl.org stays in sync across mirrors). 182 |

    183 |

    184 | To use "instant mirroring", you need a special client: "rrr-client" or 185 | "iim". 186 |

    187 |

    188 | "rrr-client" is part of the File::Rsync::Mirror::Recent 190 | (also known as rrr) package ; it is the official client, used 191 | on the CPAN master to get updates from PAUSE : the true heart and soul of "all things 193 | perl", see the setup 195 | guide for more details. 196 |

    197 |

    198 | "iim" is an 199 | alternative for "rrr-client" ; basically it does the same thing, but it is 200 | more efficient (on start-up) and has some features that may be helpful to 201 | CPAN mirror operators. 202 |

    203 | -------------------------------------------------------------------------------- /src/misc/images/bg_gradient.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/images/bg_gradient.jpg -------------------------------------------------------------------------------- /src/misc/images/cpan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/images/cpan.png -------------------------------------------------------------------------------- /src/misc/images/cpan.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | image/svg+xml 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/misc/images/fastly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/images/fastly.png -------------------------------------------------------------------------------- /src/misc/images/menubar_highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/images/menubar_highlight.png -------------------------------------------------------------------------------- /src/misc/images/netactuate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/images/netactuate.png -------------------------------------------------------------------------------- /src/misc/images/phyber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/images/phyber.png -------------------------------------------------------------------------------- /src/misc/jpg/cpan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perlorg/cpanorg/e1962de2deb5d4dab58eb8f55a50e7743d9a115f/src/misc/jpg/cpan.jpg -------------------------------------------------------------------------------- /src/ports/README: -------------------------------------------------------------------------------- 1 | CPAN/ports/README 2 | 3 | You are probably looking for a binary distribution of Perl. 4 | If so, go directly to 5 | 6 | http://www.perl.com/CPAN/ports/index.html 7 | 8 | The rest of this file tells is more detail about the 9 | contents of this directory (http://www.perl.com/CPAN/ports/) 10 | but in principle, the above URL should be all you need. 11 | 12 | CONTENTS 13 | 14 | This directory contains ports (or pointers to such) of Perl 15 | 16 | (1) to platforms that the Perl standard source code distribution (S) 17 | does not (yet) support, such as Tandem Guardian. 18 | 19 | (2) to platforms where a C compiler is an exception, not the rule, 20 | like for example the Windows platforms and OS/2. 21 | 22 | (3) some of the directories here are empty and just contain pointers 23 | back to (S). These are Perl source code archaeology in action: 24 | once upon a time these platforms were not supported in the (S), 25 | but they are now. Examples include Amiga, BeOS, and MPE/iX. 26 | 27 | (S) Either 28 | 29 | http://www.perl.com/CPAN/src/stable.tar.gz 30 | 31 | or 32 | 33 | http://www.perl.com/CPAN/src/stable.zip 34 | 35 | Grab that, unpack it, start off by reading the README. 36 | 37 | BUILDING PERL FROM SOURCE 38 | 39 | To build from the (S) you will need a full C compiler and 40 | some sort of compilation environment ('make' or some similar 41 | build tool). If you have a UNIX-like shell environment 42 | (Bourne shell and the usual UNIX utilities like 'tr', 'sed', 43 | and so on), so much the better. 44 | 45 | Because Perl's roots are in the UNIX world in general any 46 | UNIX platform should be supported in the (S). If this isn't 47 | the case, please send email to perlbug@perl.com and tell in 48 | excruciating detail what is your UNIX platform. For example 49 | the output of "uname -a" or similar would be handy. 50 | 51 | Beware: some platforms which the vendors call UNIX do not 52 | have a full C compiler -- or if they have a 'bundled' one, 53 | it's severely crippled, supplied mainly for compiling the 54 | kernel/device drivers. 55 | 56 | Perl requires more than that. 57 | 58 | Such crippled platforms include HP-UX and Solaris. Either 59 | you will have to pay for the full C compiler or find 60 | yourself the GNU C compiler (gcc) as a binary distribution. 61 | If you don't know where to start, locate the FAQ for your 62 | platform. If you don't know what that is or where to get 63 | that, use the search engines. If you don't know what those 64 | are, consult your local information systems support. If 65 | they don't know what all the above means, fire them. 66 | 67 | -- 68 | cpan@perl.org 69 | -------------------------------------------------------------------------------- /src/ports/binaries.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "Perl binaries", 4 | section => 'ports', 5 | stub => '../', 6 | }); 7 | 8 | # Active State's main download URL 9 | SET activestate_url = 'http://www.activestate.com/activeperl/downloads'; 10 | 11 | PROCESS ports/oses/list.html; 12 | 13 | %] 14 | 15 | [% BLOCK version_view %] 16 | 17 | 18 | [% FOREACH version = os_versions.versions %] 19 | 20 | 32 | 33 | 34 | [% END %] 35 |
    OS Name / versionDefault Perl version
    [% IF version.os_name && version.os_version %] 21 | [% version.os_name %] ([% version.os_version %]) 22 | [% ELSIF version.os_name %] 23 | [% version.os_name %] 24 | [% ELSE %] 25 | [% version.os_version %] 26 | [% END %] 27 | 28 | [% IF loop.first && version.os_release%] 29 |
    Released [% version.os_release %]
    [% END %] 30 | 31 |
    [% version.perl_version %]
    36 | [% END %] 37 | 38 | [% BLOCK binary_view %] 39 |
    40 |

    [% "Other " UNLESS os_config.not_included_in_os_packages %]Binaries:

    41 | 47 |
    48 | [% END %] 49 | 50 | 51 | 52 |

    Perl Binaries

    53 | 54 | 67 | 68 |

    69 |

    75 |

    76 |
    77 | 78 | 79 | [% FOREACH os = os_list.sort %] 80 |
    81 | [% PROCESS "ports/oses/${os}.tt_data" %] 82 |

    [% os_config.name %]

    83 | [% PROCESS show_os %] 84 | [% IF os_config.kernel %] 85 |

    See also [% os_config.kernel | ucfirst %]

    86 | [% END %] 87 |

    Last updated: [% os_config.information_last_verified || 'unknown' %]

    88 |
    89 | [% END %] 90 | 91 |



    92 |

    93 | Do you have additions, updates, or corrections? If so, please submit a pull request to 94 | our 95 | github repository.. 96 |

    97 | -------------------------------------------------------------------------------- /src/ports/index.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "Perl Ports - Perl on different platforms", 4 | section => 'ports', 5 | stub => '../', 6 | }); 7 | 8 | PROCESS ports/oses/list.html; 9 | 10 | %] 11 | 12 |

    Perl Ports (Binary Distributions)

    13 | 14 | 36 | 37 |

    What OS do you run?

    38 | 39 | 46 |
    47 | 48 | 49 | -------------------------------------------------------------------------------- /src/ports/oses/_template.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => '', 6 | 7 | # URL of the OS (e.g. http://www.microsoft.com/windows/) 8 | url => '', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => '', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => 'linux', 15 | 16 | # Only needed for Windows so far 17 | # not_included_in_os_packages => 1, 18 | 19 | # When was this file last reviewed (yyyy-mm-dd)? 20 | information_last_verified => '2011-03-26', 21 | } 22 | %] 23 | 24 | [% BLOCK show_os %] 25 | 26 |

    Some basic copy, can go here

    27 | 28 | [% PROCESS binary_view binary_source => [ 29 | { 30 | name => 'ActiveState', 31 | url => activestate_url, 32 | notes => '' 33 | }, 34 | { 35 | name => '', 36 | url => '', 37 | notes => '' 38 | }, 39 | ] 40 | %] 41 | 42 | [% PROCESS version_view os_versions => { 43 | versions => [ 44 | { 45 | # name and/or version 46 | os_name => '', 47 | os_version => '', 48 | os_release => '', # optional release date of the os (yyyy-mm-dd) 49 | # include '+patches' if applicable please (e.g. Debian) 50 | # (so people know they would not get the same by just building themselves) 51 | perl_version => '', 52 | 53 | }, 54 | { 55 | os_name => '', 56 | os_version => '', 57 | perl_version => '', 58 | }, 59 | 60 | ], 61 | } %] 62 | 63 |

    Add specific instructions for building from source here 64 | 65 | 66 | 67 | [% END %] -------------------------------------------------------------------------------- /src/ports/oses/aix.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'AIX', 6 | 7 | # URL of the OS (e.g. www.m) 8 | url => 'http://www.ibm.com/developerworks/aix/', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => 'IBM', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => '', 15 | 16 | # When was this file last reviewed? 17 | information_last_verified => '2011-03-26', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS binary_view binary_source => [ 24 | { 25 | name => 'ActiveState (commercial)', 26 | url => activestate_url, 27 | notes => '' 28 | }, 29 | ] 30 | %] 31 | 32 | [% PROCESS version_view os_versions => { 33 | versions => [ 34 | 35 | { 36 | os_name => '', 37 | os_version => '7.1', 38 | os_release => '2010-09-10', 39 | perl_version => '5.10.1', 40 | }, 41 | 42 | { 43 | os_name => '', 44 | os_version => '6.1', 45 | os_release => '2007-11-01', 46 | perl_version => '5.8.2', 47 | }, 48 | 49 | { 50 | os_name => '', 51 | os_version => '5.3', 52 | os_release => '2004-08-01', 53 | perl_version => '5.8.2', 54 | }, 55 | 56 | { 57 | os_name => '', 58 | os_version => '5.2', 59 | os_release => '2002-10-01', 60 | perl_version => '5.8.0', 61 | }, 62 | 63 | { 64 | os_name => '', 65 | os_version => '5.1', 66 | os_release => '2001-05-01', 67 | perl_version => '5.6.0', 68 | }, 69 | 70 | { 71 | os_name => '', 72 | os_version => '4.3', 73 | os_release => '2007-10-01', 74 | perl_version => '5.005_03', 75 | }, 76 | 77 | ], 78 | } %] 79 | 80 | 81 | [% END %] 82 | -------------------------------------------------------------------------------- /src/ports/oses/centos.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'CentOS', 6 | 7 | # URL of the OS (e.g. www.m) 8 | url => 'http://www.centos.org/', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => '', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => 'linux', 15 | 16 | # When was this file last reviewed (yyyy-mm-dd)? 17 | information_last_verified => '2014-12-23', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS version_view os_versions => { 24 | versions => [ 25 | { 26 | os_name => '', 27 | os_version => '7', 28 | os_release => '2014-7-7', 29 | perl_version => '5.16.1', 30 | }, 31 | 32 | { 33 | os_name => '', 34 | os_version => '6', 35 | os_release => '2011-7-10', 36 | perl_version => '5.10.1', 37 | }, 38 | 39 | { 40 | os_name => '', 41 | os_version => '5', 42 | os_release => '2007-4-01', 43 | perl_version => '5.8.8', 44 | }, 45 | 46 | { 47 | os_name => '', 48 | os_version => '4', 49 | os_release => '', 50 | perl_version => '5.8.5', 51 | }, 52 | 53 | ], 54 | } %] 55 | 56 | [% END %] 57 | -------------------------------------------------------------------------------- /src/ports/oses/cygwin.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | name => 'Cygwin', 5 | url => 'http://www.cygwin.com/', 6 | vendor => '', 7 | information_last_verified => '2011-04-13', 8 | } 9 | %] 10 | 11 | [% BLOCK show_os %] 12 | 13 | [% PROCESS version_view os_versions => { 14 | versions => [ 15 | { 16 | os_name => '', 17 | os_version => '1.7', 18 | os_release => '2010-01-21', 19 | perl_version => '5.10.1', 20 | }, 21 | 22 | { 23 | os_name => '', 24 | os_version => '1.5', 25 | os_release => '', 26 | perl_version => '5.10.1', 27 | }, 28 | 29 | ], 30 | } %] 31 | 32 | [% END %] -------------------------------------------------------------------------------- /src/ports/oses/debian.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | name => 'Debian', 5 | url => 'http://www.debian.org/', 6 | kernel => 'linux', 7 | information_last_verified => '2017-10-04', 8 | } 9 | %] 10 | 11 | [% BLOCK show_os %] 12 | 13 | [% PROCESS binary_view binary_source => [ 14 | { 15 | name => 'Backports', 16 | url => 'http://backports.debian.org/', 17 | notes => '', 18 | }, 19 | { 20 | name => 'ActiveState', 21 | url => activestate_url, 22 | notes => '', 23 | }, 24 | 25 | ] 26 | %] 27 | 28 | 29 | [% PROCESS version_view os_versions => { 30 | versions => [ 31 | { 32 | os_name => 'Stretch', 33 | os_version => '9', 34 | os_release => '2017-07-17', 35 | perl_version => '5.24.1+patches', 36 | }, 37 | { 38 | os_name => 'Jessie', 39 | os_version => '8', 40 | os_release => '2015-04-26', 41 | perl_version => '5.20.2+patches', 42 | }, 43 | { 44 | os_name => 'Wheezy', 45 | os_version => '7.0', 46 | os_release => '2013-05-04', 47 | perl_version => '5.14.2+patches', 48 | }, 49 | { 50 | os_name => 'Squeeze', 51 | os_version => '6.0', 52 | os_release => '2011-02-06', 53 | perl_version => '5.10.1+patches', 54 | }, 55 | { 56 | os_name => 'Lenny', 57 | os_version => '5.0', 58 | os_release => '2009-02-01', 59 | perl_version => '5.10.0+patches', 60 | }, 61 | { 62 | os_name => 'Etch', 63 | os_version => '4.0', 64 | os_release => '2007-04-01', 65 | perl_version => '5.8.8+patches', 66 | }, 67 | { 68 | os_name => 'Woody', 69 | os_version => '3.0', 70 | perl_version => '5.6.1+patches', 71 | }, 72 | ], 73 | } %] 74 | 75 |

    76 | Mostly minor patches are applied. 78 |

    79 | 80 | 81 | [% END %] 82 | 83 | 84 | -------------------------------------------------------------------------------- /src/ports/oses/fedora.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | name => 'Fedora', 5 | url => 'http://fedoraproject.org/', 6 | vendor => '', 7 | kernel => 'linux', 8 | information_last_verified => '2017-10-30', 9 | } 10 | %] 11 | 12 | [% BLOCK show_os %] 13 | 14 | 15 | [% PROCESS binary_view binary_source => [ 16 | { 17 | name => 'ActiveState', 18 | url => activestate_url, 19 | notes => '' 20 | }, 21 | 22 | ] 23 | %] 24 | 25 | [% PROCESS version_view os_versions => { 26 | versions => [ 27 | { 28 | os_name => '', 29 | os_version => '27', 30 | os_release => '2017-11-07', 31 | perl_version => '5.26.1', 32 | }, 33 | 34 | { 35 | os_name => '', 36 | os_version => '26', 37 | os_release => '2017-07-11', 38 | perl_version => '5.24.3', 39 | }, 40 | 41 | { 42 | os_name => '', 43 | os_version => '25', 44 | os_release => '2016-11-22', 45 | perl_version => '5.24.0', 46 | }, 47 | 48 | { 49 | os_name => '', 50 | os_version => '24', 51 | os_release => '2016-06-21', 52 | perl_version => '5.22.2', 53 | }, 54 | 55 | { 56 | os_name => '', 57 | os_version => '23', 58 | os_release => '2015-11-03', 59 | perl_version => '5.22.1', 60 | }, 61 | 62 | { 63 | os_name => '', 64 | os_version => '22', 65 | os_release => '2015-05-26', 66 | perl_version => '5.20.3', 67 | }, 68 | 69 | { 70 | os_name => '', 71 | os_version => '21', 72 | os_release => '2014-12-09', 73 | perl_version => '5.18.4', 74 | }, 75 | 76 | { 77 | os_name => 'Heisenbug', 78 | os_version => '20', 79 | os_release => '2013-12-17', 80 | perl_version => '5.18.4', 81 | }, 82 | 83 | { 84 | os_name => "Schrödinger's Cat", 85 | os_version => '19', 86 | os_release => '2013-07-02', 87 | perl_version => '5.16.3', 88 | }, 89 | 90 | { 91 | os_name => 'Laughlin', 92 | os_version => '14', 93 | os_release => '2010-11-02', 94 | perl_version => '5.12.2', 95 | }, 96 | 97 | { 98 | os_name => 'Goddard', 99 | os_version => '13', 100 | os_release => '2010-05-25', 101 | perl_version => '5.10.1', 102 | }, 103 | 104 | { 105 | os_name => 'Constantine', 106 | os_version => '12', 107 | os_release => '2009-11-17', 108 | perl_version => '5.10.0', 109 | }, 110 | 111 | { 112 | os_name => 'Leonidas', 113 | os_version => '11', 114 | os_release => '2009-06-09', 115 | perl_version => '5.10.0', 116 | }, 117 | 118 | { 119 | os_name => 'Cambridge', 120 | os_version => '10', 121 | os_release => '2008-11-25', 122 | perl_version => '5.10.0', 123 | }, 124 | 125 | { 126 | os_name => 'Sulphur', 127 | os_version => '9', 128 | os_release => '2008-05-13', 129 | perl_version => '5.10.0', 130 | }, 131 | 132 | { 133 | os_name => 'Werewolf', 134 | os_version => '8', 135 | os_release => '2007-11-08', 136 | perl_version => '5.8.8', 137 | }, 138 | 139 | { 140 | os_name => 'Moonshine', 141 | os_version => '7', 142 | os_release => '2007-05-31', 143 | perl_version => '5.8.8', 144 | }, 145 | 146 | { 147 | os_name => 'Zod', 148 | os_version => '6', 149 | os_release => '2006-10-24', 150 | perl_version => '5.8.8', 151 | }, 152 | 153 | { 154 | os_name => 'Bordeaux', 155 | os_version => '5', 156 | os_release => '2006-03-20', 157 | perl_version => '5.8.8', 158 | }, 159 | 160 | { 161 | os_name => 'Stentz', 162 | os_version => '4', 163 | os_release => '2005-06-13', 164 | perl_version => '5.8.6', 165 | }, 166 | 167 | { 168 | os_name => 'Heidelberg', 169 | os_version => '3', 170 | os_release => '2004-11-08', 171 | perl_version => '5.8.5', 172 | }, 173 | 174 | { 175 | os_name => 'Tettnang', 176 | os_version => '2', 177 | os_release => '2004-05-18', 178 | perl_version => '5.8.3', 179 | }, 180 | 181 | { 182 | os_name => 'Yarrow', 183 | os_version => '1', 184 | os_release => '2003-11-05', 185 | perl_version => '5.8.1', 186 | }, 187 | 188 | ], 189 | } %] 190 | 191 | 192 | 193 | 194 | [% END %] 195 | -------------------------------------------------------------------------------- /src/ports/oses/guix.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'GNU Guix and GuixSD', 6 | 7 | # URL of the OS 8 | url => 'https://gnu.org/s/guix', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => '', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => 'linux', 15 | 16 | # When was this file last reviewed (yyyy-mm-dd)? 17 | information_last_verified => '2017-05-25', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS binary_view binary_source => [ 24 | { 25 | name => 'Guix', 26 | url => 'https://www.gnu.org/software/guix/packages/p.html#perl', 27 | notes => 'Install perl on any system Guix supports' 28 | }, 29 | ] 30 | %] 31 | 32 | [% PROCESS version_view os_versions => { 33 | versions => [ 34 | { 35 | os_name => '', 36 | os_version => '', 37 | os_release => '', 38 | perl_version => '5.24.0', 39 | }, 40 | 41 | { 42 | os_name => '', 43 | os_version => '0.13.0', 44 | os_release => '2017-05-22', 45 | perl_version => '5.24.0', 46 | }, 47 | ], 48 | } %] 49 | 50 | 51 | [% END %] -------------------------------------------------------------------------------- /src/ports/oses/hpux.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'HP-UX', 6 | 7 | # URL of the OS (e.g. http://www.microsoft.com/windows/) 8 | url => '', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => '', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => '', 15 | 16 | # When was this file last reviewed (yyyy-mm-dd)? 17 | information_last_verified => '2011-03-26', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS binary_view binary_source => [ 24 | { 25 | name => "Merijn's HP-UX software", 26 | url => 'http://mirrors.develooper.com/hpux/', 27 | notes => '' 28 | }, 29 | { 30 | name => 'ActiveState (commercial)', 31 | url => activestate_url, 32 | notes => '' 33 | }, 34 | ] 35 | %] 36 | 37 | [% PROCESS version_view os_versions => { 38 | versions => [ 39 | { 40 | os_name => '', 41 | os_version => '11.31/IPF', 42 | os_release => '', 43 | perl_version => '5.8.8', 44 | }, 45 | 46 | { 47 | os_name => '', 48 | os_version => '11.23/IPF', 49 | os_release => '', 50 | perl_version => '5.8.8', 51 | }, 52 | 53 | { 54 | os_name => '', 55 | os_version => '11.11/PA', 56 | os_release => '', 57 | perl_version => '5.005_02', 58 | }, 59 | 60 | { 61 | os_name => '', 62 | os_version => '11.00/PA', 63 | os_release => '', 64 | perl_version => '4.0 PL36', 65 | }, 66 | 67 | { 68 | os_name => '', 69 | os_version => '10.20/PA', 70 | os_release => '', 71 | perl_version => '4.0 PL36', 72 | }, 73 | 74 | ], 75 | } %] 76 | 77 | 78 | [% END %] -------------------------------------------------------------------------------- /src/ports/oses/linux.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | name => 'Linux', 5 | information_last_verified => '2011-03-26', 6 | } 7 | %] 8 | 9 | [% BLOCK show_os %] 10 | 11 |

    12 | Almost all Linux distributions come with Perl, or you are 13 | able to install Perl through their package management system. 14 |

    15 | 16 | [% PROCESS binary_view binary_source => [ 17 | { 18 | name => 'ActiveState', 19 | url => activestate_url, 20 | notes => '', 21 | }, 22 | 23 | ] 24 | %] 25 |
    26 | 27 | [% END %] -------------------------------------------------------------------------------- /src/ports/oses/list.html: -------------------------------------------------------------------------------- 1 | [% 2 | # The list of OS'es - each one must have a ports/oses/.tt_data file 3 | SET os_list = [ 4 | 'aix', 5 | 'centos', 6 | 'cygwin', 7 | 'debian', 8 | 'fedora', 9 | 'hpux', 10 | 'linux', 11 | 'macos', 12 | 'openbsd', 13 | 'redhat', 14 | 'slackware', 15 | 'solaris', 16 | 'suse', 17 | 'ubuntu', 18 | 'win32', 19 | ]; 20 | 21 | %] 22 | 23 | -------------------------------------------------------------------------------- /src/ports/oses/macos.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | name => 'macOS', 5 | url => 'http://www.apple.com/macos/', 6 | vendor => 'Apple', 7 | information_last_verified => '2024-12-18', 8 | } 9 | %] 10 | 11 | [% BLOCK show_os %] 12 |

    13 | macOS ships with Perl as a standard component. Since macOS Catalina (10.15), 14 | Apple has shipped multiple perls in each release. This list shows the 15 | default version of perl. For more details, see 16 | https://github.com/briandfoy/mac-perl-versions. 17 |

    18 | [% PROCESS binary_view binary_source => [ 19 | { 20 | name => 'ActiveState', 21 | url => activestate_url, 22 | notes => 'In universal disk image format' 23 | }, 24 | { 25 | name => 'MacPorts', 26 | url => 'http://www.macports.org/', 27 | notes => 'Formerly known as DarwinPorts', 28 | }, 29 | { 30 | name => 'Fink', 31 | url => 'http://www.finkproject.org/', 32 | }, 33 | { 34 | name => 'Homebrew', 35 | url => 'https://brew.sh/', 36 | }, 37 | ] 38 | %] 39 | 40 | [% PROCESS version_view os_versions => { 41 | versions => [ 42 | { 43 | os_name => 'Sequoia', 44 | os_version => '15', 45 | perl_version => '5.34.1', 46 | }, 47 | { 48 | os_name => 'Sonoma', 49 | os_version => '14', 50 | perl_version => '5.34.1', 51 | }, 52 | { 53 | os_name => 'Ventura', 54 | os_version => '13', 55 | perl_version => '5.30.3', 56 | }, 57 | { 58 | os_name => 'Monterey', 59 | os_version => '12', 60 | perl_version => '5.30.3', 61 | }, 62 | { 63 | os_name => 'Big Sur', 64 | os_version => '11', 65 | perl_version => '5.30.2', 66 | }, 67 | { 68 | os_name => 'Catalina', 69 | os_version => '10.15', 70 | perl_version => '5.28.2', 71 | }, 72 | { 73 | os_name => 'Mojave', 74 | os_version => '10.14', 75 | perl_version => '5.18.4', 76 | }, 77 | { 78 | os_name => 'High Sierra', 79 | os_version => '10.13', 80 | perl_version => '5.18.2', 81 | }, 82 | { 83 | os_name => 'Sierra', 84 | os_version => '10.12', 85 | perl_version => '5.18.2', 86 | }, 87 | { 88 | os_name => 'El Capitan', 89 | os_version => '10.11', 90 | perl_version => '5.18.2', 91 | }, 92 | { 93 | os_name => 'Yosemite', 94 | os_version => '10.10', 95 | perl_version => '5.18.2', 96 | }, 97 | { 98 | os_name => 'Mavericks', 99 | os_version => '10.9', 100 | perl_version => '5.16.2', 101 | }, 102 | { 103 | os_name => 'Mountain Lion', 104 | os_version => '10.8', 105 | perl_version => '5.12.4', 106 | }, 107 | { 108 | os_name => 'Lion', 109 | os_version => '10.7', 110 | perl_version => '5.12.3', 111 | }, 112 | { 113 | os_name => 'Snow Leopard', 114 | os_version => '10.6', 115 | perl_version => '5.10.0', 116 | }, 117 | { 118 | os_name => 'Leopard', 119 | os_version => '10.5', 120 | perl_version => '5.8.8', 121 | }, 122 | { 123 | os_name => 'Tiger', 124 | os_version => '10.4', 125 | perl_version => '5.8.6+patches', 126 | }, 127 | { 128 | os_name => 'Panther', 129 | os_version => '10.3', 130 | perl_version => '5.8.1-RC3+patches', 131 | }, 132 | { 133 | os_name => 'Jaguar', 134 | os_version => '10.2', 135 | perl_version => '5.6.0', 136 | }, 137 | { 138 | os_name => 'Puma', 139 | os_version => '10.1', 140 | perl_version => '5.6.0', 141 | }, 142 | { 143 | os_name => 'Cheetah', 144 | os_version => '10.0', 145 | perl_version => '5.6.0', 146 | }, 147 | ], 148 | } %] 149 | 150 |

    151 | To build from source (or build XS modules) you need to install 152 | a compiler which is available as part of "Command Line Tools for XCode", 153 | this can be installed on it's own, or from within Xcode, both of which are 154 | available from 155 | Apple Developer downloads (free registration required). 156 | Xcode can also be installed through the 157 | Mac App 158 | Store. 159 |

    160 | 161 | 162 | 163 | [% END %] 164 | -------------------------------------------------------------------------------- /src/ports/oses/openbsd.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'OpenBSD', 6 | 7 | # URL of the OS (e.g. http://www.microsoft.com/windows/) 8 | url => 'http://www.openbsd.org/', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => '', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => '', 15 | 16 | # When was this file last reviewed (yyyy-mm-dd)? 17 | information_last_verified => '2018-07-27', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS binary_view binary_source => [ 24 | { 25 | name => 'ActiveState', 26 | url => activestate_url, 27 | notes => '' 28 | }, 29 | ] 30 | %] 31 | 32 | [% PROCESS version_view os_versions => { 33 | versions => [ 34 | { 35 | os_name => '', 36 | os_version => '6.5', 37 | os_release => '2019-05-01', 38 | perl_version => '5.28.1', 39 | }, 40 | { 41 | os_name => '', 42 | os_version => '6.4', 43 | os_release => '2018-10-18', 44 | perl_version => '5.24.3', 45 | }, 46 | { 47 | os_name => '', 48 | os_version => '6.3', 49 | os_release => '2018-04-02', 50 | perl_version => '5.24.3', 51 | }, 52 | { 53 | os_name => '', 54 | os_version => '6.2', 55 | os_release => '2017-10-09', 56 | perl_version => '5.24.2', 57 | }, 58 | { 59 | os_name => '', 60 | os_version => '6.1', 61 | os_release => '2017-04-11', 62 | perl_version => '5.24.1', 63 | }, 64 | { 65 | os_name => '', 66 | os_version => '6.0', 67 | os_release => '2016-09-01', 68 | perl_version => '5.20.3', 69 | }, 70 | { 71 | os_name => '', 72 | os_version => '5.9', 73 | os_release => '2016-03-29', 74 | perl_version => '5.20.2', 75 | }, 76 | { 77 | os_name => '', 78 | os_version => '5.8', 79 | os_release => '2015-10-18', 80 | perl_version => '5.20.2', 81 | }, 82 | { 83 | os_name => '', 84 | os_version => '5.7', 85 | os_release => '2015-04-30', 86 | perl_version => '5.20.1', 87 | }, 88 | { 89 | os_name => '', 90 | os_version => '5.6', 91 | os_release => '2014-11-01', 92 | perl_version => '5.18.2', 93 | }, 94 | { 95 | os_name => '', 96 | os_version => '5.5', 97 | os_release => '2014-05-01', 98 | perl_version => '5.16.3', 99 | }, 100 | { 101 | os_name => '', 102 | os_version => '5.4', 103 | os_release => '2013-11-01', 104 | perl_version => '5.16.3', 105 | }, 106 | { 107 | os_name => '', 108 | os_version => '5.3', 109 | os_release => '2013-05-01', 110 | perl_version => '5.12.2', 111 | }, 112 | { 113 | os_name => '', 114 | os_version => '5.2', 115 | os_release => '2012-11-01', 116 | perl_version => '5.12.2', 117 | }, 118 | { 119 | os_name => '', 120 | os_version => '5.1', 121 | os_release => '2012-05-01', 122 | perl_version => '5.12.2', 123 | }, 124 | { 125 | os_name => '', 126 | os_version => '5.0', 127 | os_release => '2011-11-01', 128 | perl_version => '5.12.2', 129 | }, 130 | { 131 | os_name => '', 132 | os_version => '4.9', 133 | os_release => '2011-05-01', 134 | perl_version => '5.12.2', 135 | }, 136 | { 137 | os_name => '', 138 | os_version => '4.8', 139 | os_release => '2010-11-01', 140 | perl_version => '5.10.1', 141 | }, 142 | 143 | { 144 | os_name => '', 145 | os_version => '4.7', 146 | os_release => '2010-05-01', 147 | perl_version => '5.10.1', 148 | }, 149 | 150 | { 151 | os_name => '', 152 | os_version => '4.6', 153 | os_release => '2009-10-01', 154 | perl_version => '5.10.0', 155 | }, 156 | 157 | { 158 | os_name => '', 159 | os_version => '4.5', 160 | os_release => '2009-05-01', 161 | perl_version => '5.10.0', 162 | }, 163 | { 164 | os_name => '4', 165 | os_version => '4', 166 | os_release => '2006-11-01', 167 | perl_version => '5.8.8', 168 | }, 169 | 170 | 171 | ], 172 | } %] 173 | 174 | 175 | [% END %] 176 | -------------------------------------------------------------------------------- /src/ports/oses/redhat.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | name => 'Redhat', 5 | url => 'http://www.redhat.com/', 6 | vendor => 'Red Hat, Inc.', 7 | kernel => 'linux', 8 | information_last_verified => '2014-12-23', 9 | } 10 | %] 11 | 12 | [% BLOCK show_os %] 13 | 14 | 15 | [% PROCESS binary_view binary_source => [ 16 | { 17 | name => 'ActiveState', 18 | url => activestate_url, 19 | notes => '' 20 | }, 21 | 22 | ] 23 | %] 24 | 25 | [% PROCESS version_view os_versions => { 26 | versions => [ 27 | { 28 | os_name => '', 29 | os_version => '7', 30 | os_release => '2014-07-10', 31 | perl_version => '5.16.3', 32 | }, 33 | { 34 | os_name => '', 35 | os_version => '6', 36 | os_release => '2010-11-01', 37 | perl_version => '5.10.1', 38 | }, 39 | { 40 | os_name => '', 41 | os_version => '5', 42 | os_release => '2007-03-01', 43 | perl_version => '5.8.8', 44 | }, 45 | { 46 | os_name => '', 47 | os_version => '4', 48 | os_release => '2005-02-01', 49 | perl_version => '5.8.5', 50 | }, 51 | { 52 | os_name => '', 53 | os_version => '3', 54 | perl_version => '5.8.1 / 5.8.3', 55 | }, 56 | { 57 | os_name => '', 58 | os_version => '2.1', 59 | perl_version => '5.8.0 prerelease', 60 | }, 61 | 62 | ], 63 | } %] 64 | 65 | 66 | 67 | 68 | [% END %] 69 | -------------------------------------------------------------------------------- /src/ports/oses/slackware.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'Slackware', 6 | 7 | # URL of the OS (e.g. http://www.microsoft.com/windows/) 8 | url => 'http://www.slackware.com/', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => '', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => 'linux', 15 | 16 | # When was this file last reviewed (yyyy-mm-dd)? 17 | information_last_verified => '2011-03-26', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS binary_view binary_source => [ 24 | { 25 | name => 'ActiveState', 26 | url => activestate_url, 27 | notes => '' 28 | }, 29 | ] 30 | %] 31 | 32 | [% PROCESS version_view os_versions => { 33 | versions => [ 34 | { 35 | os_name => '', 36 | os_version => '13.1', 37 | os_release => '2010-05-01', 38 | perl_version => '5.10.1', 39 | }, 40 | 41 | { 42 | os_name => '', 43 | os_version => '13.0', 44 | os_release => '2009-08-01', 45 | perl_version => '5.10.0', 46 | }, 47 | 48 | { 49 | os_name => '', 50 | os_version => '12.2', 51 | os_release => '2008-12-01', 52 | perl_version => '5.10.0', 53 | }, 54 | 55 | { 56 | os_name => '', 57 | os_version => '12.1', 58 | os_release => '2008-05-01', 59 | perl_version => '5.8.8', 60 | }, 61 | 62 | { 63 | os_name => '', 64 | os_version => '12.0', 65 | os_release => '2007-07-01', 66 | perl_version => '5.8.8', 67 | }, 68 | 69 | { 70 | os_name => '', 71 | os_version => '11.0', 72 | os_release => '2006-10-01', 73 | perl_version => '5.8.8', 74 | }, 75 | 76 | { 77 | os_name => '', 78 | os_version => '10.2', 79 | os_release => '2005-09-01', 80 | perl_version => '5.8.7', 81 | }, 82 | 83 | { 84 | os_name => '', 85 | os_version => '9.1', 86 | os_release => '2003-09-01', 87 | perl_version => '5.8.0', 88 | }, 89 | 90 | { 91 | os_name => '', 92 | os_version => '9.0', 93 | os_release => '2003-03-01', 94 | perl_version => '5.8.0', 95 | }, 96 | 97 | { 98 | os_name => '', 99 | os_version => '8.1', 100 | os_release => '2002-06-01', 101 | perl_version => '5.6.1', 102 | }, 103 | 104 | { 105 | os_name => '', 106 | os_version => '3.3', 107 | os_release => '1997-06-01', 108 | perl_version => '5.004', 109 | }, 110 | 111 | 112 | { 113 | os_name => '', 114 | os_version => '1.1.2', 115 | os_release => '1994-02-01', 116 | perl_version => '4.0', 117 | }, 118 | 119 | 120 | ], 121 | } %] 122 | 123 | 124 | [% END %] -------------------------------------------------------------------------------- /src/ports/oses/solaris.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'Solaris', 6 | 7 | # URL of the OS (e.g. http://www.microsoft.com/windows/) 8 | url => '', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => '', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => '', 15 | 16 | # When was this file last reviewed (yyyy-mm-dd)? 17 | information_last_verified => '2011-03-26', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS binary_view binary_source => [ 24 | { 25 | name => 'ActiveState (commercial)', 26 | url => activestate_url, 27 | notes => '' 28 | }, 29 | { 30 | name => 'Sunfreeware', 31 | url => 'http://www.sunfreeware.com/', 32 | notes => '' 33 | } 34 | ] 35 | %] 36 | 37 | [% PROCESS version_view os_versions => { 38 | versions => [ 39 | { 40 | os_name => '', 41 | os_version => '11 Express', 42 | os_release => '2010-11-01', 43 | perl_version => '5.10.0, 5.8.4', 44 | }, 45 | 46 | { 47 | os_name => '', 48 | os_version => '10', 49 | os_release => '2010-09-01', 50 | perl_version => '5.8.4, 5.6.1', 51 | }, 52 | 53 | { 54 | os_name => '', 55 | os_version => '9', 56 | os_release => '', 57 | perl_version => '5.6.1', 58 | }, 59 | 60 | { 61 | os_name => '', 62 | os_version => '8', 63 | os_release => '', 64 | perl_version => '5.005_03', 65 | }, 66 | ], 67 | } %] 68 | 69 | 70 | [% END %] -------------------------------------------------------------------------------- /src/ports/oses/suse.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'OpenSUSE', 6 | 7 | # URL of the OS (e.g. http://www.microsoft.com/windows/) 8 | url => 'http://www.opensuse.org/', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => '', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => 'linux', 15 | 16 | # When was this file last reviewed (yyyy-mm-dd)? 17 | information_last_verified => '2011-03-26', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS binary_view binary_source => [ 24 | { 25 | name => 'ActiveState', 26 | url => activestate_url, 27 | notes => '' 28 | }, 29 | ] 30 | %] 31 | 32 | [% PROCESS version_view os_versions => { 33 | versions => [ 34 | 35 | # 2017-12-07 36 | { os_name => '', 37 | os_version => 'TumbleWeed', 38 | os_release => 'rolling', 39 | perl_version => '5.26.1', 40 | }, 41 | { os_name => '', 42 | os_version => 'Leap 15.0', 43 | os_release => '', 44 | perl_version => '5.26.1', 45 | }, 46 | { os_name => '', 47 | os_version => 'Leap 42.3', 48 | os_release => '2017-07-26', 49 | perl_version => '5.18.2', 50 | }, 51 | { os_name => '', 52 | os_version => 'Leap 42.2', 53 | os_release => '2016-11-16', 54 | perl_version => '5.18.2', 55 | }, 56 | { os_name => 'Malachite', 57 | os_version => 'Leap 42.1', 58 | os_release => '2015-11-04', 59 | perl_version => '5.18.2', 60 | }, 61 | { os_name => 'Harlequin', 62 | os_version => '13.2', 63 | os_release => '2014-11-04', 64 | perl_version => '5.20.1', 65 | }, 66 | { os_name => 'Bottle', 67 | os_version => '13.1', 68 | os_release => '2013-11-19', 69 | perl_version => '5.18.1', 70 | }, 71 | { os_name => 'Dartmouth', 72 | os_version => '12.3', 73 | os_release => '2013-03-13', 74 | perl_version => '5.16.2', 75 | }, 76 | { os_name => 'Mantis', 77 | os_version => '12.2', 78 | os_release => '2012-09-05', 79 | perl_version => '5.16.0', 80 | }, 81 | { os_name => 'Asparagus', 82 | os_version => '12.1', 83 | os_release => '2011-11-16', 84 | perl_version => '5.14.2', 85 | }, 86 | { os_name => 'Celadon', 87 | os_version => '11.4', 88 | os_release => '2011-03-01', 89 | perl_version => '5.12.3', 90 | }, 91 | { os_name => 'Teal', 92 | os_version => '11.3', 93 | os_release => '2010-07-15', 94 | perl_version => '5.12.1', 95 | }, 96 | { os_name => 'Emerald', 97 | os_version => '11.2', 98 | os_release => '2009-11-12', 99 | perl_version => '5.10.0', 100 | }, 101 | { os_name => '', 102 | os_version => '11.1', 103 | os_release => '2008-12-18', 104 | perl_version => '5.10.0', 105 | }, 106 | { os_name => '', 107 | os_version => '10.3', 108 | os_release => '2007-10-04', 109 | perl_version => '5.8.8', 110 | }, 111 | { os_name => 'Basilisk Lizard', 112 | os_version => '10.2', 113 | os_release => '2006-12-07', 114 | perl_version => '5.8.8', 115 | }, 116 | { os_name => 'Agama Lizard', 117 | os_version => '10.1', 118 | os_release => '2006-05-11', 119 | perl_version => '5.8.8', 120 | }, 121 | { os_name => 'Prague', 122 | os_version => '10.0', 123 | os_release => '2005-10-06', 124 | perl_version => '5.8.7', 125 | }, 126 | { os_name => '', 127 | os_version => '9.3', 128 | os_release => '2005-04-15', 129 | perl_version => '5.8.6', 130 | }, 131 | { os_name => '', 132 | os_version => '9.1', 133 | os_release => '2004-04-23', 134 | perl_version => '5.8.3', 135 | }, 136 | { os_name => '', 137 | os_version => '8.2', 138 | os_release => '2003-03-17', 139 | perl_version => '5.8.0', 140 | }, 141 | { os_name => '', 142 | os_version => '6.1', 143 | os_release => '1999-04-20', 144 | perl_version => '5.005_02', 145 | }, 146 | { os_name => '', 147 | os_version => '5.3', 148 | os_release => '1998-08-21', 149 | perl_version => '5.004_04', 150 | }, 151 | { os_name => '', 152 | os_version => '5.2', 153 | os_release => '1998-03-12', 154 | perl_version => '5.004_04', 155 | }, 156 | { os_name => '', 157 | os_version => '5.1', 158 | os_release => '1997-12-12', 159 | perl_version => '5.004_04', 160 | }, 161 | { os_name => '', 162 | os_version => 'SLE-12 SP3', 163 | os_release => '', 164 | perl_version => '5.18.2', 165 | }, 166 | { os_name => '', 167 | os_version => 'SLE-11 SP4', 168 | os_release => '', 169 | perl_version => '5.10.0', 170 | }, 171 | { os_name => '', 172 | os_version => 'SLE-11 SP3', 173 | os_release => '', 174 | perl_version => '5.10.0', 175 | }, 176 | { os_name => '', 177 | os_version => 'SLE-11 SP2', 178 | os_release => '', 179 | perl_version => '5.10.0', 180 | }, 181 | { os_name => '', 182 | os_version => 'SLE-11 SP1', 183 | os_release => '', 184 | perl_version => '5.10.0', 185 | }, 186 | { os_name => '', 187 | os_version => 'SLE-11', 188 | os_release => '', 189 | perl_version => '5.10.0', 190 | }, 191 | ], 192 | } %] 193 | 194 | 195 | [% END %] 196 | -------------------------------------------------------------------------------- /src/ports/oses/ubuntu.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | # Name of the OS 5 | name => 'Ubuntu', 6 | 7 | # URL of the OS (e.g. www.m) 8 | url => 'http://www.ubuntu.com/', 9 | 10 | # Is it a specific vendor who runs the OS? 11 | vendor => 'Canonical Ltd.', 12 | 13 | # Specifying linux will add a 'see also' 14 | kernel => 'linux', 15 | 16 | # When was this file last reviewed? 17 | information_last_verified => '2021-06-19', 18 | } 19 | %] 20 | 21 | [% BLOCK show_os %] 22 | 23 | [% PROCESS binary_view binary_source => [ 24 | { 25 | name => 'ActiveState', 26 | url => activestate_url, 27 | notes => '' 28 | }, 29 | ] 30 | %] 31 | 32 | [% PROCESS version_view os_versions => { 33 | versions => [ 34 | { 35 | os_name => 'Hirsute Hippo', 36 | os_version => '21.04', 37 | perl_version => '5.32.1' 38 | os_release => '2021-04-22', 39 | }, 40 | { 41 | os_name => 'Groovy Gorilla', 42 | os_version => '20.10', 43 | perl_version => '5.30.3' 44 | os_release => '2020-10-22', 45 | }, 46 | { 47 | os_name => 'Focal Fossa', 48 | os_version => '20.04', 49 | perl_version => '5.30.0' 50 | os_release => '2020-04-23', 51 | }, 52 | { 53 | os_name => 'Eoan Ermine', 54 | os_version => '19.10', 55 | perl_version => '5.28.1' 56 | os_release => '2019-10-17', 57 | }, 58 | { 59 | os_name => 'Disco Dingo', 60 | os_version => '19.04', 61 | perl_version => '5.28.1' 62 | os_release => '2019-04-18', 63 | }, 64 | { 65 | os_name => 'Cosmic Cuttlefish', 66 | os_version => '18.10', 67 | perl_version => '5.26.2' 68 | os_release => '2018-10-18', 69 | }, 70 | { 71 | os_name => 'Bionic Beaver', 72 | os_version => '18.04', 73 | perl_version => '5.26.1' 74 | os_release => '2018-04-26', 75 | }, 76 | { 77 | os_name => 'Artful Aardvark', 78 | os_version => '17.10', 79 | perl_version => '5.26.0' 80 | os_release => '2017-10-19', 81 | }, 82 | { 83 | os_name => 'Zesty Zapus', 84 | os_version => '17.04', 85 | perl_version => '5.24.1' 86 | os_release => '2017-04-13', 87 | }, 88 | { 89 | os_name => 'Yakkety Yak', 90 | os_version => '16.10', 91 | perl_version => '5.22.2' 92 | os_release => '2016-10-13', 93 | }, 94 | { 95 | os_name => 'Xenial Xerus', 96 | os_version => '16.04', 97 | perl_version => '5.22.1', 98 | os_release => '2016-04-21', 99 | }, 100 | { 101 | os_name => 'Wily Werewolf', 102 | os_version => '15.10', 103 | perl_version => '5.20.2', 104 | os_release => '2015-10-22', 105 | }, 106 | { 107 | os_name => 'Vivid Vervet', 108 | os_version => '15.04', 109 | perl_version => '5.20.2', 110 | os_release => '2015-04-23', 111 | }, 112 | { 113 | os_name => 'Utopic Unicorn', 114 | os_version => '14.10', 115 | perl_version => '5.20.1', 116 | os_release => '2014-10-23', 117 | }, 118 | { 119 | os_name => 'Trusty Tahr', 120 | os_version => '14.04LTS', 121 | perl_version => '5.18.2', 122 | os_release => '2014-04-17', 123 | }, 124 | { 125 | os_name => 'Precise Pangolin', 126 | os_version => '12.04LTS', 127 | perl_version => '5.14.2', 128 | os_release => '2012-04-26', 129 | }, 130 | { 131 | os_name => 'Lucid Lynx', 132 | os_version => '10.04LTS', 133 | perl_version => '5.10.1', 134 | }, 135 | { 136 | os_name => 'Karmic Koala', 137 | os_version => '9.10', 138 | perl_version => '5.10.0', 139 | }, 140 | { 141 | os_name => 'Hardy', 142 | os_version => '8.04LTS', 143 | perl_version => '5.8.8', 144 | }, 145 | { 146 | os_name => 'Dapper', 147 | os_version => '6.06LTS', 148 | perl_version => '5.8.7', 149 | }, 150 | 151 | ], 152 | } %] 153 | 154 | [% END %] 155 | -------------------------------------------------------------------------------- /src/ports/oses/win32.tt_data: -------------------------------------------------------------------------------- 1 | [% 2 | # Setup information 3 | os_config = { 4 | name => 'Windows', 5 | url => 'http://www.microsoft.com/windows/', 6 | vendor => 'Microsoft', 7 | not_included_in_os_packages => 1, 8 | information_last_verified => '2011-03-26', 9 | 10 | } 11 | %] 12 | 13 | [% BLOCK show_os %] 14 |

    15 | Windows does not come with Perl by default. 16 |

    17 | 18 | [% PROCESS binary_view binary_source => [ 19 | { 20 | name => 'Strawberry Perl', 21 | url => 'http://strawberryperl.com/', 22 | notes => '' 23 | }, 24 | { 25 | name => 'ActiveState', 26 | url => activestate_url, 27 | notes => '' 28 | }, 29 | 30 | ] 31 | %] 32 |
    33 | 34 | 35 | [% END %] -------------------------------------------------------------------------------- /src/robots.txt: -------------------------------------------------------------------------------- 1 | # Hello Robots! 2 | # Welcome to CPAN. 3 | 4 | User-agent: * 5 | Disallow: /badrobot/ 6 | 7 | User-Agent: The Knowledge AI 8 | Disallow: / 9 | -------------------------------------------------------------------------------- /src/src/README.html: -------------------------------------------------------------------------------- 1 | [% 2 | page.import({ 3 | title => "Perl Source", 4 | section => 'source', 5 | stub => '../', 6 | canonical => 'src/index.html', 7 | }); 8 | %] 9 | 10 |

    Perl Source

    11 | 12 |

    13 | Perl compiles on over 100 platforms, if you 15 | want to install from a binary instead see the ports page (especially for Windows). 17 |

    18 | 19 | [% TRY %] 20 |

    21 | How to install from source 22 |

    23 | [% latest_data = INSERT perl_version_latest_stable.json %] 24 | [% latest = JSON.json_decode(latest_data) %] 25 |
     26 |      wget [% latest.url %]
     27 |      tar -xzf [% latest.zip_file %]
     28 |      cd [% latest.distvname %]
     29 |      ./Configure -des -Dprefix=$HOME/localperl
     30 |      make
     31 |      make test
     32 |      make install
     33 | 
    34 |

    35 | Read both INSTALL and README.yoursystem in 36 | the [% latest.distvname %] directory for more detailed information. 37 |

    38 | 39 | [% CATCH %] 40 | [% END %] 41 | 42 | 43 | [% TRY %] 44 |

    Latest releases in each branch of Perl

    45 | [% json_data = INSERT perl_versions_latest.json %] 46 | [% versions = JSON.json_decode(json_data) %] 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | [% FOREACH release = versions %] 56 | 57 | 58 | 68 | 69 | 70 | 71 | [% just_seen_latest = 1 IF release.latest %] 72 | [% END %] 73 |
    MajorVersionTypeReleasedDownload
    [% release.version_major %].[% release.version_minor %][% release.version_major %].[% release.version_minor %].[% release.version_iota %] 59 | [% IF release.type != 'Maint'; 60 | release.type; 61 | ELSIF just_seen_latest; 62 | 'Maint'; 63 | just_seen_latest = 0; 64 | ELSE; 65 | release.latest ? 'Maint' : 'End of life'; 66 | END; 67 | %][% release.released_date %][% release.zip_file %]
    74 | [% CATCH %] 75 | [% END %] 76 | 77 | 78 | 79 |

    80 | Perl History 81 |

    82 |

    83 | If you want to help out developing new releases of Perl visit the development site and join the 85 | perl5-porters mailing list. 86 |

    87 | 88 |

    89 | Version scheme 90 |

    91 |

    92 | Perl has used the following policy since the 5.6 release 94 | of Perl: 95 |

    96 | 109 |

    110 | Please note that branches earlier than 5.20 are no longer supported, though 111 | fixes for urgent issues, for example severe security problems, may 112 | still be issued. 113 |

    114 |

    115 | Note: please avoid referring to the "symbolic" source releases like 116 | "stable" and "latest", or "maint" and "devel". They are still used here but 117 | only for backward compatibility. The symbolic names were found to cause 118 | more confusion than they are worth because they don't really work with 119 | multiple branches, especially not with multiple maintenance branches, and 120 | especially the "latest" makes absolutely no sense. The "latest" and 121 | "stable" are now just aliases for "maint", and "maint" in turn is the 122 | maintenance branch with the largest release number. 123 |

    124 | 125 | [% TRY %] 126 |

    First release in each branch of Perl

    127 | [% json_data = INSERT perl_versions_earliest.json %] 128 | [% versions = JSON.json_decode(json_data) %] 129 | 130 | 131 | 132 | 133 | 134 | 135 | [% FOREACH release = versions %] 136 | 137 | 138 | 139 | 141 | 142 | [% END %] 143 |
    MajorVersionReleased
    [% release.version_major %].[% release.version_minor %][% release.version_major %].[% release.version_minor %].[% release.version_iota %] 140 | [% release.released_date %]
    144 | [% CATCH %] 145 | [% END %] 146 | 147 |

    148 | 149 |

    150 | Other files and directories (mostly for posterity) 151 |

    152 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | -------------------------------------------------------------------------------- /src/src/misc/README: -------------------------------------------------------------------------------- 1 | CPAN/src/misc/README 2 | 3 | This document describes the src/misc subdirectory of the CPAN. 4 | 5 | The directory contains sources possibly relevant to Perl. 6 | 7 | --- 8 | 9 | anlpasswd* a passwd(1) replacement using Perl 10 | (checks passwords proactively using dictionaries and patterns) 11 | 12 | db* Berkeley DB sources for use with 13 | the Perl 5 database extensions 14 | 15 | gdbm* GNU dbm sources for use with 16 | the Perl 5 database extensions 17 | 18 | nvi* new vi with embedded Perl (among other things) 19 | 20 | perl-byacc* Berkeley Yacc that can output grammars in Perl 4 21 | 22 | perl5-byacc* Berkeley Yacc that can output grammars in Perl 5 23 | 24 | sfio* stdio replacement from AT&T. 25 | Stackable stream disciplines and other cool stuff. 26 | 27 | # eof 28 | -------------------------------------------------------------------------------- /tt.rc: -------------------------------------------------------------------------------- 1 | ignore = \.svn 2 | ignore = ^# 3 | ignore = ~$ 4 | ignore = .DS_Store 5 | ignore = \.tt$ 6 | ignore = \.swp$ 7 | 8 | depend_file = dependencies.rc 9 | 10 | copy = \.(gif|png|pdf|jpg|svg)$ 11 | 12 | #verbose 13 | 14 | recurse 15 | 16 | pre_process = tpl/defaults 17 | process = tpl/wrapper 18 | 19 | dest = html 20 | lib = lib 21 | lib = data 22 | --------------------------------------------------------------------------------