[elbe-devel] [PATCH 04/10] elbeproject: add <hostsdk-pkg-list> to define packages for host sysroot

Manuel Traut manut at linutronix.de
Wed Apr 10 10:40:57 CEST 2019


On 15:42 Mon 08 Apr     , Torben Hohn wrote:
> use the extract_pkg machinery to install specific packages into the
> host sysroot. This allows, for example, to install a specific qt version
> into the host sysroot.
> 
> When no <hostsdk-pkg-list> is specified, it falls back to evaluating
> self.xml.defs["sdkarch"] and installing 'g++-$sdkarch' and 'gdb-multiarch'

Shouldn't we keep both g++ and gdb as 'defaults' in the list and extend the
it with the values from hostsdk-pkg-list?

> Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>
> ---
>  elbepack/elbeproject.py | 38 ++++++++++++++++++++------------------
>  schema/dbsfed.xsd       |  8 ++++++++
>  2 files changed, 28 insertions(+), 18 deletions(-)
> 
> diff --git a/elbepack/elbeproject.py b/elbepack/elbeproject.py
> index 59fd9b04..73f917e9 100644
> --- a/elbepack/elbeproject.py
> +++ b/elbepack/elbeproject.py
> @@ -301,10 +301,18 @@ class ElbeProject (object):
>      def build_sdk(self):
>          triplet = self.xml.defs["triplet"]
>  
> -        try:
> -            crosstoolchainpkg = "g++-%s" % self.xml.defs["sdkarch"]
> -        except KeyError:
> -            raise UnsupportedSDKException(triplet)
> +        host_pkglist = []
> +        if self.xml.tgt.has('hostsdk-pkg-list'):
> +            for p in self.xml.tgt.node('hostsdk-pkg-list'):
> +                if p.tag == 'pkg':
> +                    host_pkglist.append(p.et.text.strip())
> +        else:
> +            try:
> +                host_pkglist.append("g++-%s" % self.xml.defs["sdkarch"])
> +            except KeyError:
> +                raise UnsupportedSDKException(triplet)
> +
> +            host_pkglist.append('gdb-multiarch')
>  
>          # build target sysroot including libs and headers for the target
>          self.build_sysroot()
> @@ -315,20 +323,14 @@ class ElbeProject (object):
>          # build host sysroot including cross compiler
>          hostsysrootpath = os.path.join(self.sdkpath, 'sysroots', 'host')
>          self.log.do('mkdir -p "%s"' % hostsysrootpath)
> -        extract_pkg(self.xml.prj,
> -                    hostsysrootpath,
> -                    self.xml.defs,
> -                    crosstoolchainpkg,
> -                    'amd64',
> -                    self.log,
> -                    True)
> -        extract_pkg(self.xml.prj,
> -                    hostsysrootpath,
> -                    self.xml.defs,
> -                    'gdb-multiarch',
> -                    'amd64',
> -                    self.log,
> -                    True)
> +        for p in host_pkglist:
> +            extract_pkg(self.xml.prj,
> +                        hostsysrootpath,
> +                        self.xml.defs,
> +                        p,
> +                        'amd64',
> +                        self.log,
> +                        True)
>  
>          n = gen_sdk_scripts(triplet,
>                              self.name,
> diff --git a/schema/dbsfed.xsd b/schema/dbsfed.xsd
> index ccab23be..333c0a8b 100644
> --- a/schema/dbsfed.xsd
> +++ b/schema/dbsfed.xsd
> @@ -873,6 +873,14 @@
>            </documentation>
>          </annotation>
>        </element>
> +      <element name="hostsdk-pkg-list" type="rfs:pkg-list" minOccurs="0" maxOccurs="1">
> +        <annotation>
> +          <documentation>
> +	    install the given packages into the hostsdk. (ignores pin and versions,
> +	    with the current implementation)
> +          </documentation>
> +        </annotation>
> +      </element>
>      </all>
>      <attribute ref="xml:base"/>
>    </complexType>
> -- 
> 2.11.0
> 
> 
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel



More information about the elbe-devel mailing list