1bpkg-pkg-status(1) General Commands Manual bpkg-pkg-status(1)
2
3
4
6 bpkg-pkg-status - print package status
7
9 bpkg pkg-status|status [options] [pkg[/ver]...]
10
12 The pkg-status command prints the status of the specified packages or,
13 if ver is specified, package versions. If no packages were specified,
14 then pkg-status prints the status of all the held packages (which are
15 the packages that were explicitly built; see bpkg-pkg-build(1)). The
16 latter mode can be modified to print the status of all the packages by
17 specifying the --all|-a option. Additionally, the status of immediate
18 or all dependencies of the above packages can be printed by specifying
19 the --immediate|-i or --recursive|-r options, respectively. Note that
20 the status is written to stdout, not stderr.
21
22 The default output format (see the --stdout-format common option) is
23 regular with components separated with spaces. Each line starts with
24 the package name followed by one of the status words listed below. Some
25 of them can be optionally followed by ',' (no spaces) and a sub-status
26 word. Lines corresponding to dependencies from linked configurations
27 will additionally mention the configuration directory in square brack‐
28 ets after the package name.
29
30 unknown
31 Package is not part of the configuration nor available from any
32 of the repositories.
33
34 available
35 Package is not part of the configuration but is available from
36 one of the repositories.
37
38 fetched
39 Package is part of the configuration and is fetched.
40
41 unpacked
42 Package is part of the configuration and is unpacked.
43
44 configured
45 Package is part of the configuration and is configured. May be
46 followed by the system sub-status indicating a package coming
47 from the system. The version of such a system package (described
48 below) may be the special '*' value indicating a wildcard ver‐
49 sion.
50
51 broken
52 Package is part of the configuration and is broken (broken pack‐
53 ages can only be purged; see bpkg-pkg-purge(1)).
54
55 If only the package name was specified without the package version,
56 then the available status word is followed by the list of available
57 versions. Versions that are only available for up/down-grading are
58 printed in '[]' (such version are only available as dependencies from
59 prerequisite repositories of other repositories). If the --system op‐
60 tion is specified, then the last version in this list may have the sys:
61 prefix indicating an available system version. Such a system version
62 may be the special '?' value indicating that a package may or may not
63 be available from the system and that its version is unknown.
64
65 The fetched, unpacked, configured, and broken status words are followed
66 by the version of the package. If the package version was specified,
67 then the unknown status word is also followed by the version.
68
69 If the status is fetched, unpacked, configured, or broken and newer
70 versions are available, then the package version is followed by the
71 available status word and the list of newer versions. To instead see a
72 list of all versions, including the older ones, specify the --old-
73 available|-o option. In this case the currently selected version is
74 printed in '()'.
75
76 If the package name was specified with the version, then only the sta‐
77 tus (such as, configured, available, etc.) of this version is consid‐
78 ered.
79
80 If a package is being held, then its name is printed prefixed with '!'.
81 Similarly, if a package version is being held, then the version is
82 printed prefixed with '!'. Held packages and held versions were se‐
83 lected by the user and are not automatically dropped and upgraded, re‐
84 spectively.
85
86 Below are some examples, assuming the configuration has libfoo 1.0.0
87 configured and held (both package and version) as well as libfoo 1.1.0
88 and 1.1.1 available from source and 1.1.0 from the system.
89
90 bpkg status libbar
91 libbar unknown
92
93 bpkg status libbar/1.0.0
94 libbar unknown 1.0.0
95
96 bpkg status libfoo/1.0.0
97 !libfoo configured !1.0.0
98
99 bpkg status libfoo/1.1.0
100 libfoo available 1.1.0
101
102 bpkg status --system libfoo/1.1.0
103 libfoo available 1.1.0 sys:1.1.0
104
105 bpkg status libfoo
106 !libfoo configured !1.0.0 available 1.1.0 1.1.1
107
108 bpkg status libfoo/1.1.1 libbar
109 libfoo available 1.1.1
110 libbar unknown
111
112 Assuming now that we dropped libfoo from the configuration:
113
114 bpkg status libfoo/1.0.0
115 libfoo unknown 1.0.0
116
117 bpkg status libfoo
118 libfoo available 1.1.0 1.1.1
119
120 And assuming now that we built libfoo as a system package with the
121 wildcard version:
122
123 bpkg status libfoo
124 !libfoo configured,system !* available 1.1.0 1.1.1
125
126 Another example of the status output this time including dependencies:
127
128 bpkg status -r libbaz
129 !libbaz configured 1.0.0
130 libfoo configured 1.0.0
131 bison [.bpkg/host/] configured 1.0.0
132 libbar configured 2.0.0
133
134 If the output format is json, then the output is a JSON array of ob‐
135 jects which are the serialized representation of the following C++
136 struct package_status:
137
138 struct available_version
139 {
140 string version;
141 bool system;
142 bool dependency;
143 };
144
145 struct package_status
146 {
147 string name;
148 optional<string> configuration;
149 optional<string> constraint;
150 string status;
151 optional<string> sub_status;
152 optional<string> version;
153 bool hold_package;
154 bool hold_version;
155 vector<available_version> available_versions;
156 vector<package_status> dependencies;
157 };
158
159 For example:
160
161 [
162 {
163 "name": "hello",
164 "status": "configured",
165 "version": "1.0.0",
166 "hold_package": true,
167 "available_versions": [
168 {
169 "version": "1.0.1"
170 },
171 {
172 "version": "2.0.0"
173 }
174 ],
175 "dependencies": [
176 {
177 "name": "libhello",
178 "status": "configured",
179 "version": "1.0.2",
180 }
181 ]
182 }
183 ]
184
185 See the JSON OUTPUT section in bpkg-common-options(1) for details on
186 the overall properties of this format and the semantics of the struct
187 serialization.
188
189 In package_status, the configuration member contains the absolute di‐
190 rectory of a linked configuration if this package resides in a linked
191 configuration. The constraint member is present only if the --con‐
192 straint option is specified. The version member is absent if the status
193 member is unknown or available and no package version is specified on
194 the command line. If the sub_status member is system, then the version
195 member can be special *. The dependencies member is present only if the
196 --immediate|-i or --recursive|-r options are specified.
197
198 In available_version, if the system member is true, then this version
199 is available from the system, in which case the version member can be
200 special ? or *. If the dependency member is true, then this version is
201 only available as a dependency from prerequisite repositories of other
202 repositories.
203
205 --all|-a
206 Print the status of all the packages, not just held.
207
208 --link Also print the status of held/all packages from linked configu‐
209 rations.
210
211 --immediate|-i
212 Also print the status of immediate dependencies.
213
214 --recursive|-r
215 Also print the status of all dependencies, recursively.
216
217 --old-available|-o
218 Print old available versions.
219
220 --constraint
221 Print version constraints for dependencies.
222
223 --system
224 Check the availability of packages from the system.
225
226 --no-hold
227 Don't print the package or version hold status.
228
229 --no-hold-package
230 Don't print the package hold status.
231
232 --no-hold-version
233 Don't print the version hold status.
234
235 --directory|-d dir
236 Assume configuration is in dir rather than in the current work‐
237 ing directory.
238
240 The common options are summarized below with a more detailed descrip‐
241 tion available in bpkg-common-options(1).
242
243 -v Print essential underlying commands being executed.
244
245 -V Print all underlying commands being executed.
246
247 --quiet|-q
248 Run quietly, only printing error messages.
249
250 --verbose level
251 Set the diagnostics verbosity to level between 0 and 6.
252
253 --stdout-format format
254 Representation format to use for printing to stdout.
255
256 --jobs|-j num
257 Number of jobs to perform in parallel.
258
259 --no-result
260 Don't print informational messages about the outcome of perform‐
261 ing a command or some of its parts.
262
263 --structured-result fmt
264 Write the result of performing a command in a structured form.
265
266 --progress
267 Display progress indicators for long-lasting operations, such as
268 network transfers, building, etc.
269
270 --no-progress
271 Suppress progress indicators for long-lasting operations, such
272 as network transfers, building, etc.
273
274 --diag-color
275 Use color in diagnostics.
276
277 --no-diag-color
278 Don't use color in diagnostics.
279
280 --build path
281 The build program to be used to build packages.
282
283 --build-option opt
284 Additional option to be passed to the build program.
285
286 --fetch path
287 The fetch program to be used to download resources.
288
289 --fetch-option opt
290 Additional option to be passed to the fetch program.
291
292 --fetch-timeout sec
293 The fetch and fetch-like (for example, git) program timeout.
294
295 --pkg-proxy url
296 HTTP proxy server to use when fetching package manifests and ar‐
297 chives from remote pkg repositories.
298
299 --git path
300 The git program to be used to fetch git repositories.
301
302 --git-option opt
303 Additional common option to be passed to the git program.
304
305 --sha256 path
306 The sha256 program to be used to calculate SHA256 sums.
307
308 --sha256-option opt
309 Additional option to be passed to the sha256 program.
310
311 --tar path
312 The tar program to be used to extract package archives.
313
314 --tar-option opt
315 Additional option to be passed to the tar program.
316
317 --openssl path
318 The openssl program to be used for crypto operations.
319
320 --openssl-option opt
321 Additional option to be passed to the openssl program.
322
323 --auth type
324 Types of repositories to authenticate.
325
326 --trust fingerprint
327 Trust repository certificate with a SHA256 fingerprint.
328
329 --trust-yes
330 Assume the answer to all authentication prompts is yes.
331
332 --trust-no
333 Assume the answer to all authentication prompts is no.
334
335 --git-capabilities up=pc
336 Protocol capabilities (pc) for a git repository URL prefix (up).
337
338 --pager path
339 The pager program to be used to show long text.
340
341 --pager-option opt
342 Additional option to be passed to the pager program.
343
344 --options-file file
345 Read additional options from file.
346
347 --default-options dir
348 The directory to load additional default options files from.
349
350 --no-default-options
351 Don't load default options files.
352
353 --keep-tmp
354 Don't remove the bpkg's temporary directory at the end of the
355 command execution and print its path at the verbosity level 2 or
356 higher.
357
359 See bpkg-default-options-files(1) for an overview of the default op‐
360 tions files. For the pkg-status command the search start directory is
361 the configuration directory. The following options files are searched
362 for in each directory and, if found, loaded in the order listed:
363
364 bpkg.options
365 bpkg-pkg-status.options
366
367 The following pkg-status command options cannot be specified in the de‐
368 fault options files:
369
370 --directory|-d
371
373 Send bug reports to the users@build2.org mailing list.
374
376 Copyright (c) 2014-2023 the build2 authors.
377
378 Permission is granted to copy, distribute and/or modify this document
379 under the terms of the MIT License.
380
381
382
383bpkg 0.16.0 June 2023 bpkg-pkg-status(1)