summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/makepkg.8.html365
-rw-r--r--doc/makepkg.8.in6
-rw-r--r--doc/pacman.8.html306
3 files changed, 674 insertions, 3 deletions
diff --git a/doc/makepkg.8.html b/doc/makepkg.8.html
new file mode 100644
index 00000000..66110f90
--- /dev/null
+++ b/doc/makepkg.8.html
@@ -0,0 +1,365 @@
+Content-type: text/html
+
+<HTML><HEAD><TITLE>Manpage of makepkg</TITLE>
+</HEAD><BODY>
+<H1>makepkg</H1>
+Section: (8)<BR>Updated: March 3, 2003<BR><A HREF="#index">Index</A>
+<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB">&nbsp;</A>
+<H2>NAME</H2>
+
+makepkg - package build utility
+<A NAME="lbAC">&nbsp;</A>
+<H2>SYNOPSIS</H2>
+
+<B>makepkg</B>
+<A NAME="lbAD">&nbsp;</A>
+<H2>DESCRIPTION</H2>
+
+<B>makepkg</B> will build packages for you. All it needs is
+a build-capable linux platform, wget, and some build scripts. The advantage
+to a script-based build is that you only really do the work once. Once you
+have the build script for a package, you just need to run makepkg and it
+will do the rest: download source files, check dependencies,
+configure the buildtime settings, build the package, install the package
+into a temporary root, make customizations, generate meta-info, and package
+the whole thing up for <B>pacman</B> to use.
+<P>
+<B>makeworld</B> can be used to rebuild an entire package group, or the
+entire build tree.
+<A NAME="lbAE">&nbsp;</A>
+<H2>BUILD PROCESS (or How To Build Your Own Packages)</H2>
+
+Start in an isolated directory (ie, it's not used for anything other
+than building this package). The build script should be called PKGBUILD
+and it should bear resemblance to the example below.
+<P>
+<B>NOTE:</B> 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 <B>abs</B> script included with pacman/makepkg.
+<P>
+<DL COMPACT>
+<DT><DT></DL>
+<A NAME="lbAF">&nbsp;</A>
+<H2>PKGBUILD Example:</H2>
+
+<DD>
+<DD>
+<DL COMPACT><DT><DD>
+<PRE>
+pkgname=modutils
+pkgver=2.4.13
+pkgrel=1
+pkgdesc=&quot;Utilities for inserting and removing modules from the linux kernel&quot;
+backup=(etc/modules.conf)
+depends=('glibc&gt;=2.2.5' 'bash' 'zlib')
+source=(<A HREF="ftp://ftp.server.com/$pkgname-$pkgver.tar.gz">ftp://ftp.server.com/$pkgname-$pkgver.tar.gz</A> modules.conf)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+ # copy our custom modules.conf into the package root
+ mkdir -p $startdir/pkg/etc
+ cp ../modules.conf $startdir/pkg/etc
+}
+</PRE>
+
+</DL>
+
+<P>
+As you can see, the setup is fairly simple. The first three lines define
+the package name and version info. They also define the final package name
+which will be of the form <I>$pkgname-$pkgver-$pkgrel.pkg.tar.gz</I>. The fourth
+line provides a brief description of the package. These four lines should
+be present in every PKGBUILD script.
+<P>
+The line with <I>backup=</I> specifies files that should be treated specially
+when removing or upgrading packages. See <B>HANDLING CONFIG FILES</B> in
+the <I>pacman</I> manpage for more information on this.
+<P>
+The sixth line lists the dependencies for this package. In order to build/run
+the package, all dependencies must be satisifed first. makepkg will check this
+before attempting to build the package.
+<P>
+Once your PKGBUILD is created, you can run <I>makepkg</I> from the build directory.
+makepkg will then check dependencies and look for the source files required to
+build. If some are missing it will attempt to download them, provided there is
+a fully-qualified URL in the <I>source</I> array.
+<P>
+The sources are then extracted into a directory called ./src and
+the <I>build</I> function is called. This is where all package configuration,
+building, and installing should be done. Any customization will likely take
+place here.
+<P>
+After a package is built, the <I>build</I> function must install the package
+files into a special package root, which can be referenced by <B>$startdir/pkg</B>
+in the <I>build</I> function. The typical way to do this is one of the following:
+<DL COMPACT><DT><DD>
+<PRE>
+
+make DESTDIR=$startdir/pkg install
+
+or
+
+make prefix=$startdir/pkg/usr install
+
+</PRE>
+
+</DL>
+
+Notice that the &quot;/usr&quot; portion should be present with &quot;prefix&quot;, but not &quot;DESTDIR&quot;.
+<P>
+Once the package is successfully installed into the package root, <I>makepkg</I>
+will remove some directories (as per Arch Linux package guidelines; if you use
+this elsewhere, feel free to change it) like /usr/doc and /usr/info. It will
+then strip debugging info from libraries and binaries and generate a meta-info
+file. Finally, it will compress everything into a .pkg.tar.gz file and leave it
+in the directory you ran <B>makepkg</B> from.
+<P>
+At this point you should have a package file in the current directory, named
+something like name-version-release.pkg.tar.gz. Done!
+<P>
+<A NAME="lbAG">&nbsp;</A>
+<H2>Install/Upgrade/Remove Scripting</H2>
+
+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 &quot;configure
+itself&quot; after installation and do the opposite right before it is removed.
+<P>
+The exact time the script is run varies with each operation:
+<DL COMPACT>
+<DT><B>post_install</B>
+
+<DD>
+script is run right after files are installed.
+<P>
+<DT><B>post_upgrade</B>
+
+<DD>
+script is run after all files have been upgraded.
+<P>
+<DT><B>pre_remove</B>
+
+<DD>
+script is run right before files are removed.
+<P>
+
+To use this feature, just create a file (eg, pkgname.install) and put it in
+the same directory as the PKGBUILD script. Then use the <I>install</I> directive:
+<DL COMPACT><DT><DD>
+<PRE>
+install=pkgname.install
+</PRE>
+
+</DL>
+
+<P>
+The install script does not need to be specified in the <I>source</I> array.
+<P>
+<DT><DT></DL>
+<A NAME="lbAH">&nbsp;</A>
+<H2>Install scripts must follow this format:</H2>
+
+<DD>
+<DD>
+<DL COMPACT><DT><DD>
+<PRE>
+# arg 1: the new package version
+post_install() {
+ #
+ # do post-install stuff here
+ #
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ #
+ # do post-upgrade stuff here
+ #
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ #
+ # do pre-remove stuff here
+ #
+ /bin/true
+}
+
+op=$1
+shift
+
+$op $*
+</PRE>
+
+</DL>
+
+<P>
+This template is also available in your ABS tree (/usr/abs/install.proto).
+<P>
+<A NAME="lbAI">&nbsp;</A>
+<H2>PKGBUILD Directives</H2>
+
+<DL COMPACT>
+<DT><B>pkgname</B>
+
+<DD>
+The name of the package. This has be a unix-friendly name as it will be
+used in the package filename.
+<P>
+<DT><B>pkgver</B>
+
+<DD>
+This is the version of the software as released from the author (eg, 2.7.1).
+<P>
+<DT><B>pkgrel</B>
+
+<DD>
+This is the release number specific to Arch Linux packages.
+<P>
+<DT><B>pkgdesc</B>
+
+<DD>
+This should be a brief description of the package and its functionality.
+<P>
+<DT><B>backup</B>
+
+<DD>
+A space-delimited array of filenames (without a preceding slash). The
+<I>backup</I> line will be propagated to the package meta-info file for
+pacman. This will designate all files listed there to be backed up if this
+package is ever removed from a system. See <B>HANDLING CONFIG FILES</B> in
+the <I>pacman</I> manpage for more information.
+<P>
+<DT><B>install</B>
+
+<DD>
+Specified 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
+<I>source</I> array. (eg, install=modutils.install)
+<P>
+<DT><B>depends</B>
+
+<DD>
+An array of packages that this package depends on to build and run. Packages
+in this list should be surrounded with single quotes and contain at least the
+package name. They can also include a version requirement of the form
+<B>name&lt;&gt;version</B>, where &lt;&gt; is one of these three comparisons: <B>&gt;=</B>
+(greater than equal to), <B>&lt;=</B> (less than or equal to), or <B>=</B> (equal to).
+See the PKGBUILD example above for an example of the <I>depends</I> directive.
+<P>
+<DT><B>conflicts</B>
+
+<DD>
+An array of packages that will conflict with this package (ie, they cannot both
+be installed at the same time). This directive follows the same format as
+<I>depends</I> except you cannot specify versions here, only package names.
+<P>
+<DT><B>source</B>
+
+<DD>
+The <I>source</I> line is an array of source files required to build the
+package. Source files must reside in the same directory as the PKGBUILD
+file, unless they have a fully-qualified URL. Then if the source file
+does not already exist in /var/cache/pacman/src, the file is downloaded
+by wget.
+<P>
+</DL>
+<A NAME="lbAJ">&nbsp;</A>
+<H2>MAKEPKG OPTIONS</H2>
+
+<DL COMPACT>
+<DT><B>-c, --clean</B>
+
+<DD>
+Clean up leftover work files/directories after a successful build.
+<DT><B>-i, --install</B>
+
+<DD>
+Install/Upgrade the package after a successful build.
+<DT><B>-s, --syncdeps</B>
+
+<DD>
+Install missing dependencies using pacman. When makepkg finds missing
+dependencies, it will run pacman to try and resolve them. If successful,
+pacman will download the missing packages from a package repository and
+install them for you.
+<DT><B>-b, --builddeps</B>
+
+<DD>
+Build missing dependencies from source. When makepkg finds missing
+dependencies, it will look for the dependencies' PKGBUILD files under
+$ABSROOT (set in your /etc/makepkg.conf). If it finds them it will
+run another copy of makepkg to build and install the missing dependencies.
+The child makepkg calls will be made with the <B>-b</B> and <B>-i</B> options.
+<DT><B>-d, --nodeps</B>
+
+<DD>
+Do not perform any dependency checks. This will let you override/ignore any
+dependencies required. There's a good chance this option will break the build
+process if all of the dependencies aren't installed.
+<DT><B>-f, --force</B>
+
+<DD>
+<B>makepkg</B> will not build a package if a <I>pkgname-pkgver-pkgrel.pkg.tar.gz</I>
+file already exists in the build directory. You can override this behaviour with
+the <B>--force</B> switch.
+<P>
+</DL>
+<A NAME="lbAK">&nbsp;</A>
+<H2>CONFIGURATION</H2>
+
+Configuration options are stored in <I>/etc/makepkg.conf</I>. This file is parsed
+as a bash script, so you can export any special compiler flags you wish
+to use. This is helpful for building for different architectures, or with
+different optimizations.
+<P>
+<B>NOTE:</B> This does not guarantee that all package Makefiles will use
+your exported variables. Some of them are flaky...
+<A NAME="lbAL">&nbsp;</A>
+<H2>SEE ALSO</H2>
+
+<B>pacman</B> is the package manager that uses packages built by makepkg.
+<P>
+See the Arch Linux Documentation for package-building guidelines if you wish
+to contribute packages to the Arch Linux project.
+<A NAME="lbAM">&nbsp;</A>
+<H2>AUTHOR</H2>
+
+<PRE>
+Judd Vinet &lt;<A HREF="mailto:jvinet@zeroflux.org">jvinet@zeroflux.org</A>&gt;
+</PRE>
+
+<P>
+
+<HR>
+<A NAME="index">&nbsp;</A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">BUILD PROCESS (or How To Build Your Own Packages)</A><DD>
+<DT><A HREF="#lbAF">PKGBUILD Example:</A><DD>
+<DT><A HREF="#lbAG">Install/Upgrade/Remove Scripting</A><DD>
+<DT><A HREF="#lbAH">Install scripts must follow this format:</A><DD>
+<DT><A HREF="#lbAI">PKGBUILD Directives</A><DD>
+<DT><A HREF="#lbAJ">MAKEPKG OPTIONS</A><DD>
+<DT><A HREF="#lbAK">CONFIGURATION</A><DD>
+<DT><A HREF="#lbAL">SEE ALSO</A><DD>
+<DT><A HREF="#lbAM">AUTHOR</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:22:11 GMT, March 04, 2003
+</BODY>
+</HTML>
diff --git a/doc/makepkg.8.in b/doc/makepkg.8.in
index 3cc60b2d..35ebc974 100644
--- a/doc/makepkg.8.in
+++ b/doc/makepkg.8.in
@@ -1,4 +1,4 @@
-.TH makepkg 8 "February 18, 2003" "makepkg #VERSION#" ""
+.TH makepkg 8 "March 3, 2003" "makepkg #VERSION#" ""
.SH NAME
makepkg \- package build utility
.SH SYNOPSIS
@@ -232,7 +232,7 @@ Clean up leftover work files/directories after a successful build.
.B "\-i, \-\-install"
Install/Upgrade the package after a successful build.
.TP
-.B "\-d, \-\-syncdeps"
+.B "\-s, \-\-syncdeps"
Install missing dependencies using pacman. When makepkg finds missing
dependencies, it will run pacman to try and resolve them. If successful,
pacman will download the missing packages from a package repository and
@@ -245,7 +245,7 @@ $ABSROOT (set in your /etc/makepkg.conf). If it finds them it will
run another copy of makepkg to build and install the missing dependencies.
The child makepkg calls will be made with the \fB-b\fP and \fB-i\fP options.
.TP
-.B "\-n, \-\-nodeps"
+.B "\-d, \-\-nodeps"
Do not perform any dependency checks. This will let you override/ignore any
dependencies required. There's a good chance this option will break the build
process if all of the dependencies aren't installed.
diff --git a/doc/pacman.8.html b/doc/pacman.8.html
new file mode 100644
index 00000000..e10c2b27
--- /dev/null
+++ b/doc/pacman.8.html
@@ -0,0 +1,306 @@
+Content-type: text/html
+
+<HTML><HEAD><TITLE>Manpage of pacman</TITLE>
+</HEAD><BODY>
+<H1>pacman</H1>
+Section: (8)<BR>Updated: January 20, 2003<BR><A HREF="#index">Index</A>
+<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
+
+<A NAME="lbAB">&nbsp;</A>
+<H2>NAME</H2>
+
+pacman - package manager utility
+<A NAME="lbAC">&nbsp;</A>
+<H2>SYNOPSIS</H2>
+
+<B>pacman &lt;operation&gt; [options] &lt;package&gt; [package] ...</B>
+<A NAME="lbAD">&nbsp;</A>
+<H2>DESCRIPTION</H2>
+
+<B>pacman</B> is a <I>package management</I> utility that tracks installed
+packages on a linux system. It has simple dependency support and the ability
+to connect to a remote ftp server and automatically upgrade packages on
+the local system. pacman package are <I>gzipped tar</I> format.
+<A NAME="lbAE">&nbsp;</A>
+<H2>OPERATIONS</H2>
+
+<DL COMPACT>
+<DT><B>-A, --add</B>
+
+<DD>
+Add a package to the system. Package will be uncompressed
+into the installation root and the database will be updated.
+<DT><B>-R, --remove</B>
+
+<DD>
+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
+<I>.pacsave</I> extension unless the <B>--nosave</B> option was
+used.
+<DT><B>-U, --upgrade</B>
+
+<DD>
+Upgrade a package. This is essentially a &quot;remove-then-add&quot;
+process. See <B>HANDLING CONFIG FILES</B> for an explanation
+on how pacman takes care of config files.
+<DT><B>-F, --freshen</B>
+
+<DD>
+This is like --upgrade except that, unlike --upgrade, this will only
+upgrade packages that are already installed on your system.
+<DT><B>-Q, --query</B>
+
+<DD>
+Query the package database. This operation allows you to
+view installed packages and their files, as well as meta-info
+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
+<B>QUERY OPTIONS</B> below.
+<DT><B>-S, --sync</B>
+
+<DD>
+Synchronize packages. With this function you can install packages
+directly from the ftp servers, complete with all dependencies required
+to run the packages. For example, <B>pacman -S qt</B> will download
+qt and all the packages it depends on and install them. You could also use
+<B>pacman -Su</B> to upgrade all packages that are out of date (see below).
+<DT><B>-V, --version</B>
+
+<DD>
+Display version and exit.
+<DT><B>-h, --help</B>
+
+<DD>
+Display syntax for the given operation. If no operation was
+supplied then the general syntax is shown.
+</DL>
+<A NAME="lbAF">&nbsp;</A>
+<H2>OPTIONS</H2>
+
+<DL COMPACT>
+<DT><B>-v, --verbose</B>
+
+<DD>
+Output more status and error messages.
+<DT><B>-f, --force</B>
+
+<DD>
+Bypass file conflict checks,, overwriting 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.
+<DT><B>-d, --nodeps</B>
+
+<DD>
+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. This
+switch disables these checks.
+<DT><B>-n, --nosave</B>
+
+<DD>
+(only used with <B>--remove</B>)
+Instructs pacman to ignore file backup designations. Normally, when
+a file is about to be <I>removed</I> from the system the database is first
+checked to see if the file should be renamed to a .pacsave extension. If
+<B>--nosave</B> is used, these designations are ignored and the files are
+removed.
+<DT><B>-r, --root &lt;path&gt;</B>
+
+<DD>
+Specify alternative installation root (default is &quot;/&quot;). This
+should <I>not</I> be used as a way to install software into
+e.g. /usr/local instead of /usr. Instead this should be used
+if you want to install a package on a temporary mounted partition,
+which is &quot;owned&quot; by another system. By using this option you not only
+specify where the software should be installed, but you also
+specify which package database to use.
+</DL>
+<A NAME="lbAG">&nbsp;</A>
+<H2>SYNC OPTIONS</H2>
+
+<DL COMPACT>
+<DT><B>-y, --refresh</B>
+
+<DD>
+Download a fresh copy of the master package list from the ftp server
+defined in <I>/etc/pacman.conf</I>. This should typically be used each
+time you use <B>--sysupgrade</B>.
+<DT><B>-u, --sysupgrade</B>
+
+<DD>
+Upgrades all packages that are out of date. pacman will examine every
+package installed on the system, and if a newer package exists on the
+server it will upgrade. pacman will present a report of all packages
+it wants to upgrade and will not proceed without user confirmation.
+Dependencies are automatically resolved at this level and will be
+installed/upgraded if necessary.
+<DT><B>-s, --search &lt;string&gt;</B>
+
+<DD>
+This will search each package in the package list for names or descriptions
+that contains &lt;string&gt;.
+<DT><B>-w, --downloadonly</B>
+
+<DD>
+Retrieve all packages from the server, but do not install/upgrade anything.
+<DT><B>-c, --clean</B>
+
+<DD>
+Remove packages from the cache. When pacman downloads packages,
+it saves them in <I>/var/cache/pacman/pkg</I>. If you need to free up
+diskspace, you can remove these packages by using the --clean option.
+</DL>
+<A NAME="lbAH">&nbsp;</A>
+<H2>QUERY OPTIONS</H2>
+
+<DL COMPACT>
+<DT><B>-o, --owns &lt;file&gt;</B>
+
+<DD>
+Search for the package that owns &lt;file&gt;.
+<DT><B>-l, --list</B>
+
+<DD>
+List all files owned by &lt;package&gt;. Multiple packages can be specified on
+the command line.
+<DT><B>-i, --info</B>
+
+<DD>
+Display information on a given package. If it is used with the <B>-p</B>
+option then the .PKGINFO file will be printed.
+<DT><B>-p, --file</B>
+
+<DD>
+Tells pacman that the package supplied on the command line is a
+file, not an entry in the database. Pacman will decompress the
+file and query it. This is useful with <B>--info</B> and <B>--list</B>.
+</DL>
+<A NAME="lbAI">&nbsp;</A>
+<H2>HANDLING CONFIG FILES</H2>
+
+pacman uses the same logic as rpm to determine action against files
+that are designated to be backed up. During an upgrade, it uses 3
+md5 hashes 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:
+<DL COMPACT>
+<DT>original=<B>X</B>, current=<B>X</B>, new=<B>X</B><DD>
+All three files are the same, so we win either way. Install the new file.
+<DT>original=<B>X</B>, current=<B>X</B>, new=<B>Y</B><DD>
+The current file is un-altered from the original but the new one is
+different. Since the user did not ever modify the file, and the new
+one may contain improvements/bugfixes, we install the new file.
+<DT>original=<B>X</B>, current=<B>Y</B>, new=<B>X</B><DD>
+Both package versions contain the exact same file, but the one
+on the filesystem has been modified since. In this case, we leave
+the current file in place.
+<DT>original=<B>X</B>, current=<B>Y</B>, new=<B>Y</B><DD>
+The new one is identical to the current one. Win win. Install the new file.
+<DT>original=<B>X</B>, current=<B>Y</B>, new=<B>Z</B><DD>
+All three files are different. So we install the new file, but back up the
+old one to a .pacsave extension. This way the user can move the old configuration
+file back into place if he wishes.
+</DL>
+<A NAME="lbAJ">&nbsp;</A>
+<H2>CONFIGURATION</H2>
+
+pacman will attempt to read <I>/etc/pacman.conf</I> each time it is invoked. This
+configuration file is divided into sections or <I>repositories</I>. Each section
+defines a package repository that pacman can use when searching for packages in
+--sync mode. The exception to this is the <I>options</I> section, which defines
+global options.
+<DL COMPACT>
+<DT></DL>
+<A NAME="lbAK">&nbsp;</A>
+<H2>Example:</H2>
+
+<DD>
+<DL COMPACT><DT><DD>
+<PRE>
+[options]
+NoUpgrade = etc/passed etc/group etc/shadow
+NoUpgrade = etc/fstab
+
+[current]
+Server = <A HREF="ftp://ftp.server.org/linux/archlinux/current">ftp://ftp.server.org/linux/archlinux/current</A>
+Server = <A HREF="ftp://ftp.mirror.com/arch/current">ftp://ftp.mirror.com/arch/current</A>
+
+[custom]
+Server = <A HREF="local:///home/pkgs">local:///home/pkgs</A>
+
+</PRE>
+
+</DL>
+
+All files listed with a <I>NoUpgrade</I> directive will never be touched during a package
+install/upgrade. This directive is only valid in the options section.
+<P>
+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 (eg, the two
+above are 'current' and 'custom'). Locations are defined with the <I>Server</I> directive and
+follow a URL naming structure. Currently only ftp is supported for remote servers. If you
+want to use a local directory, you can specify the full path with a '<A HREF="local://'">local://'</A> prefix, as
+shown above.
+<A NAME="lbAL">&nbsp;</A>
+<H2>USING YOUR OWN REPOSITORY</H2>
+
+Let's say you have a bunch of custom packages in <I>/home/pkgs</I> and their respective PKGBUILD
+files are all in <I>/usr/abs/local</I>. All you need to do is generate a compressed package database
+in the <I>/home/pkgs</I> directory so pacman can find it when run with --refresh.
+<P>
+<DL COMPACT><DT><DD>
+<PRE>
+# gensync /usr/abs/local /home/pkgs/custom.db.tar.gz
+</PRE>
+
+</DL>
+
+<P>
+The above command will read all PKGBUILD files in /usr/abs/local and generate a compressed
+database called /home/pkgs/custom.db.tar.gz. Note that the database must be of the form
+<I>{treename}.db.tar.gz</I>, where {treename} is the name of the section defined in the
+configuration file.
+That's it! Now configure your <I>custom</I> 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.
+<A NAME="lbAM">&nbsp;</A>
+<H2>SEE ALSO</H2>
+
+<B>makepkg</B> is the package-building tool that comes with pacman.
+<A NAME="lbAN">&nbsp;</A>
+<H2>AUTHOR</H2>
+
+<PRE>
+Judd Vinet &lt;<A HREF="mailto:jvinet@zeroflux.org">jvinet@zeroflux.org</A>&gt;
+</PRE>
+
+<P>
+
+<HR>
+<A NAME="index">&nbsp;</A><H2>Index</H2>
+<DL>
+<DT><A HREF="#lbAB">NAME</A><DD>
+<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
+<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
+<DT><A HREF="#lbAE">OPERATIONS</A><DD>
+<DT><A HREF="#lbAF">OPTIONS</A><DD>
+<DT><A HREF="#lbAG">SYNC OPTIONS</A><DD>
+<DT><A HREF="#lbAH">QUERY OPTIONS</A><DD>
+<DT><A HREF="#lbAI">HANDLING CONFIG FILES</A><DD>
+<DT><A HREF="#lbAJ">CONFIGURATION</A><DD>
+<DT><A HREF="#lbAK">Example:</A><DD>
+<DT><A HREF="#lbAL">USING YOUR OWN REPOSITORY</A><DD>
+<DT><A HREF="#lbAM">SEE ALSO</A><DD>
+<DT><A HREF="#lbAN">AUTHOR</A><DD>
+</DL>
+<HR>
+This document was created by
+<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
+using the manual pages.<BR>
+Time: 17:22:16 GMT, March 04, 2003
+</BODY>
+</HTML>