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

Maxime Gauduin alucryd at gmail.com
Fri Nov 1 13:14:48 EDT 2013


On Fri, Nov 1, 2013 at 2:42 AM, William Giokas <1007380 at gmail.com> wrote:

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

Can't we leave some as examples? I agree they're in no way absolute rules
because they can't fit every situation, but still they're a starting point.


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


More information about the pacman-dev mailing list