diff mbox series

[1/5] build: add support for libinih for mkfs

Message ID 20201015032925.1574739-2-david@fromorbit.com (mailing list archive)
State Superseded
Headers show
Series mkfs: Configuration file defined options | expand

Commit Message

Dave Chinner Oct. 15, 2020, 3:29 a.m. UTC
From: Dave Chinner <dchinner@redhat.com>

Need to make sure the library is present so we can build mkfs with
config file support.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
 configure.ac         |  3 +++
 doc/INSTALL          |  5 +++++
 include/builddefs.in |  1 +
 m4/package_inih.m4   | 20 ++++++++++++++++++++
 4 files changed, 29 insertions(+)
 create mode 100644 m4/package_inih.m4

Comments

Darrick J. Wong Oct. 15, 2020, 5:40 a.m. UTC | #1
On Thu, Oct 15, 2020 at 02:29:21PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> Need to make sure the library is present so we can build mkfs with
> config file support.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
>  configure.ac         |  3 +++
>  doc/INSTALL          |  5 +++++
>  include/builddefs.in |  1 +
>  m4/package_inih.m4   | 20 ++++++++++++++++++++
>  4 files changed, 29 insertions(+)
>  create mode 100644 m4/package_inih.m4
> 
> diff --git a/configure.ac b/configure.ac
> index 4674673ed67c..dc57bbd7cd8c 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -145,6 +145,9 @@ AC_PACKAGE_UTILITIES(xfsprogs)
>  AC_MULTILIB($enable_lib64)
>  AC_RT($enable_librt)
>  
> +AC_PACKAGE_NEED_INI_H
> +AC_PACKAGE_NEED_LIBINIH
> +
>  AC_PACKAGE_NEED_UUID_H
>  AC_PACKAGE_NEED_UUIDCOMPARE
>  
> diff --git a/doc/INSTALL b/doc/INSTALL
> index d4395eefa834..2b04f9cfe108 100644
> --- a/doc/INSTALL
> +++ b/doc/INSTALL
> @@ -28,6 +28,11 @@ Linux Instructions
>     (on an RPM based system) or the uuid-dev package (on a Debian system)
>     as some of the commands make use of the UUID library provided by these.
>  
> +   If your distro does not provide a libinih package, you can download and build
> +   it from source from the upstream repository found at:
> +
> +	https://github.com/benhoyt/inih

Someone's gonna have fun packaging this for RHEL. ;)

Oh look, a Debian package.  Assuming the legal-minded are ok with us
mixing BSD and GPL2 code,

Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>

--D

> +
>     To build the package and install it manually, use the following steps:
>  
>  	# make
> diff --git a/include/builddefs.in b/include/builddefs.in
> index 30b2727a8db4..e8f447f92baf 100644
> --- a/include/builddefs.in
> +++ b/include/builddefs.in
> @@ -27,6 +27,7 @@ LIBTERMCAP = @libtermcap@
>  LIBEDITLINE = @libeditline@
>  LIBBLKID = @libblkid@
>  LIBDEVMAPPER = @libdevmapper@
> +LIBINIH = @libinih@
>  LIBXFS = $(TOPDIR)/libxfs/libxfs.la
>  LIBFROG = $(TOPDIR)/libfrog/libfrog.la
>  LIBXCMD = $(TOPDIR)/libxcmd/libxcmd.la
> diff --git a/m4/package_inih.m4 b/m4/package_inih.m4
> new file mode 100644
> index 000000000000..a2775592e09d
> --- /dev/null
> +++ b/m4/package_inih.m4
> @@ -0,0 +1,20 @@
> +AC_DEFUN([AC_PACKAGE_NEED_INI_H],
> +  [ AC_CHECK_HEADERS([ini.h])
> +    if test $ac_cv_header_ini_h = no; then
> +	echo
> +	echo 'FATAL ERROR: could not find a valid ini.h header.'
> +	echo 'Install the libinih development package.'
> +	exit 1
> +    fi
> +  ])
> +
> +AC_DEFUN([AC_PACKAGE_NEED_LIBINIH],
> +  [ AC_CHECK_LIB(inih, ini_parse,, [
> +	echo
> +	echo 'FATAL ERROR: could not find a valid inih library.'
> +	echo 'Install the libinih library package.'
> +	exit 1
> +    ])
> +    libinih=-linih
> +    AC_SUBST(libinih)
> +  ])
> -- 
> 2.28.0
>
diff mbox series

Patch

diff --git a/configure.ac b/configure.ac
index 4674673ed67c..dc57bbd7cd8c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -145,6 +145,9 @@  AC_PACKAGE_UTILITIES(xfsprogs)
 AC_MULTILIB($enable_lib64)
 AC_RT($enable_librt)
 
+AC_PACKAGE_NEED_INI_H
+AC_PACKAGE_NEED_LIBINIH
+
 AC_PACKAGE_NEED_UUID_H
 AC_PACKAGE_NEED_UUIDCOMPARE
 
diff --git a/doc/INSTALL b/doc/INSTALL
index d4395eefa834..2b04f9cfe108 100644
--- a/doc/INSTALL
+++ b/doc/INSTALL
@@ -28,6 +28,11 @@  Linux Instructions
    (on an RPM based system) or the uuid-dev package (on a Debian system)
    as some of the commands make use of the UUID library provided by these.
 
+   If your distro does not provide a libinih package, you can download and build
+   it from source from the upstream repository found at:
+
+	https://github.com/benhoyt/inih
+
    To build the package and install it manually, use the following steps:
 
 	# make
diff --git a/include/builddefs.in b/include/builddefs.in
index 30b2727a8db4..e8f447f92baf 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -27,6 +27,7 @@  LIBTERMCAP = @libtermcap@
 LIBEDITLINE = @libeditline@
 LIBBLKID = @libblkid@
 LIBDEVMAPPER = @libdevmapper@
+LIBINIH = @libinih@
 LIBXFS = $(TOPDIR)/libxfs/libxfs.la
 LIBFROG = $(TOPDIR)/libfrog/libfrog.la
 LIBXCMD = $(TOPDIR)/libxcmd/libxcmd.la
diff --git a/m4/package_inih.m4 b/m4/package_inih.m4
new file mode 100644
index 000000000000..a2775592e09d
--- /dev/null
+++ b/m4/package_inih.m4
@@ -0,0 +1,20 @@ 
+AC_DEFUN([AC_PACKAGE_NEED_INI_H],
+  [ AC_CHECK_HEADERS([ini.h])
+    if test $ac_cv_header_ini_h = no; then
+	echo
+	echo 'FATAL ERROR: could not find a valid ini.h header.'
+	echo 'Install the libinih development package.'
+	exit 1
+    fi
+  ])
+
+AC_DEFUN([AC_PACKAGE_NEED_LIBINIH],
+  [ AC_CHECK_LIB(inih, ini_parse,, [
+	echo
+	echo 'FATAL ERROR: could not find a valid inih library.'
+	echo 'Install the libinih library package.'
+	exit 1
+    ])
+    libinih=-linih
+    AC_SUBST(libinih)
+  ])