wiki:aptSyntesisSupport

Apt Synthesis - Developing Apt software for supporting synthesis files

Informação sobre o Projecto

Licença: GPL V2 (a actual licença utilizada em todos os projectos internos da Caixa Mágica)

Necessidade que visa colmatar:

A instalação de software em distribuições de Linux começos a ser feita através de tarballs (.tar.gz). Surgiu então pelas mãos da Red Hat, os pacotes RPM (RedHat? Package Manager) e, pelas mãos da Debian, os pacotes DEB.

Os pacotes RPM/DEB são um conjunto de ficheiros compactados, sujeitos a regras (dependências, conflitos,..) e a acções antes e depois da instalação. A instalação destes pacotes é realizada através dos comandos "rpm" e "dpkg".

Contudo, cedo se verificou que estas ferramentas (os instaladores) eram limitados porque não conseguiam resolver dependências (ir buscar os pacotes necessárias à instalação de um pacote), utilizar diferentes métodos de retrieve, etc... Nasceram então os meta-instaladores como o Apt (pela Debian), Smart, YUM (Red Hat), YaST (SuSE), etc...

A Caixa Mágica tem desde 2005 contribuído activamente para o desenvolvimento do Apt-RPM (Apt mas utilizando RPM packages), acreditando ser este o melhor meta-instalador disponível. Do seu empenho, têm surgidas contribuições significativas:

  • funcionalidade de Rollback (David Pinheiro, João Abecasis) [1]
  • suporte para repositórios URPM da Mandriva / Caixa Mágica / Turbo Linux (Paulo Trezentos + patch Mandriva) [2]
  • localização para pt_PT (Paulo Trezentos) [4]

Contudo, o APT-RPM tem uma grave limitação actualmente: não suporta os ficheiros Synthesis mas apenas os hdlist completos. Os ficheiros synthesis [5], como o nome indica, são ficheiros que apenas contém os campos estritamente necessários à instalação dos pacotes sendo assim menores que os ficheiros hdlist completos (o que provoca demora [6] na instalação).

Descrição do projecto:

O projecto "Apt-Rpm Synthesis Support" implementará o suporte para os ficheiros Synthesis [5] no Apt-RPM. Este trabalho em parte utilizará a anterior contribuição de suporte para os hdlist [2] feita pelo orientador desta proposta. Esse suporte consiste nas várias classes urpmPackage*, urpmRepository*, urpmIndex* mas estenderá as mesmas para quando possível utilizar os ficheiros Systhesis.

Por outro lado, o projecto lidará com uma segunda componente: o rebuild da cache de pacotes no Apt-rpm. Ao contrário do Apt, o Apt-rpm faz o rebuild da cache mesmo quando não há mudança nos repositórios o que se torna uma clara falta de eficácia. Sempre que não houver alterações nos ficheiros Synthesis, este rebuild da cache deve ser evitado.

O projecto será desenvolvido em C++, utilizando o ambiente de desenvolvimento Eclipse e sendo hospedado, no caso de aceitação desta proposta, em : softwarelivre.sapo.pt.

Critérios de selecção: o recrutamento para os projectos Caixa Mágica no âmbito do Sapo Summer Bits foi feito em conjunto com a 4ª edição dos Estágios de Verão. Este processo consistiu no recebimento de CVs e selecção de candidatos através de entrevista.

Roadmap:

  • Fase 1: Domínio da Tecnologia

Deadline: 25 de Julho

Deliverable: IDE instalado,checkout do código, compilação, testes com reps URPM

  • Fase 2:

Deadline: Parsing dos ficheiros synthesis

Deadline: 15 de Agosto

Deliverable: lib de parsing

  • Fase 3:

Deadline: Suporte aos ficheiros Synthesis

Deadline: 29 de Agosto

Deliverable: patch de suporte

  • Fase 4:

Deadline: Optimização do rebuild da cache

Deadline: 12 de Setembro

Deliverable: patch de rebuild

  • Fase 5:

Deadline: Testes e documentação

Deadline: 23 de Outubro

Deliverable: documentação on-line e patches de contribuições

Plano de risco:

O risco é limitado porque a tecnologia Apt é conhecida e o aluno já desenvolveu em C++. De qualquer forma foram identificados os riscos e soluções:

  • dificuldades na entrada no código C++ do Apt: fornecimento do modelo de classes já disponível e umas sessões de XP (eXtreme programming) orientador-aluno.
  • haver informação nos Synthesis files em falta para o build das dependências: substituição dos dados em falta por campos em branco / dummy. Para efeitos práticos, já foi verificado que info, dependências e conflitos estão nos ficheiros synthesis.
  • o orientador não ter tempo para dar o acompanhamento previsto: o orientador este ano terá férias e tem outros projectos. De qualquer forma, sendo esta uma das áreas com que trabalha no seu doutoramento, com uma organização, reuniões semanais e mail / messenger será possível ir acompanhando totalmente o projecto.

