kmxz / overlayfs-tools

Maintenance tools for overlay-filesystem
Do What The F*ck You Want To Public License
124 stars 38 forks source link

Fix compile on buster #9

Closed mstormi closed 5 years ago

nyov commented 4 years ago

I'm on debian buster, and this broke compilation, or didn't fix it. Who provides <attr/xattr.h> and <attr/attributes.h> for you? My glibc libc6-dev package (version 2.28-10) has only /usr/include/x86_64-linux-gnu/sys/xattr.h (amd64) resp. /usr/include/sys/xattr.h (i368)

The only /usr/include/attr/xattr.h I could find had a timestamp from 2014, in some backup location, so I'm confused.

I needed the following change to have it compile:

diff --git a/logic.c b/logic.c
index e684505..b93a99c 100644
--- a/logic.c
+++ b/logic.c
@@ -7,8 +7,7 @@
 #include <string.h>
 #include <errno.h>
 #include <unistd.h>
-#include <attr/xattr.h>
-#include <attr/attributes.h>
+#include <sys/xattr.h>
 #include <fts.h>
 #include "logic.h"
 #include "sh.h"
diff --git a/main.c b/main.c
index e2c585e..c73e9df 100644
--- a/main.c
+++ b/main.c
@@ -12,7 +12,7 @@
 #include <linux/limits.h>
 #include <stdbool.h>
 #include <sys/stat.h>
-#include <attr/xattr.h>
+#include <sys/xattr.h>
 #ifndef _SYS_STAT_H
   #include <linux/stat.h>
 #endif

Okay, I found libattr-dev, whew. That's where those come from. /usr/include/attr/xattr.h over here has nothing else than

#include <errno.h>
#ifndef ENOATTR
# define ENOATTR ENODATA        /* No such attribute */
#endif

#include <sys/xattr.h>

but /usr/include/attr/attributes.h includes some more functions. Which don't seem to be in use here though? Is that include necessary?