]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - package/policycoreutils/policycoreutils.mk
Globally replace $(HOST_DIR)/usr/bin with $(HOST_DIR)/bin
[coffee/buildroot.git] / package / policycoreutils / policycoreutils.mk
1 ################################################################################
2 #
3 # policycoreutils
4 #
5 ################################################################################
6
7 POLICYCOREUTILS_VERSION = 2.6
8 POLICYCOREUTILS_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20161014
9 POLICYCOREUTILS_LICENSE = GPL-2.0
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 POLICYCOREUTILS_DEPENDENCIES += libglib2
52 endif
53
54 ifeq ($(BR2_PACKAGE_POLICYCOREUTILS_AUDIT2ALLOW),y)
55 ifeq ($(BR2_PACKAGE_PYTHON3),y)
56 POLICYCOREUTILS_DEPENDENCIES += python3
57 POLICYCOREUTILS_MAKE_OPTS += PYLIBVER="python$(PYTHON3_VERSION_MAJOR)"
58 else
59 POLICYCOREUTILS_DEPENDENCIES += python
60 POLICYCOREUTILS_MAKE_OPTS += PYLIBVER="python$(PYTHON_VERSION_MAJOR)"
61 endif
62
63 POLICYCOREUTILS_DEPENDENCIES += sepolgen checkpolicy
64 POLICYCOREUTILS_MAKE_DIRS += audit2allow
65 endif
66
67 # We need to pass DESTDIR at build time because it's used by
68 # policycoreutils build system to find headers and libraries.
69 define POLICYCOREUTILS_BUILD_CMDS
70         $(foreach d,$(POLICYCOREUTILS_MAKE_DIRS),
71                 $(MAKE) -C $(@D)/$(d) $(POLICYCOREUTILS_MAKE_OPTS) \
72                         DESTDIR=$(STAGING_DIR) all
73         )
74 endef
75
76 define POLICYCOREUTILS_INSTALL_TARGET_CMDS
77         $(foreach d,$(POLICYCOREUTILS_MAKE_DIRS),
78                 $(MAKE) -C $(@D)/$(d) $(POLICYCOREUTILS_MAKE_OPTS) \
79                         DESTDIR=$(TARGET_DIR) install
80         )
81 endef
82
83 HOST_POLICYCOREUTILS_DEPENDENCIES = \
84         host-libsemanage host-dbus-glib \
85         host-sepolgen host-setools
86
87 # Undefining _FILE_OFFSET_BITS here because of a "bug" with glibc fts.h
88 # large file support.
89 # See https://bugzilla.redhat.com/show_bug.cgi?id=574992 for more information
90 HOST_POLICYCOREUTILS_MAKE_OPTS = \
91         $(HOST_CONFIGURE_OPTS) \
92         CFLAGS="$(HOST_CFLAGS) -U_FILE_OFFSET_BITS" \
93         CPPFLAGS="$(HOST_CPPFLAGS) -U_FILE_OFFSET_BITS" \
94         PYTHON="$(HOST_DIR)/bin/python" \
95         PYTHON_INSTALL_ARGS="$(HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS)" \
96         ARCH="$(HOSTARCH)"
97
98 ifeq ($(BR2_PACKAGE_PYTHON3),y)
99 HOST_POLICYCOREUTILS_DEPENDENCIES += host-python3
100 HOST_POLICYCOREUTILS_MAKE_OPTS += \
101         PYLIBVER="python$(PYTHON3_VERSION_MAJOR)"
102 else
103 HOST_POLICYCOREUTILS_DEPENDENCIES += host-python
104 HOST_POLICYCOREUTILS_MAKE_OPTS += \
105         PYLIBVER="python$(PYTHON_VERSION_MAJOR)"
106 endif
107
108 # Note: We are only building the programs required by the refpolicy build
109 HOST_POLICYCOREUTILS_MAKE_DIRS = \
110         load_policy semodule semodule_deps \
111         semodule_expand semodule_link \
112         semodule_package setfiles restorecond \
113         audit2allow scripts semanage sepolicy
114
115 # We need to pass DESTDIR at build time because it's used by
116 # policycoreutils build system to find headers and libraries.
117 define HOST_POLICYCOREUTILS_BUILD_CMDS
118         $(foreach d,$(HOST_POLICYCOREUTILS_MAKE_DIRS),
119                 $(MAKE) -C $(@D)/$(d) $(HOST_POLICYCOREUTILS_MAKE_OPTS) \
120                         DESTDIR=$(HOST_DIR) all
121         )
122 endef
123
124 define HOST_POLICYCOREUTILS_INSTALL_CMDS
125         $(foreach d,$(HOST_POLICYCOREUTILS_MAKE_DIRS),
126                 $(MAKE) -C $(@D)/$(d) $(HOST_POLICYCOREUTILS_MAKE_OPTS) \
127                         DESTDIR=$(HOST_DIR) install
128         )
129         # Fix python paths
130         $(SED) 's%/usr/bin/%$(HOST_DIR)/bin/%g' $(HOST_DIR)/bin/audit2allow
131         $(SED) 's%/usr/bin/%$(HOST_DIR)/bin/%g' $(HOST_DIR)/bin/sepolgen-ifgen
132         $(SED) 's%/usr/bin/%$(HOST_DIR)/bin/%g' $(HOST_DIR)/bin/sepolicy
133 endef
134
135 $(eval $(generic-package))
136 $(eval $(host-generic-package))