Source: apparmor
Version: 2.13-8
Tags: patch upstream
Control: block 798955 by -1

apparmor hard codes the location of <netinet/in.h> to extract macros
from it. Doing so will break with non-glibc libcs on Debian and with
glibc headers moved to multiarch locations (#798955). Please consider
extracting the header by calling the compiler instead. The attached
patch implements that.

Helmut
--- apparmor-2.13.orig/libraries/libapparmor/src/Makefile.am
+++ apparmor-2.13/libraries/libapparmor/src/Makefile.am
@@ -42,8 +42,8 @@
 
 scanner.c: scanner.l
 
-af_protos.h: /usr/include/netinet/in.h
-	 LC_ALL=C  sed  -n -e "/IPPROTO_MAX/d"  -e "s/^\#define[ \\t]\\+IPPROTO_\\([A-Z0-9_]\\+\\)\\(.*\\)$$/AA_GEN_PROTO_ENT(\\UIPPROTO_\\1, \"\\L\\1\")/p" $< > $@
+af_protos.h:
+	 echo '#include <netinet/in.h>' | gcc -E -dM - | LC_ALL=C  sed  -n -e "/IPPROTO_MAX/d"  -e "s/^\#define[ \\t]\\+IPPROTO_\\([A-Z0-9_]\\+\\)\\(.*\\)$$/AA_GEN_PROTO_ENT(\\UIPPROTO_\\1, \"\\L\\1\")/p" > $@
 
 lib_LTLIBRARIES = libapparmor.la
 noinst_HEADERS = grammar.h parser.h scanner.h af_protos.h private.h PMurHash.h

Reply via email to