[pacman-dev] [PATCHv2] Add PKGBUILD-vcs.proto

Maxime Gauduin alucryd at gmail.com
Tue Jan 28 08:49:47 EST 2014

This PKGBUILD proto covers the newly introduced VCS capabilities of
pacman. It serves as a replacement for the current bzr, git, hg and svn
protos found in ABS.

Signed-off-by: Maxime Gauduin <alucryd at gmail.com>
 proto/PKGBUILD-vcs.proto | 79 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 proto/PKGBUILD-vcs.proto

diff --git a/proto/PKGBUILD-vcs.proto b/proto/PKGBUILD-vcs.proto
new file mode 100644
index 0000000..4f8064d
--- /dev/null
+++ b/proto/PKGBUILD-vcs.proto
@@ -0,0 +1,79 @@
+# 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'.
+# 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.
+# Maintainer: Your Name <youremail at domain.com>
+pkgname=NAME-VCS # '-bzr', '-git', '-hg' or '-svn'
+makedepends=('VCS_PACKAGE') # 'bzr', 'git', 'mercurial' or 'subversion'
+# Please refer to the 'USING VCS SOURCES' section of the PKGBUILD man page for
+# a description of each element in the source array.
+pkgver() {
+	cd "$srcdir/${pkgname%-VCS}"
+# The examples below are not absolute and need to be adapted to each repo. The
+# primary goal is to generate version numbers that will increase according to
+# pacman's version comparisons with later commits to the repo. The format
+# VERSION='VER_NUM.rREV_NUM.HASH', or a relevant subset in case VER_NUM or HASH
+# are not available, is recommended.
+# Bazaar
+	printf "r%s" "$(bzr revno)"
+# Git, tags available
+	printf "%s" "$(git describe --long | sed 's/\([^-]*-\)g/r\1/;s/-/./g')"
+# Git, no tags available
+	printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+# Mercurial
+	printf "r%s.%s" "$(hg identify -n)" "$(hg identify -i)"
+# Subversion
+	printf "r%s" "$(svnversion | tr -d 'A-z')"
+prepare() {
+	cd "$srcdir/${pkgname%-VCS}"
+	patch -p1 -i "$srcdir/${pkgname%-VCS}.patch"
+build() {
+	cd "$srcdir/${pkgname%-VCS}"
+	./autogen.sh
+	./configure --prefix=/usr
+	make
+check() {
+	cd "$srcdir/${pkgname%-VCS}"
+	make -k check
+package() {
+	cd "$srcdir/${pkgname%-VCS}"
+	make DESTDIR="$pkgdir/" install

More information about the pacman-dev mailing list