Confuso sobre a criação de pacotes OpenStack?

19

Encontrei a tarefa de compilação do OpenStack no site de controle de qualidade do Ubuntu, mas estou um pouco confuso sobre as etapas de compilação.

Aqui está o link para as etapas de compilação: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

No log de compilação do jenkins, conheço as etapas de como o Ubuntu constrói um pacote Openstack:

  1. obtenha o código openstack no github, use git clone
  2. construir openstack tar.gzarquivo usandopython setup.py sdist
  3. use bzrpara obter os arquivos de controle debian, que é a manutenção por canonical
  4. use o dchcomando para gerar uma nova versão de compilação e comprometê-la com o local
  5. use bzr builddeb -S -- -sa -us -ucpara gerar pacote de origem e arquivo de controle relacionado, comodsc
  6. assine o pacote
  7. use mk-build-depspara instalar dependência
  8. use sbuildpara gerar os pacotes deb reais
  9. fazer upload para repositórios de teste

Minhas perguntas são:

  1. Na etapa 5, já podemos gerar os pacotes deb sem -S, mas por que finalmente usamos sbuildpara gerá-los? Isso é apenas para assinatura?
  2. Qual é a diferença entre bzr builddebe sbuild?
  3. Encontrei os scripts de construção que o jenkins usou estão localizados aqui:, ~openstack-ubuntu-testing/openstack-ubuntu-testingmas quando tento executar qualquer comando abaixo bin, sempre recebo:

    root@demo:~/openstack-ubuntu-testing/bin# ./build-package
    Traceback (most recent call last):
      File "./build-package", line 14, in <module>
        from openstack_ubuntu_testing.build.component_build import ComponentBuild
      File "/home/sysadmin/openstack-ubuntu-testing/bin/openstack_ubuntu_testing/build/component_build.py", line 11, in <module>
        from schroot.executor import SchrootExecutor
    ImportError: No module named schroot.executor
    

Tentei usar o pip para instalar o schroot, mas parece que eles não têm um executor.

Por favor ajude.

Ray Sun
fonte
1
Abri o link que você forneceu e recebeu esse texto de erro: HTTP ERRO 404 Problema ao acessar / view / Openstack_Testing / view / Grizzly / job / precision_grizzly_keystone_stable / 275 / consoleText. Razão: não encontrado Powered by Jetty: //
Cristiana Nicolae
1
um link semelhante que ele forneceu é jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/…
ashubuntu

Respostas:

1

sbuildcria um pacote em um ambiente isolado usando schroot. Nesse ambiente, apenas as dependências de compilação declaradas pelo pacote de origem são instaladas e nada mais. Isso ajuda a garantir que a construção não seja influenciada pelo desenvolvedor ou pelo ambiente de IC do qual é executada. Por exemplo, sem sbuild, a presença de um pacote no ambiente de IC pode parecer que a compilação é bem-sucedida quando na verdade era uma dependência de compilação não declarada e, portanto, falha em qualquer outro lugar. Por motivos de reprodutibilidade e estabilidade, é melhor usar o sbuild.

Robie Basak
fonte