Contribuições
Como se juntar ao time de empacotamento Fedora?
Então, voccê decidiu se juntar ao time de empacotamento do Projeto Fedora? Este guia irá conduzi-lo a sua primeira submissão de pacote.
Tornando-se um Mantenedor de Pacotes Fedora
Leia as Diretrizes
Se você nao sabe como criar um pacote RPM, consulte o tutorial em How_to_create_a_GNU_Hello_RPM_package ou mais avançado e muito mais detalhado how to create an RPM package.
Leia as Diretrizes de Empacotamento e Diretrizes para Nomear Pacotes .
Você precisa se familiarizar com estas diretrizes. Elas governam toda submissão de pacotes. Se você tver duvidas pergunte na lista Fedora de Empacotamento.
Criando uma conta no Bugzilla
Certifique-se de que você tem uma conta no Red Hat Bugzilla.
ATENÇÃO: E imprescindivel ter uma conta Fedora Account System, leia abaixo para mais informações.
O endereço de email que você usar em sua conta do bugzzila deve ser o mesmo endereço de email de que você usa no Fedora Account System e todas as coisas relacinadas ao Empacotamento Fedora.
Criando uma conta no Fedora
Crie uma conta no Fedora Account System (esta não é a mesma conta que você registrou no bugzilla)
- Visite o sistema de contas da comunidade Fedora: https://admin.fedoraproject.org/accounts/
- Clique em 'New account' e preencha os espaços em branco. Observe que o e-mail usado no FAS, deve ser o mesmo que você se cadastrou bugzilla. Isso permite que o sistema vincule os privilégios entre as duas contas.
- Depois de criar sua conta, certifique-se de assinar o CLA (se você clicar no link "My Account" no canto superior direito, você verá o CLA: CLA Done).
- Você também precisará carregar uma chave pública SSH RSA, e usar uma chave privada correspondente para acessar as máquinas Fedora via SSH. Caso tenha dúvidas, poderá consultar sobre este procedimento em here.
Observação: Dentro do FAS - https://admin.fedoraproject.org/accounts/, ao logar-se, você poderá mudar o País, e lingua para o português do Brasil se desejar.
Junte-se às listas de discussão importantes
Você pode considerar envolver-se à lista de discussão do Fedora devel-announce. É uma lista de anuncios com poucas postagens onde são publicadas importantes informações de desenvolvimento.
Você pode considerar envolver-se à lista de discussão do Fedora devel, onde são realizadas discussões sobre o desenvolvimento do Fedora. Diferentemente da lista de discussões anterior, esta é mais movimentada.
Considere também a package-announce - lista de discussão que emite notificações sobre tudo o que compete à pacotes no repositório do Fedora. Esta é uma lista de discussão também bastante movimentada.
Outra lista de discussão que você poderá considerar (pelo menos para visualizar os arquivos) é packaging. Esta é a lista de discussão da Fedora Packaging Committee, que determinam as diretrizes oficiais de pacotes para projetos do Fedora.
Certifique-se de que o software que deseja empacotar é adequado
O pacote que você está enviando pode ser de qualquer projeto de código aberto e livre que já não foi empacotado no Fedora. Antes de criar o seu pacote, certifique-se de que o software ainda não está no repositório do Fedora, ou aguardando revisão.
- Busque por Fedora packages para pacotes existentes repositório.
- Busque por Review Tracker para pacotes em análise.
- Verifique também a lista deprecated packages.
- Esteja ciente de forbidden items.
Entenda as suas responsabilidades
Componentes de software incluídos no Fedora precisam ser mantidos ativamente, e bugs-especialmente problemas de segurança-precisam ser corrigidos em tempo oportuno. Como mantenedor de pacotes do projeto Fedora, é a sua principal responsabilidade garantir isso. Nós incentivamos você a obter co-mantenedores e buscar a ajuda da Comunidade do Fedora através da lista de discussão de desenvolvimento sempre que necessário.
Leia outras submissões
Leia algumas outras submissões para aprender sobre empacotamento e para ganhar a familiaridade com o processo, e conhecer melhor as exigências.
Uma maneira de fazer isso é ingressando na lista de discussão Package-Review; Todos os comentários sobre as revisões do pacote Fedora são enviados para esta lista.
Configurando seu Git
A primeira coisa a fazer quando você configura o Fedora Packaging é configurar o seu nome de usuário e endereço de e-mail para o git. Estes são vinculados em cada commit que você faz para os pacotes Fedora.
git config --global user.name "John Doe" git config --global user.email johndoe@example.com
Instale as ferramentas do cliente (Koji) e configure seu certificado
Para compilar pacotes para a coleção Fedora ou EPEL no sistema de compilação do Fedora você precisa usar o Koji.
O pacote Fedora-Packager
fornece ferramentas para ajudá-lo a configurar e trabalhar com o Fedora; trará em tudo necessário para o trabalho de empacotamento geral. Execute o seguinte comando como root:
sudo yum install fedora-packager
Após a instalação execute o seguinte comando seu usuário (não root) para Configure os seus certificados e a configuração do cliente Koji:
fedora-packager-setup
Agora você pode usar o "Koji" para tentar construir seus pacotes RPM no sistema de compilação do Fedora, mesmo em plataformas ou versões do Fedora que você ainda não tem. Observe que você pode (e definitivamente deve) testar compilações ("Scratch") mesmo antes do seu pacote ter sido aprovado e promovido. Uma maneira simples de fazer um scratch build, é usando Koji em linha de comando:
koji build --scratch TARGET path_to_source_RPM
Onde:
- TARGET é uma palavra-chave de distribuição como f17 (isto é, Fedora 17). Você pode executar "Koji List-targets" para ver todos os targets. Para o build do próximo lançamento (Rawhide), ' ' não ' ' use "dist-Rawhide"-Use "fX" onde X é um mais do que o mais recente lançamento estável ou ramificado.
- Observe que você precisa fornecer o ' ' caminho ' ' para o código-fonte do RPM (que termina em .src.rpm), e ' ' ' não ' ' ' uma URL genérica. (se você tiver apenas o arquivo spec, use
rpmbuild --nodeps -bs SPECFILE
para criar um novo código-fonte RPM).
Seus builds Koji só podem depender de pacotes que estão realmente no TARGET do repositório da distribuição. Desta forma, você não poderá usar Koji para build nas distribuições lançadas se o seu pacote depender de outros novos pacotes que [[Bodhi|Ainda não foi liberados. Você pode usar o Koji build para Rawhide (na próxima versão não lançada), mesmo que dependa de outros novos pacotes, contanto que os outros pacotes sejam construídos em "Rawhide", conforme descrito abaixo. Se você precisa construir um pacote que não se trata de uma atualização estável e liberada, você poderá enviar um ticket para rel-ENG em: https://fedorahosted.org/rel-ENG/newticket e solicitar que esse pacote seja adicionado como um BUILDROOT override. Para pacotes em EPEL, você tem que usar o componente EPEL.
Você pode aprender mais sobre o Koji em:
koji --help # Ajuda geral koji --help-commands # Lista de comandos do koji koji COMMAND --help # Comando de ajuda usando o próprio comando
Using the Koji build system há mais informações sobre o uso de Koji.
Criar um Pacote
- Se você não souber como criar um pacote RPM, consulte How to create an RPM package.
- Certifique-se de que o pacote satisfaz o Packaging Guidelines e PackageNamingGuidelines .
- Esteja ciente da Package Review Guidelines (they will be used during the package review).
- Certifique-se do que o seu pacote constrói. Isso é surpreendentemente importante, pois a qualidade importa mais do que um número grande de submissões.
Enviar o seu Pacote
Faça upload de seu SRPM e arquivos spec em algum lugar para que outros possam recuperá-los. Isso pode ser em qualquer lugar acessível por uma URL, mas é importante que os arquivos sejam diretamente acessíveis, não escondido atrás de algum serviço que faz as pessoas esperam para baixar coisas ou redireciona através de páginas de publicidade. Se você estiver em pelo menos um grupo de projeto, então você pode usar o seu armazenamento em http://fedorapeople.org http://fedorapeople.org] para este fim. Se você não tiver feito nada com sua conta além de configurá-lo e assinar o CLA, então você pode pedir acesso suficiente para usar o espaço fedorapeople visitando the sponsors trac instance e arquivar uma solicitação de ticket ao " Initial package hosting request".
Criando seu "Review Request"
Preencha este formulário: https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora&format=fedora-review.
- Antes de enviar seu pedido, certifique-se de que não existe um pedido prévio para o mesmo pacote em package review status page.
- Certifique-se de que você colocou o nome do pacote (excluindo versão e números de lançamento) no campo
Review Summary
', juntamente com um resumo muito breve do que se trata o pacote. - Coloque uma descrição do seu pacote (geralmente, pode ser o mesmo que você colocou na descrição do especificação%) no campo '
Review Description
'. Inclua os URLs para os seus arquivos SRPM e SPEC. - Explique no ticket que este é seu primeiro pacote e que você precisa de um mentor. Inclua também qualquer informação que possa ajudar potenciais mentores. Se você esteve ativo em outros trabalhos de revisão, inclua links. Se você é o mantenedor upstream, certifique-se de dizer isso.
- Para pontos de bônus, inclua um link para um build do Koji bem sucedido para que todos saibam que você fez todos os seus trabalhos de casa.
O processo de revisão é descrito detalhadamente na página Package Review Process .
Inform Upstream
Fedora as a project prefers to stay close to upstream. Inform the developers that you are packaging the software. You can do that by sending them an email introducing yourself and pointing out the review request. This sets up the stage for future conversations. They will usually advertise the fact that their software is now part of Fedora or might want to inform you of important bugs in the existing release, future roadmaps etc.
Apresente-se
When a new package maintainer joins the Fedora Project, we request that he/she introduces themselves on the Fedora devel mailing list. To sign up for the list, visit the devel list's signup page. The primary purpose of this is to begin the process of building trust by allowing the Fedora community members to get to know you a bit more and increase the chances of your review request being processed sooner.
We want to break anonymity and foster real-world community within the project. You are under no obligation to reveal personal secrets. The objective is to establish a level of trust with yourself and the other members of the project. But you should at least use your real name when communicating with us. Also a brief description of who you are, your motivations and perhaps a description of the software you have submitted for review is advisable.
Subject: Self Introduction: <Your name> Body: Add any information you believe is applicable including past experience in free and open source projects, a link to the review request you have filed and a brief description of yourself. You can also post your GPG key information if you want to.
Watch for Feedback
Watch the Bugzilla report for your first package. You should get notifications of changes by email. Fix any blockers that the reviewer(s) point out.
Seja Patrocinado
When the package is APPROVED by the reviewer, you must separately obtain member sponsorship in order to check in and build your package. Sponsorship is not automatic and may require that you further participate in other ways in order to demonstrate your understanding of the packaging guidelines. Key to becoming sponsored is to convince an existing sponsor-level member that you understand and follow the project's guidelines and processes.
See how to get sponsored into the packager group for more information on the process of becoming sponsored.
Your sponsor can add you to the packager group. You should receive email confirmation of your sponsorship.
Add Package to Source Code Management (SCM) system and Set Owner
If you are becoming a maintainer for a new package, instead of being a co-maintainer, follow Package SCM admin requests to get a module for your new package and branches for recent releases.
This will be used to set up the proper records in the owners database, which is used for access to build the package, bugzilla population, and other features. This step creates a module in the repository your new package, with branches for each requested distribution.
Check out the module
You could check out your module now, but before doing that, consider doing mkdir ~/fedora-scm ; cd ~/fedora-scm
- that way, all your files are inside a single directory. Also, run ssh-add
, so that you won't have to keep typing in your key password.
Now you are ready to checkout your module from the SCM:
fedpkg clone <packagename>
Where <packagename>
should be replaced with the name of your package.
Teste Seu Pacote
Refer to Using_Mock_to_test_package_builds and Using_the_Koji_build_system#Scratch_Builds for more information on testing your package. Mock uses your local system while Koji command line tool uses the Fedora build system server.
Import, commit, and build your package
Now that you've checked out your (empty) package module with fedpkg, cd into the module's master branch:
cd <packagename>
Run fedpkg to import the contents of the SRPM into the SCM:
fedpkg import PATH_TO_SRPM
# Review Changes, press 'q' to stop; Revert with: git reset --hard HEAD git commit -m "Initial import (#XXXXXX)." git push fedpkg build
Obviously, replace PATH_TO_SRPM
with the full path (not URL) to your approved SRPM, and XXXXXX
with the package review bug number.
This imports into, commits, and builds only the master (Rawhide) branch.
If the commit fails with this kind of message:
W access for why DENIED to YOUR_ACCOUNT fatal: The remote end hung up unexpectedly Could not push: Command '['git', 'push']' returned non-zero exit status 128
Then you don't have the necessary rights to modify that package branch; view https://admin.fedoraproject.org/pkgdb/package/PACKAGE_NAME to request those rights.
For more information on using the Fedora package maintenance system, see the Package maintenance guide.
Update Your Branches (if desired)
Branches are f
# (formerly F-
# and before that FC-
#), master
, etc. So f41 is the branch for Fedora 41.
To switch to a branch first:
fedpkg switch-branch BRANCH (e.g. f41)
Merge the initial commit from master, creating an identical commit in the branch:
git merge master
Push the changes to the server:
git push
Build the package:
fedpkg build
If there is another branch to work with repeat "To switch to a branch" and import and commit to each branch.
If everything goes well, it should queue up your branch for building, the package will cleanly build, and you're done!
If it fails to build, the build system will send you an email to report the failure and show you to the logs. Commit any needed changes to git, bump the SPEC release number, and request a new build.
Submit Package as Update in Bodhi
The Fedora update system called Bodhi is used for pushing updates, classifying packages etc. Do not submit Rawhide (master branch) builds via Bodhi.
You can push an update using Bodhi via the command line using this in each branch:
fedpkg update
See the update submission guide for more details.
Make the package available in "comps" files
If appropriate for the package, make it available in "comps" files so that it can be selected during installation and included in yum's package group operations. See How to use and edit comps.xml for package groups for more info.
Observe se há atualizações
Fedora has infrastructure available for monitoring new upstream releases of the software you are packaging. Refer to Upstream Release Monitoring for more details.
Obtendo ajuda
We know that this process can be as clear as mud sometimes, and we're always trying to make it better. If you run into any problems, or have any questions, please ask on the devel mailing list or in #fedora-devel[?] on freenode.net.
The Fedora Mentors Project has people willing to help new contributors in their packaging efforts. See the Mentors page for more information.
Getting a new package into Fedora Package Collection for existing maintainers
If you already maintain a package in Fedora and want to maintain another, follow the new package process for existing contributors .