[pacman-dev] Fwd: [arch-projects] [ABS] [PATCHv2] Merge bzr, git, hg and svn into a generic proto

Allan McRae allan at archlinux.org
Thu Oct 31 21:33:31 EDT 2013


I am proposing we include this PKGBUILD-vcs.proto into pacman (after
removing the pointer to the Arch wiki).

Comments?

Allan


-------- Original Message --------
Subject: [arch-projects] [ABS] [PATCHv2] Merge bzr, git, hg and svn into
a generic proto
Date: Tue,  8 Oct 2013 16:13:25 +0200
From: Maxime Gauduin <alucryd at gmail.com>
Reply-To: Arch Linux projects development discussion
<arch-projects at archlinux.org>
To: arch-projects at archlinux.org

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 <alucryd at gmail.com>
---
 prototypes/PKGBUILD-bzr.proto | 64 ----------------------------
 prototypes/PKGBUILD-git.proto | 64 ----------------------------
 prototypes/PKGBUILD-hg.proto  | 65 ----------------------------
 prototypes/PKGBUILD-svn.proto | 63 ----------------------------
 prototypes/PKGBUILD-vcs.proto | 98
+++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 98 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-vcs.proto

<snip>

diff --git a/prototypes/PKGBUILD-vcs.proto b/prototypes/PKGBUILD-vcs.proto
new file mode 100644
index 0000000..805f4ff
--- /dev/null
+++ b/prototypes/PKGBUILD-vcs.proto
@@ -0,0 +1,98 @@
+# 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.
+# See http://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines for more
+# information on packaging from VCS sources.
+
+# Maintainer: Your Name <youremail at domain.com>
+pkgname=NAME-VCS # '-bzr', '-git', '-hg' or '-svn'
+pkgver=VERSION
+pkgrel=1
+pkgdesc=""
+arch=()
+url=""
+license=('GPL')
+groups=()
+depends=()
+makedepends=('VCS_PACKAGE') # 'bzr', 'git', 'mercurial' or 'subversion'
+provides=("${pkgname%-VCS}")
+conflicts=("${pkgname%-VCS}")
+replaces=()
+backup=()
+options=()
+install=
+source=('DIR_NAME::VCS+REPO_URL#FRAGMENT')
+noextract=()
+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/${pkgname%-VCS}"
+
+# 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/${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
+}
+
+# vim:set ts=2 sw=2 et:
-- 
1.8.4







More information about the pacman-dev mailing list