¿Confundido sobre la construcción de paquetes OpenStack?

19

Encontré la tarea de compilación de OpenStack en el sitio Ubuntu QA, pero estoy un poco confundido acerca de los pasos de compilación.

Aquí está el enlace para los pasos de compilación: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

Del registro de compilación de jenkins, conozco los pasos de cómo Ubuntu construye un paquete Openstack:

  1. obtener el código de openstack de github, usar git clone
  2. construir openstack tar.gzarchivo usandopython setup.py sdist
  3. se usa bzrpara obtener los archivos de control de Debian, que es mantenimiento por canonical
  4. use el dchcomando para generar una nueva versión de compilación y confirmarlo en local
  5. se usa bzr builddeb -S -- -sa -us -ucpara generar el paquete fuente y el archivo de control relacionado, comodsc
  6. firma el paquete
  7. utilizar mk-build-depspara instalar dependencia
  8. utilizar sbuildpara generar los paquetes deb reales
  9. subir a repositorios de prueba

Mi pregunta es:

  1. En el paso 5, ya podemos generar los paquetes deb sin -S, pero ¿por qué finalmente lo usamos sbuildpara generarlo? ¿Esto es solo para la firma?
  2. ¿Cuál es la diferencia entre bzr builddeby sbuild?
  3. Encontré que los scripts de compilación que usaba jenkins se encuentran aquí: ~openstack-ubuntu-testing/openstack-ubuntu-testingpero cuando trato de ejecutar cualquier comando bin, siempre obtengo:

    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
    

Intenté usar pip para instalar schroot, pero parece que no tienen un ejecutor.

Por favor ayuda.

Rayo Sol
fuente
1
Abrí el enlace que proporcionó y obtuve este texto de error: HTTP ERROR 404 Problema al acceder / ver / Openstack_Testing / view / Grizzly / job / precise_grizzly_keystone_stable / 275 / consoleText. Motivo: No encontrado Powered by Jetty: //
Cristiana Nicolae
1
un enlace similar al que proporcionó es jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/…
ashubuntu

Respuestas:

1

sbuildconstruye un paquete en un entorno aislado usando schroot. En este entorno, solo se instalan las dependencias de compilación declaradas por el paquete fuente, y nada más. Esto ayuda a garantizar que la compilación no esté influenciada por el desarrollador o el entorno de CI desde el que se ejecuta. Por ejemplo, sin sbuild, la presencia de un paquete en el entorno de CI puede hacer que parezca que la compilación tiene éxito cuando en realidad era una dependencia de compilación no declarada y, por lo tanto, falla en cualquier otro lugar. Por razones de reproducibilidad y estabilidad, es mejor usar sbuild.

Robie Basak
fuente