]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - package/policycoreutils/policycoreutils.mk
policycoreutils: CPPFLAGS undefine _FILE_OFFSET_BITS
[coffee/buildroot.git] / package / policycoreutils / policycoreutils.mk
1 ################################################################################
2 #
3 # policycoreutils
4 #
5 ################################################################################
6
7 POLICYCOREUTILS_VERSION = 2.5
8 POLICYCOREUTILS_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20160223
9 POLICYCOREUTILS_LICENSE = GPLv2
10 POLICYCOREUTILS_LICENSE_FILES = COPYING
11
12 POLICYCOREUTILS_DEPENDENCIES = libsemanage libcap-ng
13
14 ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
15 POLICYCOREUTILS_DEPENDENCIES += linux-pam
16 POLICYCOREUTILS_MAKE_OPTS += NAMESPACE_PRIV=y
17 define POLICYCOREUTILS_INSTALL_TARGET_LINUX_PAM_CONFS
18         $(INSTALL) -D -m 0644 $(@D)/newrole/newrole-lspp.pamd $(TARGET_DIR)/etc/pam.d/newrole
19         $(INSTALL) -D -m 0644 $(@D)/run_init/run_init.pamd $(TARGET_DIR)/etc/pam.d/run_init
20 endef
21 endif
22
23 ifeq ($(BR2_PACKAGE_AUDIT),y)
24 POLICYCOREUTILS_DEPENDENCIES += audit
25 POLICYCOREUTILS_MAKE_OPTS += AUDIT_LOG_PRIV=y
26 endif
27
28 # Enable LSPP_PRIV if both audit and linux pam are enabled
29 ifeq ($(BR2_PACKAGE_LINUX_PAM)$(BR2_PACKAGE_AUDIT),yy)
30 POLICYCOREUTILS_MAKE_OPTS += LSPP_PRIV=y
31 endif
32
33 # Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h
34 # large file support.
35 # See https://bugzilla.redhat.com/show_bug.cgi?id=574992 for more information
36 POLICYCOREUTILS_MAKE_OPTS += \
37         $(TARGET_CONFIGURE_OPTS) \
38         CFLAGS="$(TARGET_CFLAGS) -U_FILE_OFFSET_BITS" \
39         CPPFLAGS="$(TARGET_CPPFLAGS) -U_FILE_OFFSET_BITS" \
40         ARCH="$(BR2_ARCH)"
41
42 POLICYCOREUTILS_MAKE_DIRS = \
43         load_policy newrole run_init \
44         secon semodule semodule_deps \
45         semodule_expand semodule_link \
46         semodule_package sepolgen-ifgen \
47         sestatus setfiles setsebool
48
49 ifeq ($(BR2_PACKAGE_POLICYCOREUTILS_RESTORECOND),y)
50 POLICYCOREUTILS_MAKE_DIRS += restorecond
51 endif
52 # We need to pass DESTDIR at build time because it's used by
53 # policycoreutils build system to find headers and libraries.
54 define POLICYCOREUTILS_BUILD_CMDS
55         $(foreach d,$(POLICYCOREUTILS_MAKE_DIRS),
56                 $(MAKE) -C $(@D)/$(d) $(POLICYCOREUTILS_MAKE_OPTS) \
57                         DESTDIR=$(STAGING_DIR) all
58         )
59 endef
60
61 define POLICYCOREUTILS_INSTALL_TARGET_CMDS
62         $(foreach d,$(POLICYCOREUTILS_MAKE_DIRS),
63                 $(MAKE) -C $(@D)/$(d) $(POLICYCOREUTILS_MAKE_OPTS) \
64                         DESTDIR=$(TARGET_DIR) install
65         )
66 endef
67
68 HOST_POLICYCOREUTILS_DEPENDENCIES = \
69         host-libsemanage host-dbus-glib \
70         host-sepolgen host-setools
71
72 # Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h
73 # large file support.
74 # See https://bugzilla.redhat.com/show_bug.cgi?id=574992 for more information
75 HOST_POLICYCOREUTILS_MAKE_OPTS = \
76         $(HOST_CONFIGURE_OPTS) \
77         CFLAGS="$(HOST_CFLAGS) -U_FILE_OFFSET_BITS" \
78         CPPFLAGS="$(HOST_CPPFLAGS) -U_FILE_OFFSET_BITS" \
79         PYTHON="$(HOST_DIR)/usr/bin/python" \
80         PYTHON_INSTALL_ARGS="$(HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS)" \
81         ARCH="$(HOSTARCH)"
82
83 ifeq ($(BR2_PACKAGE_PYTHON3),y)
84 HOST_POLICYCOREUTILS_DEPENDENCIES += host-python3
85 HOST_POLICYCOREUTILS_MAKE_OPTS += \
86         PYLIBVER="python$(PYTHON3_VERSION_MAJOR)"
87 else
88 HOST_POLICYCOREUTILS_DEPENDENCIES += host-python
89 HOST_POLICYCOREUTILS_MAKE_OPTS += \
90         PYLIBVER="python$(PYTHON_VERSION_MAJOR)"
91 endif
92
93 # Note: We are only building the programs required by the refpolicy build
94 HOST_POLICYCOREUTILS_MAKE_DIRS = \
95         load_policy semodule semodule_deps \
96         semodule_expand semodule_link \
97         semodule_package setfiles restorecond \
98         audit2allow scripts semanage sepolicy
99
100 # We need to pass DESTDIR at build time because it's used by
101 # policycoreutils build system to find headers and libraries.
102 define HOST_POLICYCOREUTILS_BUILD_CMDS
103         $(foreach d,$(HOST_POLICYCOREUTILS_MAKE_DIRS),
104                 $(MAKE) -C $(@D)/$(d) $(HOST_POLICYCOREUTILS_MAKE_OPTS) \
105                         DESTDIR=$(HOST_DIR) all
106         )
107 endef
108
109 define HOST_POLICYCOREUTILS_INSTALL_CMDS
110         $(foreach d,$(HOST_POLICYCOREUTILS_MAKE_DIRS),
111                 $(MAKE) -C $(@D)/$(d) $(HOST_POLICYCOREUTILS_MAKE_OPTS) \
112                         DESTDIR=$(HOST_DIR) install
113         )
114         # Fix python paths
115         $(SED) 's%/usr/bin/%$(HOST_DIR)/usr/bin/%g' $(HOST_DIR)/usr/bin/audit2allow
116         $(SED) 's%/usr/bin/%$(HOST_DIR)/usr/bin/%g' $(HOST_DIR)/usr/bin/sepolgen-ifgen
117         $(SED) 's%/usr/bin/%$(HOST_DIR)/usr/bin/%g' $(HOST_DIR)/usr/bin/sepolicy
118 endef
119
120 $(eval $(generic-package))
121 $(eval $(host-generic-package))