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(a)XYZ.XYS>
# Packager: XYZ <XYZ(a)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