├── .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 |
32 |
33 |
36 |
37 |
38 |
41 | Comprehensive Perl Archive Network39 |[% INCLUDE tpl/straps.html %] 40 | |
42 |
45 |
46 |
56 |
61 |
62 | |
63 |
54 |
55 |
66 |
67 |
68 | [% content %]
69 |
70 | |
71 |
74 | | 96 | 82 | 83 | [% UNLESS page.skip_master_mirror %] 84 | 92 | [% END %] 93 | 94 | 95 |
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 |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 |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 |13 | Here are some recommended approaches to installing modules from CPAN, as 14 | with much of Perl there are several alternatives. 15 |
16 | 17 |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 |
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 |
45 | cpan App::cpanminus 46 |47 |
48 | Now install any module you can find. 49 |
50 |51 | cpanm Module::Name 52 |53 | 54 |
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 |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 |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 |150 | Install 'make' through your package manager. You can then 151 | use all of the tools mentioned above. 152 |
153 | 154 |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 |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 |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 |
23 |
|
29 | [% END %]
30 |
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 |27 | There are several methods you can use, see the Installing Perl Modules page. 29 |
30 |
33 | 34 | How to find modules 35 |36 |
|
62 |
63 | 64 | How to contribute 65 |66 |
74 | Other useful sites 75 |76 |
|
88 |
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 |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 |
14 | 15 | Perl Core and Module Documentation 16 |17 |
30 | Command line 31 |32 |
|
46 |
47 | 48 | FAQs 49 |50 | 58 |59 | Other useful sites 60 |61 |
|
74 |
72 | Welcome to CPAN73 |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 via83 | 84 |
|
89 |
90 |
91 |
92 |
99 | Recent Uploads93 | [% PROCESS rss_feed, conf => { 94 | json_file => "recent.json", 95 | max => 10, 96 | }, rss_footer = ' |
100 |
101 |
102 | Getting Started103 |
109 | How to contribute 110 |111 |
Perl Resources120 |
|
127 |
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 |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 |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 |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 |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 |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 |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 |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 |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 |428 | For these platforms a binary release may be the easiest path. 429 |
430 |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 |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 |492 | Each time a module is installed on your system, it appends 493 | information like the following to a file called 494 | perllocal.pod which can be found in 495 | /usr/local/lib/perl5/version number/architecture/ or 496 | something akin to that. The path for your specific installation is 497 | in your @INC which you can divine with perl -V. 498 |
499 |500 | =head2 Wed May 12 13:42:53 1999: C<Module> L<Data::Dumper> 501 | 502 | =over 4 503 | 504 | =item * 505 | 506 | C<installed into: /usr/local/lib/perl5/5.00503> 507 | 508 | =item * 509 | 510 | C<LINKTYPE: dynamic> 511 | 512 | =item * 513 | 514 | C<VERSION: 2.101> 515 | 516 | =item * 517 | 518 | C<EXE_FILES: > 519 | 520 | =back 521 |522 |
523 | Each entry includes the Module name, date and time it was 524 | installed, where it was installed, linktype [ static or dynamic ], 525 | version and executables, if any, included with the module. 526 |
527 |530 | C:\>ppm query 531 | Archive-Tar [0.072 ] module for manipulation of tar archives. 532 | Compress-Zlib [1.03 ] Interface to zlib compression library 533 | DBI [1.13 ] Database independent interface for Perl 534 | GD [1.25 ] Interface to Gd Graphics Library 535 | HTML-Parser [2.23 ] SGML parser class 536 | MIME-Base64 [2.11 ] Encoding and decoding of base64 strings 537 | PPM [1.1.4 ] Perl Package Manager: locate, install, upgrade software 538 |539 |
545 | This is pmtools -- a suite of small programs to help manage modules. 546 | The names are totally preliminary, and in fact, so is the code. We follow 547 | the "keep it small" notion of many tiny tools each doing one thing well, 548 | eschewing giant megatools with millions of options. 549 |550 |
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 |623 | Any of these should be good for your daily feed of new modules. 624 |
625 |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 |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 |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 |
723 | Yes, Perl comes with a number of useful modules and are listed in the 724 | perlmodlib pod: 725 |
726 |756 | The Perl FAQ is included with the Perl source code distribution. 757 |
758 |826 | There are quite a few mailing lists with a broad range of topics. 827 |
828 |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 |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 |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 |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 |
932 | By using a CPAN search engine.
933 |
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 |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 |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 |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 |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 |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 |
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 |
1045 | Type perl -v
at the command line to find out.
1046 |
1051 | Look at https://www.perl.org/ 1052 | to find out. If you are not using the latest released version, 1053 | please try to replicate your bug on the latest stable release. 1054 |
1055 |1056 | Note that reports about bugs in old versions of Perl, especially 1057 | those which indicate you haven't also tested the current stable 1058 | release of Perl, are likely to receive less attention from the 1059 | volunteers who build and maintain Perl than reports about bugs in 1060 | the current release. 1061 |
1062 |1066 | A significant number of the bug reports we get turn out to be 1067 | documented features in Perl. Make sure the issue you've run into 1068 | isn't intentional by glancing through the documentation that comes 1069 | with the Perl distribution. 1070 |
1071 |1072 | Given the sheer volume of Perl documentation, this isn't a trivial 1073 | undertaking, but if you can point to documentation that suggests 1074 | the behaviour you're seeing is wrong, your issue is likely 1075 | to receive more attention. You may want to start with 1076 | perldoc perltrap for pointers to 1078 | common traps that new (and experienced) Perl programmers run into. 1079 |
1080 |1081 | If you're unsure of the meaning of an error message you've run 1082 | across, perldoc perldiag for an 1084 | explanation. If the message isn't in perldiag, it probably isn't 1085 | generated by Perl. You may have luck consulting your operating 1086 | system documentation instead. 1087 |
1088 |1089 | If you are on a non-UNIX platform perldoc perlport, as some features 1091 | may be unimplemented or work differently. 1092 |
1093 |1094 | You may be able to figure out what's going wrong using the Perl 1095 | debugger. For information about how to use the debugger 1096 | perldoc perldebug. 1098 |
1099 |1103 | The easier it is to reproduce your bug, the more likely it will be 1104 | fixed -- if nobody can duplicate your problem, it probably won't be 1105 | addressed. 1106 |
1107 |1108 | A good test case has most of these attributes: short, simple code; 1109 | few dependencies on external commands, modules, or libraries; no 1110 | platform-dependent code (unless it's a platform-specific bug); 1111 | clear, simple documentation. 1112 |
1113 |1114 | A good test case is almost always a good candidate to be included 1115 | in Perl's test suite. If you have the time, consider writing your 1116 | test case so that it can be easily included into the standard test 1117 | suite. 1118 |
1119 |1123 | Be sure to include the exact error messages, if any. "Perl 1124 | gave an error" is not an exact error message. 1125 |
1126 |1127 | If you get a core dump (or equivalent), you may use a debugger 1128 | (dbx, gdb, etc) to produce a stack trace to include 1129 | in the bug report. 1130 |
1131 |1132 | NOTE: unless your Perl has been compiled with debug info (often 1133 | -g), the stack trace is likely to be somewhat hard to use 1134 | because it will most probably contain only the function names and 1135 | not their arguments. If possible, recompile your Perl with debug 1136 | info and reproduce the crash and the stack trace. 1137 |
1138 |1142 | The easier it is to understand a reproducible bug, the more likely 1143 | it will be fixed. Any insight you can provide into the problem will 1144 | help a great deal. In other words, try to analyze the problem (to 1145 | the extent you can) and report your discoveries. 1146 |
1147 |
1151 | If so, that's great news; bug reports with patches are likely to
1152 | receive significantly more attention and interest than those
1153 | without patches. Please submit your patch via the GitHub Pull
1154 | Request workflow as described in perldoc perlhack. You may also send
1156 | patches to perl5-porters@perl.org. When sending a patch,
1157 | create it using git format-patch
if possible, though a
1158 | unified diff created with diff -pu
will do nearly as
1159 | well.
1160 |
1162 | Your patch may be returned with requests for changes, or requests 1163 | for more detailed explanations about your fix. 1164 |
1165 |1166 | Here are a few hints for creating high-quality patches: 1167 |
1168 |
1169 | Make sure the patch is not reversed (the first argument to diff is
1170 | typically the original file, the second argument your changed
1171 | file). Make sure you test your patch by applying it with git
1172 | am
or the patch
program before you send it on
1173 | its way. Try to follow the same style as the code you are trying to
1174 | patch. Make sure your patch really does work (make
1175 | test
, if the thing you're patching is covered by Perl's test
1176 | suite).
1177 |
perlbug
to submit a thank-you note?
1181 |
1182 | Yes, you can do this by either using the -T
option, or
1183 | by invoking the program as perlthanks
. Thank-you notes
1184 | are good. It makes people smile.
1185 |
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 |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 |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 |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 |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 |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 |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 |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 |24 | There are several ways to mirror CPAN depending upon what you want to 25 | achieve. 26 |
27 | 28 |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 |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 |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 |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 |
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 |
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 |
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 |
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 |
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 | 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 |OS Name / version | Default 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 | |
32 | [% version.perl_version %] | 33 |
69 |
See also [% os_config.kernel | ucfirst %]
86 | [% END %] 87 |Last updated: [% os_config.information_last_verified || 'unknown' %]
88 |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 |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/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 |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 |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 |
Major | 50 |Version | 51 |Type | 52 |Released | 53 |Download | 54 |
---|---|---|---|---|
[% release.version_major %].[% release.version_minor %] | 58 |[% 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 | %] | 68 |[% release.released_date %] | 69 |[% release.zip_file %] | 70 |
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 |92 | Perl has used the following policy since the 5.6 release 94 | of Perl: 95 |
96 |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 |Major | 132 |Version | 133 |Released | 134 |
---|---|---|
[% release.version_major %].[% release.version_minor %] | 139 |[% release.version_major %].[% release.version_minor %].[% release.version_iota %] 140 | | [% release.released_date %] | 141 |
156 | Source archives for all releases of perl5. You should only need to 157 | look here if you have an application which, for some reason or 158 | another, does not run with the current release of perl5. Be aware 159 | that only 5.004 and later versions of perl are maintained. If you 160 | report a genuine bug in such a version, you will probably be 161 | informed either that it is fixed in the current maintenance 162 | release, or will be fixed in a subsequent one. If you report a bug 163 | in an unmaintained version, you are likely to be advised to upgrade 164 | to a maintained version which fixes the bug, or to await a fix in a 165 | maintained version. No fix will be provided for the unmaintained 166 | version. 167 |
168 |171 | Perl 6 or Parrot are not yet in CPAN. In the meanwhile, try 172 | here or here. 174 |
175 |179 | Path to patch files needed to adapt particular perl releases for 180 | use with Japanese character sets. 181 |
182 |186 | Discussion of the meanings of the endings of filenames (.gz, .ZIP 187 | and so on). Read this file if you want to know how to handle a 188 | source code archive after you've downloaded it. 189 |
190 |194 | This file. 195 |
196 |200 | Third-party and other add-on source packages needed in order to 201 | build certain perl configurations. You do not need any of this 202 | stuff to build a default configuration. 203 |
204 |207 | Source code archives for several recent production releases of 208 | perl. 209 |
210 |214 | This is where we hid the source for perl4, which was superseded by 215 | perl5 years ago. We would really much rather that you didn't use 216 | it. It is definitely obsolete and has security and other bugs. And, 217 | since it's unsupported, it will continue to have them. 218 |
219 |223 | Files relevant to the security problem found in 'suidperl' in 224 | August 2000, reported in the bugtraq mailing list. The problem was 225 | found in all Perl release branches: 5.6, 5.005, and 5.004. The 226 | 5.6.1 release has a fix for this, as have the 5.8 releases. The 227 | (now obsolete) development branch 5.7 was unaffected, except for 228 | very early (pre-5.7.0) developer-only snapshots. The bug affects 229 | you only if you use an executable called 'suidperl', not if you use 230 | 'perl', and it is very likely only to affect UNIX platforms, and 231 | even more precisely, as of March 2001, the only platforms known to 232 | be affected are Linux platforms (all of them, as far as we know). 234 | The 'suidperl' is an optional component which is not installed, or 235 | even built, by default. These files will help you in the case you 236 | compile Perl yourself from the source and you want to close the 237 | security hole. 238 |
239 |249 | Files relevant to the CERT Advisory CA-97.17.sperl, a security 250 | problem found in 'suidperl' back in 1997. The problem was found 251 | both in Perl 4.036 (the final) (and last) release of Perl 4 and in 252 | early versions of Perl 5 (pre-5.003). The bug affects you only if 253 | you use an executable called 'suidperl', not if you use 'perl', and 254 | it is very likely only to affect UNIX platform. The 'suidperl' is 255 | an optional component which is not installed, or even built, by 256 | default. These files will help you in the (very unlikely) case you 257 | need to use (the obsolete and unsupported) Perl 4 or the early Perl 258 | 5s, Perl releases newer than Perl 5.003 do not have this 259 | security problem. 260 |
261 |