diff mbox series

package/ncurses: drop our custom host build commands

Message ID 20220830124423.164957-1-yann.morin.1998@free.fr
State Accepted
Headers show
Series package/ncurses: drop our custom host build commands | expand

Commit Message

Yann E. MORIN Aug. 30, 2022, 12:44 p.m. UTC
Commit bf446513e7e7 (ncurses: fix hanging installation due to old
version of tic) introduced the build of the host tic, to be used by the
target ncurses. That commit purportedly built a static tic, but that is
(at least now) wrong: there is nothing that makes the build of tic
static.

Initially, host-ncurses was configured with --without-shared, but that
only drives whether to generate shared libs or not, it does not drive
whether to do a shared or static link of executables.

And in any case, in af23d762e51b (ncurses: enable shared library build
on the host) we explicitly stopped requesting the build of a static
library, to instead require the build of a shared library.

So, we never had a statically linked tic ever.

Furthermore, we override the _BUKLLD_CMDS, but we do not provide any
_INSTALL_CMDS. As a consequence, the full ncurses is installed, not just
tic. And since we override the _BUILD_CMDS, the libraries are not built,
so they get built during the install step.

And we do indeed need the libraries (host-gettext needs them), and not
just tic.

So, just drop our custom _BUILD_CMDS and just build the whole package
with the default settings. We keep the explicit use of --with-shared,
as this is not the standard flag (--enable-shared) and it is not obvious
what the default is.

The set of files installed before and after this change is exactly the
same, and tic still is an "ELF 64-bit LSB shared object" with a RUNPATH
that still correctly points to $(HOST_DIR)/lib

To be noted: there is no regressin in build time either, since we were
already building everything anyway.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
 package/ncurses/ncurses.mk | 10 ----------
 1 file changed, 10 deletions(-)

Comments

Thomas Petazzoni Sept. 23, 2022, 9:55 p.m. UTC | #1
On Tue, 30 Aug 2022 14:44:23 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Commit bf446513e7e7 (ncurses: fix hanging installation due to old
> version of tic) introduced the build of the host tic, to be used by the
> target ncurses. That commit purportedly built a static tic, but that is
> (at least now) wrong: there is nothing that makes the build of tic
> static.
> 
> Initially, host-ncurses was configured with --without-shared, but that
> only drives whether to generate shared libs or not, it does not drive
> whether to do a shared or static link of executables.
> 
> And in any case, in af23d762e51b (ncurses: enable shared library build
> on the host) we explicitly stopped requesting the build of a static
> library, to instead require the build of a shared library.
> 
> So, we never had a statically linked tic ever.
> 
> Furthermore, we override the _BUKLLD_CMDS, but we do not provide any
> _INSTALL_CMDS. As a consequence, the full ncurses is installed, not just
> tic. And since we override the _BUILD_CMDS, the libraries are not built,
> so they get built during the install step.
> 
> And we do indeed need the libraries (host-gettext needs them), and not
> just tic.
> 
> So, just drop our custom _BUILD_CMDS and just build the whole package
> with the default settings. We keep the explicit use of --with-shared,
> as this is not the standard flag (--enable-shared) and it is not obvious
> what the default is.
> 
> The set of files installed before and after this change is exactly the
> same, and tic still is an "ELF 64-bit LSB shared object" with a RUNPATH
> that still correctly points to $(HOST_DIR)/lib
> 
> To be noted: there is no regressin in build time either, since we were
> already building everything anyway.
> 
> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
> ---
>  package/ncurses/ncurses.mk | 10 ----------
>  1 file changed, 10 deletions(-)

Applied to master, thanks.

Thomas
Peter Korsgaard Sept. 30, 2022, 3:01 p.m. UTC | #2
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Commit bf446513e7e7 (ncurses: fix hanging installation due to old
 > version of tic) introduced the build of the host tic, to be used by the
 > target ncurses. That commit purportedly built a static tic, but that is
 > (at least now) wrong: there is nothing that makes the build of tic
 > static.

 > Initially, host-ncurses was configured with --without-shared, but that
 > only drives whether to generate shared libs or not, it does not drive
 > whether to do a shared or static link of executables.

 > And in any case, in af23d762e51b (ncurses: enable shared library build
 > on the host) we explicitly stopped requesting the build of a static
 > library, to instead require the build of a shared library.

 > So, we never had a statically linked tic ever.

 > Furthermore, we override the _BUKLLD_CMDS, but we do not provide any
 > _INSTALL_CMDS. As a consequence, the full ncurses is installed, not just
 > tic. And since we override the _BUILD_CMDS, the libraries are not built,
 > so they get built during the install step.

 > And we do indeed need the libraries (host-gettext needs them), and not
 > just tic.

 > So, just drop our custom _BUILD_CMDS and just build the whole package
 > with the default settings. We keep the explicit use of --with-shared,
 > as this is not the standard flag (--enable-shared) and it is not obvious
 > what the default is.

 > The set of files installed before and after this change is exactly the
 > same, and tic still is an "ELF 64-bit LSB shared object" with a RUNPATH
 > that still correctly points to $(HOST_DIR)/lib

 > To be noted: there is no regressin in build time either, since we were
 > already building everything anyway.

 > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>

Committed to 2022.02.x, 2022.05.x and 2022.08.x, thanks.
diff mbox series

Patch

diff --git a/package/ncurses/ncurses.mk b/package/ncurses/ncurses.mk
index 5d9c6bb0dd..2881ca1308 100644
--- a/package/ncurses/ncurses.mk
+++ b/package/ncurses/ncurses.mk
@@ -184,16 +184,6 @@  define NCURSES_TARGET_CLEANUP_TERMINFO
 endef
 NCURSES_POST_INSTALL_TARGET_HOOKS += NCURSES_TARGET_CLEANUP_TERMINFO
 
-#
-# On systems with an older version of tic, the installation of ncurses hangs
-# forever. To resolve the problem, build a static version of tic on host
-# ourselves, and use that during installation.
-#
-define HOST_NCURSES_BUILD_CMDS
-	$(HOST_MAKE_ENV) $(MAKE1) -C $(@D) sources
-	$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/progs tic
-endef
-
 HOST_NCURSES_CONF_ENV = \
 	ac_cv_path_LDCONFIG=""