FreeBSD Manual Pages
bdep-sync(1) General Commands Manual bdep-sync(1) NAME bdep-sync - synchronize project and build configurations SYNOPSIS bdep sync [options] [pkg-spec] [cfg-spec] [pkg-args] bdep sync [options] [pkg-spec] [cfg-spec] --upgrade|-u | --patch|-p bdep sync [options] [pkg-spec] [cfg-spec] [--upgrade|-u | --patch|-p] dep-spec... [cfg-var...] dep-spec = pkg[/ver] cfg-spec = (@cfg-name | --config|-c cfg-dir)... | --all|-a pkg-spec = (--directory|-d pkg-dir)... | prj-spec prj-spec = --directory|-d prj-dir pkg-args = (?pkg | cfg-var)... DESCRIPTION The sync command synchronizes a project with its build configurations. The first form (no --upgrade or --patch and only pkg-args arguments, if any, are specified) upgrades the project packages to the latest ver- sion/iteration, adjusts their dependencies according to the latest man- ifest information, and updates the lockfile. If no project or package directory is specified, then the current work- ing directory is assumed. If no configuration is specified, then the default configurations are assumed. See bdep-projects-configs(1) for details on specifying projects and configurations. Optional pkg-args are the additional dependency packages and/or configuration variables to pass to the underlying bpkg-pkg-build(1) command. The second form (no arguments but either --upgrade or --patch is speci- fied), in addition to the first form's functionality, also upgrades or patches immediate (by default or if --immediate|-i is specified) or all (if --recursive|-r is specified) dependencies of the specified project packages. If no project packages are specified explicitly, then this form upgrades or patches dependencies of all the initialized packages in a project. The third form (one or more dep-spec arguments are specified), in addi- tion to the first form's functionality, also upgrades (by default or if --upgrade is specified) or patches (if --patch is specified) the speci- fied dependencies. If --immediate|-i or --recursive|-r is specified, then it also upgrades or patches the immediate or all dependencies of the specified dependencies, respectively. Alternative to --upgrade and --patch, the desired upgrade (or downgrade) version can be specified explicitly. Note also that --immediate|-i or --recursive|-r can only be specified with an explicit --upgrade or --patch. Configuration variables can be specified to only apply to specific packages in pkg-args and dep-spec using the argument grouping mechanism (bdep-argument-grouping(1)). Additionally, packages in pkg-args can be placed into specific linked configurations by specifying the configura- tion with one of the --config* options (or @ notation) using the same grouping mechanism. If during synchronization a build-time dependency is encountered and there is no build configuration of a suitable type associated with the project, then the user is prompted (unless the respective --cre- ate-*-config option is specified) to automatically create such a con- figuration and associate it with the project. See bpkg-cfg-create(1) for background on configuration types. EXAMPLES As an example, consider project prj with two packages, foo and libfoo: prj/ |-- foo/ `-- libfoo/ Assuming foo and libfoo have been initialized in the default build con- figuration, the following invocations illustrate the common sync use cases (the current working directory is shown before the shell prompt). Synchronize foo and libfoo with the default configuration: prj/$ bdep sync The same (all initialized packages in a project are always synchronized at once): prj/$ cd foo foo/$ bdep sync Add a dependency on libx with sync fetching and configuring a suitable version: foo/$ edit manifest # Add 'depends: libx ^1.0.0' foo/$ bdep sync Upgrade all the immediate dependencies of foo: foo/$ bdep sync -u Upgrade all the dependencies of all the initialized packages in a project recursively: foo/$ cd ../ prj/$ bdep sync -u -r Upgrade libx to the latest version: prj/$ bdep sync libx Upgrade libx and its immediate dependencies to the latest version: prj/$ bdep sync -u -i libx Upgrade libx to the latest patch version: prj/$ bdep sync -p libx Upgrade libx and all its dependencies recursively to the latest patch version. prj/$ bdep sync -p -r libx Upgrade libx to version 1.2.3. prj/$ bdep sync libx/1.2.3 Upgrade libx to version 1.2.3 and patch all its dependencies, recur- sively: prj/$ bdep sync -p -r libx/1.2.3 SYNC OPTIONS --upgrade|-u Upgrade dependencies to the latest available version that satis- fies all the constraints. --patch|-p Upgrade dependencies to the latest available patch version that satisfies all the constraints. --immediate|-i Also upgrade or patch immediate dependencies. --recursive|-r Also upgrade or patch all dependencies, recursively. --yes|-y Don't prompt for confirmation when up/down-grading dependencies. --disfigure Disfigure project packages during synchronization effectively causing their from-scratch reconfiguration. --fetch|-f Perform the fetch command prior to synchronization. --fetch-full|-F Perform the fetch --full command prior to synchronization. --sys-no-query Do not query the system package manager for the installed ver- sions of packages specified with the sys scheme. See the corre- sponding bpkg-pkg-build(1) option for details. --sys-install Instruct the system package manager to install available ver- sions of packages specified with the sys scheme that are not al- ready installed. See the corresponding bpkg-pkg-build(1) option for details. --sys-no-fetch Do not fetch the system package manager metadata before querying for available versions of packages specified with the sys scheme. See the corresponding bpkg-pkg-build(1) option for de- tails. --sys-no-stub Do no require a stub for packages specified with the sys scheme. See the corresponding bpkg-pkg-build(1) option for details. --sys-yes Assume the answer to the system package manager prompts is yes. See the corresponding bpkg-pkg-build(1) option for details. --sys-sudo prog The sudo program to use for system package manager interactions that normally require administrative privileges (fetch package metadata, install packages, etc). See the corresponding bpkg- pkg-build(1) option for details. --create-host-config Create a configuration for build-time dependencies without prompt. --create-build2-config Create a configuration for build system module dependencies without prompt. --implicit Perform implicit synchronization. This mode is normally used by other tools (for example, a build system hook) to ensure projects and configurations are synchronized. To improve perfor- mance, especially for the "everything is already synchronized" case, sync executed in this mode assumes that no configuration flags (see bdep-config(1)) have changed since the last explicit synchronization. It also does not search for a project in the current working directory - if any, its directory should be specified explicitly with --config|-c. --all|-a Use all build configurations. --config|-c dir Specify the build configuration as a directory. --directory|-d dir Assume project/package is in the specified directory rather than in the current working directory. --config-name|-n name Specify the build configuration as a name. --config-id num Specify the build configuration as an id. COMMON OPTIONS The common options are summarized below with a more detailed descrip- tion available in bdep-common-options(1). -v Print essential underlying commands being executed. -V Print all underlying commands being executed. --quiet|-q Run quietly, only printing error messages. --verbose level Set the diagnostics verbosity to level between 0 and 6. --stdout-format format Representation format to use for printing to stdout. --jobs|-j num Number of jobs to perform in parallel. --progress Display progress indicators for long-lasting operations, such as network transfers, building, etc. --no-progress Suppress progress indicators for long-lasting operations, such as network transfers, building, etc. --diag-color Use color in diagnostics. --no-diag-color Don't use color in diagnostics. --bpkg path The package manager program to be used for build configuration management. --bpkg-option opt Additional option to be passed to the package manager program. --build path The build program to be used to build packages. --build-option opt Additional option to be passed to the build program. --curl path The curl program to be used for network operations. --curl-option opt Additional option to be passed to the curl program. --pager path The pager program to be used to show long text. --pager-option opt Additional option to be passed to the pager program. --options-file file Read additional options from file. --default-options dir The directory to load additional default options files from. --no-default-options Don't load default options files. DEFAULT OPTIONS FILES See bdep-default-options-files(1) for an overview of the default op- tions files. For the sync command the search start directory is the project directory, except for the implicit mode for which only the pre- defined directories (system, etc) are searched in. The following op- tions files are searched for in each directory and, if found, loaded in the order listed: bdep.options bdep-{sync|sync-implicit}.options # (mode-dependent) The following sync command options cannot be specified in the default options files: --directory|-d --implicit --config|-c ENVIRONMENT The BDEP_SYNC environment variable can be used to suppress automatic synchronization on build system invocation. If set, auto-synchroniza- tion will only be performed if the variable's value is true or 1. The ability to suppress auto-synchronization can be useful when you don't have usable bdep and/or bpkg. To avoid recursive re-synchronization, the sync command also maintains the BDEP_SYNCED_CONFIGS environment variable. It contains a space-sepa- rated, "-quoted list of configuration paths that have been or are being synchronized by the current bdep invocation chain. The sync command ex- amines this variable and silently ignores synchronization requests that have been or are already being performed. BUGS Send bug reports to the users@build2.org mailing list. COPYRIGHT Copyright (c) 2014-2024 the build2 authors. Permission is granted to copy, distribute and/or modify this document under the terms of the MIT License. bdep 0.17.0 June 2024 bdep-sync(1)
NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SYNC OPTIONS | COMMON OPTIONS | DEFAULT OPTIONS FILES | ENVIRONMENT | BUGS | COPYRIGHT
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bdep-sync&sektion=1&manpath=FreeBSD+Ports+15.0>
