Re: [PATCH 2/3] textproc/gsed: Add GNU sed build support
On 14/9/2022 5:02 pm, chr...@rtems.org wrote: > From: Chris Johns > diff --git a/bare/config/textproc/gsed-internal.bset > b/bare/config/textproc/gsed-internal.bset > new file mode 100644 > index 000..e93e1a5 > --- /dev/null > +++ b/bare/config/textproc/gsed-internal.bset > @@ -0,0 +1,12 @@ > +# > +# Internal GNU sed > +# > + > +%define _internal_gsed yes > +%define _internal_gsed_path %{_tmppath}/sb-%{_uid}/${SB_PREFIX_CLEAN} > +%define _disable_collecting yes > +%define _disable_packaging yes > +%define _disable_reporting yes > +%define _disable_installing yes Another issue is the explictic '%include' of this buildset in rtems-default-tools.bset made these defines appear in the global macro space of the packages being built and that stops them being packaged and installed. I used an explicit include to try and share the '_internal_gsed_path' define. I will need to find another solution to this. Chris ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH 2/3] textproc/gsed: Add GNU sed build support
Unfortunately needed on some hosts. OK by me. On Wed, Sep 14, 2022 at 2:02 AM wrote: > From: Chris Johns > > Updates #2300 > --- > bare/config/textproc/gsed-4.8.cfg | 12 +++ > bare/config/textproc/gsed-internal.bset | 12 +++ > bare/config/textproc/gsed.bset | 4 + > bare/config/textproc/gsed.cfg | 8 ++ > source-builder/config/gsed-1.cfg| 108 > 5 files changed, 144 insertions(+) > create mode 100644 bare/config/textproc/gsed-4.8.cfg > create mode 100644 bare/config/textproc/gsed-internal.bset > create mode 100644 bare/config/textproc/gsed.bset > create mode 100644 bare/config/textproc/gsed.cfg > create mode 100644 source-builder/config/gsed-1.cfg > > diff --git a/bare/config/textproc/gsed-4.8.cfg > b/bare/config/textproc/gsed-4.8.cfg > new file mode 100644 > index 000..8806bef > --- /dev/null > +++ b/bare/config/textproc/gsed-4.8.cfg > @@ -0,0 +1,12 @@ > +# > +# GNU sed 4.8 > +# > + > +%include %{_configdir}/base.cfg > + > +%define gsed_version 4.8 > + > +%hash sha512 sed-%{gsed_version}.tar.gz \ > + > C94KIhaOMQCwIUKTsTu6CEzM5F/7WGtsV1OPUY52akRDn/vyR4mPK7j1BtBTHTbynAp7cIhJVbqTz8/YhjG/eQ== > + > +%include %{_configdir}/gsed-1.cfg > diff --git a/bare/config/textproc/gsed-internal.bset > b/bare/config/textproc/gsed-internal.bset > new file mode 100644 > index 000..e93e1a5 > --- /dev/null > +++ b/bare/config/textproc/gsed-internal.bset > @@ -0,0 +1,12 @@ > +# > +# Internal GNU sed > +# > + > +%define _internal_gsed yes > +%define _internal_gsed_path %{_tmppath}/sb-%{_uid}/${SB_PREFIX_CLEAN} > +%define _disable_collecting yes > +%define _disable_packaging yes > +%define _disable_reporting yes > +%define _disable_installing yes > + > +%include textproc/gsed.bset > diff --git a/bare/config/textproc/gsed.bset > b/bare/config/textproc/gsed.bset > new file mode 100644 > index 000..68f2e13 > --- /dev/null > +++ b/bare/config/textproc/gsed.bset > @@ -0,0 +1,4 @@ > +# > +# GNU sed > +# > +textproc/gsed.cfg > diff --git a/bare/config/textproc/gsed.cfg b/bare/config/textproc/gsed.cfg > new file mode 100644 > index 000..8287c74 > --- /dev/null > +++ b/bare/config/textproc/gsed.cfg > @@ -0,0 +1,8 @@ > +# > +# GNU sed has a version option, check for it. > +# If not found build it. > +# > +%define has_gnu_sed %(sed --version > /dev/null 2>&1; echo $?) > +%if %{has_gnu_sed} != 0 > + %include %{_configdir}/textproc/gsed-4.8.cfg > +%endif > diff --git a/source-builder/config/gsed-1.cfg > b/source-builder/config/gsed-1.cfg > new file mode 100644 > index 000..828da50 > --- /dev/null > +++ b/source-builder/config/gsed-1.cfg > @@ -0,0 +1,108 @@ > +# > +# GNU sed 1.xx Version 1. > +# > +# This configuration file configure's, make's and install's GNU's sed > +# > + > +%if %{release} == %{nil} > + %define release 1 > +%endif > + > +%ifn %{defined _internal_gsed} > + %define _internal_gsed no > +%endif > +%ifn %{defined _internal_gsed_path} > + %define _internal_gsed_path %{_prefix} > +%endif > + > +Name: gsed-%{gsed_version}-%{_host}-%{release} > +Summary: GNU sed v%{gsed_version} for host %{_host} > +Version: %{gsed_version} > +Release: %{release} > +URL: https://www.gnu.org/software/sed/ > + > +# > +# Source > +# > +%source set gsed https://ftp.gnu.org/gnu/sed/sed-%{gsed_version}.tar.gz > + > +# > +# Remap the install paths if it is an internal build > +# > +%if %{_internal_gsed} == yes > + %define gsed_prefix %{_internal_gsed_path} > +%else > + %define gsed_prefix %{_prefix} > +%endif > + > +%define gsed_exec_prefix%{gsed_prefix} > +%define gsed_bindir %{gsed_exec_prefix}/bin > +%define gsed_sbindir%{gsed_exec_prefix}/sbin > +%define gsed_libexecdir %{gsed_exec_prefix}/libexec > +%define gsed_datarootdir%{gsed_prefix}/share > +%define gsed_datadir%{gsed_datarootdir} > +%define gsed_sysconfdir %{gsed_prefix}/etc > +%define gsed_sharedstatedir %{gsed_prefix}/com > +%define gsed_localstatedir %{gsed_prefix}/var > +%define gsed_includedir %{gsed_prefix}/include > +%define gsed_libdir %{gsed_exec_prefix}/%{_lib} > +%define gsed_mandir %{gsed_datarootdir}/man > +%define gsed_infodir%{gsed_datarootdir}/info > +%define gsed_localedir %{gsed_datarootdir}/locale > + > +# > +# Prepare the source code. > +# > +%prep > + build_top=$(pwd) > + > + source_dir_gsed="sed-%{gsed_version}" > + %source setup gsed -q -n sed-%{gsed_version} > + %patch setup gsed -p1 > + > + cd ${build_top} > + > +%build > + build_top=$(pwd) > + > + %if %{defined _internal_gsed_path} > +export PATH="%{_internal_gsed_path}/bin:${PATH}" > + %endif > + > + %{build_directory} > + > + mkdir -p ${build_dir} > + cd ${build_dir} > + > + %{host_build_flags} > + > + ../${source_dir_gsed}/configure \ > +--prefix=%{gsed_prefix} \ > +--bindir=%{gsed_bindir} \ > +--exec_prefix=%{gsed_exec_prefix} \ > +--includedir=%{gsed_includedir} \ > +
[PATCH 2/3] textproc/gsed: Add GNU sed build support
From: Chris Johns Updates #2300 --- bare/config/textproc/gsed-4.8.cfg | 12 +++ bare/config/textproc/gsed-internal.bset | 12 +++ bare/config/textproc/gsed.bset | 4 + bare/config/textproc/gsed.cfg | 8 ++ source-builder/config/gsed-1.cfg| 108 5 files changed, 144 insertions(+) create mode 100644 bare/config/textproc/gsed-4.8.cfg create mode 100644 bare/config/textproc/gsed-internal.bset create mode 100644 bare/config/textproc/gsed.bset create mode 100644 bare/config/textproc/gsed.cfg create mode 100644 source-builder/config/gsed-1.cfg diff --git a/bare/config/textproc/gsed-4.8.cfg b/bare/config/textproc/gsed-4.8.cfg new file mode 100644 index 000..8806bef --- /dev/null +++ b/bare/config/textproc/gsed-4.8.cfg @@ -0,0 +1,12 @@ +# +# GNU sed 4.8 +# + +%include %{_configdir}/base.cfg + +%define gsed_version 4.8 + +%hash sha512 sed-%{gsed_version}.tar.gz \ + C94KIhaOMQCwIUKTsTu6CEzM5F/7WGtsV1OPUY52akRDn/vyR4mPK7j1BtBTHTbynAp7cIhJVbqTz8/YhjG/eQ== + +%include %{_configdir}/gsed-1.cfg diff --git a/bare/config/textproc/gsed-internal.bset b/bare/config/textproc/gsed-internal.bset new file mode 100644 index 000..e93e1a5 --- /dev/null +++ b/bare/config/textproc/gsed-internal.bset @@ -0,0 +1,12 @@ +# +# Internal GNU sed +# + +%define _internal_gsed yes +%define _internal_gsed_path %{_tmppath}/sb-%{_uid}/${SB_PREFIX_CLEAN} +%define _disable_collecting yes +%define _disable_packaging yes +%define _disable_reporting yes +%define _disable_installing yes + +%include textproc/gsed.bset diff --git a/bare/config/textproc/gsed.bset b/bare/config/textproc/gsed.bset new file mode 100644 index 000..68f2e13 --- /dev/null +++ b/bare/config/textproc/gsed.bset @@ -0,0 +1,4 @@ +# +# GNU sed +# +textproc/gsed.cfg diff --git a/bare/config/textproc/gsed.cfg b/bare/config/textproc/gsed.cfg new file mode 100644 index 000..8287c74 --- /dev/null +++ b/bare/config/textproc/gsed.cfg @@ -0,0 +1,8 @@ +# +# GNU sed has a version option, check for it. +# If not found build it. +# +%define has_gnu_sed %(sed --version > /dev/null 2>&1; echo $?) +%if %{has_gnu_sed} != 0 + %include %{_configdir}/textproc/gsed-4.8.cfg +%endif diff --git a/source-builder/config/gsed-1.cfg b/source-builder/config/gsed-1.cfg new file mode 100644 index 000..828da50 --- /dev/null +++ b/source-builder/config/gsed-1.cfg @@ -0,0 +1,108 @@ +# +# GNU sed 1.xx Version 1. +# +# This configuration file configure's, make's and install's GNU's sed +# + +%if %{release} == %{nil} + %define release 1 +%endif + +%ifn %{defined _internal_gsed} + %define _internal_gsed no +%endif +%ifn %{defined _internal_gsed_path} + %define _internal_gsed_path %{_prefix} +%endif + +Name: gsed-%{gsed_version}-%{_host}-%{release} +Summary: GNU sed v%{gsed_version} for host %{_host} +Version: %{gsed_version} +Release: %{release} +URL: https://www.gnu.org/software/sed/ + +# +# Source +# +%source set gsed https://ftp.gnu.org/gnu/sed/sed-%{gsed_version}.tar.gz + +# +# Remap the install paths if it is an internal build +# +%if %{_internal_gsed} == yes + %define gsed_prefix %{_internal_gsed_path} +%else + %define gsed_prefix %{_prefix} +%endif + +%define gsed_exec_prefix%{gsed_prefix} +%define gsed_bindir %{gsed_exec_prefix}/bin +%define gsed_sbindir%{gsed_exec_prefix}/sbin +%define gsed_libexecdir %{gsed_exec_prefix}/libexec +%define gsed_datarootdir%{gsed_prefix}/share +%define gsed_datadir%{gsed_datarootdir} +%define gsed_sysconfdir %{gsed_prefix}/etc +%define gsed_sharedstatedir %{gsed_prefix}/com +%define gsed_localstatedir %{gsed_prefix}/var +%define gsed_includedir %{gsed_prefix}/include +%define gsed_libdir %{gsed_exec_prefix}/%{_lib} +%define gsed_mandir %{gsed_datarootdir}/man +%define gsed_infodir%{gsed_datarootdir}/info +%define gsed_localedir %{gsed_datarootdir}/locale + +# +# Prepare the source code. +# +%prep + build_top=$(pwd) + + source_dir_gsed="sed-%{gsed_version}" + %source setup gsed -q -n sed-%{gsed_version} + %patch setup gsed -p1 + + cd ${build_top} + +%build + build_top=$(pwd) + + %if %{defined _internal_gsed_path} +export PATH="%{_internal_gsed_path}/bin:${PATH}" + %endif + + %{build_directory} + + mkdir -p ${build_dir} + cd ${build_dir} + + %{host_build_flags} + + ../${source_dir_gsed}/configure \ +--prefix=%{gsed_prefix} \ +--bindir=%{gsed_bindir} \ +--exec_prefix=%{gsed_exec_prefix} \ +--includedir=%{gsed_includedir} \ +--libdir=%{gsed_libdir} \ +--libexecdir=%{gsed_libexecdir} \ +--mandir=%{gsed_mandir} \ +--infodir=%{gsed_infodir} \ +--datadir=%{gsed_datadir} \ +--build=%{_build} --host=%{_host} + + %{__make} %{?_smp_mflags} all + + cd ${build_top} + +%install + build_top=$(pwd) + + %{__rmdir} $SB_BUILD_ROOT + + cd ${build_dir} + + %if %{_internal_gsed} == yes +%{__make} install + %else +%{__make}