5.3. Categorização

5.3.1. CATEGORIES

Quando um pacote é criado, ele é colocado em /usr/ports/packages/All e links são feitos de um ou mais subdiretórios de /usr/ports/packages. Os nomes desses subdiretórios são especificados pela variável CATEGORIES. O objetivo é facilitar a vida do usuário quando ele estiver vasculhando a pilha de pacotes no site FTP ou no CD-ROM. Por favor, dê uma olhada na lista atual de categorias e escolha as que são adequadas para o port.

Esta lista também determina de onde, na árvore de ports, o port será importado. Se houver mais de uma categoria aqui, os arquivos do port devem ser colocados no subdiretório com o nome da primeira categoria. Veja abaixo para mais informação sobre como escolher as categorias certas.

5.3.2. Lista Atual de Categorias

Aqui está a lista atual de categorias de ports. As marcadas com um asterisco (*) são categorias virtuais - aquelas que não possuem um subdiretório correspondente na árvore de ports. Elas são usadas ​​apenas como categorias secundárias e apenas para fins de pesquisa.

Nota:

Para categorias não virtuais, há uma descrição de uma linha em COMMENT no Makefile desse subdiretório.

CategoriaDescriçãoNotas
accessibilityPorts para ajudar usuários com deficiências. 
afterstep *Ports para apoiar o gerenciador de janelas AfterStep. 
arabicSuporte ao idioma árabe". 
archiversFerramentas de arquivamento. 
astroPorts astronômicos. 
audioSuporte de som. 
benchmarksUtilitários de benchmarking. 
biologySoftware relacionado à biologia. 
cadFerramentas de desenho assistidas por computador. 
chineseSuporte ao idioma chinês. 
commsSoftware de comunicação.Principalmente software para falar com o port serial.
convertersConversores de código de caracteres. 
databasesBancos de dados. 
deskutilsCoisas que costumavam estar na área de trabalho antes dos computadores serem inventados. 
develUtilitários de desenvolvimento.Não coloque bibliotecas aqui só porque são bibliotecas. Elas não deveriam estar nesta categoria, a menos que elas realmente não pertençam a nenhum outro lugar.
dnsSoftware relacionado ao DNS. 
docs *Meta-ports para documentação do FreeBSD. 
editorsEditores gerais.Editores especializados entram na seção para essas ferramentas. Por exemplo, um editor de fórmula matemática math, e tem editores como uma segunda categoria.
elisp *Emacs-lisp ports. 
emulatorsEmuladores para outros sistemas operacionais.Emuladores de terminal não estão aqui. Os baseados em X vão para o x11 e baseados em texto para qualquer comms ou misc, dependendo da funcionalidade exata.
enlightenment *Ports relacionados com o gerenciador de janelas Enlightenment. 
financeAplicações monetárias, financeiras e relacionadas. 
frenchSuporte ao idioma francês. 
ftpUtilitários de cliente e servidor deFTP.Se o port fala com FTP e HTTP, coloque-o em ftp com uma categoria secundária de www.
gamesJogos. 
geography *Software relacionado à geografia. 
germanSuporte ao idioma alemão. 
gnome *Ports do ProjetoGNOME. 
gnustep *Software relacionado ao ambiente de desktop GNUstep. 
graphicsUtilitários gráficos. 
hamradio *Software para rádio amador. 
haskell *Software relacionado à linguagem Haskell. 
hebrewSuporte ao idioma hebraico. 
hungarianSuporte de idioma húngaro. 
ircUtilitários do Internet Relay Chat. 
japaneseSuporte ao idioma japonês. 
javaSoftware relacionado à linguagem Java™.A categoria Java não deve ser única para um port. Salvo para ports diretamente relacionadas à linguagem Java, os mantenedores de ports também são encorajados a não usar Java como a principal categoria de um port.
kde *Ports do Projeto KDE (genérico). 
kde-applications *Aplicações do Projeto KDE. 
kde-frameworks *Bibliotecas add-on do Projeto KDE para programação com Qt. 
kde-plasma *Desktop do Projeto KDE. 
kld *Módulos carregáveis ​​do kernel. 
koreanSuporte ao idioma coreano. 
langLinguagens de programação. 
linux *Aplicações Linux e utilitários de suporte. 
lisp *Software relacionado à linguagem Lisp. 
mailMail software. 
mate *Ports relacionado ao ambiente de desktop MATE, um fork do GNOME 2. 
mathSoftware de computação numérica e outras utilidades para matemática. 
mbone *Aplicações MBone. 
miscUtilitários diversosCoisas que não pertencem em nenhum outro lugar. Se possível, tente encontrar uma categoria melhor para o port do que misc, como os ports tendem a ser negligenciados aqui.
multimediaSoftware multimídia. 
netSoftware de rede diversos. 
net-imSoftware de mensagens instantâneas. 
net-mgmtSoftware de gerenciamento de rede. 
net-p2pAplicativos de rede peer to peer. 
net-vpn *Aplicativos de Rede Privada Virtual. 
newsSoftware de notícias USENET. 
parallel *Aplicativos que lidam com o paralelismo na computação. 
pear *Ports relacionados ao framework PHP Pear. 
perl5 *Ports que exigem Perl versão 5 para rodar. 
plan9 *Vários programas de Plan9. 
polishSuporte ao idioma polonês". 
ports-mgmtPorts para gerenciar, instalar e desenvolver ports e pacotes do FreeBSD. 
portugueseSuporte ao idioma Português. 
printSoftware de Impressão.As ferramentas de editoração eletrônica (pré-visualizadores etc.) também pertencem aqui.
python *Software relacionado a linguagemPython. 
ruby *Software relacionado a linguagemRuby. 
rubygems *Ports de pacotes RubyGems. 
russianSuporte de idioma russo. 
scheme *Software relacionado à linguagem Scheme. 
sciencePorts científicos que não se encaixam em outras categorias, como astro, biologia e matemática. 
securityUtilitários de segurança. 
shellsLinha de comando do shell. 
spanish *Suporte ao idioma espanhol. 
sysutilsUtilidades do sistema. 
tcl *Ports que usam o Tcl para rodar. 
textprocUtilitários de processamento de texto.Não inclui ferramentas de editoração eletrônica, que vão para print.
tk *Ports que usam o Tk para rodar. 
ukrainianSuporte de idioma Ucraniano. 
vietnameseSuporte de idioma Vietnamita. 
wayland *Ports para suportar o servidor de display Wayland. 
windowmaker *Ports para suportar o gerenciador de janelas do WindowMaker. 
wwwSoftware relacionado à World Wide Web.O suporte ao idioma HTML também pertence aqui.
x11O X Window System e seus amigos.Esta categoria é apenas para software que suporta diretamente o sistema de janelas. Não coloque aplicativos regulares do X aqui. A maioria deles é usada em outras categorias x11- * (veja abaixo).
x11-clocksX11 relógios. 
x11-driversDrivers X11. 
x11-fmGerentes de arquivos X11. 
x11-fontsFontes X11 e utilitários de fonte. 
x11-serversServidores X11. 
x11-themesX11 temas. 
x11-toolkitsKits de ferramentas X11. 
x11-wmGerentes de janela do X11. 
xfce *Ports relacionados com o ambiente de trabalho Xfce. 
zope *Zope suporte. 

