[Buildroot] [git commit] package/c-ares: fix build with latest nodejs

Yann E. MORIN yann.morin.1998 at free.fr
Sun Aug 29 21:19:51 UTC 2021


commit: https://git.buildroot.net/buildroot/commit/?id=a9ca15cf9263becea9fd2ba79ba2a8f9884765ba
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Fix the following build failure with nodejs raised since bump to version
12.22.5 in commit 7038b029d8c8774eca6d7888d6642d7e84ff5165:

../src/cares_wrap.cc:42:11: fatal error: ares_nameser.h: No such file or directory
   42 | # include <ares_nameser.h>
      |           ^~~~~~~~~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/a0f867d5e765fc1aa052de5e53ed350b3b20743f

Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
---
 ...vide-ares_nameser-h-as-a-public-interface.patch | 170 +++++++++++++++++++++
 package/c-ares/c-ares.mk                           |   2 +
 2 files changed, 172 insertions(+)

diff --git a/package/c-ares/0001-Provide-ares_nameser-h-as-a-public-interface.patch b/package/c-ares/0001-Provide-ares_nameser-h-as-a-public-interface.patch
new file mode 100644
index 0000000000..c3ae3daa8d
--- /dev/null
+++ b/package/c-ares/0001-Provide-ares_nameser-h-as-a-public-interface.patch
@@ -0,0 +1,170 @@
+From 7712fcd17847998cf1ee3071284ec50c5b3c1978 Mon Sep 17 00:00:00 2001
+From: Felix Yan <felixonmars at archlinux.org>
+Date: Wed, 18 Aug 2021 01:32:44 +0800
+Subject: [PATCH] Provide ares_nameser.h as a public interface (#417)
+
+NodeJS needs ares_nameser.h as a pubic header.
+
+Fixes: #415
+Fix By: Felix Yan (@felixonmars)
+
+[Retrieved from:
+https://github.com/c-ares/c-ares/commit/7712fcd17847998cf1ee3071284ec50c5b3c1978]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
+---
+ CMakeLists.txt                      |  6 ++++++
+ configure.ac                        | 14 ++++++++++++++
+ include/CMakeLists.txt              |  2 +-
+ include/Makefile.am                 |  2 +-
+ include/ares_build.h.cmake          |  2 ++
+ include/ares_build.h.in             |  3 +++
+ {src/lib => include}/ares_nameser.h | 10 ++++++----
+ src/lib/Makefile.inc                |  1 -
+ 8 files changed, 33 insertions(+), 7 deletions(-)
+ rename {src/lib => include}/ares_nameser.h (98%)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3f42d145..28f8e01a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -557,6 +557,12 @@ ENDIF()
+ IF (HAVE_WINDOWS_H)
+ 	SET (CARES_HAVE_WINDOWS_H 1)
+ ENDIF()
++IF (HAVE_ARPA_NAMESER_H)
++	SET (CARES_HAVE_ARPA_NAMESER_H 1)
++ENDIF()
++IF (HAVE_ARPA_NAMESER_COMPAT_H)
++	SET (CARES_HAVE_ARPA_NAMESER_COMPAT_H 1)
++ENDIF()
+ 
+ # Record toplevel CMakeLists.txt path
+ set(CARES_TOPLEVEL_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+diff --git a/configure.ac b/configure.ac
+index c21b8ff3..1ba8a8ec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -547,6 +547,20 @@ dnl *Sigh* these are needed in order for net/if.h to get properly detected.
+ ]
+ )
+ 
++dnl Test and set CARES_HAVE_ARPA_NAMESER_H / CARES_HAVE_ARPA_NAMESER_COMPAT_H
++AC_CHECK_DECL([HAVE_ARPA_NAMESER_H],
++[
++CARES_DEFINE_UNQUOTED([CARES_HAVE_ARPA_NAMESER_H])
++],
++[]
++)
++AC_CHECK_DECL([HAVE_ARPA_NAMESER_COMPAT_H],
++[
++CARES_DEFINE_UNQUOTED([CARES_HAVE_ARPA_NAMESER_COMPAT_H])
++],
++[]
++)
++
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+ AC_TYPE_SIZE_T
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 439e7bb2..3321956d 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -3,6 +3,6 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h)
+ 
+ # Headers installation target
+ IF (CARES_INSTALL)
+-	SET (CARES_HEADERS ares.h ares_version.h "${PROJECT_BINARY_DIR}/ares_build.h" ares_rules.h ares_dns.h)
++	SET (CARES_HEADERS ares.h ares_version.h "${PROJECT_BINARY_DIR}/ares_build.h" ares_rules.h ares_dns.h ares_nameser.h)
+ 	INSTALL (FILES ${CARES_HEADERS} COMPONENT Devel DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ ENDIF ()
+diff --git a/include/Makefile.am b/include/Makefile.am
+index 125a686a..d208bece 100644
+--- a/include/Makefile.am
++++ b/include/Makefile.am
+@@ -2,6 +2,6 @@ AUTOMAKE_OPTIONS = foreign nostdinc 1.9.6
+ ACLOCAL_AMFLAGS = -I m4 --install
+ 
+ # what headers to install on 'make install':
+-include_HEADERS = ares.h ares_version.h ares_build.h ares_rules.h ares_dns.h
++include_HEADERS = ares.h ares_version.h ares_build.h ares_rules.h ares_dns.h ares_nameser.h
+ 
+ EXTRA_DIST = ares_build.h.cmake ares_build.h.in ares_build.h.dist CMakeLists.txt
+diff --git a/include/ares_build.h.cmake b/include/ares_build.h.cmake
+index ac32d47f..e847f17e 100644
+--- a/include/ares_build.h.cmake
++++ b/include/ares_build.h.cmake
+@@ -13,6 +13,8 @@
+ #cmakedefine CARES_HAVE_WS2TCPIP_H
+ #cmakedefine CARES_HAVE_WINSOCK2_H
+ #cmakedefine CARES_HAVE_WINDOWS_H
++#cmakedefine CARES_HAVE_ARPA_NAMESER_H
++#cmakedefine CARES_HAVE_ARPA_NAMESER_COMPAT_H
+ 
+ #ifdef CARES_HAVE_SYS_TYPES_H
+ #  include <sys/types.h>
+diff --git a/include/ares_build.h.in b/include/ares_build.h.in
+index 24e3a989..20fd28a0 100644
+--- a/include/ares_build.h.in
++++ b/include/ares_build.h.in
+@@ -55,6 +55,9 @@
+    Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_already_defined
+ #endif
+ 
++#undef CARES_HAVE_ARPA_NAMESER_H
++#undef CARES_HAVE_ARPA_NAMESER_COMPAT_H
++
+ /* ================================================================ */
+ /*  EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY  */
+ /* ================================================================ */
+diff --git a/src/lib/ares_nameser.h b/include/ares_nameser.h
+similarity index 98%
+rename from src/lib/ares_nameser.h
+rename to include/ares_nameser.h
+index 65aebcc1..18a9e5ac 100644
+--- a/src/lib/ares_nameser.h
++++ b/include/ares_nameser.h
+@@ -2,10 +2,12 @@
+ #ifndef ARES_NAMESER_H
+ #define ARES_NAMESER_H
+ 
+-#ifdef HAVE_ARPA_NAMESER_H
++#include "ares_build.h"
++
++#ifdef CARES_HAVE_ARPA_NAMESER_H
+ #  include <arpa/nameser.h>
+ #endif
+-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
++#ifdef CARES_HAVE_ARPA_NAMESER_COMPAT_H
+ #  include <arpa/nameser_compat.h>
+ #endif
+ 
+@@ -68,7 +70,7 @@
+  * provide them
+  * ============================================================================
+  */
+-#ifndef HAVE_ARPA_NAMESER_H
++#ifndef CARES_HAVE_ARPA_NAMESER_H
+ 
+ typedef enum __ns_class {
+     ns_c_invalid = 0,       /* Cookie. */
+@@ -173,7 +175,7 @@ typedef enum __ns_rcode {
+     ns_r_badtime = 18
+ } ns_rcode;
+ 
+-#endif /* HAVE_ARPA_NAMESER_H */
++#endif /* CARES_HAVE_ARPA_NAMESER_H */
+ 
+ 
+ /* ============================================================================
+diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
+index 7426c3de..47bc8cdd 100644
+--- a/src/lib/Makefile.inc
++++ b/src/lib/Makefile.inc
+@@ -73,7 +73,6 @@ HHEADERS = ares_android.h                        \
+   ares_strsplit.h			\
+   ares_writev.h				\
+   bitncmp.h				\
+-  ares_nameser.h			\
+   ares_setup.h				\
+   setup_once.h
+ 
diff --git a/package/c-ares/c-ares.mk b/package/c-ares/c-ares.mk
index 3a7c6e0298..761aa73280 100644
--- a/package/c-ares/c-ares.mk
+++ b/package/c-ares/c-ares.mk
@@ -10,6 +10,8 @@ C_ARES_INSTALL_STAGING = YES
 C_ARES_CONF_OPTS = --with-random=/dev/urandom
 C_ARES_LICENSE = MIT
 C_ARES_LICENSE_FILES = LICENSE.md
+# We're patching configure.ac
+C_ARES_AUTORECONF = YES
 
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))


More information about the buildroot mailing list