92f6cbc9c8
Added: 292d3f2d-libselinux-build-fix1.patch, b109c097-libselinux-build-fix2.patch Dropped: libselinux-build-fix.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=379
99 lines
3.1 KiB
Diff
99 lines
3.1 KiB
Diff
commit 292d3f2d38e8faca075ababcb652f2e090b745b2
|
|
Author: Cédric Bosdonnat <cbosdonnat@suse.com>
|
|
Date: Wed May 28 14:44:08 2014 +0200
|
|
|
|
build: fix build with libselinux 2.3
|
|
|
|
Several function signatures changed in libselinux 2.3, now taking
|
|
a 'const char *' instead of 'security_context_t'. The latter is
|
|
defined in selinux/selinux.h as
|
|
|
|
typedef char *security_context_t;
|
|
|
|
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
Index: libvirt-1.2.4/m4/virt-selinux.m4
|
|
===================================================================
|
|
--- libvirt-1.2.4.orig/m4/virt-selinux.m4
|
|
+++ libvirt-1.2.4/m4/virt-selinux.m4
|
|
@@ -1,6 +1,6 @@
|
|
dnl The libselinux.so library
|
|
dnl
|
|
-dnl Copyright (C) 2012-2013 Red Hat, Inc.
|
|
+dnl Copyright (C) 2012-2014 Red Hat, Inc.
|
|
dnl
|
|
dnl This library is free software; you can redistribute it and/or
|
|
dnl modify it under the terms of the GNU Lesser General Public
|
|
@@ -28,6 +28,21 @@ AC_DEFUN([LIBVIRT_CHECK_SELINUX],[
|
|
[with_selinux_mount=check])
|
|
|
|
if test "$with_selinux" = "yes"; then
|
|
+ # libselinux changed signatures between 2.2 and 2.3
|
|
+ AC_CACHE_CHECK([for selinux setcon parameter type], [gt_cv_setcon_param],
|
|
+ [AC_COMPILE_IFELSE(
|
|
+ [AC_LANG_PROGRAM(
|
|
+ [[
|
|
+#include <selinux/selinux.h>
|
|
+int setcon(const security_context_t context);
|
|
+ ]])],
|
|
+ [gt_cv_setcon_param='security_context_t'],
|
|
+ [gt_cv_setcon_param='const char*'])])
|
|
+ if test "$gt_cv_setcon_param" = 'const char*'; then
|
|
+ AC_DEFINE_UNQUOTED([SELINUX_CTX_CHAR_PTR], 1,
|
|
+ [SELinux uses newer char * for security context])
|
|
+ fi
|
|
+
|
|
AC_MSG_CHECKING([SELinux mount point])
|
|
if test "$with_selinux_mount" = "check" || test -z "$with_selinux_mount"; then
|
|
if test -d /sys/fs/selinux ; then
|
|
Index: libvirt-1.2.4/tests/securityselinuxhelper.c
|
|
===================================================================
|
|
--- libvirt-1.2.4.orig/tests/securityselinuxhelper.c
|
|
+++ libvirt-1.2.4/tests/securityselinuxhelper.c
|
|
@@ -156,7 +156,11 @@ int getpidcon(pid_t pid, security_contex
|
|
return getpidcon_raw(pid, context);
|
|
}
|
|
|
|
+#ifdef SELINUX_CTX_CHAR_PTR
|
|
+int setcon_raw(const char *context)
|
|
+#else
|
|
int setcon_raw(security_context_t context)
|
|
+#endif
|
|
{
|
|
if (!is_selinux_enabled()) {
|
|
errno = EINVAL;
|
|
@@ -165,13 +169,21 @@ int setcon_raw(security_context_t contex
|
|
return setenv("FAKE_SELINUX_CONTEXT", context, 1);
|
|
}
|
|
|
|
+#ifdef SELINUX_CTX_CHAR_PTR
|
|
+int setcon(const char *context)
|
|
+#else
|
|
int setcon(security_context_t context)
|
|
+#endif
|
|
{
|
|
return setcon_raw(context);
|
|
}
|
|
|
|
|
|
+#ifdef SELINUX_CTX_CHAR_PTR
|
|
+int setfilecon_raw(const char *path, const char *con)
|
|
+#else
|
|
int setfilecon_raw(const char *path, security_context_t con)
|
|
+#endif
|
|
{
|
|
const char *constr = con;
|
|
if (STRPREFIX(path, abs_builddir "/securityselinuxlabeldata/nfs/")) {
|
|
@@ -182,7 +194,11 @@ int setfilecon_raw(const char *path, sec
|
|
constr, strlen(constr), 0);
|
|
}
|
|
|
|
+#ifdef SELINUX_CTX_CHAR_PTR
|
|
+int setfilecon(const char *path, const char *con)
|
|
+#else
|
|
int setfilecon(const char *path, security_context_t con)
|
|
+#endif
|
|
{
|
|
return setfilecon_raw(path, con);
|
|
}
|