Hi Michael, I cannot apply the patch. Git does not like it and applying with patch gives the following error:
patching file source-builder/sb/linux.py patch: **** malformed patch at line 25: @@ -56,36 +57,11 @@ def load(): Are you able to get git to send the patch. If not could please attach the output of `git format-patch -1`? Thanks Chris On 11/11/2023 1:41 pm, Michael South wrote: > > If available, use "distro" package (introduced Python 3.6, back-ported > to 2.6) > to recognize Linux distributions and versions. > > Updates #4966 > --- > source-builder/sb/linux.py | 89 +++++++++++++++++++++++++------------- > 1 file changed, 59 insertions(+), 30 deletions(-) > > diff --git a/source-builder/sb/linux.py b/source-builder/sb/linux.py > index d71ac39..45f88b0 100644 > --- a/source-builder/sb/linux.py > +++ b/source-builder/sb/linux.py > @@ -28,6 +28,7 @@ import pprint > import os > from . import path > +from . import log > def load(): > uname = os.uname() > @@ -56,36 +57,11 @@ def load(): > } > # platform.dist() was removed in Python 3.8 > - if hasattr(platform, 'dist'): > - # Works for LSB distros > - try: > - distro = platform.dist()[0] > - distro_ver = float(platform.dist()[1]) > - except ValueError: > - # Non LSB distro found, use failover" > - pass > - else: > - distro = '' > - > - # Non LSB - fail over to issue > - if distro == '': > - try: > - issue = open('/etc/issue').read() > - distro = issue.split(' ')[0] > - distro_ver = float(issue.split(' ')[2]) > - except: > - pass > - > - distro = distro.lower() > - > - # Manage distro aliases > - if distro in ['centos']: > - distro = 'redhat' > - elif distro in ['fedora']: > - if distro_ver < 17: > - distro = 'redhat' > - elif distro in ['ubuntu', 'mx', 'linuxmint']: > - distro = 'debian' > + # The distro module (introduced in Python 3.6, back-ported to 2.6) > + # is preferred. > + distro = '' > + distro_like = '' > + distro_ver = 0 > variations = { > 'debian' : { '__bzip2': ('exe', 'required', > '/bin/bzip2'), > @@ -114,10 +90,63 @@ def load(): > '__sed': ('exe', 'required', > '/bin/sed') }, > } > + try: > + import distro as distro_mod > + distro = distro_mod.id() > + distro_like = distro_mod.like() > + try: > + distro_ver = float(distro_mod.version()) > + except ValueError: > + pass > + except: > + pass > + > + if distro == '' and hasattr(platform, 'dist'): > + distro = platform.dist()[0] > + try: > + distro_ver = float(platform.dist()[1]) > + except ValueError: > + pass > + > + # Non LSB - last resort, try issue > + if distro == '': > + try: > + with open('/etc/issue') as f: > + issue = f.read().split(' ') > + distro = issue[0] > + distro_ver = float(issue[2]) > + except: > + pass > + > + if distro: > + distro = distro.lower() > + if distro_like: > + distro_like = distro_like.lower().split(' ')[0] > + > + # Some additional distro aliases > + if distro in ['centos']: > + distro_like = 'redhat' > + elif distro in ['fedora']: > + if distro_ver < 17: > + distro_like = 'redhat' > + elif distro in ['ubuntu', 'mx', 'linuxmint']: > + distro_like = 'debian' > + > + if not (distro in variations) and (distro_like in variations): > + distro = distro_like > + # Versions don't carry over to likes; e.g. linuxmint 21.6 != > debian 21.6. > + distro_ver = 0 > + > if distro in variations: > for v in variations[distro]: > if path.exists(variations[distro][v][2]): > defines[v] = variations[distro][v] > + else: > + log.warning('Unrecognized OS distro; assuming defaults for > grep, sed, etc.') > + try: > + distro_mod > + except: > + log.warning("The 'distro' package may fix this problem; try > 'pip install distro'.") > defines['_build'] = defines['_host'] > defines['_build_vendor'] = defines['_host_vendor'] _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel