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

Vijay Kumar Banerjee vijay at rtems.org
Tue Mar 9 03:03:28 UTC 2021


Hi Chris,

Thanks for reviewing.

On Mon, Mar 8, 2021 at 7:54 PM Chris Johns <chrisj at rtems.org> wrote:
>
> 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
>
Thanks.


> > +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?
>
We don't have a tar for this in the cgit yet, so this was a workaround.

> > +#
> > +%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).
>
Ok, understood. Thanks for the explanation, I'll fix this.

> > +
> > +#
> > +# 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.
>
Thanks for the explanation, I took a shortcut to avoid some errors I
was getting with --destdir option, I'll have a deeper look and will
add it.

Best regards,
Vijay

> Chris


More information about the devel mailing list