diff --git a/package/ncftp/0001-configure-detect-cross-compilation-from-host-and-buil.patch b/package/ncftp/0001-configure-detect-cross-compilation-from-host-and-buil.patch new file mode 100644 index 0000000000..c3ecd61d1f --- /dev/null +++ b/package/ncftp/0001-configure-detect-cross-compilation-from-host-and-buil.patch @@ -0,0 +1,60 @@ +From: Yegor Yefremov +Date: Thu, 3 Sep 2026 10:00:00 +0200 +Subject: [PATCH] configure: detect cross compilation from --host and --build + +ncftp still ships a configure script generated with autoconf 2.13, which +determines whether it is cross compiling by simply trying to run a +trivial program built with $CC. That heuristic breaks when the build +machine is able to execute the binaries produced by the cross compiler, +which is typically the case when building for x86/x86-64 on an x86-64 +machine: configure then concludes it is not cross compiling and starts +using AC_TRY_RUN based tests. + +Those tests link against the target libraries but are executed on the +build machine, so they fail as soon as more than the bare C library is +involved. The most visible victim is the curses detection, which links +the test program against the target libncurses and then runs it: + + checking for curses library headers... checking for ncurses.h... yes + checking for curses.h... yes + checking for curses library... no + +With no curses library, ncftpbookmarks is silently dropped from the +build and installation later fails with: + + install: cannot stat '.../build/ncftp-3.3.0/bin/ncftpbookmarks': No such file or directory + +Follow what autoconf has been doing since 2.50 and consider the build +cross compilation as soon as --host is given and differs from --build, +regardless of whether the produced binaries happen to be runnable. + +Note: configure is not regenerated during the build, hence the generated +script is patched directly. + +Upstream: N/A, patching a generated file (upstream has neither a public +VCS nor a bug tracker) + +Signed-off-by: Yegor Yefremov +--- + configure | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/configure b/configure +index d955e20..2311c73 100755 +--- a/configure ++++ b/configure +@@ -845,8 +845,13 @@ int main(void){return(0);} + EOF + if { (eval echo configure:847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes ++ # If --host was given and differs from --build, we are cross compiling, ++ # even when the build machine happens to be able to run the binaries ++ # produced by the cross compiler. ++ if test "$host" != NONE && test "$host" != "$build"; then ++ ac_cv_prog_cc_cross=yes + # If we can't run a trivial program, we are probably using a cross compiler. +- if (./conftest; exit) 2>/dev/null; then ++ elif (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes diff --git a/package/ncftp/ncftp.mk b/package/ncftp/ncftp.mk index c56fc86848..4075449c53 100644 --- a/package/ncftp/ncftp.mk +++ b/package/ncftp/ncftp.mk @@ -11,7 +11,6 @@ NCFTP_TARGET_BINS = ncftp NCFTP_LICENSE = ClArtistic NCFTP_LICENSE_FILES = doc/LICENSE.txt -NCFTP_DEPENDENCIES = host-autoconf NCFTP_CONF_OPTS = --disable-ccdv ifeq ($(BR2_PACKAGE_NCFTP_GET),y)