mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-01 23:22:37 +00:00
gnutar: patch to build on darwin
This commit is contained in:
parent
6c9b529dd3
commit
e29bf6e26e
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl }:
|
||||
{ stdenv, fetchurl, autoreconfHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnutar-${version}";
|
||||
@ -9,6 +9,9 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0qkm2k9w8z91hwj8rffpjj9v1vhpiriwz4cdj36k9vrgc3hbzr30";
|
||||
};
|
||||
|
||||
patches = stdenv.lib.optional stdenv.isDarwin ./gnutar-1.28-darwin.patch;
|
||||
buildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook;
|
||||
|
||||
# May have some issues with root compilation because the bootstrap tool
|
||||
# cannot be used as a login shell for now.
|
||||
FORCE_UNSAFE_CONFIGURE = stdenv.lib.optionalString (stdenv.system == "armv7l-linux" || stdenv.isSunOS) "1";
|
||||
|
114
pkgs/tools/archivers/gnutar/gnutar-1.28-darwin.patch
Normal file
114
pkgs/tools/archivers/gnutar/gnutar-1.28-darwin.patch
Normal file
@ -0,0 +1,114 @@
|
||||
>From 7d1d3d38cb66b02c062de77847e3c0ecd842366c Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Raiskup <address@hidden>
|
||||
Date: Mon, 4 Aug 2014 13:19:49 +0200
|
||||
Subject: [PATCH] xattrs: fix bug in configure
|
||||
|
||||
Be careful to define HAVE_XATTRS when not all needed xattr-related
|
||||
functions are properly defined either in libc or libattr.
|
||||
|
||||
Reported independently by Denis Excoffier and Dominyk Tille.
|
||||
|
||||
* acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): Check for each xattr
|
||||
function separately. Don't AC_CHECK_LIB (LIBS is filled by
|
||||
AC_SEARCH_LIBS when necessary).
|
||||
* lib/xattr-at.c: Do not build when HAVE_XATTRS is not defined.
|
||||
* src/Makefile.am: The LDADD -lattr was redundant.
|
||||
---
|
||||
acinclude.m4 | 42 ++++++++++++++----------------------------
|
||||
lib/xattr-at.c | 7 +++++++
|
||||
src/Makefile.am | 4 ----
|
||||
3 files changed, 21 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/acinclude.m4 b/acinclude.m4
|
||||
index 3b28b3b..db0bbc7 100644
|
||||
--- a/acinclude.m4
|
||||
+++ b/acinclude.m4
|
||||
@@ -40,37 +40,23 @@ AC_DEFUN([TAR_HEADERS_ATTR_XATTR_H],
|
||||
# First check for <sys/xattr.h>
|
||||
AC_CHECK_HEADERS([sys/xattr.h])
|
||||
AM_CONDITIONAL([TAR_COND_XATTR_H],[test "$ac_cv_header_sys_xattr_h" = yes])
|
||||
- AM_CONDITIONAL([TAR_LIB_ATTR],[false])
|
||||
- if test "$ac_cv_header_sys_xattr_h" = yes; then
|
||||
- AC_CHECK_FUNCS(getxattr fgetxattr lgetxattr \
|
||||
- setxattr fsetxattr lsetxattr \
|
||||
- listxattr flistxattr llistxattr,
|
||||
- # only when functions are present
|
||||
- AC_DEFINE([HAVE_SYS_XATTR_H], [1],
|
||||
- [define to 1 if we have <sys/xattr.h> header])
|
||||
- if test "$with_xattrs" != no; then
|
||||
- AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
|
||||
- fi
|
||||
- )
|
||||
- fi
|
||||
-
|
||||
- # If <sys/xattr.h> is not found, then check for <attr/xattr.h>
|
||||
if test "$ac_cv_header_sys_xattr_h" != yes; then
|
||||
AC_CHECK_HEADERS([attr/xattr.h])
|
||||
AM_CONDITIONAL([TAR_COND_XATTR_H],[test "$ac_cv_header_attr_xattr_h" = yes])
|
||||
- AC_CHECK_LIB([attr],[fgetxattr])
|
||||
- AM_CONDITIONAL([TAR_LIB_ATTR],[test "$ac_cv_lib_attr_fgetxattr" = yes])
|
||||
- if test "$ac_cv_header_attr_xattr_h" = yes; then
|
||||
- AC_CHECK_FUNCS(getxattr fgetxattr lgetxattr \
|
||||
- setxattr fsetxattr lsetxattr \
|
||||
- listxattr flistxattr llistxattr,
|
||||
- # only when functions are present
|
||||
- AC_DEFINE([HAVE_ATTR_XATTR_H], [1],
|
||||
- [define to 1 if we have <attr/xattr.h> header])
|
||||
- if test "$with_xattrs" != no; then
|
||||
- AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
|
||||
- fi
|
||||
- )
|
||||
+ fi
|
||||
+
|
||||
+ if test "$with_xattrs" != no; then
|
||||
+ for i in getxattr fgetxattr lgetxattr \
|
||||
+ setxattr fsetxattr lsetxattr \
|
||||
+ listxattr flistxattr llistxattr
|
||||
+ do
|
||||
+ AC_SEARCH_LIBS($i, attr)
|
||||
+ eval found=\$ac_cv_search_$i
|
||||
+ test "$found" = "no" && break
|
||||
+ done
|
||||
+
|
||||
+ if test "$found" != no; then
|
||||
+ AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
|
||||
fi
|
||||
fi
|
||||
])
|
||||
diff --git a/lib/xattr-at.c b/lib/xattr-at.c
|
||||
index 443ccae..009bde5 100644
|
||||
--- a/lib/xattr-at.c
|
||||
+++ b/lib/xattr-at.c
|
||||
@@ -18,6 +18,11 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
+/* Temporarily don't build. We are unable to build on (probably not only)
|
||||
+ darwin due to lack of l*xattr callbacks (XATTR_NOFOLLOW is alternative) and
|
||||
+ different function definitions. */
|
||||
+#ifdef HAVE_XATTRS
|
||||
+
|
||||
#include "xattr-at.h"
|
||||
#include "openat.h"
|
||||
|
||||
@@ -108,3 +113,5 @@
|
||||
#undef AT_FUNC_RESULT
|
||||
#undef AT_FUNC_POST_FILE_PARAM_DECLS
|
||||
#undef AT_FUNC_POST_FILE_ARGS
|
||||
+
|
||||
+#endif
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 82b2d46..42daaef 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -52,7 +52,3 @@ AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
|
||||
LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
|
||||
|
||||
tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX)
|
||||
-
|
||||
-if TAR_LIB_ATTR
|
||||
-tar_LDADD += -lattr
|
||||
-endif
|
||||
--
|
||||
1.9.3
|
||||
|
Loading…
Reference in New Issue
Block a user