[libvirt] [dockerfiles PATCH v2 2/4] refresh: Learn how to deal with the project's name

Fabiano Fidêncio posted 4 patches 6 years, 6 months ago
There is a newer version of this series
[libvirt] [dockerfiles PATCH v2 2/4] refresh: Learn how to deal with the project's name
Posted by Fabiano Fidêncio 6 years, 6 months ago
Let's change the refresh script in order to take into consideration
Dockerfiles containing the project's name. This is needed in order to
add different projects to libvirt-dockerfiles.

An important change that deservers a mention here is that the PROJECTS
variable, part of Dockerfile class, has been added as a dictionary of
dictionaries as it has to store subprojects tied to a project, and each
of those subprojects may or may not be subject of a mingw build
(although this is not the case yet for libvirt, it may be for a other
projects, osinfo-db being one of them.

Together with this change, let's rename all the existent Dockerfiles to
mention their projects. So, 'buildenv-centos-7.Dockerfile' has been
renamed to 'buildenv-libvirt-centos-7.Dockerfile', for instance.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
---
 ...le => buildenv-libvirt-centos-7.Dockerfile |  0
 ...libvirt-debian-10-cross-aarch64.Dockerfile |  0
 ...-libvirt-debian-10-cross-armv6l.Dockerfile |  0
 ...-libvirt-debian-10-cross-armv7l.Dockerfile |  0
 ...nv-libvirt-debian-10-cross-i686.Dockerfile |  0
 ...nv-libvirt-debian-10-cross-mips.Dockerfile |  0
 ...ibvirt-debian-10-cross-mips64el.Dockerfile |  0
 ...-libvirt-debian-10-cross-mipsel.Dockerfile |  0
 ...libvirt-debian-10-cross-ppc64le.Dockerfile |  0
 ...v-libvirt-debian-10-cross-s390x.Dockerfile |  0
 ...e => buildenv-libvirt-debian-10.Dockerfile |  0
 ...-libvirt-debian-9-cross-aarch64.Dockerfile |  0
 ...v-libvirt-debian-9-cross-armv6l.Dockerfile |  0
 ...v-libvirt-debian-9-cross-armv7l.Dockerfile |  0
 ...env-libvirt-debian-9-cross-mips.Dockerfile |  0
 ...libvirt-debian-9-cross-mips64el.Dockerfile |  0
 ...v-libvirt-debian-9-cross-mipsel.Dockerfile |  0
 ...-libvirt-debian-9-cross-ppc64le.Dockerfile |  0
 ...nv-libvirt-debian-9-cross-s390x.Dockerfile |  0
 ...le => buildenv-libvirt-debian-9.Dockerfile |  0
 ...ibvirt-debian-sid-cross-aarch64.Dockerfile |  0
 ...libvirt-debian-sid-cross-armv6l.Dockerfile |  0
 ...libvirt-debian-sid-cross-armv7l.Dockerfile |  0
 ...v-libvirt-debian-sid-cross-i686.Dockerfile |  0
 ...v-libvirt-debian-sid-cross-mips.Dockerfile |  0
 ...bvirt-debian-sid-cross-mips64el.Dockerfile |  0
 ...libvirt-debian-sid-cross-mipsel.Dockerfile |  0
 ...ibvirt-debian-sid-cross-ppc64le.Dockerfile |  0
 ...-libvirt-debian-sid-cross-s390x.Dockerfile |  0
 ... => buildenv-libvirt-debian-sid.Dockerfile |  0
 ...e => buildenv-libvirt-fedora-29.Dockerfile |  0
 ...e => buildenv-libvirt-fedora-30.Dockerfile |  0
 ...buildenv-libvirt-fedora-rawhide.Dockerfile |  0
 ...e => buildenv-libvirt-ubuntu-16.Dockerfile |  0
 ...e => buildenv-libvirt-ubuntu-18.Dockerfile |  0
 refresh                                       | 53 +++++++++++++++----
 36 files changed, 42 insertions(+), 11 deletions(-)
 rename buildenv-centos-7.Dockerfile => buildenv-libvirt-centos-7.Dockerfile (100%)
 rename buildenv-debian-10-cross-aarch64.Dockerfile => buildenv-libvirt-debian-10-cross-aarch64.Dockerfile (100%)
 rename buildenv-debian-10-cross-armv6l.Dockerfile => buildenv-libvirt-debian-10-cross-armv6l.Dockerfile (100%)
 rename buildenv-debian-10-cross-armv7l.Dockerfile => buildenv-libvirt-debian-10-cross-armv7l.Dockerfile (100%)
 rename buildenv-debian-10-cross-i686.Dockerfile => buildenv-libvirt-debian-10-cross-i686.Dockerfile (100%)
 rename buildenv-debian-10-cross-mips.Dockerfile => buildenv-libvirt-debian-10-cross-mips.Dockerfile (100%)
 rename buildenv-debian-10-cross-mips64el.Dockerfile => buildenv-libvirt-debian-10-cross-mips64el.Dockerfile (100%)
 rename buildenv-debian-10-cross-mipsel.Dockerfile => buildenv-libvirt-debian-10-cross-mipsel.Dockerfile (100%)
 rename buildenv-debian-10-cross-ppc64le.Dockerfile => buildenv-libvirt-debian-10-cross-ppc64le.Dockerfile (100%)
 rename buildenv-debian-10-cross-s390x.Dockerfile => buildenv-libvirt-debian-10-cross-s390x.Dockerfile (100%)
 rename buildenv-debian-10.Dockerfile => buildenv-libvirt-debian-10.Dockerfile (100%)
 rename buildenv-debian-9-cross-aarch64.Dockerfile => buildenv-libvirt-debian-9-cross-aarch64.Dockerfile (100%)
 rename buildenv-debian-9-cross-armv6l.Dockerfile => buildenv-libvirt-debian-9-cross-armv6l.Dockerfile (100%)
 rename buildenv-debian-9-cross-armv7l.Dockerfile => buildenv-libvirt-debian-9-cross-armv7l.Dockerfile (100%)
 rename buildenv-debian-9-cross-mips.Dockerfile => buildenv-libvirt-debian-9-cross-mips.Dockerfile (100%)
 rename buildenv-debian-9-cross-mips64el.Dockerfile => buildenv-libvirt-debian-9-cross-mips64el.Dockerfile (100%)
 rename buildenv-debian-9-cross-mipsel.Dockerfile => buildenv-libvirt-debian-9-cross-mipsel.Dockerfile (100%)
 rename buildenv-debian-9-cross-ppc64le.Dockerfile => buildenv-libvirt-debian-9-cross-ppc64le.Dockerfile (100%)
 rename buildenv-debian-9-cross-s390x.Dockerfile => buildenv-libvirt-debian-9-cross-s390x.Dockerfile (100%)
 rename buildenv-debian-9.Dockerfile => buildenv-libvirt-debian-9.Dockerfile (100%)
 rename buildenv-debian-sid-cross-aarch64.Dockerfile => buildenv-libvirt-debian-sid-cross-aarch64.Dockerfile (100%)
 rename buildenv-debian-sid-cross-armv6l.Dockerfile => buildenv-libvirt-debian-sid-cross-armv6l.Dockerfile (100%)
 rename buildenv-debian-sid-cross-armv7l.Dockerfile => buildenv-libvirt-debian-sid-cross-armv7l.Dockerfile (100%)
 rename buildenv-debian-sid-cross-i686.Dockerfile => buildenv-libvirt-debian-sid-cross-i686.Dockerfile (100%)
 rename buildenv-debian-sid-cross-mips.Dockerfile => buildenv-libvirt-debian-sid-cross-mips.Dockerfile (100%)
 rename buildenv-debian-sid-cross-mips64el.Dockerfile => buildenv-libvirt-debian-sid-cross-mips64el.Dockerfile (100%)
 rename buildenv-debian-sid-cross-mipsel.Dockerfile => buildenv-libvirt-debian-sid-cross-mipsel.Dockerfile (100%)
 rename buildenv-debian-sid-cross-ppc64le.Dockerfile => buildenv-libvirt-debian-sid-cross-ppc64le.Dockerfile (100%)
 rename buildenv-debian-sid-cross-s390x.Dockerfile => buildenv-libvirt-debian-sid-cross-s390x.Dockerfile (100%)
 rename buildenv-debian-sid.Dockerfile => buildenv-libvirt-debian-sid.Dockerfile (100%)
 rename buildenv-fedora-29.Dockerfile => buildenv-libvirt-fedora-29.Dockerfile (100%)
 rename buildenv-fedora-30.Dockerfile => buildenv-libvirt-fedora-30.Dockerfile (100%)
 rename buildenv-fedora-rawhide.Dockerfile => buildenv-libvirt-fedora-rawhide.Dockerfile (100%)
 rename buildenv-ubuntu-16.Dockerfile => buildenv-libvirt-ubuntu-16.Dockerfile (100%)
 rename buildenv-ubuntu-18.Dockerfile => buildenv-libvirt-ubuntu-18.Dockerfile (100%)

diff --git a/buildenv-centos-7.Dockerfile b/buildenv-libvirt-centos-7.Dockerfile
similarity index 100%
rename from buildenv-centos-7.Dockerfile
rename to buildenv-libvirt-centos-7.Dockerfile
diff --git a/buildenv-debian-10-cross-aarch64.Dockerfile b/buildenv-libvirt-debian-10-cross-aarch64.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-aarch64.Dockerfile
rename to buildenv-libvirt-debian-10-cross-aarch64.Dockerfile
diff --git a/buildenv-debian-10-cross-armv6l.Dockerfile b/buildenv-libvirt-debian-10-cross-armv6l.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-armv6l.Dockerfile
rename to buildenv-libvirt-debian-10-cross-armv6l.Dockerfile
diff --git a/buildenv-debian-10-cross-armv7l.Dockerfile b/buildenv-libvirt-debian-10-cross-armv7l.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-armv7l.Dockerfile
rename to buildenv-libvirt-debian-10-cross-armv7l.Dockerfile
diff --git a/buildenv-debian-10-cross-i686.Dockerfile b/buildenv-libvirt-debian-10-cross-i686.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-i686.Dockerfile
rename to buildenv-libvirt-debian-10-cross-i686.Dockerfile
diff --git a/buildenv-debian-10-cross-mips.Dockerfile b/buildenv-libvirt-debian-10-cross-mips.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-mips.Dockerfile
rename to buildenv-libvirt-debian-10-cross-mips.Dockerfile
diff --git a/buildenv-debian-10-cross-mips64el.Dockerfile b/buildenv-libvirt-debian-10-cross-mips64el.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-mips64el.Dockerfile
rename to buildenv-libvirt-debian-10-cross-mips64el.Dockerfile
diff --git a/buildenv-debian-10-cross-mipsel.Dockerfile b/buildenv-libvirt-debian-10-cross-mipsel.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-mipsel.Dockerfile
rename to buildenv-libvirt-debian-10-cross-mipsel.Dockerfile
diff --git a/buildenv-debian-10-cross-ppc64le.Dockerfile b/buildenv-libvirt-debian-10-cross-ppc64le.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-ppc64le.Dockerfile
rename to buildenv-libvirt-debian-10-cross-ppc64le.Dockerfile
diff --git a/buildenv-debian-10-cross-s390x.Dockerfile b/buildenv-libvirt-debian-10-cross-s390x.Dockerfile
similarity index 100%
rename from buildenv-debian-10-cross-s390x.Dockerfile
rename to buildenv-libvirt-debian-10-cross-s390x.Dockerfile
diff --git a/buildenv-debian-10.Dockerfile b/buildenv-libvirt-debian-10.Dockerfile
similarity index 100%
rename from buildenv-debian-10.Dockerfile
rename to buildenv-libvirt-debian-10.Dockerfile
diff --git a/buildenv-debian-9-cross-aarch64.Dockerfile b/buildenv-libvirt-debian-9-cross-aarch64.Dockerfile
similarity index 100%
rename from buildenv-debian-9-cross-aarch64.Dockerfile
rename to buildenv-libvirt-debian-9-cross-aarch64.Dockerfile
diff --git a/buildenv-debian-9-cross-armv6l.Dockerfile b/buildenv-libvirt-debian-9-cross-armv6l.Dockerfile
similarity index 100%
rename from buildenv-debian-9-cross-armv6l.Dockerfile
rename to buildenv-libvirt-debian-9-cross-armv6l.Dockerfile
diff --git a/buildenv-debian-9-cross-armv7l.Dockerfile b/buildenv-libvirt-debian-9-cross-armv7l.Dockerfile
similarity index 100%
rename from buildenv-debian-9-cross-armv7l.Dockerfile
rename to buildenv-libvirt-debian-9-cross-armv7l.Dockerfile
diff --git a/buildenv-debian-9-cross-mips.Dockerfile b/buildenv-libvirt-debian-9-cross-mips.Dockerfile
similarity index 100%
rename from buildenv-debian-9-cross-mips.Dockerfile
rename to buildenv-libvirt-debian-9-cross-mips.Dockerfile
diff --git a/buildenv-debian-9-cross-mips64el.Dockerfile b/buildenv-libvirt-debian-9-cross-mips64el.Dockerfile
similarity index 100%
rename from buildenv-debian-9-cross-mips64el.Dockerfile
rename to buildenv-libvirt-debian-9-cross-mips64el.Dockerfile
diff --git a/buildenv-debian-9-cross-mipsel.Dockerfile b/buildenv-libvirt-debian-9-cross-mipsel.Dockerfile
similarity index 100%
rename from buildenv-debian-9-cross-mipsel.Dockerfile
rename to buildenv-libvirt-debian-9-cross-mipsel.Dockerfile
diff --git a/buildenv-debian-9-cross-ppc64le.Dockerfile b/buildenv-libvirt-debian-9-cross-ppc64le.Dockerfile
similarity index 100%
rename from buildenv-debian-9-cross-ppc64le.Dockerfile
rename to buildenv-libvirt-debian-9-cross-ppc64le.Dockerfile
diff --git a/buildenv-debian-9-cross-s390x.Dockerfile b/buildenv-libvirt-debian-9-cross-s390x.Dockerfile
similarity index 100%
rename from buildenv-debian-9-cross-s390x.Dockerfile
rename to buildenv-libvirt-debian-9-cross-s390x.Dockerfile
diff --git a/buildenv-debian-9.Dockerfile b/buildenv-libvirt-debian-9.Dockerfile
similarity index 100%
rename from buildenv-debian-9.Dockerfile
rename to buildenv-libvirt-debian-9.Dockerfile
diff --git a/buildenv-debian-sid-cross-aarch64.Dockerfile b/buildenv-libvirt-debian-sid-cross-aarch64.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-aarch64.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-aarch64.Dockerfile
diff --git a/buildenv-debian-sid-cross-armv6l.Dockerfile b/buildenv-libvirt-debian-sid-cross-armv6l.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-armv6l.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-armv6l.Dockerfile
diff --git a/buildenv-debian-sid-cross-armv7l.Dockerfile b/buildenv-libvirt-debian-sid-cross-armv7l.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-armv7l.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-armv7l.Dockerfile
diff --git a/buildenv-debian-sid-cross-i686.Dockerfile b/buildenv-libvirt-debian-sid-cross-i686.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-i686.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-i686.Dockerfile
diff --git a/buildenv-debian-sid-cross-mips.Dockerfile b/buildenv-libvirt-debian-sid-cross-mips.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-mips.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-mips.Dockerfile
diff --git a/buildenv-debian-sid-cross-mips64el.Dockerfile b/buildenv-libvirt-debian-sid-cross-mips64el.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-mips64el.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-mips64el.Dockerfile
diff --git a/buildenv-debian-sid-cross-mipsel.Dockerfile b/buildenv-libvirt-debian-sid-cross-mipsel.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-mipsel.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-mipsel.Dockerfile
diff --git a/buildenv-debian-sid-cross-ppc64le.Dockerfile b/buildenv-libvirt-debian-sid-cross-ppc64le.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-ppc64le.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-ppc64le.Dockerfile
diff --git a/buildenv-debian-sid-cross-s390x.Dockerfile b/buildenv-libvirt-debian-sid-cross-s390x.Dockerfile
similarity index 100%
rename from buildenv-debian-sid-cross-s390x.Dockerfile
rename to buildenv-libvirt-debian-sid-cross-s390x.Dockerfile
diff --git a/buildenv-debian-sid.Dockerfile b/buildenv-libvirt-debian-sid.Dockerfile
similarity index 100%
rename from buildenv-debian-sid.Dockerfile
rename to buildenv-libvirt-debian-sid.Dockerfile
diff --git a/buildenv-fedora-29.Dockerfile b/buildenv-libvirt-fedora-29.Dockerfile
similarity index 100%
rename from buildenv-fedora-29.Dockerfile
rename to buildenv-libvirt-fedora-29.Dockerfile
diff --git a/buildenv-fedora-30.Dockerfile b/buildenv-libvirt-fedora-30.Dockerfile
similarity index 100%
rename from buildenv-fedora-30.Dockerfile
rename to buildenv-libvirt-fedora-30.Dockerfile
diff --git a/buildenv-fedora-rawhide.Dockerfile b/buildenv-libvirt-fedora-rawhide.Dockerfile
similarity index 100%
rename from buildenv-fedora-rawhide.Dockerfile
rename to buildenv-libvirt-fedora-rawhide.Dockerfile
diff --git a/buildenv-ubuntu-16.Dockerfile b/buildenv-libvirt-ubuntu-16.Dockerfile
similarity index 100%
rename from buildenv-ubuntu-16.Dockerfile
rename to buildenv-libvirt-ubuntu-16.Dockerfile
diff --git a/buildenv-ubuntu-18.Dockerfile b/buildenv-libvirt-ubuntu-18.Dockerfile
similarity index 100%
rename from buildenv-ubuntu-18.Dockerfile
rename to buildenv-libvirt-ubuntu-18.Dockerfile
diff --git a/refresh b/refresh
index aa056af..4dd4382 100755
--- a/refresh
+++ b/refresh
@@ -31,6 +31,19 @@ class Dockerfile:
     CROSS = "-cross-"
     SUFFIX = ".Dockerfile"
 
+    # PROJECTS is a dictionary of dictionaries.
+    # The key is the project name, as present in the Dockerfile name and
+    # the value is a dictionary containing the subprojects which the
+    # dependencies should be installed together as the key and their value
+    # being whether they support mingw builds or not.
+    # This hack is needed till the moment libvirt-jenkins-ci treats mingw
+    # builds in the very same way as cross-builds are treated.
+    PROJECTS = {
+        "libvirt" : {
+            "libvirt" : True
+        },
+    }
+
     def __init__(self, path):
 
         # Files that don't end with the expected suffix can be safely
@@ -44,26 +57,44 @@ class Dockerfile:
 
         self.path = path
         stem = path.stem[len(Dockerfile.PREFIX):]
+
+        self.projects = []
+
+        for project in Dockerfile.PROJECTS:
+            if stem.rfind(project) >= 0:
+                self.project_name = project
+                for subproject in Dockerfile.PROJECTS[project]:
+                    self.projects += [subproject]
+                break
+
         cross = stem.rfind(Dockerfile.CROSS)
 
         if cross >= 0:
-            # If we found CROSS, then everything before it is the name of
-            # the OS and everything after it the name of the architecture
-            # we're targeting for cross-compilation
-            self.os = stem[:cross]
+            # If we found CROSS, then everything in between the project's
+            # name and the cross is the name of the OS and everything after
+            # it the name of the architecture we're targeting for
+            # cross-compilation
+            # Mind the project name has an extra '-', which is taken into
+            # consideration when getting the OS
+            self.os = stem[len(self.project_name) + 1:cross]
             self.cross_arch = stem[cross + len(Dockerfile.CROSS):]
         else:
-            # Otherwise the entire stem is the name of the OS and there
-            # is no cross-compilation architecture
-            self.os = stem
+            # Otherwise the name of the OS starts just after the project's
+            # name and there is no cross-compilation architecture
+            # Mind the project name has an extra '-', which is taken into
+            # consideration when getting the OS
+            self.os = stem[len(self.project_name) + 1:]
             self.cross_arch = None
 
         # Fedora Rawhide is special in that we use it to perform MinGW
         # builds, so we need to add the corresponding projects
         if self.os == "fedora-rawhide":
-            self.projects = "libvirt,libvirt+mingw*"
-        else:
-            self.projects = "libvirt"
+            mingw_projects = []
+            for subproject in self.projects:
+                if Dockerfile.PROJECTS[self.project_name][subproject]:
+                    mingw_projects += [subproject + "+mingw*"]
+
+            self.projects += mingw_projects
 
     def refresh(self, lcitool):
 
@@ -81,7 +112,7 @@ class Dockerfile:
 
         args += [
             "libvirt-" + self.os,
-            self.projects,
+            ",".join(self.projects),
         ]
 
         rc = subprocess.run(args, capture_output=True)
-- 
2.21.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [dockerfiles PATCH v2 2/4] refresh: Learn how to deal with the project's name
Posted by Andrea Bolognani 6 years, 6 months ago
On Wed, 2019-07-31 at 15:29 +0200, Fabiano Fidêncio wrote:
> +    # PROJECTS is a dictionary of dictionaries.
> +    # The key is the project name, as present in the Dockerfile name and
> +    # the value is a dictionary containing the subprojects which the
> +    # dependencies should be installed together as the key and their value
> +    # being whether they support mingw builds or not.
> +    # This hack is needed till the moment libvirt-jenkins-ci treats mingw
> +    # builds in the very same way as cross-builds are treated.
> +    PROJECTS = {
> +        "libvirt" : {
> +            "libvirt" : True
> +        },
> +    }

Yeah, having to hack around it this way is pretty unfortunate since
it's quite clear that ultimately we want to start treating MinGW
builds the same way as cross-architecture builds, but that's a lot
more work that shouldn't block you from adding more CI to libosinfo.

> +        for project in Dockerfile.PROJECTS:
> +            if stem.rfind(project) >= 0:
> +                self.project_name = project
> +                for subproject in Dockerfile.PROJECTS[project]:
> +                    self.projects += [subproject]
> +                break

We should report an error if we were unable to match any of the
known project names. Also ...

>          cross = stem.rfind(Dockerfile.CROSS)
>  
>          if cross >= 0:
> -            # If we found CROSS, then everything before it is the name of
> -            # the OS and everything after it the name of the architecture
> -            # we're targeting for cross-compilation
> -            self.os = stem[:cross]
> +            # If we found CROSS, then everything in between the project's
> +            # name and the cross is the name of the OS and everything after
> +            # it the name of the architecture we're targeting for
> +            # cross-compilation
> +            # Mind the project name has an extra '-', which is taken into
> +            # consideration when getting the OS
> +            self.os = stem[len(self.project_name) + 1:cross]
>              self.cross_arch = stem[cross + len(Dockerfile.CROSS):]
>          else:
> -            # Otherwise the entire stem is the name of the OS and there
> -            # is no cross-compilation architecture
> -            self.os = stem
> +            # Otherwise the name of the OS starts just after the project's
> +            # name and there is no cross-compilation architecture
> +            # Mind the project name has an extra '-', which is taken into
> +            # consideration when getting the OS
> +            self.os = stem[len(self.project_name) + 1:]
>              self.cross_arch = None

... having to do the same operation change in the two branches is
pretty nasty. I'm reviewing this without having refamiliarized myself
with the code, but can't you just do something like

  for project in Dockerfile.PROJECTS:
      if stem.rfind(project + "-") >= 0:
          self.project_name = project
          stem = stem[len(project) + 1:]
          ...

and avoid having to change any of the code below? Note that I added
a "-" to the string we pass to rfind(), since we need it to be there
or once again it means we're not dealing with well-formed file names
and should error out.

>          args += [
>              "libvirt-" + self.os,
> -            self.projects,
> +            ",".join(self.projects),
>          ]

This change is kind of separate, and in fact I had already proposed
it as its own patch[1] which you helpfully ACKed, so I've just pushed
it now.

Other than the few issues mentioned above, the changes look good and
so do the next two patches. Looking forward to v3 :)


[1] https://www.redhat.com/archives/libvir-list/2019-July/msg01159.html
-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list