mirror of
https://git.rtems.org/rtems-source-builder
synced 2024-10-09 07:15:10 +08:00
sb: Add the release_path
key to the version
section in the VERSION file.
A release can specify a custom releaase URL path. Closes #2952.
This commit is contained in:
parent
97b4399d1a
commit
dca7ab2853
@ -296,6 +296,11 @@ parsers = { 'http': _http_parser,
|
||||
'cvs': _cvs_parser,
|
||||
'file': _file_parser }
|
||||
|
||||
def set_release_path(release_path, macros):
|
||||
if release_path is None:
|
||||
release_path = '%{rtems_release_url}/%{rsb_version}/sources'
|
||||
macros.define('release_path', release_path)
|
||||
|
||||
def parse_url(url, pathkey, config, opts):
|
||||
#
|
||||
# Split the source up into the parts we need.
|
||||
@ -575,7 +580,7 @@ def get_file(url, local, opts, config):
|
||||
#
|
||||
url_bases = opts.urls()
|
||||
try:
|
||||
rtems_release_url_value = config.macros.expand('%{rtems_release_url}/%{rsb_version}/sources')
|
||||
rtems_release_url_value = config.macros.expand('%{release_path}')
|
||||
except:
|
||||
rtems_release_url_value = None
|
||||
log.output('RTEMS release URL could not be expanded')
|
||||
|
@ -641,9 +641,9 @@ def load(args, optargs = None, defaults = '%{_sbdir}/defaults.mc'):
|
||||
o.post_process()
|
||||
|
||||
#
|
||||
# Load the release hashes
|
||||
# Load the release settings
|
||||
#
|
||||
version.load_release_hashes(o.defaults)
|
||||
version.load_release_settings(o.defaults)
|
||||
|
||||
return o
|
||||
|
||||
|
@ -26,6 +26,7 @@ from __future__ import print_function
|
||||
|
||||
import sys
|
||||
|
||||
import download
|
||||
import error
|
||||
import git
|
||||
import path
|
||||
@ -55,7 +56,10 @@ def _load_released_version_config():
|
||||
except ImportError:
|
||||
import ConfigParser as configparser
|
||||
v = configparser.SafeConfigParser()
|
||||
v.read(path.join(ver, 'VERSION'))
|
||||
try:
|
||||
v.read(path.join(ver, 'VERSION'))
|
||||
except:
|
||||
raise error.general('Invalid VERSION file')
|
||||
return v
|
||||
return None
|
||||
|
||||
@ -64,7 +68,10 @@ def _load_released_version():
|
||||
global _version_str
|
||||
v = _load_released_version_config()
|
||||
if v is not None:
|
||||
_version_str = v.get('version', 'release')
|
||||
try:
|
||||
_version_str = v.get('version', 'release')
|
||||
except:
|
||||
raise error.general('Invalid VERSION file')
|
||||
_released = True
|
||||
return _released
|
||||
|
||||
@ -94,8 +101,8 @@ def str():
|
||||
_load_git_version()
|
||||
return _version_str
|
||||
|
||||
def load_release_hashes(macros):
|
||||
def hash_error(msg):
|
||||
def load_release_settings(macros):
|
||||
def setting_error(msg):
|
||||
raise error.general(msg)
|
||||
|
||||
if released():
|
||||
@ -105,11 +112,16 @@ def load_release_hashes(macros):
|
||||
hashes = v.items('hashes')
|
||||
except:
|
||||
hashes = []
|
||||
try:
|
||||
release_path = v.get('version', 'release_path', raw = True)
|
||||
except:
|
||||
release_path = None
|
||||
for hash in hashes:
|
||||
hs = hash[1].split()
|
||||
if len(hs) != 2:
|
||||
raise error.general('invalid release hash in VERSION')
|
||||
sources.hash((hs[0], hash[0], hs[1]), macros, hash_error)
|
||||
sources.hash((hs[0], hash[0], hs[1]), macros, setting_error)
|
||||
download.set_release_path(release_path, macros)
|
||||
|
||||
def version():
|
||||
return _version
|
||||
|
Loading…
x
Reference in New Issue
Block a user