Vaibhav Jain <[email protected]> writes:

> Second hunk of this diff seems to be a revert of [1]  which might
> break the ndctl build on Arch Linux.
>
> AFAIS for Centos/Fedora/RHEL etc the iniparser.h file is present in the
> default include path('/usr/include') as a softlink to
> '/usr/include/iniparser/iniparser.h' . Ubuntu/Debian seems to an
> exception where path '/usr/include/iniparser.h' is not present.
>
> I guess thats primarily due to no 'make install' target available in
> iniparser makefiles [1] that fixes a single include patch. This may have led
> to differences across distros where to place these header files.
>
> I would suggest changing to this in meson.build to atleast catch if the
> iniparser.h is not present at the expected path during meson setup:
>
>     iniparser = cc.find_library('iniparser', required : true, has_headers: 
> 'iniparser.h')
>
> [1] addc5fd8511('Fix iniparser.h include')
> [2] https://github.com/ndevilla/iniparser/blob/master/Makefile


We can do this.

diff --git a/config.h.meson b/config.h.meson
index 2852f1e9cd8b..b070df96cf4a 100644
--- a/config.h.meson
+++ b/config.h.meson
@@ -82,6 +82,9 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #mesondefine HAVE_UNISTD_H
 
+/* Define to 1 if you have the <iniparser/iniparser.h> header file. */
+#mesondefine HAVE_INIPARSER_INCLUDE_H
+
 /* Define to 1 if using libuuid */
 #mesondefine HAVE_UUID
 
diff --git a/meson.build b/meson.build
index 42e11aa25cba..893f70c22270 100644
--- a/meson.build
+++ b/meson.build
@@ -176,6 +176,7 @@ check_headers = [
   ['HAVE_SYS_STAT_H', 'sys/stat.h'],
   ['HAVE_SYS_TYPES_H', 'sys/types.h'],
   ['HAVE_UNISTD_H', 'unistd.h'],
+  ['HAVE_INIPARSER_INCLUDE_H', 'iniparser/iniparser.h'],
 ]
 
 foreach h : check_headers
diff --git a/util/parse-configs.c b/util/parse-configs.c
index c834a07011e5..8bdc9d18cbf3 100644
--- a/util/parse-configs.c
+++ b/util/parse-configs.c
@@ -4,7 +4,11 @@
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
+#ifdef HAVE_INIPARSER_INCLUDE_H
+#include <iniparser/iniparser.h>
+#else
 #include <iniparser.h>
+#endif
 #include <sys/stat.h>
 #include <util/parse-configs.h>
 #include <util/strbuf.h>

Reply via email to