Difference between revisions of "VCS package guidelines"

From ArchWiki
Jump to: navigation, search
(use i18n template)
Line 1: Line 1:
 
[[Category:Package development (English)]]
 
[[Category:Package development (English)]]
 
[[Category:Guidelines (English)]]
 
[[Category:Guidelines (English)]]
 +
{{i18n|VCS PKGBUILD Guidelines}}
 
{{Article summary start}}
 
{{Article summary start}}
 
{{Article summary text|Creating PKGBUILDs for software managed with version control systems.}}
 
{{Article summary text|Creating PKGBUILDs for software managed with version control systems.}}
{{Article summary heading|Available in languages}}
+
{{Article summary heading|Related}}
{{i18n entry|English|VCS PKGBUILD guidelines}}
+
{{Article summary heading|Related articles}}
+
 
{{Article summary wiki|Arch Build System}}
 
{{Article summary wiki|Arch Build System}}
 
{{Article summary wiki|Building Packages in Arch Linux}}
 
{{Article summary wiki|Building Packages in Arch Linux}}
Line 14: Line 13:
 
{{Article summary wiki|PKGBUILD Variables}}
 
{{Article summary wiki|PKGBUILD Variables}}
 
{{Article summary end}}
 
{{Article summary end}}
 +
 
Guidelines for creating PKGBUILDs for software managed with version control systems.
 
Guidelines for creating PKGBUILDs for software managed with version control systems.
  

Revision as of 18:44, 2 February 2010

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Summary help replacing me
Creating PKGBUILDs for software managed with version control systems.
Related
Arch Build System
Building Packages in Arch Linux
Arch Linux User-Community Repository (AUR)
makepkg
pacman
PKGBUILD Tricks
PKGBUILD Variables

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

# Contributor: Name <youremail@domain.com>

pkgname=NAME-hg
...
source=()
md5sums=()

_hgroot="HGURL"
_hgrepo="MODENAME"

build() {
  cd $srcdir

  msg "Connecting to Mercurial server..."
  if [ -d $_hgrepo ]; then
    cd $_hgrepo
    hg pull -u || return 1
    msg2 "The local files have been updated"
  else
    hg clone $_hgroot $_hgrepo || return 1
    msg2 "Mercurial checkout done"
  fi

...