1MAKEPKG(8)                       Pacman Manual                      MAKEPKG(8)
2
3
4

NAME

6       makepkg - package build utility
7

SYNOPSIS

9       makepkg [options] [ENVVAR=value] [ENVVAR+=value] ...
10

DESCRIPTION

12       makepkg is a script to automate the building of packages. The
13       requirements for using the script are a build-capable *nix platform and
14       a custom build script for each package you wish to build (known as a
15       PKGBUILD). See PKGBUILD(5) for details on creating your own build
16       scripts.
17
18       The advantage to a script-based build is that the work is only done
19       once. Once you have the build script for a package, makepkg will do the
20       rest: download and validate source files, check dependencies, configure
21       the build-time settings, build the package, install the package into a
22       temporary root, make customizations, generate meta-info, and package
23       the whole thing up for pacman to use.
24
25           Note
26           makepkg uses your current locale by default and does not unset it
27           when building packages. If you wish to share your build output with
28           others when seeking help or for other purposes, you may wish to run
29           "LC_ALL=C makepkg" so your logs and output are not localized.
30

OPTIONS

32       -A, --ignorearch
33           Ignore a missing or incomplete arch field in the build script. This
34           is for rebuilding packages from source when the PKGBUILD may be
35           slightly outdated and not updated with an arch=('yourarch') field.
36
37       -c, --clean
38           Clean up leftover work files and directories after a successful
39           build.
40
41       --config <file>
42           Use an alternate configuration file instead of the
43           /etc/makepkg.conf default.
44
45       -d, --nodeps
46           Do not perform any dependency checks. This will let you override
47           and ignore any dependencies required. There is a good chance this
48           option will break the build process if all of the dependencies are
49           not installed.
50
51       -e, --noextract
52           Do not extract source files or run the prepare() function (if
53           present); use whatever source already exists in the $srcdir/
54           directory. This is handy if you want to go into $srcdir/ and
55           manually patch or tweak code, then make a package out of the
56           result. Keep in mind that creating a patch may be a better solution
57           to allow others to use your PKGBUILD.
58
59       --verifysource
60           For each source file in the source array of PKGBUILD, download the
61           file if required and perform the integrity checks. No extraction or
62           build is performed. Dependencies specified in the PKGBUILD will not
63           be handled unless --syncdeps is used. Useful for performing
64           subsequent offline builds.
65
66       -f, --force
67           makepkg will not build a package if a built package already exists
68           in the PKGDEST (set in makepkg.conf(5)) directory, which may
69           default to the current directory. This allows the built package to
70           be overwritten.
71
72       -g, --geninteg
73           For each source file in the source array of PKGBUILD, download the
74           file if required and generate integrity checks. The integrity
75           checks generated are determined by the checks present in the
76           PKGBUILD, falling back to the value of the INTEGRITY_CHECK array in
77           makepkg.conf(5) if these are absent This output can be redirected
78           into your PKGBUILD for source validation using "makepkg -g >>
79           PKGBUILD".
80
81       --skipinteg
82           Do not perform any integrity checks (checksum and PGP) on source
83           files.
84
85       --skipchecksums
86           Do not verify checksums of source files.
87
88       --skippgpcheck
89           Do not verify PGP signatures of source files.
90
91       -h, --help
92           Output syntax and command line options.
93
94       --holdver
95           When using VCS sources (PKGBUILD(5)) any currently checked out
96           source will not be updated to the latest revision.
97
98       -i, --install
99           Install or upgrade the package after a successful build using
100           pacman(8).
101
102       -L, --log
103           Enable logging. This will use the tee program to send the output of
104           each of the PKGBUILD functions to both the console and to a text
105           file in the build directory named
106           pkgbase-pkgver-pkgrel-arch-<function>.log. As mentioned above, the
107           logs will be localized so you may want to set your locale
108           accordingly if sharing the log output with others.
109
110       -m, --nocolor
111           Disable color in output messages.
112
113       -o, --nobuild
114           Download and extract files, run the prepare() function, but do not
115           build them. Useful with the --noextract option if you wish to tweak
116           the files in $srcdir/ before building.
117
118       -p <buildscript>
119           Read the package script buildscript instead of the PKGBUILD
120           default; see PKGBUILD(5). The buildscript must be located in the
121           directory makepkg is called from.
122
123       -r, --rmdeps
124           Upon successful build, remove any dependencies installed by makepkg
125           during dependency auto-resolution and installation when using -s.
126
127       -R, --repackage
128           Repackage contents of the package without rebuilding the package.
129           This is useful if you forgot, for example, a dependency or install
130           file in your PKGBUILD and the build itself will not change.
131
132       -s, --syncdeps
133           Install missing dependencies using pacman. When build-time or
134           run-time dependencies are not found, pacman will try to resolve
135           them. If successful, the missing packages will be downloaded and
136           installed.
137
138       -S, --source
139           Do not actually build the package, but build a source-only tarball
140           that does not include sources that can be fetched via a download
141           URL. This is useful for passing a single tarball to another program
142           such as a chroot, remote builder, or a tarball upload. Because
143           integrity checks are verified, all source files of the package need
144           to be present or downloadable.
145
146       -V, --version
147           Display version information.
148
149       -C, --cleanbuild
150           Remove the $srcdir before building the package.
151
152       --allsource
153           Do not actually build the package, but build a source-only tarball
154           that includes all sources, including those that are normally
155           downloaded via makepkg. This is useful for passing a single tarball
156           to another program such as a chroot or remote builder. It will also
157           satisfy requirements of the GPL when distributing binary packages.
158
159       --check
160           Run the check() function in the PKGBUILD, overriding the setting in
161           makepkg.conf(5).
162
163       --noarchive
164           Do not create the archive at the end of the build process. This can
165           be useful to test the package() function or if your target
166           distribution does not use pacman.
167
168       --nocheck
169           Do not run the check() function in the PKGBUILD or handle the
170           checkdepends.
171
172       --noprepare
173           Do not run the prepare() function in the PKGBUILD.
174
175       --sign
176           Sign the resulting package with gpg, overriding the setting in
177           makepkg.conf(5).
178
179       --nosign
180           Do not create a signature for the built package.
181
182       --key <key>
183           Specify a key to use when signing packages, overriding the GPGKEY
184           setting in makepkg.conf(5). If not specified in either location,
185           the default key from the keyring will be used.
186
187       --noconfirm
188           (Passed to pacman) Prevent pacman from waiting for user input
189           before proceeding with operations.
190
191       --needed
192           (Passed to pacman) Tell pacman not to reinstall a target if it is
193           already up-to-date. (used with -i / --install).
194
195       --asdeps
196           (Passed to pacman) Install packages as non-explicitly installed
197           (used with -i / --install).
198
199       --noprogressbar
200           (Passed to pacman) Prevent pacman from displaying a progress bar;
201           useful if you are redirecting makepkg output to file.
202
203       --packagelist
204           List the package filenames that would be produced without building.
205           Listed package filenames include PKGDEST and PKGEXT.
206
207       --printsrcinfo
208           Generate and print the SRCINFO file to stdout.
209

