Difference between revisions of "PKGBUILD Templates"

From ArchWiki
Jump to navigation Jump to search
(changed pkgname example from 'Derp' to 'derp' as this should not violate the lowercase advise)
(Basic PKGBUILD with Links and Comments added a coment about ${pakage}::source)
Line 51: Line 51:
 
   
 
   
 
  #The release number for the arch package, as fixes are added to the PKGBUILD, the release number will increase
 
  #The release number for the arch package, as fixes are added to the PKGBUILD, the release number will increase
  pkgrel=900
+
  pkgrel=9001
 
   
 
   
 
  # The description of the package, should be about 80 characters long (one line)
 
  # The description of the package, should be about 80 characters long (one line)
Line 66: Line 66:
 
   
 
   
 
  # The group a package belongs in. An example would be kdebase (install all the KDE  packages)
 
  # The group a package belongs in. An example would be kdebase (install all the KDE  packages)
  groups=allyourbase
+
  groups=allyourdatabasearebelongtous
 
   
 
   
 
  # Packages that your software needs to run. If the dependancy requires a minimum version number use the >= operator
 
  # Packages that your software needs to run. If the dependancy requires a minimum version number use the >= operator
Line 72: Line 72:
 
   
 
   
 
  # Packages that must be installed to build the software, but at not necessary to run it
 
  # Packages that must be installed to build the software, but at not necessary to run it
  makedepends=('supercompiler300')
+
  makedepends=('pony' 'wings' 'horns' 'supercompany2600')
 
   
 
   
 
  # Optional packages that extend the software's functionality
 
  # Optional packages that extend the software's functionality
  optdepends=('derp-toolbar: a browser plugin')
+
  optdepends=('derp-hoofbar: a browser plugin')
 
   
 
   
 
  # List of Package names that this PKGBUILD provides. Put modified packages that will be installed here.
 
  # List of Package names that this PKGBUILD provides. Put modified packages that will be installed here.
Line 81: Line 81:
 
   
 
   
 
  # Packages that cannot be installed at the same time as this package
 
  # Packages that cannot be installed at the same time as this package
  conflicts=('foobar')
+
  conflicts=('pegasi')
 
   
 
   
 
  # Obsolete Packages that this Package replaces
 
  # Obsolete Packages that this Package replaces
  replaces=('dur')
+
  replaces=('dinky')
 
   
 
   
 
  # User files that should be saved. They are kept as [[Pacnew and Pacsave Files]]
 
  # User files that should be saved. They are kept as [[Pacnew and Pacsave Files]]
Line 93: Line 93:
 
   
 
   
 
  install='foo.install'
 
  install='foo.install'
  source=("http://server.tl;dr/${pkgname}-${pkgver}.tar.gz"
+
 +
# Source for the package, you can specify a folder (for git or download name to overriding the default
 +
# name saved useful if the upstream use tarballs named 'pinkieþæý' for example
 +
  source=("${pkgname}.tar.gz::http://server.tl;dr/${pkgname}-${pkgver}.tar.gz"
 
         "derp.desktop")
 
         "derp.desktop")
 
  md5sums=('a0b2c3d4e5f6g7h8i9'
 
  md5sums=('a0b2c3d4e5f6g7h8i9'

Revision as of 19:33, 30 October 2013

Basic PKGBUILD

You can find prototype package build and .install files in /usr/share/pacman.

# Maintainer: Your Name <youremail@domain.com>
pkgname=NAME
pkgver=VERSION
pkgrel=1
pkgdesc=""
arch=()
url=""
license=('GPL')
groups=()
depends=()
makedepends=()
optdepends=()
provides=()
conflicts=()
replaces=()
backup=()
options=()
install=
changelog=
source=(http://server/$pkgname-$pkgver.tar.gz)
noextract=()
md5sums=() #generate with 'makepkg -g'

build() {
  cd "$srcdir/$pkgname-$pkgver"

  ./configure --prefix=/usr
  make
}

package() {
  cd "$srcdir/$pkgname-$pkgver"

  make DESTDIR="$pkgdir/" install
}

Basic PKGBUILD with Links and Comments

# Maintainer: Your Name <your email>

# Name of the Software your PKGBUILD will install - should be unique. See PKGBUILD#pkgname
pkgname=derp

# The version number for the software
pkgver=6.6.6

#The release number for the arch package, as fixes are added to the PKGBUILD, the release number will increase
pkgrel=9001

# The description of the package, should be about 80 characters long (one line)
pkgdesc="Derp is an example package for this PKGBUILD file."

# The type of processor this software can build and work on. See PKGBUILD#arch
arch=('i686' 'x86_64')

# The official website for the software your PKGBUILD will install
url="https://archlinux.org"

# The License that the software is released under. See PKGBUILD#license
license=('GPL3')

# The group a package belongs in. An example would be kdebase (install all the KDE  packages)
groups=allyourdatabasearebelongtous

# Packages that your software needs to run. If the dependancy requires a minimum version number use the >= operator
depends=('herp' 'fuuuuu>=2.0')

# Packages that must be installed to build the software, but at not necessary to run it
makedepends=('pony' 'wings' 'horns' 'supercompany2600')

# Optional packages that extend the software's functionality
optdepends=('derp-hoofbar: a browser plugin')

# List of Package names that this PKGBUILD provides. Put modified packages that will be installed here.
provides=('lol-git')

# Packages that cannot be installed at the same time as this package
conflicts=('pegasi')

# Obsolete Packages that this Package replaces
replaces=('dinky')

# User files that should be saved. They are kept as Pacnew and Pacsave Files
backup=('etc/derp.conf')

# Change the default behavior of makepkg see PKGBUILD#options
options=

install='foo.install'

# Source for the package, you can specify a folder (for git or download name to overriding the default
# name saved useful if the upstream use tarballs named 'pinkieþæý' for example
source=("${pkgname}.tar.gz::http://server.tl;dr/${pkgname}-${pkgver}.tar.gz"
        "derp.desktop")
md5sums=('a0b2c3d4e5f6g7h8i9'
         'j10k11l12m13n14o15')

For more details, see PKGBUILD.