Talk:Perl package guidelines
Appearance
Latest comment: 23 June by Ryoskzypu in topic Stricter versions for XS module packages
Hardened Example
I have created template file for vim file_templates.vba:
~/.vim/templates/perl.PKGBUILD
pkgname=perl-<+$LBASENAME$+>
pkgver=<+#VERSION#+>
_author=<+#AUTHOR_NAME#+>
_perlmod=<+$BASENAME$+>
pkgrel=1
pkgdesc='<+#DESCRIPTION#+>'
arch=('any')
url="http://search.cpan.org/dist/<+$BASENAME$+>/"
license=('GPL' 'PerlArtistic')
groups=()
depends=('perl>=5.10.0')
makedepends=()
provides=()
conflicts=()
replaces=()
backup=()
options=(!emptydirs)
install=
source=("http://search.cpan.org/CPAN/authors/id/$_author/$_perlmod-$pkgver.tar.gz")
noextract=()
build(){
cd "$srcdir"/$_perlmod-$pkgver
# Setting these env variables overwrites any command-line-options we don't want...
export PERL_MM_USE_DEFAULT=1 PERL_AUTOINSTALL=--skipdeps \
PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
MODULEBUILDRC=/dev/null
# If using Makefile.PL
if [ -r Makefile.PL ]; then
/usr/bin/perl Makefile.PL
make
# If using Build.PL
elif [ -r Build.PL ]; then
/usr/bin/perl Build.PL
perl Build
fi
}
check(){
cd "$srcdir"/$_perlmod-$pkgver
# If using Makefile.PL
if [ -r Makefile.PL ]; then
make test
# If using Build.PL
elif [ -r Build.PL ]; then
perl Build test
fi
}
package(){
cd "$srcdir"/$_perlmod-$pkgver
# If using Makefile.PL
if [ -r Makefile.PL ]; then
make install
# If using Build.PL
elif [ -r Build.PL ]; then
perl Build install
fi
# remove perllocal.pod and .packlist
find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
}
--Dracorp (talk) 18:14, 13 March 2013 (UTC)
Stricter versions for XS module packages
Since XS modules only work with a given major version of Perl, I have taken to limiting my packages' required Perl version to within a single major version, like so:
depends=('perl>=5.20.0' 'perl<5.21.0')
Would this be a good idea to add to this page?
--Hoelzro
- I'm not sure. I think this only matters for AUR since official Perl pkgs are typically rebuilt with major Perl releases, and now the perl pkg includes a pacman hook that warns when installed Perl modules may need rebuilding. The drawback is that it only warns after the breakage occurs, whereas version locking might prevent it beforehand. --Ryoskzypu (talk) 11:45, 23 June 2026 (UTC)
Add cpan2arch in Automation
I'm announcing cpan2arch here before adding it myself and doing a shameless self-promotion :). If this isn't a good idea, please let me know.
cpan2arch generates PKGBUILD from CPAN metadata and it follows Perl package guidelines. See https://bbs.archlinux.org/viewtopic.php?id=313589 for the rationale.