Merge pull request #1009 from AladW/ignore-pkgspec
[aurutils.git] / man1 / aur-sync.1
blobecf790f88dcf7b79171bdb71248c927d3a6148e2
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. This section only lists
196 common options. See
197 .BR aur\-build (1)
198 for more information.
201 .BR \-c ", " \-\-chroot
202 Build packages in a systemd\-nspawn container.
203 .RB ( "aur build \-c" )
206 .BR \-f ", " \-\-force
207 Continue the build process if a package with the same name exists.
208 .RB ( "aur build \-f" )
210 .TP 
211 .BR \-n ", " \-\-noconfirm ", " \-\-no\-confirm
212 Do not wait for user input when installing or removing build dependencies.
213 .BR ( "aur build \-n" )
216 .BR \-o ", " \-\-nobuild ", " \-\-no\-build
217 Print target packages and their paths instead of building them.
220 .BR \-\-pkgver
222 .B "makepkg \-od \-\-noprepare"
223 before the build process.
224 .RB ( "aur\-build \-\-pkgver" )
227 .BR \-r ", " \-\-rmdeps ", " \-\-rm\-deps
228 Remove dependencies installed by makepkg.
229 .RB ( "aur build \-r" )
232 .BR \-S ", " \-\-sign ", " \-\-gpg-sign
233 Sign built packages with
234 .BR gpg (1).
235 .RB ( "aur build \-S" )
238 .B \-\-makepkg\-conf
240 .BR makepkg.conf (5)
241 file for chroot and
242 .BR makepkg (8)
243 operations.
244 .RB ( "aur\-build \-\-makepkg\-conf" )
247 .B \-\-pacman\-conf
249 .BR pacman.conf (5)
250 file for chroot and local repository operations.
251 .RB ( "aur\-build \-\-pacman\-conf" ", " "aur-repo \-\-config" )
253 .SS Aliases
255 .BR \-\-rebuild
256 Alias for
257 .BR "\-f \-\-nover\-argv" .
260 .BR \-\-rebuildtree ", " \-\-rebuild\-tree
261 Alias for
262 .BR "\-f \-\-nover" .
265 .BR \-\-rebuildall ", " \-\-rebuild\-all
267 .BR \-\-rebuild\-tree ,
268 but append all packages in the repository (see
269 .BR \-d )
270 as targets. May be used together with
271 .B \-o
272 to repopulate source directories in
273 .BR $AURDEST .
275 .SH ENVIRONMENT
276 Environment variables for other
277 .B aur
278 programs are also supported in
279 .BR aur\-sync .
280 The below are specific to
281 .BR aur\-sync .
283 .B AURDEST
284 Determines where build files will be cloned. This must be an absolute path.
285 Defaults to
286 .IR $XDG_CACHE_HOME/aurutils/sync .
289 .B AUR_SYNC_USE_NINJA
290 When set to a positive value, run
291 .B aur\-build
292 command-lines with
293 .BR ninja .
294 If a package fails to build, this allows
295 .B aur\-sync \-\-keep\-going
296 to continue with remaining, independent packages.
300 .IR $AURDEST/ninja-$USER-$$
301 directory contains the
302 .B build.ninja
303 file and timestamps
304 .IB \fR( \fIpkgbase \fR. stamp \fR)
305 for each job. It is removed on successful completion of
306 .BR ninja ,
307 or if
308 .B \-\-no\-build
309 is specified.
312 .SH NOTES
313 .SS Standard input
314 Targets may be taken from stdin using
315 .BR xargs (1).
316 For example, to sync all installed packages in a local repository named
317 .IR custom :
320     $ paclist custom | awk \(aq{print $1}\(aq | xargs \-r aur sync \-\-noconfirm
323 Note that command output interferes with input from the tty. The
324 .B \-\-noconfirm
325 option is used to disable interaction with
326 .B pacman
327 when installing dependencies. Alternatively, command or process substitution
328 can be used:
331     $ xargs \-a <(paclist custom | awk \(aq{print $1}\(aq) aur sync
332     $ aur sync $(paclist custom | awk \(aq{print $1}\(aq)
335 .SS File retrieval
336 When version checks are enabled (i.e. \fB\-\-no\-ver\fR is not specified),
337 build files are only retrieved if the remote (RPC) version is newer
338 than the version in a pacman database. Checks assume there are no
339 mismatches between
340 .B .SRCINFO
342 .B PKGBUILD
343 files.
345 .SS lib32
346 Architecture-specific depends (as introduced with pacman 4.2) are
347 merged with regular depends in RPC queries.
348 .B aur\-sync
349 works around this by stripping the
350 .I lib32\-
351 prefix from packages and removing
352 .I gcc\-multilib
353 if the i686 architecture is detected.
355 .SH SEE ALSO
356 .ad l
358 .BR aur (1),
359 .BR aur\-build (1),
360 .BR aur\-depends (1),
361 .BR aur\-fetch (1),
362 .BR aur\-graph (1),
363 .BR aur\-repo (1),
364 .BR aur\-repo\-filter (1),
365 .BR aur\-vercmp (1),
366 .BR aur\-view (1)
368 .SH AUTHORS
369 .MT https://github.com/AladW
370 Alad Wenter
373 .\" vim: set textwidth=72: