Changeset 61d2c55 in rtems-source-builder


Ignore:
Timestamp:
Feb 1, 2018, 3:48:31 AM (17 months ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10
Children:
652a90f
Parents:
b0fc0b2
git-author:
Chris Johns <chrisj@…> (02/01/18 03:48:31)
git-committer:
Chris Johns <chrisj@…> (02/05/18 03:14:43)
Message:

sb: Backport from 4.11 the --rsb-file with releases fixes.

Close #3286

Location:
source-builder/sb
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • source-builder/sb/download.py

    rb0fc0b2 r61d2c55  
    2727import hashlib
    2828import os
     29import re
    2930import stat
    3031import sys
     
    302303            'file': _file_parser }
    303304
     305def set_release_path(release_path, macros):
     306    if release_path is None:
     307        release_path = '%{rtems_release_url}/%{rsb_version}/sources'
     308    macros.define('release_path', release_path)
     309
    304310def parse_url(url, pathkey, config, opts, file_override = None):
    305311    #
     
    319325        if len(bad_chars) > 0:
    320326            raise error.general('bad characters in file name: %s' % (file_override))
    321 
    322327        log.output('download: file-override: %s' % (file_override))
    323328        source['file'] = file_override
     
    592597    url_bases = opts.urls()
    593598    try:
    594         rtems_release_url_value = config.macros.expand('%{rtems_release_url}/%{rsb_version}/sources')
     599        rtems_release_url_value = config.macros.expand('%{release_path}')
    595600    except:
    596601        rtems_release_url_value = None
    597         log.output('RTEMS release URL could not be expanded')
    598602    rtems_release_url = None
    599603    if version.released() and rtems_release_url_value:
     
    638642        log.trace('url_file: %s' %(url_file))
    639643        for base in url_bases:
     644            #
     645            # Hack to fix #3064 where --rsb-file is being used. This code is a
     646            # mess and should be refactored.
     647            #
     648            if version.released() and base == rtems_release_url:
     649                url_file = path.basename(local)
    640650            if base[-1:] != '/':
    641651                base += '/'
  • source-builder/sb/options.py

    rb0fc0b2 r61d2c55  
    5555        self._long_opts = {
    5656            # key                 macro                handler            param  defs   init
    57             '--prefix'         : ('_prefix',           self._lo_path,     True,  None,  False),
    58             '--topdir'         : ('_topdir',           self._lo_path,     True,  None,  False),
    59             '--configdir'      : ('_configdir',        self._lo_path,     True,  None,  False),
    60             '--builddir'       : ('_builddir',         self._lo_path,     True,  None,  False),
    61             '--sourcedir'      : ('_sourcedir',        self._lo_path,     True,  None,  False),
    62             '--tmppath'        : ('_tmppath',          self._lo_path,     True,  None,  False),
    63             '--jobs'           : ('_jobs',             self._lo_jobs,     True,  'max', True),
    64             '--log'            : ('_logfile',          self._lo_string,   True,  None,  False),
    65             '--url'            : ('_url_base',         self._lo_string,   True,  None,  False),
    66             '--no-download'    : ('_disable_download', self._lo_bool,     False, '0',   True),
    67             '--macros'         : ('_macros',           self._lo_string,   True,  None,  False),
    68             '--targetcflags'   : ('_targetcflags',     self._lo_string,   True,  None,  False),
    69             '--targetcxxflags' : ('_targetcxxflags',   self._lo_string,   True,  None,  False),
    70             '--libstdcxxflags' : ('_libstdcxxflags',   self._lo_string,   True,  None,  False),
    71             '--force'          : ('_force',            self._lo_bool,     False, '0',   True),
    72             '--quiet'          : ('_quiet',            self._lo_bool,     False, '0',   True),
    73             '--trace'          : ('_trace',            self._lo_bool,     False, '0',   True),
    74             '--dry-run'        : ('_dry_run',          self._lo_bool,     False, '0',   True),
    75             '--warn-all'       : ('_warn_all',         self._lo_bool,     False, '0',   True),
    76             '--no-clean'       : ('_no_clean',         self._lo_bool,     False, '0',   True),
    77             '--keep-going'     : ('_keep_going',       self._lo_bool,     False, '0',   True),
    78             '--always-clean'   : ('_always_clean',     self._lo_bool,     False, '0',   True),
    79             '--no-install'     : ('_no_install',       self._lo_bool,     False, '0',   True),
    80             '--regression'     : ('_regression',       self._lo_bool,     False, '0',   True),
    81             '--host'           : ('_host',             self._lo_triplets, True,  None,  False),
    82             '--build'          : ('_build',            self._lo_triplets, True,  None,  False),
    83             '--target'         : ('_target',           self._lo_triplets, True,  None,  False),
    84             '--help'           : (None,                self._lo_help,     False, None,  False)
     57            '--prefix'               : ('_prefix',           self._lo_path,     True,  None,  False),
     58            '--topdir'               : ('_topdir',           self._lo_path,     True,  None,  False),
     59            '--configdir'            : ('_configdir',        self._lo_path,     True,  None,  False),
     60            '--builddir'             : ('_builddir',         self._lo_path,     True,  None,  False),
     61            '--sourcedir'            : ('_sourcedir',        self._lo_path,     True,  None,  False),
     62            '--tmppath'              : ('_tmppath',          self._lo_path,     True,  None,  False),
     63            '--jobs'                 : ('_jobs',             self._lo_jobs,     True,  'max', True),
     64            '--log'                  : ('_logfile',          self._lo_string,   True,  None,  False),
     65            '--url'                  : ('_url_base',         self._lo_string,   True,  None,  False),
     66            '--no-download'          : ('_disable_download', self._lo_bool,     False, '0',   True),
     67            '--macros'               : ('_macros',           self._lo_string,   True,  None,  False),
     68            '--source-only-download' : ('_source_download',  self._lo_bool,     False, '0',   True),
     69            '--targetcflags'         : ('_targetcflags',     self._lo_string,   True,  None,  False),
     70            '--targetcxxflags'       : ('_targetcxxflags',   self._lo_string,   True,  None,  False),
     71            '--libstdcxxflags'       : ('_libstdcxxflags',   self._lo_string,   True,  None,  False),
     72            '--force'                : ('_force',            self._lo_bool,     False, '0',   True),
     73            '--quiet'                : ('_quiet',            self._lo_bool,     False, '0',   True),
     74            '--trace'                : ('_trace',            self._lo_bool,     False, '0',   True),
     75            '--dry-run'              : ('_dry_run',          self._lo_bool,     False, '0',   True),
     76            '--warn-all'             : ('_warn_all',         self._lo_bool,     False, '0',   True),
     77            '--no-clean'             : ('_no_clean',         self._lo_bool,     False, '0',   True),
     78            '--keep-going'           : ('_keep_going',       self._lo_bool,     False, '0',   True),
     79            '--always-clean'         : ('_always_clean',     self._lo_bool,     False, '0',   True),
     80            '--no-install'           : ('_no_install',       self._lo_bool,     False, '0',   True),
     81            '--regression'           : ('_regression',       self._lo_bool,     False, '0',   True),
     82            '--host'                 : ('_host',             self._lo_triplets, True,  None,  False),
     83            '--build'                : ('_build',            self._lo_triplets, True,  None,  False),
     84            '--target'               : ('_target',           self._lo_triplets, True,  None,  False),
     85            '--help'                 : (None,                self._lo_help,     False, None,  False)
    8586            }
    8687
     
    223224        print('--targetcxxflags flags : List of C++ flags for the target code')
    224225        print('--libstdcxxflags flags : List of C++ flags to build the target libstdc++ code')
     226        print('--source-only-download : Only download the source')
    225227        print('--with-<label>         : Add the --with-<label> to the build')
    226228        print('--without-<label>      : Add the --without-<label> to the build')
     
    266268            arg += 1
    267269
    268     def post_process(self):
     270    def pre_process(self):
     271        arg = 0
     272        while arg < len(self.args):
     273            a = self.args[arg]
     274            if a == '--source-only-download':
     275                self.args += ['--dry-run',
     276                              '--quiet',
     277                              '--without-log',
     278                              '--without-error-report',
     279                              '--without-release-url']
     280            arg += 1
     281
     282    def post_process(self, logfile = True):
    269283        # Handle the log first.
    270         log.default = log.log(self.logfiles())
     284        logctrl = self.parse_args('--without-log')
     285        if logctrl is None:
     286            if logfile:
     287                logfiles = self.logfiles()
     288            else:
     289                logfiles = None
     290            log.default = log.log(streams = logfiles)
    271291        if self.trace():
    272292            log.tracing = True
     
    562582            self.args.append('--with-rtems-bsp=%s' % (ab[1]))
    563583
    564 def load(args, optargs = None, defaults = '%{_sbdir}/defaults.mc'):
     584def load(args, optargs = None, defaults = '%{_sbdir}/defaults.mc', logfile = True):
    565585    """
    566586    Copy the defaults, get the host specific values and merge them overriding
     
    638658    o.sb_git()
    639659    o.rtems_options()
     660    o.pre_process()
    640661    o.process()
    641     o.post_process()
     662    o.post_process(logfile)
    642663
    643664    #
    644     # Load the release hashes
     665    # Load the release settings
    645666    #
    646     version.load_release_hashes(o.defaults)
     667    version.load_release_settings(o.defaults)
    647668
    648669    return o
  • source-builder/sb/version.py

    rb0fc0b2 r61d2c55  
    2727import sys
    2828
     29import download
    2930import error
    3031import git
     
    3536# Default to an internal string.
    3637#
    37 _version = '4.12'
     38_version = '4.10'
    3839_revision = 'not_released'
    3940_version_str = '%s.%s' % (_version, _revision)
     
    5657                import ConfigParser as configparser
    5758            v = configparser.SafeConfigParser()
    58             v.read(path.join(ver, 'VERSION'))
     59            try:
     60                v.read(path.join(ver, 'VERSION'))
     61            except:
     62                raise error.general('Invalid VERSION file')
    5963            return v
    6064    return None
     
    6569    v = _load_released_version_config()
    6670    if v is not None:
    67         _version_str = v.get('version', 'release')
     71        try:
     72            _version_str = v.get('version', 'release')
     73        except:
     74            raise error.general('Invalid VERSION file')
    6875        _released = True
    6976    return _released
     
    95102    return _version_str
    96103
    97 def load_release_hashes(macros):
    98     def hash_error(msg):
     104def load_release_settings(macros):
     105    def setting_error(msg):
    99106        raise error.general(msg)
    100107
     
    106113            except:
    107114                hashes = []
     115            try:
     116                release_path = v.get('version', 'release_path', raw = True)
     117            except:
     118                release_path = None
    108119            for hash in hashes:
    109120                hs = hash[1].split()
    110121                if len(hs) != 2:
    111122                    raise error.general('invalid release hash in VERSION')
    112                 sources.hash((hs[0], hash[0], hs[1]), macros, hash_error)
     123                sources.hash((hs[0], hash[0], hs[1]), macros, setting_error)
     124            download.set_release_path(release_path, macros)
    113125
    114126def version():
Note: See TracChangeset for help on using the changeset viewer.