diff options
| author | Joshua Lock <joshua.g.lock@intel.com> | 2016-11-15 22:08:54 +0000 | 
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-11-23 11:02:30 +0000 | 
| commit | e36066dcc3b56cac1c695370ea178b566c0ebfd6 (patch) | |
| tree | 026fe32f080e793d632d3fbbf85a3944bfac6a8e | |
| parent | 81479b191287ccbf4cf94fa2d0ad46813091bca1 (diff) | |
| download | openembedded-core-e36066dcc3b56cac1c695370ea178b566c0ebfd6.tar.gz openembedded-core-e36066dcc3b56cac1c695370ea178b566c0ebfd6.tar.bz2 openembedded-core-e36066dcc3b56cac1c695370ea178b566c0ebfd6.zip | |
lib/oe/lsb: better handle missing fields
Some rolling release distros, such as Arch Linux, don't include a
VERSION_ID field in their os-release file.
Change release_dict_osr() to better handle this optional field
being absent.
Further improve the resilience of the release_dict_*() methods by
always returning a dict and using dict.get() in distro_identifier()
to supply a default, empty string, value when then key is missing.
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
| -rw-r--r-- | meta/lib/oe/lsb.py | 13 | 
1 files changed, 5 insertions, 8 deletions
| diff --git a/meta/lib/oe/lsb.py b/meta/lib/oe/lsb.py index 5a795a12d3..3a945e0fce 100644 --- a/meta/lib/oe/lsb.py +++ b/meta/lib/oe/lsb.py @@ -15,9 +15,6 @@ def release_dict_osr():              if key == 'VERSION_ID':                  data['DISTRIB_RELEASE'] = val.strip('"') -    if len(data.keys()) != 2: -        return None -      return data  def release_dict_lsb(): @@ -27,7 +24,7 @@ def release_dict_lsb():      try:          output, err = bb.process.run(['lsb_release', '-ir'], stderr=PIPE)      except bb.process.CmdError as exc: -        return None +        return {}      lsb_map = { 'Distributor ID': 'DISTRIB_ID',                  'Release': 'DISTRIB_RELEASE'} @@ -51,7 +48,7 @@ def release_dict_lsb():  def release_dict_file():      """ Try to gather release information manually when other methods fail """ -    data = None +    data = {}      try:          if os.path.exists('/etc/lsb-release'):              data = {} @@ -78,7 +75,7 @@ def release_dict_file():                          break      except IOError: -        return None +        return {}      return data  def distro_identifier(adjust_hook=None): @@ -96,8 +93,8 @@ def distro_identifier(adjust_hook=None):      if not distro_data:          distro_data = release_dict_file() -    distro_id = distro_data['DISTRIB_ID'] -    release = distro_data['DISTRIB_RELEASE'] +    distro_id = distro_data.get('DISTRIB_ID', '') +    release = distro_data.get('DISTRIB_RELEASE', '')      if adjust_hook:          distro_id, release = adjust_hook(distro_id, release) | 