ADDITIONAL FEATURES

211       makepkg supports building development versions of packages without
212       having to manually update the pkgver in the PKGBUILD. This was formerly
213       done using the separate utility versionpkg. See PKGBUILD(5) for details
214       on how to set up a development PKGBUILD.
215

REPRODUCIBILITY

217       makepkg is designed to be compatible with Reproducible Builds. If the
218       SOURCE_DATE_EPOCH environment variable is set, it will be exported to
219       subprocesses, and source and package file modification times and
220       package metadata will be unified based on the timestamp specified.
221
222       If the SOURCE_DATE_EPOCH environment variable is not set, makepkg will
223       use its own start date for internal use, but will not unify source file
224       timestamps before building.
225

ENVIRONMENT VARIABLES

227       PACMAN
228           The command that will be used to check for missing dependencies and
229           to install and remove packages. Pacman’s -Qq, -Rns, -S, -T, and -U
230           operations must be supported by this command. If the variable is
231           not set or empty, makepkg will fall back to ‘pacman’.
232
233       MAKEPKG_CONF="/path/to/file"
234           Use an alternate config file instead of the /etc/makepkg.conf
235           default.
236
237       PKGDEST="/path/to/directory"
238           Directory where the resulting packages will be stored. Overrides
239           the corresponding value defined in makepkg.conf(5).
240
241       SRCDEST="/path/to/directory"
242           Directory where the downloaded sources will be stored. Overrides
243           the corresponding value defined in makepkg.conf(5).
244
245       SRCPKGDEST="/path/to/directory"
246           Directory where source package files will be stored. Overrides the
247           corresponding value defined in makepkg.conf(5).
248
249       LOGDEST="/path/to/directory"
250           Directory where generated log files will be stored. Overrides the
251           corresponding value defined in makepkg.conf(5).
252
253       PACKAGER="John Doe <john@doe.com>"
254           String to identify the creator of the resulting package. Overrides
255           the corresponding value defined in makepkg.conf(5).
256
257       BUILDDIR="/path/to/directory"
258           Directory where the package will be built. Overrides the
259           corresponding value defined in makepkg.conf(5).
260
261       CARCH="(i686|x86_64)"
262           Force build for a specific architecture. Useful for
263           cross-compiling. Overrides the corresponding value defined in
264           makepkg.conf(5).
265
266       PKGEXT=".pkg.tar.gz", SRCEXT=".src.tar.gz"
267           Sets the compression used when making compiled or source packages.
268           Overrides the corresponding value defined in makepkg.conf(5).
269
270       GNUPGHOME="/path/to/directory"
271           Directory where the gpg keyring for signing the built package is
272           stored.
273
274       GPGKEY="keyid"
275           Specify a key to use when signing packages, overriding the GPGKEY
276           setting in makepkg.conf(5)
277
278       SOURCE_DATE_EPOCH="<date>"
279           Used for Reproducible Builds.
280

