mirror of
https://git.rtems.org/rtems-source-builder
synced 2024-10-09 07:15:10 +08:00
sb: Add a download option --with-release-url/--without-release-url.
The default without the option is to prepend the release URL to the URL list to download from the RTEMS FTP site first if the RSB is released. This option can force the RTEMS FTP to be tried first when not a release, or you can supply a different URL to download from or you can request no RTEMS URL is tried first. Eg: --with-release-url --with-release-url=file://opt/local/cache --without-release-url Move the RTEMS release URL to the default.mc file. Change the URL to the RTEMS FTP server and do not use the https method of access. The option's with_arg call was cleaned up to make sense. Remove the log's raw output of an extra space. Some download error message formating was cleaned up. Closes #2636.
This commit is contained in:
parent
bce0563a79
commit
58a8fd8b5f
@ -13,8 +13,3 @@
|
|||||||
%define rtems_gcc_patches %{rtems_git_tools}/gcc
|
%define rtems_gcc_patches %{rtems_git_tools}/gcc
|
||||||
%define rtems_newlib_patches %{rtems_git_tools}/newlib
|
%define rtems_newlib_patches %{rtems_git_tools}/newlib
|
||||||
%define rtems_gdb_patches %{rtems_git_tools}/gdb
|
%define rtems_gdb_patches %{rtems_git_tools}/gdb
|
||||||
|
|
||||||
#
|
|
||||||
# Releases paths on the FTP server.
|
|
||||||
#
|
|
||||||
%define rtems_release_url https://ftp.rtems.org/pub/rtems/releases/%{rtems_version}
|
|
||||||
|
@ -54,6 +54,9 @@ _host: triplet, required, ''
|
|||||||
_build: triplet, required, ''
|
_build: triplet, required, ''
|
||||||
_target: none, optional, ''
|
_target: none, optional, ''
|
||||||
|
|
||||||
|
# RTEMS release URL
|
||||||
|
rtems_release_url: none, none, 'ftp://ftp.rtems.org/pub/rtems/releases/%{rtems_version}'
|
||||||
|
|
||||||
# The user
|
# The user
|
||||||
_uid: none, convert, '%(%{__id_u} -n)'
|
_uid: none, convert, '%(%{__id_u} -n)'
|
||||||
|
|
||||||
|
@ -336,7 +336,7 @@ def _http_downloader(url, local, config, opts):
|
|||||||
_chunk = None
|
_chunk = None
|
||||||
_last_percent = 200.0
|
_last_percent = 200.0
|
||||||
_last_msg = ''
|
_last_msg = ''
|
||||||
_wipe_output = False
|
_have_status_output = False
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
_in = None
|
_in = None
|
||||||
@ -367,17 +367,16 @@ def _http_downloader(url, local, config, opts):
|
|||||||
extras = (len(_last_msg) - len(_msg))
|
extras = (len(_last_msg) - len(_msg))
|
||||||
log.stdout_raw('%s%s' % (_msg, ' ' * extras + '\b' * extras))
|
log.stdout_raw('%s%s' % (_msg, ' ' * extras + '\b' * extras))
|
||||||
_last_msg = _msg
|
_last_msg = _msg
|
||||||
|
_have_status_output = True
|
||||||
_chunk = _in.read(_chunk_size)
|
_chunk = _in.read(_chunk_size)
|
||||||
if not _chunk:
|
if not _chunk:
|
||||||
break
|
break
|
||||||
_out.write(_chunk)
|
_out.write(_chunk)
|
||||||
_have += len(_chunk)
|
_have += len(_chunk)
|
||||||
if _wipe_output:
|
log.stdout_raw('\n\r')
|
||||||
log.stdout_raw('\r%s\r' % (' ' * len(_last_msg)))
|
|
||||||
else:
|
|
||||||
log.stdout_raw('\n')
|
|
||||||
except:
|
except:
|
||||||
log.stdout_raw('\n')
|
if _have_status_output:
|
||||||
|
log.stdout_raw('\n\r')
|
||||||
raise
|
raise
|
||||||
except IOError as err:
|
except IOError as err:
|
||||||
log.notice('download: %s: error: %s' % (url, str(err)))
|
log.notice('download: %s: error: %s' % (url, str(err)))
|
||||||
@ -557,11 +556,26 @@ def get_file(url, local, opts, config):
|
|||||||
raise error.general('source not found: %s' % (path.host(local)))
|
raise error.general('source not found: %s' % (path.host(local)))
|
||||||
#
|
#
|
||||||
# Check if a URL has been provided on the command line. If the package is
|
# Check if a URL has been provided on the command line. If the package is
|
||||||
# release push to the start the RTEMS URL.
|
# released push to the start the RTEMS URL unless overrided by the command
|
||||||
|
# line option --with-release-url. The variant --without-release-url can
|
||||||
|
# override the released check.
|
||||||
#
|
#
|
||||||
url_bases = opts.urls()
|
url_bases = opts.urls()
|
||||||
|
rtems_release_url_value = config.macros.expand('%{rtems_release_url}/%{rsb_version}/sources')
|
||||||
|
rtems_release_url = None
|
||||||
if version.released():
|
if version.released():
|
||||||
rtems_release_url = config.macros.expand('%{rtems_release_url}/%{rsb_version}/sources')
|
rtems_release_url = rtems_release_url_value
|
||||||
|
with_rel_url = opts.with_arg('release-url')
|
||||||
|
if with_rel_url[0] == 'with_release-url':
|
||||||
|
if with_rel_url[1] == 'yes':
|
||||||
|
rtems_release_url = rtems_release_url_value
|
||||||
|
elif with_rel_url[1] == 'no':
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
rtems_release_url = with_rel_url[1]
|
||||||
|
elif with_rel_url[0] == 'without_release-url' and with_rel_url[1] == 'no':
|
||||||
|
rtems_release_url = rtems_release_url_value
|
||||||
|
if rtems_release_url is not None:
|
||||||
log.trace('release url: %s' % (rtems_release_url))
|
log.trace('release url: %s' % (rtems_release_url))
|
||||||
#
|
#
|
||||||
# If the URL being fetched is under the release path do not add the
|
# If the URL being fetched is under the release path do not add the
|
||||||
|
@ -62,7 +62,7 @@ def _output(text = os.linesep, log = None):
|
|||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
def stdout_raw(text = os.linesep):
|
def stdout_raw(text = os.linesep):
|
||||||
print(text, end=' ')
|
print(text, end = '')
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
def stderr(text = os.linesep, log = None):
|
def stderr(text = os.linesep, log = None):
|
||||||
|
@ -460,7 +460,9 @@ class command_line:
|
|||||||
return None
|
return None
|
||||||
return self.parse_args(arg)
|
return self.parse_args(arg)
|
||||||
|
|
||||||
def with_arg(self, label):
|
def with_arg(self, label, default = 'not-found'):
|
||||||
|
# the default if there is no option for without.
|
||||||
|
result = default
|
||||||
for pre in ['with', 'without']:
|
for pre in ['with', 'without']:
|
||||||
arg_str = '--%s-%s' % (pre, label)
|
arg_str = '--%s-%s' % (pre, label)
|
||||||
arg_label = '%s_%s' % (pre, label)
|
arg_label = '%s_%s' % (pre, label)
|
||||||
@ -471,10 +473,6 @@ class command_line:
|
|||||||
else:
|
else:
|
||||||
result = arg[1]
|
result = arg[1]
|
||||||
break
|
break
|
||||||
if pre == 'with':
|
|
||||||
result = 'yes'
|
|
||||||
else:
|
|
||||||
result = 'no'
|
|
||||||
return [arg_label, result]
|
return [arg_label, result]
|
||||||
|
|
||||||
def get_config_files(self, config):
|
def get_config_files(self, config):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user