On Mon, May 6, 2013 at 12:50 AM, Allan McRae <allan@archlinux.org> wrote:
On 03/05/13 04:55, Florian Pritz wrote:
This allows for somewhat easy templating for PKGBUILDs.
Signed-off-by: Florian Pritz <bluewind@xinu.at> ---
v4: - added support for "-" to --input and --output (stdin/stdout) - adapted manpage and fixed ordering of the arguments to the example diff call - lots of code suggestion + fixes by Andrew
+ _distdir="${_distname}-${pkgver}" + url="https://metacpan.org/release/${_distname}" + + build() { + export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \ + PERL_AUTOINSTALL=--skipdeps \ + PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \ + PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
Do you really require $pkgdir to be used during build... Not a great practise given who know what it is set to in split-packages (well, I know... but the point stands!)
The $pkgdir are not required here. I did that change for all the perl packages in the repos. Just add a DESTDIR="$pkgdir" in the make install line and you're all set. Setting these other variables are also not necessary. The vendor install dir can go in in perl line: build() { cd Log-Log4perl-$pkgver perl Makefile.PL INSTALLDIRS=vendor make } I am not a perl expert but I did these changes to many perl packages. They built fine and no one complained that they were broken.
+ MODULEBUILDRC=/dev/null + + cd "$srcdir/$_distdir" + /usr/bin/perl Makefile.PL
Why full path?
+ make + } + + check() { + export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
I believe that export is not needed.
+ cd "$srcdir/$_distdir" + make test + } + + package() { + cd "$srcdir/$_distdir" + make DESTDIR="$pkgdir" install + find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
The find line is not needed. This is done automatically by makepkg.
+ } + # template end; + + + +See Also +-------- +linkman:makepkg[8], linkman:PKGBUILD[5] + +include::footer.txt[] diff --git a/scripts/.gitignore b/scripts/.gitignore index 9e403bf..26e088b 100644 --- a/scripts/.gitignore +++ b/scripts/.gitignore @@ -1,4 +1,5 @@ makepkg +makepkg-template pacman-db-upgrade pacman-key pacman-optimize diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 784b180..1f3bae2 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -5,6 +5,7 @@ SUBDIRS = po
bin_SCRIPTS = \ $(OURSCRIPTS) \ + makepkg-template \ repo-remove \ repo-elephant
@@ -18,6 +19,7 @@ OURSCRIPTS = \
EXTRA_DIST = \ makepkg.sh.in \ + makepkg-template.pl.in \ pacman-db-upgrade.sh.in \ pacman-key.sh.in \ pacman-optimize.sh.in \ @@ -54,6 +56,7 @@ edit = sed \ -e 's|@PACKAGE_BUGREPORT[@]|$(PACKAGE_BUGREPORT)|g' \ -e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \ -e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \ + -e 's|@TEMPLATE_DIR[@]|$(TEMPLATE_DIR)|g' \ -e 's|@DEBUGSUFFIX[@]|$(DEBUGSUFFIX)|g' \ -e "s|@INODECMD[@]|$(INODECMD)|g" \ -e 's|@SIZECMD[@]|$(SIZECMD)|g' \ @@ -76,6 +79,14 @@ makepkg: \ $(srcdir)/makepkg.sh.in \ $(srcdir)/library/parseopts.sh
+makepkg-template: \ + $(srcdir)/makepkg-template.pl.in \ + Makefile + + $(AM_V_at)$(RM) -f makepkg-template + $(AM_V_GEN)$(edit) $< > $@ + $(AM_V_at)chmod +x,a-w $@ + pacman-db-upgrade: \ $(srcdir)/pacman-db-upgrade.sh.in \ $(srcdir)/library/output_format.sh diff --git a/scripts/makepkg-template.pl.in b/scripts/ makepkg-template.pl.in new file mode 100755
I can comment on the perl. Just a query if this is written in a certain version of perl? Or would it be quite compatible with an older perl 5.x release? In not we should add an autoconf check.
Allan