aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/en/books/porters-handbook/uses/_index.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/en/books/porters-handbook/uses/_index.adoc')
-rw-r--r--documentation/content/en/books/porters-handbook/uses/_index.adoc387
1 files changed, 340 insertions, 47 deletions
diff --git a/documentation/content/en/books/porters-handbook/uses/_index.adoc b/documentation/content/en/books/porters-handbook/uses/_index.adoc
index 73967f5cf5..ce23b68af7 100644
--- a/documentation/content/en/books/porters-handbook/uses/_index.adoc
+++ b/documentation/content/en/books/porters-handbook/uses/_index.adoc
@@ -6,7 +6,7 @@ description: USES macros make it easy to declare requirements and settings for a
tags: ["uses", "macros", "introduction", "guide"]
showBookMenu: true
weight: 17
-path: "/books/porters-handbook/"
+path: "/books/porters-handbook/uses/"
---
[[uses]]
@@ -109,11 +109,10 @@ The `p7zip` option forces a dependency on the `7z` from package:archivers/p7zip[
[[uses-ada]]
== `ada`
-Possible arguments: (none), `5`, `6`
+Possible arguments: (none), `6`, `12`, `(run)`
Depends on an Ada-capable compiler, and sets `CC` accordingly.
-Defaults to use gcc 5 from ports.
-Use the `:_X_` version option to force building with a different version.
+Defaults to use `gcc6-aux` from ports.
[[uses-autoreconf]]
== `autoreconf`
@@ -179,6 +178,15 @@ Possible arguments: (none), `build`, `run`, `both`
Uses package:devel/bison[] By default, with no arguments or with the `build` argument, it implies `bison` is a build-time dependency, `run` implies a run-time dependency, and `both` implies both run-time and build-time dependencies.
+[[uses-budgie]]
+== `budgie`
+
+Possible arguments: (none)
+
+Provide support for the Budgie desktop environment.
+Use `USE_BUDGIE` to select the components needed for the port.
+See crossref:special[using-budgie,Using Budgie] for more information.
+
[[uses-cabal]]
== `cabal`
@@ -187,45 +195,74 @@ Uses package:devel/bison[] By default, with no arguments or with the `build` arg
Ports should not be created for Haskell libraries, see crossref:special[haskell-libs,Haskell Libraries] for more information.
====
-Possible arguments: (none), `hpack`
+Possible arguments: (none), `hpack`, `nodefault`
Sets default values and targets used to build Haskell software using Cabal.
-A build dependency on the Haskell compiler port (GHC) is added.
-If `hpack` argument is given, a build dependency on package:devel/hs-hpack[] is added and `hpack` is invoked at configuration step to generate.
-cabal file.
+A build dependency on the Haskell compiler port (package:lang/ghc[]) is added.
+If there is some other version of GHC already listed in the `BUILD_DEPENDS` variable (for example, package:lang/ghc810[]), it would be used instead.
+If the `hpack` argument is given, a build dependency on package:devel/hs-hpack[] is added and `hpack` is invoked at configuration step to
+generate .cabal file.
+If the `nodefault` argument is given, the framework will not try to pull the main distribution file from the Hackage.
+This argument is implicitly added if `USE_GITHUB` or `USE_GITLAB` is present.
The framework provides the following variables:
+`CABAL_REVISION`::
+Haskell packages hosted on Hackage may have revisions.
+Set this knob to an integer number to pull in revised package description.
+
`USE_CABAL`::
If the software uses Haskell dependencies, list them in this variable.
Each item should be present on Hackage and be listed in form `packagename-_0.1.2_`.
-Dependencies can have revisions, which are specified after the `_` symbol.
-Automatic generation of dependency list is supported, see crossref:special[using-cabal,Building Haskell Applications with `cabal`].
+Dependencies can have revisions too, which are specified after the `_` symbol.
+Automatic generation of the dependency list is supported, see crossref:special[using-cabal,Building Haskell Applications with `cabal`].
`CABAL_FLAGS`::
List of flags to be passed to `cabal-install` during the configuring and building stage.
The flags are passed verbatim.
+This variable is usually used to enable or disable flags that are declared in the .cabal file.
+Pass `foo` to enable the `foo` flag and `-foo` to disable it.
-`EXECUTABLES`::
+`CABAL_EXECUTABLES`::
List of executable files installed by the port.
Default value: `${PORTNAME}`.
+Consult the .cabal file of the project being ported to get a list of possible
+values for this variable. Each value corresponds to an `executable` stanza in the .cabal file.
Items from this list are automatically added to pkg-plist.
`SKIP_CABAL_PLIST`::
-If defined, do not add items from `${EXECUTABLES}` to pkg-plist.
+If defined, do not add items from `${CABAL_EXECUTABLES}` to pkg-plist.
`opt_USE_CABAL`::
Adds items to `${USE_CABAL}` depending on `opt` option.
-`opt_EXECUTABLES`::
-Adds items to `${EXECUTABLES}` depending on `opt` option.
+`opt_CABAL_EXECUTABLES`::
+Adds items to `${CABAL_EXECUTABLES}` depending on `opt` option.
`opt_CABAL_FLAGS`::
If `opt` is enabled, append the value to `${CABAL_FLAGS}`.
Otherwise, append `-value` to disable the flag.
+Note that this behavior is slightly different from the plain `CABAL_FLAGS` as it does not accept values starting with `-`.
+
+`CABAL_WRAPPER_SCRIPTS`::
+A subset of `${CABAL_EXECUTABLES}` containing Haskell programs to be wrapped into a shell script
+that sets `*_datadir` environment variables before running the program.
+This also causes the actual Haskell binary to be installed under `libexec/cabal/` directory.
+This knob is needed for Haskell programs that install their data files under `share/` directory.
`FOO_DATADIR_VARS`::
-For an executable named `FOO` list Haskell packages, whose data files should be accessible by the executable.
+List of extra Haskell packages, whose data files should be accessible by the executable named `FOO`.
+The executable should be a part of `${CABAL_WRAPPER_SCRIPTS}`.
+Haskell packages listed there should not have a version suffix.
+
+`CABAL_PROJECT`::
+Some Haskell projects may already have a `cabal.project` file, which is also generated by the ports framework.
+If that is the case, use this variable to specify what to do with the original `cabal.project`.
+Setting this variable to `remove` will cause the original file to be removed.
+Setting this variable to `append` will:
+. Move the original file to `cabal.project.${PORTNAME}` during the `extract` stage.
+. Concatenate the original `cabal.project.${PORTNAME}` and the generated `cabal.project` into a single file after the `patch` stage.
+Using `append` makes it possible to perform patching on the original file before it gets merged.
[[uses-cargo]]
== `cargo`
@@ -293,11 +330,11 @@ After including [.filename]#bsd.port.pre.mk# the port can inspect the results us
Possible arguments: (none)
Include Common Platform Enumeration (CPE) information in package manifest as a CPE 2.3 formatted string.
-See the http://scap.nist.gov/specifications/cpe/[CPE specification] for details.
+See the https://scap.nist.gov/specifications/cpe/[CPE specification] for details.
To add CPE information to a port, follow these steps:
[.procedure]
-. Search for the official CPE entry for the software product either by using the NVD's http://web.nvd.nist.gov/view/cpe/search[CPE search engine] or in the http://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.3.xml[official CPE dictionary] (warning, very large XML file). _Do not ever make up CPE data._
+. Search for the official CPE entry for the software product either by using the NVD's https://web.nvd.nist.gov/view/cpe/search[CPE search engine] or in the https://nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.3.xml.gz[official CPE dictionary] (warning, very large XML file). _Do not ever make up CPE data._
. Add `cpe` to `USES` and compare the result of `make -V CPE_STR` to the CPE dictionary entry. Continue one step at a time until `make -V CPE_STR` is correct.
. If the product name (second field, defaults to `PORTNAME`) is incorrect, define `CPE_PRODUCT`.
. If the vendor name (first field, defaults to `CPE_PRODUCT`) is incorrect, define `CPE_VENDOR`.
@@ -324,6 +361,8 @@ Possible arguments: (none)
Uses update-desktop-database from package:devel/desktop-file-utils[].
An extra post-install step will be run without interfering with any post-install steps already in the port [.filename]#Makefile#.
A line with <<plist-keywords-desktop-file-utils,`@desktop-file-utils`>> will be added to the plist.
+Only use this macro if the port provides a `.desktop` file which contains a
+`MimeType` entry.
[[uses-desthack]]
== `desthack`
@@ -363,9 +402,23 @@ Possible arguments: `7`, `module`, `theme`
Automate installation of a port that is a Drupal theme or module.
Use with the version of Drupal that the port is expecting.
-For example, `USES=drupal:7,module` says that this port creates a Drupal 6 module.
+For example, `USES=drupal:7,module` says that this port creates a Drupal 7 module.
A Drupal 7 theme can be specified with `USES=drupal:7,theme`.
+[[uses-ebur128]]
+== `ebur128`
+
+Possible arguments: (none), `build`, `lib`, `run`, `test`
+
+Adds a dependency on package:audio/ebur128[].
+It allows to transparently depend on the `rust` or `legacy` variants by using
+`DEFAULT_VERSIONS` in [.filename]#make.conf#.
+For instance, to use the legacy version, use `DEFAULT_VERSIONS+=ebur128=legacy`
+
+When no arguments are used, the behavior is the same as if the `lib` argument
+was provided.
+The rest of the arguments provide the corresponding category of dependency.
+
[[uses-eigen]]
== `eigen`
@@ -396,6 +449,29 @@ ELF_FEATURES= featurelist:path/to/file1 \
The format of `featurelist` is described in man:elfctl[1]. The file paths are relative to ${BUILD_WRKSRC}.
+[[uses-erlang]]
+== `erlang`
+
+Possible arguments: (none), `enc`, `rebar`, `rebar3`
+
+Adds a build and run time dependency on package:lang/erlang[].
+Depending on the argument, it adds additional build dependencies. `enc` adds a
+dependency on package:devel/erlang-native-compiler[], `rebar` adds a dependency on
+package:devel/rebar[] and `rebar3` adds a dependency on package:devel/rebar3[].
+
+In addition, the following variables are available to the port:
+
+* `ERL_APP_NAME`: Erlang app name as installed in Erlang's lib dir (minus version)
+* `ERL_APP_ROOT`: Root directory for this Erlang app
+* `REBAR_CMD`: Path to the "rebar" command
+* `REBAR3_CMD`: Path to the "rebar3" command
+* `REBAR_PROFILE`: Rebar profile
+* `REBAR_TARGETS`: Rebar target list (usually compile, maybe escriptize)
+* `ERL_BUILD_NAME`: Build name for rebar3
+* `ERL_BUILD_DEPS`: List of BUILD_DEPENDS in category/portname format
+* `ERL_RUN_DEPS`: List of RUN_DEPENDS in category/portname format
+* `ERL_DOCS`: List of documentation files and directories
+
[[uses-fakeroot]]
== `fakeroot`
@@ -422,10 +498,10 @@ Add a dependency to the client library of the Firebird database.
[[uses-fonts]]
== `fonts`
-Possible arguments: (none), `fc`, `fcfontsdir` (default), `fontsdir`, `none`
+Possible arguments: (none), `fc`, `fontsdir` (default), `none`
Adds a runtime dependency on tools needed to register fonts.
-Depending on the argument, add a `crossref:plist[plist-keywords-fc,@fc] ${FONTSDIR}` line, `crossref:plist[plist-keywords-fcfontsdir,@fcfontsdir] ${FONTSDIR}` line, `crossref:plist[plist-keywords-fontsdir,@fontsdir] ${FONTSDIR}` line, or no line if the argument is `none`, to the plist.
+Depending on the argument, add a `crossref:plist[plist-keywords-fc,@fc] ${FONTSDIR}` line, `crossref:plist[plist-keywords-fontsdir,@fontsdir] ${FONTSDIR}` line, or no line if the argument is `none`, to the plist.
`FONTSDIR` defaults to [.filename]#${PREFIX}/share/fonts/${FONTNAME}# and `FONTNAME` to `${PORTNAME}`.
Add `FONTSDIR` to `PLIST_SUB` and `SUB_LIST`
@@ -451,6 +527,8 @@ Possible arguments: (none), `noautoplist`
Handle building with RubyGems.
If `noautoplist` is used, the packing list is not generated automatically.
+This implies `USES=ruby`.
+
[[uses-gettext]]
== `gettext`
@@ -637,14 +715,14 @@ See crossref:special[using-gnome,Using GNOME] for more information.
Ports should not be created for Go libs, see crossref:special[go-libs,Go Libraries] for more information.
====
-Possible arguments: (none), `modules`, `no_targets`, `run`
+Possible arguments: (none), `N.NN`, `N.NN-devel`, `modules`, `no_targets`, `run`
Sets default values and targets used to build Go software.
-A build dependency on the Go compiler port selected via `GO_PORT` is added.
+A build dependency on the Go compiler port is added, port maintainers can set version required.
By default the build is performed in GOPATH mode.
If Go software uses modules, the modules-aware mode can be switched on with `modules` argument.
-`no_targets` will setup build environment like `GO_ENV`, `GO_BUILDFLAGS` but skip creating `post-extract` and `do-{build,install,test}` targets.
-`run` will also add a run dependency on what is in `GO_PORT`.
+`no_targets` will setup build environment like `GO_ENV`, `GO_BUILDFLAGS` but skip creating extract and build targets.
+`run` will also add a run dependency on the Go compiler port.
The build process is controlled by several variables:
@@ -679,15 +757,6 @@ Additional build arguments to be passed to `go build`.
`GO_TESTFLAGS`::
Additional build arguments to be passed to `go test`.
-`GO_PORT`::
-The Go compiler port to use.
-By default this is package:lang/go[] but can be set to package:lang/go-devel[] in `make.conf` for testing with future Go versions.
-+
-[WARNING]
-====
-This variable must not be set by individual ports!
-====
-
See crossref:special[using-go,Building Go Applications] for usage examples.
[[uses-gperf]]
@@ -866,6 +935,23 @@ The available components are:
* `ximagesrc`
* `zbar`
+[[uses-guile]]
+== `guile`
+
+Possible arguments: (none), `_X.Y_`, `flavors`, `build`, `run`, `alias`, `conflicts`
+
+Adds a dependency on Guile.
+By default this is a library dependency on the appropriate `libguile*.so`, unless overridden by the `build` and/or `run` option.
+The `alias` option configures `BINARY_ALIAS` appropriately (see crossref:makefiles[binary-alias,Use `BINARY_ALIAS`]).
+
+The default version is set by the usual `DEFAULT_VERSIONS` mechanism;
+if the default version is not one of the listed versions, then the latest available listed version is used.
+
+Applications using Guile are normally built for only a single Guile version.
+However, extension or library modules should use the `flavors` option to build with multiple flavors.
+
+For more information see crossref:special[using-guile,Using Guile].
+
[[uses-horde]]
== `horde`
@@ -918,6 +1004,28 @@ Fills in the boilerplate for kernel module ports, currently:
* Handle cross-referencing kernel modules upon installation and deinstallation, using crossref:plist[plist-keywords-kld,`@kld`].
* If the `debug` argument is given, the port can install a debug version of the module into [.filename]#KERN_DEBUGDIR#/[.filename]#KMODDIR#. By default, `KERN_DEBUGDIR` is copied from `DEBUGDIR` and set to [.filename]#/usr/lib/debug#. The framework will take care of creating and removing any required directories.
+[[uses-ldap]]
+== `ldap`
+
+Possible arguments: (none), <version>, client, server
+
+Registers a dependency on package:net/openldap[].
+It uses the specific `<version>` (without the dot notation) if set.
+Otherwise it tries to find the currently installed version.
+If necessary it falls back to the default version found in `bsd.default-versions.mk`.
+`client` specifies a runtime dependency on the client library. This is also the
+default.
+`server` specifies a runtime dependency on the server.
+
+The following variables can be accessed by the port:
+
+`IGNORE_WITH_OPENLDAP`::
+This variable can be defined if the ports does not support one or more versions of OpenLDAP.
+`WITH_OPENLDAP_VER`::
+User defined variable to set OpenLDAP version.
+`OPENLDAP_VER`::
+Detected OpenLDAP version.
+
[[uses-lha]]
== `lha`
@@ -956,7 +1064,7 @@ Some ports do not ship with their own copy of libtool and need a build time depe
Possible arguments: `c6`, `c7`
Ports Linux compatibility framework.
-Specify `c6` to depend on CentOS 6 packags.
+Specify `c6` to depend on CentOS 6 packages.
Specify `c7` to depend on CentOS 7 packages. The available packages are:
* `allegro`
@@ -1032,6 +1140,30 @@ Specify `c7` to depend on CentOS 7 packages. The available packages are:
* `ucl`
* `xorglibs`
+[[uses-llvm]]
+== `llvm`
+
+Possible arguments: (none), `_XY_`, min=`_XY_`, max=`_XY_`, build, run, lib
+
+Adds a dependency on LLVM.
+By default this is a build dependency unless overridden by the `run` or `lib`
+options.
+The default version is the one set in `LLVM_DEFAULT`. A specific version can be
+specified as well. The minimum and maximum versions can be specified with the
+`min` and `max` parameters respectively.
+The ports framework export the following variables to the port:
+
+`LLVM_VERSION`::
+Version chosen from the arguments to llvm.mk
+`LLVM_PORT`::
+Chosen llvm port
+`LLVM_CONFIG`::
+llvm-config of the chosen port
+`LLVM_LIBLLVM`::
+libLLVM.so of the chosen port
+`LLVM_PREFIX`::
+Installation prefix of the chosen port
+
[[uses-localbase]]
== `localbase`
@@ -1051,13 +1183,32 @@ Adds a dependency on Lua.
By default this is a library dependency, unless overridden by the `build` and/or `run` option.
The `env` option prevents the addition of any dependency, while still defining all the usual variables.
-The default version is set by the usual `DEFAULT_VERSIONS` mechanism, unless a version or range of versions is specified as an argument, for example, `51` or `51-53`.
+The default version is set by the usual `DEFAULT_VERSIONS` mechanism, unless a version or range of versions is specified as an argument, for example, `51` or `51-54`.
Applications using Lua are normally built for only a single Lua version.
However, library modules intended to be loaded by Lua code should use the `module` option to build with multiple flavors.
For more information see crossref:special[using-lua,Using Lua].
+[[uses-luajit]]
+== `luajit`
+
+Possible arguments: (none), `_X_`
+
+Adds a dependency on luajit runtime.
+A specific version _X_ can be used. Possible versions are `luajit`, `luajit-devel`, `luajit-openresty`
+
+After including [.filename]#bsd.port.options.mk# or [.filename]#bsd.port.pre.mk# the port can inspect these variables:
+
+`LUAJIT_VER`::
+The selected luajit version
+`LUAJIT_INCDIR`::
+The path to luajit's header files
+`LUAJIT_LUAVER`::
+Which luajit spec version is selected (2.0 for luajit, else 2.1)
+
+For more information see crossref:special[using-lua,Using Lua].
+
[[uses-lxqt]]
== `lxqt`
@@ -1187,7 +1338,10 @@ The helper target, `buildnuget`, will output the content of the `NUGET_DEPENDS`
Possible arguments: (none)
Uses package:x11-toolkits/open-motif[] as a library dependency.
-End users can set `WANT_LESSTIF` for the dependency to be on package:x11-toolkits/lesstif[] instead of package:x11-toolkits/open-motif[].
+End users can set `WANT_LESSTIF` in [.filename]#make.conf# to use
+package:x11-toolkits/lesstif[] as dependency instead of package:x11-toolkits/open-motif[].
+Similarly setting `WANT_OPEN_MOTIF_DEVEL` in [.filename]#make.conf# will add a
+dependency on package:x11-toolkits/open-motif-devel[]
[[uses-ncurses]]
== `ncurses`
@@ -1196,12 +1350,24 @@ Possible arguments: (none), `base`, `port`
Uses ncurses, and causes some useful variables to be set.
+[[uses-nextcloud]]
+== `nextcloud`
+
+Possible arguments: (none)
+
+Adds support for Nextcloud applications by adding a run time dependency on package:www/nextcloud[].
+
[[uses-ninja]]
== `ninja`
-Possible arguments: (none)
+Possible arguments: (none), `build`, `make` (default), `run`
-Uses ninja to build the port.
+If `build` or `run` arguments are specify, it respectively adds a build or run
+time dependency on package:devel/ninja[].
+If `make` or no arguments are provided, use ninja to build the port instead of make.
+`make` implies `build`.
+If the variable `NINJA_DEFAULT` is set to `samurai`, then the dependencies are set
+on package:devel/samurai[] instead.
[[uses-nodejs]]
== `nodejs`
@@ -1209,7 +1375,7 @@ Uses ninja to build the port.
Possible arguments: (none), `build`, `run`, `current`, `lts`, `10`, `14`, `16`,
`17`.
-Uses nodejs. Adds a dependency on package:www/node*[]. If a supported version is
+Uses nodejs. Adds a dependency on package:www/node*[]. If a supported version is
specified then `run` and/or `build` must be specified too.
[[uses-objc]]
@@ -1219,6 +1385,14 @@ Possible arguments: (none)
Add objective C dependencies (compiler, runtime library) if the base system does not support it.
+[[uses-octave]]
+== `octave`
+
+Possible arguments: (none), env
+
+Uses package:math/octave[].
+`env` loads only one `OCTAVE_VERSION` environmental variable.
+
[[uses-openal]]
== `openal`
@@ -1297,7 +1471,7 @@ The available components are:
Possible arguments: (none), `phpize`, `ext`, `zend`, `build`, `cli`, `cgi`, `mod`, `web`, `embed`, `pecl`, `flavors`, `noflavors`
Provide support for PHP.
-Add a runtime dependency on the default PHP version, package:lang/php56[].
+Add a runtime dependency on the default PHP version, package:lang/php81[].
`phpize`::
Use to build a PHP extension.
@@ -1518,7 +1692,7 @@ If Python is only needed at build time, run time or for the tests, it can be set
If Python is also needed during the patch phase, use `patch`.
See crossref:special[using-python, Using Python] for more information.
-`PYTHON_NO_DEPENDS=yes` can be used when the variables exported by the framework are needed but a dependency on Python is not.
+`USES=python:env` can be used when the variables exported by the framework are needed but a dependency on Python is not.
It can happen when using with <<uses-shebangfix,`USES=shebangfix`>>, and the goal is only to fix the shebangs but not add a dependency on Python.
[[uses-qmail]]
@@ -1541,7 +1715,7 @@ Uses QMake for configuring. For more information see crossref:special[using-qmak
[[uses-qt]]
== `qt`
-Possible arguments: `5`, `no_env`
+Possible arguments: `5`, `6`, `no_env`
Add dependency on Qt components.
`no_env` is passed directly to `USES= qmake`.
@@ -1550,9 +1724,9 @@ See crossref:special[using-qt,Using Qt] for more information.
[[uses-qt-dist]]
== `qt-dist`
-Possible arguments: (none) or `5` and (none) or one of `3d`, `activeqt`, `androidextras`, `base`, `canvas3d`, `charts`, `connectivity`, `datavis3d`, `declarative`, `doc`, `gamepad`, `graphicaleffects`, `imageformats`, `location`, `macextras`, `multimedia`, `networkauth`, `purchasing`, `quickcontrols2`, `quickcontrols`, `remoteobjects`, `script`, `scxml`, `sensors`, `serialbus`, `serialport`, `speech`, `svg`, `tools`, `translations`, `virtualkeyboard`, `wayland`, `webchannel`, `webengine`, `websockets`, `webview`, `winextras`, `x11extras`, `xmlpatterns`
+Possible arguments: (none) or `5` and (none) or `6` and (none) or one of `3d`, `5compat`, `base`, `charts`, `connectivity`, `datavis3d`, `declarative`, `doc` `languageserver`, `gamepad`, `graphicaleffects`, `imageformats`, `locat ion`, `lottie`, `multimedia`, `networkauth`, `positioning`, `quick3d`, `quickcontrols2`, `quickcontrols`, `quicktimeline`, `remoteobjects`, `script`, `scxml `, `sensors`, `serialbus`, `serialport`, `shadertools`, `speech`, `svg`, `tools`, `translations`, `virtualkeyboard`, `wayland`, `webchannel`, `webengine`, `webglplugin`, `websockets`, `webview`, `x11extras`, `xmlpatterns`.
-Provides support for building Qt 5 components.
+Provides support for building Qt 5 and Qt 6 components.
It takes care of setting up the appropriate configuration environment for the port to build.
[[qt5-dist-example]]
@@ -1571,6 +1745,23 @@ USES= qt-dist:5
====
+
+[[qt6-dist-example]]
+.Building Qt 6 Components
+[example]
+====
+The port is Qt 6's `websockets` component, which is part of the `websockets` distribution file.
+
+[.programlisting]
+....
+PORTNAME= websockets
+PORTVERSION= ${QT6_VERSION}
+
+USES= qt-dist:6
+....
+
+====
+
If `PORTNAME` does not match the component name, it can be passed as an argument to `qt-dist`.
[[qt5-dist-example-explicit]]
@@ -1597,6 +1788,51 @@ Possible arguments: (none), `port`
Uses readline as a library dependency, and sets `CPPFLAGS` and `LDFLAGS` as necessary.
If the `port` argument is used or if readline is not present in the base system, add a dependency on package:devel/readline[]
+
+[[uses-ruby]]
+== `ruby`
+
+Possible arguments: (none), `build`, `extconf`, `run`, `setup`
+
+Provide support for Ruby related ports.
+`(none)` without arguments adds runtime dependency on package:lang/ruby[].
+`build` adds a dependency on package:lang/ruby[] at build time.
+`extconf` states that the port uses extconf.rb to configure.
+`run` adds a dependency on package:lang/ruby[] at run time. This is also the default.
+`setup` states that the port uses setup.rb to configure and build.
+
+The user may have the following variables defined:
+
+`RUBY_VER`::
+Alternative short version of ruby in the form of `x.y'.
+
+`RUBY_DEFAULT_VER`::
+Set to (e.g.) `2.7` to use `ruby27` as the default version.
+
+`RUBY_ARCH`::
+Set the architecture name (e.g. i386-freebsd7).
+
+The following variables are exported to be used by the port:
+
+`RUBY`::
+Set to full path of ruby.
+If set, the values of the following variables are automatically obtained from
+the ruby executable: `RUBY_ARCH`, `RUBY_ARCHLIBDIR`, `RUBY_LIBDIR`,
+`RUBY_SITEARCHLIBDIR`, `RUBY_SITELIBDIR`, `RUBY_VER` and `RUBY_VERSION`
+
+`RUBY_VER`::
+Set to the alternative short version of ruby in the form of `x.y'.
+
+`RUBY_EXTCONF`::
+Set to the alternative name of extconf.rb (default: extconf.rb).
+
+`RUBY_EXTCONF_SUBDIRS`::
+Set to list of subdirectories, if multiple modules are included.
+
+`RUBY_SETUP`::
+Set to the alternative name of setup.rb (default: setup.rb).
+
+
[[uses-samba]]
== `samba`
@@ -1693,7 +1929,7 @@ Correct paths for supported interpreters are available in `_interp__CMD`.
[TIP]
====
-When used with <<uses-python,`USES=python`>>, and the aim is only to fix the shebangs but a dependency on Python itself is not wanted, use `PYTHON_NO_DEPENDS=yes`.
+When used with <<uses-python,`USES=python`>>, and the aim is only to fix the shebangs but a dependency on Python itself is not wanted, use `USES=python:env` instead.
====
[[uses-shebangfix-ex-lua]]
@@ -1835,9 +2071,11 @@ BROKEN_SSL_REASON_libressl= needs features only available in OpenSSL
[[uses-tar]]
== `tar`
-Possible arguments: (none), `Z`, `bz2`, `bzip2`, `lzma`, `tbz`, `tbz2`, `tgz`, `txz`, `xz`
+Possible arguments: (none), `Z`, `bz2`, `bzip2`, `lzma`, `tbz`, `tbz2`, `tgz`,
+`txz`, `xz`, `zst`, `zstd`
-Set `EXTRACT_SUFX` to `.tar`, `.tar.Z`, `.tar.bz2`, `.tar.bz2`, `.tar.lzma`, `.tbz`, `.tbz2`, `.tgz`, `.txz` or `.tar.xz` respectively.
+Set `EXTRACT_SUFX` to `.tar`, `.tar.Z`, `.tar.bz2`, `.tar.bz2`, `.tar.lzma`,
+`.tbz`, `.tbz2`, `.tgz`, `.txz`, `.tar.xz`, `.tar.zst` or `.tar.zstd` respectively.
[[uses-tcl]]
== `tcl`
@@ -1868,6 +2106,53 @@ Possible arguments: (none)
Adds crossref:plist[plist-keywords-terminfo,`@terminfo`] to the [.filename]#plist#.
Use when the port installs [.filename]#*.terminfo# files in [.filename]#${PREFIX}/share/misc#.
+[[uses-tex]]
+== `tex`
+
+Possible arguments: (none)
+
+Provide support for tex.
+Loads all the default variables for TEX related ports and does not add any dependency on any ports.
+
+Variables are used to specify which TEX modules are required.
+
+`USE_TEX`::
+The list of required TEX extensions at run-time.
+Add `:build` to the extension name to add a build-time dependency, `:run` to add runtime dependency, `:test` for test time dependency, `:extract` for extract time dependency.
+Example: `base texmf:build source:run`
+
+Current possible arguments are as follows:
+
+* `base`
+* `texmf`
+* `source`
+* `docs`
+* `web2c`
+* `kpathsea`
+* `ptexenc`
+* `basic`
+* `tlmgr`
+* `texlua`
+* `texluajit`
+* `synctex`
+* `xpdfopen`
+* `dvipsk`
+* `dvipdfmx`
+* `xdvik`
+* `gbklatex`
+* `formats`
+* `tex`
+* `latex`
+* `pdftex`
+* `jadetex`
+* `luatex`
+* `ptex`
+* `xetex`
+* `xmltex`
+* `texhash`
+* `updmap`
+* `fmtutil`
+
[[uses-tk]]
== `tk`
@@ -1898,6 +2183,14 @@ These variables are available for ports:
* `UNIQUE_SUFFIX`: The suffix to be used for files. Default: `${PKGNAMESUFFIX}`.
* `UNIQUE_SUFFIX_FILES`: A list of files that need to be suffixed. Default: empty.
+[[uses-vala]]
+== `vala`
+
+Possible arguments: `build`, `lib`, `no_depend`
+
+Adds build or library dependencies on package:lang/vala[].
+The `no_depend` argument is reserved for package:lang/vala[] itself.
+
[[uses-varnish]]
== `varnish`