<div dir="ltr"><div dir="ltr">On Mon, Oct 24, 2022 at 1:43 PM <<a href="mailto:ohilyard@iol.unh.edu">ohilyard@iol.unh.edu</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Owen Hilyard <<a href="mailto:ohilyard@iol.unh.edu" target="_blank">ohilyard@iol.unh.edu</a>><br>
<br>
This patch series contains a new version of the DPDK CI containers. The old<br>
version was tied very tightly to the Community Lab Infrastructure, so it was<br>
not suitable for general use. This version is designed to make adding new<br>
OSes or OS versions as easy as possible. The minimum functionality can easily<br>
be built on any system that can compile DPDK. It includes support for<br>
building containers for other non-native architectures (ex: arm containers<br>
on x86) and for baking ABI references into the images.<br>
<br>
The inventory file as added in this patch series defines what the community lab<br>
currently supports.<br>
<br>
If you want to build these yourself, don't try to do parallel Makefile builds<br>
on non-server hardware. Libabigail is built into the containers, and since it<br>
is not avaliable in all distros it is compiled from source for many targets.<br>
If embedding the abi is enabled (DPDK_CI_CONTAINERS_BUILD_ABI=Y), with the<br>
current settings, DPDK will be compiled twice for every target in the<br>
inventory file. This will become three times when DPDK main has ABI stability<br>
again. Due to how the containers are constructed, building on non-native<br>
architectures is especially expensive because DPDK is compiled with an emulated<br>
compiler in a qemu vm that only has one thread.<br>
<br>
Owen Hilyard (6):<br>
  containers/docs: Add container builder start<br>
  containers/inventory: Add inventory for container builder<br>
  containers/builder: Dockerfile creation script<br>
  containers/templates: Templates for Dockerfiles<br>
  containers/container_builder: Container for python scripts<br>
  containers/Makefile: Makefile to automate builds<br>
<br>
 containers/Makefile                           | 166 ++++++++<br>
 containers/README.md                          | 138 +++++++<br>
 containers/container_builder.dockerfile       |  26 ++<br>
 containers/template_engine/inventory.yaml     | 356 ++++++++++++++++++<br>
 .../template_engine/inventory_schema.json     | 153 ++++++++<br>
 containers/template_engine/make_dockerfile.py | 240 ++++++++++++<br>
 containers/template_engine/poetry.lock        | 220 +++++++++++<br>
 containers/template_engine/pyproject.toml     |  21 ++<br>
 .../templates/containers.makefile.j2          |  31 ++<br>
 .../templates/containers/alpine.dockerfile.j2 |  37 ++<br>
 .../templates/containers/arch.dockerfile.j2   |  37 ++<br>
 .../templates/containers/base.dockerfile.j2   |  85 +++++<br>
 .../containers/centos8.dockerfile.j2          |  21 ++<br>
 .../containers/centos9.dockerfile.j2          |  17 +<br>
 .../templates/containers/debian.dockerfile.j2 |   7 +<br>
 .../containers/debian10.dockerfile.j2         |   3 +<br>
 .../containers/debian11.dockerfile.j2         |   3 +<br>
 .../containers/debian_bullseye.dockerfile.j2  |   3 +<br>
 .../containers/debian_buster.dockerfile.j2    |   3 +<br>
 .../templates/containers/fedora.dockerfile.j2 |  11 +<br>
 .../containers/fedora36_clang.dockerfile.j2   |   7 +<br>
 .../containers/opensuse.dockerfile.j2         |  10 +<br>
 .../containers/redhat_family.dockerfile.j2    |   5 +<br>
 .../templates/containers/rhel.dockerfile.j2   |  12 +<br>
 .../templates/containers/rhel7.dockerfile.j2  |  19 +<br>
 .../templates/containers/rhel8.dockerfile.j2  |  19 +<br>
 .../templates/containers/rhel9.dockerfile.j2  |  25 ++<br>
 .../templates/containers/rpm.dockerfile.j2    |   3 +<br>
 .../templates/containers/ubuntu.dockerfile.j2 |   3 +<br>
 .../containers/ubuntu20.04.dockerfile.j2      |  12 +<br>
 .../containers/ubuntu22.04.dockerfile.j2      |   7 +<br>
 .../containers/ubuntu_cross.dockerfile.j2     |  11 +<br>
 .../containers/ubuntu_sve.dockerfile.j2       |  10 +<br>
 33 files changed, 1721 insertions(+)<br>
 create mode 100644 containers/Makefile<br>
 create mode 100644 containers/README.md<br>
 create mode 100644 containers/container_builder.dockerfile<br>
 create mode 100644 containers/template_engine/inventory.yaml<br>
 create mode 100644 containers/template_engine/inventory_schema.json<br>
 create mode 100755 containers/template_engine/make_dockerfile.py<br>
 create mode 100644 containers/template_engine/poetry.lock<br>
 create mode 100644 containers/template_engine/pyproject.toml<br>
 create mode 100644 containers/template_engine/templates/containers.makefile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/alpine.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/arch.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/base.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/centos8.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/centos9.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/debian.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/debian10.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/debian11.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/debian_bullseye.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/debian_buster.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/fedora.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/fedora36_clang.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/opensuse.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/redhat_family.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/rhel.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/rhel7.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/rhel8.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/rhel9.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/rpm.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/ubuntu.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/ubuntu20.04.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2<br>
 create mode 100644 containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2<br>
<br>
-- <br>
2.34.1<br></blockquote><div><br>Ali, since I've made some functional modifications I would appreciate a retest. It should be the same as before, except that by default libabigail will not be built from source if DPDK_CI_CONTAINERS_BUILD_ABI=N.<br><br>Owen</div></div></div>