* 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.
--- /dev/null
+#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
--- /dev/null
+#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
--- /dev/null
+# 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])
+])
--- /dev/null
+# 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])
+])
--- /dev/null
+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