[pacman-dev] makepkg patch - simple pkg class feature

K. Piche kpiche at rogers.com
Sun Jan 13 22:37:13 EST 2008


On Sun, 2008-01-13 at 19:44 -0600, Dan McGee wrote:
> On Jan 13, 2008 7:23 PM, K. Piche <kpiche at rogers.com> wrote:
> > On Wed, 2008-01-09 at 22:33 -0600, Dan McGee wrote:
> > > OK, now that the release is out the door (a whole hour ago :P), I'll
> > > take a look.
> > >
> > > I've been thinking of something like this for a while, because this
> > > kind of thing would be mucho-handy for SVN/GIT/etc. PKGBUILDs as well.
> > >
> > > How about something more like this?
> > >
> > > pkgname=foobar
> > > pkgver=1.0
> > > pkgrel=1
> > > .......
> > > buildlib=perl.build
> > > install=foobar.install
> > >
> > > build() {
> > >     pre_build()
> > >     perl_build()
> > >     post_build()
> > > }
> > >
> > >
> > > perl.build would be sourced before the build() function is called, so
> > > those functions (and variable redefinitions) would be available. Hell,
> > > you could probably even define build() in there as long as we set it
> > > up right.
> > >
> > > This would allow a bit more flexibility than what your patch afforded
> > > in that you could mix function calls with the ability to still tweak
> > > the build in build().
> >
> >
> > I'm not really sure there is a difference.  Your build calls the
> > functions to run but that is equivalent to the array
> > build_funcs="pre_build perl_build post_build".  It's just syntax.
> >
> > What I liked about my setup is that I could build a perl module with 6
> > or 7 variables and no build() in the PKGBUILD.
> 
> And this is what I was trying to stay away from. I hate looking at
> Gentoo emerge files (what are they called?), and I've never been a fan
> of the huge abstraction that Frugalware uses in their PKGBUILD files.
> The whole idea of a PKGBUILD in my eyes is ease of use- if a user
> wants to customize it, everything is *right there* in front of them.
> They don't have to fight to add or remove a single configure flag, or
> get docs installed, etc.

Ebuilds.  :)  I'm not fully aware of Frugal's method - wasn't it a
collection of Fblah macros?  The "class" method does hide things from
the packager.

> > I also figured that the "optional" build functions would allow for
> > interesting possibilities - define a build_funcs="patch configure
> > compile install extras".  If a source distribution was standard no
> > build() would be required but the parts of a standard build could be
> > changed:
> >
> > pkgname=blah
> > ...
> > patch() {
> >   patch -Np0 -i fixit.patch
> > }
> > EOF
> >
> > The local patch func would be used and the standard compile, install,
> > etc would come from the class.  If a PKGBUILD had no patch() and there
> > wasn't one in the class it would simply be skipped.
> 
> People switch to Arch, like what they see, and then attempt to build
> their first package. A proficient Linux user can have one written in
> 10 minutes. I don't want anything to take that ease of use away,
> that's all. And I know users wouldn't be required to use this, but I'm
> sure they would want to customize a PKGBUILD that did and explaining
> to a user why a build function is optional just seems to be too much
> for me.

I can't disagree with this - the simplicity of Arch does rule.  So
basically you want a collection of standard build functions.

> -Dan
> 
> _______________________________________________
> pacman-dev mailing list
> pacman-dev at archlinux.org
> http://archlinux.org/mailman/listinfo/pacman-dev
-- 
K. Piche <kpiche at rogers.com>





More information about the pacman-dev mailing list