Difference between revisions of "VCS package guidelines"

From ArchWiki
Jump to: navigation, search
(Make clear that a suffix is mandatory)
(Clarified -vcs rule)
Line 21: Line 21:
 
== Guidelines ==
 
== Guidelines ==
  
* Properly suffix {{Codeline|pkgname}} with {{Codeline|-cvs}}, {{Codeline|-svn}}, {{Codeline|-hg}}, {{Codeline|-darcs}}, {{Codeline|-bzr}} or {{Codeline|-git}}.
+
* Properly suffix {{Codeline|pkgname}} with {{Codeline|-cvs}}, {{Codeline|-svn}}, {{Codeline|-hg}}, {{Codeline|-darcs}}, {{Codeline|-bzr}} or {{Codeline|-git}}. If the package tracks a moving development trunk it should be given a suffix. If the package fetches a release from a VCS tag then it should not be given a suffix. Use this rule of thumb: if the output of the package depends on the time at which it was compiled, append a suffix; otherwise do not.
  
 
* When [[makepkg]] is run, by default it will check for newer revisions and then update the {{Codeline|pkgver}} in the PKGBUILD.  Look at {{Codeline|--holdver}} in [http://www.archlinux.org/pacman/makepkg.8.html man makepkg] if you want otherwise.  {{Codeline|--holdver}} only works for cvs and svn, which allow checkout of older revisions.
 
* When [[makepkg]] is run, by default it will check for newer revisions and then update the {{Codeline|pkgver}} in the PKGBUILD.  Look at {{Codeline|--holdver}} in [http://www.archlinux.org/pacman/makepkg.8.html man makepkg] if you want otherwise.  {{Codeline|--holdver}} only works for cvs and svn, which allow checkout of older revisions.

Revision as of 15:24, 3 December 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 – فارسی

Template:Article summary start Template:Article summary text 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 end

Guidelines for creating PKGBUILDs for software managed with version control systems.

Prototypes

The Template:Package Official package provides prototypes for cvs, svn, git, mercurial, and darcs PKGBUILDs. When abs is installed, you can find them in Template:Filename.

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).