summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/.gitignore11
-rw-r--r--doc/Doxyfile237
-rw-r--r--doc/Makefile.am71
-rw-r--r--doc/PKGBUILD-example.txt20
-rw-r--r--doc/PKGBUILD.5288
-rw-r--r--doc/PKGBUILD.5.txt309
-rw-r--r--doc/asciidoc.conf70
-rw-r--r--doc/footer.txt24
-rw-r--r--doc/libalpm.353
-rw-r--r--doc/libalpm.3.txt39
-rw-r--r--doc/makepkg.8142
-rw-r--r--doc/makepkg.8.txt151
-rw-r--r--doc/makepkg.conf.5146
-rw-r--r--doc/makepkg.conf.5.txt154
-rw-r--r--doc/pacman.8293
-rw-r--r--doc/pacman.8.txt319
-rw-r--r--doc/pacman.conf.5139
-rw-r--r--doc/pacman.conf.5.txt160
-rw-r--r--doc/repo-add.8.txt51
19 files changed, 1607 insertions, 1070 deletions
diff --git a/doc/.gitignore b/doc/.gitignore
index b6ab6ec3..e10f61a4 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1,4 +1,9 @@
-Makefile
-Makefile.in
-*.html
+PKGBUILD.5
+libalpm.3
+makepkg.8
+makepkg.conf.5
+pacman.8
+pacman.conf.5
+repo-add.8
+*.xml
man3
diff --git a/doc/Doxyfile b/doc/Doxyfile
new file mode 100644
index 00000000..5174c651
--- /dev/null
+++ b/doc/Doxyfile
@@ -0,0 +1,237 @@
+# Doxyfile 1.5.2
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = libalpm
+PROJECT_NUMBER =
+OUTPUT_DIRECTORY = ./
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+ALWAYS_DETAILED_SEC = YES
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = NO
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 4
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = NO
+BUILTIN_STL_SUPPORT = NO
+CPP_CLI_SUPPORT = NO
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = NO
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = NO
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = YES
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_DIRECTORIES = NO
+FILE_VERSION_FILTER =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = ../lib/libalpm/
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS =
+RECURSIVE = NO
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXCLUDE_SYMBOLS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS = *
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = NO
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = NO
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = NO
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = NO
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+BINARY_TOC = NO
+TOC_EXPAND = NO
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = NO
+TREEVIEW_WIDTH = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+USE_PDFLATEX = NO
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = YES
+MAN_OUTPUT = .
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH = ../..
+INCLUDE_FILE_PATTERNS = *.h
+PREDEFINED = HAVE_CONFIG_H= SYMHIDDEN= SYMEXPORT=
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = NO
+MSCGEN_PATH =
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = YES
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
+CALLER_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+DOT_GRAPH_MAX_NODES = 50
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
diff --git a/doc/Makefile.am b/doc/Makefile.am
index f748ee6b..abc761b8 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,17 +1,76 @@
-man_MANS = \
+# We have to do some funny stuff here with the manpages. In order to ensure
+# a dist tarball doesn't get put out there without manpages, we keep those
+# files listed in EXTRA_DIST no matter what. However, we only add them to
+# man_MANS if --enable-asciidoc and/or --enable-doxygen are used.
+
+ASCIIDOC_MANS = \
pacman.8 \
makepkg.8 \
+ repo-add.8 \
PKGBUILD.5 \
makepkg.conf.5 \
pacman.conf.5 \
libalpm.3
-if HAS_DOXYGEN
-man_MANS += $(wildcard man3/*.3)
+DOXYGEN_MANS = $(wildcard man3/*.3)
+
+man_MANS =
+
+if USE_ASCIIDOC
+man_MANS += $(ASCIIDOC_MANS)
endif
+if USE_DOXYGEN
+man_MANS += $(DOXYGEN_MANS)
+endif
+
+EXTRA_DIST = \
+ pacman.8.txt \
+ makepkg.8.txt \
+ repo-add.8.txt \
+ PKGBUILD.5.txt \
+ PKGBUILD-example.txt \
+ makepkg.conf.5.txt \
+ pacman.conf.5.txt \
+ libalpm.3.txt \
+ footer.txt \
+ Doxyfile \
+ $(ASCIIDOC_MANS) \
+ $(DOXYGEN_MANS)
+
+# Files that should be removed, but which Automake does not know.
+MOSTLYCLEANFILES = $(DOXYGEN_MANS) *.xml
-EXTRA_DIST = $(man_MANS)
+if USE_DOXYGEN
+all: doxygen.in
-clean-local:
- $(RM) man3/*.3
+doxygen.in:
+ $(DOXYGEN) $(srcdir)/Doxyfile
+endif
+
+if USE_ASCIIDOC
+ASCIIDOC_OPTS = \
+ -f asciidoc.conf \
+ -a pacman_version="$(PACKAGE_VERSION)" \
+ -a pacman_date="`date +%Y-%m-%d`" \
+ -a sysconfdir=$(sysconfdir)
+A2X_OPTS = \
+ -d manpage \
+ -f manpage \
+ --xsltproc-opts='-param man.endnotes.list.enabled 0' \
+ --xsltproc-opts='-param man.endnotes.are.numbered 0'
+
+$(ASCIIDOC_MANS):
+ a2x $(A2X_OPTS) --asciidoc-opts="$(ASCIIDOC_OPTS)" $@.txt
+
+# These rules are due to the includes and files of the asciidoc text
+$(ASCIIDOC_MANS): footer.txt
+pacman.8: pacman.8.txt
+makepkg.8: makepkg.8.txt
+repo-add.8: repo-add.8.txt
+PKGBUILD.5: PKGBUILD.5.txt PKGBUILD-example.txt
+makepkg.conf.5: makepkg.conf.5.txt
+pacman.conf.5: pacman.conf.5.txt
+libalpm.3: libalpm.3.txt
+endif
+# vim:set ts=2 sw=2 noet:
diff --git a/doc/PKGBUILD-example.txt b/doc/PKGBUILD-example.txt
new file mode 100644
index 00000000..2cc53808
--- /dev/null
+++ b/doc/PKGBUILD-example.txt
@@ -0,0 +1,20 @@
+# Maintainer: judd <jvinet@zeroflux.org>
+
+pkgname=patch
+pkgver=2.5.4
+pkgrel=3
+pkgdesc="A utility to apply patch files to original sources"
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/patch/patch.html"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc' 'ed')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('ee5ae84d115f051d87fcaaef3b4ae782')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+}
diff --git a/doc/PKGBUILD.5 b/doc/PKGBUILD.5
deleted file mode 100644
index 747b9f15..00000000
--- a/doc/PKGBUILD.5
+++ /dev/null
@@ -1,288 +0,0 @@
-." the string declarations are a start to try and make distro independent
-.ds DS Arch Linux
-.ds PB PKGBUILD
-.ds VR 3.0.0
-.TH \*(PB 5 "Feb 07, 2007" "\*(PB version \*(VR" "\*(DS Files"
-.SH NAME
-\*(PB \- \*(DS package build description file
-
-.SH DESCRIPTION
-This manual page is meant to describe general rules about \fB\*(PB\fPs. Once
-a \fB\*(PB\fP is written, the actual package is built using \fBmakepkg\fP and
-installed with \fBpacman\fP.
-
-\fBNOTE:\fP If you have a local copy of the Arch Build System (ABS) tree
-on your computer, you can copy the \*(PB.proto file to your new package
-build directory and edit it from there. To acquire/sync the ABS tree, use
-the \fBabs\fP script included with \fBpacman\fP.
-
-.SH OPTIONS AND DIRECTIVES
-.TP
-.B pkgname
-The name of the package. This has be a unix-friendly name as it will be
-used in the package filename.
-
-.TP
-.B pkgver
-The version of the software as released from the author (e.g. 2.7.1).
-
-.TP
-.B pkgrel
-This is the release number specific to the \*(DSs release. This allows package
-maintainers to make updates to the package's configure flags, for example.
-
-.TP
-.B pkgdesc
-This should be a brief description of the package and its functionality. Try to
-keep the description to one line of text.
-
-.TP
-.B url
-This field contains a URL that is associated with the software being packaged.
-This is typically the project's website.
-
-.TP
-.B license (array)
-This field specifies the license(s) that apply to the package. Commonly-used
-licenses are found in \fI/usr/share/licenses/common\fP. If you see the
-package's license there, simply reference it in the license field (e.g.
-\fBlicense=("GPL")\fP). If the package provides a license not found in
-\fI/usr/share/licenses/common\fP, then you should include the license in the
-package itself and set \fBlicense=("custom")\fP or
-\fBlicense=("custom:LicenseName")\fP. The license should be placed in
-\fI$startdir/pkg/usr/share/licenses/$pkgname\fP when building the package. If
-multiple licenses are applicable for a package, list all of them:
-\fBlicenses=('GPL' 'FDL')\fP.
-
-.TP
-.B install
-Specifies a special install script that is to be included in the package. This
-file should reside in the same directory as the \fB\*(PB\fP, and will be copied
-into the package by \fBmakepkg\fP. It does not need to be included in the
-\fIsource\fP array (e.g. \fBinstall=pkgname.install\fP).
-
-.TP
-.B source \fI(array)\fP
-An array of source files required to build the package. Source files must
-either reside in the same directory as the \fB\*(PB file\fP, or be a
-fully-qualified URL that makepkg will use to download the file. In order to
-make the PKGBUILD as useful as possible, use the \fB$pkgname\fP and
-\fB$pkgver\fP variables if possible when specifying the download location.
-
-.TP
-.B noextract \fI(array)\fP
-An array of filenames corresponding to those from the \fBsource\fP array. Files
-listed here will not be extracted with the rest of the source files. This is
-useful for packages which use compressed data which is downloaded but not
-necessary to uncompress.
-
-.TP
-.B md5sums \fI(array)\fP
-This array contains an MD5 hash for every source file specified in the
-\fBsource\fP array (in the same order). \fBmakepkg\fP will use this to verify
-source file integrity during subsequent builds. To easily generate md5sums, run
-"makepkg -g >> \*(PB". If desired, move the \fBmd5sums\fP line to an
-appropriate location. NOTE: \fBmakepkg\fP supports multiple integrity
-algorithms and their corresponding arrays (i.e. sha1sums for the SHA1
-algorithm); however, official packages use only md5sums for the time being.
-
-.TP
-.B sha1sums, etc.
-Alternative integrity checks that \fBmakepkg\fP supports, as noted in
-\fBmd5sums\fP above.
-
-.TP
-.B groups \fI(array)\fP
-An array of symbolic names that represent groups of packages, allowing
-you to install multiple packages by requesting a single target. For example,
-one could install all KDE packages by installing the 'kde' group.
-
-.TP
-.B arch \fI(array)\fP
-Defines on which architectures the given package is available (e.g.
-\fBarch=('i686' 'x86_64')\fP).
-
-.TP
-.B backup \fI(array)\fP
-A space-delimited array of filenames, \fIwithout\fP preceding slashes, that
-should be backed up if the package is removed or upgraded. This is commonly
-used for packages placing configuration files in /etc. See \fBHANDLING CONFIG
-FILES\fP in the \fBpacman\fP manpage for more information.
-
-.TP
-.B depends \fI(array)\fP
-An array of packages that this package depends on to run. Packages in this list
-should be surrounded with single quotes and contain at least the package name.
-Entries can also include a version requirement of the form
-\fB'name<>version'\fP, where <> is one of three comparisons: \fI>=\fP (greater
-than or equal to), \fI<=\fP (less than or equal to), or \fI=\fP (equal to).
-
-.TP
-.B makedepends \fI(array)\fP
-An array of packages that this package depends on to build, but are not needed
-at runtime. Packages in this list follow the same format as \fBdepends\fP.
-
-.TP
-.B conflicts \fI(array)\fP
-An array of packages that will conflict with this package (i.e. they cannot
-both be installed at the same time). This directive follows the same format as
-\fIdepends\fP, except you cannot specify versions.
-
-.TP
-.B provides \fI(array)\fP
-An array of "virtual provisions" that this package provides. This allows a
-package to provide dependencies other than its own package name. For example,
-the dcron package can provide 'cron', which allows packages to depend on 'cron'
-rather than 'dcron OR fcron'.
-
-.TP
-.B replaces \fI(array)\fP
-An array of packages that this package should replace, and can be used to
-handle renamed/combined packages. For example, if the 'j2re' package is renamed
-to 'jre', this directive allows future upgrades to continue as expected even
-though the package has moved.
-
-.TP
-.B options \fI(array)\fP
-This array allows you to override some of \fBmakepkg\fP's default behavior when
-building packages. To set an option, just include the option name in the
-\fBoptions\fP array. To reverse the default behavior, place an "!" at the front
-of the option. Only specify the options you specifically want to override, the
-rest will be taken from \fBmakepkg.conf\fP. NOTE: 'force' is a special option
-only used in \fB\*(PB\fPs, do not use it unless you know what you are doing.
-.RS
-.TP
-.B strip
-Strip symbols from binaries and libraries. If you frequently use a debugger on
-programs or libraries, it may be helpful to disable this option.
-.TP
-.B docs
-Save doc and info directories. If you wish to delete doc and info directories,
-specify "!docs" in the array.
-.TP
-.B libtool
-Leave libtool (.la) files in packages. Specify "!libtool" to remove them.
-.TP
-.B emptydirs
-Leave empty directories in packages.
-.TP
-.B ccache
-Allow the use of \fBccache\fP during build. More useful in its negative form
-"!ccache" with select packages that have problems building with \fBccache\fP.
-.TP
-.B distcc
-Allow the use of \fBdistcc\fP during build. More useful in its negative form
-"!distcc" with select packages that have problems building with \fBdistcc\fP.
-.TP
-.B makeflags
-Allow the use of user-specific makeflags during build as specified in
-\fBmakepkg.conf\fP. More useful in its negative form "!makeflags" with select
-packages that have problems building with custom makeflags such as "-j2" (or
-higher).
-.TP
-.B force
-Force the package to be upgraded by a \fBpacman\fP system upgrade operation,
-even if the version number would normally not trigger such an upgrade. This is
-useful when the version numbering scheme of a package changes (or is
-alphanumeric).
-.RE
-
-.SH INSTALL/UPGRADE/REMOVE SCRIPTING
-\fBPacman\fP has the ability to store and execute a package-specific script
-when it installs, removes, or upgrades a package. This allows a package to
-configure itself after installation and do the opposite right before it is
-removed.
-
-The exact time the script is run varies with each operation:
-
-.TP
-.B pre_install
-script is run right before files are extracted.
-
-.TP
-.B post_install
-script is run right after files are extracted.
-
-.TP
-.B pre_upgrade
-script is run right before files are extracted.
-
-.TP
-.B post_upgrade
-script is run after files are extracted.
-
-.TP
-.B pre_remove
-script is run right before files are removed.
-
-.TP
-.B post_remove
-script is run right after files are removed.
-
-.P
-To use this feature, create a file such as 'pkgname.install' and put it in
-the same directory as the \fB\*(PB\fP script. Then use the \fBinstall\fP
-directive:
-
-.RS
-.nf
-install=pkgname.install
-.fi
-.RE
-
-The install script does not need to be specified in the \fBsource\fP array.
-A template install file is available in the ABS tree (/var/abs/install.proto).
-
-.SH EXAMPLE
-The following is an example \fB\*(PB\fP for the 'modutils' package. For more
-examples, look through the ABS tree.
-
-.nf
-# Maintainer: John Doe <johndoe@archlinux.org>
-# Contributor: Bill Smith <billsmith@archlinux.org>
-pkgname=modutils
-pkgver=2.4.25
-pkgrel=1
-pkgdesc="Utilities for inserting modules in the linux kernel"
-url="http://www.kernel.org"
-makedepends=('bash' 'mawk')
-depends=('glibc' 'zlib')
-backup=(etc/modules.conf)
-source=(ftp://ftp.kernel.org/pub/linux/utils/kernel/$pkgname/v2.4/$pkgname-$pkgver.tar.bz2
- modules.conf)
-arch=('i686')
-license=('GPL' 'custom') # dual licensed
-md5sums=('2c0cca3ef6330a187c6ef4fe41ecaa4d'
- '35175bee593a7cc7d6205584a94d8625')
-options=(!libtool)
-
-build() {
- cd $startdir/src/$pkgname-$pkgver
- ./configure --prefix=/usr --enable-insmod-static
- make || return 1
- make prefix=$startdir/pkg/usr install
- mv $startdir/pkg/usr/sbin $startdir/pkg
- mkdir -p $startdir/pkg/etc
- cp ../modules.conf $startdir/pkg/etc
-}
-.fi
-
-.SH SEE ALSO
-.BR makepkg (8),
-.BR pacman (8),
-.BR makepkg.conf (5)
-
-See the Arch Linux website at <http://www.archlinux.org> for more current
-information on the distribution and the \fBpacman\fP family of tools, and
-<http://wiki.archlinux.org/index.php/Arch_Packaging_Standards> for
-recommendations on packaging standards.
-
-.SH AUTHORS
-.nf
-Judd Vinet <jvinet@zeroflux.org>
-Aurelien Foret <aurelien@archlinux.org>
-Aaron Griffin <aaron@archlinux.org>
-Dan McGee <dan@archlinux.org>
-.fi
-
-See the 'AUTHORS' file for additional contributors.
diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
new file mode 100644
index 00000000..d022c9af
--- /dev/null
+++ b/doc/PKGBUILD.5.txt
@@ -0,0 +1,309 @@
+/////
+vim:set ts=4 sw=4 syntax=asciidoc noet:
+/////
+PKGBUILD(5)
+===========
+
+Name
+----
+PKGBUILD - Arch Linux package build description file
+
+
+Synopsis
+--------
+PKGBUILD
+
+
+Description
+-----------
+This manual page is meant to describe general rules about PKGBUILDs. Once a
+PKGBUILD is written, the actual package is built using makepkg and installed
+with pacman.
+
+NOTE: If you have a local copy of the Arch Build System (ABS) tree on your
+computer, you can copy the PKGBUILD.proto file to your new package build
+directory and edit it from there. To acquire/sync the ABS tree, use the abs
+script included with pacman.
+
+
+Options and Directives
+----------------------
+*pkgname*::
+ The name of the package. This has be a unix-friendly name as it will be
+ used in the package filename.
+
+*pkgver*::
+ The version of the software as released from the author (e.g. \'2.7.1').
+
+*pkgrel*::
+ This is the release number specific to the Arch Linux release. This
+ allows package maintainers to make updates to the package's configure
+ flags, for example. A pkgrel of 1 is typically used for each upstream
+ software release and is incremented for intermediate PKGBUILD updates.
+
+*pkgdesc*::
+ This should be a brief description of the package and its functionality.
+ Try to keep the description to one line of text.
+
+*url*::
+ This field contains a URL that is associated with the software being
+ packaged. This is typically the project's website.
+
+*license (array)*::
+ This field specifies the license(s) that apply to the package.
+ Commonly-used licenses are found in '/usr/share/licenses/common'. If you
+ see the package's license there, simply reference it in the license
+ field (e.g. `$$license=('GPL')$$`). If the package provides a license not
+ found in '/usr/share/licenses/common', then you should include the license
+ in the package itself and set `$$license=('custom')$$` or
+ `$$license=('custom:LicenseName')$$`. The license should be placed in
+ '$pkgdir/usr/share/licenses/$pkgname' when building the package. If
+ multiple licenses are applicable for a package, list all of them:
+ `$$license=('GPL' 'FDL')$$`.
+
+*install*::
+ Specifies a special install script that is to be included in the package.
+ This file should reside in the same directory as the PKGBUILD, and will
+ be copied into the package by makepkg. It does not need to be included
+ in the source array (e.g. `$$install=pkgname.install$$`).
+
+*source (array)*::
+ An array of source files required to build the package. Source files
+ must either reside in the same directory as the PKGBUILD file, or be a
+ fully-qualified URL that makepkg will use to download the file. In order
+ to make the PKGBUILD as useful as possible, use the $pkgname and $pkgver
+ variables if possible when specifying the download location. Any files
+ that are compressed will automatically be extracted, unless found in
+ the noextract array listed below.
+
+*noextract (array)*::
+ An array of filenames corresponding to those from the source array. Files
+ listed here will not be extracted with the rest of the source files. This
+ is useful for packages which use compressed data which is downloaded but
+ not necessary to uncompress.
+
+*md5sums (array)*::
+ This array contains an MD5 hash for every source file specified in the
+ source array (in the same order). makepkg will use this to verify source
+ file integrity during subsequent builds. To easily generate md5sums, run
+ ``makepkg -g >> PKGBUILD''. If desired, move the md5sums line to an
+ appropriate location. *NOTE:* makepkg supports multiple integrity
+ algorithms and their corresponding arrays (i.e. sha1sums for the SHA1
+ algorithm); however, official packages use only md5sums for the time
+ being.
+
+*sha1sums, etc.*::
+ Alternative integrity checks that makepkg supports, as noted in md5sums
+ above.
+
+*groups (array)*::
+ An array of symbolic names that represent groups of packages, allowing
+ you to install multiple packages by requesting a single target. For
+ example, one could install all KDE packages by installing the 'kde' group.
+
+*arch (array)*::
+ Defines on which architectures the given package is available (e.g.
+ `$$arch=('i686' 'x86_64')$$`).
+
+*backup (array)*::
+ A space-delimited array of filenames, without preceding slashes, that
+ should be backed up if the package is removed or upgraded. This is
+ commonly used for packages placing configuration files in /etc. See
+ Handling Config Files in manlink:pacman[8] for more information.
+
+*depends (array)*::
+ An array of packages that this package depends on to run. Packages in
+ this list should be surrounded with single quotes and contain at least
+ the package name. Entries can also include a version requirement of the
+ form 'name<>version', where <> is one of three comparisons: >= (greater
+ than or equal to), <= (less than or equal to), or = (equal to).
+
+*makedepends (array)*::
+ An array of packages that this package depends on to build, but are not
+ needed at runtime. Packages in this list follow the same format as
+ depends.
+
+*conflicts (array)*::
+ An array of packages that will conflict with this package (i.e. they
+ cannot both be installed at the same time). This directive follows the
+ same format as depends. Versioned conflicts are also supported.
+
+*provides (array)*::
+ An array of ``virtual provisions'' that this package provides. This allows
+ a package to provide dependencies other than its own package name. For
+ example, the dcron package can provide 'cron', which allows packages to
+ depend on 'cron' rather than 'dcron OR fcron'.
+ Versioned provisions are also possible. For example, dcron can provide
+ 'cron 2.0' to satisfy the 'cron>=2.0' dependency of other packages.
+
+*replaces (array)*::
+ An array of packages that this package should replace, and can be used
+ to handle renamed/combined packages. For example, if the 'j2re' package
+ is renamed to 'jre', this directive allows future upgrades to continue
+ as expected even though the package has moved. Sysupgrade is currently
+ the only pacman operation that utilizes this field, a normal sync will
+ not use its value.
+
+*options (array)*::
+ This array allows you to override some of makepkg's default behavior
+ when building packages. To set an option, just include the option name
+ in the options array. To reverse the default behavior, place an ``!'' at
+ the front of the option. Only specify the options you specifically want
+ to override, the rest will be taken from manlink:makepkg.conf[5].
+ *NOTE:* 'force' is a special option only used in a manlink:PKGBUILD[5],
+ do not use it unless you know what you are doing.
+
+ *strip*;;
+ Strip symbols from binaries and libraries. If you frequently
+ use a debugger on programs or libraries, it may be helpful to
+ disable this option.
+
+ *docs*;;
+ Save doc and info directories. If you wish to delete doc and
+ info directories, specify `!docs` in the array.
+
+ *libtool*;;
+ Leave libtool (.la) files in packages. Specify `!libtool` to
+ remove them.
+
+ *emptydirs*;;
+ Leave empty directories in packages.
+
+ *ccache*;;
+ Allow the use of ccache during build. More useful in its negative
+ form `!ccache` with select packages that have problems building
+ with ccache.
+
+ *distcc*;;
+ Allow the use of distcc during build. More useful in its negative
+ form `!distcc` with select packages that have problems building
+ with distcc.
+
+ *makeflags*;;
+ Allow the use of user-specific makeflags during build as specified
+ in manlink:makepkg.conf[5]. More useful in its negative form
+ `!makeflags` with select packages that have problems building with
+ custom makeflags such as `-j2` (or higher).
+
+ *force*;;
+ Force the package to be upgraded by a pacman system upgrade
+ operation, even if the version number would normally not trigger
+ such an upgrade. This is useful when the version numbering scheme
+ of a package changes (or is alphanumeric).
+
+
+Install/Upgrade/Remove Scripting
+--------------------------------
+Pacman has the ability to store and execute a package-specific script when it
+installs, removes, or upgrades a package. This allows a package to configure
+itself after installation and perform an opposite action upon removal.
+
+The exact time the script is run varies with each operation:
+
+*pre_install*::
+ script is run right before files are extracted.
+
+*post_install*::
+ script is run right after files are extracted.
+
+*pre_upgrade*::
+ script is run right before files are extracted.
+
+*post_upgrade*::
+ script is run after files are extracted.
+
+*pre_remove*::
+ script is run right before files are removed.
+
+*post_remove*::
+ script is run right after files are removed.
+
+To use this feature, create a file such as 'pkgname.install' and put it in the
+same directory as the PKGBUILD script. Then use the install directive:
+
+ install=pkgname.install
+
+The install script does not need to be specified in the source array. A
+template install file is available in the ABS tree (/var/abs/install.proto).
+
+
+Development Directives
+----------------------
+makepkg supports building development versions of packages without having to
+manually update the pkgver in the PKGBUILD. This was formerly done using the
+separate utility 'versionpkg'. In order to utilize this functionality, your
+PKGBUILD must use correct variable names depending on the SCM being fetched
+from.
+
+*CVS*::
+ The generated pkgver will be the date the package is built.
+
+ *_cvsroot*;;
+ The root of the CVS repository.
+
+ *_cvsmod*;;
+ The CVS module to fetch.
+
+*SVN*::
+ The generated pkgver will be the latest SVN revision number.
+
+ *_svntrunk*;;
+ The trunk of the SVN repository.
+
+ *_cvsmod*;;
+ The SVN module to fetch.
+
+*Git*::
+ The generated pkgver will be one formatted by the 'git-describe'
+ command, with '-' characters converted to '_' characters.
+
+ *_gitroot*;;
+ The URL (all protocols supported) to the GIT repository.
+
+ *_gitname*;;
+ GIT tag or branch to use.
+
+*Mercurial*::
+ The generated pkgver will be the hg tip revision number.
+
+ *_hgroot*;;
+ The URL of the mercurial repository.
+
+ *_hgrepo*;;
+ The repository to follow.
+
+*Darcs*::
+ The generated pkgver will be the date the package is built.
+
+ *_darcstrunk*;;
+ URL to the repository trunk.
+
+ *_darcsmod*;;
+ Darcs module to use.
+
+*Bazaar*::
+ The generated pkgver will be the latest Bazaar revision number (revno).
+
+ *_bzrtrunk*;;
+ URL to the bazaar repository.
+
+ *_bzrmod*;;
+ Bazaar module to use.
+
+
+Example
+-------
+The following is an example PKGBUILD for the 'patch' package. For more
+examples, look through the ABS tree.
+
+[sh]
+source~~~~~
+include::PKGBUILD-example.txt[]
+source~~~~~
+
+
+See Also
+--------
+manlink:makepkg[8], manlink:pacman[8], manlink:makepkg.conf[5]
+
+include::footer.txt[]
diff --git a/doc/asciidoc.conf b/doc/asciidoc.conf
new file mode 100644
index 00000000..98308f53
--- /dev/null
+++ b/doc/asciidoc.conf
@@ -0,0 +1,70 @@
+#
+# Inspired by/borrowed from the GIT source tree at Documentation/asciidoc.conf
+#
+
+## manlink: macro
+#
+# Usage: manlink:command[manpage-section]
+#
+# Note, {0} is the manpage section, while {target} is the command.
+#
+# Show man link as: <command>(<section>); if section is defined, else just show
+# the command.
+
+[attributes]
+plus=&#43;
+caret=&#94;
+startsb=&#91;
+endsb=&#93;
+tilde=&#126;
+
+ifdef::backend-docbook[]
+[manlink-inlinemacro]
+{0%{target}}
+{0#<citerefentry>}
+{0#<refentrytitle>{target}</refentrytitle><manvolnum>{0}</manvolnum>}
+{0#</citerefentry>}
+endif::backend-docbook[]
+
+ifdef::backend-docbook[]
+# "unbreak" docbook-xsl v1.68 for manpages. v1.69 works with or without this.
+[listingblock]
+<example><title>{title}</title>
+<literallayout>
+ifdef::doctype-manpage[]
+&#10;.ft C&#10;
+endif::doctype-manpage[]
+|
+ifdef::doctype-manpage[]
+&#10;.ft&#10;
+endif::doctype-manpage[]
+</literallayout>
+{title#}</example>
+endif::backend-docbook[]
+
+ifdef::doctype-manpage[]
+ifdef::backend-docbook[]
+[header]
+template::[header-declarations]
+<refentry>
+<refentryinfo>
+<date>{pacman_date}</date>
+</refentryinfo>
+<refmeta>
+<refentrytitle>{mantitle}</refentrytitle>
+<manvolnum>{manvolnum}</manvolnum>
+<refmiscinfo class="source">Pacman</refmiscinfo>
+<refmiscinfo class="version">{pacman_version}</refmiscinfo>
+<refmiscinfo class="manual">Pacman Manual</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>{manname}</refname>
+ <refpurpose>{manpurpose}</refpurpose>
+</refnamediv>
+endif::backend-docbook[]
+endif::doctype-manpage[]
+
+ifdef::backend-xhtml11[]
+[manlink-inlinemacro]
+<a href="{target}.{0}.html">{target}{0?({0})}</a>
+endif::backend-xhtml11[]
diff --git a/doc/footer.txt b/doc/footer.txt
new file mode 100644
index 00000000..4d7a9c95
--- /dev/null
+++ b/doc/footer.txt
@@ -0,0 +1,24 @@
+/////
+vim:set ts=4 sw=4 syntax=asciidoc noet:
+/////
+See the Arch Linux website at http://www.archlinux.org[] for more current
+information on the distribution and the pacman family of tools, and
+http://wiki.archlinux.org/index.php/Arch_Packaging_Standards[] for
+recommendations on packaging standards.
+
+
+Bugs
+----
+Bugs? You must be kidding, there are no bugs in this software. But if we
+happen to be wrong, send us an email with as much detail as possible to
+mailto:pacman-dev@archlinux.org[].
+
+
+Authors
+-------
+* Judd Vinet <jvinet@zeroflux.org>
+* Aurelien Foret <aurelien@archlinux.org>
+* Aaron Griffin <aaron@archlinux.org>
+* Dan McGee <dan@archlinux.org>
+
+See the 'AUTHORS' file for additional contributors.
diff --git a/doc/libalpm.3 b/doc/libalpm.3
deleted file mode 100644
index e78e9eca..00000000
--- a/doc/libalpm.3
+++ /dev/null
@@ -1,53 +0,0 @@
-." the string declarations are a start to try and make distro independent
-.ds DS Arch Linux
-.ds PB PKGBUILD
-.ds VR 3.0.0
-.ds LV 1.0.0
-.TH libalpm 3 "Feb 08, 2007" "libalpm version \*(LV" "\*(DS Utilities"
-.SH NAME
- libalpm \- Arch Linux Package Management (ALPM) library
-
-.SH SYNOPSIS
-For ease of access, the libalpm manual has been split up into several sections.
-
-(TODO) Yes, this man page needs a lot of work. Once we get around to doing good
-Doxygen documentation, it will improve. We promise.
-
-.nf
-alpm_databases Database Functions
-alpm_interface Interface Functions
-alpm_list List Functions
-alpm_log Logging Functions
-alpm_misc Miscellaneous Functions
-alpm_packages Package Functions
-alpm_sync Sync Functions
-alpm_trans Transaction Functions
-.fi
-
-.SH CONFIGURATION
-See
-.BR pacman.conf (5)
-for more details on configuring \fBlibalpm\fP using the \fBpacman.conf\fP file.
-
-.SH BUGS
-Bugs? You must be kidding, there are no bugs in this software. But if we happen
-to be wrong, send us an email with as much detail as possible to
-<pacman-dev@archlinux.org>.
-
-.SH SEE ALSO
-.BR pacman (8),
-.BR makepkg (8),
-.BR pacman.conf (5)
-
-See the Arch Linux website at <http://www.archlinux.org> for more current
-information on the distribution and the \fBpacman\fP family of tools.
-
-.SH AUTHORS
-.nf
-Judd Vinet <jvinet@zeroflux.org>
-Aurelien Foret <aurelien@archlinux.org>
-Aaron Griffin <aaron@archlinux.org>
-Dan McGee <dan@archlinux.org>
-.fi
-
-See the 'AUTHORS' file for additional contributors.
diff --git a/doc/libalpm.3.txt b/doc/libalpm.3.txt
new file mode 100644
index 00000000..d8fb58e8
--- /dev/null
+++ b/doc/libalpm.3.txt
@@ -0,0 +1,39 @@
+/////
+vim:set ts=4 sw=4 syntax=asciidoc noet:
+/////
+libalpm(3)
+==========
+
+Name
+----
+libalpm - Arch Linux Package Management (ALPM) library
+
+
+Synopsis
+--------
+For ease of access, the libalpm manual has been split up into several sections.
+
+*TODO:* Yes, this man page needs a lot of work. Once we get around to doing
+good Doxygen documentation, it will improve. We promise.
+
+*alpm_databases*:: Database Functions
+*alpm_interface*:: Interface Functions
+*alpm_list*:: List Functions
+*alpm_log*:: Logging Functions
+*alpm_misc*:: Miscellaneous Functions
+*alpm_packages*:: Package Functions
+*alpm_sync*:: Sync Functions
+*alpm_trans*:: Transaction Functions
+
+
+Configuration
+-------------
+See manlink:pacman.conf[5] for more details on configuring libalpm using the
+'pacman.conf' file.
+
+
+See Also
+--------
+manlink:pacman[8], manlink:makepkg[8], manlink:pacman.conf[5]
+
+include::footer.txt[]
diff --git a/doc/makepkg.8 b/doc/makepkg.8
deleted file mode 100644
index 1e0e2cd9..00000000
--- a/doc/makepkg.8
+++ /dev/null
@@ -1,142 +0,0 @@
-." the string declarations are a start to try and make distro independent
-.ds DS Arch Linux
-.ds PB PKGBUILD
-.ds VR 3.0.0
-.TH makepkg 8 "Feb 07, 2007" "makepkg version \*(VR" "\*(DS Utilities"
-.SH NAME
-makepkg \- package build utility
-
-.SH SYNOPSIS
-.B makepkg
-[\fIoptions\fR]
-
-.SH DESCRIPTION
-\fBmakepkg\fP is a script to automate the building of packages. All it needs is
-a build-capable Linux platform and a custom build script for each package you
-wish to build (known as a \fB\*(PB\fP). See
-.BR \*(PB (5)
-for details on creating your own build scripts.
-
-The advantage to a script-based build is that the work is only done once. Once
-you have the build script for a package, makepkg will do the rest: download and
-validate source files, check dependencies, configure the build-time settings,
-build the package, install the package into a temporary root, make
-customizations, generate meta-info, and package the whole thing up for
-\fBpacman\fP to use.
-
-\fBmakeworld\fP can be used to rebuild an entire package group or the entire
-build tree. See \fBmakeworld --help\fP for syntax.
-
-.SH OPTIONS
-.TP
-.B \-b, --builddeps
-Build missing dependencies from source. When \fBmakepkg\fP finds missing
-build-time or run-time dependencies, it will look for the dependencies'
-\fB\*(PB\fP files under \fIABSROOT\fP (set in \fBmakepkg.conf\fP). If it finds
-them it will call \fBmakepkg\fP to build and install the missing dependencies.
-The child calls will be made with the \fB-b\fP and \fB-i\fP options.
-.TP
-.B \-c, --clean
-Clean up leftover work files and directories after a successful build.
-.TP
-.B \-C, --cleancache
-Removes all cached source files from the directory specified in \fISRCDEST\fP
-in \fBmakepkg.conf\fP.
-.TP
-.B \-d, --nodeps
-Do not perform any dependency checks. This will let you override and ignore any
-dependencies required. There is a good chance this option will break the build
-process if all of the dependencies are not installed.
-.TP
-.B \-e, --noextract
-Do not extract source files; use whatever source already exists in the src/
-directory. This is handy if you want to go into src and manually patch or tweak
-code, then make a package out of the result. Keep in mind that creating a patch
-may be a better solution to allow others to use your \fB\*(PB\fP.
-.TP
-.B \-f, --force
-\fBmakepkg\fP will not build a package if a built package already exists in the
-\fIPKGDEST\fP (set in \fBmakepkg.conf\fP) directory, which may default to the
-current directory. This allows the built package to be overwritten.
-.TP
-.B \-g, --geninteg
-For each source file in the source array of \fB\*(PB\fP, download the file if
-required and generate integrity checks. The integrity checks generated are
-determined by the value of the \fIINTEGRITY_CHECK\fP array in makepkg.conf.
-This output can be redirected into your \fB\*(PB\fP for source validation
-(makepkg -g >> \*(PB).
-.TP
-.B \-h, --help
-Output syntax and command line options.
-.TP
-.B \-i, --install
-Install or upgrade the package after a successful build using \fBpacman\fP.
-.TP
-.B \-m, --nocolor
-Disable color in output messages.
-.TP
-.B \-o, --nobuild
-Download and extract files only, but do not build them. Useful with the
-\fB--noextract\fP option if you wish to tweak the files in src/ before
-building.
-.TP
-.B \-p \fIbuildscript\fP
-Read the package script \fIbuildscript\fP instead of the default, \fI\*(PB\fP.
-.TP
-.B \-r, --rmdeps
-Upon successful build, remove any dependencies installed by \fBmakepkg\fP
-during dependency auto-resolution (using \fB-b\fP or \fB-s\fP).
-.TP
-.B \-R, --repackage
-Repackage contents of pkg/ without rebuilding the package. This is useful if
-you forgot a depend or install file in your \fB\*(PB\fP and the build itself
-will not change.
-.TP
-.B \-s, --syncdeps
-Install missing dependencies using \fBpacman\fP. When missing build-time or
-run-time dependencies are found, \fBpacman\fP will try to resolve them. If
-successful, the missing packages will be downloaded and installed.
-.TP
-.B \-S, --usesudo
-Use \fBsudo\fP to perform all operations that require \fBpacman\fP. This is
-useful for \fB--install\fP, \fB--rmdeps\fP, and \fB--syncdeps\fP. If you are
-building packages as a non-root user as recommended, this option should be used
-if using any option that calls \fBpacman\fP.
-.TP
-.B \--noconfirm
-(Passed to \fBpacman\fP) Prevent \fBpacman\fP from waiting for user input
-before proceeding with operations.
-.TP
-.B \--noprogressbar
-(Passed to \fBpacman\fP) Prevent \fBpacman\fP from displaying a progress bar;
-useful if you are redirecting makepkg output to file.
-
-.SH CONFIGURATION
-See
-.BR makepkg.conf (5)
-for more details on configuring \fBmakepkg\fP using the \fBmakepkg.conf\fP file.
-
-.SH BUGS
-Bugs? You must be kidding, there are no bugs in this software. But if we happen
-to be wrong, send us an email with as much detail as possible to
-<pacman-dev@archlinux.org>.
-
-.SH SEE ALSO
-.BR makepkg.conf (5),
-.BR \*(PB (5),
-.BR pacman (8)
-
-See the Arch Linux website at <http://www.archlinux.org> for more current
-information on the distribution and the \fBpacman\fP family of tools, and
-<http://wiki.archlinux.org/index.php/Arch_Packaging_Standards> for
-recommendations on packaging standards.
-
-.SH AUTHORS
-.nf
-Judd Vinet <jvinet@zeroflux.org>
-Aurelien Foret <aurelien@archlinux.org>
-Aaron Griffin <aaron@archlinux.org>
-Dan McGee <dan@archlinux.org>
-.fi
-
-See the 'AUTHORS' file for additional contributors.
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
new file mode 100644
index 00000000..9da52c79
--- /dev/null
+++ b/doc/makepkg.8.txt
@@ -0,0 +1,151 @@
+/////
+vim:set ts=4 sw=4 syntax=asciidoc noet:
+/////
+makepkg(8)
+==========
+
+Name
+----
+makepkg - package build utility
+
+
+Synopsis
+--------
+makepkg [options]
+
+
+Description
+-----------
+makepkg is a script to automate the building of packages. The requirements for
+using the script are a build-capable \*nix platform and a custom build script
+for each package you wish to build (known as a PKGBUILD). See
+manlink:PKGBUILD[5] for details on creating your own build scripts.
+
+The advantage to a script-based build is that the work is only done once. Once
+you have the build script for a package, makepkg will do the rest: download and
+validate source files, check dependencies, configure the build-time settings,
+build the package, install the package into a temporary root, make
+customizations, generate meta-info, and package the whole thing up for pacman
+to use.
+
+makeworld can be used to rebuild an entire package group or the entire build
+tree. See `makeworld \--help` for syntax.
+
+Options
+-------
+*-A, \--ignorearch*::
+ Ignore a missing or incomplete arch field in the build script. This is
+ for rebuilding packages from source when the PKGBUILD may be slightly
+ outdated and not updated with an `$$arch=('yourarch')$$` field.
+
+*-b, \--builddeps*::
+ Build missing dependencies from source. When makepkg finds missing
+ build-time or run-time dependencies, it will look for the dependencies'
+ PKGBUILD files under ABSROOT (set in makepkg.conf). If it finds them it
+ will call makepkg to build and install the missing dependencies. The
+ child calls will be made with the `-b` and `-i` options.
+
+*-c, \--clean*::
+ Clean up leftover work files and directories after a successful build.
+
+*-C, \--cleancache*::
+ Removes all cached source files from the directory specified in SRCDEST
+ in manlink:makepkg.conf[5].
+
+*-d, \--nodeps*::
+ Do not perform any dependency checks. This will let you override and
+ ignore any dependencies required. There is a good chance this option
+ will break the build process if all of the dependencies are not
+ installed.
+
+*-e, \--noextract*::
+ Do not extract source files; use whatever source already exists in the
+ src/ directory. This is handy if you want to go into src/ and manually
+ patch or tweak code, then make a package out of the result. Keep in mind
+ that creating a patch may be a better solution to allow others to use
+ your PKGBUILD.
+
+*-f, \--force*::
+ makepkg will not build a package if a built package already exists in
+ the PKGDEST (set in manlink:makepkg.conf[5]) directory, which may
+ default to the current directory. This allows the built package to be
+ overwritten.
+
+*-g, \--geninteg*::
+ For each source file in the source array of PKGBUILD, download the file
+ if required and generate integrity checks. The integrity checks
+ generated are determined by the value of the INTEGRITY_CHECK array in
+ manlink:makepkg.conf[5]. This output can be redirected into your
+ PKGBUILD for source validation (`makepkg -g >> PKGBUILD`).
+
+*-h, \--help*::
+ Output syntax and command line options.
+
+*-i, \--install*::
+ Install or upgrade the package after a successful build using
+ manlink:pacman[8].
+
+*-m, \--nocolor*::
+ Disable color in output messages.
+
+*-o, \--nobuild*::
+ Download and extract files only, but do not build them. Useful with the
+ `\--noextract` option if you wish to tweak the files in src/ before
+ building.
+
+*-p* <`buildscript`>::
+ Read the package script `buildscript` instead of the `PKGBUILD` default;
+ see manlink:PKGBUILD[5].
+
+*-r, \--rmdeps*::
+ Upon successful build, remove any dependencies installed by makepkg
+ during dependency auto-resolution (using `-b` or `-s`).
+
+*-R, \--repackage*::
+ Repackage contents of pkg/ without rebuilding the package. This is
+ useful if you forgot a depend or install file in your PKGBUILD and the
+ build itself will not change.
+
+*-s, \--syncdeps*::
+ Install missing dependencies using pacman. When build-time or run-time
+ dependencies are not found, pacman will try to resolve them. If
+ successful, the missing packages will be downloaded and installed.
+
+*\--asroot*::
+ Allow makepkg to run as root. This is for security purposes as it is
+ normally dangerous to do so. This will also disable use of fakeroot and
+ sudo.
+
+*\--source*::
+ Do not actually build the package, but build a source-only tarball. This
+ is useful for passing a single tarball to another program such as a
+ chroot, remote builder, or an AUR upload.
+
+*\--noconfirm*::
+ (Passed to pacman) Prevent pacman from waiting for user input before
+ proceeding with operations.
+
+*\--noprogressbar*::
+ (Passed to pacman) Prevent pacman from displaying a progress bar;
+ useful if you are redirecting makepkg output to file.
+
+
+Additional Features
+-------------------
+makepkg supports building development versions of packages without having to
+manually update the pkgver in the PKGBUILD. This was formerly done using the
+separate utility 'versionpkg'. See manlink:PKGBUILD[5] for details on how to
+set up a development PKGBUILD.
+
+
+Configuration
+-------------
+See manlink:makepkg.conf[5] for more details on configuring makepkg using the
+'makepkg.conf' file.
+
+
+See Also
+--------
+manlink:makepkg.conf[5], manlink:PKGBUILD[5], manlink:pacman[8]
+
+include::footer.txt[]
diff --git a/doc/makepkg.conf.5 b/doc/makepkg.conf.5
deleted file mode 100644
index 23fc1d1f..00000000
--- a/doc/makepkg.conf.5
+++ /dev/null
@@ -1,146 +0,0 @@
-." the string declarations are a start to try and make distro independent
-.ds DS Arch Linux
-.ds PB PKGBUILD
-.ds VR 3.0.0
-.TH \*(PB 5 "Feb 08, 2007" "makepkg.conf version \*(VR" "\*(DS Files"
-.SH NAME
-makepkg.conf \- makepkg configuration file
-
-.SH DESCRIPTION
-Configuration options for \fBmakekpg\fP are stored in \fBmakepkg.conf\fP. This
-file is sourced, so you can include any special compiler flags you wish to use.
-This is helpful for building for different architectures, or with different
-optimizations.
-
-\fBNOTE:\fP This does not guarantee that all package Makefiles will use your
-exported variables. Some of them are non-standard...
-
-The default file is fairly well commented, so it may be easiest to simply
-follow directions given there for customization.
-
-.SH OPTIONS
-.TP
-.B FTPAGENT="\fI/path/to/command\fP [\fIoptions\fP]"
-Sets the download agent used to fetch source files specified with a URL in the
-\fB\*(PB\fP file. Flags can be specified as well; the download URL is then
-placed on the end of the command.
-.TP
-.B CARCH="\fIcarch\fP"
-Specifies your computer architecture; possible values include such things as
-"i686", "x86_64", "ppc", etc. This should be automatically set on installation.
-.TP
-.B CHOST="\fIchost\fP"
-A string such as "i686-pc-linux-gnu", do not touch unless you know what you are
-doing.
-.TP
-.B CFLAGS="\fIcflags\fP"
-Flags used for the C compiler. This is a key part to the use of makepkg.
-Usually several options are specified, and the most common string resembles
-something like this: "-march=i686 -O2 -pipe". Another useful option may be
--mcpu in place of -march. Read
-.BR gcc (1)
-for more details on the wide variety of compiler flags available.
-.TP
-.B CXXFLAGS="\fIcxxflags\fP"
-Flags used for the C++ compiler; see \fBCFLAGS\fP for more info.
-.TP
-.B MAKEFLAGS="\fImakeflags\fP"
-This is often used to set the number of jobs used, for example, "-j2". Other
-flags that make accepts can also be passed.
-.TP
-.B BUILDENV=(fakeroot !distcc color !ccache)
-This array contains four options that affect the build environment, the
-defaults are shown here. All options should always be left in the array; to
-enable or disable an option simply remove or place an "!" at the front of the
-option. Each works as follows:
-.RS
-.TP
-.B fakeroot
-Allow building packages as a non-root user. This is \fIhighly\fP recommended.
-.TP
-.B distcc
-Use the distributed C/C++/ObjC compiler to spread compilation among multiple
-machines. If this is enabled, \fBDISTCC_HOSTS\fP must be specified as well.
-.TP
-.B color
-Colorize output messages, making output easier to read.
-.TP
-.B ccache
-Use ccache to cache compilation by default. This allows for faster compiles if
-you are continuously recompiling the same packages. It can be disabled for
-individual packages by placing \fB!ccache\fP in the \fB\*(PB\fP options array.
-.RE
-.TP
-.B DISTCC_HOSTS="\fIhost1 ...\fP"
-If using DistCC, this is used to specify a space-delimited list of hosts
-running in the DistCC cluster. In addition, you will want to modify your
-\fBMAKEFLAGS\fP.
-.TP
-.B OPTIONS=(strip !docs libtool emptydirs)
-This array contains four options that affect the default packaging. All four
-are equivalent to options that can be placed in the PKGBUILD; the defaults are
-shown here. All options should always be left in the array; to enable or
-disable an option simply remove or place an "!" at the front of the option.
-Each works as follows:
-.RS
-.TP
-.B strip
-Strip symbols from binaries and libraries. If you frequently use a debugger on
-programs or libraries, it may be helpful to disable this option.
-.TP
-.B docs
-Save doc and info directories. If you wish to delete doc and info directories,
-specify "!docs" in the array.
-.TP
-.B libtool
-Leave libtool (.la) files in packages. Specify "!libtool" to remove them.
-.TP
-.B emptydirs
-Leave empty directories in packages.
-.RE
-.TP
-.B INTEGRITY_CHECK=(\fIcheck1 ...\fP)
-File integrity checks to use. Multiple checks may be specified; this affects
-both generation and checking. The current valid options are: md5, sha1, sha256,
-sha384, and sha512.
-.TP
-.B DOC_DIRS=(usr/{,share/}{info,doc} ...)
-If "!docs" is specified in the \fBOPTIONS\fP array, this variable will instruct
-makepkg where to look to remove docs. If you build packages that are located in
-opt/, you may need to add the directory to this array. NOTE: do not add the
-leading slash to the directory name.
-.TP
-.B PKGDEST=\fI/path/to/folder\fP
-If this value is not set, packages will by default be placed in the current
-directory (location of the \fB\*(PB\fP). Many people like to keep all their
-packages in one place so this option allows this behavior. A common location is
-"/home/packages".
-.TP
-.B SRCDEST=\fI/path/to/folder\fP
-If this value is not set, downloaded source files will only be stored in the
-current directory. Many people like to keep all source files in a central
-location for easy cleanup, so this path can be set here.
-.TP
-.B PACKAGER="\fIJohn Doe <john@doe.com>\fP"
-This value is used when querying a package to see who was the builder. It is
-recommended you change this to your name and email address.
-
-.SH SEE ALSO
-.BR makepkg (8),
-.BR pacman (8),
-.BR \*(PB (5)
-
-See the Arch Linux website at <http://www.archlinux.org> for more current
-information on the distribution and the \fBpacman\fP family of tools, and
-<http://wiki.archlinux.org/index.php/Arch_Packaging_Standards> for
-recommendations on packaging standards.
-
-.SH AUTHORS
-.nf
-Judd Vinet <jvinet@zeroflux.org>
-Aurelien Foret <aurelien@archlinux.org>
-Aaron Griffin <aaron@archlinux.org>
-Dan McGee <dan@archlinux.org>
-.fi
-
-See the 'AUTHORS' file for additional contributors.
diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
new file mode 100644
index 00000000..17e4bd87
--- /dev/null
+++ b/doc/makepkg.conf.5.txt
@@ -0,0 +1,154 @@
+/////
+vim:set ts=4 sw=4 syntax=asciidoc noet:
+/////
+makepkg.conf(5)
+===============
+
+Name
+----
+makepkg.conf - makepkg configuration file
+
+
+Synopsis
+--------
+{sysconfdir}/makepkg.conf, ~/.makepkg.conf
+
+
+Description
+-----------
+Configuration options for makekpg are stored in makepkg.conf. This file is
+sourced, so you can include any special compiler flags you wish to use. This is
+helpful for building for different architectures, or with different
+optimizations. However, only the variables described below are exported to the
+build environment.
+
+NOTE: This does not guarantee that all package Makefiles will use your exported
+variables. Some of them are non-standard.
+
+The default file is fairly well commented, so it may be easiest to simply
+follow directions given there for customization.
+
+
+Options
+-------
+**DLAGENTS=(**\'protocol::/path/to/command [options]' ...**)**::
+ Sets the download agents used to fetch source files specified with a URL in
+ the manlink:PKGBUILD[5] file. Options can be specified for each command as
+ well; the download URL is placed on the end of the command. This is more
+ flexible than the former `FTPAGENT` variable, as any protocol can have a
+ download agent. Several examples are provided in the default makepkg.conf.
+
+**CARCH=**"carch"::
+ Specifies your computer architecture; possible values include such things
+ as ``i686'', ``x86_64'', ``ppc'', etc. This should be automatically set on
+ installation.
+
+**CHOST=**"chost"::
+ A string such as ``i686-pc-linux-gnu'', do not touch unless you know what
+ you are doing. This can be commented out by most users if desired.
+
+**CFLAGS=**"cflags"::
+ Flags used for the C compiler. This is a key part to the use of makepkg.
+ Usually several options are specified, and the most common string resembles
+ something like this: ``-march=i686 -O2 -pipe''. Another useful option may
+ be `-mcpu` in place of `-march`. Read gcc(1) for more details on the wide
+ variety of compiler flags available.
+
+**CXXFLAGS=**"cxxflags"::
+ Flags used for the C++ compiler; see CFLAGS for more info.
+
+**MAKEFLAGS=**"makeflags"::
+ This is often used to set the number of jobs used, for example, `-j2`.
+ Other flags that make accepts can also be passed.
+
+**BUILDENV=(**fakeroot !distcc color !ccache !xdelta**)**::
+ This array contains options that affect the build environment, the defaults
+ are shown here. All options should always be left in the array; to enable
+ or disable an option simply remove or place an ``!'' at the front of the
+ option. Each works as follows:
+
+ *fakeroot*;;
+ Allow building packages as a non-root user. This is highly recommended.
+
+ *distcc*;;
+ Use the distributed C/C++/ObjC compiler to spread compilation among
+ multiple machines. If this is enabled, `DISTCC_HOSTS` must be specified
+ as well.
+
+ *color*;;
+ Colorize output messages, making output easier to read.
+
+ *ccache*;;
+ Use ccache to cache compilation by default. This allows for faster
+ compiles if you are continuously recompiling the same packages. It can
+ be disabled for individual packages by placing `!ccache` in the
+ PKGBUILD options array.
+
+ *xdelta*;;
+ Generate an xdelta binary patch from previous to current package. The
+ previous package must be available in the makepkg cache directory for
+ this to occur.
+
+**DISTCC_HOSTS=**"host1 ..."::
+ If using DistCC, this is used to specify a space-delimited list of hosts
+ running in the DistCC cluster. In addition, you will want to modify your
+ `MAKEFLAGS`.
+
+**OPTIONS=(**strip !docs libtool emptydirs**)**::
+ This array contains options that affect the default packaging. All four are
+ equivalent to options that can be placed in the PKGBUILD; the defaults are
+ shown here. All options should always be left in the array; to enable or
+ disable an option simply remove or place an ``!'' at the front of the
+ option. Each works as follows:
+
+ *strip*;;
+ Strip symbols from binaries and libraries. If you frequently use a
+ debugger on programs or libraries, it may be helpful to disable this
+ option.
+
+ *docs*;;
+ Save doc and info directories. If you wish to delete doc and info
+ directories, specify `!docs' in the array.
+
+ *libtool*;;
+ Leave libtool (.la) files in packages. Specify `!libtool' to remove
+ them.
+
+ *emptydirs*;;
+ Leave empty directories in packages.
+
+**INTEGRITY_CHECK=(**check1 ...**)**::
+ File integrity checks to use. Multiple checks may be specified; this
+ affects both generation and checking. The current valid options are:
+ `md5`, `sha1`, `sha256`, `sha384`, and `sha512`.
+
+**DOC_DIRS=(**usr/{,share/}{info,doc} ...**)**::
+ If "!docs" is specified in the OPTIONS array, this variable will
+ instruct makepkg where to look to remove docs. If you build packages
+ that are located in opt/, you may need to add the directory to this
+ array. *NOTE:* Do not add the leading slash to the directory name.
+
+**PKGDEST=**"/path/to/folder"::
+ If this value is not set, packages will by default be placed in the
+ current directory (location of the manlink:PKGBUILD[5]). Many people
+ like to keep all their packages in one place so this option allows
+ this behavior. A common location is ``/home/packages''.
+
+**SRCDEST=**"/path/to/folder"::
+ If this value is not set, downloaded source files will only be stored
+ in the current directory. Many people like to keep all source files in
+ a central location for easy cleanup, so this path can be set here.
+
+**PACKAGER=**"John Doe <john@doe.com>"::
+ This value is used when querying a package to see who was the builder.
+ It is recommended you change this to your name and email address.
+
+*BUILDSCRIPT*, *PKGEXT*, *SRCEXT*, *DB_COMPRESSION*, *DB_CHECKSUMS*::
+ Do not touch these unless you know what you are doing.
+
+
+See Also
+--------
+manlink:makepkg[8], manlink:pacman[8], manlink:PKGBUILD[5]
+
+include::footer.txt[]
diff --git a/doc/pacman.8 b/doc/pacman.8
deleted file mode 100644
index 79097783..00000000
--- a/doc/pacman.8
+++ /dev/null
@@ -1,293 +0,0 @@
-." the string declarations are a start to try and make distro independent
-.ds DS Arch Linux
-.ds PB PKGBUILD
-.ds VR 3.0.0
-.ds LV 1.0.0
-.TH pacman 8 "Feb 07, 2007" "pacman version \*(VR" "\*(DS Utilities"
-.SH NAME
-pacman \- package manager utility
-
-.SH SYNOPSIS
-.B pacman
-<\fIoperation\fR> [\fIoptions\fR] [\fIpackages\fR]
-
-.SH DESCRIPTION
-\fBpacman\fP is a \fIpackage management\fP utility that tracks installed
-packages on a Linux system. It features dependency support, package groups,
-install and uninstall hooks, and the ability to sync your local machine with a
-remote ftp server to automatically upgrade packages. \fBpacman\fP packages are
-a zipped tar format.
-
-Since version 3.0.0, \fBpacman\fP has been the frontend to \fBlibalpm\fP, the
-"Arch Linux Package Management" library. This library allows alternative front
-ends to be written (for instance, a GUI front end).
-
-.SH OPERATIONS
-.TP
-.B \-A, --add (deprecated)
-Add a package to the system. Either a URL or file path can be specified. The
-package will be uncompressed into the installation root and the database will
-be updated. The package will not be installed if another version is already
-installed. NOTE: please use \fB--upgrade\fP in place of this option.
-.TP
-.B \-F, --freshen
-This is like \fB--upgrade\fP except it will only upgrade packages already
-installed on the system.
-.TP
-.B \-Q, --query
-Query the package database. This operation allows you to view installed
-packages and their files, as well as meta-information about individual packages
-(dependencies, conflicts, install date, build date, size). This can be run
-against the local package database or can be used on individual .tar.gz
-packages. See \fBQUERY OPTIONS\fP below.
-.TP
-.B \-R, --remove
-Remove a package from the system. Files belonging to the specified package
-will be deleted, and the database will be updated. Most configuration files
-will be saved with a \fI.pacsave\fP extension unless the \fB--nosave\fP option
-is used. See \fBREMOVE OPTIONS\fP below.
-.TP
-.B \-S, --sync
-Synchronize packages. Packages are installed directly from the ftp servers,
-including all dependencies required to run the packages. For example,
-\fBpacman -S qt\fP will download and install \fBqt\fP and all the packages it
-depends on. You can also use \fBpacman -Su\fP to upgrade all packages that are
-out of date. See \fBSYNC OPTIONS\fP below.
-.TP
-.B \-U, --upgrade
-Upgrade or add a package to the system. Either a URL or file path can be
-specified. This is a "remove-then-add" process. See \fBHANDLING CONFIG
-FILES\fP for an explanation on how pacman takes care of config files.
-.TP
-.B \-V, --version
-Display version and exit.
-.TP
-.B \-h, --help
-Display syntax for the given operation. If no operation was supplied then the
-general syntax is shown.
-
-.SH OPTIONS
-.TP
-.B \--ask \fInumber\fP
-Pre-specify answers to questions. It is doubtful whether this option even
-works, so I would not recommend using it. TODO: document this more, as I have
-no idea how it works or when you would use it, or if we should just dump it.
-.TP
-.B \-b, --dbpath \fIpath\fP
-Specify an alternative database location (default is "/var/lib/pacman/"). This
-should not be used unless you know what you are doing.
-.TP
-.B \-d, --nodeps
-Skips all dependency checks. Normally, pacman will always check a package's
-dependency fields to ensure that all dependencies are installed and there are
-no package conflicts in the system.
-.TP
-.B \-f, --force
-Bypass file conflict checks and overwrite conflicting files. If the package
-that is about to be installed contains files that are already installed, this
-option will cause all those files to be overwritten. This option should be
-used with care, ideally not at all.
-.TP
-.B \-r, --root \fIpath\fP
-Specify an alternative installation root (default is "/"). This should
-\fInot\fP be used as a way to install software into /usr/local instead of /usr.
-This option is used if you want to install a package on a temporary mounted
-partition which is "owned" by another system. By using this option you not only
-specify where the software should be installed, but you also specify which
-package database and cache location to use.
-.TP
-.B \-v, --verbose
-Output more status messages, such as the Root and DBPath.
-.TP
-.B \--cachedir \fIdir\fP
-Specify an alternative package cache location (default is
-"/var/cache/pacman/pkg/"). This should not be used unless you know what you are
-doing.
-.TP
-.B \--config \fIfilepath\fP
-Specify an alternate configuration file.
-.TP
-.B \--noconfirm
-Bypass any and all "Are you sure?" messages. It's not a good idea to do this
-unless you want to run pacman from a script.
-.TP
-.B \--noprogressbar
-Do not show a progress bar when downloading files. This can be useful for
-scripts that call pacman and capture the output.
-.TP
-.B \--noscriptlet
-If an install scriptlet exists, do not execute it. Do not use this unless you
-know what you are doing.
-
-.SH QUERY OPTIONS
-.TP
-.B \-c, --changelog
-View the ChangeLog of a package. Not every package will provide one but it
-will be shown if available.
-.TP
-.B \-e, --orphans
-List all packages that were pulled in by a previously installed package but no
-longer required by any installed package.
-.TP
-.B \-g, --groups
-Display all packages that are members of a named group. If not name is
-specified, list all grouped packages.
-.TP
-.B \-i, --info
-Display information on a given package. The \fB-p\fP option can be used if
-querying a package file instead of the local database.
-.TP
-.B \-l, --list
-List all files owned by a given package. Multiple packages can be specified on
-the command line.
-.TP
-.B \-m, --foreign
-List all packages that were not found in the sync database(s). Typically these
-are packages that were downloaded manually and installed with \fB--upgrade\fP.
-.TP
-.B \-o, --owns \fIfile\fP
-Search for the package that owns \fIfile\fP.
-.TP
-.B \-p, --file
-Signifies that the package supplied on the command line is a file and not an
-entry in the database. The file will be decompressed and queried. This is
-useful in combination with \fB--info\fP and \fB--list\fP.
-.TP
-.B \-s, --search \fIregexp\fP
-This will search each locally-installed package for names or descriptions that
-matche \fIregexp\fP.
-.TP
-.B \-u, --upgrades
-Lists all packages that are out of date on the local system. This option works
-best if the sync database is refreshed using \fB-Sy\fP.
-
-.SH REMOVE OPTIONS
-.TP
-.B \-c, --cascade
-Remove all target packages, as well as all packages that depend on one or more
-target packages. This operation is recursive.
-.TP
-.B \-k, --keep
-Removes the database entry only. Leaves all files in place.
-.TP
-.B \-n, --nosave
-Instructs pacman to ignore file backup designations. Normally, when a file is
-removed from the system the database is checked to see if the file should be
-renamed with a .pacsave extension.
-.TP
-.B \-s, --recursive
-Remove each target specified including all dependencies, provided that (A) they
-are not required by other packages; and (B) they were not explicitly installed
-by the user. This option is analogous to a backwards \fB--sync\fP operation.
-
-.SH SYNC OPTIONS
-.TP
-.B \-c, --clean
-Remove old packages from the cache to free up disk space. When \fBpacman\fP
-downloads packages, it saves them in \fI/var/cache/pacman/pkg\fP. Use one
-\fB--clean\fP switch to remove \fIold\fP packages; use two to remove \fIall\fP
-packages from the cache.
-.TP
-.B \-e, --dependsonly
-Install all dependencies of a package, but not the specified package itself.
-This is pretty useless and we're not sure why it even exists.
-.TP
-.B \-g, --groups
-Display all the members for each package group specified. If no group names
-are provided, all groups will be listed; pass the flag twice to view all
-groups and their members.
-.TP
-.B \-i, --info
-Display dependency and other information for a given package. This will search
-through all repositories for a matching package.
-.TP
-.B \-l, --list
-List all packages in the specified repositories. Multiple repositories can be
-specified on the command line.
-.TP
-.B \-p, --print-uris
-Print out URIs for each package that will be installed, including any
-dependencies yet to be installed. These can be piped to a file and downloaded
-at a later time, using a program like wget.
-.TP
-.B \-s, --search \fIregexp\fP
-This will search each package in the sync databases for names or descriptions
-that match \fIregexp\fP.
-.TP
-.B \-u, --sysupgrade
-Upgrades all packages that are out of date. Each currently-installed package
-will be examined and upgraded if a newer package exists. A report of all
-packages to upgrade will be presented and the operation will not proceed
-without user confirmation. Dependencies are automatically resolved at this
-level and will be installed/upgraded if necessary.
-.TP
-.B \-w, --downloadonly
-Retrieve all packages from the server, but do not install/upgrade anything.
-.TP
-.B \-y, --refresh
-Download a fresh copy of the master package list from the server(s) defined in
-\fBpacman.conf\fP. This should typically be used each time you use
-\fB--sysupgrade\fP or \fB-u\fP. Passing two \fB--refresh\fP or \fB-y\fP flags
-will force a refresh of all package lists even if they are thought to be
-up to date.
-.TP
-.B \--ignore \fIpackage\fP
-Directs \fBpacman\fP to ignore upgrades of \fIpackage\fP even if there is one
-available.
-
-.SH HANDLING CONFIG FILES
-pacman uses the same logic as rpm to determine action against files that are
-designated to be backed up. During an upgrade, 3 md5 hashes are used for each
-backup file to determine the required action: one for the original file
-installed, one for the new file that's about to be installed, and one for the
-actual file existing on the filesystem. After comparing these 3 hashes, the
-follow scenarios can result:
-.TP
-original=\fBX\fP, current=\fBX\fP, new=\fBX\fP
-All three files are the same, so overwrites are not an issue Install the new
-file.
-.TP
-original=\fBX\fP, current=\fBX\fP, new=\fBY\fP
-The current file is the same as the original but the new one differs. Since
-the user did not ever modify the file, and the new one may contain improvements
-or bugfixes, install the new file.
-.TP
-original=\fBX\fP, current=\fBY\fP, new=\fBX\fP
-Both package versions contain the exact same file, but the one on the
-filesystem has been modified. Leave the current file in place.
-.TP
-original=\fBX\fP, current=\fBY\fP, new=\fBY\fP
-The new file is identical to the current file. Install the new file.
-.TP
-original=\fBX\fP, current=\fBY\fP, new=\fBZ\fP
-All three files are different, so install the new file with a .pacnew extension
-and warn the user. The user must then manually merge any necessary changes into
-the original file.
-
-.SH CONFIGURATION
-See
-.BR pacman.conf (5)
-for more details on configuring \fBpacman\fP using the \fBpacman.conf\fP file.
-
-.SH BUGS
-Bugs? You must be kidding, there are no bugs in this software. But if we happen
-to be wrong, send us an email with as much detail as possible to
-<pacman-dev@archlinux.org>.
-
-.SH SEE ALSO
-.BR pacman.conf (5),
-.BR makepkg (8),
-.BR libalpm (3)
-
-See the Arch Linux website at <http://www.archlinux.org> for more current
-information on the distribution and the \fBpacman\fP family of tools.
-
-.SH AUTHORS
-.nf
-Judd Vinet <jvinet@zeroflux.org>
-Aurelien Foret <aurelien@archlinux.org>
-Aaron Griffin <aaron@archlinux.org>
-Dan McGee <dan@archlinux.org>
-.fi
-
-See the 'AUTHORS' file for additional contributors.
diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt
new file mode 100644
index 00000000..9e00d36e
--- /dev/null
+++ b/doc/pacman.8.txt
@@ -0,0 +1,319 @@
+/////
+vim:set ts=4 sw=4 syntax=asciidoc noet:
+/////
+pacman(8)
+=========
+
+Name
+----
+pacman - package manager utility
+
+
+Synopsis
+--------
+'pacman' <operation> [options] [packages]
+
+
+Description
+-----------
+Pacman is a package management utility that tracks installed packages on a Linux
+system. It features dependency support, package groups, install and uninstall
+hooks, and the ability to sync your local machine with a remote ftp server to
+automatically upgrade packages. Pacman packages are a zipped tar format.
+
+Since version 3.0.0, pacman has been the frontend to manlink:libalpm[3], the
+"Arch Linux Package Management" library. This library allows alternative front
+ends to be written (for instance, a GUI front end).
+
+
+Operations
+----------
+*-A, \--add* (deprecated)::
+ Add a package to the system. Either a URL or file path can be specified.
+ The package will be uncompressed into the installation root and the
+ database will be updated. The package will not be installed if another
+ version is already installed. *NOTE*: please use '\--upgrade' in place of
+ this option.
+
+*-Q, \--query*::
+ Query the package database. This operation allows you to view installed
+ packages and their files, as well as meta-information about individual
+ packages (dependencies, conflicts, install date, build date, size). This
+ can be run against the local package database or can be used on
+ individual '.tar.gz' packages. See <<QO,Query Options>> below.
+
+*-R, \--remove*::
+ Remove a package from the system. Files belonging to the specified
+ package will be deleted, and the database will be updated. Most
+ configuration files will be saved with a `.pacsave` extension unless the
+ '\--nosave' option is used. See <<RO,Remove Options>> below.
+
+*-S, \--sync*::
+ Synchronize packages. Packages are installed directly from the ftp
+ servers, including all dependencies required to run the packages. For
+ example, `pacman -S qt` will download and install qt and all the
+ packages it depends on. If a package name exists in more than one repo, the
+ repo can be explicitly specified to clarify the package to install:
+ `pacman -S testing/qt`. You can also use `pacman -Su` to upgrade all
+ packages that are out of date. See <<SO,Sync Options>> below.
+
+*-U, \--upgrade*::
+ Upgrade or add a package to the system. Either a URL or file path can be
+ specified. This is a "remove-then-add" process. See <<HCF,Handling Config
+ Files>> for an explanation on how pacman takes care of config files.
+
+*-V, \--version*::
+ Display version and exit.
+
+*-h, \--help*::
+ Display syntax for the given operation. If no operation was supplied
+ then the general syntax is shown.
+
+
+Options
+-------
+*\--asdeps*::
+ Install packages non-explicitly; in other works, fake their install reason
+ to be installed as a dependency. This is useful for makepkg and other
+ build from source tools that need to install dependencies before building
+ the package.
+
+*\--ask* <'number'>::
+ Pre-specify answers to questions. It is doubtful whether this option
+ even works, so I would not recommend using it. *TODO*: document this
+ more, as I have no idea how it works or when you would use it, or if we
+ should just dump it.
+
+*-b, \--dbpath* <'path'>::
+ Specify an alternative database location (default is ``/var/lib/pacman'').
+ This should not be used unless you know what you are doing.
+
+*-d, \--nodeps*::
+ Skips all dependency checks. Normally, pacman will always check a
+ package's dependency fields to ensure that all dependencies are
+ installed and there are no package conflicts in the system.
+
+*-f, \--force*::
+ Bypass file conflict checks and overwrite conflicting files. If the
+ package that is about to be installed contains files that are already
+ installed, this option will cause all those files to be overwritten.
+ This option should be used with care, ideally not at all.
+
+*-r, \--root* <'path'>::
+ Specify an alternative installation root (default is ``/''). This should
+ not be used as a way to install software into ``/usr/local'' instead of
+ ``/usr''. This option is used if you want to install a package on a
+ temporary mounted partition which is "owned" by another system.
+
+*-v, --verbose*::
+ Output more status messages, such as the Root, DBPath, CacheDir, etc.
+
+*\--cachedir* <'dir'>::
+ Specify an alternative package cache location (default is
+ ``/var/cache/pacman/pkg''). Multiple cache directories can be specified,
+ and they are tried in the order they are passed to pacman.
+
+*\--config* <'file'>::
+ Specify an alternate configuration file.
+
+*\--noconfirm*::
+ Bypass any and all "Are you sure?" messages. It's not a good idea to do
+ this unless you want to run pacman from a script.
+
+*\--noprogressbar*::
+ Do not show a progress bar when downloading files. This can be useful
+ for scripts that call pacman and capture the output.
+
+*\--noscriptlet*::
+ If an install scriptlet exists, do not execute it. Do not use this
+ unless you know what you are doing.
+
+
+Query Options[[QO]]
+-------------------
+*-c, \--changelog*::
+ View the ChangeLog of a package. Not every package will provide one but
+ it will be shown if available.
+
+*-d, \--deps*::
+ List all packages installed as dependencies. This option can be combined
+ with '-t' for listing real orphans- packages that were installed as
+ dependencies but are no longer required by any installed package. ('-Qdt'
+ is equivalent to the pacman 3.0.X '-Qe' option.)
+
+*-e, \--explicit*::
+ List all packages explicitly installed. This option can be combined with
+ '-t' to list top-level packages- those packages that were explicitly
+ installed but are not required by any other package. ('-Qet' is equivalent
+ to the pacman 2.9.X '-Qe' option.)
+
+*-g, \--groups*::
+ Display all packages that are members of a named group. If a name is not
+ specified, list all grouped packages.
+
+*-i, \--info*::
+ Display information on a given package. The '-p' option can be used if
+ querying a package file instead of the local database. Passing two
+ '\--info' or '-i' flags will also display the list of backup files and
+ their modification states.
+
+*-l, \--list*::
+ List all files owned by a given package. Multiple packages can be
+ specified on the command line.
+
+*-m, \--foreign*::
+ Restrict or filter output to packages that were not found in the sync
+ database(s). Typically these are packages that were downloaded manually
+ and installed with '\--upgrade'.
+
+*-o, \--owns* <'file'>::
+ Search for the package that owns file. The path can be relative or
+ absolute.
+
+*-p, \--file*::
+ Signifies that the package supplied on the command line is a file and
+ not an entry in the database. The file will be decompressed and queried.
+ This is useful in combination with '\--info' and '\--list'.
+
+*-s, \--search* <'regexp'>::
+ This will search each locally-installed package for names or
+ descriptions that match `regexp`.
+
+*-t, \--orphans*::
+ Restrict or filter output to packages not required by any currently
+ installed package.
+
+*-u, \--upgrades*::
+ Lists all packages that are out of date on the local system. This option
+ works best if the sync database is refreshed using '-Sy'.
+
+
+Remove Options[[RO]]
+--------------------
+*-c, \--cascade*::
+ Remove all target packages, as well as all packages that depend on one
+ or more target packages. This operation is recursive.
+
+*-k, \--keep*::
+ Removes the database entry only. Leaves all files in place.
+
+*-n, \--nosave*::
+ Instructs pacman to ignore file backup designations. Normally, when a
+ file is removed from the system the database is checked to see if the
+ file should be renamed with a ``.pacsave'' extension.
+
+*-s, \--recursive*::
+ Remove each target specified including all dependencies, provided that
+ (A) they are not required by other packages; and (B) they were not
+ explicitly installed by the user. This option is analogous to a
+ backwards '\--sync' operation.
+
+
+Sync Options[[SO]]
+------------------
+*-c, \--clean*::
+ Remove old packages from the cache to free up disk space. When pacman
+ downloads packages, it saves them in ``/var/cache/pacman/pkg''. Use one
+ '\--clean' switch to remove old packages; use two to remove all packages
+ from the cache.
+
+*-e, \--dependsonly*::
+ Install all dependencies of a package, but not the specified package
+ itself. This is pretty useless and we're not sure why it even exists.
+
+*-g, \--groups*::
+ Display all the members for each package group specified. If no group
+ names are provided, all groups will be listed; pass the flag twice to
+ view all groups and their members.
+
+*-i, \--info*::
+ Display dependency and other information for a given package. This will
+ search through all repositories for a matching package.
+
+*-l, \--list*::
+ List all packages in the specified repositories. Multiple repositories
+ can be specified on the command line.
+
+*-p, \--print-uris*::
+ Print out URIs for each package that will be installed, including any
+ dependencies yet to be installed. These can be piped to a file and
+ downloaded at a later time, using a program like wget.
+
+*-s, \--search* <'regexp'>::
+ This will search each package in the sync databases for names or
+ descriptions that match `regexp`.
+
+*-u, \--sysupgrade*::
+ Upgrades all packages that are out of date. Each currently-installed
+ package will be examined and upgraded if a newer package exists. A
+ report of all packages to upgrade will be presented and the operation
+ will not proceed without user confirmation. Dependencies are
+ automatically resolved at this level and will be installed/upgraded if
+ necessary.
+
+*-w, \--downloadonly*::
+ Retrieve all packages from the server, but do not install/upgrade
+ anything.
+
+*-y, \--refresh*::
+ Download a fresh copy of the master package list from the server(s)
+ defined in pacman.conf. This should typically be used each time you use
+ '\--sysupgrade' or '-u'. Passing two '\--refresh' or '-y' flags will force
+ a refresh of all package lists even if they are thought to be up to date.
+
+*\--needed*::
+ Only install the targets that are not already installed and up-to-date.
+
+*\--ignore* <'package'>::
+ Directs pacman to ignore upgrades of package even if there is one
+ available. Multiple packages can be specified by separating them
+ with a comma.
+
+*\--ignoregroup* <'group'>::
+ Directs pacman to ignore upgrades of all packages in 'group' even if
+ there is one available. Multiple groups can be specified by
+ separating them with a comma.
+
+
+Handling Config Files[[HCF]]
+----------------------------
+Pacman uses the same logic as rpm to determine action against files that are
+designated to be backed up. During an upgrade, 3 md5 hashes are used for each
+backup file to determine the required action: one for the original file
+installed, one for the new file that's about to be installed, and one for the
+actual file existing on the filesystem. After comparing these 3 hashes, the
+follow scenarios can result:
+
+original=X, current=X, new=X::
+ All three files are the same, so overwrites are not an issue Install the
+ new file.
+
+original=X, current=X, new=Y::
+ The current file is the same as the original but the new one differs.
+ Since the user did not ever modify the file, and the new one may contain
+ improvements or bugfixes, install the new file.
+
+original=X, current=Y, new=X::
+ Both package versions contain the exact same file, but the one on the
+ filesystem has been modified. Leave the current file in place.
+
+original=X, current=Y, new=Y::
+ The new file is identical to the current file. Install the new file.
+
+original=X, current=Y, new=Z::
+ All three files are different, so install the new file with a '.pacnew'
+ extension and warn the user. The user must then manually merge any
+ necessary changes into the original file.
+
+
+Configuration
+-------------
+See manlink:pacman.conf[5] for more details on configuring pacman using the
+'pacman.conf' file.
+
+
+See Also
+--------
+manlink:pacman.conf[5], manlink:makepkg[8], manlink:libalpm[3]
+
+include::footer.txt[]
diff --git a/doc/pacman.conf.5 b/doc/pacman.conf.5
deleted file mode 100644
index 15f7b95f..00000000
--- a/doc/pacman.conf.5
+++ /dev/null
@@ -1,139 +0,0 @@
-." the string declarations are a start to try and make distro independent
-.ds DS Arch Linux
-.ds PB PKGBUILD
-.ds VR 3.0.0
-.ds LV 1.0.0
-.TH \*(PB 5 "Feb 07, 2007" "pacman.conf version \*(VR" "\*(DS Files"
-.SH NAME
-pacman.conf \- pacman package manager configuration file
-
-.SH DESCRIPTION
-\fBpacman\fP, using \fBlibalpm\fP, will attempt to read \fBpacman.conf\fP each
-time it is invoked. This configuration file is divided into sections or
-\fIrepositories\fP. Each section defines a package repository that \fBpacman\fP
-can use when searching for packages in \fB--sync\fP mode. The exception to this
-is the \fIoptions\fP section, which defines global options.
-
-.SH EXAMPLE
-.RS
-.nf
-#
-# pacman.conf
-#
-[options]
-NoUpgrade = etc/passwd etc/group etc/shadow
-NoUpgrade = etc/fstab
-
-[current]
-Include = /etc/pacman.d/current
-
-[custom]
-Server = file:///home/pkgs
-.fi
-.RE
-
-.SH OPTIONS
-.TP
-.B DBPath = \fIpath/to/db/dir\fP
-Overrides the default location of the toplevel database directory. The default
-is \fIvar/lib/pacman\fP.
-.TP
-.B CacheDir = \fIpath/to/cache/dir\fP
-Overrides the default location of the package cache directory. The default is
-\fIvar/cache/pacman\fP.
-.TP
-.B HoldPkg = \fIpackage\fP ...
-If a user tries to \fB--remove\fP a package that's listed in \fBHoldPkg\fI,
-\fBpacman\fP will ask for confirmation before proceeding.
-.TP
-.B IgnorePkg = \fIpackage\fP ...
-Instructs \fBpacman\fP to ignore any upgrades for this package when performing a
-\fB--sysupgrade\fP.
-.TP
-.B Include = \fIpath\fP
-Include another config file. This file can include repositories or general
-configuration options.
-.TP
-.B XferCommand = \fI/path/to/command %u\fP
-If set, an external program will be used to download all remote files. All
-instances of \fB%u\fP will be replaced with the download URL. If present,
-instances of \fB%o\fP will be replaced with the local filename, plus a ".part"
-extension, which allows programs like wget to do file resumes properly.
-
-This option is useful for users who experience problems with built-in
-http/ftp support, or need the more advanced proxy support that comes with
-utilities like wget.
-.TP
-.B NoPassiveFtp
-Disables passive ftp connections when downloading packages. (aka Active Mode)
-.TP
-.B NoUpgrade = \fIfile\fP ...
-All files listed with a \fBNoUpgrade\fP directive will never be touched during
-a package install/upgrade. Do \fInot\fP include the leading slash when
-specifying files.
-.TP
-.B NoExtract = \fIfile\fP ...
-All files listed with a \fBNoExtract\fP directive will never be extracted from
-a package into the filesystem. This can be useful when you don't want part of a
-package to be installed. For example, if your httpd root uses an index.php,
-then you would not want the index.html file to be extracted from the
-\fBapache\fP package.
-.TP
-.B UseSyslog
-Log action messages through \fBsyslog()\fP. This will insert log entries into
-\fI/var/log/messages\fP or equivalent.
-.TP
-.B LogFile = \fI/path/to/file\fP
-Log actions directly to a file. Default is \fI/var/log/pacman.log\fP.
-
-.SH REPOSITORY SECTIONS
-Each repository section defines a section name and at least one location where
-the packages can be found. The section name is defined by the string within
-square brackets (the two above are 'current' and 'custom'). Locations are
-defined with the \fBServer\fP directive and follow a URL naming structure. If
-you want to use a local directory, you can specify the full path with
-a 'file://' prefix, as shown above.
-
-The order of repositories in the file matters; repositories listed first will
-take precedence over those listed later in the file when packages in two
-repositories have identical names, regardless of version number.
-
-.SH USING YOUR OWN REPOSITORY
-If you have numerous custom packages of your own, it is often easier to
-generate your own custom local repository than install them all with the
-\fB--upgrade\fP option. All you need to do is generate a compressed package
-database in the directory with these packages so \fBpacman\fP can find it when
-run with \fB--refresh\fP.
-
-.RS
-.nf
-repo-add /home/pkgs/custom.db.tar.gz /home/pkgs/*.pkg.tar.gz
-.fi
-.RE
-
-The above command will generate a compressed database named
-\fI/home/pkgs/custom.db.tar.gz\fP. Note that the database must be of the form
-\fI{treename}.db.tar.gz\fP, where {treename} is the name of the section defined
-in the configuration file. That's it! Now configure your \fIcustom\fP section
-in the configuration file as shown in the config example above. Pacman will
-now use your package repository. If you add new packages to the repository,
-remember to re-generate the database and use \fBpacman\fP's --refresh option.
-
-For more information on the \fBrepo-add\fP command, use \fB repo-add --help\fP.
-
-.SH SEE ALSO
-.BR pacman (8),
-.BR libalpm (3)
-
-See the Arch Linux website at <http://www.archlinux.org> for more current
-information on the distribution and the \fBpacman\fP family of tools.
-
-.SH AUTHORS
-.nf
-Judd Vinet <jvinet@zeroflux.org>
-Aurelien Foret <aurelien@archlinux.org>
-Aaron Griffin <aaron@archlinux.org>
-Dan McGee <dan@archlinux.org>
-.fi
-
-See the 'AUTHORS' file for additional contributors.
diff --git a/doc/pacman.conf.5.txt b/doc/pacman.conf.5.txt
new file mode 100644
index 00000000..2a0f88ac
--- /dev/null
+++ b/doc/pacman.conf.5.txt
@@ -0,0 +1,160 @@
+/////
+vim:set ts=4 sw=4 syntax=asciidoc noet:
+/////
+pacman.conf(5)
+==============
+
+Name
+----
+pacman.conf - pacman package manager configuration file
+
+
+Synopsis
+--------
+{sysconfdir}/pacman.conf
+
+
+Description
+-----------
+Pacman, using manlink:libalpm[3], will attempt to read pacman.conf each time it
+is invoked. This configuration file is divided into sections or repositories.
+Each section defines a package repository that pacman can use when searching
+for packages in '\--sync' mode. The exception to this is the options section,
+which defines global options.
+
+
+Example
+-------
+--------
+#
+# pacman.conf
+#
+[options]
+NoUpgrade = etc/passwd etc/group etc/shadow
+NoUpgrade = etc/fstab
+
+[current]
+Include = /etc/pacman.d/current
+
+[custom]
+Server = file:///home/pkgs
+--------
+
+
+Options
+-------
+*RootDir =* path/to/root::
+ Set the default root directory for pacman to install to.
+
+*DBPath =* path/to/db/dir::
+ Overrides the default location of the toplevel database directory.
+ The default is ``/var/lib/pacman/''.
+
+*CacheDir =* path/to/cache/dir::
+ Overrides the default location of the package cache directory. The default
+ is ``/var/cache/pacman/pkg/''. Multiple cache directories can be specified,
+ and they are tried in the order they are listed in the config file. If a
+ file is not found in any cache directory, it will be downloaded to the
+ first cache directory with write access.
+
+*LogFile =* '/path/to/file'::
+ Log actions directly to a file. Default is ``/var/log/pacman.log''.
+
+*HoldPkg =* package ...::
+ If a user tries to '\--remove' a package that's listed in `HoldPkg`,
+ pacman will ask for confirmation before proceeding.
+
+*IgnorePkg =* package ...::
+ Instructs pacman to ignore any upgrades for this package when performing
+ a '\--sysupgrade'.
+
+*IgnoreGroup =* group ...::
+ Instructs pacman to ignore any upgrades for all packages in this
+ group when performing a '\--sysupgrade'.
+
+*Include =* path::
+ Include another config file. This file can include repositories or
+ general configuration options.
+
+*XferCommand =* /path/to/command %u::
+ If set, an external program will be used to download all remote files.
+ All instances of `%u` will be replaced with the download URL. If present,
+ instances of `%o` will be replaced with the local filename, plus a
+ ``.part'' extension, which allows programs like wget to do file resumes
+ properly.
+ +
+ This option is useful for users who experience problems with built-in
+ http/ftp support, or need the more advanced proxy support that comes with
+ utilities like wget.
+
+*NoPassiveFtp*::
+ Disables passive ftp connections when downloading packages. (aka Active Mode)
+
+*NoUpgrade =* file ...::
+ All files listed with a `NoUpgrade` directive will never be touched during
+ a package install/upgrade. Do not include the leading slash when specifying
+ files.
+
+*NoExtract =* file ...::
+ All files listed with a `NoExtract` directive will never be extracted from
+ a package into the filesystem. This can be useful when you don't want part
+ of a package to be installed. For example, if your httpd root uses an
+ 'index.php', then you would not want the 'index.html' file to be extracted
+ from the 'apache' package.
+
+*UseSyslog*::
+ Log action messages through syslog(). This will insert log entries into
+ ``/var/log/messages'' or equivalent.
+
+*ShowSize*::
+ Display the size of individual packages for '\--sync' and '\--query' modes.
+
+*UseDelta*::
+ Download delta files instead of complete packages if possible. Requires
+ the xdelta program to be installed.
+
+*TotalDownload*::
+ When downloading, display the amount downloaded, download rate, ETA,
+ and completed percentage of the entire download list list rather
+ than the percent of each individual download target. The progress
+ bar is still based solely on the current file download.
+
+Repository Sections
+-------------------
+Each repository section defines a section name and at least one location where
+the packages can be found. The section name is defined by the string within
+square brackets (the two above are 'current' and 'custom'). Locations are
+defined with the 'Server' directive and follow a URL naming structure. If you
+want to use a local directory, you can specify the full path with a ``file://''
+prefix, as shown above.
+
+The order of repositories in the file matters; repositories listed first will
+take precedence over those listed later in the file when packages in two
+repositories have identical names, regardless of version number.
+
+Using Your Own Repository
+-------------------------
+If you have numerous custom packages of your own, it is often easier to generate
+your own custom local repository than install them all with the '\--upgrade'
+option. All you need to do is generate a compressed package database in the
+directory with these packages so pacman can find it when run with '\--refresh'.
+
+ repo-add /home/pkgs/custom.db.tar.gz /home/pkgs/*.pkg.tar.gz
+
+The above command will generate a compressed database named
+'/home/pkgs/custom.db.tar.gz'. Note that the database must be of the form
+'{treename}.db.tar.gz', where '{treename}' is the name of the section defined in
+the configuration file. That's it! Now configure your custom section in the
+configuration file as shown in the config example above. Pacman will now use your
+package repository. If you add new packages to the repository, remember to
+re-generate the database and use pacman's '\--refresh' option.
+
+For more information on the repo-add command, see ``repo-add \--help'' or
+manlink:repo-add[8].
+
+
+See Also
+--------
+manlink:pacman[8], manlink:libalpm[3]
+
+include::footer.txt[]
diff --git a/doc/repo-add.8.txt b/doc/repo-add.8.txt
new file mode 100644
index 00000000..27e0e93f
--- /dev/null
+++ b/doc/repo-add.8.txt
@@ -0,0 +1,51 @@
+/////
+vim:set ts=4 sw=4 syntax=asciidoc noet:
+/////
+repo-add(8)
+==========
+
+Name
+----
+////
+* If we use this below line, the manpage name comes out all weird. We also
+* can't use two separate lines, which is quite annoying. *
+repo-add, repo-remove - package database maintenance utilities
+////
+repo-add - package database maintenance utility
+
+
+Synopsis
+--------
+repo-add <path-to-db> [--force] <package> ...
+
+repo-remove <path-to-db> <packagename> ...
+
+
+Description
+-----------
+repo-add and repo-remove are two scripts to help build a package database for
+packages built with manlink:makepkg[8] and installed with manlink:pacman[8].
+
+repo-add will update a package database by reading a built package file.
+Multiple packages to add can be specified on the command line.
+
+repo-remove will update a package database by removing the package name
+specified on the command line. Multiple packages to remove can be specified
+on the command line.
+
+
+Options
+-------
+*--force* (repo-add only)::
+ Add a force entry to the sync database, which tells pacman to skip version
+ number comparison and update the package regardless. This flag can be
+ specified in the middle of the command line, with any packages listed
+ before the flag being added as normal entries, and any specified after
+ being marked as force upgrades.
+
+
+See Also
+--------
+manlink:makepkg[8], manlink:pacman[8]
+
+include::footer.txt[]