[elbe-devel] [PATCH v3 2/6] Add optional mirror for host architecture

Olivier Dion dion at linutronix.de
Mon Jun 15 15:17:09 CEST 2020


On Mon, 15 Jun 2020, Kory Maincent <kory.maincent at bootlin.com> wrote:
> If the primary mirror does not contain the packages for both target and host
> architecture the build_host_sysroot process fails.
>
> This patch adds support for describing in the XML configuration an additional
> optional mirror containing packages for the host architecture, like:
> <mirror>
> <host>http://archive.ubuntu.com/ubuntu</host>
> </mirror>
>
> It also adds the architecture type in the sources.list file to avoid issues
> with apt-get update.
>
> Signed-off-by: Kory Maincent <kory.maincent at bootlin.com>
> ---
>  elbepack/elbexml.py | 54 +++++++++++++++++++++++++++++----------------
>  elbepack/rfs.py     | 24 ++++++++++++--------
>  schema/dbsfed.xsd   |  7 ++++++
>  3 files changed, 57 insertions(+), 28 deletions(-)
>
> diff --git a/elbepack/elbexml.py b/elbepack/elbexml.py
> index fa81583..7329e4c 100644
> --- a/elbepack/elbexml.py
> +++ b/elbepack/elbexml.py
> @@ -155,31 +160,42 @@ class ElbeXML(object):
>  
>          noauth = ""
>          if self.prj.has("noauth"):
> -            noauth = "[trusted=yes] "
> +            noauth = "trusted=yes "
> +
> +        if hostsdk:
> +            arch = get_command_out("dpkg --print-architecture").strip().decode()
> +        else:
> +            arch = self.text("project/buildimage/arch", key="arch")
> +
> +        mirror = []
> +        options = []
> +
> +        options.append(noauth)
> +        options.append("arch=%s" % arch)
>  
> -        mirror = ""
>          if self.prj.has("mirror/primary_host"):
> -            mirror += "deb " + noauth + self.get_primary_mirror(None)
> -            mirror += " " + self.prj.text("suite") + " main\n"
> +            pmirror = self.get_primary_mirror(None, hostsdk=hostsdk)
> +            mirror.append("deb [%s] %s %s main" % (' '.join(options),
> +                               pmirror, self.prj.text("suite")))

Please align this line correctly like so:
----------------------------------------------------------------------
mirror.append("deb [%s] %s %s main" % (' '.join(options), pmirror,
                                       self.prj.text("suite")))
----------------------------------------------------------------------


>  
>              if build_sources:
> -                mirror += "deb-src " + noauth + self.get_primary_mirror(None)
> -                mirror += " " + self.prj.text("suite") + " main\n"
> +                mirror.append("deb-src [%s] %s %s main" % (' '.join(options),
> +                                  pmirror, self.prj.text("suite")))

Idem

>  
> -            if self.prj.has("mirror/url-list"):
> +            if self.prj.has("mirror/url-list") and not hostsdk:
>                  for url in self.prj.node("mirror/url-list"):
>                      if url.has("binary"):
> -                        mirror += "deb " + noauth + \
> -                                   url.text("binary").strip() + "\n"
> +                        mirror.append("deb [%s] %s" % (' '.join(options),
> +                                          url.text("binary").strip()))

Idem

>                      if url.has("source"):
> -                        mirror += "deb-src " + noauth + \
> -                            url.text("source").strip() + "\n"
> +                        mirror.append("deb-src [%s] %s" % (' '.join(options),
> +                                          url.text("source").strip()))

Idem

>          if self.prj.has("mirror/cdrom"):
> -            mirror += "deb copy:///cdrom/targetrepo %s main added\n" % (
> -                self.prj.text("suite"))
> +            mirror.append("deb copy:///cdrom/targetrepo %s main added" % (
> +                self.prj.text("suite")))

Never do that please (ending a line with an open parenthesis).  Elbe
source code is clustered with these.  It's very bad for grepping.  Feel
free to start the formatting on a newline like this:
----------------------------------------------------------------------
mirror.append("deb copy:///cdrom/targetrepo %s main added" %
              (self.prj.text("suite")))
----------------------------------------------------------------------
or do the formatting in a temporary variable before appending to the
list if you think that it's more greppable.

Since I'm not familiar with Ubuntu stuff, I don't feel confortable with
giving you review for this patch.  But I think that things are in order,
just fix the syntax please.

I'm CC some Debian wizards that can give you review for that :-)

-- 
Olivier Dion
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen



More information about the elbe-devel mailing list