CONFIGURATION

282       See makepkg.conf(5) for more details on configuring makepkg using the
283       makepkg.conf file.
284

ERRORS

286       On exit, makepkg will return one of the following error codes.
287
288       0
289           Normal exit condition.
290
291       1
292           Unknown cause of failure.
293
294       2
295           Error in configuration file.
296
297       3
298           User specified an invalid option
299
300       4
301           Error in user-supplied function in PKGBUILD.
302
303       5
304           Failed to create a viable package.
305
306       6
307           A source or auxiliary file specified in the PKGBUILD is missing.
308
309       7
310           The PKGDIR is missing.
311
312       8
313           Failed to install dependencies.
314
315       9
316           Failed to remove dependencies.
317
318       10
319           User attempted to run makepkg as root.
320
321       11
322           User lacks permissions to build or install to a given location.
323
324       12
325           Error parsing PKGBUILD.
326
327       13
328           A package has already been built.
329
330       14
331           The package failed to install.
332
333       15
334           Programs necessary to run makepkg are missing.
335
336       16
337           Specified GPG key does not exist or failed to sign package.
338

SEE ALSO

340       makepkg.conf(5), PKGBUILD(5), pacman(8)
341
342       See the pacman website at https://www.archlinux.org/pacman/ for current
343       information on pacman and its related tools.
344

BUGS

346       Bugs? You must be kidding; there are no bugs in this software. But if
347       we happen to be wrong, submit a bug report with as much detail as
348       possible at the Arch Linux Bug Tracker in the Pacman section.
349

AUTHORS

351       Current maintainers:
352
353       •   Allan McRae <allan@archlinux.org>
354
355       •   Andrew Gregory <andrew.gregory.8@gmail.com>
356
357       •   Dan McGee <dan@archlinux.org>
358
359       •   Dave Reisner <dreisner@archlinux.org>
360
361       Past major contributors:
362
363       •   Judd Vinet <jvinet@zeroflux.org>
364
365       •   Aurelien Foret <aurelien@archlinux.org>
366
367       •   Aaron Griffin <aaron@archlinux.org>
368
369       •   Xavier Chantry <shiningxc@gmail.com>
370
371       •   Nagy Gabor <ngaba@bibl.u-szeged.hu>
372
373       For additional contributors, use git shortlog -s on the pacman.git
374       repository.
375
376
377
378Pacman 5.2.1                      2021-01-27                        MAKEPKG(8)
Impressum