5.3.3. Escolhendo a Categoria Correta

Como muitas das categorias se sobrepõem, escolher qual das categorias será a principal categoria do port pode ser entediante. Existem várias regras que governam essa questão. Aqui está a lista de prioridades, em ordem decrescente de precedência:

  • A primeira categoria deve ser uma categoria física (veja acima). Isso é necessário para o empacotamento funcionar. Categorias virtuais e categorias físicas podem ser misturadas depois disso.

  • As categorias específicas de idioma sempre vêm em primeiro lugar. Por exemplo, se o port instalar fontes X11 em japonês, a linha CATEGORIES deve ser japanese x11-fonts.

  • Categorias específicas são listadas antes de outras menos específicas. Por exemplo, um editor de HTML é listado como www editors, e não ao contrário. Além disso, não insira net quando o port pertencer a qualquer uma das categorias irc, mail, news, security ou www, pois net está incluída implicitamente.

  • x11 é usado como uma categoria secundária somente quando a categoria principal é uma linguagem natural. Em particular, não coloque x11 na linha de categoria em aplicações X.

  • Os modes Emacs são colocados na mesma categoria de ports que a aplicação suportada pelo mode, e não em editors. Por exemplo, um mode Emacs para editar código fonte de alguma linguagem de programação entra em lang.

  • Ports que instalam módulos do kernel carregáveis ​​também têm a categoria virtual kld na sua linha CATEGORIES. Esta é uma das coisas tratadas automaticamente adicionando USES=kmod.

  • misc não aparece com nenhuma outra categoria não virtual. Se houver misc com outra categoria na linha CATEGORIES, isso significa que misc pode ser seguramente excluído e o port colocado apenas no outro subdiretório.

  • Se o port realmente não pertencer em nenhum outro lugar, coloque-o em misc.

