MAKEPKG(1)

NAME
makepg - build a rpm-format software package.

SYNOPSIS
makepkg [-vhVoa] [package specification]
makepkg {--version,--help,--verbose,--show-os,--show-arch} [package specification]

DESCRIPTION
Makepkg builds a Red-Hat compatable software package. It does not support digital signatures yet, nor does it support `source' archives, but it has a clean build-file format and does not require specialized libraries or elaborate build environments to generate packages.

To use makepkg to build packages, you need to write a package specification. Package specifications are set up like Microsoft Windows .INI files, with section headers enclosed in [].

[PACKAGE]
This section describes the package (package name, version, revision,
    distribution, author, and copyright.) It consists of a collection of value=content lines, which are:

    NAME
        This is the name of the package. (required)

    VERSION
        This is the current version number of the package. (required)

    RELEASE
        This is the release number of the package. I'm not sure what's different between this and VERSION, but perhaps the people at Red Hat know.

    AUTHOR
        This is the person who wrote the package, or the company that's distributing it. (required)

    DISTRIBUTION
        This is the distribution that the package is part of.

    SUMMARY
        This is a short one-line summary describing the package. (required)

    URL This is apparently for external documentation, if you want to have a web page describing this package.

    COPYRIGHT
        This is a brief description of the copyright terms that the package is distributed under. Common copyright terms are GPL, for the GNU Public License, BSD, for a license like the one that UC-Berkeley put on BSD Unix, or Commercial, for any sort of commercial license that you care to mention. (required)

    OS  This describes the operating system this package is for, if it's not for the system that you built the package on. The only operating systems currently defined for makepkg are Linux, Solaris, SunOS, and Irix. You can find out which operating systems makepkg currently supports by using the --show-os option.

    ARCH
        This describes the machine architecture that this package is for, if it's not for the machine that you're building the package on. The machines currently defined for makepkg are Eniac, the Intel ia32 architecture ( i386, i486, 8050x (Pentium, also known as i586), and 8052x (Pentium Pro and Pentium II, also known as i686) families, and AMD and Cyrix clones), Motorola's PowerPC(ppc) and 680x0(68000) chips, the Sun sparc chip, and the MIPS (also IP and sgi) R chips. You can find out which architectures are supported by makepkg by using the --show-arch option.

[DESCRIPTION]
This section contains a text description of the package.  Red Hat Software
    says in their description of the protocol that descriptions are depreciated, and people should use summary lines instead, but third parties don't seem to be paying much attention to this.

[NEEDS]
This section lists the prerequisites for this package, one prerequisite
    per line, in `package version' format. The most common prerequisites are shared libraries and executable formats, for instance:
    [NEEDS]
    libc.so.4	4.8.0

    I have NO IDEA what the reference implementation wants to see here. If you know how the reference implementation works, please drop me a line.

[FILES]
This section contains all the files in the package, one per line.
    Makepkg supports file relocation in the [FILES] section, by giving filenames of the form filename => destination. A filename like this will store the filename in the package with the destination name.

[PREINSTALL]
This section is a shellscript that rpm should run before trying to
    install the package. If you need to do anything like set up special users or groups for the package, you would do it here to avoid unpacking errors.

[INSTALL]
This section is a shellscript that rpm should run after installing
    the package. Starting the package up, or modifying system .rc files (dangerous!) should be done here.

[UNINSTALL]
This section is a shellscript that rpm should run after uninstalling
    the package.

EXAMPLES
This example builds a ls package from binaries in the current directory.
    [PACKAGE]
        name=ls
        version=1.0
        release=1
        author="orc@pell.chi.il.us"
        distribution="Mastodon"
        summary="Berkeley ls and appropriate aliases"
        URL="http://www.pell.chi.il.us/~orc/Code/Mastodon/"
        COPYRIGHT=BSD
    [DESCRIPTION]
        Berkeley ls, ported to Linux to replace the FSF one.
    [FILES]
        ls => /bin/ls
        ls.1 => /usr/man/man1/ls.1
    [NEEDS]
        libc.so.4	4.8.0
    [PREINSTALL]
        rm -f /usr/man/man1/ls.1*
        rm -f /usr/man/cat1/ls.1*
    [INSTALL]
        ln -sf ls /bin/lf
        ln -sf ls /bin/ll
    [UNINSTALL]
        rm -f /bin/lf /bin/ll

AUTHOR
David Parsons (
    orc@pell.chi.il.us )

BUGS
Legion