USES= bison perl
第 17 章 使用 USES 宏
目录
17.1. USES
简介
USES
宏可以轻松声明端口的要求和设置。它们可以通过选择简单的预设值来添加依赖项、更改构建行为、向软件包添加元数据等等。
本章的每个部分都描述了 USES
的一个可能值,以及其可能的参数。参数在值后面以冒号 (:
) 附加。多个参数用逗号 (,
) 分隔。
USES= tar:xz
USES= drupal:7,theme
USES= pgsql:9.3+ cpe python:2.7,build
17.2. 7z
可能的参数:(无),p7zip
,partial
使用 7z(1) 而不是 bsdtar(1) 进行解压,并设置 EXTRACT_SUFX=.7z
。如果基础系统中的 7z 无法解压文件,则 p7zip
选项会强制依赖于 archivers/p7zip 中的 7z
。如果使用了 partial
选项,则不会更改 EXTRACT_SUFX
,如果主发行版文件没有 .7z 扩展名,则可以使用此选项。
17.4. autoreconf
可能的参数:(无),build
运行 autoreconf
。它封装了 aclocal
、autoconf
、autoheader
、automake
、autopoint
和 libtoolize
命令。每个命令都应用于 ${AUTORECONF_WRKSRC}/configure.ac 或其旧名称 ${AUTORECONF_WRKSRC}/configure.in。如果 configure.ac 使用 AC_CONFIG_SUBDIRS
定义了带有其自身 configure.ac 的子目录,则 autoreconf
也会递归更新这些子目录。:build
参数仅向这些工具添加构建时依赖项,但不会运行 autoreconf
。如果 WRKSRC
不包含 configure.ac 的路径,则端口可以设置 AUTORECONF_WRKSRC
。
17.6. bdb
可能的参数:(无),48
,5
(默认),6
添加对 Berkeley DB 库的依赖项。默认为 databases/db5。当使用 :48
参数时,它也可以依赖于 databases/db48,或者使用 :6
依赖于 databases/db6。可以声明一系列可接受的值,:48+
查找安装的最高版本,如果未安装其他版本,则回退到 4.8。INVALID_BDB_VER
可用于指定与此端口不兼容的版本。框架向端口公开了以下变量
BDB_LIB_NAME
Berkeley DB 库的名称。例如,当使用 databases/db5 时,它包含
db-5.3
。BDB_LIB_CXX_NAME
Berkeley DBC++ 库的名称。例如,当使用 databases/db5 时,它包含
db_cxx-5.3
。BDB_INCLUDE_DIR
Berkeley DB 包含目录的位置。例如,当使用 databases/db5 时,它将包含
${LOCALBASE}/include/db5
。BDB_LIB_DIR
Berkeley DB 库目录的位置。例如,当使用 databases/db5 时,它包含
${LOCALBASE}/lib
。BDB_VER
检测到的 Berkeley DB 版本。例如,如果使用
USES=bdb:48+
并且安装了 Berkeley DB 5,则它包含5
。
databases/db48 已弃用且不受支持。任何端口都不得使用它。 |
17.7. bison
可能的参数:(无),build
,run
,both
使用 devel/bison。默认情况下,如果没有参数或使用 build
参数,则表示 bison
是构建时依赖项,run
表示运行时依赖项,both
表示运行时和构建时依赖项。
17.8. budgie
可能的参数:(无)
提供对 Budgie 桌面环境的支持。使用 USE_BUDGIE
选择端口所需的组件。有关更多信息,请参阅 使用 Budgie。
17.9. cabal
不应为 Haskell 库创建端口,有关更多信息,请参阅 Haskell 库。 |
可能的参数:(无),hpack
,nodefault
设置用于使用 Cabal 构建 Haskell 软件的默认值和目标。添加了对 Haskell 编译器端口 (lang/ghc) 的构建时依赖项。如果 BUILD_DEPENDS
变量中已列出其他版本的 GHC(例如,lang/ghc810),则将使用该版本。如果给出了 hpack
参数,则会添加对 devel/hs-hpack 的构建时依赖项,并在配置步骤中调用 hpack
以生成 .cabal 文件。如果给出了 nodefault
参数,则框架将不会尝试从 Hackage 中提取主发行版文件。如果存在 USE_GITHUB
或 USE_GITLAB
,则会隐式添加此参数。
框架提供了以下变量
CABAL_REVISION
托管在 Hackage 上的 Haskell 软件包可能具有修订版。将此旋钮设置为整数以提取修订后的软件包描述。
USE_CABAL
如果软件使用 Haskell 依赖项,请在此变量中列出它们。每个项目都应该存在于 Hackage 上,并以
packagename-0.1.2
的形式列出。依赖项也可以具有修订版,这些修订版在_
符号之后指定。支持自动生成依赖项列表,请参阅 使用cabal
构建 Haskell 应用程序。CABAL_FLAGS
在配置和构建阶段传递给
cabal-install
的标志列表。这些标志将逐字传递。此变量通常用于启用或禁用 .cabal 文件中声明的标志。传递foo
以启用foo
标志,传递-foo
以禁用它。CABAL_EXECUTABLES
端口安装的可执行文件列表。默认值:
${PORTNAME}
。查阅正在移植的项目的 .cabal 文件以获取此变量的可能值列表。每个值对应于 .cabal 文件中的一个executable
节。此列表中的项目会自动添加到 pkg-plist。SKIP_CABAL_PLIST
如果已定义,则不将
${CABAL_EXECUTABLES}
中的项目添加到 pkg-plist。opt_USE_CABAL
根据
opt
选项向${USE_CABAL}
添加项目。opt_CABAL_EXECUTABLES
根据
opt
选项向${CABAL_EXECUTABLES}
添加项目。opt_CABAL_FLAGS
如果启用了
opt
,则将该值追加到${CABAL_FLAGS}
。否则,追加-value
以禁用该标志。请注意,此行为与普通的CABAL_FLAGS
略有不同,因为它不接受以-
开头的值。CABAL_WRAPPER_SCRIPTS
${CABAL_EXECUTABLES}
的一个子集,包含要包装到 shell 脚本中的 Haskell 程序,该脚本在运行程序之前设置*_datadir
环境变量。这也导致实际的 Haskell 二进制文件安装在libexec/cabal/
目录下。对于在share/
目录下安装其数据文件的 Haskell 程序,需要此旋钮。FOO_DATADIR_VARS
其他 Haskell 软件包列表,其数据文件应可由名为
FOO
的可执行文件访问。可执行文件应是${CABAL_WRAPPER_SCRIPTS}
的一部分。此处列出的 Haskell 软件包不应具有版本后缀。CABAL_PROJECT
一些 Haskell 项目可能已经具有
cabal.project
文件,该文件也由端口框架生成。如果是这种情况,请使用此变量指定如何处理原始cabal.project
。将此变量设置为remove
将导致删除原始文件。将此变量设置为append
将在
extract
阶段将原始文件移动到cabal.project.${PORTNAME}
。在
patch
阶段之后将原始cabal.project.${PORTNAME}
和生成的cabal.project
合并到一个文件中。使用append
可以对原始文件进行修补,然后再将其合并。
17.10. cargo
可能的参数:(无)
使用 Cargo 进行配置、构建和测试。它可用于移植使用 Cargo 构建系统的 Rust 应用程序。有关更多信息,请参阅 使用 cargo
构建 Rust 应用程序。
17.11. charsetfix
可能的参数:(无)
防止端口安装 charset.alias。这只能由 converters/libiconv 安装。如果 charset.alias 不是由 ${WRKSRC}/Makefile.in 安装的,则可以将 CHARSETFIX_MAKEFILEIN
设置为相对于 WRKSRC
的路径。
17.12. cmake
可能的参数:(无),insource
,noninja
,run
,testing
使用 CMake 配置端口并生成构建系统。
默认情况下,执行源外构建,使 WRKSRC
中的源代码免受构建工件的影响。使用 insource
参数,将改为执行源内构建。此参数应为例外情况,仅在常规源外构建不起作用时使用。
默认情况下,Ninja (devel/ninja) 用于构建。在某些情况下,这无法正常工作。使用 noninja
参数,构建将使用常规的 make
进行构建。仅当基于 Ninja 的构建不起作用时,才应使用此参数。
使用 run
参数,除了构建时依赖项之外,还会注册运行时依赖项。
使用 testing
参数,将添加一个使用 CTest 的测试目标。运行测试时,端口将重新配置以进行测试并重新构建。
有关更多信息,请参阅 使用 cmake
。
17.13. compiler
可能的参数:(无),env
(默认,隐式),C++17-lang
,C++14-lang
,C++11-lang
,gcc-C++11-lib
,C++11-lib
,C++0x
,c11
,nestedfct
,features
根据任何给定的愿望确定要使用的编译器。如果端口需要支持 C++17 的编译器,则使用 C++17-lang
;如果端口需要支持 C++14 的编译器,则使用 C++14-lang
;如果端口需要支持 C++11 的编译器,则使用 C++11-lang
;如果端口需要带有 C++11 库的 g++
编译器,则使用 gcc-C++11-lib
;如果端口需要支持 C++11 的标准库,则使用 C++11-lib
。如果端口需要理解 C++0X、C11 或嵌套函数的编译器,则应使用相应的参数。
使用 features
请求默认编译器支持的功能列表。包含 bsd.port.pre.mk 后,端口可以使用以下变量检查结果
COMPILER_TYPE
:系统上的默认编译器,gcc 或 clangALT_COMPILER_TYPE
:系统上的备用编译器,gcc 或 clang。仅当基础系统中存在两个编译器时才设置。COMPILER_VERSION
:默认编译器的版本的前两位数字。ALT_COMPILER_VERSION
:备用编译器的版本的前两位数字(如果存在)。CHOSEN_COMPILER_TYPE
:选择的编译器,要么是 gcc 要么是 clang。COMPILER_FEATURES
:默认编译器支持的功能。目前列出了 C++ 库。
17.14. cpe
可能的参数:(无)
在软件包清单中包含通用平台枚举 (CPE) 信息,格式为 CPE 2.3 格式的字符串。有关详细信息,请参阅CPE 规范。要向端口添加 CPE 信息,请按照以下步骤操作
使用 NVD 的CPE 搜索引擎或官方 CPE 词典(警告,非常大的 XML 文件)搜索软件产品的官方 CPE 条目。切勿捏造 CPE 数据。
将
cpe
添加到USES
中,并将make -V CPE_STR
的结果与 CPE 词典条目进行比较。一次执行一步,直到make -V CPE_STR
正确。如果产品名称(第二字段,默认为
PORTNAME
)不正确,请定义CPE_PRODUCT
。如果供应商名称(第一字段,默认为
CPE_PRODUCT
)不正确,请定义CPE_VENDOR
。如果版本字段(第三字段,默认为
PORTVERSION
)不正确,请定义CPE_VERSION
。如果更新字段(第四字段,默认为空)不正确,请定义
CPE_UPDATE
。如果仍然不正确,请查看Mk/Uses/cpe.mk以获取更多详细信息,或联系端口安全团队 <[email protected]>。
尽可能从现有变量(如
PORTNAME
和PORTVERSION
)中派生 CPE 名称。使用变量修饰符从这些变量中提取相关部分,而不是硬编码名称。始终运行
make -V CPE_STR
并检查输出,然后再提交任何更改PORTNAME
或PORTVERSION
或任何其他用于派生CPE_STR
的变量的操作。
17.15. cran
可能的参数:(无)、auto-plist
、compiles
使用综合 R 档案网络。指定auto-plist
来自动生成pkg-plist。如果端口具有需要编译的代码,请指定compiles
。
17.16. desktop-file-utils
可能的参数:(无)
使用来自devel/desktop-file-utils的 update-desktop-database。将运行一个额外的安装后步骤,而不会干扰端口Makefile中已有的任何安装后步骤。一行带有@desktop-file-utils
将添加到 plist 中。仅当端口提供包含MimeType
条目的.desktop
文件时,才使用此宏。
17.18. display
可能的参数:(无)、ARGS
设置虚拟显示环境。如果环境变量DISPLAY
未设置,则 Xvfb 将作为构建依赖项添加,并且CONFIGURE_ENV
将扩展为当前正在运行的 Xvfb 实例的端口号。ARGS参数默认为install
,并控制围绕其启动和停止虚拟显示的阶段。
17.19. dos2unix
可能的参数:(无)
该端口具有行尾为 DOS 格式的文件,需要进行转换。可以设置多个变量来控制将转换哪些文件。默认情况下,将转换所有文件,包括二进制文件。有关示例,请参阅简单的自动替换。
DOS2UNIX_REGEX
:根据正则表达式匹配文件名。DOS2UNIX_FILES
:匹配文字文件名。DOS2UNIX_GLOB
:根据通配符模式匹配文件名。DOS2UNIX_WRKSRC
:开始转换的目录。默认为${WRKSRC}
。
17.20. drupal
可能的参数:7
、module
、theme
自动安装作为 Drupal 主题或模块的端口。与端口期望的 Drupal 版本一起使用。例如,USES=drupal:7,module
表示此端口创建了一个 Drupal 7 模块。可以使用USES=drupal:7,theme
指定 Drupal 7 主题。
17.21. ebur128
可能的参数:(无)、build
、lib
、run
、test
添加对audio/ebur128的依赖。它允许通过在make.conf中使用DEFAULT_VERSIONS
来透明地依赖于rust
或legacy
变体。例如,要使用旧版本,请使用DEFAULT_VERSIONS+=ebur128=legacy
当未使用任何参数时,行为与提供lib
参数时相同。其余参数提供相应的依赖项类别。
17.22. eigen
可能的参数:2、3、build(默认)、run
添加对math/eigen的依赖。
17.23. elfctl
可能的参数:(无)
通过设置 ELF_FEATURES 更改 ELF 二进制文件的特征控制注释。
USES= elfctl ELF_FEATURES= featurelist:path/to/file1 \ featurelist:path/to/file1 \ featurelist:path/to/file2
featurelist
的格式在elfctl(1)中描述。文件路径相对于${BUILD_WRKSRC}。
17.24. erlang
可能的参数:(无)、enc
、rebar
、rebar3
添加对lang/erlang的构建和运行时依赖。根据参数的不同,它会添加其他构建依赖项。enc
添加对devel/erlang-native-compiler的依赖,rebar
添加对devel/rebar的依赖,而rebar3
添加对devel/rebar3的依赖。
此外,以下变量可用于端口
ERL_APP_NAME
:安装在 Erlang 的 lib 目录中的 Erlang 应用名称(不含版本)ERL_APP_ROOT
:此 Erlang 应用的根目录REBAR_CMD
:“rebar”命令的路径REBAR3_CMD
:“rebar3”命令的路径REBAR_PROFILE
:Rebar 配置文件REBAR_TARGETS
:Rebar 目标列表(通常为编译,也可能是 escriptize)ERL_BUILD_NAME
:rebar3 的构建名称ERL_BUILD_DEPS
:以类别/端口名称格式列出的 BUILD_DEPENDSERL_RUN_DEPS
:以类别/端口名称格式列出的 RUN_DEPENDSERL_DOCS
:文档文件和目录的列表
17.25. fakeroot
可能的参数:(无)
更改构建系统的一些默认行为,以允许作为用户安装。有关fakeroot
的更多信息,请参阅https://wiki.debian.org/FakeRoot。
17.26. fam
可能的参数:(无)、fam
、gamin
使用文件更改监视器作为库依赖项,无论是devel/fam还是devel/gamin。最终用户可以设置 WITH_FAM_SYSTEM 来指定他们的偏好。
17.28. fonts
可能的参数:(无)、fc
、fontsdir
(默认)、none
添加对注册字体所需的工具的运行时依赖。根据参数的不同,添加@fc` ${FONTSDIR}` 行、
@fontsdir` ${FONTSDIR}` 行,或者如果参数为
none
则不添加任何行,到 plist 中。FONTSDIR
默认为${PREFIX}/share/fonts/${FONTNAME},而FONTNAME
默认为${PORTNAME}
。将FONTSDIR
添加到PLIST_SUB
和SUB_LIST
17.32. gettext
可能的参数:(无)
已弃用。将同时包含gettext-runtime
和gettext-tools
。
17.33. gettext-runtime
可能的参数:(无)、lib
(默认)、build
、run
使用devel/gettext-runtime。默认情况下,在没有参数或使用lib
参数时,意味着对libintl.so的库依赖。build
和run
分别意味着对gettext的构建时和运行时依赖。
17.34. gettext-tools
可能的参数:(无)、build
(默认)、run
使用devel/gettext-tools。默认情况下,在没有参数或使用build
参数时,将注册对msgfmt的构建时依赖。使用run
参数时,将注册运行时依赖。
17.35. ghostscript
可能的参数:X、build
、run
、nox11
可以使用特定的版本X。可能的版本为7
、8
、9
和agpl
(默认)。nox11
表示需要端口的-nox11
版本。build
和run
分别添加对 Ghostscript 的构建时和运行时依赖。默认情况下,同时存在构建时和运行时依赖。
17.36. gl
可能的参数:(无)
提供了一种依赖于 GL 组件的简单方法。组件应列在USE_GL
中。可用的组件为
egl
添加对来自graphics/libglvnd的libEGL.so的库依赖
gbm
添加对来自graphics/mesa-libs的libgbm.so的库依赖
gl
添加对来自graphics/libglvnd的libGL.so的库依赖
glesv2
添加对来自graphics/libglvnd的libGLESv2.so的库依赖
glew
添加对来自graphics/glew的libGLEW.so的库依赖
glu
添加对来自graphics/libGLU的libGLU.so的库依赖
glut
添加对来自graphics/freeglut的libglut.so的库依赖
opengl
添加对来自graphics/libglvnd的libOpenGL.so的库依赖
17.37. gmake
可能的参数:(无)
使用devel/gmake作为构建时依赖项,并设置环境以使用gmake
作为构建的默认make
。
17.38. gnome
可能的参数:(无)
提供了一种简单的方法来依赖 GNOME 组件。这些组件应该列在 USE_GNOME
中。可用的组件包括:
atk
atkmm
cairo
cairomm
dconf
esound
evolutiondataserver3
gconf2
gconfmm26
gdkpixbuf
gdkpixbuf2
glib12
glib20
glibmm
gnomecontrolcenter3
gnomedesktop3
gnomedocutils
gnomemenus3
gnomemimedata
gnomeprefix
gnomesharp20
gnomevfs2
gsound
gtk-update-icon-cache
gtk12
gtk20
gtk30
gtkhtml3
gtkhtml4
gtkmm20
gtkmm24
gtkmm30
gtksharp20
gtksourceview
gtksourceview2
gtksourceview3
gtksourceviewmm3
gvfs
intlhack
intltool
introspection
libartlgpl2
libbonobo
libbonoboui
libgda5
libgda5-ui
libgdamm5
libglade2
libgnome
libgnomecanvas
libgnomekbd
libgnomeprint
libgnomeprintui
libgnomeui
libgsf
libgtkhtml
libgtksourceviewmm
libidl
librsvg2
libsigc++12
libsigc++20
libwnck
libwnck3
libxml++26
libxml2
libxslt
metacity
nautilus3
orbit2
pango
pangomm
pangox-compat
py3gobject3
pygnome2
pygobject
pygobject3
pygtk2
pygtksourceview
referencehack
vte
vte3
默认依赖项是构建时和运行时,可以通过 :build
或 :run
进行更改。例如:
USES= gnome USE_GNOME= gnomemenus3:build intlhack
更多信息请参见 使用 GNOME。
17.39. go
不应为 Go 库创建端口,更多信息请参见 Go 库。 |
可能的参数: (无),N.NN
,N.NN-devel
,modules
,no_targets
,run
设置用于构建 Go 软件的默认值和目标。添加了对 Go 编译器端口的构建时依赖项,端口维护者可以设置所需版本。默认情况下,构建在 GOPATH 模式下执行。如果 Go 软件使用模块,则可以通过 modules
参数切换到模块感知模式。no_targets
将设置构建环境(如 GO_ENV
、GO_BUILDFLAGS
),但跳过创建提取和构建目标。run
还将添加对 Go 编译器端口的运行时依赖项。
构建过程由几个变量控制
GO_MODULE
应用程序模块的名称,由
go.mod
中的module
指令指定。在大多数情况下,这是使用 Go 模块的端口唯一需要的变量。GO_PKGNAME
在 GOPATH 模式下构建时的 Go 包的名称。这将在
${GOPATH}/src
中创建的目录。如果未显式设置且存在GH_SUBDIR
或GL_SUBDIR
,则将从GH_SUBDIR
或GL_SUBDIR
推断GO_PKGNAME
。在模块感知模式下不需要。GO_TARGET
要构建的包。默认值为
${GO_PKGNAME}
。GO_TARGET
也可以是package:path
形式的元组,其中 path 可以是简单的文件名或以${PREFIX}
开头的完整路径。GO_TESTTARGET
要测试的包。默认值为
./…
(当前包和所有子包)。CGO_CFLAGS
要由
go
传递给 C 编译器的其他CFLAGS
值。CGO_LDFLAGS
要由
go
传递给 C 编译器的其他LDFLAGS
值。GO_BUILDFLAGS
要传递给
go build
的其他构建参数。GO_TESTFLAGS
要传递给
go test
的其他构建参数。
有关用法示例,请参见 构建 Go 应用程序。
17.40. gperf
可能的参数:(无)
如果基本系统中不存在 gperf
,则添加对 devel/gperf 的构建时依赖项。
17.41. grantlee
可能的参数:5
,selfbuild
处理对 Grantlee 的依赖关系。指定 5
以依赖于基于 Qt5 的版本,devel/grantlee5。selfbuild
由 devel/grantlee5 内部使用以获取其版本号。
17.42. groff
可能的参数:build
,run
,both
如果基本系统中不存在,则注册对 textproc/groff 的依赖关系。
17.43. gssapi
可能的参数: (无),base
(默认),heimdal
,mit
,flags
,bootstrap
处理 GSS-API 的使用者所需的依赖项。仅提供 Kerberos 机制的库可用。默认情况下,或设置为 base
,将使用基本系统中的 GSS-API 库。也可以设置为 heimdal
以使用 security/heimdal,或设置为 mit
以使用 security/krb5。
当本地 Kerberos 安装不在 LOCALBASE
中时,请将 HEIMDAL_HOME
(对于 heimdal
)或 KRB5_HOME
(对于 krb5
)设置为 Kerberos 安装的位置。
这些变量导出供端口使用
GSSAPIBASEDIR
GSSAPICPPFLAGS
GSSAPIINCDIR
GSSAPILDFLAGS
GSSAPILIBDIR
GSSAPILIBS
GSSAPI_CONFIGURE_ARGS
flags
选项可以与 base
、heimdal
或 mit
一起使用,以自动将 GSSAPICPPFLAGS
、GSSAPILDFLAGS
和 GSSAPILIBS
分别添加到 CFLAGS
、LDFLAGS
和 LDADD
中。例如,使用 base,flags
。
bootstrap
选项是一个特殊的前缀,仅供 security/krb5 和 security/heimdal 使用。例如,使用 bootstrap,mit
。
OPTIONS_SINGLE= GSSAPI OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE GSSAPI_BASE_USES= gssapi GSSAPI_BASE_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_HEIMDAL_USES= gssapi:heimdal GSSAPI_HEIMDAL_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_MIT_USES= gssapi:mit GSSAPI_MIT_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_NONE_CONFIGURE_ON= --without-gssapi
17.44. gstreamer
可能的参数:(无)
提供了一种简单的方法来依赖 GStreamer 组件。这些组件应该列在 USE_GSTREAMER
中。可用的组件包括:
a52dec
aalib
amrnb
amrwbdec
aom
assrender
bad
bs2b
cairo
cdio
cdparanoia
chromaprint
curl
dash
dtls
dts
dv
dvd
dvdread
editing-services
faac
faad
flac
flite
gdkpixbuf
gl
gme
gnonlin
good
gsm
gtk4
gtk
hal
hls
jack
jpeg
kate
kms
ladspa
lame
libav
libcaca
libde265
libmms
libvisual
lv2
mm
modplug
mpeg2dec
mpeg2enc
mpg123
mplex
musepack
neon
ogg
opencv
openexr
openh264
openjpeg
openmpt
opus
pango
png
pulse
qt
resindvd
rsvg
rtmp
shout2
sidplay
smoothstreaming
sndfile
sndio
soundtouch
soup
spandsp
speex
srtp
taglib
theora
ttml
twolame
ugly
v4l2
vorbis
vpx
vulkan
wavpack
webp
webrtcdsp
x264
x265
x
ximagesrc
zbar
17.45. guile
可能的参数: (无),X.Y
,flavors
,build
,run
,alias
,conflicts
添加对 Guile 的依赖关系。默认情况下,这是一个对相应 libguile*.so
的库依赖关系,除非被 build
和/或 run
选项覆盖。alias
选项适当地配置 BINARY_ALIAS
(参见 使用 BINARY_ALIAS
)。
默认版本由通常的 DEFAULT_VERSIONS
机制设置;如果默认版本不是列出的版本之一,则使用最新的可用列出版本。
使用 Guile 的应用程序通常仅针对单个 Guile 版本构建。但是,扩展或库模块应使用 flavors
选项与多个版本一起构建。
更多信息请参见 使用 Guile。
17.46. horde
可能的参数:(无)
添加对 devel/pear-channel-horde 的构建时和运行时依赖关系。其他 Horde 依赖项可以通过 USE_HORDE_BUILD
和 USE_HORDE_RUN
添加。更多信息请参见 Horde 模块。
17.47. iconv
可能的参数: (无),lib
,build
,patch
,translit
,wchar_t
使用 iconv
函数,可以作为构建时和运行时依赖项来自端口 converters/libiconv,也可以来自基本系统。默认情况下,无参数或使用 lib
参数表示 iconv
具有构建时和运行时依赖项。build
表示构建时依赖项,patch
表示修补时依赖项。如果端口使用 WCHAR_T
或 //TRANSLIT
iconv 扩展,请添加相关参数以使用正确的 iconv。更多信息请参见 使用 iconv
。
17.48. imake
可能的参数: (无),env
,notall
,noman
添加 devel/imake 作为构建时依赖项,并在 configure
阶段运行 xmkmf -a
。如果给定 env
参数,则不设置 configure
目标。如果 -a
标志对端口有影响,请添加 notall
参数。如果 xmkmf
未生成 install.man
目标,请添加 noman
参数。
17.49. kde
可能的参数:5
添加对 KDE 组件的依赖关系。更多信息请参见 使用 KDE。
17.50. kmod
可能的参数: (无),debug
填写内核模块端口的样板,目前
将
kld
添加到CATEGORIES
中。设置
SSP_UNSAFE
。如果在
SRC_BASE
中找不到内核源代码,则设置IGNORE
。默认情况下,将
KMODDIR
定义为/boot/modules,将其添加到PLIST_SUB
和MAKE_ENV
中,并在安装时创建它。如果KMODDIR
设置为/boot/kernel,它将被重写为/boot/modules。这可以防止在升级内核时破坏软件包,因为在此过程中/boot/kernel会被重命名为/boot/kernel.old。在安装和卸载时处理内核模块的交叉引用,使用
@kld
。如果给出了
debug
参数,则端口可以将模块的调试版本安装到KERN_DEBUGDIR/KMODDIR中。默认情况下,KERN_DEBUGDIR
从DEBUGDIR
复制,并设置为/usr/lib/debug。框架将负责创建和删除任何所需的目录。
17.51. ldap
可能的参数:(无),<版本>,client,server
注册对net/openldap的依赖关系。如果设置了,它使用特定的<version>
(没有点符号)。否则,它会尝试查找当前安装的版本。如有必要,它将回退到bsd.default-versions.mk
中找到的默认版本。client
指定对客户端库的运行时依赖关系。这也是默认值。server
指定对服务器的运行时依赖关系。
以下变量可供端口访问
IGNORE_WITH_OPENLDAP
如果端口不支持一个或多个版本的OpenLDAP,则可以定义此变量。
WITH_OPENLDAP_VER
用户定义的变量,用于设置OpenLDAP版本。
OPENLDAP_VER
检测到的OpenLDAP版本。
17.53. libarchive
可能的参数:(无)
注册对archivers/libarchive的依赖关系。任何依赖于libarchive的端口都必须包含USES=libarchive
。
17.54. libedit
可能的参数:(无)
注册对devel/libedit的依赖关系。任何依赖于libedit的端口都必须包含USES=libedit
。
17.55. libtool
可能的参数:(无),keepla
,build
修补libtool
脚本。这必须添加到所有使用libtool
的端口中。keepla
参数可用于保留.la文件。某些端口不附带自己的libtool副本,并且需要对devel/libtool的构建时依赖关系,使用:build
参数添加此类依赖关系。
17.56. linux
可能的参数:c6
,c7
端口Linux兼容性框架。指定c6
以依赖于CentOS 6软件包。指定c7
以依赖于CentOS 7软件包。可用的软件包是
allegro
alsa-plugins-oss
alsa-plugins-pulseaudio
alsalib
atk
avahi-libs
base
cairo
cups-libs
curl
cyrus-sasl2
dbusglib
dbuslibs
devtools
dri
expat
flac
fontconfig
gdkpixbuf2
gnutls
graphite2
gtk2
harfbuzz
jasper
jbigkit
jpeg
libasyncns
libaudiofile
libelf
libgcrypt
libgfortran
libgpg-error
libmng
libogg
libpciaccess
libsndfile
libsoup
libssh2
libtasn1
libthai
libtheora
libv4l
libvorbis
libxml2
mikmod
naslibs
ncurses-base
nspr
nss
openal
openal-soft
openldap
openmotif
openssl
pango
pixman
png
pulseaudio-libs
qt
qt-x11
qtwebkit
scimlibs
sdl12
sdlimage
sdlmixer
sqlite3
tcl85
tcp_wrappers-libs
tiff
tk85
ucl
xorglibs
17.57. llvm
可能的参数:(无),XY
,min=XY
,max=XY
,build,run,lib
添加对LLVM的依赖关系。默认情况下,这是构建时依赖关系,除非被run
或lib
选项覆盖。默认版本是在LLVM_DEFAULT
中设置的。也可以指定特定版本。最小和最大版本可以通过min
和max
参数分别指定。端口框架将以下变量导出到端口
LLVM_VERSION
从llvm.mk的参数中选择的版本
LLVM_PORT
选择的llvm端口
LLVM_CONFIG
所选端口的llvm-config
LLVM_LIBLLVM
所选端口的libLLVM.so
LLVM_PREFIX
所选端口的安装前缀
17.58. localbase
可能的参数:(无),ldflags
确保使用LOCALBASE
中依赖项的库,而不是基础系统中的库。指定ldflags
以将-L${LOCALBASE}/lib
添加到LDFLAGS
而不是LIBS
。依赖于基础系统中也存在的库的端口应该使用此功能。它也由其他一些USES
内部使用。
17.59. lua
可能的参数:(无),XY
,XY+
,-XY
,XY-ZA
,module
,flavors
,build
,run
,env
添加对Lua的依赖关系。默认情况下,这是库依赖关系,除非被build
和/或run
选项覆盖。env
选项阻止添加任何依赖关系,同时仍然定义所有常用的变量。
默认版本由通常的DEFAULT_VERSIONS
机制设置,除非指定了版本或版本范围作为参数,例如,51
或51-54
。
使用Lua的应用程序通常仅针对单个Lua版本构建。但是,旨在由Lua代码加载的库模块应使用module
选项与多个风格一起构建。
有关更多信息,请参阅使用Lua。
17.60. luajit
可能的参数:(无),X
添加对luajit运行时的依赖关系。可以使用特定版本X。可能的版本是luajit
,luajit-devel
,luajit-openresty
在包含bsd.port.options.mk或bsd.port.pre.mk之后,端口可以检查这些变量
LUAJIT_VER
选定的luajit版本
LUAJIT_INCDIR
luajit头文件的路径
LUAJIT_LUAVER
选择了哪个luajit规范版本(luajit为2.0,否则为2.1)
有关更多信息,请参阅使用Lua。
17.61. lxqt
可能的参数:(无)
处理LXQt桌面环境的依赖关系。使用USE_LXQT
选择端口所需的组件。有关更多信息,请参阅使用LXQt。
17.62. magick
可能的参数:(无),X
,build
,nox11
,run
,test
添加对ImageMagick
的库依赖关系。可以使用特定版本X。可能的版本是6
和7
(默认值)。nox11
表示需要端口的-nox11
版本。build
、run
和test
添加对ImageMagick的构建时、运行时和测试时依赖关系。
17.65. mate
可能的参数:(无)
提供了一种简单的方法来依赖MATE组件。组件应列在USE_MATE
中。可用的组件是
autogen
caja
common
controlcenter
desktop
dialogs
docutils
icontheme
intlhack
intltool
libmatekbd
libmateweather
marco
menus
notificationdaemon
panel
pluma
polkit
session
settingsdaemon
默认依赖项是构建时和运行时,可以通过 :build
或 :run
进行更改。例如:
USES= mate USE_MATE= menus:build intlhack
17.66. meson
可能的参数:(无)
提供对基于Meson的项目的支持。有关更多信息,请参阅使用meson
。
17.67. metaport
可能的参数:(无)
设置以下变量,以便于创建元端口:MASTER_SITES
,DISTFILES
,EXTRACT_ONLY
,NO_BUILD
,NO_INSTALL
,NO_MTREE
,NO_ARCH
。
17.68. minizip
可能的参数:(无),ng
分别添加对archivers/minizip或archivers/minizip-ng的库依赖关系。
17.69. mysql
可能的参数:(无),version
,client
(默认值),server
,embedded
提供对MySQL的支持如果未给出版本,则尝试查找当前安装的版本。回退到默认版本MySQL-5.6。可能的版本是55
、55m
、55p
、56
、56p
、56w
、57
、57p
、80
、100m
、101m
和102m
。m
和p
后缀分别用于MariaDB和Percona版本的MySQL。server
和embedded
添加对MySQL服务器的构建时和运行时依赖关系。当使用server
或embedded
时,添加client
以也添加对libmysqlclient.so的依赖关系。如果某些版本不受支持,则端口可以设置IGNORE_WITH_MYSQL
。
框架将MYSQL_VER
设置为检测到的MySQL版本。
17.70. mono
可能的参数:(无),nuget
通过设置相应的依赖关系,添加对Mono(目前仅限C#)框架的依赖关系。
当端口使用nuget包时,指定nuget
。NUGET_DEPENDS
需要使用nuget包的名称和版本以name=version
的格式设置。可以使用name=version:_origin_
添加可选的包来源。
辅助目标buildnuget
将根据提供的packages.config输出NUGET_DEPENDS
的内容。
17.71. motif
可能的参数:(无)
使用 x11-toolkits/open-motif 作为库依赖项。最终用户可以在 make.conf 中设置 WANT_LESSTIF
以使用 x11-toolkits/lesstif 作为依赖项,而不是 x11-toolkits/open-motif。类似地,在 make.conf 中设置 WANT_OPEN_MOTIF_DEVEL
将添加对 x11-toolkits/open-motif-devel 的依赖。
17.73. nextcloud
可能的参数:(无)
通过添加对 www/nextcloud 的运行时依赖,添加对 Nextcloud 应用程序的支持。
17.74. ninja
可能的参数:(无),build
,make
(默认),run
如果指定了 build
或 run
参数,则分别添加对 devel/ninja 的构建或运行时依赖。如果提供 make
或无参数,则使用 ninja 构建端口而不是 make。make
隐含 build
。如果变量 NINJA_DEFAULT
设置为 samurai
,则依赖项将设置为 devel/samurai。
17.75. nodejs
可能的参数:(无),build
,run
,current
,lts
,10
,14
,16
,17
。
使用 nodejs。添加对 www/node* 的依赖。如果指定了受支持的版本,则也必须指定 run
和/或 build
。
17.77. octave
可能的参数:(无),env
使用 math/octave。env
仅加载一个 OCTAVE_VERSION
环境变量。
17.78. openal
可能的参数:al
,soft
(默认),si
,alut
使用 OpenAL。可以指定后端,软件实现为默认值。用户可以使用 WANT_OPENAL
指定首选后端。此旋钮的有效值为 soft
(默认值)和 si
。
17.79. pathfix
可能的参数:(无)
在 PATHFIX_WRKSRC
(默认为 WRKSRC
)中查找 Makefile.in 和 configure,并修复常见路径以确保它们符合 FreeBSD 层次结构。例如,它修复了 pkgconfig
的 .pc 文件的安装目录到 ${PREFIX}/libdata/pkgconfig。如果端口使用 USES=autoreconf
,则 Makefile.am 将自动添加到 PATHFIX_MAKEFILEIN
中。
如果端口 USES=cmake
,它将在 PATHFIX_WRKSRC
中查找 CMakeLists.txt。如果需要,可以使用 PATHFIX_CMAKELISTSTXT
更改此默认文件名。
17.80. pear
可能的参数:env
添加对 devel/pear 的依赖。它将为使用 PHP 扩展和应用程序存储库的软件设置默认行为。使用 env
参数仅设置 PEAR 环境变量。有关更多信息,请参见 PEAR 模块。
17.81. perl5
可能的参数:(无)
依赖于 Perl。配置是使用 USE_PERL5
完成的。
USE_PERL5
可以包含使用 Perl 的阶段,可以是 extract
、patch
、build
、run
或 test
。
当需要 Makefile.PL、Build.PL 或 Module::Build::Tiny 的 Build.PL 版本时,USE_PERL5
还可以包含 configure
、modbuild
或 modbuildtiny
。
USE_PERL5
默认为 build run
。当使用 configure
、modbuild
或 modbuildtiny
时,build
和 run
是隐含的。
有关更多信息,请参见 使用 Perl。
17.82. pgsql
可能的参数:(无),X.Y
,X.Y+
,X.Y-
,X.Y-Z.A
提供对 PostgreSQL 的支持。端口维护者可以设置所需的版本。可以指定最小和最大版本或范围;例如,9.0-
、8.4+
、8.4-9.2
。
默认情况下,添加的依赖项将是客户端,但如果端口需要其他组件,则可以使用 WANT_PGSQL=component[:target]
完成;例如,WANT_PGSQL=server:configure pltcl plperl
。可用的组件是
client
contrib
docs
pgtcl
plperl
plpython
pltcl
server
17.83. php
可能的参数:(无),phpize
,ext
,zend
,build
,cli
,cgi
,mod
,web
,embed
,pecl
,flavors
,noflavors
提供对 PHP 的支持。添加对默认 PHP 版本 lang/php81 的运行时依赖。
phpize
用于构建 PHP 扩展。启用风格。
ext
用于构建、安装和注册 PHP 扩展。启用风格。
zend
用于构建、安装和注册 Zend 扩展。启用风格。
build
将 PHP 也设置为构建时依赖项。
cli
需要 PHP 的 CLI 版本。
cgi
需要 PHP 的 CGI 版本。
mod
需要 PHP 的 Apache 模块。
web
需要 PHP 的 Apache 模块或 CGI 版本。
embed
需要 PHP 的嵌入式库版本。
pecl
提供从 PECL 存储库获取 PHP 扩展的默认值。启用风格。
flavors
启用自动 PHP 风格 生成。将为所有 PHP 版本生成风格,除了
IGNORE_WITH_PHP
中存在的版本。noflavors
禁用自动 PHP 风格生成。*必须仅*与 PHP 本身提供的扩展一起使用。
变量用于指定需要哪些 PHP 模块,以及支持哪些版本的 PHP。
USE_PHP
运行时所需 PHP 扩展的列表。将
:build
添加到扩展名以添加构建时依赖项。例如:pcre xml:build gettext
IGNORE_WITH_PHP
该端口不适用于给定版本的 PHP。有关可能的值,请查看 Mk/Uses/php.mk 中
_ALL_PHP_VERSIONS
的内容。
使用 :ext
或 :zend
构建 PHP 或 Zend 扩展时,可以设置这些变量
PHP_MODNAME
PHP 或 Zend 扩展的名称。默认值为
${PORTNAME}
。PHP_HEADER_DIRS
要从中安装头文件的子目录列表。框架将始终安装与扩展位于同一目录中的头文件。
PHP_MOD_PRIO
加载扩展的优先级。它是一个介于
00
和99
之间的数字。对于不依赖于任何扩展的扩展,优先级自动设置为
20
,对于依赖于其他扩展的扩展,优先级自动设置为30
。某些扩展可能需要在其他所有扩展之前加载,例如 www/php56-opcache。有些可能需要在优先级为30
的扩展之后加载。在这种情况下,在端口的 Makefile 中添加PHP_MOD_PRIO=XX
。例如USES= php:ext USE_PHP= wddx PHP_MOD_PRIO= 40
这些变量可用于 PKGNAMEPREFIX
或 PKGNAMESUFFIX
中
PHP_PKGNAMEPREFIX
包含
php_XY_-
,其中 XY 是当前风格的 PHP 版本。与 PHP 扩展和模块一起使用。PHP_PKGNAMESUFFIX
包含
-php_XY_
,其中 XY 是当前风格的 PHP 版本。与 PHP 应用程序一起使用。PECL_PKGNAMEPREFIX
包含
php_XY_-pecl-
,其中 XY 是当前风格的 PHP 版本。与 PECL 模块一起使用。
使用风格时,所有 PHP 扩展、PECL 扩展、PEAR 模块*必须*具有不同的包名,因此它们都必须在其 |
17.84. pkgconfig
可能的参数:(无),build
(默认),run
,both
使用 devel/pkgconf。在没有参数或使用 build
参数的情况下,它表示 pkg-config
作为构建时依赖项。run
表示运行时依赖项,both
表示运行时和构建时依赖项。
17.85. pure
可能的参数:(无),ffi
使用 lang/pure。主要用于构建相关的 pure 端口。使用 ffi
参数,它表示 devel/pure-ffi 作为运行时依赖项。
17.86. pyqt
可能的参数:(无),4
,5
使用 PyQt。如果端口是 PyQT 本身的一部分,请设置 PYQT_DIST
。使用 USE_PYQT
选择端口需要的组件。可用的组件是
core
dbus
dbussupport
demo
designer
designerplugin
doc
gui
multimedia
network
opengl
qscintilla2
sip
sql
svg
test
webkit
xml
xmlpatterns
这些组件仅在 PyQT4 中可用
assistant
declarative
help
phonon
script
scripttools
这些组件仅在 PyQT5 中可用。
multimediawidgets
printsupport
qml
serialport
webkitwidgets
widgets
每个组件的默认依赖项是构建时和运行时,要仅选择构建或运行,请在组件名称中添加_build
或_run
。例如
USES= pyqt USE_PYQT= core doc_build designer_run
17.87. pytest
可能的参数:(无),4
引入对devel/pytest的新依赖关系。它定义了一个do-test
目标,该目标将正确运行测试。使用参数依赖于特定的devel/pytest版本。对于使用devel/pytest的端口,请考虑使用此方法代替特定的do-test
目标。该框架向端口公开以下变量
PYTEST_ARGS
pytest 的附加参数(默认为空)。
PYTEST_IGNORED_TESTS
要忽略的测试的
pytest -k
模式列表(默认为空)。对于预期无法通过的测试,例如需要数据库访问的测试。PYTEST_BROKEN_TESTS
要忽略的测试的
pytest -k
模式列表(默认为空)。对于需要修复的已损坏的测试。
此外,用户可以设置以下变量
PYTEST_ENABLE_IGNORED_TESTS
启用
PYTEST_IGNORED_TESTS
否则忽略的测试。PYTEST_ENABLE_BROKEN_TESTS
启用
PYTEST_BROKEN_TESTS
否则忽略的测试。PYTEST_ENABLE_ALL_TESTS
启用
PYTEST_IGNORED_TESTS
和PYTEST_BROKEN_TESTS
否则忽略的测试。
17.88. python
可能的参数:(无),X.Y
,X.Y+
,-X.Y
,X.Y-Z.A
,patch
,build
,run
,test
使用 Python。可以指定受支持的版本或版本范围。如果 Python 只在构建时、运行时或测试时需要,则可以将其设置为构建、运行或测试依赖项,使用build
、run
或test
。如果在修补阶段也需要 Python,请使用patch
。有关更多信息,请参阅使用 Python。
当需要框架导出的变量但不需要对 Python 的依赖关系时,可以使用USES=python:env
。当与USES=shebangfix
一起使用时,可能会发生这种情况,并且目标只是修复 Shebang,而不是添加对 Python 的依赖关系。
17.89. qmail
可能的参数:(无),build
,run
,both
,vars
使用mail/qmail。使用build
参数,意味着qmail
作为构建时依赖项。run
意味着运行时依赖项。不使用参数或使用both
参数意味着运行时和构建时依赖项。vars
将仅为端口设置 QMAIL 变量以供使用。
17.90. qmake
可能的参数:(无),norecursive
,outsource
,no_env
,no_configure
使用 QMake 进行配置。有关更多信息,请参阅使用qmake
。
17.91. qt
可能的参数:5
,6
,no_env
添加对 Qt 组件的依赖关系。no_env
直接传递到USES= qmake
。有关更多信息,请参阅使用 Qt。
17.92. qt-dist
可能的参数:(无) 或 5
和 (无) 或 6
和 (无) 或 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
中的一个。
提供对构建 Qt 5 和 Qt 6 组件的支持。它负责为端口设置适当的配置环境以进行构建。
该端口是 Qt 5 的networkauth
组件,它是networkauth
分发文件的一部分。
PORTNAME= networkauth DISTVERSION= ${QT5_VERSION} USES= qt-dist:5
该端口是 Qt 6 的websockets
组件,它是websockets
分发文件的一部分。
PORTNAME= websockets PORTVERSION= ${QT6_VERSION} USES= qt-dist:6
如果PORTNAME
与组件名称不匹配,则可以将其作为参数传递给qt-dist
。
该端口是 Qt 5 的gui
组件,它是base
分发文件的一部分。
PORTNAME= gui DISTVERSION= ${QT5_VERSION} USES= qt-dist:5,base
17.93. readline
可能的参数:(无),port
使用 readline 作为库依赖项,并根据需要设置CPPFLAGS
和LDFLAGS
。如果使用port
参数或如果基本系统中不存在 readline,则添加对devel/readline的依赖关系。
17.94. ruby
可能的参数:(无),build
,extconf
,run
,setup
为 Ruby 相关的端口提供支持。不带参数的(none)
添加对lang/ruby的运行时依赖关系。build
添加对lang/ruby的构建时依赖关系。extconf
表示该端口使用 extconf.rb 进行配置。run
添加对lang/ruby的运行时依赖关系。这也是默认值。setup
表示该端口使用 setup.rb 进行配置和构建。
用户可能已定义以下变量
RUBY_VER
ruby 的替代简短版本,形式为`x.y`。
RUBY_DEFAULT_VER
设置为(例如)
2.7
以使用ruby27
作为默认版本。RUBY_ARCH
设置体系结构名称(例如 i386-freebsd7)。
以下变量导出供端口使用
RUBY
设置为 ruby 的完整路径。如果设置,则以下变量的值将自动从 ruby 可执行文件获取:
RUBY_ARCH
、RUBY_ARCHLIBDIR
、RUBY_LIBDIR
、RUBY_SITEARCHLIBDIR
、RUBY_SITELIBDIR
、RUBY_VER
和RUBY_VERSION
RUBY_VER
设置为 ruby 的替代简短版本,形式为`x.y`。
RUBY_EXTCONF
设置为 extconf.rb 的替代名称(默认:extconf.rb)。
RUBY_EXTCONF_SUBDIRS
如果包含多个模块,则设置为子目录列表。
RUBY_SETUP
设置为 setup.rb 的替代名称(默认:setup.rb)。
17.95. samba
可能的参数:build
,env
,lib
,run
处理对 Samba 的依赖关系。env
不会添加任何依赖关系,只会设置变量。build
和run
将添加对smbd的构建时和运行时依赖关系。lib
将添加对libsmbclient.so的依赖关系。导出的变量为
SAMBA_PORT
默认 Samba 端口的来源。
SAMBA_INCLUDEDIR
Samba 头文件的位置。
SAMBA_LIBS
Samba 共享库可用的目录。
SAMBA_LDB_PORT
所选 Samba 版本使用的 ldb 端口的来源(例如,databases/ldb28)。如果端口需要依赖于与所选 Samba 版本相同的 ldb 版本,则应使用它。
17.96. scons
可能的参数:(无)
提供对使用devel/scons的支持。有关更多信息,请参阅使用scons
。
17.97. shared-mime-info
可能的参数:(无)
使用来自misc/shared-mime-info的 update-mime-database。此用途将自动添加一个安装后步骤,以便端口本身仍然可以在需要时指定自己的安装后步骤。它还会在 plist 中添加一个@shared-mime-info
条目。
17.98. shebangfix
可能的参数:(无)
许多软件对脚本解释器使用了不正确的位置,最显著的是/usr/bin/perl和/bin/bash。shebangfix 宏修复了SHEBANG_REGEX
、SHEBANG_GLOB
或SHEBANG_FILES
中列出的脚本中的 Shebang 行。
SHEBANG_REGEX
包含一个扩展正则表达式,并与find(1)的
-iregex
参数一起使用。请参阅带有SHEBANG_REGEX
的USESshebangfix
。SHEBANG_GLOB
包含与find(1)的
-name
参数一起使用的模式列表。请参阅带有SHEBANG_GLOB
的USESshebangfix
。SHEBANG_FILES
包含文件或sh(1)通配符。shebangfix 宏从
${WRKSRC}
运行,因此SHEBANG_FILES
可以包含相对于${WRKSRC}
的路径。如果${WRKSRC}
外部的文件需要修补,它也可以处理绝对路径。请参阅带有SHEBANG_FILES
的USESshebangfix
。
目前,Bash、Java、Ksh、Lua、Perl、PHP、Python、Ruby、Tcl 和 Tk 默认受支持。
有三个配置变量
SHEBANG_LANG
支持的解释器列表。
_interp__CMD
FreeBSD 上命令解释器的路径。默认值为
${LOCALBASE}/bin/interp
。_interp__OLD_CMD
错误的解释器调用列表。这些通常是已过时的路径,或在其他操作系统上使用的路径,在 FreeBSD 上不正确。它们将被
_interp__CMD
中的正确路径替换。这些将始终是
interp__OLD_CMD
的一部分:"/usr/bin/env _interp
"/bin/interp /usr/bin/interp /usr/local/bin/interp
。_interp__OLD_CMD
包含多个值。任何包含空格的条目都必须用引号括起来。请参阅在将解释器添加到USESshebangfix
时指定所有路径。
Shebang 的修复在 受支持解释器的正确路径在 |
当与 |
USES=shebangfix
要添加另一个解释器,请设置SHEBANG_LANG
。例如
SHEBANG_LANG= lua
USES=shebangfix
时指定所有路径如果它尚未定义,并且_interpOLD_CMD
和_interp
CMD
没有默认值,则可以将 Ksh 条目定义为
SHEBANG_LANG= ksh ksh_OLD_CMD= "/usr/bin/env ksh" /bin/ksh /usr/bin/ksh ksh_CMD= ${LOCALBASE}/bin/ksh
某些软件使用解释器的奇怪位置。例如,应用程序可能期望 Python 位于/opt/bin/python2.7中。要替换的奇怪路径可以在端口Makefile中声明
python_OLD_CMD= /opt/bin/python2.7
SHEBANG_REGEX
的USES=shebangfix
要修复${WRKSRC}/scripts
中以.pl、.sh或.cgi结尾的所有文件,请执行以下操作
USES= shebangfix SHEBANG_REGEX= ./scripts/.*\.(sh|pl|cgi)
|
SHEBANG_GLOB
的USES=shebangfix
要修复${WRKSRC}
中以.pl或.sh结尾的所有文件,请执行以下操作
USES= shebangfix SHEBANG_GLOB= *.sh *.pl
SHEBANG_FILES
的USES=shebangfix
要修复${WRKSRC}
中的script/foobar.pl和script/*.sh文件,请执行以下操作
USES= shebangfix SHEBANG_FILES= scripts/foobar.pl scripts/*.sh
17.100. ssl
可能的参数:(无)、build
、run
提供对 OpenSSL 的支持。可以使用build
或run
指定仅构建或运行时的依赖关系。这些变量可供端口使用,它们也会添加到MAKE_ENV
中
OPENSSLBASE
OpenSSL 安装基路径。
OPENSSLDIR
OpenSSL 配置文件路径。
OPENSSLLIB
OpenSSL 库路径。
OPENSSLINC
OpenSSL 包含文件路径。
OPENSSLRPATH
如果已定义,则链接器需要用来查找 OpenSSL 库的路径。
如果端口无法使用 OpenSSL 版本构建,请设置 BROKEN_SSL= libressl BROKEN_SSL_REASON_libressl= needs features only available in OpenSSL |
17.101. tar
可能的参数:(无)、Z
、bz2
、bzip2
、lzma
、tbz
、tbz2
、tgz
、txz
、xz
、zst
、zstd
分别将EXTRACT_SUFX
设置为.tar
、.tar.Z
、.tar.bz2
、.tar.bz2
、.tar.lzma
、.tbz
、.tbz2
、.tgz
、.txz
、.tar.xz
、.tar.zst
或.tar.zstd
。
17.102. tcl
可能的参数:version、wrapper
、build
、run
、tea
添加对 Tcl 的依赖关系。可以使用version请求特定的版本。版本可以为空,一个或多个精确版本号(当前为84
、85
或86
),或最小版本号(当前为84+
、85+
或86+
)。要仅请求非特定版本的包装器,请使用wrapper
。可以使用build
或run
指定仅构建或运行时的依赖关系。要使用 Tcl Extension Architecture 构建端口,请使用tea
。包含bsd.port.pre.mk后,端口可以使用以下变量检查结果
TCL_VER
:选择的 Tcl 主版本号.次版本号TCLSH
:Tcl 解释器的完整路径TCL_LIBDIR
:Tcl 库的路径TCL_INCLUDEDIR
:Tcl C 头文件的路径TCL_PKG_LIB_PREFIX
:库前缀,根据 TIP595TCL_PKG_STUB_POSTFIX
:存根库后缀TK_VER
:选择的 Tk 主版本号.次版本号WISH
:Tk 解释器的完整路径TK_LIBDIR
:Tk 库的路径TK_INCLUDEDIR
:Tk C 头文件的路径
17.103. terminfo
可能的参数:(无)
将@terminfo
添加到plist中。当端口在${PREFIX}/share/misc中安装*.terminfo文件时使用。
17.104. tex
可能的参数:(无)
提供对 tex 的支持。加载与 TEX 相关的端口的所有默认变量,并且不添加对任何端口的依赖关系。
变量用于指定需要哪些 TEX 模块。
USE_TEX
运行时所需的 TEX 扩展列表。将
:build
添加到扩展名以添加构建时依赖关系,将:run
添加到运行时依赖关系,将:test
添加到测试时依赖关系,将:extract
添加到提取时依赖关系。例如:base texmf:build source:run
当前可能的参数如下
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
17.106. uidfix
可能的参数:(无)
更改构建系统的一些默认行为(主要是变量),以允许将此端口作为普通用户安装。在使用USES=fakeroot
或修补之前,请在端口中尝试此操作。
17.107. uniquefiles
可能的参数:(无)、dirs
通过添加前缀或后缀使文件或目录“唯一”。如果使用dirs
参数,则端口需要基于UNIQUE_PREFIX
的前缀(并且仅为前缀),用于标准目录DOCSDIR
、EXAMPLESDIR
、DATADIR
、WWWDIR
、ETCDIR
。这些变量可供端口使用
UNIQUE_PREFIX
:用于目录和文件的预设。默认值:${PKGNAMEPREFIX}
。UNIQUE_PREFIX_FILES
:需要添加前缀的文件列表。默认值:空。UNIQUE_SUFFIX
:用于文件的后缀。默认值:${PKGNAMESUFFIX}
。UNIQUE_SUFFIX_FILES
:需要添加后缀的文件列表。默认值:空。
17.109. varnish
可能的参数:4
(默认)、6
、7
处理对 Varnish Cache 的依赖关系。添加对www/varnish*的依赖关系。
17.110. webplugin
可能的参数:(无)、ARGS
自动创建和删除每个支持 webplugin 框架的应用程序的符号链接。ARGS
可以是以下之一
gecko
:支持基于 Gecko 的插件native
:支持 Gecko、Opera 和 WebKit-GTK 的插件linux
:支持 Linux 插件all
(默认,隐式):支持所有插件类型(单个条目):仅支持列出的浏览器
这些变量可以调整
WEBPLUGIN_FILES
:无默认值,必须手动设置。要安装的插件文件。WEBPLUGIN_DIR
:要将插件文件安装到的目录,默认为PREFIX/lib/browser_plugins/WEBPLUGIN_NAME。如果端口在默认目录之外安装插件文件,请设置此值以防止符号链接损坏。WEBPLUGIN_NAME
:要将插件文件安装到的最终目录,默认为PKGBASE
。
17.111. xfce
可能的参数:(无)、gtk2
提供对 Xfce 相关端口的支持。有关详细信息,请参阅使用 Xfce。
gtk2
参数指定端口需要 GTK2 支持。它添加了某些核心组件提供的其他功能,例如,x11/libxfce4menu和x11-wm/xfce4-panel。
17.112. xorg
可能的参数:(无)
提供了一种简单的方法来依赖 X.org 组件。组件应列在USE_XORG
中。可用的组件有
名称 | 描述 |
---|---|
| DMX 扩展库 |
| fontenc 库 |
| 在目录中创建 X 字体文件的索引 |
| X11 的 Inter Client Exchange 库 |
| FS 库 |
| 通用 PCI 访问库 |
| 底层像素操作库 |
| X11 的 Session Management 库 |
| X11 库 |
| X11 的 Authentication Protocol 库 |
| X Athena Widgets 库 |
| X Athena Widgets 库 |
| X Athena Widgets 库 |
| X.Org 位图数据 |
| X 协议 C 语言绑定 (XCB) 库 |
| X Composite 扩展库 |
| X 客户端光标加载库 |
| X Damage 扩展库 |
| X Display Manager Control Protocol 库 |
| X11 扩展库 |
| X Fixes 扩展库 |
| X 字体库 |
| X 字体库 |
| X 应用程序的客户端字体 API |
| X Input 扩展库 |
| X11 Xinerama 库 |
| XKB 文件库 |
| X 杂项实用程序库 |
| X 杂项实用程序库 |
| X.Org 开发 aclocal 宏 |
| X.Org X 服务器和相关程序 |
| xorg 协议头文件 |
| X Pixmap 库 |
| X Present 扩展库 |
| X 调整大小和旋转扩展库 |
| X Render 扩展库 |
| X 资源使用库 |
| XScrnSaver 库 |
| 共享内存“SyncFence”同步原语 |
| X 工具包库 |
| X 的抽象网络代码 |
| X 测试扩展 |
| X 视频扩展库 |
| X 视频扩展运动补偿库 |
| X DGA 扩展 |
| X Vidmode 扩展 |
上次修改时间:2024 年 10 月 16 日,作者 Fernando Apesteguía