--- title: Capítulo 17. Using USES Macros prev: books/porters-handbook/keeping-up next: books/porters-handbook/versions showBookMenu: true weight: 17 params: path: "/books/porters-handbook/uses/" --- [[uses]] = Usando Macros `USES` :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :sectnumoffset: 17 :partnums: :source-highlighter: rouge :experimental: :c-plus-plus: c++ :images-path: books/porters-handbook/ ifdef::env-beastie[] ifdef::backend-html5[] :imagesdir: ../../../../images/{images-path} endif::[] ifndef::book[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] toc::[] endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [[uses-intro]] == Uma introdução ao `USES` As macros `USES` facilitam declarar requisitos e configurações de um port. Elas podem adicionar dependências, alterar o comportamento de compilação do port, adicionar metadados a pacotes e assim por diante, tudo selecionando valores simples e predefinidos. Cada seção deste capítulo descreve um possível valor para `USES`, juntamente com seus possíveis argumentos. Argumentos são anexados ao valor após dois pontos (`:`). Vários argumentos são separados por vírgulas (`,`). [[uses-intro-ex1]] .Usando Vários Valores [example] ==== [.programlisting] .... USES= bison perl .... ==== [[uses-intro-ex2]] .Adicionando um Argumento [example] ==== [.programlisting] .... USES= tar:xz .... ==== [[uses-intro-ex3]] .Adicionando Vários Argumentos [example] ==== [.programlisting] .... USES= drupal:7,theme .... ==== [[uses-intro-ex4]] .Entrelaçando Tudo Isso Junto [example] ==== [.programlisting] .... USES= pgsql:9.3+ cpe python:2.7,build .... ==== [[uses-7z]] == `7z` Argumentos possíveis: (none), `p7zip`, `partial` Extrair usando man:7z[1] ao invés de man:bsdtar[1] e definir `EXTRACT_SUFX=.7z`. A opção `p7zip` força uma dependência do `7z` a partir de package:archivers/p7zip[] se aquele do sistema base não for capaz de extrair os arquivos. `EXTRACT_SUFX` não é alterado se a opção `partial` é usada, isso pode ser usado se o arquivo de distribuição principal não tiver extensão [.filename]#.7z#. [[uses-ada]] == `ada` Argumentos possíveis: (none), `5`, `6` Depende de um compilador capaz de usar Ada e define a variável `CC` de acordo. O padrão é usar gcc 5 do ports. Use a opção de versão `:X` para forçar a compilação com uma versão diferente. [[uses-autoreconf]] == `autoreconf` Argumentos possíveis: (none), `build` Execute `autoreconf`. Ele encapsula os comandos `aclocal`, `autoconf`, `autoheader`, `automake`, `autopoint` e `libtoolize`. Cada comando aplica-se a [.filename]#${AUTORECONF_WRKSRC} /configure.ac# ou seu nome antigo [.filename]#${AUTORECONF_WRKSRC}/configure.in#. E se [.filename]#configure.ac# define subdiretórios com seus próprios [.filename]#configure.ac# usando `AC_CONFIG_SUBDIRS`, `autoreconf` irá recursivamente atualizar aqueles também. O argumento `:build` só adiciona dependências de build-time sobre essas ferramentas, mas não executa o `autoreconf`. Um port pode definir `AUTORECONF_WRKSRC` se `WRKSRC` não contiver o caminho para o [.filename]#configure.ac#. [[uses-blaslapack]] == `blaslapack` Argumentos possíveis: (none), `atlas`, `netlib`(padrão), `gotoblas`, `openblas` Adiciona dependências das bibliotecas Blas / Lapack. [[uses-bdb]] == `bdb` Argumentos possíveis: (none), `48`, `5`(padrão), `6` Adiciona uma dependência à biblioteca Berkeley DB. O padrão utiliza package:databases/db5[]. Também pode depender de package:databases/db48[] ao usar o argumento `:48` ou package:databases/db6[] com `:6`. É possível declarar um intervalo de valores aceitáveis, `:48+` procura pela versão maior instalada e utiliza a 4.8 se nenhuma outra estiver instalada. `INVALID_BDB_VER` pode ser usado para especificar versões que não funcionam com este port. O framework expõe as seguintes variáveis ao port: `BDB_LIB_NAME`:: O nome da biblioteca Berkeley DB. Por exemplo, ao usar package:databases/db5[], contém `db-5.3`. `BDB_LIB_CXX_NAME`:: O nome da biblioteca Berkeley DBC++. Por exemplo, ao usar package:databases/db5[], contém `db_cxx-5.3`. `BDB_INCLUDE_DIR`:: A localização do diretório incluso Berkeley DB. Por exemplo, ao usar package:databases/db5[], ele irá conter `${LOCALBASE}/include/db5`. `BDB_LIB_DIR`:: A localização do diretório da biblioteca Berkeley DB. Por exemplo, ao usar package:databases/db5[], contém `${LOCALBASE}/lib`. `BDB_VER`:: A versão detectada de Berkeley DB. Por exemplo, se estiver usando `USES=bdb:48+` e Berkeley DB 5 estiver instalado, irá conter `5`. [IMPORTANT] ==== package:databases/db48[] está obsoleto e não é suportado. Não deve ser usado por nenhum port. ==== [[uses-bison]] == `bison` Argumentos possíveis: (none), `build`, `run`, `both` Utiliza package:devel/bison[] por padrão, sem argumentos ou com o argumento `build`, isso implica que `bison` seja uma dependência de build-time, `run` implica como dependência de run-time e `both` implica em dependências build-time e run-time. [[uses-cabal]] == `cabal` [IMPORTANT] ==== Não devem ser criados Ports de bibliotecas Haskell, veja crossref:special[haskell-libs,Bibliotecas Haskell] para maiores informações. ==== Argumentos possíveis: (none), `hpack` Define valores e targets padrões usados para compilar software Haskell usando o Cabal. Uma dependência de compilação no port do compilador Haskell (GHC) é adicionada. Se o argumento `hpack` for fornecido, uma dependência de compilação do package:devel/hs-hpack[] será adicionada e o `hpack` será chamado na etapa de configuração para gerar o arquivo .cabal. O framework fornece as seguintes variáveis: `USE_CABAL`:: Se o software usar dependências Haskell, liste-as nesta variável. Cada item deve estar presente no Hackage e ser listado no formato `packagename-_0.1.2_`. As dependências podem ter revisões, especificadas após o símbolo `_`. A geração automática de lista de dependências é suportada, consulte crossref:special[using-cabal,Compilando Aplicações Haskell com `cabal`]. `CABAL_FLAGS`:: Lista de flags a serem passadas para o `cabal-install` durante o estágio de configuração e compilação. As flags são passadas sem alterações (verbatim). `EXECUTABLES`:: Lista de arquivos executáveis instalados pelo port. Valor padrão: `${PORTNAME}`. Os itens desta lista são adicionados automaticamente ao pkg-plist. `SKIP_CABAL_PLIST`:: Se definido, não adicione itens `${EXECUTABLES}` ao pkg-plist. `opt_USE_CABAL`:: Adiciona itens ao `${USE_CABAL}`, dependendo da opção `opt`. `opt_EXECUTABLES`:: Adiciona itens ao `${EXECUTABLES}`, dependendo da opção `opt`. `opt_CABAL_FLAGS`:: Se a opção `opt` estiver ativada, acrescente o valor a `${CABAL_FLAGS}`. Caso contrário, anexe `-value` para desativar a flag. `FOO_DATADIR_VARS`:: Para um executável chamado `FOO`, liste os pacotes Haskell, cujos arquivos de dados devem estar acessíveis pelo executável. [[uses-cargo]] == `cargo` Argumentos possíveis: (none) Utiliza Cargo para configuração, compilação e testes. Ele pode ser usado para portar aplicativos Rust que usam o sistema de build Cargo. Para obter mais informações, consulte crossref:special[using-cargo,Compilando Aplicações Rust com `cargo`].. [[uses-charsetfix]] == `charsetfix` Argumentos possíveis: (none) Previne que o port instale arquivos [.filename]#charset.alias#. Estes arquivos devem ser instalados apenas pelo package:converters/libiconv[]. `CHARSETFIX_MAKEFILEIN` pode ser definido para um caminho relativo ao `WRKSRC` se [.filename]#charset.alias# não for instalado pelo [.filename]#${WRKSRC}/Makefile.in#. [[uses-cmake]] == `cmake` Argumentos possíveis: (none), `env`, `notall`, `noman` Utiliza QMake para configuração e compilação. Por padrão, uma compilação out-of-source é executada, deixando os fontes em `WRKSRC` livres de artefatos de compilação. Com o argumento `insource`, uma compilação in-source será executada. A configuração deste argumento deve ser a exceção quando uma compilação regular out-of-source não funcionar. Por padrão, o argumento Ninja é usado para a compilação. Em alguns casos isso não funciona corretamente. Com o argumento `noninja`, a compilação irá usar o `make` para as compilações. Ele só deve ser usado se uma compilação baseada no Ninja não funcionar. Com o argumento `run`, uma dependência de execução é registrada além de uma dependência de compilação. Para maiores informações, veja crossref:special[using-cmake,Usando o `cmake`]. [[uses-compiler]] == `compiler` Argumentos possíveis: (none), `env` (padrão, implícito) {c-plus-plus}17-lang, {c-plus-plus}14-lang, {c-plus-plus}11-lang, gcc-{c-plus-plus}11-lib, {c-plus-plus}11-lib, {c-plus-plus}0x, c11, openmp, nestedfct, features Determina qual compilador usar com base em qualquer um desejo. Use {c-plus-plus}17-lang se o port precisar de um compilador compatível com {c-plus-plus}17, {c-plus-plus}14-lang se o port precisar de um compilador compatível com {c-plus-plus}14, {c-plus-plus}11-lang se o port precisar de um compilador compatível com {c-plus-plus}11, gcc-{c-plus-plus}11-lib se o port precisar do compilador {gcc-plus-plus} com uma biblioteca {c-plus-plus}11, ou {c-plus-plus}11-lib se o port precisar de uma biblioteca padrão {c-plus-plus}11-ready. Se o port precisar de um compilador que compreenda as funções {c-plus-plus}0X, C11, OpenMP ou funções aninhadas, os parâmetros correspondentes deverão ser usados. Use `features` para solicitar uma lista de recursos suportados pelo compilador padrão. Depois de incluir o arquivo [.filename]#bsd.port.pre.mk# o port pode inspecionar os resultados usando estas variáveis: * `COMPILER_TYPE`: o compilador padrão no sistema, gcc ou clang * `ALT_COMPILER_TYPE`: o compilador alternativo no sistema, gcc ou clang. Apenas definido se dois compiladores estiverem presentes na base do sistema. * `COMPILER_VERSION`: os dois primeiros dígitos da versão do compilador padrão. * `ALT_COMPILER_VERSION`: os dois primeiros dígitos da versão do compilador alternativo, se presente. * `CHOSEN_COMPILER_TYPE`: o compilador escolhido, gcc ou clang * `COMPILER_FEATURES`: os recursos suportados pelo compilador padrão. Atualmente lista a biblioteca C++. [[uses-cpe]] == `cpe` Argumentos possíveis: (none) Inclui informações da Common Platform Enumeration (CPE) no manifesto do pacote como uma string CPE 2.3 formatada. Veja as http://scap.nist.gov/specifications/cpe/[especificações CPE] para mais detalhes. Para adicionar informações de CPE a um port, siga estas etapas: [.procedure] ==== . Procure pelo registro oficial CPE para o produto de software, usando o http://web.nvd.nist.gov/view/cpe/search[mecanismo de pesquisa CPE] do NVD ou no http://static.nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.3.xml[dicionário oficial CPE] (aviso, o arquivo XML é muito grande). _Nunca crie os dados da CPE._ . Adicione `cpe` na variável `USES` e compare o resultado de `make -V CPE_STR` com o registro no dicionário CPE. Continue com um passo de cada vez até `make -V CPE_STR` ficar correto. . Se o nome do produto (segundo campo, com o valor padrão para `PORTNAME`) estiver incorreto, defina `CPE_PRODUCT`. . Se o nome do fornecedor (primeiro campo, com o valor padrão para `CPE_PRODUCT`) estiver incorreto, defina `CPE_VENDOR`. . Se o campo de versão (terceiro campo, com o valor padrão para `PORTVERSION`) estiver incorreto, defina `CPE_VERSION`. . Se o campo de atualização (quarto campo, valor padrão vazio) estiver incorreto, defina `CPE_UPDATE`. . Se ainda não estiver correto, verifique o arquivo [.filename]#Mk/Uses/cpe.mk# para detalhes adicionais, ou entre em contato com o Ports Security Team mailto:ports-secteam@FreeBSD.org[ports-secteam@FreeBSD.org]. . Derive o máximo possível do nome CPE a partir de variáveis ​​existentes, tal como as variáveis `PORTNAME` e `PORTVERSION`. Use modificadores de variáveis ​​para extrair as partes relevantes delas, em vez de colocar o nome direto no código. . _Sempre_ execute `make -V CPE_STR` e verifique a saída antes de fazer o commit de qualquer coisa que mude o `PORTNAME` ou `PORTVERSION` ou qualquer outra variável que é usada para derivar a variável `CPE_STR`. ==== [[uses-cran]] == `cran` Argumentos possíveis: (none), `auto-plist`, `compiles` Utiliza a Comprehensive R Archive Network. Especifique `auto-plist` para gerar automaticamente o arquivo [.filename]#pkg-plist#. Especifique `compiles` se o port tiver código que precise ser compilado. [[uses-desktop-file-utils]] == `desktop-file-utils` Argumentos possíveis: (none) Utiliza update-desktop-database a partir de package:devel/desktop-file-utils[]. Uma etapa extra de post-install será executada sem interferir em nenhuma etapa de post-install que já esteja no [.filename]#Makefile# do port. Uma linha com <> será adicionada ao plist. [[uses-desthack]] == `desthack` Argumentos possíveis: (none) Altera o comportamento do GNU configure para suportar corretamente a variável `DESTDIR` no caso do software original não suportar. [[uses-display]] == `display` Argumentos possíveis: (none), _ARGS_ Define um display environment virtual. Se a variável de ambiente `DISPLAY` não estiver definida, então Xvfb é adicionado como uma dependência de compilação e a variável `CONFIGURE_ENV` é estendida com o número do port da instância do Xvfb em execução no momento. O parâmetro _ARGS_ é definido como `install` por padrão e controla a fase na qual se inicia e para a exibição virtual. [[uses-dos2unix]] == `dos2unix` Argumentos possíveis: (none) O port tem arquivos com terminações de linha no formato do DOS que precisam ser convertidos. Inúmeras variáveis ​​podem ser definidas para controlar quais arquivos serão convertidos. O padrão é converter _todos_ arquivos, incluindo binários. Veja crossref:slow-porting[slow-patch-automatic-replacements,Substituições Automáticas Simples] para exemplos. * `DOS2UNIX_REGEX`: casa nomes de arquivos com base em uma expressão regular. * `DOS2UNIX_FILES`: casa com nomes de arquivos literais. * `DOS2UNIX_GLOB`: casa com nomes de arquivos baseados em um padrão glob. * `DOS2UNX_WRKSRC`: o diretório onde iniciar as conversões. O padrão é `${WRKSRC}`. [[uses-drupal]] == `drupal` Argumentos possíveis: `7`, `module`, `theme` Automatiza a instalação de um port que é um tema ou módulo Drupal. Use com a versão Drupal que o port está esperando. Por exemplo, `USES=drupal:7,module` diz que este port cria um módulo do Drupal 6. Um tema do Drupal 7 pode ser especificado com `USES=drupal:7,theme`. [[uses-fakeroot]] == `fakeroot` Argumentos possíveis: (none) Altera alguns comportamentos padrão dos sistemas de compilação para permitir instalar como um usuário normal. Veja https://wiki.debian.org/FakeRoot[] para mais informações sobre `fakeroot`. [[uses-fam]] == `fam` Argumentos possíveis: (none), `fam`, `gamin` Usa um File Alteration Monitor como uma dependência de biblioteca, package:devel/fam[] ou package:devel/gamin[]. Usuários finais podem definir WITH_FAM_SYSTEM para especificar sua preferência. [[uses-firebird]] == `firebird` Argumentos possíveis: (none), `25` Adiciona uma dependência da biblioteca client do banco de dados do Firebird. [[uses-fonts]] == `fonts` Argumentos possíveis: (none), `fc`, `fcfontsdir`(padrão), `fontsdir`, `none` Adiciona uma dependência de tempo de execução nas ferramentas necessárias para registrar fontes. Dependendo do argumento, adiciona entradas para o plist `<> ${FONTSDIR}`, `<> ${FONTSDIR}`, `<> ${FONTSDIR}`, ou nenhuma entrada se o argumento for `none`. Valor padrão de `FONTSDIR` é [.filename]#${PREFIX}/shared/fonts/${FONTNAME}# e `FONTNAME` é `${PORTNAME}`. Adiciona `FONTSDIR` para `PLIST_SUB` e `SUB_LIST` [[uses-fortran]] == `fortran` Argumentos possíveis: `gcc` (padrão) Usa o compilador GNU Fortran. [[uses-fuse]] == `fuse` Argumentos possíveis: `2` (padrão), `3` O port irá depender da biblioteca FUSE e irá manipular a dependência do módulo do kernel dependendo da versão do FreeBSD. [[uses-gem]] == `gem` Argumentos possíveis: (none), `noautoplist` Manipula a compilação com RubyGems. Se `noautoplist` for usado, a lista de empacotameno não será gerada automaticamente. [[uses-gettext]] == `gettext` Argumentos possíveis: (none) Descontinuado. Incluirá ambos <> e <>. [[uses-gettext-runtime]] == `gettext-runtime` Argumentos possíveis: (none), `lib` (padrão),`build`, `run` Utiliza package:devel/gettext-runtime[]. Por padrão, sem argumentos ou com o argumento `lib`, implica uma dependência da biblioteca [.filename]#libintl.so#. `build` e `run` implicam, respectivamente, uma dependência de [.filename]#gettext# em build-time e run-time. [[uses-gettext-tools]] == `gettext-tools` Argumentos possíveis: (none), `build` (padrão),`run` Utiliza package:devel/gettext-tools[]. Por padrão, sem argumento ou com o argumento `build`, uma dependência de [.filename]#msgfmt# em build-time é registrada. Com o argumento `run`, uma dependência em run-time é registrada. [[uses-ghostscript]] == `ghostscript` Argumentos possíveis: _X_, `build`, `run`, `nox11` Uma versão _X_ específica pode ser usada. Versões possíveis são `7`, `8`, `9` e `agpl` (padrão). `nox11` indica que a versão `-nox11` do port é necessária. `build` e `run` adicionam dependências de Ghostscript em build-time e run-time. O padrão é ambas as dependências, build-time e run-time. [[uses-gl]] == `gl` Argumentos possíveis: (none) Fornece uma maneira fácil para depender dos componentes GL. Os componentes devem ser listados na variável `USE_GL`. Os componentes disponíveis são: `egl`:: adiciona uma dependência de biblioteca [.filename]#libEGL.so# de package:graphics/libglvnd[] `gbm`:: Adiciona uma dependência de biblioteca [.filename]#libgbm.so# de package:graphics/mesa-libs[] `gl`:: Adiciona uma dependência de biblioteca [.filename]#libGL.so# de package:graphics/libglvnd[] `glesv2`:: Adiciona uma dependência de biblioteca [.filename]#libGLESv2.so# de package:graphics/libglvnd[] `glew`:: Adiciona uma dependência de biblioteca [.filename]#libGLEW.so# de package:graphics/glew[] `glu`:: Adiciona uma dependência de biblioteca [.filename]#libGLU.so# de package:graphics/libGLU[] `glut`:: Adiciona uma dependência de biblioteca [.filename]#libglut.so# de package:graphics/freeglut[] `opengl`:: Adiciona uma dependência de biblioteca [.filename]#libOpenGL.so# de package:graphics/libglvnd[] [[uses-gmake]] == `gmake` Argumentos possíveis: (none) Utiliza package:devel/gmake[] como uma dependência em run-time e configura o ambiente para usar `gmake` como `make` padrão para a compilação. [[uses-gnome]] == `gnome` Argumentos possíveis: (none) Fornece uma maneira fácil para depender dos componentes do GNOME. Os componentes devem ser listados na variável `USE_GNOME`. Os componentes disponíveis são: * `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` A dependência padrão é em built-time e run-time, pode ser alterada com `:build` ou `:run`. Por exemplo: [.programlisting] .... USES= gnome USE_GNOME= gnomemenus3:build intlhack .... Veja crossref:special[using-gnome,Usando o GNOME] para maiores informações. [[uses-go]] == `go` [IMPORTANT] ==== Não devem ser criados Ports de bibliotecas Go, veja crossref:special[go-libs,Bibliotecas Go] para maiores informações. ==== Argumentos possíveis: (none), `modules`, `no_targets`, `run` Define valores e targets padrão usados para compilar aplicações Go. Uma dependência de compilação no port do compilador Go selecionada via `GO_PORT` é adicionada. Por padrão, a compilação é executada no modo GOPATH. Se o software Go usar módulos, o modo de reconhecimento de módulos pode ser ativado com o argumento `modules`. `no_targets` irá configurar o ambiente de compilação com `GO_ENV`, `GO_BUILDFLAGS` mas irá pular os targets `post-extract` e `do-{build,install,test}`. `run` também adicionará uma dependência de tempo de execução do que estiver em `GO_PORT`. O processo de compilação é controlado por várias variáveis: `GO_PKGNAME`:: O nome do pacote Go ao compilar no modo GOPATH. Este é o diretório que será criado em `${GOPATH}/src`. Se não estiver definido explicitamente e `GH_SUBDIR` ou `GL_SUBDIR` estiverem presente, o valor `GO_PKGNAME` será inferido deles. Isso não é necessário quando compilado no modo de reconhecimento de módulos. `GO_TARGET`:: Os pacotes a serem compilados. O valor padrão é `${GO_PKGNAME}`. `GO_TARGET` também pode ser uma tupla na forma `package:path` onde path pode ser um nome de arquivo simples ou um caminho completo começando com `${PREFIX}`. `GO_TESTTARGET`:: Os pacotes para testar. O valor padrão é `./...` (o pacote atual e todos os subpacotes). `CGO_CFLAGS`:: Valores adicionais da variável `CFLAGS` a serem passados ​​para o compilador C pelo `Go`. `CGO_LDFLAGS`:: Valores adicionais da variável `LDFLAGS` a serem passados ​​para o compilador C pelo `Go`. `GO_BUILDFLAGS`:: Argumentos de compilação adicionais para passar para o `go build`. `GO_TESTFLAGS`:: Argumentos de compilação adicionais para passar para o `go test`. `GO_PORT`:: O port do compilador Go a ser utilizado. Por padrão é package:lang/go[] mas pode ser definido para package:lang/go-devel[] no `make.conf` para testes de futuras versões Go. + [WARNING] ==== Esta variável não deve ser definida por ports individuais! ==== Ver crossref:special[using-go,Compilando Aplicações Go] para exemplos de uso. [[uses-gperf]] == `gperf` Argumentos possíveis: (none) Adiciona uma dependência package:devel/gperf[] em buildtime se `gperf` não estiver presente no sistema base. [[uses-grantlee]] == `grantlee` Argumentos possíveis: `5`, `selfbuild` Manipula a dependência em Grantlee. Especifique `5` para depender da versão baseada no Qt5, package:devel/grantlee5[]. `selfbuild` é usado internamente pelo package:devel/grantlee5[] para obter os números de suas versões. [[uses-groff]] == `groff` Argumentos possíveis: `build`, `run`, `both` Registra uma dependência de package:textproc/groff[] se não estiver presente no sistema base. [[uses-gssapi]] == `gssapi` Argumentos possíveis: (none), `base` (padrão), `heimdal`, `mit`, `flags`, `bootstrap` Manipular as dependências necessárias para os consumers do GSS-API. Apenas as bibliotecas que fornecem os mecanismos do Kerberos estão disponíveis. Por padrão, ou definido como `base`, a biblioteca GSS-API do sistema base é usada. Também pode ser definido para `heimdal` para usar package:security/heimdal[] ou `mit` para usar package:security/krb5[]. Quando a instalação local do Kerberos não está em `LOCALBASE` defina a variável `HEIMDAL_HOME` (para `heimdal`) ou a variável `KRB5_HOME` (para `krb5`) para a instalação local do Kerberos. Essas variáveis ​​são exportadas para os ports para serem usadas: * `GSSAPIBASEDIR` * `GSSAPICPPFLAGS` * `GSSAPIINCDIR` * `GSSAPILDFLAGS` * `GSSAPILIBDIR` * `GSSAPILIBS` * `GSSAPI_CONFIGURE_ARGS` As opções de `flags` podem estar lado a lado com `base`, `heimdal` ou `mit` para adicionar automaticamente `GSSAPICPPFLAGS`, `GSSAPILDFLAGS` e `GSSAPILIBS` para `CFLAGS`, `LDFLAGS` e `LDADD`, respectivamente. Por exemplo, use `base,flags`. A opção `bootstrap` é um prefixo especial apenas para o uso do package:security/krb5[] e package:security/heimdal[]. Por exemplo, use `bootstrap,mit`. [[uses-gssapi-ex1]] .Uso Típico [example] ==== [.programlisting] .... 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 .... ==== [[uses-horde]] == `horde` Argumentos possíveis: (none) Adicionar dependências de builtime e runtime em package:devel/pear-channel-horde[]. Outras dependências Horde podem ser adicionadas com `USE_HORDE_BUILD` e `USE_HORDE_RUN`. Veja crossref:special[php-horde,Módulos Horde] para maiores informações. [[uses-iconv]] == `iconv` Argumentos possíveis: (none), `lib`, `build`, `patch`, `translit`, `wchar_t` Utilização de funções `iconv`, seja do port package:converters/libiconv[] como uma dependência de buil-time e run-time, ou do sistema base em um 10-CURRENT após um `iconv` nativo ser comitado em link:https://svnweb.freebsd.org/changeset/base/254273[r254273]. Por padrão, sem argumentos ou com o argumento `lib`, implica em `iconv` com dependências de build-time e run-time. `build` implica uma dependência de build-time e `patch` implica uma dependência de patch-time. Se o port usa extensões iconv `WCHAR_T` ou `//TRANSLIT` , adicione os argumentos relevantes para que o iconv correto seja usado. Para mais informações, veja crossref:special[using-iconv,Usando `iconv`]. [[uses-imake]] == `imake` Argumentos possíveis: (none), `env`, `notall`, `noman` Adiciona package:devel/imake[] como uma dependência de built-time e executa `xmkmf -a` durante o estágio `configure`. Se o argumento `env` é passado, o target `configure` não é definido. Se a flag `-a` for um problema para o port, adicione o argumento `notall`. E se `xmkmf` não gerar um target `install.man`, adicione o argumento `noman`. [[uses-kde]] == `kde` Argumentos possíveis: `5` Adiciona dependência de componentes KDE. Veja crossref:special[using-kde,Usando o KDE] para maiores informações. [[uses-kmod]] == `kmod` Argumentos possíveis: (none), `debug` Preenche o boilerplate para os ports de módulo do kernel, atualmente: * Adiciona `kld` em `CATEGORIES`. * Define `SSP_UNSAFE`. * Defina `IGNORE` se as fontes do kernel não forem encontradas em `SRC_BASE`. * Define `KMODDIR` para [.filename]#/boot/modules# por padrão, adiciona isso para a variável `PLIST_SUB` e `MAKE_ENV`, e o cria após a instalação. Se a variável `KMODDIR` está definida para o [.filename]#/boot/kernel#, ela será reescrita para [.filename]#/boot/modules#. Isso evita quebrar pacotes ao atualizar o kernel devido ao [.filename]#/boot/kernel# ser renomeado para [.filename]#/boot/kernel.old# no processo. * Manipula módulos cross-referencing do kernel acerca da instalação e desinstalação, usando <>. * Se o argumento `debug` é passado, o port pode instalar uma versão de debug do módulo no arquivo [.filename]#KERN_DEBUGDIR#/[.filename]#KMODDIR#. Por padrão, a variável `KERN_DEBUGDIR` é copiada da `DEBUGDIR` e definido para [.filename]#/usr/lib/debug#. O framework irá cuidar da criação e remoção de quaisquer diretórios necessários. [[uses-lha]] == `lha` Argumentos possíveis: (none) Define `EXTRACT_SUFX` para `.lzh` [[uses-libarchive]] == `libarchive` Argumentos possíveis: (none) Registra uma dependência de package:archivers/libarchive[]. Quaisquer ports dependendo de libarchive deve incluir `USES=libarchive`. [[uses-libedit]] == `libedit` Argumentos possíveis: (none) Registra uma dependência de package:devel/libedit[]. Quaisquer ports dependendo de libedit devem incluir `USES=libedit`. [[uses-libtool]] == `libtool` Argumentos possíveis: (none), `keepla`, `build` Scripts `libtool` de patches. Isso deve ser adicionado a todos os ports que usam `libtool`. O argumento `keepla` pode ser usado para manter arquivos [.filename]#.la#. Alguns ports não vêm com sua própria cópia da libtool e precisam de uma dependência de package:devel/libtool[] em build time, use o argumento `:build` para adicionar essa dependência. [[uses-linux]] == `linux` Argumentos possíveis: `c6`, `c7` Framework de compatibilidade de ports com Linux. Especifique `c6` para depender de pacotes do CentOS 6. Especifique `c7` para depender de pacotes do CentOS 7. Os pacotes disponíveis são: * `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` [[uses-localbase]] == `localbase` Argumentos possíveis: (none), `ldflags` Garante que as bibliotecas de dependências em `LOCALBASE` sejam usadas ​​em vez das do sistema base. Especifique `ldflags` para adicionar `-L${LOCALBASE}/lib` para a variável `LDFLAGS` ao invés de `LIBS`. Ports que dependem de bibliotecas que também estão presentes no sistema base devem usar isso. Também é usado internamente por algumas outras variáveis `USES`. [[uses-lua]] == `lua` Argumentos possíveis: (none), `_XY_`, `_XY_+`, `-_XY_`, `_XY_-_ZA_`, `module`, `flavors`, `build`, `run`, `env` Adiciona uma dependência de Lua. Por padrão, esta é uma dependência de biblioteca, a menos que seja invalidado por uma opção `build` ou `run`. A opção `env` evita a adição de qualquer dependência, enquanto ainda define todas as variáveis usuais. A versão padrão é definida pelo mecanismo usual `DEFAULT_VERSIONS`, a menos que uma versão ou intervalo de versões seja especificado como um argumento, por exemplo, `51` or `51-53`. Os aplicativos que usam Lua são normalmente compilados para apenas uma única versão do Lua. No entanto, os módulos de biblioteca destinados a serem carregados pelo código Lua devem usar a opção `module` para compilar com vários flavors. Para maiores informações, veja crossref:special[using-lua,Usando Lua]. [[uses-lxqt]] == `lxqt` Argumentos possíveis: (none) Manipular dependências para o LXQt Desktop Environment. Use a variável `USE_LXQT` para selecionar os componentes necessários para o port. Veja crossref:special[using-lxqt,Usando o LXQt] para maiores informações. [[uses-makeinfo]] == `makeinfo` Argumentos possíveis: (none) Adiciona uma dependência de build-time em `makeinfo` se o mesmo não estiver presente no sistema base. [[uses-makeself]] == `makeself` Argumentos possíveis: (none) Indica que os arquivos de distribuição são archives makeself e define as dependências apropriadas. [[uses-mate]] == `mate` Argumentos possíveis: (none) Fornece uma maneira fácil para depender de componentes do MATE. Os componentes devem ser listados em `USE_MATE`. Os componentes disponíveis são: * `autogen` * `caja` * `common` * `controlcenter` * `desktop` * `dialogs` * `docutils` * `icontheme` * `intlhack` * `intltool` * `libmatekbd` * `libmateweather` * `marco` * `menus` * `notificationdaemon` * `panel` * `pluma` * `polkit` * `session` * `settingsdaemon` A dependência padrão é em built-time e run-time, pode ser alterada com `:build` ou `:run`. Por exemplo: [.programlisting] .... USES= mate USE_MATE= menus:build intlhack .... [[uses-meson]] == `meson` Argumentos possíveis: (none) Fornece suporte para projetos baseados no Meson. Para maiores informações, consulte crossref:special[using-meson,Usando `meson`]. [[uses-metaport]] == `metaport` Argumentos possíveis: (none) Define as seguintes variáveis ​​para facilitar a criação de um metaport: `MASTER_SITES`, `DISTFILES`, `EXTRACT_ONLY`, `NO_BUILD`, `NO_INSTALL`, `NO_MTREE`, `NO_ARCH`. [[uses-mysql]] == `mysql` Argumentos possíveis: (none), `_version_`, `client` (padrão), `server`, `embedded` Fornece suporte para o MySQL. Se nenhuma versão for informada, tenta encontrar a versão atual instalada. Fall back para a versão padrão, MySQL-5.6. As possíveis versões são `55`, `55m`, `55p`, `56`, `56p`, `56w`, `57`, `57p`, `80`, `100m`, `101m` e `102m`. Os sufixos `m` e `p` são para MariaDB e Percona, variantes do MySQL. `server` e `embbeded` adicionam uma dependência de build- e run-time do servidor MySQL. Ao usar `server` ou `embbeded`, é adicionado `client` para também adicionar uma dependência no arquivo [.filename]#libmysqlclient.so#. Um port pode definir `IGNORE_WITH_MYSQL` se algumas versões não forem suportadas. O framework define a variável `MYSQL_VER` para a versão detectada do MySQL. [[uses-mono]] == `mono` Argumentos possíveis: (none), `nuget` Adiciona uma dependência no framework Mono (atualmente apenas C#) definindo as dependências apropriadas. Especifique `nuget` quando o port usa pacotes nuget. `NUGET_DEPENDS` precisa ser definido com os nomes e versões dos pacotes nuget no formato `_name_=_version_`. Uma pacote de origem opcional pode ser adicionado usando `name=version:origin`. O target auxiliar, `buildnuget`, exibirá o conteúdo da variável `NUGET_DEPENDS` com base no arquivo [.filename]#packages.config# fornecido. [[uses-motif]] == `motif` Argumentos possíveis: (none) Utiliza package:x11-toolkits/open-motif[] como uma dependência de biblioteca. Os usuários finais podem definir `WANT_LESSTIF` para a dependência estar em package:x11-toolkits/lesstif[] ao invés de package:x11-toolkits/open-motif[]. [[uses-ncurses]] == `ncurses` Argumentos possíveis: (none), `base`, `port` Utiliza ncurses, e faz com que algumas variáveis ​​úteis sejam definidas. [[uses-ninja]] == `ninja` Argumentos possíveis: (none) Utiliza ninja para compilar o port. [[uses-objc]] == `objc` Argumentos possíveis: (none) Adiciona dependências de objetive C (compilador, biblioteca de runtime) se o sistema base não suportar isto. [[uses-openal]] == `openal` Argumentos possíveis: `al`, `soft` (padrão), `yes`, `alut` Utiliza OpenAL. O backend pode ser especificado, com a implementação do software como padrão. O usuário pode especificar um backend preferido com `WANT_OPENAL`. Os valores válidos para este manipulador são `soft` (padrão) e `si`. [[uses-pathfix]] == `pathfix` Argumentos possíveis: (none) Procura pelos arquivos [.filename]#Makefile.in# e [.filename]#configure# na variável `PATHFIX_WRKSRC` (padrão é `WRKSRC`) e corrige os caminhos comuns para garantir que eles respeitem a hierarquia do FreeBSD. Por exemplo, ele corrige o diretório de instalação dos arquivos [.filename]#.pc# do `pkgconfig` para [.filename]#${PREFIX}/libdata/pkgconfig#. Se o port usa `USES=autoreconf`, [.filename]#Makefile.am# será adicionado automaticamente a `PATHFIX_MAKEFILEIN`. Se o port tem definido <> ele vai procurar pelo arquivo [.filename]#CMakeLists.txt# dentro da variável `PATHFIX_WRKSRC`. Se necessário, esse nome de arquivo padrão pode ser alterado com `PATHFIX_CMAKELISTSTXT`. [[uses-pear]] == `pear` Argumentos possíveis: `env` Adiciona uma dependência do package:devel/pear[]. Ele irá configurar o comportamento padrão do software usando o Repositório de Extensão e Aplicativos do PHP. O uso do argumento `env` apenas configura as variáveis de ambiente PEAR. Veja crossref:special[php-pear,Módulos PEAR] para maiores informações. [[uses-perl5]] == `perl5` Argumentos possíveis: (none) Depende do Perl. A configuração é feita usando a variável `USE_PERL5`. `USE_PERL5` pode conter as fases que precisam usar Perl, pode ser `extract`, `patch`, `build`, `run` ou `test`. `USE_PERL5` também pode conter `configure`, `modbuild` ou `modbuildtiny` quando [.filename]#Makefile.PL#, [.filename]#Build.PL# ou Módulo::Build::Tiny's, flavor de [.filename]#Build.PL# é necessário. O padrão de `USE_PERL5` é `build run`. Ao usar `configure`, `modbuild` ou `modbuildtiny`, uso de `build` e `run` são implícitos. Veja crossref:special[using-perl,Usando Perl] para maiores informações. [[uses-pgsql]] == `pgsql` Argumentos possíveis: (none), `_X.Y_`, `_X.Y_+`, `_X.Y_-`, `_X.Y_-_Z.A_` Fornece suporte para o PostgreSQL. O mantenedor do port pode definir a versão requisitada. Podem ser especificadas versões mínima e máxima ou um intervalo; por exemplo, `9.0-`, `8.4+`, `8.4-9.2.` Por padrão, a dependência adicionada será o cliente, mas se o port exigir componentes adicionais, isso poderá ser feito usando `WANT_PGSQL=_component[:target]_`; por exemplo, `WANT_PGSQL=server:configure pltcl plperl`. Os componentes disponíveis são: * `client` * `contrib` * `docs` * `pgtcl` * `plperl` * `plpython` * `pltcl` * `server` [[uses-php]] == `php` Argumentos possíveis: (none), `phpize`, `ext`, `zend`, `build`, `cli`, `cgi`, `mod`, `web`, `embed`, `pecl`, `flavors`, `noflavors` Fornece suporte para o PHP. Adiciona uma dependência de run-time na versão padrão do PHP, package:lang/php56[]. `phpize`:: Utilizado para compilar uma extensão do PHP. Habilita flavors. `ext`:: Usado para compilar, instalar e registrar uma extensão do PHP. Habilita flavors. `zend`:: Usado para criar, instalar e registrar uma extensão do Zend. Habilita flavors. `build`:: Define PHP também como uma dependência de build-time. `cli`:: Precisa da versão CLI do PHP. `cgi`:: Precisa da versão CGI do PHP. `mod`:: Precisa do módulo Apache para o PHP. `web`:: Precisa do módulo Apache ou a versão CGI do PHP. `embed`:: Precisa da versão da biblioteca embarcada do PHP. `pecl`:: Fornece padrões para baixar extensões PHP do repositório PECL. Habilita flavors. `flavors`:: Habilita a geração de <> automático. Flavors serão gerados para todas as versões do PHP, exceto as presentes na variável <>. `noflavors`:: Desativa a geração automática de flavors do PHP. _Deve apenas_ ser usado com extensões fornecidas pelo próprio PHP. Variáveis ​​são usadas para especificar quais módulos PHP são necessários, bem como qual versão do PHP são suportadas. `USE_PHP`:: A lista das extensões PHP requisitadas em run-time. Adicione `:build` ao nome da extensão para adicionar uma dependência em build-time. Exemplo: `pcre xml:build gettext` [[uses-php-ignore]] `IGNORE_WITH_PHP`:: O port não funciona com a versão do PHP fornecida. Para possíveis valores, observe o conteúdo da variável `_ALL_PHP_VERSIONS` no arquivo [.filename]#Mk/Uses/php.mk#. Ao compilar uma extensão do PHP ou Zend com `:ext` ou `:zend`, estas variáveis ​​podem ser definidas: `PHP_MODNAME`:: O nome da extensão do PHP ou Zend. O valor padrão é `${PORTNAME}`. `PHP_HEADER_DIRS`:: Uma lista de subdiretórios dos quais instalar arquivos header. O framework sempre irá instalar os arquivos header que estão presentes no mesmo diretório que a extensão. `PHP_MOD_PRIO`:: A prioridade na qual carregar a extensão. É um número entre `00` e `99`. + Para extensões que não dependem de nenhuma extensão, a prioridade é definida automaticamente como `20`, para extensões que dependem de outra extensão, a prioridade é definida automaticamente como `30`. Algumas extensões podem precisar ser carregadas antes de todas as outras extensões, por exemplo package:www/php56-opcache[]. Algumas podem precisar ser carregadas após uma extensão com prioridade de `30`. Nesse caso, adicione `PHP_MOD_PRIO=_XX_` no Makefile do port. Por exemplo: + [.programlisting] .... USES= php:ext USE_PHP= wddx PHP_MOD_PRIO= 40 .... Estas variáveis ​​estão disponíveis para uso em `PKGNAMEPREFIX` ou `PKGNAMESUFFIX`: `PHP_PKGNAMEPREFIX`:: Contém `php__XY__-` onde _XY_ é a versão do PHP atual. Use com módulos e extensões PHP. `PHP_PKGNAMESUFFIX`:: Contém `-php__XY__` onde _XY_ é a versão do PHP atual do flavor. Use com aplicativos PHP. `PECL_PKGNAMEPREFIX`:: Contém `php__XY__-pecl` onde _XY_ é a versão atual do PHP do flavor. Usar com módulos PECL. [IMPORTANT] ==== Com flavors, todas as extensões PHP, extensões PECL, módulos PEAR _devem ter_ um nome de pacote diferente, então todos devem usar uma dessas três variáveis ​​em suas variáveis `PKGNAMEPREFIX` ou `PKGNAMESUFFIX`. ==== [[uses-pkgconfig]] == `pkgconfig` Argumentos possíveis: (none), `build` (padrão), `run`, `both` Utiliza package:devel/pkgconf[]. Sem argumentos ou com o argumento `build`, implica em `pkg-config` como uma dependência de build-time. `run` implica em uma dependência em run-time e `both` implica em dependências de run-time e build-time. [[uses-pure]] == `pure` Argumentos possíveis: (none), `ffi` Utiliza package:lang/pure[]. Usado largamente para build relacionado com ports pure. Com o argumento `ffi`, isso implica em package:devel/pure-ffi[] como uma dependência em run-time. [[uses-pyqt]] == `pyqt` Argumentos possíveis: (none), `4`, `5` Utiliza PyQt. Se o port é parte do próprio PyQT, defina `PYQT_DIST`. Use a variável `USE_PYQT` para selecionar os componentes que o port precisa. Os componentes disponíveis são: * `core` * `dbus` * `dbussupport` * `demo` * `designer` * `designerplugin` * `doc` * `gui` * `multimedia` * `network` * `opengl` * `qscintilla2` * `sip` * `sql` * `svg` * `test` * `webkit` * `xml` * `xmlpatterns` Estes componentes só estão disponíveis com PyQT4: * `assistant` * `declarative` * `help` * `phonon` * `script` * `scripttools` Estes componentes só estão disponíveis com PyQT5: * `multimediawidgets` * `printsupport` * `qml` * `serialport` * `webkitwidgets` * `widgets` A dependência padrão para cada componente são build e run-time, para selecionar apenas build ou run, adicione `_build` ou `_run` para o nome do componente. Por exemplo: [.programlisting] .... USES= pyqt USE_PYQT= core doc_build designer_run .... [[uses-python]] == `python` Argumentos possíveis: (none), `_XY_`, `_X.Y+_`, `_-XY_`, `_XY-ZA_`, `patch`, `build`, `run`, `test` Utiliza Python. Uma versão suportada ou um intervalo de versões podem ser especificados. Se o Python for necessário apenas no momento de build, run-time ou para os testes, ele pode ser definido como uma dependência de build, run ou teste com `build`, `run` ou `test`. Se o Python também for necessário durante a fase de patch, use `patch`. Veja crossref:special[using-python, Usando Python] para maiores informações. `PYTHON_NO_DEPENDS=yes` pode ser usado quando as variáveis ​​exportadas pelo framework serem necessárias, mas uma dependência de Python não. Pode acontecer quando usado com <>, e o objetivo é apenas consertar os shebangs, mas não adicionar uma dependência do Python. [[uses-qmail]] == `qmail` Argumentos possíveis: (none), `build`, `run`, `both`, `vars` Utiliza package:mail/qmail[]. Com o argumento `build`, implica no `qmail` como uma dependência de build-time. `run` implica em uma dependência de run-time. Usando nenhum argumento ou o argumento `both` implica em dependências de run-time e build-time. `vars` só ira definir variáveis ​​QMAIL para o port usar. [[uses-qmake]] == `qmake` Argumentos possíveis: (none), `norecursive`, `outsource`, `no_env`, `no_configure` Utiliza QMake para configuração. Para mais informações, veja crossref:special[using-qmake,Usando `qmake`]. [[uses-qt]] == `qt` Argumentos possíveis: `5`, `no_env` Adiciona dependência de componentes Qt. `no_env` é passado diretamente para `USES= qmake`. Veja crossref:special[using-qt,Usando o Qt] para maiores informações. [[uses-qt-dist]] == `qt-dist` Argumentos possíveis: (none) ou `5` e (none) ou um de `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` Fornece suporte para a compilação de componentes Qt 5. Ele cuida da definição do ambiente de configuração apropriado para o port compilar. [[qt5-dist-example]] .Compilando Componentes do Qt 5 [example] ==== O port é o componente `networkauth` do Qt 5, que faz parte do arquivo de distribuição `networkauth`. [.programlisting] .... PORTNAME= networkauth DISTVERSION= ${QT5_VERSION} USES= qt-dist:5 .... ==== Se `PORTNAME` não corresponder ao nome do componente, ele poderá ser passado como argumento em `qt-dist`. [[qt5-dist-example-explicit]] .Compilando Componentes do Qt 5 com Nomes Diferentes [example] ==== O port é o componente `gui` do Qt 5, que faz parte do arquivo de distribuição `base`. [.programlisting] .... PORTNAME= gui DISTVERSION= ${QT5_VERSION} USES= qt-dist:5,base .... ==== [[uses-readline]] == `readline` Argumentos possíveis: (none), `port` Usa readline como uma dependência de biblioteca e define `CPPFLAGS` e `LDFLAGS` como necessários. Se o argumento `port` é usado ou se readline não estiver presente no sistema base, adiciona uma dependência em package:devel/readline[] [[uses-samba]] == `samba` Possíveis argumentos: `build`, `env`, `lib`, `run` Manipula dependências do Samba. `env` não irá adicionar qualquer dependência e apenas irá configurar as variáveis. `build` e `run` irão adicionar dependências de run-time e build-time de [.filename]#smbd#. `lib` irá adicionar uma dependência em [.filename]#libsmbclient.so#. As variáveis ​​que são exportadas são: `SAMBAPORT`:: A origem do port padrão Samba. `SAMBAINCLUDES`:: A localização dos arquivos header do Samba. `SAMBALIBS`:: O diretório onde as bibliotecas compartilhadas do Samba estão disponíveis. [[uses-scons]] == `scons` Argumentos possíveis: (none) Fornece suporte para o uso do package:devel/scons[]. Veja crossref:special[using-scons,Usando `scons`] para maiores informações. [[uses-shared-mime-info]] == `shared-mime-info` Argumentos possíveis: (none) Utiliza update-mime-database a partir de package:misc/shared-mime-info[]. Este uses irão adicionar automaticamente uma etapa de post-install de tal forma que o próprio port ainda possa especificar sua própria etapa de post-install, se necessário. Também adiciona uma entrada crossref:plist[plist-keywords-shared-mime-info,`@shared-mime-info`] para o plist. [[uses-shebangfix]] == `shebangfix` Argumentos possíveis: (none) Muitos softwares usam locais incorretos para interpretadores de scripts, principalmente [.filename]#/usr/bin/perl# e [.filename]#/bin/bash#. A macro shebangfix corrige linhas shebang em scripts listados em `SHEBANG_REGEX`, `SHEBANG_GLOB` ou `SHEBANG_FILES`. `SHEBANG_REGEX`:: Contém _uma_ expressão regular estendida e é usado com o argumento `-iregex` do man:find[1]. Veja <>. `SHEBANG_GLOB`:: Contém uma lista de padrões usados com o argumento `-name` do man:find[1]. Veja <>. `SHEBANG_FILES`:: Contém uma lista de arquivos ou globs man:sh[1]. A macro shebangfix é executada a partir de `${WRKSRC}`, assim `SHEBANG_FILES` pode conter caminhos relativos a `${WRKSRC}`. Ele também pode lidar com caminhos absolutos se arquivos fora de `${WRKSRC}` requisitarem uma correção. Veja <>. Atualmente Bash, Java, Ksh, Lua, Perl, PHP, Python, Rubi, Tcl e Tk são suportados por padrão. Aqui estão três variáveis de configuração: `SHEBANG_LANG`:: A lista de interpretadores suportados. `interp_CMD`:: O caminho para o interpretador de comandos no FreeBSD. O valor padrão é `${LOCALBASE}/bin/_interp_`. `interp_OLD_CMD`:: A lista de invocações erradas de interpretadores. Estes são tipicamente caminhos obsoletos, ou caminhos usados ​​em outros sistemas operacionais que estão incorretos no FreeBSD. Eles serão substituídos pelo caminho correto na variável `interp__CMD`. + [NOTE] ==== Estes vão _sempre_ ser parte da variável `interp_OLD_CMD:"/usr/bin/envinterp" /bin/interp /usr/bin/interp /usr/local/bin/interp`. ==== + [TIP] ==== A variável `interp_OLD_CMD` contém vários valores. Qualquer entrada com espaços deve estar entre aspas. Veja <>. ==== [IMPORTANT] ==== A correção de shebangs é feita durante a fase `patch`. Se os scripts forem criados com shebangs incorretos durante a fase `build`, o processo de build (por exemplo, o script [.filename]#configure#, ou o [.filename]#Makefiles#) deve ser corrigido ou ter o caminho certo (por exemplo, com `CONFIGURE_ENV`, `CONFIGURE_ARGS`, `MAKE_ENV` ou `MAKE_ARGS`) para gerar as shebangs certas. Os caminhos corretos para os interpretadores suportados estão disponíveis em `interp_CMD`. ==== [TIP] ==== Quando usado com <>, e o objetivo é apenas consertar os shebangs, mas a dependência de Python em si não é desejada, use a variável `PYTHON_NO_DEPENDS=yes`. ==== [[uses-shebangfix-ex-lua]] .Adicionando outro interpretadoror para `USES=shebangfix` [example] ==== Para adicionar outro interpretador, defina a variável `SHEBANG_LANG`. Por exemplo: [.programlisting] .... SHEBANG_LANG= lua .... ==== [[uses-shebangfix-ex-ksh]] .Especificando todos os Caminhos ao Adicionar um Interpretador para `USES=shebangfix` [example] ==== Se isto não estiver definido ainda, e não tiver valores padrão para `interp_OLD_CMD` e `interp_CMD` a entrada Ksh poderia ser definida como: [.programlisting] .... SHEBANG_LANG= ksh ksh_OLD_CMD= "/usr/bin/env ksh" /bin/ksh /usr/bin/ksh ksh_CMD= ${LOCALBASE}/bin/ksh .... ==== [[uses-shebangfix-ex-strange]] .Adicionando uma Localização Estranha para um Interpretador [example] ==== Alguns softwares usam localizações estranhas para um interpretador. Por exemplo, um aplicativo pode esperar que Python esteja localizado em [.filename]#/opt/bin/python2.7#. O caminho estranho a ser substituído pode ser declarado no [.filename]#Makefile# do port: [.programlisting] .... python_OLD_CMD= /opt/bin/python2.7 .... ==== [[uses-shebangfix-ex-regex]] .`USES=shebangfix` com a variável `SHEBANG_REGEX` [example] ==== Para corrigir todos os arquivos em `${WRKSRC}/scripts` finalizados com [.filename]#.pl#, [.filename]#.sh# ou [.filename]#.cgi# faça assim: [.programlisting] .... USES= shebangfix SHEBANG_REGEX= ./scripts/.*\.(sh|pl|cgi) .... [NOTE] ====== `SHEBANG_REGEX` é usada executando `find -E`, que usa expressões regulares modernas, também conhecidas como expressões regulares estendidas. Veja man:re_format[7] para maiores informações. ====== ==== [[uses-shebangfix-ex-glob]] .`USES=shebangfix` com a variável `SHEBANG_GLOB` [example] ==== Para corrigir todos os arquivos em `${WRKSRC}` finalizados com [.filename]#.pl# ou [.filename]#.sh#, faça assim: [.programlisting] .... USES= shebangfix SHEBANG_GLOB= *.sh *.pl .... ==== [[uses-shebangfix-ex-files]] .`USES=shebangfix` com a variável `SHEBANG_FILES` [example] ==== Para corrigir os arquivos [.filename]#script/foobar.pl# e [.filename]#script/*.sh# dentro de `${WRKSRC}`, faça assim: [.programlisting] .... USES= shebangfix SHEBANG_FILES= scripts/foobar.pl scripts/*.sh .... ==== [[uses-sqlite]] == `sqlite` Argumentos possíveis: (none), `2`, `3` Adiciona uma dependência SQLite. A versão padrão usada é 3, mas usar a versão 2 também é possível usando o modificador `:2`. [[uses-ssl]] == `ssl` Argumentos possíveis: (none), `build`, `run` Fornece suporte para OpenSSL. Uma dependência apenas de compilação ou run-time pode ser especificada usando `build` ou `run`. Estas variáveis estão disponíveis para uso do port, elas também são adicionadas para a variável `MAKE_ENV`: `OPENSSLBASE`:: Caminho para a base de instalação do OpenSSL. `OPENSSLDIR`:: Caminho para arquivos de configuração do OpenSSL. `OPENSSLLIB`:: Caminho para as bibliotecas do OpenSSL. `OPENSSLINC`:: Caminho para os includes do OpenSSL. `OPENSSLRPATH`:: Se definido, o caminho que o vinculador precisa usar para localizar as bibliotecas do OpenSSL. [TIP] ==== Se um port não for compilado com um flavor OpenSSL, defina a variável `BROKEN_SSL`, e possivelmente a variável `BROKEN_SSL_REASON_flavor`: [.programlisting] .... BROKEN_SSL= libressl BROKEN_SSL_REASON_libressl= needs features only available in OpenSSL .... ==== [[uses-tar]] == `tar` Argumentos possíveis: (none), `Z`, `bz2`, `bzip2`, `lzma`, `tbz`, `tbz2`, `tgz`, `txz`, `xz` Define a variável `EXTRACT_SUFX` para `.tar`, `.tar.Z`, `.tar.bz2`, `.tar.bz2`, `.tar.lzma`, `.tbz`, `.tbz2`, `.tgz`, `.txz` ou `.tar.xz` respectivamente. [[uses-tcl]] == `tcl` Argumentos possíveis: _version_, `wrapper`, `build`, `run`, `tea` Adiciona uma dependência para o Tcl. Uma versão específica pode ser requisitada usando _version_. A versão pode estar vazia, um ou mais números exatos de versão (atualmente `84`, `85` ou `86`), ou um número mínimo de versão (atualmente `84+`, `85+` ou `86+`). Para solicitar apenas um wrapper sem uma versão especifica, use `wrapper`. Uma dependência somente de compilação ou run-time pode ser especificada usando `build` ou `run`. Para compilar o port usando Tcl Extension Architecture, use o `tea`. Depois de incluir [.filename]#bsd.port.pre.mk# o port pode inspecionar os resultados usando estas variáveis: * `TCL_VER`: seleciona a versão major.minor do Tcl * `TCLSH`: caminho completo do interpretador do Tcl * `TCL_LIBDIR`: caminho das bibliotecas do Tcl * `TCL_INCLUDEDIR`: caminho dos arquivos de cabeçalho C do Tcl * `TK_VER`: versão major.minor do Tk que foi escolhida * `WISH`: caminho completo do interpretador do Tk * `TK_LIBDIR`: caminho das bibliotecas do Tk * `TK_INCLUDEDIR`: caminho dos arquivos de cabeçalho C do Tk [[uses-terminfo]] == `terminfo` Argumentos possíveis: (none) Adiciona <> ao arquivo [.filename]#plist#. Use quando o port instalar arquivos [.filename]#*.terminfo# em [.filename]#${PREFIX}/shared/misc#. [[uses-tk]] == `tk` Os mesmos argumentos para `tcl` Um pequeno wrapper ao usar os dois Tcl e Tk. As mesmas variáveis são retornadas assim como quando estiver usando Tcl. [[uses-uidfix]] == `uidfix` Argumentos possíveis: (none) Altera algum comportamento padrão (principalmente de variáveis) do sistema de compilação para permitir instalar este port como um usuário normal. Tente isso no port antes de usar <> ou de aplicar algum patch. [[uses-uniquefiles]] == `uniquefiles` Argumentos possíveis: (none), `dirs` Torna arquivos ou diretórios 'exclusivos', adicionando um prefixo ou sufixo. Se o argumento `dirs` é usado, o port precisa de um prefixo (e apenas um prefixo) baseado em `UNIQUE_PREFIX` para diretórios padrão `DOCSDIR`, `EXEMPLESDIR`, `DATADIR`, `WWWDIR`, `ETCDIR`. Estas variáveis estão disponíveis para os ports: * `UNIQUE_PREFIX`: O prefixo a ser usado para diretórios e arquivos. Padrão: `${PKGNAMEPREFIX}`. * `UNIQUE_PREFIX_FILES`: Uma lista de arquivos que precisam ser prefixados. Padrão: vazio. * `UNIQUE_SUFFIX`: O sufixo para ser usado por arquivos. Padrão: `${PKGNAMESUFFIX}`. * `UNIQUE_SUFFIX_FILES`: Uma lista de arquivos que precisam estar com um sufixo. Padrão: vazio. [[uses-varnish]] == `varnish` Argumentos possíveis: `4`, `6` Manipula dependências do Varnish Cache. `4` irá adicionar uma dependência do package:www/varnish4[]. `6` irá adicionar uma dependência do package:www/varnish6[]. [[uses-webplugin]] == `webplugin` Argumentos possíveis: (none), `ARGS` Cria e remove automaticamente links simbólicos para cada aplicação que suporta o framework do webplugin. `ARGS` pode ser um dos: * `gecko`: suporte a plug-ins baseados no Gecko * `native`: suporte a plug-ins para o Gecko, Opera e WebKit-GTK * `linux`: suporte a plug-ins do Linux * `all` (padrão, implícito): suporta todos os tipos de plug-ins * (entradas individuais): suporta apenas os navegadores listados Essas variáveis podem ser ajustadas: * `WEBPLUGIN_FILES`: Sem padrão, deve ser definido manualmente. Os arquivos de plug-in para instalar. * `WEBPLUGIN_DIR`: O diretório para instalar os arquivos de plug-in, padrão [.filename]#PREFIX/lib/browser_plugins/WEBPLUGIN_NAME#. Defina isso se o port instalar arquivos de plug-in fora do diretório padrão para previnir links simbólicos quebrados. * `WEBPLUGIN_NAME`: O diretório final para instalar os arquivos de plug-in, padrão `PKGBASE`. [[uses-xfce]] == `xfce` Argumentos possíveis: (none), `gtk2` Fornece suporte para ports relacionados ao Xfce. Veja crossref:special[using-xfce,Usando o Xfce] para detalhes. O argumento `gtk2` especifica que o port requer suporte a GTK2. Ele adiciona recursos adicionais fornecidos por alguns componentes principais, por exemplo, package:x11/libxfce4menu[] e package:x11-wm/xfce4-panel[]. [[uses-xorg]] == `xorg` Argumentos possíveis: (none) Fornece uma maneira fácil para depender dos componentes X.org. Os componentes devem ser listados na variável `USE_XORG`. Os componentes disponíveis são: [[using-x11-components]] .Componentes Disponíveis do X.Org [cols="1,1", frame="none", options="header"] |=== | Nome | Descrição |`dmx` |Biblioteca de extensão DMX |`fontenc` |Biblioteca fontenc |`fontutil` |Crie um índice de arquivos de fontes X em um diretório |`ice` |Biblioteca Inter Client Exchange para X11 |`libfs` |Biblioteca FS |`pciaccess` |Biblioteca Genérica de acesso ao PCI |`pixman` |Biblioteca de manipulação de pixels de baixo nível |`sm` |Biblioteca de Gerenciamento de Sessão para X11 |`x11` |Biblioteca X11 |`xau` |Biblioteca do Protocolo de Autenticação para o X11 |`xaw` |Biblioteca de Widgets do X Athena |`xaw6` |Biblioteca de Widgets do X Athena |`xaw7` |Biblioteca de Widgets do X Athena |`xbitmaps` |Arquivos bitmaps do X.Org |`xcb` |Biblioteca do protocolo X C-language Binding (XCB) |`xcomposite` |Biblioteca de extensão X Composite |`xcursor` |Biblioteca de carregamento do cursor X no lado do cliente |`xdamage` |Biblioteca de extensão X Damage |`xdmcp` |Biblioteca do Protocolo de Controle do X Display Manager |`xext` |Biblioteca de Extensão X11 |`xfixes` |Biblioteca de extensão X Fixes |`xfont` |Biblioteca de fontes do X |`xfont2` |Biblioteca de fontes do X |`xft` |API de fontes do lado do cliente para aplicativos X |`xi` |Biblioteca de extensão X Input |`xinerama` |Biblioteca X11 Xinerama |`xkbfile` |Biblioteca XKB |`xmu` |Biblioteca de Utilitários Diversos do X |`xmuu` |Biblioteca de Utilitários Diversos do X |`xorg-macros` |Macros aclocal de desenvolvimento X.Org |`xorg-server` |Servidor X do X.Org e programas relacionados |`xorgproto` |xorg protocol headers |`xpm` |Biblioteca Pixmap do X |`xpresent` |Biblioteca de Extensão X Present |`xrandr` |Biblioteca de extensão X Resize e Rotate |`xrender` |Biblioteca de extensão X Render |`xres` |Biblioteca de uso X Resource |`xscrnsaver` |Biblioteca XScrnSaver |`xshmfence` |Memória compartilhada 'SyncFence' primitiva de sincronização |`xt` |Biblioteca X Toolkit |`xtrans` |Código de rede abstrato para X |`xtst` |Extensão X Test |`xv` |Biblioteca de Extensão X Video |`xvmc` |Biblioteca X Video Extension Motion Compensation |`xxf86dga` |X DGA Extension |`xxf86vm` |Extensão X Vidmode |=== [[uses-xorg-cat]] == `xorg-cat` Argumentos possíveis: `app`, `data`, `doc`, `driver`, `font`, `lib`, `proto`, `util`, `xserver` e (none) ou um de `autotools` (default), `meson` Forneça suporte para compilação de componentes Xorg. Ele cuida da definição de dependências comuns e de um ambiente de configuração apropriado necessário. Isso é destinado apenas aos componentes do Xorg. A categoria deve corresponder às categorias upstream. O segundo argumento é o sistema de compilação a ser usado. autotools é o padrão, mas meson também é suportado. [[uses-zip]] == `zip` Argumentos possíveis: (none), `infozip` Indica que os arquivos de distribuição usam o algoritmo de compactação ZIP. Para arquivos que usam o algoritmo InfoZip, o argumento `infozip` deve ser passado para definir as dependências apropriadas.