1 .\" $OpenBSD: pkgpath.7,v 1.2 2013/01/09 11:52:52 espie Exp $
3 .\" Copyright (c) 2011 Marc Espie <espie@openbsd.org>
5 .\" Permission to use, copy, modify, and distribute this software for any
6 .\" purpose with or without fee is hereby granted, provided that the above
7 .\" copyright notice and this permission notice appear in all copies.
9 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 .Dd $Mdocdate: January 9 2013 $
21 .Nd ports tree location for a package build
23 Each location in the ports tree is uniquely identified through a
25 which encodes the directory, flavor and subpackage information
26 that allows the build of a package.
27 This is not to be confused with
29 the list of URLs from which
31 retrieves binary packages.
35 conforms to the pattern
36 .Ar some/directory[,-sub][,flavor...] .
40 part refers to the directory part, to find under the
49 optional part refers to a specific subpackage from a
51 It can be left blank for non multi-package ports, or to get
52 the default subpackage
58 optional part refers to the flavors or pseudo-flavors to use
59 when building the package.
60 If left blank, it refers to the default flavor.
61 An explicit empty flavor can also be specified to make sure to
62 get an empty flavor, even if it does not correspond to the default
69 parts can be specified in any order, as all subpackages start with
71 It is an error to ask for several subs at once, e.g.\&
72 .Ar some/path,-sub1,-sub2 ,
73 though it won't always be flagged as a problem.
78 A simple directory, default flavor, which happens to be empty.
79 .It Ar misc/screen,static
84 A multi-package port with no subpackage nor flavor, refers to
85 .Ar x11/kde/libs3,-main .
87 Multi-package port with default flavor.
88 Will actually build with FLAVOR="no_gui no_mono no_qt3 no_qt4 bootstrap"
89 (all of which are pseudo-flavors), so that only the main package will build.
90 .It Ar net/avahi,no_mono,-qt3
91 Build avahi with the "no_mono" pseudo-flavor, which will build the
92 -main, -qt3, -qt4, -gui, -gtk, -gtk3, and -ui subpackages, and refer to the
97 with an explicit empty flavor, default subpackage
102 .It Ar net/avahi,,-qt4
104 with an explicit empty flavor,
109 The ports tree can iterate over lists of
112 .Li SUBDIR="pkgpath1 pkgpath2..."
113 or through a full list through
114 .Li SUBDIRLIST=file .
119 lists for many options.
120 .Sh NORMALISATION AND THE FULLPATH CONVENTION
121 When the ports tree handles dependencies, it passes
129 to the dependent port for normalisation purposes.
132 that gets recorded in the package doesn't have any "default" flavor
133 or "default" subpackage left: those are always resolved to the correct
136 Likewise, pseudo-flavors vanish from the
138 since they only participate in the build process, but do not intervene
139 in the built package.
143 are slightly different from the description above, as a flavor left blank
144 is the empty flavor (and not the default flavor).
146 .Qq fullpath convention .
150 display fullpath pkgpaths,
151 and binary packages store full pkgpaths.
156 can be forced to follow the fullpath convention by explicitly passing
162 Most tools that process binary packages do so.
166 .Xr library-specs 7 ,
168 .Xr packages-specs 7 ,