Interacção com a comunidade / incentivos à colaboração:

O Apt-rpm é um dos meta-instaladores mais populares nas distribuições de Linux. Esta contribuição será valorizada pelas três distribuições que constituem os MAMBO labs (Mandriva, Turbo Linux e Caixa Mágica) e por todas que delas derivam.

O desenvolvimento do projecto e comunicação será feita em inglês. No final, será enviado uma contribuição upstream ao coordenado do Apt-RPM para integração do patch e contactadas as outros 2 distribuições do MANBO labs para dar a conhecer o novo suporte.

Perspectivas de continuação após o SAPO Summer bits:

O facto do universo de potenciais utilizadores ser grande, propicia a que outras contribuições para o suporte de URPM venham a ocorrer.

No âmbito da continuação deste projecto, poderão ainda vir a ser feitas outras contribuições para o Apt-rpm como: utilização dos hdlists como ficheiro de releases, armazenamento dos dados em SQLITE, etc...

Todas as contribuições para o Apt-RPM poderão ainda ser ser feitas para o Apt desde que devidamente adaptadas.

Informação sobre o orientador e co-orientador

Organização: Caixa Mágica Software

Descrição da Organização:

A Caixa Mágica é um dos projectos Open Source com maior historial em Portugal.

Nascida em ambiente universitário, no ISCTE, no ano de 2000, tem tido um crescimento estável ao longo dos últimos 8 anos alicerçada num conjunto de valores, missão, visão e estratégia [3] que a ajudam a manter o foco em tecnologias Open Source.

Em 2004 foi constituído uma empresa spin-off, sendo mantido uma forte ligação à ADETTI através de um contrato de partilha de desenvolvimento. A empresa Caixa Mágica Software teve resultados positivos em 2004 e tem tido um crescimento na ordem de 30% ao ano.

Hoje a Caixa Mágica está organizada em 3 área principais por onde se distribuem os seus 15/20 colaboradores:

  • Produto: unidade de engenharia que desenvolve a distribuição Linux Caixa Mágica. Actualmente, a CM comercializa cerca de 900 unidades / mês do seu produto entre venda on-line, loja e programas especiais.
  • Projectos / outsourcing: projectos de elevada exigência em tecnologias Open Source que os profissionais Caixa Mágica encaixam valor.
  • Investigação: projectos europeus e nacionais de R & D que fornecem tecnologia e competência às outras U.N.. Neste momento, existe um ciclo de 3 anos entre a investigação e "produtização".

Para além das acima, a CM tem 3 unidades de menor dimensão mas em crescimento: Formação, Serviços Profissionais e Appliances.

Orientador: Paulo Trezentos

Experiência profissional:

Paulo Trezentos is lecturer at ISCTE (Instituto Superior de Ciências do Trabalho e da Empresa) since 1999, teaching classes on "Operating Systems" and "Computer Architectures". As a researcher he participated in several European RTD Projects such as OPIMA, OCTALIS and OCCAMM. He was also a participant in Global Grid Forum meetings and ESA projects (HICOD 2000). In 2000, he has been granted the Prémio Milénio 2000 Expresso, for the Linux Caixa Mágica project, a national wide prize for young researchers that awards the most promising project.

He is research director of Caixa Mágica.

Paulo Trezentos graduated from ISCTE in 1999. He got a MSc in Computer Science Engineering in IST, Technical University of Lisbon. He is author and co-author of 4 books about Linux and Open Source as well as numerous technical and dissemination articles (http://paulotrezentos.polo-sul.org/articles).

URL da Proposta: http://contribsoft.caixamagica.pt/trac/wiki/aptSyntesisSupport

Informação sobre o Aluno

Identificação pessoal do aluno

Nome: André Guerreiro

Experiência anterior:

Métodos de desenvolvimento que adopta:

Descrição sobre o projecto e motivação:

Referências

[1] - http://lists.laiskiainen.org/pipermail/apt-rpm-laiskiainen.org/2006-November/000542.html

[2] - https://bitbucket.org/agrr/apt-rpm

[3] - http://www.caixamagica.pt/pag/i-cxmag2.php?id=9

[4] - http://apt-rpm.org/scm/?p=apt.git;a=commit;h=9c7cd1681d69553b67a94419ba5fa5fc4e6b0cad

[5] - http://contribdoc.caixamagica.pt/twiki/bin/view/Main/EstruturaRepositoriosEmCaixaMagicaDozeRepomd

[6] -

Last modified 14 months ago Last modified on Oct 6, 2017, 4:49:19 PM