mds/dev-libs/apr/files/apr-1.4.5-xattr-build-1.patch
Mario Fetka 31ea2d3abf dev-libs/apr: add privsep patch & Multilib Patch
(Portage version: 2.2.0_alpha75-r1/git/Linux x86_64, RepoMan options: --force, unsigned Manifest commit)
2011-11-21 20:16:43 +01:00

160 lines
5.8 KiB
Diff

Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
Date: 2011-11-21
Initial Package Version: 1.4.5
Origin: http://privsep.org/patches/2.3.0-dev/xattr-patches/apr-xattr-build.patch
Upstream Status: unknown
Description: build infrastructure
diff -Naur apr-1.4.5.orig/build.conf apr-1.4.5/build.conf
--- apr-1.4.5.orig/build.conf 2011-11-21 18:38:28.659217726 +0000
+++ apr-1.4.5/build.conf 2011-11-21 18:39:17.735760998 +0000
@@ -13,7 +13,7 @@
# directories that have platform-specific code in them. the resulting
# pattern will be: SUBDIR/PLATFORM/*.c
platform_dirs =
- dso file_io locks memory misc mmap network_io poll random
+ dso file_io locks memory misc mmap network_io poll random xattr
shmem support threadproc time user atomic
# all the public headers
diff -Naur apr-1.4.5.orig/configure.in apr-1.4.5/configure.in
--- apr-1.4.5.orig/configure.in 2011-11-21 18:38:28.985607639 +0000
+++ apr-1.4.5/configure.in 2011-11-21 18:43:25.981912296 +0000
@@ -197,7 +197,7 @@
DEFAULT_OSDIR="unix"
echo "(Default will be ${DEFAULT_OSDIR})"
-apr_modules="file_io network_io threadproc misc locks time mmap shmem user memory atomic poll support random"
+apr_modules="file_io network_io threadproc misc locks time mmap shmem user memory atomic poll support random xattr"
dnl Checks for programs.
AC_PROG_MAKE_SET
@@ -1466,7 +1466,9 @@
sys/types.h \
sys/uio.h \
sys/un.h \
- sys/wait.h)
+ sys/wait.h \
+ sys/xattr.h \
+ sys/extattr.h)
# IRIX 6.5 has a problem in <netinet/tcp.h> which prevents it from
# being included by itself. Check for <netinet/tcp.h> manually,
@@ -1518,6 +1520,8 @@
AC_SUBST(unistdh)
AC_SUBST(signalh)
AC_SUBST(sys_waith)
+AC_SUBST(sys_xattrh)
+AC_SUBST(sys_extattrh)
AC_SUBST(processh)
AC_SUBST(pthreadh)
AC_SUBST(semaphoreh)
@@ -2472,6 +2476,87 @@
APR_CHECK_DIRENT_INODE
APR_CHECK_DIRENT_TYPE
+dnl ----------------------------- Checking for Extended Attributes Support
+echo "${nl}Checking for Extended Attributes Support..."
+
+# Check whether Extended Attributes have explicitly been disabled
+AC_ARG_ENABLE(xattr,
+ [ --disable-xattr Disable Extended Attributes support in APR.],
+ [ if test "$enableval" = "no"; then
+ user_disabled_xattr=1
+ fi ],
+ [ user_disabled_xattr=0 ] )
+
+xattrdarwin="0"
+xattrlinux="0"
+xattrfreebsd="0"
+xattrsolaris="0"
+if test "$user_disabled_xattr" = 1; then
+ echo "no -- disabled by user"
+else
+ AC_CHECK_FUNCS([fgetxattr fsetxattr flistxattr fremovexattr lgetxattr \
+ extattr_get_fd extattr_set_fd extattr_list_fd \
+ extattr_delete_fd openat unlinkat])
+ APR_CHECK_DEFINE(O_XATTR, sys/fcntl.h)
+ APR_CHECK_DEFINE(XATTR_NOFOLLOW, sys/xattr.h)
+ APR_CHECK_DEFINE(XATTR_CREATE, sys/xattr.h)
+ APR_CHECK_DEFINE(XATTR_REPLACE, sys/xattr.h)
+ APR_CHECK_DEFINE(XATTR_NAME_MAX, linux/limits.h)
+ APR_CHECK_DEFINE(XATTR_SIZE_MAX, linux/limits.h)
+ APR_CHECK_DEFINE(XATTR_LIST_MAX, linux/limits.h)
+ APR_CHECK_DEFINE(XATTR_MAXNAMELEN, sys/xattr.h)
+ APR_CHECK_DEFINE(EXTATTR_NAMESPACE_USER, sys/extattr.h)
+ APR_CHECK_DEFINE(EXTATTR_NAMESPACE_SYSTEM, sys/extattr.h)
+ APR_CHECK_DEFINE(EXTATTR_MAXNAMELEN, sys/extattr.h)
+
+ APR_BEGIN_DECISION([xattr attribute system interface])
+ APR_IFALLYES(header:sys/xattr.h dnl
+ define:XATTR_NOFOLLOW dnl
+ func:fgetxattr dnl
+ func:fsetxattr dnl
+ func:flistxattr dnl
+ func:fremovexattr,
+ [xattrdarwin="1"
+ APR_DECIDE(USE_XATTR_DARWIN, [xattr (Darwin)])])
+
+ APR_IFALLYES(header:sys/xattr.h dnl
+ func:lgetxattr dnl
+ func:fgetxattr dnl
+ func:fsetxattr dnl
+ func:flistxattr dnl
+ func:fremovexattr,
+ [xattrlinux="1"
+ APR_DECIDE(USE_XATTR_LINUX, [xattr (Linux)])])
+
+ APR_IFALLYES(header:sys/extattr.h dnl
+ func:extattr_set_fd dnl
+ func:func:extattr_get_fd dnl
+ func:extattr_list_fd dnl
+ func:func:extattr_delete_fd,
+ [xattrfreebsd="1"
+ APR_DECIDE(USE_XATTR_FREEBSD, [extattr (FreeBSD)])])
+
+ APR_IFALLYES(define:O_XATTR dnl
+ func:openat dnl
+ func:unlinkat,
+ [xattrsolaris="1"
+ APR_DECIDE(USE_XATTR_SOLARIS, [attropen (Solaris)])])
+
+ if test "x$ac_decision" = "x"; then
+ ac_decision="USE_XATTR_NONE"
+ ac_decision_msg="no xattr interface available"
+ fi
+ APR_END_DECISION
+ AC_DEFINE_UNQUOTED($ac_decision)
+fi
+
+if test "$xattrdarwin$xattrlinux$xattrfreebsd$xattrsolaris" = "0000"; then
+ xattr="0"
+else
+ xattr="1"
+fi
+AC_SUBST(xattr)
+
dnl ----------------------------- Checking for UUID Support
echo "${nl}Checking for OS UUID Support..."
diff -Naur apr-1.4.5.orig/include/apr.h.in apr-1.4.5/include/apr.h.in
--- apr-1.4.5.orig/include/apr.h.in 2011-11-21 18:38:28.661532544 +0000
+++ apr-1.4.5/include/apr.h.in 2011-11-21 18:40:23.666523955 +0000
@@ -104,6 +104,8 @@
#define APR_HAVE_SYS_UIO_H @sys_uioh@
#define APR_HAVE_SYS_UN_H @sys_unh@
#define APR_HAVE_SYS_WAIT_H @sys_waith@
+#define APR_HAVE_SYS_XATTR_H @sys_xattrh@
+#define APR_HAVE_SYS_EXTATTR_H @sys_extattrh@
#define APR_HAVE_TIME_H @timeh@
#define APR_HAVE_UNISTD_H @unistdh@
#define APR_HAVE_WINDOWS_H @windowsh@
@@ -276,6 +278,7 @@
#define APR_HAS_UNICODE_FS @have_unicode_fs@
#define APR_HAS_PROC_INVOKED @have_proc_invoked@
#define APR_HAS_USER @apr_has_user@
+#define APR_HAS_XATTR @xattr@
#define APR_HAS_LARGE_FILES @aprlfs@
#define APR_HAS_XTHREAD_FILES @apr_has_xthread_files@
#define APR_HAS_OS_UUID @osuuid@