#3532 closed defect (fixed)

RSB source only download is host specific

Reported by: Chris Johns Owned by: Chris Johns
Priority: normal Milestone: 5.1
Component: tool/rsb Version: 5
Severity: blocker Keywords:
Cc: Blocked By:

Description (last modified by Chris Johns)

The RSB source only download is host specific. Configurations for builds can restrict sources or patches by host to work around specific host issues. Currently a source only download is host specific because the host check is based on the host the RSB is being run on.

The release process uses source only downloading to create the complete set of sources in a release. This issue means some host specific source may not be captured.

I am yet to figure how to resolve this issue because the download logic is driven by the configuration scripts and this type of logic exists in configuration files such as rtems-gcc-7.3.0-newlib-d13c84eb07e35984bf7a974cd786a6cdac29e6b9.cfg:

%if %{_build_os} == freebsd || %{_build_os} == darwin
 %patch add gcc --rsb-file=freebsd-libgcc-sed-fix.patch -p0 https://gcc.gnu.org/bugzilla/attachment.cgi?id=41380
 %hash  sha256 freebsd-libgcc-sed-fix.patch 8a11bd619c2e55466688e328da00b387d02395c1e8ff4a99225152387a1e60a4

The simpler construct in rtems-tools-common-1.cfg of:

  %ifos win32 mingw ming32
   SB_BUILD_ROOT_WAF=$SB_BUILD_ROOT$(echo %{_prefix} | cut -c 1-2)

is easier to manage as the %ifos logic can always return True however the %else path also need to be followed and this could break the logic in a configuration file. Yes, the example is not about sources or patches however it shows what could be used.
I do not think creating a new variable such as %{download_only}and adding logic to the configuration file will help, for example:

%if %{download_only} || %{_build_os} == freebsd || %{_build_os} == darwin
 %patch add gcc foobar-bsd.patch
 %patch add gcc foobar-gnu.patch

We require the logic to follow the %if True path and the %else path.

Change History (2)

comment:1 Changed on Sep 27, 2018 at 11:08:52 PM by Chris Johns

Description: modified (diff)

comment:2 Changed on May 21, 2019 at 11:27:31 PM by Chris Johns <chrisj@…>

Resolution: fixed
Status: assignedclosed

In a74e432/rtems-source-builder:

sb: Add sb-get-sources to download all referenced source files.

  • Downloads all files into a single directory
  • Iterates over all supported hosts to get any host dependent source no matter which host you run the command on.

Closes #3532

Note: See TracTickets for help on using tickets.