diff options
Diffstat (limited to 'upstream/fedora-40/man5/PKGBUILD.5')
-rw-r--r-- | upstream/fedora-40/man5/PKGBUILD.5 | 795 |
1 files changed, 795 insertions, 0 deletions
diff --git a/upstream/fedora-40/man5/PKGBUILD.5 b/upstream/fedora-40/man5/PKGBUILD.5 new file mode 100644 index 00000000..c320a1e5 --- /dev/null +++ b/upstream/fedora-40/man5/PKGBUILD.5 @@ -0,0 +1,795 @@ +'\" t +.\" Title: pkgbuild +.\" Author: [see the "Authors" section] +.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> +.\" Date: 2024-01-25 +.\" Manual: Pacman Manual +.\" Source: Pacman 6.0.2 +.\" Language: English +.\" +.TH "PKGBUILD" "5" "2024\-01\-25" "Pacman 6\&.0\&.2" "Pacman Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +PKGBUILD \- Arch Linux package build description file +.SH "SYNOPSIS" +.sp +PKGBUILD +.SH "DESCRIPTION" +.sp +This manual page describes general rules about PKGBUILDs\&. Once a PKGBUILD is written, the actual package is built using makepkg and installed with pacman\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +.sp +An example PKGBUILD, useful for reference, is located in \fI/usr/share/pacman\fR along with other example files such as an install script\&. You can copy the provided PKGBUILD\&.proto file to a new package build directory and make customizations to suit your needs\&. +.sp .5v +.RE +.SH "OPTIONS AND DIRECTIVES" +.sp +The following is a list of standard options and directives available for use in a PKGBUILD\&. These are all understood and interpreted by makepkg, and most of them will be directly transferred to the built package\&. The mandatory fields for a minimally functional PKGBUILD are \fBpkgname\fR, \fBpkgver\fR, \fBpkgrel\fR and \fBarch\fR\&. +.sp +If you need to create any custom variables for use in your build process, it is recommended to prefix their name with an \fI_\fR (underscore)\&. This will prevent any possible name clashes with internal makepkg variables\&. For example, to store the base kernel version in a variable, use something similar to $_basekernver\&. +.PP +\fBpkgname (array)\fR +.RS 4 +Either the name of the package or an array of names for split packages\&. Valid characters for members of this array are alphanumerics, and any of the following characters: \(lq@ \&. _ + \-\(rq\&. Additionally, names are not allowed to start with hyphens or dots\&. +.RE +.PP +\fBpkgver\fR +.RS 4 +The version of the software as released from the author (e\&.g\&., +\fI2\&.7\&.1\fR)\&. The variable is not allowed to contain colons, forward slashes, hyphens or whitespace\&. +.sp +The +pkgver +variable can be automatically updated by providing a +pkgver() +function in the PKGBUILD that outputs the new package version\&. This is run after downloading and extracting the sources and running the +prepare() +function (if present), so it can use those files in determining the new +pkgver\&. This is most useful when used with sources from version control systems (see below)\&. +.RE +.PP +\fBpkgrel\fR +.RS 4 +This is the release number specific to the distribution\&. This allows package maintainers to make updates to the package\(cqs configure flags, for example\&. This is typically set to +\fI1\fR +for each new upstream software release and incremented for intermediate PKGBUILD updates\&. The variable is a positive integer, with an optional subrelease level specified by adding another positive integer separated by a period (i\&.e\&. in the form x\&.y)\&. +.RE +.PP +\fBepoch\fR +.RS 4 +Used to force the package to be seen as newer than any previous versions with a lower epoch, even if the version number would normally not trigger such an upgrade\&. This value is required to be a positive integer; the default value if left unspecified is +\fI0\fR\&. This is useful when the version numbering scheme of a package changes (or is alphanumeric), breaking normal version comparison logic\&. See +\fBpacman\fR(8) +for more information on version comparisons\&. +.RE +.PP +\fBpkgdesc\fR +.RS 4 +This should be a brief description of the package and its functionality\&. Try to keep the description to one line of text and to not use the package\(cqs name\&. +.RE +.PP +\fBurl\fR +.RS 4 +This field contains a URL that is associated with the software being packaged\&. This is typically the project\(cqs web site\&. +.RE +.PP +\fBlicense (array)\fR +.RS 4 +This field specifies the license(s) that apply to the package\&. Commonly used licenses can be found in +\fI/usr/share/licenses/common\fR\&. If you see the package\(cqs license there, simply reference it in the license field (e\&.g\&., +license=(\*(AqGPL\*(Aq))\&. If the package provides a license not available in +\fI/usr/share/licenses/common\fR, then you should include it in the package itself and set +license=(\*(Aqcustom\*(Aq) +or +license=(\*(Aqcustom:LicenseName\*(Aq)\&. The license should be placed in +\fI$pkgdir/usr/share/licenses/$pkgname/\fR +when building the package\&. If multiple licenses are applicable, list all of them: +license=(\*(AqGPL\*(Aq \*(AqFDL\*(Aq)\&. +.RE +.PP +\fBinstall\fR +.RS 4 +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)\&. +.RE +.PP +\fBchangelog\fR +.RS 4 +Specifies a changelog file that is to be included in the package\&. The changelog file should end in a single newline\&. 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\&., +changelog=$pkgname\&.changelog)\&. +.RE +.PP +\fBsource (array)\fR +.RS 4 +An array of source files required to build the package\&. Source files must either reside in the same directory as the PKGBUILD, or be a fully\-qualified URL that makepkg can use to download the file\&. To simplify the maintenance of PKGBUILDs, use the +$pkgname +and +$pkgver +variables when specifying the download location, if possible\&. Compressed files will be extracted automatically unless found in the noextract array described below\&. +.sp +Additional architecture\-specific sources can be added by appending an underscore and the architecture name e\&.g\&., +\fIsource_x86_64=()\fR\&. There must be a corresponding integrity array with checksums, e\&.g\&. +\fIcksums_x86_64=()\fR\&. +.sp +It is also possible to change the name of the downloaded file, which is helpful with weird URLs and for handling multiple source files with the same name\&. The syntax is: +source=(\*(Aqfilename::url\*(Aq)\&. +.sp +makepkg also supports building developmental versions of packages using sources downloaded from version control systems (VCS)\&. For more information, see +Using VCS Sources +below\&. +.sp +Files in the source array with extensions +\&.sig, +\&.sign +or, +\&.asc +are recognized by makepkg as PGP signatures and will be automatically used to verify the integrity of the corresponding source file\&. +.RE +.PP +\fBvalidpgpkeys (array)\fR +.RS 4 +An array of PGP fingerprints\&. If this array is non\-empty, makepkg will only accept signatures from the keys listed here and will ignore the trust values from the keyring\&. If the source file was signed with a subkey, makepkg will still use the primary key for comparison\&. +.sp +Only full fingerprints are accepted\&. They must be uppercase and must not contain whitespace characters\&. +.RE +.PP +\fBnoextract (array)\fR +.RS 4 +An array of file names 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 that use compressed data directly\&. +.RE +.PP +\fBcksums (array)\fR +.RS 4 +This array contains CRC checksums 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\&. If +\fISKIP\fR +is put in the array in place of a normal hash, the integrity check for that source file will be skipped\&. To easily generate cksums, run \(lqmakepkg \-g >> PKGBUILD\(rq\&. If desired, move the cksums line to an appropriate location\&. Note that checksums generated by "makepkg \-g" should be verified using checksum values provided by the software developer\&. +.RE +.PP +\fBmd5sums, sha1sums, sha224sums, sha256sums, sha384sums, sha512sums, b2sums (arrays)\fR +.RS 4 +Alternative integrity checks that makepkg supports; these all behave similar to the cksums option described above\&. To enable use and generation of these checksums, be sure to set up the +INTEGRITY_CHECK +option in +\fBmakepkg.conf\fR(5)\&. +.RE +.PP +\fBgroups (array)\fR +.RS 4 +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 +\fIkde\fR +group\&. +.RE +.PP +\fBarch (array)\fR +.RS 4 +Defines on which architectures the given package is available (e\&.g\&., +arch=(\*(Aqi686\*(Aq \*(Aqx86_64\*(Aq))\&. Packages that contain no architecture specific files should use +arch=(\*(Aqany\*(Aq)\&. Valid characters for members of this array are alphanumerics and \(lq_\(rq\&. +.RE +.PP +\fBbackup (array)\fR +.RS 4 +An array of file names, 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 +\fI/etc\fR\&. See +"Handling Config Files" +in +\fBpacman\fR(8) +for more information\&. +.RE +.PP +\fBdepends (array)\fR +.RS 4 +An array of packages this package depends on to run\&. Entries 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 +\fIname<>version\fR, where +<> +is one of five comparisons: +>= +(greater than or equal to), +<= +(less than or equal to), += +(equal to), +> +(greater than), or +< +(less than)\&. +.sp +If the dependency name appears to be a library (ends with \&.so), makepkg will try to find a binary that depends on the library in the built package and append the version needed by the binary\&. Appending the version yourself disables automatic detection\&. +.sp +Additional architecture\-specific depends can be added by appending an underscore and the architecture name e\&.g\&., +\fIdepends_x86_64=()\fR\&. +.RE +.PP +\fBmakedepends (array)\fR +.RS 4 +An array of packages this package depends on to build but are not needed at runtime\&. Packages in this list follow the same format as depends\&. +.sp +Additional architecture\-specific makedepends can be added by appending an underscore and the architecture name e\&.g\&., +\fImakedepends_x86_64=()\fR\&. +.RE +.PP +\fBcheckdepends (array)\fR +.RS 4 +An array of packages this package depends on to run its test suite but are not needed at runtime\&. Packages in this list follow the same format as depends\&. These dependencies are only considered when the check() function is present and is to be run by makepkg\&. +.sp +Additional architecture\-specific checkdepends can be added by appending an underscore and the architecture name e\&.g\&., +\fIcheckdepends_x86_64=()\fR\&. +.RE +.PP +\fBoptdepends (array)\fR +.RS 4 +An array of packages (and accompanying reasons) that are not essential for base functionality, but may be necessary to make full use of the contents of this package\&. optdepends are currently for informational purposes only and are not utilized by pacman during dependency resolution\&. Packages in this list follow the same format as depends, with an optional description appended\&. The format for specifying optdepends descriptions is: +.sp +.if n \{\ +.RS 4 +.\} +.nf +optdepends=(\*(Aqpython: for library bindings\*(Aq) +.fi +.if n \{\ +.RE +.\} +.sp +Additional architecture\-specific optdepends can be added by appending an underscore and the architecture name e\&.g\&., +\fIoptdepends_x86_64=()\fR\&. +.RE +.PP +\fBconflicts (array)\fR +.RS 4 +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 supported using the operators as described in +depends\&. +.sp +Additional architecture\-specific conflicts can be added by appending an underscore and the architecture name e\&.g\&., +\fIconflicts_x86_64=()\fR\&. +.RE +.PP +\fBprovides (array)\fR +.RS 4 +An array of \(lqvirtual provisions\(rq this package provides\&. This allows a package to provide dependencies other than its own package name\&. For example, the dcron package can provide +\fIcron\fR, which allows packages to depend on +\fIcron\fR +rather than +\fIdcron OR fcron\fR\&. +.sp +Versioned provisions are also possible, in the +\fIname=version\fR +format\&. For example, dcron can provide +\fIcron=2\&.0\fR +to satisfy the +\fIcron>=2\&.0\fR +dependency of other packages\&. Provisions involving the +> +and +< +operators are invalid as only specific versions of a package may be provided\&. +.sp +If the provision name appears to be a library (ends with \&.so), makepkg will try to find the library in the built package and append the correct version\&. Appending the version yourself disables automatic detection\&. +.sp +Additional architecture\-specific provides can be added by appending an underscore and the architecture name e\&.g\&., +\fIprovides_x86_64=()\fR\&. +.RE +.PP +\fBreplaces (array)\fR +.RS 4 +An array of packages this package should replace\&. This can be used to handle renamed/combined packages\&. For example, if the +\fIj2re\fR +package is renamed to +\fIjre\fR, this directive allows future upgrades to continue as expected even though the package has moved\&. Versioned replaces are supported using the operators as described in +depends\&. +.sp +Sysupgrade is currently the only pacman operation that utilizes this field\&. A normal sync or upgrade will not use its value\&. +.sp +Additional architecture\-specific replaces can be added by appending an underscore and the architecture name e\&.g\&., +\fIreplaces_x86_64=()\fR\&. +.RE +.PP +\fBoptions (array)\fR +.RS 4 +This array allows you to override some of makepkg\(cqs 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 \(lq!\(rq at the front of the option\&. Only specify the options you specifically want to override, the rest will be taken from +\fBmakepkg.conf\fR(5)\&. +\fBNOTE:\fR +\fIforce\fR +is a now\-removed option in favor of the top level +\fIepoch\fR +variable\&. +.PP +\fBstrip\fR +.RS 4 +Strip symbols from binaries and libraries\&. If you frequently use a debugger on programs or libraries, it may be helpful to disable this option\&. +.RE +.PP +\fBdocs\fR +.RS 4 +Save doc directories\&. If you wish to delete doc directories, specify +!docs +in the array\&. +.RE +.PP +\fBlibtool\fR +.RS 4 +Leave libtool (\&.la) files in packages\&. Specify +!libtool +to remove them\&. +.RE +.PP +\fBstaticlibs\fR +.RS 4 +Leave static library (\&.a) files in packages\&. Specify +!staticlibs +to remove them (if they have a shared counterpart)\&. +.RE +.PP +\fBemptydirs\fR +.RS 4 +Leave empty directories in packages\&. +.RE +.PP +\fBzipman\fR +.RS 4 +Compress man and info pages with gzip\&. +.RE +.PP +\fBccache\fR +.RS 4 +Allow the use of ccache during +build()\&. More useful in its negative form +!ccache +with select packages that have problems building with ccache\&. +.RE +.PP +\fBdistcc\fR +.RS 4 +Allow the use of distcc during +build()\&. More useful in its negative form +!distcc +with select packages that have problems building with distcc\&. +.RE +.PP +\fBbuildflags\fR +.RS 4 +Allow the use of user\-specific buildflags (CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS) during +build() +as specified in +\fBmakepkg.conf\fR(5)\&. More useful in its negative form +!buildflags +with select packages that have problems building with custom buildflags\&. +.RE +.PP +\fBmakeflags\fR +.RS 4 +Allow the use of user\-specific makeflags during +build() +as specified in +\fBmakepkg.conf\fR(5)\&. More useful in its negative form +!makeflags +with select packages that have problems building with custom makeflags such as +\-j2 +(or higher)\&. +.RE +.PP +\fBdebug\fR +.RS 4 +Add the user\-specified debug flags (DEBUG_CFLAGS, DEBUG_CXXFLAGS) to their counterpart buildflags as specified in +\fBmakepkg.conf\fR(5)\&. When used in combination with the \(oqstrip\(cq option, a separate package containing the debug symbols is created\&. +.RE +.PP +\fBlto\fR +.RS 4 +Enable building packages using link time optimization\&. Adds +\fI\-flto\fR +to both CFLAGS and CXXFLAGS\&. +.RE +.RE +.SH "PACKAGING FUNCTIONS" +.sp +In addition to the above directives, PKGBUILDs require a set of functions that provide instructions to build and install the package\&. As a minimum, the PKGBUILD must contain a package() function which installs all the package\(cqs files into the packaging directory, with optional prepare(), build(), and check() functions being used to create those files from source\&. +.sp +This is directly sourced and executed by makepkg, so anything that Bash or the system has available is available for use here\&. Be sure any exotic commands used are covered by the makedepends array\&. +.sp +If you create any variables of your own in any of these functions, it is recommended to use the Bash local keyword to scope the variable to inside the function\&. +.PP +\fBpackage() Function\fR +.RS 4 +The +package() +function is used to install files into the directory that will become the root directory of the built package and is run after all the optional functions listed below\&. The packaging stage is run using fakeroot to ensure correct file permissions in the resulting package\&. All other functions will be run as the user calling makepkg\&. +.RE +.PP +\fBprepare() Function\fR +.RS 4 +An optional +prepare() +function can be specified in which operations to prepare the sources for building, such as patching, are performed\&. This function is run after the source extraction and before the +build() +function\&. The +prepare() +function is skipped when source extraction is skipped\&. +.RE +.PP +\fBbuild() Function\fR +.RS 4 +The optional +build() +function is used to compile and/or adjust the source files in preparation to be installed by the +package() +function\&. +.RE +.PP +\fBcheck() Function\fR +.RS 4 +An optional +check() +function can be specified in which a package\(cqs test\-suite may be run\&. This function is run between the +build() +and +package() +functions\&. Be sure any exotic commands used are covered by the +checkdepends +array\&. +.RE +.sp +All of the above variables such as $pkgname and $pkgver are available for use in the packaging functions\&. In addition, makepkg defines the following variables: +.PP +\fBsrcdir\fR +.RS 4 +This contains the directory where makepkg extracts, or copies, all source files\&. +.sp +All of the packaging functions defined above are run starting inside +$srcdir +.RE +.PP +\fBpkgdir\fR +.RS 4 +This contains the directory where makepkg bundles the installed package\&. This directory will become the root directory of your built package\&. This variable should only be used in the +package() +function\&. +.RE +.PP +\fBstartdir\fR +.RS 4 +This contains the absolute path to the directory where the PKGBUILD is located, which is usually the output of +$(pwd) +when makepkg is started\&. Use of this variable is deprecated and strongly discouraged\&. +.RE +.SH "PACKAGE SPLITTING" +.sp +makepkg supports building multiple packages from a single PKGBUILD\&. This is achieved by assigning an array of package names to the pkgname directive\&. Each split package uses a corresponding packaging function with name package_foo(), where foo is the name of the split package\&. +.sp +All options and directives for the split packages default to the global values given in the PKGBUILD\&. Nevertheless, the following ones can be overridden within each split package\(cqs packaging function: pkgdesc, arch, url, license, groups, depends, optdepends, provides, conflicts, replaces, backup, options, install, and changelog\&. +.sp +Note that makepkg does not consider split package depends when checking if dependencies are installed before package building and with \-\-syncdeps\&. All packages required to make the package are required to be specified in the global depends and makedepends arrays\&. +.sp +An optional global directive is available when building a split package: +.PP +\fBpkgbase\fR +.RS 4 +The name used to refer to the group of packages in the output of makepkg and in the naming of source\-only tarballs\&. If not specified, the first element in the +pkgname +array is used\&. Valid characters for this variable are alphanumerics, and any of the following characters: \(lq@ \&. _ + \-\(rq\&. Additionally, the variable is not allowed to start with hyphens or dots\&. +.RE +.SH "INSTALL/UPGRADE/REMOVE SCRIPTING" +.sp +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\&. +.sp +The exact time the script is run varies with each operation, and should be self\-explanatory\&. Note that during an upgrade operation, none of the install or remove functions will be called\&. +.sp +Scripts are passed either one or two \(lqfull version strings\(rq, where a full version string is either \fIpkgver\-pkgrel\fR or \fIepoch:pkgver\-pkgrel\fR, if epoch is non\-zero\&. +.PP +\fBpre_install\fR +.RS 4 +Run right before files are extracted\&. One argument is passed: new package full version string\&. +.RE +.PP +\fBpost_install\fR +.RS 4 +Run right after files are extracted\&. One argument is passed: new package full version string\&. +.RE +.PP +\fBpre_upgrade\fR +.RS 4 +Run right before files are extracted\&. Two arguments are passed in this order: new package full version string, old package full version string\&. +.RE +.PP +\fBpost_upgrade\fR +.RS 4 +Run after files are extracted\&. Two arguments are passed in this order: new package full version string, old package full version string\&. +.RE +.PP +\fBpre_remove\fR +.RS 4 +Run right before files are removed\&. One argument is passed: old package full version string\&. +.RE +.PP +\fBpost_remove\fR +.RS 4 +Run right after files are removed\&. One argument is passed: old package full version string\&. +.RE +.sp +To use this feature, create a file such as \fIpkgname\&.install\fR and put it in the same directory as the PKGBUILD script\&. Then use the install directive: +.sp +.if n \{\ +.RS 4 +.\} +.nf +install=pkgname\&.install +.fi +.if n \{\ +.RE +.\} +.sp +The install script does not need to be specified in the source array\&. A template install file is available in \fI/usr/share/pacman\fR as \fIproto\&.install\fR for reference with all of the available functions defined\&. +.SH "USING VCS SOURCES" +.sp +Building a developmental version of a package using sources from a version control system (VCS) is enabled by specifying the source in the form: +.sp +.if n \{\ +.RS 4 +.\} +.nf +source=(\*(Aqdirectory::url#fragment?query\*(Aq) +.fi +.if n \{\ +.RE +.\} +.sp +Currently makepkg supports the Bazaar, Git, Subversion, Fossil and Mercurial version control systems\&. For other version control systems, manual cloning of upstream repositories must be done in the prepare() function\&. +.sp +The source URL is divided into four components: +.PP +\fBdirectory\fR +.RS 4 +(optional) Specifies an alternate directory name for makepkg to download the VCS source into\&. +.RE +.PP +\fBurl\fR +.RS 4 +The URL to the VCS repository\&. This must include the VCS in the URL protocol for makepkg to recognize this as a VCS source\&. If the protocol does not include the VCS name, it can be added by prefixing the URL with +vcs+\&. For example, using a Git repository over HTTPS would have a source URL in the form: +git+https://\&.\&.\&.\&. +.RE +.PP +\fBfragment\fR +.RS 4 +(optional) Allows specifying a revision number or branch for makepkg to checkout from the VCS\&. A fragment has the form +type=value, for example to checkout a given revision the source line would be +source=(url#revision=123)\&. The available types depends on the VCS being used: +.PP +\fBbzr\fR +.RS 4 +revision (see +\*(Aqbzr help revisionspec\*(Aq +for details) +.RE +.PP +\fBfossil\fR +.RS 4 +branch, commit, tag +.RE +.PP +\fBgit\fR +.RS 4 +branch, commit, tag +.RE +.PP +\fBhg\fR +.RS 4 +branch, revision, tag +.RE +.PP +\fBsvn\fR +.RS 4 +revision +.RE +.RE +.PP +\fBquery\fR +.RS 4 +(optional) Allows specifying whether a VCS checkout should be checked for PGP\-signed revisions\&. The source line should have the format +source=(url#fragment?signed) +or +source=(url?signed#fragment)\&. Currently only supported by Git\&. +.RE +.SH "EXAMPLE" +.sp +The following is an example PKGBUILD for the \fIpatch\fR package\&. For more examples, look through the build files of your distribution\(cqs packages\&. For those using Arch Linux, consult the Arch Build System (ABS) tree\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# Maintainer: Joe User <joe\&.user@example\&.com> + +pkgname=patch +pkgver=2\&.7\&.1 +pkgrel=1 +pkgdesc="A utility to apply patch files to original sources" +arch=(\*(Aqi686\*(Aq \*(Aqx86_64\*(Aq) +url="https://www\&.gnu\&.org/software/patch/patch\&.html" +license=(\*(AqGPL\*(Aq) +groups=(\*(Aqbase\-devel\*(Aq) +depends=(\*(Aqglibc\*(Aq) +makedepends=(\*(Aqed\*(Aq) +optdepends=(\*(Aqed: for "patch \-e" functionality\*(Aq) +source=("ftp://ftp\&.gnu\&.org/gnu/$pkgname/$pkgname\-$pkgver\&.tar\&.xz"{,\&.sig}) +md5sums=(\*(Aqe9ae5393426d3ad783a300a338c09b72\*(Aq + \*(AqSKIP\*(Aq) + +build() { + cd "$srcdir/$pkgname\-$pkgver" + \&./configure \-\-prefix=/usr + make +} + +package() { + cd "$srcdir/$pkgname\-$pkgver" + make DESTDIR="$pkgdir/" install +} +.fi +.if n \{\ +.RE +.\} +.SH "SEE ALSO" +.sp +\fBmakepkg\fR(8), \fBpacman\fR(8), \fBmakepkg.conf\fR(5) +.sp +See the pacman website at https://archlinux\&.org/pacman/ for current information on pacman and its related tools\&. +.SH "BUGS" +.sp +Bugs? You must be kidding; there are no bugs in this software\&. But if we happen to be wrong, submit a bug report with as much detail as possible at the Arch Linux Bug Tracker in the Pacman section\&. +.SH "AUTHORS" +.sp +Current maintainers: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Allan McRae <allan@archlinux\&.org> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Andrew Gregory <andrew\&.gregory\&.8@gmail\&.com> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Eli Schwartz <eschwartz@archlinux\&.org> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Morgan Adamiec <morganamilo@archlinux\&.org> +.RE +.sp +Past major contributors: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Judd Vinet <jvinet@zeroflux\&.org> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Aurelien Foret <aurelien@archlinux\&.org> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Aaron Griffin <aaron@archlinux\&.org> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Dan McGee <dan@archlinux\&.org> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Xavier Chantry <shiningxc@gmail\&.com> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Nagy Gabor <ngaba@bibl\&.u\-szeged\&.hu> +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Dave Reisner <dreisner@archlinux\&.org> +.RE +.sp +For additional contributors, use git shortlog \-s on the pacman\&.git repository\&. |