[PATCH RSB] Add recipe for building rtems-net-legacy

Chris Johns chrisj at rtems.org
Tue Mar 9 02:54:05 UTC 2021


Hi Vijay,

Thank you for sorting this out.

On 9/3/21 1:31 pm, Vijay Kumar Banerjee wrote:
> ---
>  rtems/config/6/rtems-net-legacy.bset          |  4 ++
>  rtems/config/tools/rtems-net-legacy-6.cfg     | 12 ++++
>  .../config/tools/rtems-net-legacy-common.cfg  | 65 +++++++++++++++++++
>  3 files changed, 81 insertions(+)
>  create mode 100644 rtems/config/6/rtems-net-legacy.bset
>  create mode 100644 rtems/config/tools/rtems-net-legacy-6.cfg
>  create mode 100644 rtems/config/tools/rtems-net-legacy-common.cfg
> 
> diff --git a/rtems/config/6/rtems-net-legacy.bset b/rtems/config/6/rtems-net-legacy.bset
> new file mode 100644
> index 0000000..424091c
> --- /dev/null
> +++ b/rtems/config/6/rtems-net-legacy.bset
> @@ -0,0 +1,4 @@
> +#
> +# Legacy networking stack
> +#
> +tools/rtems-net-legacy-6
> diff --git a/rtems/config/tools/rtems-net-legacy-6.cfg b/rtems/config/tools/rtems-net-legacy-6.cfg
> new file mode 100644
> index 0000000..9480269
> --- /dev/null
> +++ b/rtems/config/tools/rtems-net-legacy-6.cfg
> @@ -0,0 +1,12 @@
> +#
> +# RTEMS Legacy networking stack
> +#
> +
> +#  branch: main
> +%define rtems_net_version d8888e058bbbb5e271701d5683e5ab332db72230
> +%hash sha512 rtems-net-legacy-%{rtems_net_version}.tar.gz \
> +               Kmznx8/DsHLf8MX5wL8b65R7AqJVTmGcwB7I4M8ETB27u666Wi1T5M8SQMLHsZMo9aZ44umWyxdCg6l2OpWr2w==
> +%define rtems_waf_version 1a118bbcd52138dbdc3236e64bc23fd430a064b1
> +%hash sha512 rtems_waf.tar.gz 9WIROD6rid1M9fsdFWy1Gz/oCsx3l+QGOWoyXnSoGbo/xiyQ+MS+TZU2YoCUNx6/SE18ZeCiq79JYE5H+Yh46Q==
> +
> +%include tools/rtems-net-legacy-common.cfg
> diff --git a/rtems/config/tools/rtems-net-legacy-common.cfg b/rtems/config/tools/rtems-net-legacy-common.cfg
> new file mode 100644
> index 0000000..6ded30f
> --- /dev/null
> +++ b/rtems/config/tools/rtems-net-legacy-common.cfg
> @@ -0,0 +1,65 @@
> +#
> +# RTEMS Legacy networking stack
> +#
> +# This configuration file configure's, build's and install's linetworking.a.
> +#
> +
> +%if %{release} == %{nil}
> +%define release 1
> +%endif
> +
> +Name:      rtems-net-letgacy-%{rtems_net_version}-%{_host}-%{release}

rtems-net-letgacy -> rtems-net-legacy

> +Summary:   RTEMS net legacy provides legacy networking stack from RTEMS 5 and earlier
> +Version:   %{rtems_net_version}
> +Release:   %{release}
> +URL:       https://git.rtems.org/rtems-net-legacy.git/
> +
> +
> +#
> +# RTEMS BSP support.
> +#
> +%include rtems-bsp.cfg
> +
> +#
> +# Net legacy Source from github.

Why github?

> +#
> +%source set rtems_net_legacy \
> +      --rsb-file=rtems-net-legacy-%{rtems_net_version}.tar.gz https://github.com/RTEMS/rtems-net-legacy/archive/%{rtems_net_version}.tar.gz 
> +%source set rtems_waf \
> +      --rsb-file=rtems_waf.tar.gz https://github.com/RTEMS/rtems_waf/archive/%{rtems_waf_version}.tar.gz

Please so not reference github for rtems_waf for RTEMS project things. We need
to be self contained.

The libbsd recipe has an %{rsb_released} check. This will not work with a
released net-legacy tarball as a released tarball has rtems_waf included, it has
to be included in the tarball for a release be definition. The release scripts
inspect a repo for submodules and includes them as source after filtering (we do
not want to capture things like freebsd-org).

> +
> +#
> +# Prepare the source code.
> +#
> +%prep
> +  build_top=$(pwd)
> +
> +  source_dir_net_legacy="rtems-net-legacy-%{rtems_net_version}"
> +  %source setup rtems_net_legacy -q -n rtems-net-legacy-%{rtems_net_version}
> +  %source setup rtems_waf -q -s 1 -c -a -n rtems-net-legacy-%{rtems_net_version}/rtems_waf
> +  cd ${build_top}
> +
> +#
> +# Build the source code.
> +#
> +%build
> +  build_top=$(pwd)
> +
> +  %{host_build_flags}
> +
> +  cd ${source_dir_net_legacy}
> +
> +  ./waf distclean configure \
> +    --prefix=%{_prefix} \
> +    --rtems-bsp=%{rtems_bsp_arch_bsp}
> +
> +  ./waf
> +
> +  cd ${build_top}
> +
> +%install
> +  build_top=$(pwd)
> +
> +  cd ${source_dir_net_legacy}
> +  ./waf install

The --destdir needs to be used as it is in the libbsd recipe. What is here
installs into the user's prefix and not into the RSB staging area. An RSB build
is a transaction, it can only install a build once all the pieces in the build
have built. Installing to the user's prefix would leave the user's prefix in an
unknown state if a piece did not build.

Chris


More information about the devel mailing list