Difference between revisions of "VCS package guidelines"

From ArchWiki
Jump to: navigation, search
m (Guidelines: - removed unnecessary 'correctly', minor rewording for cvsroot password prompt, removed date format from pkgrel note (VCS packages use date and versioning so not a prob.))
m (Added Mercurial prototype)
Line 18: Line 18:
 
== Prototypes ==
 
== Prototypes ==
  
The {{Package Official|abs}} package provides prototypes for cvs, svn, git and darcs PKGBUILDs. When abs is installed, you can find them in {{Filename|/usr/share/pacman/}}.
+
The {{Package Official|abs}} package provides prototypes for cvs, svn, git and darcs PKGBUILDs. When abs is installed, you can find them in {{Filename|/usr/share/pacman/}}.  A Mercurial prototype can be found [[#Mercurial Prototype|below]].
  
 
== Guidelines ==
 
== Guidelines ==
Line 51: Line 51:
  
 
* With the introduction of the [[AUR]], it is most important to avoid using backtick execution to create package variables. makepkg will automatically bump the {{Codeline|pkgver}} anyway when building the package (unless {{Codeline|--holdver}} is used).
 
* With the introduction of the [[AUR]], it is most important to avoid using backtick execution to create package variables. makepkg will automatically bump the {{Codeline|pkgver}} anyway when building the package (unless {{Codeline|--holdver}} is used).
 +
 +
== Mercurial Prototype ==
 +
 +
<pre>
 +
# Maintainer: Alias <name@email.org>
 +
 +
...
 +
source=()
 +
md5sums=()
 +
 +
_hgroot="http://hg.dillo.org/dillo"
 +
_hgrepo="dillo"
 +
 +
build() {
 +
  cd $srcdir
 +
 +
  msg "Connecting to $_hgroot"
 +
  if [ -d $_hgrepo ]; then
 +
    cd $_hgrepo
 +
    hg pull -u || return 1
 +
    msg2 "Finished updating the local repository!"
 +
  else
 +
    hg clone $_hgroot $_hgrepo || return 1
 +
    msg2 "Initial pull complete!"
 +
  fi
 +
 +
...
 +
 +
</pre>

Revision as of 11:53, 15 December 2009

Template:Article summary start Template:Article summary text Template:Article summary heading Template:I18n entry Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end Guidelines for creating PKGBUILDs for software managed with version control systems.

Prototypes

The Template:Package Official package provides prototypes for cvs, svn, git and darcs PKGBUILDs. When abs is installed, you can find them in Template:Filename. A Mercurial prototype can be found below.

Guidelines

  • Check for package conflicts. For example fluxbox-svn will conflict with fluxbox. In this case, you need to use Template:Codeline.
  • You should AVOID using Template:Codeline as it generally causes unnecessary problems.
  • Though it is often unnecessary to use the Template:Codeline field when building CVS/SVN/GIT packages (changes to the package are usually often and will be reflected in the Template:Codeline), makepkg will require it.
  • Don't forget to include the appropriate VCS tool (cvs, subversion, git, ...) in Template:Codeline.
  • To preserve the integrity of the checked-out code consider copying the original build directory if you have to make edits. For example, having checked out source code to Template:Filename from Template:Filename you can use:
mkdir src/$_cvsmod-build

cd src/$_cvsmod-build
../$_cvsmod/configure

or:

cp -r src/$_cvsmod src/$_cvsmod-build
cd src/$_cvsmod-build
  • With the introduction of the AUR, it is most important to avoid using backtick execution to create package variables. makepkg will automatically bump the Template:Codeline anyway when building the package (unless Template:Codeline is used).

Mercurial Prototype

# Maintainer: Alias <name@email.org>

...
source=()
md5sums=()

_hgroot="http://hg.dillo.org/dillo"
_hgrepo="dillo"

build() {
  cd $srcdir

  msg "Connecting to $_hgroot"
  if [ -d $_hgrepo ]; then
    cd $_hgrepo
    hg pull -u || return 1
    msg2 "Finished updating the local repository!"
  else
    hg clone $_hgroot $_hgrepo || return 1
    msg2 "Initial pull complete!"
  fi

...