[pacman-dev] [PATCH] Add PKGBUILD-vcs.proto
Add a proto for bzr, git, hg and svn PKGBUILDs and remove the corresponding protos from abs. Signed-off-by: Maxime Gauduin <alucryd@gmail.com> --- proto/PKGBUILD-vcs.proto | 95 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 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..3aa7890 --- /dev/null +++ b/proto/PKGBUILD-vcs.proto @@ -0,0 +1,95 @@ +# 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@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:REPO_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}" + +# The examples below are not absolute and need to be adapted to each repo. The +# general idea is to have VERSION='VER_NUM.rREV_NUM.HASH' or any subset in case +# VER_NUM or HASH are not available. + +# 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 +} -- 1.8.5.3
On 26/01/14 03:38, Maxime Gauduin wrote:
Add a proto for bzr, git, hg and svn PKGBUILDs and remove the corresponding protos from abs.
Commit message needs updated.
Signed-off-by: Maxime Gauduin <alucryd@gmail.com> --- proto/PKGBUILD-vcs.proto | 95 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 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..3aa7890 --- /dev/null +++ b/proto/PKGBUILD-vcs.proto @@ -0,0 +1,95 @@ +# 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@domain.com> +pkgname=NAME-VCS # '-bzr', '-git', '-hg' or '-svn' +pkgver=VERSION +pkgrel=1
epoch=
+pkgdesc="" +arch=() +url="" +license=('GPL') +groups=() +depends=() +makedepends=('VCS_PACKAGE') # 'bzr', 'git', 'mercurial' or 'subversion'
checkdepends=() optdepends=()
+provides=("${pkgname%-VCS}") +conflicts=("${pkgname%-VCS}") +replaces=() +backup=() +options=() +install=
changelog=
+source=('DIR_NAME::VCS+REPO_URL#FRAGMENT') +noextract=() +md5sums=('SKIP') + +################################################################################ +
Can we just refer to the "Using VCS Sources" in the PKGBUILD man page here?
+# 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:REPO_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}" + +# The examples below are not absolute and need to be adapted to each repo. The +# general idea is to have VERSION='VER_NUM.rREV_NUM.HASH' or any subset in case +# VER_NUM or HASH are not available.
Why are we using "r" everywhere? What is its advantage - especially in the non-git cases? And why adding "." between the segments instead of an underscore? I have seen a lot of software release version A.B followed by A.B.C, so separating with a "." will break.
+# 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 +}
On Tue, Jan 28, 2014 at 12:30 PM, Allan McRae <allan@archlinux.org> wrote:
On 26/01/14 03:38, Maxime Gauduin wrote:
Add a proto for bzr, git, hg and svn PKGBUILDs and remove the corresponding protos from abs.
Commit message needs updated.
Signed-off-by: Maxime Gauduin <alucryd@gmail.com> --- proto/PKGBUILD-vcs.proto | 95 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 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..3aa7890 --- /dev/null +++ b/proto/PKGBUILD-vcs.proto @@ -0,0 +1,95 @@ +# 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@domain.com> +pkgname=NAME-VCS # '-bzr', '-git', '-hg' or '-svn' +pkgver=VERSION +pkgrel=1
epoch=
+pkgdesc="" +arch=() +url="" +license=('GPL') +groups=() +depends=() +makedepends=('VCS_PACKAGE') # 'bzr', 'git', 'mercurial' or 'subversion'
checkdepends=() optdepends=()
+provides=("${pkgname%-VCS}") +conflicts=("${pkgname%-VCS}") +replaces=() +backup=() +options=() +install=
changelog=
+source=('DIR_NAME::VCS+REPO_URL#FRAGMENT') +noextract=() +md5sums=('SKIP') +
+################################################################################
+
Can we just refer to the "Using VCS Sources" in the PKGBUILD man page here?
Sure, good idea.
+# 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:REPO_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}" + +# The examples below are not absolute and need to be adapted to each repo. The +# general idea is to have VERSION='VER_NUM.rREV_NUM.HASH' or any subset in case +# VER_NUM or HASH are not available.
Why are we using "r" everywhere? What is its advantage - especially in the non-git cases?
And why adding "." between the segments instead of an underscore? I have seen a lot of software release version A.B followed by A.B.C, so separating with a "." will break.
According to vercmp, numbers take precendence over letters: vercmp 1.1.r42 1.1.1.r43 -> -1 vercmp 1.1_r42 1.1.1_r43 -> -1 However: vercmp 1.1.42 1.1.1.43 -> 1 vercmp 1.1_42 1.1.1_43 -> 1 The 'r' is there to fix such problems when A.B becomes A.B.C, or when a tagless git repo gets tagged. The choice between dot and underscore is purely cosmetic, I prefer dots over underscores, but I wouldn't mind using the latter.
+# 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 +}
-- Maxime
On 28/01/14 21:43, Maxime Gauduin wrote:
On Tue, Jan 28, 2014 at 12:30 PM, Allan McRae <allan@archlinux.org> wrote:
On 26/01/14 03:38, Maxime Gauduin wrote:
Add a proto for bzr, git, hg and svn PKGBUILDs and remove the corresponding protos from abs.
Commit message needs updated.
Signed-off-by: Maxime Gauduin <alucryd@gmail.com> --- proto/PKGBUILD-vcs.proto | 95 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 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..3aa7890 --- /dev/null +++ b/proto/PKGBUILD-vcs.proto @@ -0,0 +1,95 @@ +# 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@domain.com> +pkgname=NAME-VCS # '-bzr', '-git', '-hg' or '-svn' +pkgver=VERSION +pkgrel=1
epoch=
+pkgdesc="" +arch=() +url="" +license=('GPL') +groups=() +depends=() +makedepends=('VCS_PACKAGE') # 'bzr', 'git', 'mercurial' or 'subversion'
checkdepends=() optdepends=()
+provides=("${pkgname%-VCS}") +conflicts=("${pkgname%-VCS}") +replaces=() +backup=() +options=() +install=
changelog=
+source=('DIR_NAME::VCS+REPO_URL#FRAGMENT') +noextract=() +md5sums=('SKIP') +
+################################################################################
+
Can we just refer to the "Using VCS Sources" in the PKGBUILD man page here?
Sure, good idea.
+# 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:REPO_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}" + +# The examples below are not absolute and need to be adapted to each repo. The +# general idea is to have VERSION='VER_NUM.rREV_NUM.HASH' or any subset in case +# VER_NUM or HASH are not available.
Why are we using "r" everywhere? What is its advantage - especially in the non-git cases?
And why adding "." between the segments instead of an underscore? I have seen a lot of software release version A.B followed by A.B.C, so separating with a "." will break.
According to vercmp, numbers take precendence over letters: vercmp 1.1.r42 1.1.1.r43 -> -1 vercmp 1.1_r42 1.1.1_r43 -> -1 However: vercmp 1.1.42 1.1.1.43 -> 1 vercmp 1.1_42 1.1.1_43 -> 1
The 'r' is there to fix such problems when A.B becomes A.B.C, or when a tagless git repo gets tagged. The choice between dot and underscore is purely cosmetic, I prefer dots over underscores, but I wouldn't mind using the latter.
OK. Keep the "r" and use "." to separate. How about this for the text above the examples? 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 +}
On Tue, Jan 28, 2014 at 1:00 PM, Allan McRae <allan@archlinux.org> wrote:
On 28/01/14 21:43, Maxime Gauduin wrote:
On Tue, Jan 28, 2014 at 12:30 PM, Allan McRae <allan@archlinux.org> wrote:
On 26/01/14 03:38, Maxime Gauduin wrote:
Add a proto for bzr, git, hg and svn PKGBUILDs and remove the corresponding protos from abs.
Commit message needs updated.
Signed-off-by: Maxime Gauduin <alucryd@gmail.com> --- proto/PKGBUILD-vcs.proto | 95 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 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..3aa7890 --- /dev/null +++ b/proto/PKGBUILD-vcs.proto @@ -0,0 +1,95 @@ +# 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@domain.com> +pkgname=NAME-VCS # '-bzr', '-git', '-hg' or '-svn' +pkgver=VERSION +pkgrel=1
epoch=
+pkgdesc="" +arch=() +url="" +license=('GPL') +groups=() +depends=() +makedepends=('VCS_PACKAGE') # 'bzr', 'git', 'mercurial' or 'subversion'
checkdepends=() optdepends=()
+provides=("${pkgname%-VCS}") +conflicts=("${pkgname%-VCS}") +replaces=() +backup=() +options=() +install=
changelog=
+source=('DIR_NAME::VCS+REPO_URL#FRAGMENT') +noextract=() +md5sums=('SKIP') +
+################################################################################
+
Can we just refer to the "Using VCS Sources" in the PKGBUILD man page here?
Sure, good idea.
+# 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:REPO_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}" + +# The examples below are not absolute and need to be adapted to each repo. The +# general idea is to have VERSION='VER_NUM.rREV_NUM.HASH' or any subset in case +# VER_NUM or HASH are not available.
Why are we using "r" everywhere? What is its advantage - especially in the non-git cases?
And why adding "." between the segments instead of an underscore? I have seen a lot of software release version A.B followed by A.B.C, so separating with a "." will break.
According to vercmp, numbers take precendence over letters: vercmp 1.1.r42 1.1.1.r43 -> -1 vercmp 1.1_r42 1.1.1_r43 -> -1 However: vercmp 1.1.42 1.1.1.43 -> 1 vercmp 1.1_42 1.1.1_43 -> 1
The 'r' is there to fix such problems when A.B becomes A.B.C, or when a tagless git repo gets tagged. The choice between dot and underscore is purely cosmetic, I prefer dots over underscores, but I wouldn't mind using the latter.
OK. Keep the "r" and use "." to separate.
How about this for the text above the examples?
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
Sounds good, I'll update the patch accordingly.
+# 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 +}
-- Maxime
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@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@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=('FOLDER::VCS+URL#FRAGMENT') +noextract=() +md5sums=('SKIP') + +# 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 +} -- 1.8.5.3
On 28/01/14 23:49, Maxime Gauduin wrote:
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@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. +
The cvs/darc prototypes are not supplied by package. I think the text should say: # The following guidelines are specific to BZR, GIT, HG and SVN packages. # Over VCS sources are not natively supported by makepkg yet. I can make that change when I commit if acceptable. Allan
On Thu, Jan 30, 2014 at 4:43 AM, Allan McRae <allan@archlinux.org> wrote:
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@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
On 28/01/14 23:49, Maxime Gauduin wrote: packages.
+# CVS and DARCS are not natively supported in pacman yet, please refer to the +# dedicated prototypes instead. +
The cvs/darc prototypes are not supplied by package. I think the text should say:
# The following guidelines are specific to BZR, GIT, HG and SVN packages. # Over VCS sources are not natively supported by makepkg yet.
I can make that change when I commit if acceptable.
Allan
Better indeed, please do! -- Maxime
participants (2)
-
Allan McRae
-
Maxime Gauduin