Support released downloading of the RTEMS Tools and RTEMS Kernel.

Add a --without-error-reports flags to reduce the noise on --with-downloading.
This commit is contained in:
Chris Johns 2015-12-10 16:54:40 +11:00
parent 191eb04c4e
commit da1bc8c25e
11 changed files with 127 additions and 45 deletions

View File

@ -11,3 +11,8 @@
%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}

View File

@ -16,7 +16,30 @@ BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n)
#
# Source
#
%source set rtems http://ftp.rtems.org/pub/rtems/%{rtems_kernel_version}/rtems-%{rtems_kernel_version}.tar.bz2
%if %{rsb_released}
%if ! %{defined rtems_kernel_compression}
%define rtems_kernel_compression xz
%endif
%source set rtems %{rtems_release_url}/%{rtems_kernel_version}/rtems-%{rtems_kernel_version}.tar.%{rtems_kernel_compression}
%define rtems_bootstrap 0
%else
%if ! %{defined rtems_kernel_version}
%define rtems_kernel_version HEAD
%endif
%if %{defined rtems_kernel_git_commit_hash}
%define rtems_kernel_git_checkout ?checkout=%{defined rtems_kernel_git_commit_hash}
%else
%define rtems_kernel_git_checkout %{nil}
%endif
%source set rtems git://git.rtems.org/rtems.git?reset=hard?branch=%{rtems_kernel_version}?pull%{rtems_kernel_git_checkout}
#
# The code in git needs to be bootstrapped. Do each build because we have
# no way to change what changes may have happened in the code.
#
%define rtems_bootstrap 1
%endif
#
# If C++ defined for the tool set use it to control RTEMS's setting..

View File

@ -5,16 +5,11 @@
%include %{_configdir}/checks.cfg
%include %{_configdir}/base.cfg
%define rtems_kernel_version 4.10.2
%define rtems_kernel_version 4.10.2
%define rtems_kernel_compression bz2
%hash md5 rtems-%{rtems_kernel_version}.tar.bz2 158566d0f1330d4eaba5a60e757d3dd0
#
# The code in git needs to be bootstrapped. Do each build because we have
# no way to change what changes may have happened in the code.
#
%define rtems_bootstrap 0
#
# The RTEMS build instructions. We use 4.xx Release 1.
#

View File

@ -11,12 +11,21 @@
%define rtems_kernel_build 0
%endif
#
# Build if the RSB is released.
#
%if ! %{rtems_kernel_build}
%if %{rsb_released}
%define rtems_kernel_build 1
%endif
%endif
%if %{rtems_kernel_build}
%include %{_configdir}/checks.cfg
%include %{_configdir}/base.cfg
%include %{_configdir}/versions.cfg
%define rtems_kernel_version 4.11
%define rtems_kernel_version 4.11.0-rc1
#
# A magic internal path that would break if changes in the defaults.mc
@ -35,18 +44,6 @@
%endif
%endif
#
# Pull the latest changes from git each build. Override if this is not what you
# want.
#
%source set rtems git://git.rtems.org/rtems.git?reset=hard?pull
#
# The code in git needs to be bootstrapped. Do each build because we have
# no way to change what changes may have happened in the code.
#
%define rtems_bootstrap
#
# The RTEMS build instructions. We use 4.xx Release 1.
#

View File

@ -5,13 +5,8 @@
%include %{_configdir}/checks.cfg
%include %{_configdir}/base.cfg
%define rtems_kernel_version 4.9.6
#
# The code in git needs to be bootstrapped. Do each build because we have
# no way to change what changes may have happened in the code.
#
%define rtems_bootstrap
%define rtems_kernel_version 4.9.6
%define rtems_kernel_compression bz2
#
# The RTEMS build instructions. We use 4.xx Release 1.

View File

