Having separate prototypes for each VCS type is no longer relevant since
Pacman 4.1. Having a generic prototype for regular, bzr, git hg and svn
packages makes more sense. Left cvs, and darcs protos untouched as they
are not yet supported in Pacman.
Signed-off-by: Maxime Gauduin
---
prototypes/PKGBUILD-bzr.proto | 64 -------------------------
prototypes/PKGBUILD-git.proto | 64 -------------------------
prototypes/PKGBUILD-hg.proto | 65 -------------------------
prototypes/PKGBUILD-svn.proto | 63 ------------------------
prototypes/PKGBUILD.proto | 108 ++++++++++++++++++++++++++++++++++++++++++
5 files changed, 108 insertions(+), 256 deletions(-)
delete mode 100644 prototypes/PKGBUILD-bzr.proto
delete mode 100644 prototypes/PKGBUILD-git.proto
delete mode 100644 prototypes/PKGBUILD-hg.proto
delete mode 100644 prototypes/PKGBUILD-svn.proto
create mode 100644 prototypes/PKGBUILD.proto
diff --git a/prototypes/PKGBUILD-bzr.proto b/prototypes/PKGBUILD-bzr.proto
deleted file mode 100644
index 81f145f..0000000
--- a/prototypes/PKGBUILD-bzr.proto
+++ /dev/null
@@ -1,64 +0,0 @@
-# This is an example PKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# See http://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines
-# for more information on packaging from Bazaar sources.
-
-# Maintainer: Your Name
-pkgname=NAME-bzr
-pkgver=VERSION
-pkgrel=1
-pkgdesc=""
-arch=()
-url=""
-license=('GPL')
-groups=()
-depends=()
-makedepends=('bzr')
-provides=()
-conflicts=()
-replaces=()
-backup=()
-options=()
-install=
-source=()
-noextract=()
-md5sums=() #generate with 'makepkg -g'
-
-_bzrtrunk=BZRURL
-_bzrmod=MODNAME
-
-build() {
- cd "$srcdir"
- msg "Connecting to Bazaar server...."
-
- if [[ -d "$_bzrmod" ]]; then
- cd "$_bzrmod" && bzr --no-plugins pull "$_bzrtrunk" -r "$pkgver"
- msg "The local files are updated."
- else
- bzr --no-plugins branch "$_bzrtrunk" "$_bzrmod" -q -r "$pkgver"
- fi
-
- msg "Bazaar checkout done or server timeout"
- msg "Starting build..."
-
- rm -rf "$srcdir/$_bzrmod-build"
- cp -r "$srcdir/$_bzrmod" "$srcdir/$_bzrmod-build"
- cd "$srcdir/$_bzrmod-build"
-
- #
- # BUILD HERE
- #
- ./autogen.sh
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$srcdir/$_bzrmod-build"
- make DESTDIR="$pkgdir/" install
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/prototypes/PKGBUILD-git.proto b/prototypes/PKGBUILD-git.proto
deleted file mode 100644
index 05b721b..0000000
--- a/prototypes/PKGBUILD-git.proto
+++ /dev/null
@@ -1,64 +0,0 @@
-# This is an example PKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# See http://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines
-# for more information on packaging from GIT sources.
-
-# Maintainer: Your Name
-pkgname=NAME-git
-pkgver=VERSION
-pkgrel=1
-pkgdesc=""
-arch=()
-url=""
-license=('GPL')
-groups=()
-depends=()
-makedepends=('git')
-provides=()
-conflicts=()
-replaces=()
-backup=()
-options=()
-install=
-source=()
-noextract=()
-md5sums=() #generate with 'makepkg -g'
-
-_gitroot=GITURL
-_gitname=MODENAME
-
-build() {
- cd "$srcdir"
- msg "Connecting to GIT server...."
-
- if [[ -d "$_gitname" ]]; then
- cd "$_gitname" && git pull origin
- msg "The local files are updated."
- else
- git clone "$_gitroot" "$_gitname"
- fi
-
- msg "GIT checkout done or server timeout"
- msg "Starting build..."
-
- rm -rf "$srcdir/$_gitname-build"
- git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
- cd "$srcdir/$_gitname-build"
-
- #
- # BUILD HERE
- #
- ./autogen.sh
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$srcdir/$_gitname-build"
- make DESTDIR="$pkgdir/" install
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/prototypes/PKGBUILD-hg.proto b/prototypes/PKGBUILD-hg.proto
deleted file mode 100644
index 8474533..0000000
--- a/prototypes/PKGBUILD-hg.proto
+++ /dev/null
@@ -1,65 +0,0 @@
-# This is an example PKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# See http://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines
-# for more information on packaging from Mercurial(hg) sources.
-
-# Maintainer: Your Name
-pkgname=NAME-hg
-pkgver=VERSION
-pkgrel=1
-pkgdesc=""
-arch=()
-url=""
-license=('GPL')
-groups=()
-depends=()
-makedepends=('mercurial')
-provides=()
-conflicts=()
-replaces=()
-backup=()
-options=()
-install=
-source=()
-noextract=()
-md5sums=() #generate with 'makepkg -g'
-
-_hgroot=HGURL
-_hgrepo=REPONAME
-
-build() {
- cd "$srcdir"
- msg "Connecting to Mercurial server...."
-
- if [[ -d "$_hgrepo" ]]; then
- cd "$_hgrepo"
- hg pull -u
- msg "The local files are updated."
- else
- hg clone "$_hgroot" "$_hgrepo"
- fi
-
- msg "Mercurial checkout done or server timeout"
- msg "Starting build..."
-
- rm -rf "$srcdir/$_hgrepo-build"
- cp -r "$srcdir/$_hgrepo" "$srcdir/$_hgrepo-build"
- cd "$srcdir/$_hgrepo-build"
-
- #
- # BUILD HERE
- #
- ./autogen.sh
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$srcdir/$_hgrepo-build"
- make DESTDIR="$pkgdir/" install
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/prototypes/PKGBUILD-svn.proto b/prototypes/PKGBUILD-svn.proto
deleted file mode 100644
index aff5ca9..0000000
--- a/prototypes/PKGBUILD-svn.proto
+++ /dev/null
@@ -1,63 +0,0 @@
-# This is an example PKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# See http://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines
-# for more information on packaging from SVN sources.
-
-# Maintainer: Your Name
-pkgname=NAME-svn
-pkgver=VERSION
-pkgrel=1
-pkgdesc=""
-arch=()
-url=""
-license=('GPL')
-groups=()
-depends=()
-makedepends=('subversion')
-provides=()
-conflicts=()
-replaces=()
-backup=()
-options=()
-install=
-source=()
-noextract=()
-md5sums=() #generate with 'makepkg -g'
-
-_svntrunk=SVNURL
-_svnmod=MODNAME
-
-build() {
- cd "$srcdir"
- msg "Connecting to SVN server...."
-
- if [[ -d "$_svnmod/.svn" ]]; then
- (cd "$_svnmod" && svn up -r "$pkgver")
- else
- svn co "$_svntrunk" --config-dir ./ -r "$pkgver" "$_svnmod"
- fi
-
- msg "SVN checkout done or server timeout"
- msg "Starting build..."
-
- rm -rf "$srcdir/$_svnmod-build"
- svn export "$srcdir/$_svnmod" "$srcdir/$_svnmod-build"
- cd "$srcdir/$_svnmod-build"
-
- #
- # BUILD HERE
- #
- ./autogen.sh
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$srcdir/$_svnmod-build"
- make DESTDIR="$pkgdir/" install
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/prototypes/PKGBUILD.proto b/prototypes/PKGBUILD.proto
new file mode 100644
index 0000000..5ad5699
--- /dev/null
+++ b/prototypes/PKGBUILD.proto
@@ -0,0 +1,108 @@
+# This is an example PKGBUILD file. Use this as a start to creating your own,
+# and remove these comments. For more information, see 'man PKGBUILD'.
+# NOTE: Please fill out the license field for your package! If it is unknown,
+# then please put 'unknown'.
+
+# Maintainer: Your Name
+pkgname=NAME
+pkgver=VERSION
+pkgrel=1
+pkgdesc=""
+arch=()
+url=""
+license=('GPL')
+groups=()
+depends=()
+makedepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=()
+install=
+source=('SRC_NAME::SRC_URL')
+
+# SRC_NAME: Use to change the source name if needed
+# Example:
+# source=("$pkgname-$pkgver.tar.gz::http://www.foobar.com/foobar.tar.gz")
+
+noextract=()
+md5sums=() # Generate with 'makepkg -g'
+
+################################################################################
+################################# VCS specific #################################
+################################################################################
+
+# The following guidelines are specific to BZR, GIT, HG and SVN packages.
+# CVS and DARCS are not natively supported in pacman yet, please refer to the
+# dedicated prototypes instead.
+# See http://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines for more
+# information on packaging from VCS sources.
+
+pkgname=NAME-VCS # '-bzr', '-git', '-hg' or '-svn'
+makedepends=('VCS_PACKAGE') # 'bzr', 'git', 'mercurial' or 'subversion'
+provides=("${pkgname%-VCS}")
+conflicts=("${pkgname%-VCS}")
+source=('DIR_NAME::VCS+REPO_URL#FRAGMENT')
+md5sums=('SKIP')
+
+# DIR_NAME: Use to change the source directory name if needed
+
+# VCS: Use to specify the VCS type, not needed when REPO_URL is explicit (for
+# example git://URL, svn://URL or lp:NAME)
+
+# FRAGMENT: Use to pull a specific branch, commit/revision or tag
+# Bazaar accepts the 'revision' keyword
+# Git accepts the 'branch', 'commit' and 'tag' keywords
+# Mercurial accepts the 'branch', 'revision' and 'tag' keywords
+# Subversion accepts the 'revision' keyword
+
+# Examples:
+# source=("lp:${pkgname%-bzr}#revision=42")
+# source=("git+https://github.com/author/${pkgname%-git}.git#branch=unstable")
+# source=('hg+https://bitbucket.org/author/project#tag=2.0')
+# source=("${pkgname%-svn}::svn://svn.code.sf.net/p/project/code/trunk"}
+
+pkgver() {
+ cd "$srcdir"
+
+# Bazaar
+ printf "%s" "$(bzr revno)"
+
+# Git, tags available
+ printf "%s" "$(git describe --long | sed 's/-/./g')"
+
+# Git, no tags available
+ printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+
+# Mercurial
+ printf "%s.%s" "$(hg identify -n)" "$(hg identify -i)"
+
+# Subversion
+ printf "%s" "$(svnversion | tr -d 'A-z')"
+
+# Fallback
+ printf "%s" "$(date +%Y%m%d)"
+}
+
+################################################################################
+
+prepare() {
+ cd "$srcdir"
+ patch -Np1 ../foo.patch
+ patch -Np0 ../bar.patch
+}
+
+build() {
+ cd "$srcdir"
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
--
1.8.4