attr: patch to fix headers w/musl

This commit is contained in:
Will Dietz 2018-01-03 16:16:35 -06:00
parent b42c8af907
commit 65c9c38a21
2 changed files with 57 additions and 1 deletions

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, gettext }:
{ stdenv, fetchurl, gettext, targetPlatform }:
stdenv.mkDerivation rec {
name = "attr-2.4.47";
@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
installTargets = "install install-lib install-dev";
patches = if (targetPlatform.libc == "musl") then [ ./fix-headers-musl.patch ] else null;
meta = {
homepage = http://savannah.nongnu.org/projects/attr/;
description = "Library and tools for manipulating extended attributes";

View file

@ -0,0 +1,54 @@
--- attr-2.4.47/include/xattr.h
+++ attr-2.4.47/include/xattr.h
@@ -31,33 +31,37 @@
#define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
extern int setxattr (const char *__path, const char *__name,
- const void *__value, size_t __size, int __flags) __THROW;
+ const void *__value, size_t __size, int __flags);
extern int lsetxattr (const char *__path, const char *__name,
- const void *__value, size_t __size, int __flags) __THROW;
+ const void *__value, size_t __size, int __flags);
extern int fsetxattr (int __filedes, const char *__name,
- const void *__value, size_t __size, int __flags) __THROW;
+ const void *__value, size_t __size, int __flags);
extern ssize_t getxattr (const char *__path, const char *__name,
- void *__value, size_t __size) __THROW;
+ void *__value, size_t __size);
extern ssize_t lgetxattr (const char *__path, const char *__name,
- void *__value, size_t __size) __THROW;
+ void *__value, size_t __size);
extern ssize_t fgetxattr (int __filedes, const char *__name,
- void *__value, size_t __size) __THROW;
+ void *__value, size_t __size);
extern ssize_t listxattr (const char *__path, char *__list,
- size_t __size) __THROW;
+ size_t __size);
extern ssize_t llistxattr (const char *__path, char *__list,
- size_t __size) __THROW;
+ size_t __size);
extern ssize_t flistxattr (int __filedes, char *__list,
- size_t __size) __THROW;
+ size_t __size);
-extern int removexattr (const char *__path, const char *__name) __THROW;
-extern int lremovexattr (const char *__path, const char *__name) __THROW;
-extern int fremovexattr (int __filedes, const char *__name) __THROW;
+extern int removexattr (const char *__path, const char *__name);
+extern int lremovexattr (const char *__path, const char *__name);
+extern int fremovexattr (int __filedes, const char *__name);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
#endif /* __XATTR_H__ */