aboutsummaryrefslogtreecommitdiffhomepage
path: root/Manual.md
diff options
context:
space:
mode:
authorAndrew J. Hesford <ajh@sideband.org>2020-05-15 13:19:26 -0400
committerJürgen Buchmüller <pullmoll@t-online.de>2020-05-16 05:55:23 +0200
commitc38d959cb50fb5b0f4af68b1bed36876dc0b3e72 (patch)
treea6eb63c0bc02f526d52083f3f4e0bed362b53d1a /Manual.md
parentzfsbootmenu: update to 1.0. (diff)
Manual.md: expand description of virtual packages
Diffstat (limited to 'Manual.md')
-rw-r--r--Manual.md14
1 files changed, 10 insertions, 4 deletions
diff --git a/Manual.md b/Manual.md
index 576b3d2032e..f6c6f457451 100644
--- a/Manual.md
+++ b/Manual.md
@@ -1162,10 +1162,16 @@ Dependencies declared via `${depends}` are not installed to the master directory
only checked if they exist as binary packages, and are built automatically by `xbps-src` if
the specified version is not in the local repository.
-There's a special variant of how `virtual` dependencies can be specified as `runtime dependencies`
-and is by using the `virtual?` keyword, i.e `depends="virtual?vpkg-0.1_1"`. This declares
-a `runtime` virtual dependency to `vpkg-0.1_1`; this `virtual` dependency will be simply ignored
-when the package is being built with `xbps-src`.
+As a special case, `virtual` dependencies may be specified as runtime dependencies in the
+`${depends}` template variable. Several different packages can provide common functionality by
+declaring a virtual name and version in the `${provides}` template variable (e.g.,
+`provides="vpkg-0.1_1"`). Packages that rely on the common functionality without concern for the
+specific provider can declare a dependency on the virtual package name with the prefix `virtual?`
+(e.g., `depends="virtual?vpkg-0.1_1"`). When a package is built by `xbps-src`, providers for any
+virtual packages will be confirmed to exist and will be built if necessary. A map from virtual
+packages to their default providers is defined in `etc/default.virtual`. Individual mappings can be
+overridden by local preferences in `etc/virtual`. Comments in `etc/default.virtual` provide more
+information on this map.
<a id="install_remove_files"></a>
### INSTALL and REMOVE files