Perl package guidelines

From ArchWiki
Revision as of 15:23, 12 September 2007 by Firmicus (Talk | contribs) (Initial draft of article)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Tango-document-new.pngThis article is a stub.Tango-document-new.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Perl package guidelines#)

There are basically two types of “distributions” on CPAN: those that rely on Makefile.PL and those that use Build.PL. Here are random examples for both types.

Example PKGBUILD for packages with Makefile.PL

# Contributor:  Your Name <your_email@foobar.org>
pkgname=perl-dbd-pg
pkgver=1.49
pkgrel=1
pkgdesc="Postgres Driver for DBI"
url="http://search.cpan.org/~DBDPG/DBD-Pg"
depends=('perl-dbi>=1.45')
license="GPL"
options=('!emptydirs')
arch=('i686' 'x86_64')
source=(http://www.cpan.org/authors/id/D/DB/DBDPG/DBD-Pg-$pkgver.tar.gz) 
md5sums=('76b9d6a2f4cbaefcba23380f83998215')

build() {
  cd  $startdir/src/DBD-Pg-$pkgver
  eval `perl -V:archname`
  /usr/bin/perl Makefile.PL \
      INSTALLARCHLIB=/usr/lib/perl5/current/${archname} \
      INSTALLSITELIB=/usr/lib/perl5/site_perl/current \
      INSTALLSITEARCH=/usr/lib/perl5/site_perl/current/${archname}
  /usr/bin/make || return 1
  /usr/bin/make DESTDIR=$startdir/pkg install
  /usr/bin/find $startdir/pkg -name '.packlist' -exec rm  '{}' \;
  /usr/bin/find $startdir/pkg -name '*.pod' -exec rm  '{}' \;
}


Example PKGBUILD for packages with Build.PL

# Contributor:  Your Name <your_email@foobar.org>
pkgname=perl-string-random
pkgver=0.22
pkgrel=1
pkgdesc="Generate random strings"
url="http://search.cpan.org/~STEVE/String-Random"
makedepends=('perl-module-build')
license="GPL"
options=('!emptydirs')
arch=('i686' 'x86_64')
source=(http://www.cpan.org/authors/id/S/ST/STEVE/String-Random-$pkgver.tar.gz) 
md5sums=('c0319f95c56450624cc646f7425e327e')

build() {
  cd  $startdir/src/String-Random-$pkgver
  eval `perl -V:archname`
  perl Build.PL destdir=$startdir/pkg \
       --install_path lib=/usr/lib/perl5/site_perl/current \
       --install_path arch=/usr/lib/perl5/site_perl/current/${archname}
  ./Build
  ./Build install
  /usr/bin/find $startdir/pkg -name '.packlist' -exec rm  '{}' \;
  /usr/bin/find $startdir/pkg -name '*.pod' -exec rm  '{}' \;
}