Se a categoria não estiver claramente definida, por favor, insira um comentário sobre isso na submissão do port no banco de dados de bugs, para que possamos discuti-lo antes de importá-lo. Como committer, envie uma mensagem para a lista de discussão de ports do FreeBSD, para podermos discutir isso primeiro. Com muita frequência, novos ports são importados na categoria errada, e depois são movidos imediatamente para a categoria correta.

5.3.4. Propondo uma Nova Categoria

Como a Coleção de Ports vem crescendo com o tempo, várias novas categorias também são adicionadas. Novas categorias podem ser categorias virtuais- aquelas que não possuem um subdiretório correspondente na árvore de ports - ou físicas - aquelas que possuem. Esta seção discute os problemas envolvidos na criação de uma nova categoria física. Leia atentamente antes de propor uma nova.

Nossa prática atual tem sido a de evitar a criação de uma nova categoria física, a menos que um grande número de ports logicamente pertençam a ela, ou os ports que pertenceriam a ela sejam um grupo logicamente distinto de interesse geral limitado (por exemplo, categorias relacionadas com as línguas humanas faladas), ou de preferência ambas.

A razão para isto é que tal mudança cria uma quantidade grande de trabalho tanto para os committers quanto para todos os usuários que rastreiam alterações na coleção de ports. Além disso, propostas de alteração de categorias parecem naturalmente atrair controvérsias. (Talvez isso seja porque não há um consenso claro sobre quando uma categoria é grande o suficiente, nem quando as categorias devem ser apenas para propósitos de busca (e, portanto, qual número de categorias seria um número ideal), e assim por diante.)

Aqui está o procedimento:

  1. Proponha a nova categoria na lista de discussão de ports do FreeBSD. Inclua uma justificativa detalhada para a nova categoria, incluindo por que as categorias existentes não são suficientes, e a lista de ports existentes propostos para a mudança. (Se houver novos ports pendentes no Bugzilla que caberia nessa categoria, liste-os também.) Se você for o mantenedor e/ou o apresentador, respectivamente, mencione isso, pois isso pode ajudar no caso.

  2. Participe da discussão.

  3. Se parecer que há apoio o suficiente para a ideia, registre um PR que inclua a lógica e a lista de ports existentes que precisam ser movidos. O ideal é que este PR também inclua essas alterações:

    • Makefiles para os novos ports, uma vez que sejam recopiados

    • Makefile para a nova categoria

    • Makefile para as categorias dos ports antigos

    • Makefiles para ports que dependem dos ports antigos

    • (para crédito extra, inclua os outros arquivos que precisam ser alterados, conforme o procedimento no Guia do Committer.)

  4. Como isso afeta a infraestrutura do ports e envolve a movimentação e alteração de vários ports, pode ser necessário executar testes de regressão no cluster de build, e portanto, atribua o PR para a Equipe de Gerenciamento de Ports .

  5. Se esse PR for aprovado, um committer precisará seguir o restante do procedimento que é descrito no Guia do Committer.

A proposta de uma nova categoria virtual é semelhante à acima, mas muito menos trabalhoso, já que nenhum port terá que ser movido. Nesse caso, os únicos patches a serem incluídos no PR serão aqueles para adicionar a nova categoria na linha CATEGORIES dos ports afetados.

5.3.5. Propondo Reorganizar Todas as Categorias

Ocasionalmente alguém propõe reorganizar as categorias com uma estrutura de dois níveis, ou algum outro tipo de estrutura de palavras-chave. Até o momento, nada vem de nenhuma dessas propostas porque, embora sejam muito fáceis de fazer, o esforço envolvido com qualquer readequação de toda a coleção de ports existente é assustadora, para se dizer o mínimo. Por favor, leia o histórico dessas propostas nos arquivos da lista de discussão antes de postar essa idéia. Além disso, esteja preparado para ser desafiado a oferecer um protótipo funcional.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.