[MacPorts] howto/cpan2port added

MacPorts noreply at macports.org
Tue Jul 20 13:47:32 PDT 2010

Added page "howto/cpan2port" by rs at macports.spam.futz.org from*
Page URL: <http://trac.macports.org/wiki/howto/cpan2port>
[wiki:howto <- Back to the HOWTO section]

= TODO: title =

 * Audience: Perl users
 * Requires: MacPorts >=TODO

== Introduction ==

When you find you need a Perl modules from CPAN that does not yet have a MacPorts port, cpan2port can help you create a port file.

=== Step 1: '''Set up cpan client''' ===

You must have a properly configured cpan client for cpan2port to work.
You can either step throught the questions, or let it auto-configure.
$ cpan
CPAN is the world-wide archive of perl resources. It consists of about
Would you like me to configure as much as possible automatically? [yes] ''yes''
cpan shell -- CPAN exploration and modules installation (v1.9301)
ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?)

cpan[1]> ^D
=== Step 2: '''Find the CPAN package name''' ===
$ perl -MCPAN -e shell
cpan[1]> m Date::Parse
Module id = Date::Parse
   DESCRIPTION  ASCII Date parser using regexp's
   CPAN_USERID  GBARR (Graham Barr <gbarr at pobox.com>)
   CPAN_FILE    G/GB/GBARR/TimeDate-1.20.tar.gz
   DSLIP_STATUS Rdpf? (released,developer,perl,functions,)
   MANPAGE      Date::Parse - Parse date strings into time values
   INST_FILE    /opt/local/lib/perl5/vendor_perl/5.8.9/Date/Parse.pm

So you want the TimeDate module.

=== Step 3: '''Check that port is not available''' ===

Perl modules have names of the form p5-modulename.

$ port search p5-timedate

This particular port actually is available, but we'll pretend it isn't.

=== Step 4: '''Create MacPorts directory ===

$ mkdir ~/macports
$ cd ~/macports
$ curl http://trac.macports.org/export/69899/contrib/cpan2port/cpan2port > cpan2port
$ chmod u+x cpan2port

=== Step 5: '''Create the port file''' ===
$ ./cpan2port -t Date::Parse
trying to find dist in /Users/dtls/.cpan/build/TimeDate-1.20*
md5: 7da7452bce4c684e4238e6d09b390200
rmd160: 513094a2d2fb3678c1ad893abc28c94d344ec7b8
sha1: 6394cd243e05c3c2073fa73348a4ad90d8d5963e
creating perl/p5-timedate/Portfile

=== Step 6: '''Build the port''' ===
First you can review the portfile:
$ cd perl/p5-timedate
$ cat Portfile
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id$

PortSystem      1.0
PortGroup       perl5 1.0

perl5.setup     TimeDate 1.20
platforms       darwin
maintainers     cpan2port
description     ASCII Date parser using regexp's
extract.suffix  .tar.gz
master_sites    http://search.cpan.org/CPAN/authors/id/G/GB/GBARR
checksums sha1 6394cd243e05c3c2073fa73348a4ad90d8d5963e md5 7da7452bce4c684e4238e6d09b390200 rmd160 513094a2d2fb3678c1ad893abc28c94d344ec7b8

The build it:
$ port build
Warning: MacPorts running without privileges. You may be unable to complete certain actions (e.g. install).
--->  Computing dependencies for p5-timedate
--->  Fetching p5-timedate
--->  Attempting to fetch TimeDate-1.20.tar.gz from http://distfiles.macports.org/perl5
--->  Attempting to fetch TimeDate-1.20.tar.gz from http://lil.fr.distfiles.macports.org/perl5
--->  Attempting to fetch TimeDate-1.20.tar.gz from http://aarnet.au.distfiles.macports.org/pub/macports/mpdistfiles/perl5
--->  Attempting to fetch TimeDate-1.20.tar.gz from http://search.cpan.org/CPAN/authors/id/G/GB/GBARR
--->  Verifying checksum(s) for p5-timedate
--->  Extracting p5-timedate
--->  Configuring p5-timedate
--->  Building p5-timedate

=== Step 7: '''Read up on local port repositories''' ===



[wiki:howto <- Back to the HOWTO section]

* The IP shown here might not mean anything if the user or the server is
behind a proxy.

MacPorts <http://www.macports.org/>
Ports system for Mac OS

This is an automated message. Someone at http://www.macports.org/ added your email
address to be notified of changes on howto/cpan2port. If it was not you, please
report to .

More information about the macports-changes mailing list