diff mbox series

[meta-oe] inotify-tools: Fix build on musl and lfs64

Message ID 20221220192808.2441606-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe] inotify-tools: Fix build on musl and lfs64 | expand

Commit Message

Khem Raj Dec. 20, 2022, 7:28 p.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...-Add-AC_SYS_LARGEFILE-autoconf-macro.patch |  28 +++++
 ...place-stat64-lstat64-with-stat-lstat.patch | 119 ++++++++++++++++++
 .../inotify-tools/inotify-tools_3.22.6.0.bb   |   4 +-
 3 files changed, 150 insertions(+), 1 deletion(-)
 create mode 100644 meta-oe/recipes-support/inotify-tools/inotify-tools/0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch
 create mode 100644 meta-oe/recipes-support/inotify-tools/inotify-tools/0003-replace-stat64-lstat64-with-stat-lstat.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch
new file mode 100644
index 0000000000..3b195aae4f
--- /dev/null
+++ b/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch
@@ -0,0 +1,28 @@ 
+From 6a57ff26d695aaad096b798879a5dbc5af2cedf5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Dec 2022 10:46:50 -0800
+Subject: [PATCH] configure: Add AC_SYS_LARGEFILE autoconf macro
+
+This will define _FILE_OFFSET_BITS to be 64 if off_t is 64bit
+and we do not need to define lfs64 functions
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/174]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index bddf14d..b89a266 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,6 +17,9 @@ AC_PROG_CC
+ AM_INIT_AUTOMAKE
+ LT_INIT
+ 
++# Add option for largefile support
++AC_SYS_LARGEFILE
++
+ AC_PATH_PROG(DOXYGEN, doxygen, NO_DOXYGEN)
+ 
+ AC_ARG_ENABLE(doxygen,
diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools/0003-replace-stat64-lstat64-with-stat-lstat.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/0003-replace-stat64-lstat64-with-stat-lstat.patch
new file mode 100644
index 0000000000..c0784ecc73
--- /dev/null
+++ b/meta-oe/recipes-support/inotify-tools/inotify-tools/0003-replace-stat64-lstat64-with-stat-lstat.patch
@@ -0,0 +1,119 @@ 
+From c6093ad63b92f5d25e6826d1c49dc7cee86d3747 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Dec 2022 10:48:10 -0800
+Subject: [PATCH] replace stat64/lstat64 with stat/lstat
+
+lfs64 functions are not needed when off_t is 64-bit
+Additionally this fixes build with musl which does not
+export these functions without defining _LARGEFILE64_SOURCE
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/174]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libinotifytools/src/inotifytools.c               | 8 ++++----
+ libinotifytools/src/inotifytools/inotify-nosys.h | 5 -----
+ libinotifytools/src/inotifytools/inotifytools.h  | 5 -----
+ src/common.c                                     | 4 ++--
+ src/common.h                                     | 6 +-----
+ 5 files changed, 7 insertions(+), 21 deletions(-)
+
+diff --git a/libinotifytools/src/inotifytools.c b/libinotifytools/src/inotifytools.c
+index 50f6135..3e17ac6 100644
+--- a/libinotifytools/src/inotifytools.c
++++ b/libinotifytools/src/inotifytools.c
+@@ -1750,14 +1750,14 @@ int inotifytools_watch_recursively_with_exclude(char const* path,
+ 
+ 	static struct dirent * ent;
+ 	char * next_file;
+-	static struct stat64 my_stat;
++	static struct stat my_stat;
+ 	ent = readdir( dir );
+ 	// Watch each directory within this directory
+ 	while ( ent ) {
+ 		if ( (0 != strcmp( ent->d_name, "." )) &&
+ 		     (0 != strcmp( ent->d_name, ".." )) ) {
+ 			nasprintf(&next_file,"%s%s", my_path, ent->d_name);
+-			if ( -1 == lstat64( next_file, &my_stat ) ) {
++			if ( -1 == lstat( next_file, &my_stat ) ) {
+ 				error = errno;
+ 				free( next_file );
+ 				if ( errno != EACCES ) {
+@@ -1840,9 +1840,9 @@ int inotifytools_error() {
+  * @internal
+  */
+ static int isdir( char const * path ) {
+-	static struct stat64 my_stat;
++	static struct stat my_stat;
+ 
+-	if ( -1 == lstat64( path, &my_stat ) ) {
++	if ( -1 == lstat( path, &my_stat ) ) {
+ 		if (errno == ENOENT) return 0;
+ 		fprintf(stderr, "Stat failed on %s: %s\n", path, strerror(errno));
+ 		return 0;
+diff --git a/libinotifytools/src/inotifytools/inotify-nosys.h b/libinotifytools/src/inotifytools/inotify-nosys.h
+index 01aa45e..97166d4 100644
+--- a/libinotifytools/src/inotifytools/inotify-nosys.h
++++ b/libinotifytools/src/inotifytools/inotify-nosys.h
+@@ -13,11 +13,6 @@
+ #include <sys/syscall.h>
+ #include <unistd.h>
+ 
+-#ifdef __FreeBSD__
+-#define stat64 stat
+-#define lstat64 lstat
+-#endif
+-
+ /*
+  * struct inotify_event - structure read from the inotify device for each event
+  *
+diff --git a/libinotifytools/src/inotifytools/inotifytools.h b/libinotifytools/src/inotifytools/inotifytools.h
+index 49936ae..2ec4358 100644
+--- a/libinotifytools/src/inotifytools/inotifytools.h
++++ b/libinotifytools/src/inotifytools/inotifytools.h
+@@ -1,11 +1,6 @@
+ #ifndef _inotifytools_H
+ #define _inotifytools_H
+ 
+-#ifdef __FreeBSD__
+-#define stat64 stat
+-#define lstat64 lstat
+-#endif
+-
+ #ifdef __cplusplus
+ extern "C"
+ {
+diff --git a/src/common.c b/src/common.c
+index 5a6fda1..885286e 100644
+--- a/src/common.c
++++ b/src/common.c
+@@ -45,9 +45,9 @@ void print_event_descriptions() {
+ }
+ 
+ int isdir(char const *path) {
+-    static struct stat64 my_stat;
++    static struct stat my_stat;
+ 
+-    if (-1 == lstat64(path, &my_stat)) {
++    if (-1 == lstat(path, &my_stat)) {
+         if (errno == ENOENT)
+             return 0;
+         fprintf(stderr, "Stat failed on %s: %s\n", path, strerror(errno));
+diff --git a/src/common.h b/src/common.h
+index 12d3dde..7f1e34a 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -1,13 +1,9 @@
+ #ifndef COMMON_H
+ #define COMMON_H
+ 
+-#ifdef __FreeBSD__
+-#define stat64 stat
+-#define lstat64 lstat
+-#ifdef ENABLE_FANOTIFY
++#if defined(__FreeBSD__) && defined(ENABLE_FANOTIFY)
+ #error "FreeBSD does not support fanotify"
+ #endif
+-#endif
+ 
+ #include <stdbool.h>
+ 
diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb b/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
index 3d25eecb34..281de522b2 100644
--- a/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
+++ b/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
@@ -9,7 +9,9 @@  SRCREV = "c8bdbc0a2ed822fc7c67c5c3e102d89fe27fb2d0"
 
 SRC_URI = "git://github.com/${BPN}/${BPN};branch=master;protocol=https \
            file://0002-libinotifytools-Bridge-differences-between-musl-glib.patch \
-          "
+           file://0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch \
+           file://0003-replace-stat64-lstat64-with-stat-lstat.patch \
+           "
 
 S = "${WORKDIR}/git"