On Mon, May 6, 2013 at 12:50 AM, Allan McRae <[email protected]> wrote:
> On 03/05/13 04:55, Florian Pritz wrote: > > This allows for somewhat easy templating for PKGBUILDs. > > > > Signed-off-by: Florian Pritz <[email protected]> > > --- > > > > 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 > > > >
