summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rtems/config/rtems-urls.bset5
-rw-r--r--source-builder/defaults.mc3
-rw-r--r--source-builder/sb/download.py30
-rwxr-xr-xsource-builder/sb/log.py2
-rw-r--r--source-builder/sb/options.py8
5 files changed, 29 insertions, 19 deletions
diff --git a/rtems/config/rtems-urls.bset b/rtems/config/rtems-urls.bset
index 13fb517..91e4bad 100644
--- a/rtems/config/rtems-urls.bset
+++ b/rtems/config/rtems-urls.bset
@@ -13,8 +13,3 @@
%define rtems_gcc_patches %{rtems_git_tools}/gcc
%define rtems_newlib_patches %{rtems_git_tools}/newlib
%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}
diff --git a/source-builder/defaults.mc b/source-builder/defaults.mc
index 44fa838..c65fa22 100644
--- a/source-builder/defaults.mc
+++ b/source-builder/defaults.mc
@@ -54,6 +54,9 @@ _host: triplet, required, ''
_build: triplet, required, ''
_target: none, optional, ''
+# RTEMS release URL
+rtems_release_url: none, none, 'ftp://ftp.rtems.org/pub/rtems/releases/%{rtems_version}'
+
# The user
_uid: none, convert, '%(%{__id_u} -n)'
diff --git a/source-builder/sb/download.py b/source-builder/sb/download.py
index d218a9e..9facf06 100644
--- a/source-builder/sb/download.py
+++ b/source-builder/sb/download.py
@@ -336,7 +336,7 @@ def _http_downloader(url, local, config, opts):
_chunk = None
_last_percent = 200.0
_last_msg = ''
- _wipe_output = False
+ _have_status_output = False
try:
try:
_in = None
@@ -367,17 +367,16 @@ def _http_downloader(url, local, config, opts):
extras = (len(_last_msg) - len(_msg))
log.stdout_raw('%s%s' % (_msg, ' ' * extras + '\b' * extras))
_last_msg = _msg
+ _have_status_output = True
_chunk = _in.read(_chunk_size)
if not _chunk:
break
_out.write(_chunk)
_have += len(_chunk)
- if _wipe_output:
- log.stdout_raw('\r%s\r' % (' ' * len(_last_msg)))
- else:
- log.stdout_raw('\n')
+ log.stdout_raw('\n\r')
except:
- log.stdout_raw('\n')
+ if _have_status_output:
+ log.stdout_raw('\n\r')
raise
except IOError as 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)))
#
# 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()
+ rtems_release_url_value = config.macros.expand('%{rtems_release_url}/%{rsb_version}/sources')
+ rtems_release_url = None
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))
#
# If the URL being fetched is under the release path do not add the
diff --git a/source-builder/sb/log.py b/source-builder/sb/log.py
index cc92dd3..b0a9001 100755
--- a/source-builder/sb/log.py
+++ b/source-builder/sb/log.py
@@ -62,7 +62,7 @@ def _output(text = os.linesep, log = None):
sys.stdout.flush()
def stdout_raw(text = os.linesep):
- print(text, end=' ')
+ print(text, end = '')
sys.stdout.flush()
def stderr(text = os.linesep, log = None):
diff --git a/source-builder/sb/options.py b/source-builder/sb/options.py
index cddc880..ba1eff0 100644
--- a/source-builder/sb/options.py
+++ b/source-builder/sb/options.py
@@ -460,7 +460,9 @@ class command_line:
return None
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']:
arg_str = '--%s-%s' % (pre, label)
arg_label = '%s_%s' % (pre, label)
@@ -471,10 +473,6 @@ class command_line:
else:
result = arg[1]
break
- if pre == 'with':
- result = 'yes'
- else:
- result = 'no'
return [arg_label, result]
def get_config_files(self, config):