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,
|
'cvs': _cvs_parser,
|
||||||
'file': _file_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):
|
def parse_url(url, pathkey, config, opts):
|
||||||
#
|
#
|
||||||
# Split the source up into the parts we need.
|
# Split the source up into the parts we need.
|
||||||
@ -575,7 +580,7 @@ def get_file(url, local, opts, config):
|
|||||||
#
|
#
|
||||||
url_bases = opts.urls()
|
url_bases = opts.urls()
|
||||||
try:
|
try:
|
||||||
rtems_release_url_value = config.macros.expand('%{rtems_release_url}/%{rsb_version}/sources')
|
rtems_release_url_value = config.macros.expand('%{release_path}')
|
||||||
except:
|
except:
|
||||||
rtems_release_url_value = None
|
rtems_release_url_value = None
|
||||||
log.output('RTEMS release URL could not be expanded')
|
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()
|
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
|
return o
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ from __future__ import print_function
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
import download
|
||||||
import error
|
import error
|
||||||
import git
|
import git
|
||||||
import path
|
import path
|
||||||
@ -55,7 +56,10 @@ def _load_released_version_config():
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
import ConfigParser as configparser
|
import ConfigParser as configparser
|
||||||
v = configparser.SafeConfigParser()
|
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 v
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -64,7 +68,10 @@ def _load_released_version():
|
|||||||
global _version_str
|
global _version_str
|
||||||
v = _load_released_version_config()
|
v = _load_released_version_config()
|
||||||
if v is not None:
|
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
|
_released = True
|
||||||
return _released
|
return _released
|
||||||
|
|
||||||
@ -94,8 +101,8 @@ def str():
|
|||||||
_load_git_version()
|
_load_git_version()
|
||||||
return _version_str
|
return _version_str
|
||||||
|
|
||||||
def load_release_hashes(macros):
|
def load_release_settings(macros):
|
||||||
def hash_error(msg):
|
def setting_error(msg):
|
||||||
raise error.general(msg)
|
raise error.general(msg)
|
||||||
|
|
||||||
if released():
|
if released():
|
||||||
@ -105,11 +112,16 @@ def load_release_hashes(macros):
|
|||||||
hashes = v.items('hashes')
|
hashes = v.items('hashes')
|
||||||
except:
|
except:
|
||||||
hashes = []
|
hashes = []
|
||||||
|
try:
|
||||||
|
release_path = v.get('version', 'release_path', raw = True)
|
||||||
|
except:
|
||||||
|
release_path = None
|
||||||
for hash in hashes:
|
for hash in hashes:
|
||||||
hs = hash[1].split()
|
hs = hash[1].split()
|
||||||
if len(hs) != 2:
|
if len(hs) != 2:
|
||||||
raise error.general('invalid release hash in VERSION')
|
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():
|
def version():
|
||||||
return _version
|
return _version
|
||||||
|
Loading…
x
Reference in New Issue
Block a user