O documento descreve a história e as ferramentas do projeto Fedora, uma distribuição GNU/Linux desenvolvida pela comunidade. Ele detalha como o Fedora evoluiu de 2003 até hoje, consolidando ferramentas como Koji, Bodhi e Pungi para construir, testar e distribuir pacotes. Também explica como as ferramentas RPM, Yum, Koji, Pungi, Bodhi, PackageDB e MirrorManager funcionam para manter e atualizar a distribuição.
3. Fedora Ontem (2003)
● Fedora Core 1
– Red Hat Linux (9.0.93)
– Desenvolvimento aberto
● Repositório Core
– Engenheiros da Redhat
● Repositório Extras
– Comunidade
4. Fedora Ontem (2007)
● Fedora 7
● União dos repositórios core + extras
– 100% do código disponível via cvs
– http://cvs.fedoraproject.org/
● Implementação de novas ferramentas (new
toolbox)
– Koji
– Bodhi
– PackageDB
– Pungi
5. Fedora Hoje
● Fedora 9
● Consolidação das ferramentas criadas para
o Fedora 7
● Novas ferramentas
– MirrorManager
– Transifex
● Maior participação da comunidade
– Comunidade é maioria no FESCo (Fedora
Engineering Steering Committee)
7. RPM
● Red Hat Package Manager
● Base da distribuição Fedora
● Bom nível de estabilidade
– Versão 4.0 (2001)
– Versão 4.4 (2007)
8. Yum
● API para trabalhar com pacotes RPM
● Instalação remota de pacotes
● Resolução de dependências
● Constante evolução
● Python com alguns módulos em C
9. Koji
● Agenda a construção de pacotes para
várias arquiteturas:
– I386
– X86_64
– PPC
– PPC64
● Construção de pacotes em ambientes
chroot separados (mockbuild)
10. Koji (Cont)
● Scratch builds
● API
– Web: http://koji.fedoraproject.org/koji
– Linha de comando
● Criado para uso interno na Red Hat
● Liberado como software livre para uso no
Fedora
● Python, Cheetah, Javascript, XML-RPC
● https://fedorahosted.org/koji/
11.
12.
13.
14. Pungi
● Produção de spins
● Arquivo kickstart (fedora.ks)
– Resolução de depêndencias
– Spins variados
● Anaconda
● Python
● https://fedorahosted.org/pungi/
15.
16. Bodhi
● Atualizações de pacotes
● Filtro antes da publicação no repositório
fedora-updates
● Verificação do pacote
– Interação com Koji
– Suíte de testes automáticos
17. Bodhi (Cont)
● Permite o teste do pacote por outros
usuários
– Comentários
– Karma
● API
– Web: https://admin.fedoraproject.org/updates
– Linha de comando
● Python (TurboGears)
– https://fedorahosted.org/bodhi/
18.
19.
20.
21.
22.
23. PackageDB
● Alteração de permissões nos pacotes
– Mantenedor (ownership)
– Co-Mantenedores (co-ownerships)
● Interface web
– https://admin.fedoraproject.org/pkgdb
● Integração com outras ferramentas
– Koji
– Bugzilla
– CVS
30. MirrorManager
● Sincronizar espelhos públicos e privados ao
redor do mundo
● MirrorManager Database
– Lista de espelhos sempre atualizada
● Python (TurboGears)
● https://fedorahosted.org/mirrormanager/
33. Novos Recursos
● Membros fazem propostas de novos
recursos
● Votação pelo FESCo (Fedora Engineering
Steering Committee)
● Os recursos aprovados vão ditar as
novidades do próximo release
38. Construção de Pacotes
● CVS
– Código fonte
– Arquivo .spec
– Possíveis patches
● Koji
– Construção com base nos arquivos do CVS
– Necessário compilar corretamente nas
arquiteturas propostas
– Inclusão automática no repositório de
desenvolvimento (rawhide)