@ -21,19 +21,28 @@
%if %{rtems_tools_build}
#
# Pull the latest changes from git each build. Override if this is not what you
# want.
# If the RSB is released look for a release tarball else use git.
#
%if %{defined rtems_tools_version}
%define rtems_tools_git_checkout ?checkout=%{rtems_tools_version}
%if %{rsb_released}
%source set rtems-tools %{rtems_release_url}/%{rtems_tools_version}/rtems-tools-%{rtems_tools_version}.tar.xz
%else
%define rtems_tools_version HEAD
%define rtems_tools_git_checkout %{nil}
#
# rtems_git_commit_hash : The commit hash else the branch is tracked.
#
%if ! %{defined rtems_tools_version}
%define rtems_tools_version HEAD
%endif
%if %{defined rtems_tools_git_commit_hash}
%define rtems_tools_git_checkout ?checkout=%{defined rtems_tools_git_commit_hash}
%else
%define rtems_tools_git_checkout %{nil}
%endif
%source set rtems-tools git://git.rtems.org/rtems-tools.git?reset=hard?branch=%{rtems_tools_version}?pull%{rtems_tools_git_checkout}
%endif
%source set rtems-tools git://git.rtems.org/rtems-tools.git?reset=hard?branch=master?pull%{rtems_tools_git_checkout}
#
# The RTEMS Tools build instructions. We use GIT Release 1.
#
%include tools/rtems-tools-git-1.cfg
%include tools/rtems-tools-common-1.cfg
%endif

View File

@ -2,8 +2,10 @@
# RTEMS Tools for 4.11.
#
# Wait for the release and until then track head.
# %define rtems_tools_version 2015c854c54ac13d3712ddb58e946659dcc617dc
#
# Track the release branch.
#
%define rtems_tools_version %{rsb_version}
#
# The RTEMS Tools build instructions. We use GIT Release 1.

View File

@ -0,0 +1,54 @@
#
# RTEMS Tools Version 2.
#
# This configuration file configure's, builds and install's RTEMS Tools.
#
Name: rtems-tools-%{rtems_tools_version}-%{release}
Summary: RTEMS Tools %{rtems_tools_version} for host %{_host}
Version: %{rtems_tools_version}
Release: %{release}
URL: http://www.rtems.org/
BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n)
License: BSD-2-Caluse + GPL-2.0
#
# Prepare the source code.
#
%prep
# save the build top directory and cd back to it rather than
# using 'cd ..' because some shells change $PWD to a symlink's
# target location and 'cd ..' fails.
build_top=$(pwd)
source_dir_rtems_tools="%{name}"
%source setup rtems-tools -q -D -n %{name}
%patch setup rtems-tools -p1
cd ${build_top}
%build
build_top=$(pwd)
#
# Provide the host for a Cxc build.
#
if test "%{_build}" != "%{_host}" ; then
RT_HOST="-host=%{_host}"
else
RT_HOST=
fi
cd ${source_dir_rtems_tools}
./waf configure ${RT_HOST} --prefix=%{_prefix}
./waf
cd ${build_top}
%install
build_top=$(pwd)
%{__rmdir} $SB_BUILD_ROOT
cd ${source_dir_rtems_tools}
./waf --destdir=$SB_BUILD_ROOT install
cd ${build_top}

View File

@ -45,8 +45,9 @@ version: none, none, ''
release: none, none, ''
buildname: none, none, '%{name}'
# The default is not release.
is_rsb_release: none, none, '0'
# The default is not released.
rsb_released: none, none, '0'
rsb_version: none, none, 'no-version'
# GNU triples needed to build packages
_host: triplet, required, ''

View File

@ -111,8 +111,10 @@ class build:
return name
def _generate_report_(self, header, footer = None):
ereport.generate('rsb-report-%s.txt' % self.macros['name'],
self.opts, header, footer)
label, result = self.opts.with_arg('error-report')
if label.startswith('without') and result == 'no':
ereport.generate('rsb-report-%s.txt' % self.macros['name'],
self.opts, header, footer)
def __init__(self, name, create_tar_files, opts, macros = None):
try:

View File

@ -303,9 +303,8 @@ class command_line:
def sb_released(self):
if version.released():
self.defaults['is_rsb_released'] = '1'
self.defaults['_sbreleased'] = '1'
self.defaults['_sbversion'] = version.str()
self.defaults['rsb_released'] = '1'
self.defaults['rsb_version'] = version.str()
def sb_git(self):
repo = git.repo(self.defaults.expand('%{_sbdir}'), self)