Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pt:manual:contrib:packaging_guidelines [2020/05/02 04:13]
i3_relativism [13 - GPG]
pt:manual:contrib:packaging_guidelines [2022/03/28 17:34] (current)
i3_relativism ↷ Página movida de pt:contrib:packaging_guidelines a pt:manual:contrib:packaging_guidelines
Line 1: Line 1:
 ... (WIP) ... (WIP)
- + 
 ====== Diretrizes de Empacotamento====== ====== Diretrizes de Empacotamento======
 As **Diretrizes de Empacotamento do projeto Hyperbola** e o compromisso que nós, Hyperbola, fizemos com à comunidade de software livre em geral e aos nossos usuários em particular. É por isso que as nossas diretrizes de empacotamento seguirão sempre a filosofia de __liberdade__, __privacidade__, __estabilidade__ e __segurança__. As **Diretrizes de Empacotamento do projeto Hyperbola** e o compromisso que nós, Hyperbola, fizemos com à comunidade de software livre em geral e aos nossos usuários em particular. É por isso que as nossas diretrizes de empacotamento seguirão sempre a filosofia de __liberdade__, __privacidade__, __estabilidade__ e __segurança__.
   - **Liberdade**: Todos os pacotes distribuidos pela Hyperbola seguem as [[https://www.gnu.org/distros/free-system-distribution-guidelines.pt-br.html|Diretrizes para Distribuições de Sistemas Livres]]. Portanto, não incluimos ou recomendamos software ou documentação não-livre e não fornecemos nenhum tipo de suporte para a instalação ou execução de software não-livre. Isso inclui:   - **Liberdade**: Todos os pacotes distribuidos pela Hyperbola seguem as [[https://www.gnu.org/distros/free-system-distribution-guidelines.pt-br.html|Diretrizes para Distribuições de Sistemas Livres]]. Portanto, não incluimos ou recomendamos software ou documentação não-livre e não fornecemos nenhum tipo de suporte para a instalação ou execução de software não-livre. Isso inclui:
-  * a) Software não-livre +    * a) Software não-livre 
-  * b) [[https://www.gnu.org/philosophy/who-does-that-server-really-serve.html|SaaSS (Serviço como um Substituto de Software)]] +    * b) [[https://www.gnu.org/philosophy/who-does-that-server-really-serve.pt-br.html|SaaSS (Serviço como um Substituto de Software)]] 
-  * c) Firmware ou Blobs que são fornecidos somente como binários.+    * c) Firmware ou Blobs que são fornecidos somente como binários.
   - **Privacidade**: O projeto Hyperbola tem como objetivo apoiar a [[https://www.gnu.org/philosophy/surveillance-vs-democracy.pt-br.html|privacidade]] de sua comunidade. Isso inclui:   - **Privacidade**: O projeto Hyperbola tem como objetivo apoiar a [[https://www.gnu.org/philosophy/surveillance-vs-democracy.pt-br.html|privacidade]] de sua comunidade. Isso inclui:
-  * a) Software empacotado com correções para garantir a segurança e impedir a vigilância global de dados revelada nos [[https://www.theguardian.com/world/interactive/2013/nov/01/snowden-nsa-files-surveillance-revelations-decoded|documentos da NSA de Snowden]] +    * a) Software empacotado com correções para garantir a segurança e impedir a vigilância global de dados revelada nos [[https://www.theguardian.com/world/interactive/2013/nov/01/snowden-nsa-files-surveillance-revelations-decoded|documentos da NSA de Snowden]] 
-  * b) Pacotes com correções adicionais que removem protocolos de nível inferior que podem causar vazamentos de privacidade, metadados/impressões digitais e vulnerabilidades. +    * b) Pacotes com correções adicionais que removem protocolos de nível inferior que podem causar vazamentos de privacidade, metadados/impressões digitais e vulnerabilidades. 
-  - **FHS**: Todos os pacotes seguem o [[pt:main:fhs|Filesystem Hierarchy Standard (FHS)]] que definem os principas diretorios e ficheiros em GNU/Linux ou qualquer outro sistema operativo Unix como por exemplo GNU/Hurd.  Portanto, todos os pacotes deveriao ser fixados utilizando este estandarte, sem qualquer exepcoes. +  - **FHS**: Todos os pacotes seguem o [[pt:project:fhs|Filesystem Hierarchy Standard (FHS)]] que definem os principas diretorios e ficheiros em GNU/Linux ou qualquer outro sistema operativo Unix como por exemplo GNU/Hurd.  Portanto, todos os pacotes deveriao ser fixados utilizando este estandarte, sem qualquer exepcoes. 
-...(WIP) +  - **Projetos de software Livre**: Se existir software com versao estavel disponivel entao essa deveria ser escolhida em vez da versao currente, existem exemplos como
-  - **Projetos de software Livre**: If there is software that contain a stable versionthen the upstream version should be blacklisted. There are examples such as+    * a) O suporte de/a longo prazo (LTS) do kernel Linux-libre em vez da versao currente
-    * a) The long-term support (LTS) of Linux-libre kernel instead of the upstream one+    * b) A versao de software livre Iceweasel de suporte extendido (ESR) em vez da versao currente
-    * b) The extended support release (ESR) of libre version of Iceweasel instead of the upstream one+    * c) A versao estavel de Nginx em vez da versao principal
-    * c) The stable version of Nginx instead of the mainline one+    * d) A versao permanente de LibreOffice em vez da versao mais recente
-    * d) The still version of LibreOffice instead of the fresh one+    * e) A versao estavel de GnuPG em vez da versao mais moderna
-    * e) The stable version of GnuPG instead of the modern one+ ##??a Hyperbola é uma distribuição de Suporte a Longo Prazo, Long Term Support (LTS) em inglês??* 
- a Hyperbola é uma distribuição de Suporte a Longo Prazo, Long Term Support (LTS) em inglês +  - **Anti-abandonware**: O projeto Hyperbola considera projetos orfaos, aqueles que se encontram sem manutencao ou sem qualquer atividade no que diz respeito ao lancamento de remendos, pois estas criam um problema de segurancaExcepcoes sao consideradas
-===== 4 ===== +    * a) Se o pacote e necessario na esfera da funcionalidade, e nao existe nenhuma alternativa
-  - **Anti-abandonware**: Hyperbola considers orphaned projects without bugfixes and patches activity as security issue and should be blacklistedExceptions are considered+    * b) Se o pacote for uma dependencia importante para algum projeto ativo ,e em que nao existe alternativa
-    * a) If a package is needed for a functionality and there is no a current replacement for it+    * c) Se o pacote for um driver, firmware ou emulador de hardware nao existe nenhuma alternativa disponivel
-    * b) If a package is an important dependency for active projects and there is no a current replacement for it+  - **Versoes Snapshot**: Visto que o projeto Hyperbola e uma distribuicao de Suporte de Longo Prazo (LTS); todos os pacotes sao baseados !??snapshots=what??Arch atraves das datas acima mencionadas, quer seja nas mailing lists do projecto hyperbolaou pagina principal e desenhadas para serem suportadas por um periodo maior do que o normal ate proxima publicacao estavelAs seguintes exepcoes sao consideradas
-    * c) If a package is a driver, firmware or hardware emulation and there is no a current replacement for it. +    * a) Se versao de um pacote e 1.1.0, e caso exista um !!!*bugfix*!!! 1.1.1, esta podera ser actualizadavisto que e uma revisao, e nao uma mudanca drasticacomo seria uma actualizao !!!*por completo!!!
-===== 5 ===== +    * b) Se versao de um pacote na *!!snapshot!!* e 1.1.0.a, e existe um !!bugfix!! na versao 1.1.0.b, esta podera ser actualizadavisto que e uma revisao, e nao uma mudanca drasticacomo seria uma actualizao !!!*por completo!!!
-  - **Snapshot versions**: Since Hyperbola is a long-term support (LTS) distributionall packages are based on Arch snapshots from the above-mentioned date announced in the Hyperbola mailing lists or main pageand designed to be supported for longer than normal period until the [[en:main:releases|next stable release]]Exceptions are considered+    * c) Se versao de um pacote pacote na *!!snapshot!!* 1.1.0-beta, e se houver uma versao final 1.1.0, esta podera ser actualizada
-    * a) If package version in the snapshot is 1.1.0, and there is a bugfix in 1.1.1, it could be upgraded because it is a revisionnot a strong upgrade or a drastic version change+    * d) Se versao de um pacote pacote na *!!snapshot!!* 1.1.0-beta, e sem haver planos para uma versao final, se existir 2.0.0-rc, esta podera ser actualizada como uma exepcao
-    * b) If package version in the snapshot is 1.1.0.a, and there is a bugfix in 1.1.0.b, it could be upgraded because it is a revisionnot a strong upgrade or a drastic version change+    * e) Se versao de um pacote na *!!snapshot!!* 1.1.0 depende de um projecto em abandonware (ex. OpenRC 0.25.x depende de SysVinit), e se houver uma versao 1.2.0 como alternativaesta podera ser como versao de upgrade.(ex. SysVinit que foi substituido por openrc-init na versao 0.28.x de OpenRC
-    * c) If package version in the snapshot is 1.1.0-beta, and there is a final version in 1.1.0, it could be upgraded+    * f) Se versao de um pacote na *!!snapshot!!* em suporte de longo-prazo (LTS), todos os lancamentos, mesmo as subversoes sao aceites como excepcao, como por exemplo a publicacao de ESR 52 na versao livre de Iceweasel (ex. 52.x.x). 
-    * d) If package version in the snapshot is 1.1.0-beta without plans for a final versionand there is a 2.0.0-rc, it could be upgraded as exception+    * g) Se versao de um pacote necessite de substituir algumas partes relativas segurancapor uma versao mais recentemas nao e pratico de fazer backport, uma nova versao poderaser considerada como excepcao (veja retificacao de Backports para mais detalhes). 
-    * e) If package version in the snapshot is 1.1.0 and depends on abandonware project (eg. OpenRC 0.25.x depends on SysVinit), and there is a 1.2.0 with a replacementit could be upgraded as bugfix version. (eg. SysVinit is replaced with openrc-init in OpenRC 0.28.x). +  - **Publicacao de pacotes**: Todos os pacotes com versao especifica no pkgrel, para os empacotadores fazerem atualizacoes aos flags de configuracao no PKGBUILD. Este e por padrao definido em 1, para cada versao, do software upstream publicada, que seja estavel, e incrementado de acordo com as actualizacoes atraves do PKGBUILD, contudo se este pacote provenir do projecto Arch ou o seu AUR, com modificacoes para o projecto Hyperbola, entao deveria ser defenido em “$archreleasenumber.hyperbola$hyperbolareleasenumber” (ex. pkgrel=1.hyperbola1). As seguintes exepcoes sao consideradas
-    * f) If package version in the snapshot is a long-term support (LTS) projectall minor versions of a release series are accepted as exception such as ESR 52 series in the libre version of Iceweasel (eg. 52.x.x). +    * a) Se nao foi modificado nos pacote(s) oficiais do projecto Arch ou o seu AUR
-    * g) If package version needs taking security parts from newer versionbut it is inefficient to be backporteda newer version could be considered as exception (see Backporting amendment for further details). +    * b) Se um pacote e proveninete de um projecto substituto livre (exkernel Linux-libre) ou outro projecto substituto livre nao incluido no projecto Arch ou o seu AUR. 
- +  - **Backporting**: O projecto Hyperbola utiliza o termo backporting para descrever um pacote proviniente de uma versao mais recenteajustada e adaptada para o uso da versao currente estavelNecessitando o rempacotamento como a versao aproprieada “backports$backportsreleasenumber” oficial do projecto for official Arch, AUR or Hyperbola packages (eg. pkgrel=1.backports1) and Arch or AUR packages modified by Hyperbola (eg. pkgrel=1.hyperbola1.backports1) until the next stable release. Backporting is accepted in Hyperbola as exception, but under the following conditions: 
-===== 6 ===== +    * a) Se o pacote atual utilizo na versao estavel necessita de algumas modificacoes, espalhadas por ficheiros multiplos de codigo fonte, para resolver algum problema especifico (exproblema de segurancae nao e pratico ou eficiente ser reparado
-  - **Package release**: All packages contain a release number specific in the pkgrel for package maintainers to make updates to the package's configure flags inside PKGBUILD. This is typically set to for each new stable upstream software release and incremented for intermediate PKGBUILD updateshowever if a package comes from Arch or AUR with modifications made for Hyperbola, then it should set to "$archreleasenumber**.hyperbola$hyperbolareleasenumber**" (eg. pkgrel=1**.hyperbola1**). Exceptions are considered+    * b) Todas as novas versoese todas as librarias e pacotes de dependencia  deverao ser rempacotados com versao aproprada, visto que este sera recompilado num sistema estavel pra que este corra sem a estas estarem presentesEste sufixo e aplicado ate a proxima versao estavel ser publicada
-    * a) If a package was not modified from official Arch or AUR package(s). +    * c) Todas as novas versoes deverao seguir as indicacoes do Guia de empacotamento do projecto Hyperbola, utilizando sua data de publicacao como a versao snapshot, isto significa o projecto Hyperbola nao ira aceitar mudancas drasticas de versoes recurrentes, quando reparo e possivel
-    * b) If a package was built from a libre replacement project (eg. Linux-libre kernelor another libre project not included in Arch or AUR. +  - **Licensa Pacotes**: Todos os pacotes que contem um campo especificando licensa(s) fontes que se aplica ao pacote utilizando licences usados usualmente em /usr/share/licenses/common. significando que se o codigo fonte esta compreendido por uma licenca que esta disponivel em /usr/share/licenses/common (exGPLv3), simplesmente devera ser referenciado no campo da licensa do pacote (ex. license=('GPLv3')). Se nao for o casoentao esta devera ser incluida no pacote e defenida como ('custom:LicenseName'). O ficheiro da Licenca devera ser colocados em /usr/share/licenses/$pkgname aquando compilamento do pacoteSe mais que uma licenca seja aplicavelsigua as segintes comndicoes
-===== 7 ===== +    * a) Se o cofigo fonte do projecto upstream fornece preferencia na escolha da licensaadicione apenas essa mesma licensa no campo respectivo do pacoteEsta necessita de ser compativel com a licensa de todas as librarias ligadas a que esse pacote depende. (exSe a licensa escolhida, por exemplo, do pacote ffmpeg for a versao de LGPL, entao o parametro de configuracao `enable-version3` tem de ser adicionado ao PKGBUILD de ffmpeg para activar esta opcao de licensiamento, para utilizar as librarias com licensa compativel a LGPLv3). 
-  - **Backporting**: Hyperbola uses the term backporting to describe a package built from a newer versionadjusted and adapted for usage on the [[en:main:releases|current stable release]]It requires be repackaged with the appropriate package release "**backports$backportsreleasenumber**" for official Arch, AUR or Hyperbola packages (eg. pkgrel=1**.backports1**) and Arch or AUR packages modified by Hyperbola (eg. pkgrel=1.hyperbola1**.backports1**) until the [[en:main:releases|next stable release]]. Backporting is accepted in Hyperbola as exception, but under the following conditions: +    * b) Se o codigo fonte upstream contiver ficheiros com variadas licensaadicione somente as mais relevantes no campo de licensa do pacote
-    * a) If the current package used on the [[en:main:releases|current stable release]] needs many modifications spread across multiple files of the code to solve some specific issue (egsecurity issueand it is inefficient to be fixed+    * c) Todas as licensas mais relevantes escolhidas, e ficheiros compativeis do codigo fonte a upstream, deveram ser colocadas em /usr/share/licenses/$pkgname. 
-    * b) All newer version packages and its required newer version library and dependency packages should be repackaged with the appropriate package release toosince it will be rebuilt in stable environment so that it will run without new librariesThis suffix is applied until the [[en:main:releases|next stable release]]+  - **remendos Debian**: Todos os pacotes contaem, remendos de seguranca/estabilidade do projecto Debian, de forma a seguir o Contracto Soial e o programa de automacao de a aplicacao de remendosPKGBUILD de o pacote mdadm's, e utilizado como exemplo para todos os outros pacotesAs seguintes exepcoes sao consideradas
-    * c) All newer version packages should follow the snapshot version rules from Hyperbola Packaging Guidelines using its release date as a snapshot versionit means Hyperbola **will not accept** recurrent drastic version changes as long as fixing is possible. +    * a) Se o projecto Debian nao manteve os pacotes necessariosNeste casodeveriamos usar os remendos dp projecto Devuan ou Gentoo. 
-===== 8 ===== +    * b) Se nao existirem remendos disponiveis para os pacotes necessarios
-  - **Package licenses**: All packages contain license field that specifies the license(s) source that apply to the package using the commonly used licenses in /usr/share/licenses/common. It means, if a source is under a license which is available in /usr/share/licenses/common (egGPL-2), simply it should be referenced in the package license field (eg. license=('GPL-2')). If it is not the casethen it should be included in the package itself and set license=('custom:LicenseName'). The license file should be placed in /usr/share/licenses/$pkgname when building the packageIf multiple licenses are applicablethe conditions are+    * c) Para os kernel(s) Linux-libre 
-    * a) If an upstream source provides the preference to choose a licenseadd only that license in the package license fieldThe chosen license must be compatible with the linked library dependencies used by the package. (egif the chosen license for ffmpeg is the version of LGPL, then the configure parameter `--enable-version3` must be added in ffmpeg'PKGBUILD to activate this licensing option and use the LGPL-3 compatible libraries). +  - **HTTPS tarballs**: Todos os pacotes precisam de ser construidos atraves de codigo fonte atraves da tarball oficial e nao atravez do sistema de controlo de versao (VCS). Portantotodo o empacotamento deve ser proveniente das mesmastrballs atraves do seu site HTTPS. As seguintes exepcoes sao consideradas
-    * b) If an upstream source contains files with many different licensesadd only the primary ones in the package license field+    * a) Se nao existir site HTTPS. Nesse caso, HTTP e a opcao alternativa
-    * c) All chosen primary and compatible license files from the upstream source should be placed in /usr/share/licenses/$pkgname. +    * b) Se nao existir site HTTP. Nesse caso, FTP e a opcao alternativa
-===== 9 ===== +    * c) Se nao existir quaisquer tarball oficialNeste caso, tarballs dos repositorios oficiais, do projecto Debian e a opcao alternativa
-  - **Debian patches**: All packages contain Debian security/stability patches to follow the Social Contract and the program **quilt** to automate the patchingThe **[[https://git.hyperbola.info:50100/packages/core.git/plain/mdadm/PKGBUILD|mdadm'PKGBUILD]]** is used as example for all packagesExceptions are considered+    * d) Se existir uma tarball official, contudo tarballs dos repositorios oficiais, do projecto Debian however tarballs from the official Debian repositories contain bugfixes. In this case, the official tarballs from Debian should be used by default. (eg. Mutt+NeoMutt bugfixes) 
-    * a) If Debian does not maintain the required packageIn this casewe should use the Devuan or Gentoo patches+    * e) Se existir uma tarball officialcontudo requere o download de submodulos git, para o compilamento desde do codigo fonteNeste casoas tarballs oficiais dos repositories do projecto Debian e a opcao alternativa
-    * b) If there are no patches available for the required package+    * f) Se nao existir tarball disponiveisNeste casoeste deve utilizar um tag ou branch especifico de o sistema de controlo de versao (VCS) e rempacotar com o sufixo aproprieado (ex. -bzr para Bazaar, -git para Git, -hg para Mercurial -svn para Subversion) ate que versao final seja publicada
-    * c) For Linux-libre kernels. +    * g) Se nao existir tarballs com suporte para GNU/Linux, tags ou branchsNeste casoeste deve utilizar a branch principal de o sistema de controlo de versao (VCS) e rempacotar com o sufixo aproprieado (ex. -bzr para Bazaar, -git para Git, -hg para Mercurial -svn para Subversion) ate que versao com suporte para GNU/Linux seja publicada
-===== 10 ===== +  - **SHA-512**: Todos os pacotes deveram sempre e somente usar funcoes criptograficas SHA-512. Outras funcoes de hashing criptograficas como MD5 and SHA-1 nao deverao ser usadas pois estes protocolos estao seriamente comprometidos, no que diz respeitoAs seguintes exepcoes sao consideradas
-  - **HTTPS and tarballs**: All packages need to be built from the source through its official tarball not from a version control system (VCS). Thereforeall packages should be fixed using the required tarball from its HTTPS siteExceptions are considered+    * a) Se o pacoteemquestao utiliza um sistema de controlo de versao (VCS) pois este nao suporta GNU/Linux e/ou tarballs.
-    * a) If there is not an HTTPS siteIn this case, HTTP is the alternative option+
-    * b) If there is not an HTTP siteIn this case, FTP is the alternative option+
-    * c) If there is no an official tarball. In this case, tarballs from the official Debian repositories is the alternative option+
-    * d) If there is an official tarball, however tarballs from the official Debian repositories contain bugfixes. In this case, the official tarballs from Debian should be used by default. (eg. Mutt+NeoMutt bugfixes) +
-    * e) If there is an official tarball, however it requires download git submodules to be built from the sourceIn this case, tarballs from the official Debian repositories is the alternative option+
-    * f) If there are no available tarballsIn this caseit should be used in a specific tag or branch from a version control system (VCS) and repackaged with the appropriate suffix (eg**-bzr** for Bazaar, **-git** for Git, **-hg** for Mercurial and **-svn** for Subversion) until a final version is available+
-    * g) If there is not support for GNU/Linux in tarballs, tags or branchesIn this case, a master branch from a version control system (VCS) could be used temporarily and repackaged with the appropriate suffix (eg**-bzr** for Bazaar, **-git** for Git, **-hg** for Mercurial and **-svn** for Subversion) until final version with GNU/Linux support is available. +
-===== 11 ===== +
-  - **SHA-512**: All packages should use SHA-512 cryptographic hash functions onlyOther cryptographic hash functions such as MD5 and SHA-1 should not be used because they are severely compromisedExceptions are considered+
-    * a) If the package is using a version control system (VCS) because it does not contain GNU/Linux support or/and tarballs. +
   - **GPG**: Todos os pacotes na Hyperbola devem usar a verificação de assinatura. As exceções são consideradas se:   - **GPG**: Todos os pacotes na Hyperbola devem usar a verificação de assinatura. As exceções são consideradas se:
-  * a) Tarballs não contenham tais assinaturas. +    * a) Tarballs não contenham tais assinaturas. 
-===== 14 - Anti-ofuscação ===== +  **Anti-ofuscação**: A ofuscação é o ato deliberado de criar código ofuscado, ou seja, código fonte que é difícil para os seres humanos entenderem. Todo código ofuscado será rejeitado na Hyperbola sem exceções.
-A ofuscação é o ato deliberado de criar código ofuscado, ou seja, código fonte que é difícil para os seres humanos entenderem. Todo código ofuscado será **rejeitado** na Hyperbola sem exceções. +
- +
-  - **Anti-obfuscation**: obfuscation is the deliberate act of creating obfuscated code, i.e. source or machine code that is difficult for humans to understand. All obfuscated code will be rejected without exceptions. +
-... (WIP) +
- +
- +
- +
- +
- +
- +
- +
- +