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

Chris Johns chrisj at rtems.org
Tue Mar 9 03:23:46 UTC 2021



On 9/3/21 2:03 pm, Vijay Kumar Banerjee wrote:
> 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.

But we do ...

https://git.rtems.org/rtems-net-legacy/commit/?id=5713f7027984012ea17cdd582e6d0258ee7aa58a

Then the `download` link. Just copy and paste that link into this file...

% shasum -a 512 rtems-net-legacy-5713f7027984012ea17cdd582e6d0258ee7aa58a.tar.bz2
d1dc27a993fe8fd6f6219eebaa21019dd564a88b1445a9782ffe3ba52238a5ed2bcf8f219966bbf03134f75e467feffe9efb02301d88fec140323f8fe808de78
 rtems-net-legacy-5713f7027984012ea17cdd582e6d0258ee7aa58a.tar.bz2

>>> +#
>>> +%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.

Thanks

> 
>>> +
>>> +#
>>> +# 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.

No problem and this is understandable.

Chris


More information about the devel mailing list