Proposal: Guidelines for CVS/SVN/etc Pkgfile's
I'm just going to paste my proposal below, please comment on it. Proposal: Handling CVS/SVN Pkgfile's in a standardised manner. Written by: Brett 'predatorfreak' Goulder 1. What is this proposal about? It's about laying down basic guidelines for writing Pkgfile's which deal with CVS/SVN checkouts, in order to standardise this. The reason I want to standardise this is because Pkgfile's that handle CVS/SVN/whatever tend to use their own way of doing things, for example Han's Pkgfile's checkout stuff live and others use snapshots. 2. Well, what should we change? I think we should change the Pkgfile's so we checkout revisions and change the version variable to the revision or date to checkout, as this allows us to stop rolling a snapshot or using someone elses and doesn't force us to use a live checkout, which presents a problem for people to help with problems during the build or operation of the package. We should also add a variable, svntrunk/cvsroot/etc that would allow a script to grab the latest revision to aid in bumping. Here's an example of how a CVS/SVN/etc Pkgfile would look: # Description: Foobar # URL: Foobar # Maintainer: XYZ <XYZ@XYZ.XYS> # Packager: XYZ <XYZ@XYZ.XYS> # Depends on: foo name=bar version=4543 release=1 source=() svntrunk="svn://svn.foobar.com/$name/trunk" build() { cd $PKGMK_SOURCE_DIR svn co $svntrunk $name-svn --config-dir ./ -r $version cp -r $name-svn $SRC/$name-build cd $SRC/$name-build ./autogen.sh ./configure --prefix=/usr make make DESTDIR=$PKG install } We also checkout the source into the $PKGMK_SOURCE_DIR in order to allow us to use it as a later point, that way the source can be used between builds without downloading it again. -- ~predatorfreak GnuPG Public key: http://pred.dcaf-security.org/dcafsec-pub-gpgkey.asc
On Fri, Dec 01, 2006 at 09:08:16PM -0500, Brett Goulder wrote:
Here's an example of how a CVS/SVN/etc Pkgfile would look: # Description: Foobar # URL: Foobar # Maintainer: XYZ <XYZ@XYZ.XYS> # Packager: XYZ <XYZ@XYZ.XYS> # Depends on: foo
name=bar version=4543 release=1 source=() svntrunk="svn://svn.foobar.com/$name/trunk"
This can be done that way: version=revision-or-tag source=(git://.../project/@$version) source=(svn://.../project/@$version) source=(cvs://.../project/@$version) And pkgmk would deal with it -> run svn/cvs/git for us.
On Sat, 2 Dec 2006 07:24:18 +0300 Anton Vorontsov wrote:
On Fri, Dec 01, 2006 at 09:08:16PM -0500, Brett Goulder wrote:
Here's an example of how a CVS/SVN/etc Pkgfile would look: # Description: Foobar # URL: Foobar # Maintainer: XYZ <XYZ@XYZ.XYS> # Packager: XYZ <XYZ@XYZ.XYS> # Depends on: foo
name=bar version=4543 release=1 source=() svntrunk="svn://svn.foobar.com/$name/trunk"
This can be done that way:
version=revision-or-tag source=(git://.../project/@$version) source=(svn://.../project/@$version) source=(cvs://.../project/@$version)
And pkgmk would deal with it -> run svn/cvs/git for us.
The problem is this requires hacking in pkgmk and breaks backwards compatibility, old versions of pkgmk couldn't run such files. Note: Sorry sending the first reply directly to you, Anton, I'm a little tired. -- ~predatorfreak GnuPG Public key: http://pred.dcaf-security.org/dcafsec-pub-gpgkey.asc
On Fri, 2006-12-01 at 21:08 -0500, Brett Goulder wrote:
I'm just going to paste my proposal below, please comment on it.
Proposal: Handling CVS/SVN Pkgfile's in a standardised manner. Written by: Brett 'predatorfreak' Goulder
1. What is this proposal about? It's about laying down basic guidelines for writing Pkgfile's which deal with CVS/SVN checkouts, in order to standardise this. The reason I want to standardise this is because Pkgfile's that handle CVS/SVN/whatever tend to use their own way of doing things, for example Han's Pkgfile's checkout stuff live and others use snapshots.
2. Well, what should we change? I think we should change the Pkgfile's so we checkout revisions and change the version variable to the revision or date to checkout, as this allows us to stop rolling a snapshot or using someone elses and doesn't force us to use a live checkout, which presents a problem for people to help with problems during the build or operation of the package. We should also add a variable, svntrunk/cvsroot/etc that would allow a script to grab the latest revision to aid in bumping.
See also: http://lists.crux.nu/pipermail/crux-contrib/2006-November/000759.html :-)
participants (3)
-
Anton Vorontsov
-
Brett Goulder
-
Mark Rosenstand