summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2008-06-02 21:17:57 +0200
committerJim Meyering <meyering@redhat.com>2008-06-02 21:34:40 +0200
commit0647f3eb5aeaa783ce21ddee268367d2ba7248df (patch)
tree2bf46a5a1f19d69d2d4265256d7f8387ecbde60f
parent77b1bfc85cdf4ec01094ee31c8c85e2a83dea466 (diff)
downloadcoreutils-0647f3eb5aeaa783ce21ddee268367d2ba7248df.tar.xz
accommodate older SELinux which lacks matchpathcon_init_prefix
* m4/jm-macros.m4: Check for matchpathcon_init_prefix. * src/install.c [!HAVE_MATCHPATHCON_INIT_PREFIX] (matchpathcon_init_prefix): Define away. * gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Define. Reported by Ilya N. Golubev in <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13686>.
-rw-r--r--THANKS1
-rw-r--r--gl/lib/se-selinux.in.h7
-rw-r--r--m4/jm-macros.m45
-rw-r--r--src/install.c4
4 files changed, 14 insertions, 3 deletions
diff --git a/THANKS b/THANKS
index df8476158..feaf46332 100644
--- a/THANKS
+++ b/THANKS
@@ -220,6 +220,7 @@ Ian Jackson ijackson@chiark.greenend.org.uk
Ian Lance Taylor ian@cygnus.com
Ian Turner vectro@pipeline.com
Iida Yosiaki iida@gnu.org
+Ilya N. Golubev gin@mo.msk.ru
Ingo Saitz ingo@debian.org
Ivo Timmermans ivo@debian.org
James james@albion.glarp.com
diff --git a/gl/lib/se-selinux.in.h b/gl/lib/se-selinux.in.h
index 7be1e702a..ac421c38a 100644
--- a/gl/lib/se-selinux.in.h
+++ b/gl/lib/se-selinux.in.h
@@ -17,7 +17,8 @@ typedef unsigned short security_class_t;
# define security_context_t char*
# define is_selinux_enabled() 0
-static inline int getcon (security_context_t *con) { errno = ENOTSUP; return -1; }
+static inline int getcon (security_context_t *con)
+ { errno = ENOTSUP; return -1; }
static inline void freecon (security_context_t con) {}
@@ -28,7 +29,9 @@ static inline int setfscreatecon (security_context_t con)
static inline int matchpathcon (char const *s, mode_t m,
security_context_t *con)
{ errno = ENOTSUP; return -1; }
-
+static inline int matchpathcon_init_prefix (const char *path,
+ const char *prefix)
+ { errno = ENOTSUP; return -1; }
static inline int getfilecon (char const *s, security_context_t *con)
{ errno = ENOTSUP; return -1; }
static inline int lgetfilecon (char const *s, security_context_t *con)
diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4
index 5a92d4a9e..cf1f2f003 100644
--- a/m4/jm-macros.m4
+++ b/m4/jm-macros.m4
@@ -2,7 +2,7 @@
dnl Misc type-related macros for coreutils.
-# Copyright (C) 1998, 2000-2007 Free Software Foundation, Inc.
+# Copyright (C) 1998, 2000-2008 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -46,6 +46,9 @@ AC_DEFUN([coreutils_MACROS],
# used by shred
AC_CHECK_FUNCS_ONCE(directio)
+ # Used by install.c.
+ AC_CHECK_FUNCS_ONCE([matchpathcon_init_prefix])
+
AC_CHECK_FUNCS_ONCE( \
endgrent \
endpwent \
diff --git a/src/install.c b/src/install.c
index 1d902d6ee..decdd7d36 100644
--- a/src/install.c
+++ b/src/install.c
@@ -66,6 +66,10 @@ static bool use_default_selinux_context = true;
# define lchown(name, uid, gid) chown (name, uid, gid)
#endif
+#if ! HAVE_MATCHPATHCON_INIT_PREFIX
+# define matchpathcon_init_prefix(a, p) /* empty */
+#endif
+
/* Initial number of entries in each hash table entry's table of inodes. */
#define INITIAL_HASH_MODULE 100