Skip to content

Commit 3ba2a34

Browse files
oskarirautaPolynomialDivision
authored andcommitted
apparmor: add package
Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
1 parent 66173ef commit 3ba2a34

9 files changed

Lines changed: 1448 additions & 0 deletions

utils/apparmor/Makefile

Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
3+
include $(TOPDIR)/rules.mk
4+
5+
PKG_NAME:=apparmor
6+
PKG_VERSION:=3.0.1
7+
PKG_RELEASE:=$(AUTORELEASE)
8+
9+
PKG_SOURCE_PROTO:=git
10+
PKG_SOURCE_URL:=https://gitlab.com/apparmor/apparmor.git
11+
PKG_SOURCE_VERSION:=0325ba06da6eeb5acf3e568063a08136fd0913e0
12+
PKG_MIRROR_HASH:=303ceca041ad8023fa44cdda366448d60b6299790266834b4078d30b70ad27f9
13+
14+
PKG_LICENSE:=GPL-2.0-only
15+
PKG_LICENSE_FILES:=LICENSE
16+
PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
17+
BUILDONLY:=1
18+
19+
PKG_BUILD_DEPENDS:=swig/host
20+
HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=setuptools-scm
21+
22+
include $(INCLUDE_DIR)/package.mk
23+
include $(INCLUDE_DIR)/nls.mk
24+
include ../../../packages/lang/python/python3-package.mk
25+
26+
define Package/apparmor/Default
27+
SECTION:=utils
28+
CATEGORY:=Utilities
29+
SUBMENU:=AppArmor
30+
URL:=https://apparmor.net
31+
endef
32+
33+
define Package/libapparmor
34+
TITLE:=AppArmor library
35+
SECTION:=libs
36+
CATEGORY:=Libraries
37+
URL:=https://apparmor.net
38+
endef
39+
40+
define Package/python3-apparmor
41+
TITLE:=AppArmor Python bindings
42+
SECTION:=lang
43+
CATEGORY:=Languages
44+
SUBMENU:=Python
45+
URL:=https://apparmor.net
46+
DEPENDS:=+libapparmor +python3
47+
endef
48+
49+
define Package/apparmor-utils
50+
$(call Package/apparmor/Default)
51+
TITLE:=AppArmor utils
52+
DEPENDS:=$(INTL_DEPENDS) +libapparmor +python3-apparmor +python3 +python3-readline +python3-psutil +ss +findutils-xargs
53+
endef
54+
55+
define Package/apparmor-profiles
56+
$(call Package/apparmor/Default)
57+
TITLE:=AppArmor default profiles
58+
endef
59+
60+
define Package/libapparmor/description
61+
Library to support AppArmor userspace utilities
62+
endef
63+
64+
define Package/apparmor-utils/description
65+
AppArmor application security system init script and
66+
userspace utils to assist with AppArmor profile management
67+
endef
68+
69+
define Package/apparmor-profiles/description
70+
A collection of profiles for the AppArmor application security system
71+
endef
72+
73+
CONFIGURE_PATH=libraries/libapparmor
74+
75+
TARGET_LDFLAGS += \
76+
-L$(PYTHON3_LIB_DIR)
77+
78+
CONFIGURE_VARS += \
79+
SHELL=$(bash) \
80+
PYTHON_VERSION=$(PYTHON3_VERSION) \
81+
PYTHON_VERSIONS=$(PYTHON3) \
82+
PYTHON=$(PYTHON3) \
83+
PYTHON_CONFIG=$(STAGING_DIR_ROOT)/host/bin/python$(PYTHON3_VERSION)-config \
84+
PYTHON_LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(PYTHON3_LIB_DIR)" \
85+
PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION)" \
86+
PYTHON_LDFLAGS="-I$(PYTHON3_INC_DIR) -L$(STAGING_DIR)/usr/lib -L$(PYTHON3_LIB_DIR)" \
87+
PYTHON_EXTRA_LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(PYTHON3_LIB_DIR)/config-$(PYTHON3_VERSION) -lpthread -ldl -lm -lz -lpython$(PYTHON3_VERSION)" \
88+
ac_cv_path_PYTHON_CONFIG="$(STAGING_DIR)/host/bin/python$(PYTHON3_VERSION)-config"
89+
90+
CONFIGURE_ARGS += \
91+
--with-python \
92+
--without-perl \
93+
--without-ruby \
94+
--disable-man-pages
95+
96+
ifeq ($(CONFIG_BUILD_NLS),y)
97+
MAKE_VARS += WITH_LIBINTL=1
98+
MAKE_FLAGS += WITH_LIBINTL=1
99+
endif
100+
101+
APPARMOR_CFLAGS = -I$(PKG_BUILD_DIR)/libraries/libapparmor/include
102+
APPARMOR_LDFLAGS = -L$(PKG_BUILD_DIR)/libraries/libapparmor/src/.libs
103+
104+
define Build/Configure
105+
$(MAKE) -C $(PKG_BUILD_DIR)/libraries/libapparmor configure
106+
$(RM) $(PKG_BUILD_DIR)/libraries/libapparmor/Makefile
107+
$(SED) 's#ac_cv_path_PYTHON_CONFIG=#ac_cv_path_X_PYTHON_CONFIG=#g' $(PKG_BUILD_DIR)/libraries/libapparmor/configure
108+
$(call Build/Configure/Default)
109+
endef
110+
111+
define Build/Compile
112+
# Building libapparmor
113+
+$(MAKE_VARS) \
114+
CFLAGS="$(TARGET_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/libraries/libapparmor \
115+
$(MAKE_FLAGS)
116+
# Building parser
117+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) \
118+
CFLAGS="$(TARGET_CFLAGS) $(APPARMOR_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS) $(APPARMOR_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS) $(APPARMOR_LDFLAGS) -lgcc_s" USE_SYSTEM=0 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/parser \
119+
$(MAKE_FLAGS) apparmor_parser
120+
# Building binutils
121+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) \
122+
CFLAGS="$(TARGET_CFLAGS) $(APPARMOR_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS) $(APPARMOR_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS) $(APPARMOR_LDFLAGS)" USE_SYSTEM=0 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/binutils \
123+
$(MAKE_FLAGS)
124+
# Building utils
125+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) \
126+
CFLAGS="$(TARGET_CFLAGS) $(APPARMOR_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS) $(APPARMOR_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS) $(APPARMOR_LDFLAGS)" USE_SYSTEM=0 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/utils \
127+
$(MAKE_FLAGS)
128+
# Building profiles
129+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) \
130+
CFLAGS="$(TARGET_CFLAGS) $(APPARMOR_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS) $(APPARMOR_CFLAGS")" LDFLAGS="$(TARGET_LDFLAGS) $(APPARMOR_LDFLAGS)" USE_SYSTEM=0 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/profiles \
131+
$(MAKE_FLAGS)
132+
endef
133+
134+
define Build/Install
135+
# Make sure we have python's setup tools installed
136+
$(if $(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS), \
137+
$(call HostPython3/PipInstall,$(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS)) \
138+
)
139+
$(INSTALL_DIR) $(PKG_INSTALL_DIR)-libapparmor $(PKG_INSTALL_DIR)-utils $(PKG_INSTALL_DIR)-profiles
140+
# Installing libapparmor
141+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
142+
CFLAGS="$(TARGET_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" \
143+
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/libraries/libapparmor \
144+
$(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-libapparmor" install
145+
# Installing parser
146+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
147+
CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" USE_SYSTEM=1 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/parser \
148+
$(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-utils" install
149+
# Installing binutils
150+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
151+
CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" USE_SYSTEM=1 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/binutils \
152+
$(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-utils" install
153+
# Installing utils
154+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
155+
CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" USE_SYSTEM=1 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/utils \
156+
$(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-utils" install
157+
# Installing profiles
158+
+$(MAKE_VARS) PYTHON=$(HOST_PYTHON) VERSION=$(PYTHON3_VERSION) \
159+
CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" USE_SYSTEM=1 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/profiles \
160+
$(MAKE_FLAGS) DESTDIR="$(PKG_INSTALL_DIR)-profiles" install
161+
endef
162+
163+
define Package/libapparmor/install
164+
$(INSTALL_DIR) $(1)/usr/lib
165+
$(INSTALL_BIN) $(PKG_INSTALL_DIR)-libapparmor/usr/lib/libapparmor.so.1 $(1)/usr/lib/
166+
$(LN) libapparmor.so.1 $(1)/usr/lib/libapparmor.so
167+
endef
168+
169+
define Package/python3-apparmor/install
170+
$(INSTALL_DIR) \
171+
$(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages \
172+
$(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor
173+
$(INSTALL_DATA) $(PKG_INSTALL_DIR)-libapparmor/usr/lib/python$(PYTHON3_VERSION)/site-packages/*.egg-info \
174+
$(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/
175+
$(INSTALL_DATA) $(PKG_INSTALL_DIR)-libapparmor/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor/*.py \
176+
$(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor
177+
$(INSTALL_BIN) $(PKG_INSTALL_DIR)-libapparmor/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor/*.so \
178+
$(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor/
179+
$(LN) -s _LibAppArmor.cpython-$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR).so \
180+
$(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/LibAppArmor/_LibAppArmor.so
181+
endef
182+
183+
define Package/apparmor-utils/install
184+
$(INSTALL_DIR) $(1)/etc/apparmor $(1)/usr/sbin $(1)/sbin
185+
$(INSTALL_BIN) $(PKG_INSTALL_DIR)-utils/sbin/apparmor_parser $(1)/sbin/
186+
$(INSTALL_CONF) $(PKG_INSTALL_DIR)-utils/etc/apparmor/*.conf $(1)/etc/apparmor/
187+
$(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/etc/apparmor/severity.db $(1)/etc/apparmor/
188+
$(INSTALL_BIN) $(PKG_INSTALL_DIR)-utils/sbin/apparmor_parser $(1)/sbin/
189+
$(INSTALL_BIN) $(PKG_INSTALL_DIR)-utils/usr/bin/{aa-exec,aa-easyprof,aa-enabled,aa-features-abi} $(1)/usr/sbin/
190+
$(INSTALL_BIN) $(PKG_INSTALL_DIR)-utils/usr/sbin/{aa-audit,aa-autodep,aa-cleanprof,aa-complain,aa-decode,aa-disable,aa-enforce,aa-genprof,aa-logprof,aa-mergeprof,aa-notify,aa-remove-unknown,aa-status,aa-unconfined} $(1)/usr/sbin/
191+
$(LN) aa-status $(1)/usr/sbin/apparmor_status
192+
$(INSTALL_DIR) $(1)/usr/share/apparmor/easyprof/templates $(1)/usr/share/apparmor/easyprof/policygroups
193+
$(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/share/apparmor/easyprof/templates/* $(1)/usr/share/apparmor/easyprof/templates/
194+
$(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/share/apparmor/easyprof/policygroups/* $(1)/usr/share/apparmor/easyprof/policygroups/
195+
$(INSTALL_DIR) $(1)/usr/lib/python3.9/site-packages $(1)/usr/lib/python3.9/site-packages/apparmor $(1)/usr/lib/python3.9/site-packages/apparmor/rule
196+
$(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/lib/python3.9/site-packages/*.egg-info \
197+
$(1)/usr/lib/python3.9/site-packages/
198+
$(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/lib/python3.9/site-packages/apparmor/*.py \
199+
$(1)/usr/lib/python3.9/site-packages/apparmor/
200+
$(INSTALL_DATA) $(PKG_INSTALL_DIR)-utils/usr/lib/python3.9/site-packages/apparmor/rule/*.py \
201+
$(1)/usr/lib/python3.9/site-packages/apparmor/rule
202+
$(INSTALL_DIR) $(1)/etc/init.d $(1)/lib/functions
203+
$(INSTALL_BIN) ./files/apparmor.sh $(1)/lib/functions/
204+
$(INSTALL_BIN) ./files/apparmor.init $(1)/etc/init.d/apparmor
205+
endef
206+
207+
define Package/apparmor-profiles/install
208+
$(INSTALL_DIR) $(1)/etc/apparmor.d $(1)/usr/share/apparmor/extra-profiles
209+
$(CP) -aR $(PKG_INSTALL_DIR)-profiles/etc/apparmor.d/** $(1)/etc/apparmor.d/
210+
$(INSTALL_CONF) $(PKG_INSTALL_DIR)-profiles/usr/share/apparmor/extra-profiles/** $(1)/usr/share/apparmor/extra-profiles/
211+
endef
212+
213+
$(eval $(call BuildPackage,libapparmor))
214+
$(eval $(call BuildPackage,python3-apparmor))
215+
$(eval $(call BuildPackage,apparmor-utils))
216+
$(eval $(call BuildPackage,apparmor-profiles))

utils/apparmor/files/apparmor.init

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/sh /etc/rc.common
2+
3+
START=75
4+
USE_PROCD=1
5+
6+
. /lib/functions/apparmor.sh
7+
8+
restart() {
9+
apparmor_restart
10+
}
11+
12+
start_service() {
13+
apparmor_start
14+
}
15+
16+
stop_service() {
17+
apparmor_stop
18+
}
19+
20+
reload_service() {
21+
apparmor_reload
22+
}

0 commit comments

Comments
 (0)