Merge pull request #1187 from aurutils/build-partial-results
[aurutils.git] / man1 / aur-sync.1
blob9144d9a5e71f7d5a823eb178d68035951d53d5c6
1 .TH AUR-SYNC 1 2022-03-03 AURUTILS
2 .SH NAME
3 aur\-sync \- download and build AUR packages automatically
5 .SH SYNOPSIS
6 .SY "aur sync"
7 .OP \-cfknorSu
8 .IR pkgname ...
9 .YS
11 .SH DESCRIPTION
12 .B aur\-sync
13 downloads and builds AUR packages automatically to a local
14 repository. It can be seen as a high level composition of
15 .B aurutils
16 programs.
17 .B aur\-sync
18 performs the following tasks:
19 .IP \(bu 4
20 Resolve AUR dependencies with
21 .BR aur-depends (1)
22 .IP \(bu 4
23 Retrieve build files with
24 .BR aur-fetch (1)
25 .IP \(bu 4
26 Present build files before their execution with
27 .BR aur\-view (1)
28 .IP \(bu 4
29 Build the packages with
30 .BR aur-build (1)
31 .PP
32 Package names serve as arguments.
33 .PP
34 .B Note:
35 .B aur\-sync
36 does not expose all available functionality from
37 .B aurutils
38 programs. It serves as an example how these programs can interoperate
39 for a fully automated AUR workflow.
41 .SH OPTIONS
42 .TP
43 .B \-\-continue
44 Do not download package files.
46 .TP
47 .BI \-\-ignore= PACKAGE
48 Ignore a package upgrade. Multiple packages can be specified by
49 separating them with a comma, or by repeating the \fB\-\-ignore\fR option.
50 .PP
51 If PACKAGE is listed on the
52 .BR aur\-sync
53 command line, this option has no effect.
55 .TP
56 .BI \-\-ignore\-file= FILE
57 Ignore package upgrades listed in
58 .IR FILE .
59 Defaults to
60 .BR $XDG_CONFIG_HOME/aurutils/sync/ignore .
61 Targets are placed on single lines and interpreted as
62 .IR <repository>/<package> .
63 For example:
64 .RS
65 .PP
66 .EX
67 custom/package-foo
68 custom/package-bar
69 custom-testing/package-baz
70 .EE
71 .PP
72 If the
73 .I <repository>
74 prefix is not specified, targets apply to all local repositories.
75 Comments can be specified after a number sign.
76 .PP
77 If <package> is listed on the
78 .BR aur\-sync
79 command line, this option has no effect.
80 .RE
82 .TP
83 .BI \-k " NUM" "\fR,\fP \-\-keep\-going=" NUM
84 Keep going until
85 .I NUM
86 packages fail to build
87 .RB ( "ninja -k" ).
89 .I NUM
90 is set to
91 .BR 0 ,
92 continue indefinitely. On failure, a summary is printed of failed and
93 succeeded builds. Requires
94 .B AUR_SYNC_USE_NINJA
95 (see
96 .BR ENVIRONMENT ).
98 .TP
99 .BR \-\-noview ", " \-\-no\-view
100 Do not present build files for inspection.
103 .BR \-u ", " \-\-upgrades
104 Update all obsolete AUR packages in a local repository.
106 .SS Dependency options
107 Build dependencies are resolved with
108 .BR aur\-depends (1).
111 .BR \-\-optdepends
112 Take
113 .B optdepends
114 into account when resolving dependencies.
115 .RB ( "aur\-depends \-\-optdepends" )
118 .BR \-\-nocheck ", " \-\-no\-check
119 Do not handle
120 .BR checkdepends .
121 .RB ( "aur\-build \-\-no\-check" ", " "aur\-depends \-\-no\-checkdepends" )
124 .BR \-\-nograph ", " \-\-no\-graph
125 Do not verify the AUR dependency graph with
126 .BR aur\-graph (1).
129 .BR \-\-nover ", " \-\-no\-ver
130 Disable version checking for packages.
133 .BR \-\-nover\-argv ", " \-\-no\-ver\-argv
134 Disable version checking for packages specified on the command line or
135 upgrade candidates from
136 .BR \-\-upgrades .
137 Version checks for package dependencies remain enabled.
140 .BR \-\-noprovides ", " \-\-no\-provides
141 Do not take virtual dependencies
142 .RB ( provides )
143 in pacman
144 .I sync
145 repositories into account to resolve package dependencies.  Packages
146 specified on the command-line or available as an upgrade
147 .RB ( "aur\-sync \-u" ),
148 are taken as targets regardless of this setting.
151 .BI \-\-provides\-from= DIR1,...
152 Only take specified (comma-separated)
153 .BR pacman (8)
154 repositories into account when checking virtual dependencies. If the
155 same package is provided in multiple repositories, ordering is ignored
156 (for example,
157 .I \-\-provides\-from=a,b
158 is equivalent to
159 .IR \-\-provides\-from=b,a )
160 and dependencies are installed according to the order defined in
161 .BR pacman.conf (5).
162 Packages specified on the command-line or available as an upgrade
163 .RB ( "aur\-sync \-u" ),
164 are taken as targets regardless of this setting.
166 .SS Database options
167 Values for the following options are automatically selected, if a
168 single local repository is defined in
169 .BR pacman.conf (5).
171 .BR aur\-repo (1)
172 for details.
175 .BI \-d " NAME" "\fR,\fP \-\-database=" NAME
176 Use the
177 .I NAME
178 repository. If this option is not specified,
179 .B aur\-sync
180 defaults to the first
181 .I file://\fR
182 repository in
183 .BR pacman.conf (5),
184 or aborts if multiple are available.
187 .BI \-\-root= DIR
188 The location of the repository root. Defaults to the
189 .I Server
190 value of the configured repository.
192 .SS Fetch options
193 If new AUR commits are available,
194 .B aur\-sync
195 discards local (non-commited) changes and merges the new commits with
196 .BR "git\-merge \-\-ff\-only"
197 by default.
198 .RB ( "aur\-fetch \-\-discard" )
200 If a repository has the
201 .B aurutils.rebase
202 .BR git\-config (1)
203 set to
204 .IR true ,
205 discards local changes unconditionally and runs
206 .BR git\-rebase
207 in this specific repository.
208 .RB ( "aur\-fetch \-\-auto" )
210 The default behavior can be modified with the options below.
213 .B \-\-ff
214 Merge new AUR commits with
215 .BR "git\-merge \-\-ff"
216 for all repositories.
217 .RB ( "aur\-fetch \-\-ff" )
220 .B \-\-rebase
221 Merge new AUR commits with
222 .BR "git\-rebase"
223 for all repositories.
226 .B \-\-reset
227 Discard local changes and commits with
228 .BR "git\-reset"
229 for all repositories.
230 .RB ( "aur\-fetch \-\-reset" )
232 .SS Build options
233 The default build command is
234 .BR "aur-build \-\-syncdeps" .
235 Specifying
236 .BR aur\-build (1)
237 options such as
238 .B \-\-chroot
240 .B \-\-force
242 .B aur\-sync
243 will append these options to the build command. This section only lists
244 common options. See
245 .BR aur\-build (1)
246 for more information.
249 .BR \-c ", " \-\-chroot
250 Build packages in a systemd\-nspawn container.
251 .RB ( "aur build \-c" )
254 .BR \-f ", " \-\-force
255 Continue the build process if a package with the same name exists.
256 .RB ( "aur build \-f" )
258 .TP 
259 .BR \-n ", " \-\-noconfirm ", " \-\-no\-confirm
260 Do not wait for user input when installing or removing build dependencies.
261 .RB ( "aur build \-n" )
264 .BR \-o ", " \-\-nobuild ", " \-\-no\-build
265 Print target packages and their paths instead of building them.
268 .BR \-K ", " \-\-autokeyretrieve ", " \-\-auto\-key\-retrieve
269 Automatically import PGP keys to
270 .BR AUR_SYNC_GNUPGHOME ,
271 based on the
272 .B validpgpkeys
273 array in
274 .B .SRCINFO
275 files.
278 .BR \-C ", " \-\-clean
279 Clean up leftover work files and directoreis after a successful build.
280 .RB ( "aur build \-C" )
283 .BR \-\-cleanbuild
284 Remove the source directory before building the package.
285 .RB ( "aur build \-\-cleanbuild" )
288 .BR \-\-pkgver
290 .B "makepkg \-od \-\-noprepare"
291 before the build process.
292 .RB ( "aur\-build \-\-pkgver" )
295 .BR \-r ", " \-\-rmdeps ", " \-\-rm\-deps
296 Remove dependencies installed by makepkg.
297 .RB ( "aur build \-r" )
300 .BR \-S ", " \-\-sign ", " \-\-gpg-sign
301 Sign built packages with
302 .BR gpg (1).
303 .RB ( "aur build \-S" )
306 .B \-\-makepkg\-conf
308 .BR makepkg.conf (5)
309 file for chroot and
310 .BR makepkg (8)
311 operations.
312 .RB ( "aur\-build \-\-makepkg\-conf" )
315 .B \-\-pacman\-conf
317 .BR pacman.conf (5)
318 file for chroot and local repository operations.
319 .RB ( "aur\-build \-\-pacman\-conf" ", " "aur-repo \-\-config" )
321 .SS View options
323 .BI \-\-format= TYPE
325 .I TYPE
327 .B diff
329 .BR log ,
330 generate diffs with
331 .BR git\-diff (1)
333 .BR git\-log (1),
334 respectively.
335 .RB ( "aur\-view \-\-format" )
338 .BI \-\-exclude= FILE
339 Do not include
340 .I FILE
341 in the diff output. Can be specified multiple times.
342 .RB ( "aur\-view \-\-exclude" )
345 .BI \-\-prefix
346 Prepend package names in the diff output instead of
347 .I a/
349 .IR b/ .
350 .RB ( "aur\-view \-\-prefix" )
352 .SH ENVIRONMENT
353 Environment variables for other
354 .B aur
355 programs are also supported in
356 .BR aur\-sync .
357 The below are specific to
358 .BR aur\-sync .
360 .B AURDEST
361 Determines where build files will be cloned. This must be an absolute path.
362 Defaults to
363 .IR $XDG_CACHE_HOME/aurutils/sync .
364 When persisting local modifications
365 with
366 .B \-\-rebase
368 .BR \-\-ff ,
369 it is advised to set a persistent path such as
370 .IR /home/aurpkgs .
373 .B AUR_SYNC_GNUPGHOME
374 The path where
375 .B validpgpkeys
376 are imported. Defaults to
377 .IR XDG_DATA_HOME/aurutils/sync/gnupg .
380 .B AUR_SYNC_USE_NINJA
381 When set to a positive value, run
382 .B aur\-build
383 command-lines with
384 .BR ninja .
385 If a package fails to build, this allows
386 .B aur\-sync \-\-keep\-going
387 to continue with remaining, independent packages.
391 .IR $AURDEST/ninja-$USER-$$
392 directory contains the
393 .B build.ninja
394 file and timestamps
395 .IB \fR( \fIpkgbase \fR. stamp \fR)
396 for each job. It is removed on successful completion of
397 .BR ninja ,
398 or if
399 .B \-\-no\-build
400 is specified.
403 .SH NOTES
404 .SS Standard input
405 Targets may be taken from stdin using
406 .BR xargs (1).
407 For example, to sync all installed packages in a local repository named
408 .IR custom :
411     $ paclist custom | awk \(aq{print $1}\(aq | xargs \-r aur sync \-\-noconfirm
414 Note that command output interferes with input from the tty. The
415 .B \-\-noconfirm
416 option is used to disable interaction with
417 .B pacman
418 when installing dependencies. Alternatively, command or process substitution
419 can be used:
422     $ xargs \-a <(paclist custom | awk \(aq{print $1}\(aq) aur sync
423     $ aur sync $(paclist custom | awk \(aq{print $1}\(aq)
426 .SS File retrieval
427 When version checks are enabled (i.e. \fB\-\-no\-ver\fR is not specified),
428 build files are only retrieved if the remote (RPC) version is newer
429 than the version in a pacman database. Checks assume there are no
430 mismatches between
431 .B .SRCINFO
433 .B PKGBUILD
434 files.
436 .SS lib32
437 Architecture-specific depends (as introduced with pacman 4.2) are
438 merged with regular depends in RPC queries.
439 .B aur\-sync
440 works around this by stripping the
441 .I lib32\-
442 prefix from packages and removing
443 .I gcc\-multilib
444 if the i686 architecture is detected.
446 .SH SEE ALSO
447 .ad l
449 .BR aur (1),
450 .BR aur\-build (1),
451 .BR aur\-depends (1),
452 .BR aur\-fetch (1),
453 .BR aur\-graph (1),
454 .BR aur\-repo (1),
455 .BR aur\-repo\-filter (1),
456 .BR aur\-vercmp (1),
457 .BR aur\-view (1)
459 .SH AUTHORS
460 .MT https://github.com/AladW
461 Alad Wenter
464 .\" vim: set textwidth=72: