selinux-h: new module (from coreutils/gl/)
authorJim Meyering <meyering@redhat.com>
Tue, 21 Oct 2008 15:06:17 +0000 (17:06 +0200)
committerJim Meyering <meyering@redhat.com>
Tue, 21 Oct 2008 16:07:28 +0000 (18:07 +0200)
* modules/selinux-h: New file.
* lib/se-context.in.h: New file.
* lib/se-selinux.in.h: New file.
* m4/selinux-context-h.m4: New file.
* m4/selinux-selinux-h.m4: New file.

lib/se-context.in.h [new file with mode: 0644]
lib/se-selinux.in.h [new file with mode: 0644]
m4/selinux-context-h.m4 [new file with mode: 0644]
m4/selinux-selinux-h.m4 [new file with mode: 0644]
modules/selinux-h [new file with mode: 0644]

diff --git a/lib/se-context.in.h b/lib/se-context.in.h
new file mode 100644 (file)
index 0000000..ec88a03
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef SELINUX_CONTEXT_H
+# define SELINUX_CONTEXT_H
+
+# include <errno.h>
+/* Some systems don't have ENOTSUP.  */
+# ifndef ENOTSUP
+#  ifdef ENOSYS
+#   define ENOTSUP ENOSYS
+#  else
+/* Some systems don't have ENOSYS either.  */
+#   define ENOTSUP EINVAL
+#  endif
+# endif
+
+typedef int context_t;
+static inline context_t context_new (char const *s)
+  { errno = ENOTSUP; return 0; }
+static inline char *context_str (context_t con)
+  { errno = ENOTSUP; return (void *) 0; }
+static inline void context_free (context_t c) {}
+
+static inline int context_user_set (context_t sc, char const *s)
+  { errno = ENOTSUP; return -1; }
+static inline int context_role_set (context_t sc, char const *s)
+  { errno = ENOTSUP; return -1; }
+static inline int context_range_set (context_t sc, char const *s)
+  { errno = ENOTSUP; return -1; }
+static inline int context_type_set (context_t sc, char const *s)
+  { errno = ENOTSUP; return -1; }
+
+#endif
diff --git a/lib/se-selinux.in.h b/lib/se-selinux.in.h
new file mode 100644 (file)
index 0000000..aeaf950
--- /dev/null
@@ -0,0 +1,57 @@
+#ifndef SELINUX_SELINUX_H
+# define SELINUX_SELINUX_H
+
+# include <sys/types.h>
+# include <errno.h>
+/* Some systems don't have ENOTSUP.  */
+# ifndef ENOTSUP
+#  ifdef ENOSYS
+#   define ENOTSUP ENOSYS
+#  else
+/* Some systems don't have ENOSYS either.  */
+#   define ENOTSUP EINVAL
+#  endif
+# endif
+
+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 void freecon (security_context_t con) {}
+
+
+static inline int getfscreatecon (security_context_t *con)
+  { errno = ENOTSUP; return -1; }
+static inline int setfscreatecon (security_context_t con)
+  { errno = ENOTSUP; return -1; }
+static inline int matchpathcon (char const *s, mode_t m,
+                               security_context_t *con)
+  { 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)
+  { errno = ENOTSUP; return -1; }
+static inline int setfilecon (char const *s, security_context_t con)
+  { errno = ENOTSUP; return -1; }
+static inline int lsetfilecon (char const *s, security_context_t con)
+  { errno = ENOTSUP; return -1; }
+static inline int fsetfilecon (int fd, security_context_t con)
+  { errno = ENOTSUP; return -1; }
+
+static inline int security_check_context (security_context_t con)
+  { errno = ENOTSUP; return -1; }
+static inline int security_check_context_raw (security_context_t con)
+  { errno = ENOTSUP; return -1; }
+static inline int setexeccon (security_context_t con)
+  { errno = ENOTSUP; return -1; }
+static inline int security_compute_create (security_context_t scon,
+                                          security_context_t tcon,
+                                          security_class_t tclass,
+                                          security_context_t *newcon)
+  { errno = ENOTSUP; return -1; }
+static inline int matchpathcon_init_prefix (char const *path,
+                                           char const *prefix)
+  { errno = ENOTSUP; return -1; }
+#endif
diff --git a/m4/selinux-context-h.m4 b/m4/selinux-context-h.m4
new file mode 100644 (file)
index 0000000..269c152
--- /dev/null
@@ -0,0 +1,17 @@
+# serial 1   -*- Autoconf -*-
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# From Jim Meyering
+# Provide <selinux/context.h>, if necessary.
+
+AC_DEFUN([gl_HEADERS_SELINUX_CONTEXT_H],
+[
+  # Check for <selinux/context.h>,
+  AC_CHECK_HEADERS([selinux/context.h],
+                  [SELINUX_CONTEXT_H=],
+                  [SELINUX_CONTEXT_H=selinux/context.h])
+  AC_SUBST([SELINUX_CONTEXT_H])
+])
diff --git a/m4/selinux-selinux-h.m4 b/m4/selinux-selinux-h.m4
new file mode 100644 (file)
index 0000000..822ffa2
--- /dev/null
@@ -0,0 +1,17 @@
+# serial 1   -*- Autoconf -*-
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# From Jim Meyering
+# Provide <selinux/selinux.h>, if necessary.
+
+AC_DEFUN([gl_HEADERS_SELINUX_SELINUX_H],
+[
+  # Check for <selinux/selinux.h>,
+  AC_CHECK_HEADERS([selinux/selinux.h],
+                  [SELINUX_SELINUX_H=],
+                  [SELINUX_SELINUX_H=selinux/selinux.h])
+  AC_SUBST([SELINUX_SELINUX_H])
+])
diff --git a/modules/selinux-h b/modules/selinux-h
new file mode 100644 (file)
index 0000000..603e057
--- /dev/null
@@ -0,0 +1,46 @@
+Description:
+SELinux-related headers for systems that lack them.
+
+Files:
+lib/se-context.in.h
+lib/se-selinux.in.h
+m4/selinux-context-h.m4
+m4/selinux-selinux-h.m4
+
+Depends-on:
+
+configure.ac:
+gl_HEADERS_SELINUX_SELINUX_H
+gl_HEADERS_SELINUX_CONTEXT_H
+
+Makefile.am:
+lib_SOURCES += se-context.in.h se-selinux.in.h
+
+BUILT_SOURCES += $(SELINUX_SELINUX_H)
+selinux/selinux.h: se-selinux.in.h
+       rm -f $@-t $@
+       $(MKDIR_P) selinux
+       cp $(srcdir)/se-selinux.in.h $@-t
+       chmod a-x $@-t
+       mv $@-t $@
+MOSTLYCLEANFILES += selinux/selinux.h selinux/selinux.h-t
+
+BUILT_SOURCES += $(SELINUX_CONTEXT_H)
+selinux/context.h: se-context.in.h
+       rm -f $@-t $@
+       $(MKDIR_P) selinux
+       cp $(srcdir)/se-context.in.h $@-t
+       chmod a-x $@-t
+       mv $@-t $@
+MOSTLYCLEANFILES += selinux/context.h selinux/context.h-t
+MOSTLYCLEANDIRS += selinux
+
+Include:
+#include <selinux/selinux.h>
+#include <selinux/context.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+Jim Meyering