mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-05 17:01:00 +01:00

This patch adds a 'check_pod_files' make target to the common make rules, and then fixes the errors it highlighted as well as most of the warnings. It will cause 'make check' in most of the directories to fail if there are errors in a pod file (but not if there are warnings). Common issues were: - using an '=over/=back' pair for code-like snippets that did not contain any =items therein; the =over keyword is intended for indenting lists of =item entries, and generates a warning if there isn't any. - not escaping '<' or '>' - blank lines that contained spaces or tabs The second -warnings flag passed to podchecker is to add additional warnings, un-escaped '<' and '>' being of them. I did not fix all of the warnings in apparmor.d.pod, as I have not come up with a good warning-free way to express the BNF of the language similar in format to what is currently generated. The existing libapparmor warnings (complaints about duplicate =item definition names) are actually a result of passing the second -warnings flag. The integration into libapparmor is suboptimal due to automake's expectation that there will be a test driver program(s) for make check targets; that's why I added the podchecker call to the manpage generation point. Signed-off-by: Steve Beattie <steve@nxnw.org> Acked-by: Seth Arnold <seth.arnold@canonical.com> --- changehat/mod_apparmor/Makefile | 3 changehat/mod_apparmor/mod_apparmor.pod | 28 ++- common/Make.rules | 4 libraries/libapparmor/doc/Makefile.am | 7 parser/Makefile | 2 parser/apparmor.d.pod | 275 +++++++++++++------------------- utils/Makefile | 3 utils/aa-cleanprof.pod | 2 utils/aa-complain.pod | 2 utils/aa-decode.pod | 2 utils/aa-easyprof.pod | 69 +++----- utils/aa-enforce.pod | 2 utils/aa-genprof.pod | 2 utils/aa-logprof.pod | 6 utils/aa-sandbox.pod | 64 ++----- utils/logprof.conf.pod | 2 utils/vim/Makefile | 2 17 files changed, 212 insertions(+), 263 deletions(-)
108 lines
3.5 KiB
Makefile
108 lines
3.5 KiB
Makefile
# ----------------------------------------------------------------------
|
|
# Copyright (c) 1999, 2004-2009 NOVELL (All rights reserved)
|
|
# Copyright (c) 2010-2011 Canonical Ltd.
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of version 2 of the GNU General Public
|
|
# License published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, contact Novell, Inc.
|
|
# ----------------------------------------------------------------------
|
|
NAME = apparmor-utils
|
|
all:
|
|
COMMONDIR=../common/
|
|
|
|
include common/Make.rules
|
|
|
|
COMMONDIR_EXISTS=$(strip $(shell [ -d ${COMMONDIR} ] && echo true))
|
|
ifeq ($(COMMONDIR_EXISTS), true)
|
|
common/Make.rules: $(COMMONDIR)/Make.rules
|
|
ln -sf $(COMMONDIR) .
|
|
endif
|
|
|
|
PERLTOOLS = aa-exec aa-notify
|
|
PYTOOLS = aa-easyprof aa-genprof aa-logprof aa-cleanprof aa-mergeprof \
|
|
aa-autodep aa-audit aa-complain aa-enforce aa-disable \
|
|
aa-status aa-unconfined
|
|
TOOLS = ${PERLTOOLS} ${PYTOOLS} aa-decode
|
|
PYSETUP = python-tools-setup.py
|
|
PYMODULES = $(wildcard apparmor/*.py)
|
|
|
|
MANPAGES = ${TOOLS:=.8} logprof.conf.5
|
|
|
|
all: ${MANPAGES} ${HTMLMANPAGES}
|
|
$(MAKE) -C po all
|
|
$(MAKE) -C vim all
|
|
|
|
# need some better way of determining this
|
|
DESTDIR=/
|
|
BINDIR=${DESTDIR}/usr/sbin
|
|
CONFDIR=${DESTDIR}/etc/apparmor
|
|
PYPREFIX=/usr
|
|
|
|
po/${NAME}.pot: ${TOOLS} ${PYMODULES}
|
|
$(MAKE) -C po ${NAME}.pot NAME=${NAME} SOURCES="${TOOLS} ${PYMODULES}"
|
|
|
|
.PHONY: install
|
|
install: ${MANPAGES} ${HTMLMANPAGES}
|
|
install -d ${CONFDIR}
|
|
install -m 644 logprof.conf severity.db notify.conf ${CONFDIR}
|
|
install -d ${BINDIR}
|
|
ln -sf aa-status ${BINDIR}/apparmor_status
|
|
# aa-easyprof is installed by python-tools-setup.py
|
|
install -m 755 $(filter-out aa-easyprof, ${TOOLS}) ${BINDIR}
|
|
$(MAKE) -C po install DESTDIR=${DESTDIR} NAME=${NAME}
|
|
$(MAKE) install_manpages DESTDIR=${DESTDIR}
|
|
$(MAKE) -C vim install DESTDIR=${DESTDIR}
|
|
ln -sf aa-status.8 ${DESTDIR}/${MANDIR}/man8/apparmor_status.8
|
|
${PYTHON} ${PYSETUP} install --prefix=${PYPREFIX} --root=${DESTDIR} --version=${VERSION}
|
|
|
|
.PHONY: clean
|
|
ifndef VERBOSE
|
|
.SILENT: clean
|
|
endif
|
|
clean: _clean
|
|
rm -f core core.* *.o *.s *.a *~
|
|
rm -f Make.rules
|
|
$(MAKE) -C po clean
|
|
$(MAKE) -C vim clean
|
|
$(MAKE) -C test clean
|
|
rm -rf staging/ build/
|
|
rm -f apparmor/*.pyc
|
|
rm -rf apparmor/__pycache__/
|
|
|
|
# ${CAPABILITIES} is defined in common/Make.rules
|
|
.PHONY: check_severity_db
|
|
.SILENT: check_severity_db
|
|
check_severity_db: /usr/include/linux/capability.h severity.db
|
|
# The sed statement is based on the one in the parser's makefile
|
|
RC=0 ; for cap in ${CAPABILITIES} ; do \
|
|
if ! grep -q -w $${cap} severity.db ; then \
|
|
echo "Warning! capability $${cap} not found in severity.db" ; \
|
|
RC=1 ; \
|
|
fi ;\
|
|
done ; \
|
|
test "$$RC" -eq 0
|
|
|
|
# check_pod_files is defined in common/Make.rules
|
|
.PHONY: check
|
|
.SILENT: check
|
|
check: check_severity_db check_pod_files
|
|
for i in ${PERLTOOLS} ; do \
|
|
perl -c $$i || exit 1; \
|
|
done
|
|
tmpfile=$$(mktemp --tmpdir aa-pyflakes-XXXXXX); \
|
|
for i in ${PYTOOLS} apparmor test/*.py; do \
|
|
echo Checking $$i; \
|
|
pyflakes $$i 2>&1 | grep -v "undefined name '_'" > $$tmpfile; \
|
|
test -s $$tmpfile && cat $$tmpfile && rm -f $$tmpfile && exit 1; \
|
|
done || true; \
|
|
rm -f $$tmpfile
|
|
$(MAKE) -C test check
|
|
$(MAKE) -C vim check
|