Merge pull request #963 from AladW/view-options
[aurutils.git] / man1 / aur-sync.1
blob83a02fbbc3fb4fde941c770849be8f14bbc61337
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.
51 .TP
52 .BI \-\-ignore\-file= FILE
53 Ignore package upgrades listed in
54 .IR FILE .
55 Each package name should be specified on a separate line. If a section
56 (enclosed in square brackets) is specified, package names only apply to the
57 local repository matching this section. Comments can be specified after
58 a number sign. For example:
59 .RS
60 .PP
61 .EX
62 [custom]
63 package-foo
64 package-bar
66 [custom-testing]
67 package-baz
68 .EE
69 .PP
70 Defaults to
71 .BR $XDG_CONFIG_HOME/aurutils/sync/ignore .
72 .RE
74 .TP
75 .BI \-k " NUM" "\fR,\fP \-\-keep\-going=" NUM
76 Keep going until
77 .I NUM
78 packages fail to build
79 .RB ( "ninja -k" ).
81 .I NUM
82 is set to
83 .BR 0 ,
84 continue indefinitely. On failure, a summary is printed of failed and
85 succeeded builds. Requires
86 .B AUR_SYNC_USE_NINJA
87 (see
88 .BR ENVIRONMENT ).
90 .TP
91 .BR \-\-noview ", " \-\-no\-view
92 Do not present build files for inspection.
94 .TP
95 .BR \-u ", " \-\-upgrades
96 Update all obsolete AUR packages in a local repository.
98 .SS Dependency options
99 Build dependencies are resolved with
100 .BR aur\-depends (1).
103 .BR \-\-optdepends
104 Take
105 .B optdepends
106 into account when resolving dependencies.
107 .RB ( "aur\-depends \-\-optdepends" )
110 .BR \-\-nocheck ", " \-\-no\-check
111 Do not handle
112 .BR checkdepends .
113 .RB ( "aur\-build \-\-no\-check" ", " "aur\-depends \-\-no\-checkdepends" )
116 .BR \-\-nograph ", " \-\-no\-graph
117 Do not verify the AUR dependency graph with
118 .BR aur\-graph (1).
121 .BR \-\-nover ", " \-\-no\-ver
122 Disable version checking for packages.
125 .BR \-\-nover\-argv ", " \-\-no\-ver\-argv
126 Disable version checking for packages specified on the command line or
127 upgrade candidates from
128 .BR \-\-upgrades .
129 Version checks for package dependencies remain enabled.
132 .BR \-\-noprovides ", " \-\-no\-provides
133 Do not take virtual dependencies
134 .RB ( provides )
135 in pacman
136 .I sync
137 repositories into account to resolve package dependencies.  Packages
138 specified on the command-line or available as an upgrade
139 .RB ( "aur\-sync \-u" ),
140 are taken as targets regardless of this setting.
143 .BI \-\-provides\-from= DIR1,...
144 Only take specified (comma-separated)
145 .BR pacman (8)
146 repositories into account when checking virtual dependencies. If the
147 same package is provided in multiple repositories, ordering is ignored
148 (for example,
149 .I \-\-provides\-from=a,b
150 is equivalent to
151 .IR \-\-provides\-from=b,a )
152 and dependencies are installed according to the order defined in
153 .BR pacman.conf (5).
154 Packages specified on the command-line or available as an upgrade
155 .B ( "aur\-sync \-u" ),
156 are taken as targets regardless of this setting.
158 .SS Database options
159 Values for the following options are automatically selected, if a
160 single local repository is defined in
161 .BR pacman.conf (5).
163 .BR aur\-repo (1)
164 for details.
167 .BI \-d " NAME" "\fR,\fP \-\-database=" NAME
168 Use the
169 .I NAME
170 repository. If this option is not specified,
171 .B aur\-sync
172 defaults to the first
173 .I file://\fR
174 repository in
175 .BR pacman.conf (5),
176 or aborts if multiple are available.
179 .BI \-\-root= DIR
180 The location of the repository root. Defaults to the
181 .I Server
182 value of the configured repository.
184 .SS Build options
185 The default build command is
186 .BR "aur-build \-\-clean \-\-syncdeps" .
187 Specifying
188 .BR aur\-build (1)
189 options such as
190 .B \-\-chroot
192 .B \-\-force
194 .B aur\-sync
195 will append these options to the build command. See
196 .BR aur\-build (1)
197 for more information.
200 .BR \-c ", " \-\-chroot
201 Build packages in a systemd\-nspawn container.
202 .RB ( "aur build \-c" )
205 .BR \-f ", " \-\-force
206 Continue the build process if a package with the same name exists.
207 .RB ( "aur build \-f" )
209 .TP 
210 .BR \-n ", " \-\-noconfirm ", " \-\-no\-confirm
211 Do not wait for user input when installing or removing build dependencies.
212 .BR ( "aur build \-n" )
215 .BR \-o ", " \-\-nobuild ", " \-\-no\-build
216 Print target packages and their paths instead of building them.
219 .BR \-\-pkgver
221 .B "makepkg \-od \-\-noprepare"
222 before the build process.
223 .RB ( "aur\-build \-\-pkgver" )
226 .BR \-r ", " \-\-rmdeps
227 Remove dependencies installed by makepkg.
228 .RB ( "aur build \-r" )
231 .BR \-S ", " \-\-sign ", " \-\-gpg-sign
232 Sign built packages with
233 .BR gpg (1).
234 .RB ( "aur build \-S" )
237 .B \-\-makepkg\-conf
239 .BR makepkg.conf (5)
240 file for chroot and
241 .BR makepkg (8)
242 operations.
243 .RB ( "aur\-build \-\-makepkg\-conf" )
246 .B \-\-pacman\-conf
248 .BR pacman.conf (5)
249 file for chroot and local repository operations.
250 .RB ( "aur\-build \-\-pacman\-conf" ", " "aur-repo \-\-config" )
252 .SS Aliases
254 .BR \-\-rebuild
255 Alias for
256 .BR "\-f \-\-nover\-argv" .
259 .BR \-\-rebuildtree ", " \-\-rebuild\-tree
260 Alias for
261 .BR "\-f \-\-nover" .
264 .BR \-\-rebuildall ", " \-\-rebuild\-all
266 .BR \-\-rebuild\-tree ,
267 but append all packages in the repository (see
268 .BR \-d )
269 as targets. May be used together with
270 .B \-o
271 to repopulate source directories in
272 .BR $AURDEST .
274 .SH ENVIRONMENT
275 Environment variables for other
276 .B aur
277 programs are also supported in
278 .BR aur\-sync .
279 The below are specific to
280 .BR aur\-sync .
282 .B AURDEST
283 Determines where build files will be cloned. This must be an absolute path.
284 Defaults to
285 .IR $XDG_CACHE_HOME/aurutils/sync .
288 .B AUR_SYNC_USE_NINJA
289 When set to a positive value, run
290 .B aur\-build
291 command-lines with
292 .BR ninja .
293 If a package fails to build, this allows
294 .B aur\-sync \-\-keep\-going
295 to continue with remaining, independent packages.
299 .IR $AURDEST/ninja-$USER-$$
300 directory contains the
301 .B build.ninja
302 file and timestamps
303 .IB \fR( \fIpkgbase \fR. stamp \fR)
304 for each job. It is removed on successful completion of
305 .BR ninja ,
306 or if
307 .B \-\-no\-build
308 is specified.
311 .SH NOTES
312 .SS Standard input
313 Targets may be taken from stdin using
314 .BR xargs (1).
315 For example, to sync all installed packages in a local repository named
316 .IR custom :
319     $ paclist custom | awk \(aq{print $1}\(aq | xargs \-r aur sync \-\-noconfirm
322 Note that command output interferes with input from the tty. The
323 .B \-\-noconfirm
324 option is used to disable interaction with
325 .B pacman
326 when installing dependencies. Alternatively, command or process substitution
327 can be used:
330     $ xargs \-a <(paclist custom | awk \(aq{print $1}\(aq) aur sync
331     $ aur sync $(paclist custom | awk \(aq{print $1}\(aq)
334 .SS File retrieval
335 When version checks are enabled (i.e. \fB\-\-no\-ver\fR is not specified),
336 build files are only retrieved if the remote (RPC) version is newer
337 than the version in a pacman database. Checks assume there are no
338 mismatches between
339 .B .SRCINFO
341 .B PKGBUILD
342 files.
344 .SS lib32
345 Architecture-specific depends (as introduced with pacman 4.2) are
346 merged with regular depends in RPC queries.
347 .B aur\-sync
348 works around this by stripping the
349 .I lib32\-
350 prefix from packages and removing
351 .I gcc\-multilib
352 if the i686 architecture is detected.
354 .SH SEE ALSO
355 .ad l
357 .BR aur (1),
358 .BR aur\-build (1),
359 .BR aur\-depends (1),
360 .BR aur\-fetch (1),
361 .BR aur\-graph (1),
362 .BR aur\-repo (1),
363 .BR aur\-repo\-filter (1),
364 .BR aur\-vercmp (1),
365 .BR aur\-view (1)
367 .SH AUTHORS
368 .MT https://github.com/AladW
369 Alad Wenter
372 .\" vim: set textwidth=72: