[aur-general] PKGBUILD: build() vs package() function

Allan McRae allan at archlinux.org
Sun Aug 29 13:28:21 EDT 2010

On 30/08/10 03:06, Nathan O wrote:
> On Sun, Aug 29, 2010 at 9:29 AM, Allan McRae<allan at archlinux.org>  wrote:
>> On 29/08/10 06:32, Nicky726 wrote:
>>> Hello,
>>> hope I don't get this missplaced, as a quick search didn'd get me any
>>> results.
>>> When I have a package, which does actually build nothing -- say wine_gecko
>>> (a
>>> file only needs to be placed to a correct directory) -- I should only have
>>> package() function in the PKGBUILD, is that a correct interpretation?
>>> Now the makepkg is happy but the AUR complaints. I can workaround that
>>> with an
>>> empty build() function in that case the AUR is happy but the makepkg
>>> complains. So I just put in there a harmless echo and both are happy now.
>>> Actually my question is not that much about the correct workarounding, as
>>> it
>>> is about if I really get the meaning of the build() and package()
>>> functions
>>> correctly, that is for building build(), for installing package()?
>> It actually makes no difference.   Makepkg treats packages with only a
>> build() function the same as packages with only a package() function in that
>> everything is run under fakeroot.
>> When both a build() and package() function are present, the build()
>> function is run as the user calling makepkg and the package() function is
>> run under fakeroot.
>> So it should be clear that an empty build() function is a waste of time...
>> Allan
> On one of my packages, where I copied the new PKGBUILD from
> /usr/share/pacman, under build(){ I did install -d ${pkgdir}/usr/bin }
> since it didn't actually have a build option like ./configure make or
> anything like that.
> While under package(){
> install -Dm755 BINARY ${pkgdir}/usr/bin/BINARY
> Could maybe do it this way?

No...    if there is a package() function then the build() function 
should never touch $pkgdir.


More information about the aur-general mailing list