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

William Giokas 1007380 at gmail.com
Thu Oct 31 21:42:14 EDT 2013


On Fri, Nov 01, 2013 at 11:33:31AM +1000, Allan McRae wrote:
> 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)"
> +}

Do not include this. There has been a lot of discussion about what is
right for this, and I would say that it's best to leave this as a
commented out function. The user creating the PKGBUILD should tailor
this to the VCS and package they are using.

> +
> +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

Thanks,

-- 
William Giokas | KaiSforza | http://kaictl.net/
GnuPG Key: 0x73CD09CF
Fingerprint: F73F 50EF BBE2 9846 8306  E6B8 6902 06D8 73CD 09CF
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mailman.archlinux.org/pipermail/pacman-dev/attachments/20131031/03b9e430/attachment.asc>


More information about the pacman-dev mailing list