Hello community,

here is the log from the commit of package apparmor for openSUSE:Factory 
checked in at 2020-04-08 19:54:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apparmor (Old)
 and      /work/SRC/openSUSE:Factory/.apparmor.new.3248 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "apparmor"

Wed Apr  8 19:54:14 2020 rev:136 rq:789398 version:2.13.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/apparmor/apparmor.changes        2020-03-16 
10:16:26.399540842 +0100
+++ /work/SRC/openSUSE:Factory/.apparmor.new.3248/apparmor.changes      
2020-04-08 19:54:15.741017264 +0200
@@ -1,0 +2,10 @@
+Sat Mar 28 21:46:48 UTC 2020 - Christian Boltz <[email protected]>
+
+- fix build with make 4.3 by backporting some commits from upstream
+  master (boo#1167953):
+  - make-4.3-capabilities.diff
+  - make-4.3-capabilities-vim.diff
+  - make-4.3-network.diff
+  - make-4.3-fix-utils-network-test.diff
+
+-------------------------------------------------------------------
@@ -15 +25 @@
-- refresh usr-etc-abstractions-authentification.diff
+- refresh usr-etc-abstractions-base-nameservice.diff

New:
----
  make-4.3-capabilities-vim.diff
  make-4.3-capabilities.diff
  make-4.3-fix-utils-network-test.diff
  make-4.3-network.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ apparmor.spec ++++++
--- /var/tmp/diff_new_pack.KLsThH/_old  2020-04-08 19:54:16.793018031 +0200
+++ /var/tmp/diff_new_pack.KLsThH/_new  2020-04-08 19:54:16.797018035 +0200
@@ -68,6 +68,18 @@
 # update abstractions/base and nameservice for /usr/etc (submitted upstream 
2020-01-25 https://gitlab.com/apparmor/apparmor/merge_requests/447, only merged 
to master, not 2.13.x)
 Patch10:        ./usr-etc-abstractions-base-nameservice.diff
 
+# fix build with make 4.3  - network rules (taken from upstream 
https://gitlab.com/apparmor/apparmor/-/merge_requests/307, not in 2.13.x, 
boo#1167953)
+Patch11:        make-4.3-network.diff
+
+# fix build with make 4.3 - fix utils network tests (taken from upstream 
9144e39d2, not in 2.13.x, boo#1167953)
+Patch12:        make-4.3-fix-utils-network-test.diff
+
+# fix build with make 4.3 -  capability rules (taken from upstream 
https://gitlab.com/apparmor/apparmor/-/merge_requests/461, not in 2.13.x, 
boo#1167953)
+Patch13:        make-4.3-capabilities.diff
+
+# fix build with make 4.3 -  fix apparmor.vim capability rules (submitted 
upstream 2020-03-29 https://gitlab.com/apparmor/apparmor/-/merge_requests/463, 
not in 2.13.x, boo#1167953)
+Patch14:        make-4.3-capabilities-vim.diff
+
 PreReq:         sed
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %define apparmor_bin_prefix /lib/apparmor
@@ -357,6 +369,10 @@
 %patch4
 %patch5
 %patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
 
 %build
 %define _lto_cflags %{nil}



++++++ make-4.3-capabilities-vim.diff ++++++
commit 60b005788e79c1be7276349242e0cc97b99f7118
Author: Christian Boltz <[email protected]>
Date:   Sun Mar 29 00:07:11 2020 +0100

    fix capabilities in apparmor.vim
    
    https://gitlab.com/apparmor/apparmor/-/merge_requests/461 /
    e92da079ca12e776991bd36524430bd67c1cb72a changed creating the
    capabilities to use a script.
    
    A side effect is that the list is now separated by \n instead of
    spaces. Adjust create-apparmor.vim.py to the new output.

diff --git a/utils/vim/create-apparmor.vim.py b/utils/vim/create-apparmor.vim.py
index 6a5f02a2..b5df957a 100644
--- a/utils/vim/create-apparmor.vim.py
+++ b/utils/vim/create-apparmor.vim.py
@@ -50,7 +50,7 @@ if rc != 0:
     sys.stderr.write("make list_capabilities failed: " + output)
     exit(rc)
 
-capabilities = re.sub('CAP_', '', output.strip()).lower().split(" ")
+capabilities = re.sub('CAP_', '', output.strip()).lower().split('\n')
 benign_caps = []
 for cap in capabilities:
     if cap not in danger_caps:
++++++ make-4.3-capabilities.diff ++++++
commit e92da079ca12e776991bd36524430bd67c1cb72a
Author: allgdante <[email protected]>
Date:   Mon Mar 23 15:09:15 2020 +0000

    Generate CAPABILITIES in a script due to make 4.3
    
    This way we could generate the capabilities in a way that works with
    every version of make.
    Changes to list_capabilities are intended to exactly replicate the old
    behavior.

diff --git a/common/Make.rules b/common/Make.rules
index 357bdec8..ecc6181a 100644
--- a/common/Make.rules
+++ b/common/Make.rules
@@ -74,19 +74,6 @@ endif
 pod_clean:
        -rm -f ${MANPAGES} *.[0-9].gz ${HTMLMANPAGES} pod2htm*.tmp
 
-# =====================
-# generate list of capabilities based on
-# /usr/include/linux/capabilities.h for use in multiple locations in
-# the source tree
-# =====================
-
-# emits defined capabilities in a simple list, e.g. "CAP_NAME CAP_NAME2"
-CAPABILITIES=$(shell echo "\#include <linux/capability.h>" | cpp -dM | 
LC_ALL=C sed -n -e '/CAP_EMPTY_SET/d' -e 's/^\#define[ 
\t]\+CAP_\([A-Z0-9_]\+\)[ \t]\+\([0-9xa-f]\+\)\(.*\)$$/CAP_\1/p' | LC_ALL=C 
sort)
-
-.PHONY: list_capabilities
-list_capabilities: /usr/include/linux/capability.h
-       @echo "$(CAPABILITIES)"
-
 # =====================
 # manpages
 # =====================
diff --git a/common/list_capabilities.sh b/common/list_capabilities.sh
new file mode 100755
index 00000000..4e37cda7
--- /dev/null
+++ b/common/list_capabilities.sh
@@ -0,0 +1,14 @@
+#!/bin/bash -e
+
+# =====================
+# generate list of capabilities based on
+# /usr/include/linux/capabilities.h for use in multiple locations in
+# the source tree
+# =====================
+
+echo "#include <linux/capability.h>" | \
+  cpp -dM | \
+  LC_ALL=C sed -n \
+    -e '/CAP_EMPTY_SET/d' \
+    -e 's/^\#define[ \t]\+CAP_\([A-Z0-9_]\+\)[ 
\t]\+\([0-9xa-f]\+\)\(.*\)$/CAP_\1/p' | \
+  LC_ALL=C sort
diff --git a/parser/Makefile b/parser/Makefile
index 2d40b06f..a71b5788 100644
--- a/parser/Makefile
+++ b/parser/Makefile
@@ -284,7 +284,7 @@ af_names.h: ../common/list_af_names.sh
        # cat $@
 
 cap_names.h: /usr/include/linux/capability.h
-       echo "$(CAPABILITIES)" | LC_ALL=C sed -n -e "s/[ 
\\t]\\?CAP_\\([A-Z0-9_]\\+\\)/\{\"\\L\\1\", \\UCAP_\\1\},\\n/pg" > $@
+       ../common/list_capabilities.sh | LC_ALL=C sed -n -e "s/[ 
\\t]\\?CAP_\\([A-Z0-9_]\\+\\)/\{\"\\L\\1\", \\UCAP_\\1\},\\n/pg" > $@
 
 tst_lib: lib.c parser.h $(filter-out lib.o, ${TEST_OBJECTS})
        $(CXX) $(TEST_CFLAGS) -o $@ $< $(filter-out $(<:.c=.o), 
${TEST_OBJECTS}) $(TEST_LDFLAGS) $(TEST_LDLIBS)
diff --git a/utils/Makefile b/utils/Makefile
index 8fae738d..80990004 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -79,7 +79,7 @@ clean: pod_clean
 .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 \
+       RC=0 ; for cap in $(shell ../common/list_capabilities.sh) ; do \
            if !  grep -q -w $${cap} severity.db ; then \
                echo "Warning! capability $${cap} not found in severity.db" ; \
                RC=1 ; \
diff --git a/utils/vim/create-apparmor.vim.py b/utils/vim/create-apparmor.vim.py
index fea134f6..6a5f02a2 100644
--- a/utils/vim/create-apparmor.vim.py
+++ b/utils/vim/create-apparmor.vim.py
@@ -45,7 +45,7 @@ def cmd(command, input=None, stderr=subprocess.STDOUT, 
stdout=subprocess.PIPE, s
     return [sp.returncode, out + outerr]
 
 # get capabilities list
-(rc, output) = cmd(['make', '-s', '--no-print-directory', 'list_capabilities'])
+(rc, output) = cmd(['../../common/list_capabilities.sh'])
 if rc != 0:
     sys.stderr.write("make list_capabilities failed: " + output)
     exit(rc)
++++++ make-4.3-fix-utils-network-test.diff ++++++
commit 9144e39d252cd75dd2d6941154e014f7d46147ca
Author: John Johansen <[email protected]>
Date:   Fri Jun 14 01:04:22 2019 -0700

    Revert "utils/test-network.py: fix failing testcase"
    
    This reverts commit 378519d23f8b6e55b1c0741e8cd197863e0ff8a0.
    this commit was meant for the 2.13 branch not master
    
    Signed-off-by: John Johansen <[email protected]>

diff --git a/utils/test/test-network.py b/utils/test/test-network.py
index 6088327a..ee325abe 100644
--- a/utils/test/test-network.py
+++ b/utils/test/test-network.py
@@ -31,7 +31,7 @@ exp = namedtuple('exp', ['audit', 'allow_keyword', 'deny', 
'comment',
 
 class NetworkKeywordsTest(AATest):
     def test_network_keyword_list(self):
-        rc, output = cmd(['make', '-s', '--no-print-directory', 
'list_af_names'])
+        rc, output = cmd('../../common/list_af_names.sh')
         self.assertEqual(rc, 0)
 
         af_names = []
++++++ make-4.3-network.diff ++++++
commit cb8c3377babfed4600446d1f60d53d8e2a581578
Author: Eric Chiang <[email protected]>
Date:   Thu Jan 17 11:02:57 2019 -0800

    *: ensure make apparmor_parser is cached
    
    This change updates parser/Makefile to respect target dependencies and
    not rebuild apparmor_parser if nothing's changed. The goal is to allow
    cross-compiled tests #17 to run on a target system without the tests
    attempting to rebuild the parser.
    
    Two changes were made:
    
    * Generate af_names.h in a script so the script timestamp is compared.
    * Use FORCE instead of PHONY for libapparmor_re/libapparmor_re.a
    
    Changes to list_af_names are intended to exactly replicate the old
    behavior.
    
    Signed-off-by: Eric Chiang <[email protected]>

diff --git a/common/Make.rules b/common/Make.rules
index d2149fcd..357bdec8 100644
--- a/common/Make.rules
+++ b/common/Make.rules
@@ -87,27 +87,6 @@ CAPABILITIES=$(shell echo "\#include <linux/capability.h>" | 
cpp -dM | LC_ALL=C
 list_capabilities: /usr/include/linux/capability.h
        @echo "$(CAPABILITIES)"
 
-# =====================
-# generate list of network protocols based on
-# sys/socket.h for use in multiple locations in
-# the source tree
-# =====================
-
-# These are the families that it doesn't make sense for apparmor
-# to mediate. We use PF_ here since that is what is required in
-# bits/socket.h, but we will rewrite these as AF_.
-
-FILTER_FAMILIES=PF_UNIX
-
-__FILTER=$(shell echo $(strip $(FILTER_FAMILIES)) | sed -e 's/ /\\\|/g')
-
-# emits the AF names in a "AF_NAME NUMBER," pattern
-AF_NAMES=$(shell echo "\#include <sys/socket.h>" | cpp -dM | LC_ALL=C sed -n 
-e '/$(__FILTER)/d' -e 's/PF_LOCAL/PF_UNIX/' -e 's/^\#define[ 
\t]\+PF_\([A-Z0-9_]\+\)[ \t]\+\([0-9]\+\).*$$/AF_\1 \2,/p' | sort -n -k2)
-
-.PHONY: list_af_names
-list_af_names:
-       @echo "$(AF_NAMES)"
-
 # =====================
 # manpages
 # =====================
diff --git a/common/list_af_names.sh b/common/list_af_names.sh
new file mode 100755
index 00000000..d7987537
--- /dev/null
+++ b/common/list_af_names.sh
@@ -0,0 +1,19 @@
+#!/bin/bash -e
+
+# =====================
+# generate list of network protocols based on
+# sys/socket.h for use in multiple locations in
+# the source tree
+# =====================
+
+# It doesn't make sence for AppArmor to mediate PF_UNIX, filter it out. Search
+# for "PF_" constants since that is what is required in bits/socket.h, but
+# rewrite as "AF_".
+
+echo "#include <sys/socket.h>" | \
+  cpp -dM | \
+  LC_ALL=C sed -n \
+    -e '/PF_UNIX/d' \
+    -e 's/PF_LOCAL/PF_UNIX/' \
+    -e 's/^#define[ \t]\+PF_\([A-Z0-9_]\+\)[ \t]\+\([0-9]\+\).*$/AF_\1 \2,/p' 
| \
+  sort -n -k2
diff --git a/parser/Makefile b/parser/Makefile
index 558d9616..9a18f4da 100644
--- a/parser/Makefile
+++ b/parser/Makefile
@@ -278,10 +278,9 @@ parser_version.h: Makefile
 # as well as the filtering that occurs for network protocols that
 # apparmor should not mediate.
 
-.PHONY: af_names.h
-af_names.h:
-       echo "$(AF_NAMES)" | LC_ALL=C sed -n -e 's/[ \t]\?AF_MAX[ 
\t]\+[0-9]\+,//g'  -e 's/[ \t]\+\?AF_\([A-Z0-9_]\+\)[ \t]\+\([0-9]\+\),/#ifndef 
AF_\1\n#  define AF_\1 \2\n#endif\nAA_GEN_NET_ENT("\L\1", \UAF_\1)\n\n/pg' > $@
-       echo "$(AF_NAMES)" | LC_ALL=C sed -n -e 's/.*,[ \t]\+AF_MAX[ 
\t]\+\([0-9]\+\),\?.*/#define AA_AF_MAX \1\n/p' >> $@
+af_names.h: ../common/list_af_names.sh
+       ../common/list_af_names.sh | LC_ALL=C sed -n -e 's/[ \t]\?AF_MAX[ 
\t]\+[0-9]\+,//g'  -e 's/[ \t]\+\?AF_\([A-Z0-9_]\+\)[ \t]\+\([0-9]\+\),/#ifndef 
AF_\1\n#  define AF_\1 \2\n#endif\nAA_GEN_NET_ENT("\L\1", \UAF_\1)\n/pg' > $@
+       ../common/list_af_names.sh | LC_ALL=C sed -n -e 's/AF_MAX[ 
\t]\+\([0-9]\+\),\?.*/\n#define AA_AF_MAX \1\n/p' >> $@
        # cat $@
 
 cap_names.h: /usr/include/linux/capability.h
@@ -301,10 +300,7 @@ tests: apparmor_parser ${TESTS}
        sh -e -c 'for test in ${TESTS} ; do echo "*** running $${test}" && 
./$${test}; done'
        $(Q)$(MAKE) -s -C tst tests
 
-# always need to rebuild.
-.SILENT: $(AAREOBJECT)
-.PHONY: $(AAREOBJECT)
-$(AAREOBJECT):
+$(AAREOBJECT): FORCE
        $(MAKE) -C $(AAREDIR) CFLAGS="$(EXTRA_CXXFLAGS)"
 
 .PHONY: install-rhel4
@@ -404,3 +400,4 @@ clean: pod_clean
        $(MAKE) -s -C po clean
        $(MAKE) -s -C tst clean
 
+FORCE:
diff --git a/utils/vim/create-apparmor.vim.py b/utils/vim/create-apparmor.vim.py
index 1ea8191d..ca14df5c 100644
--- a/utils/vim/create-apparmor.vim.py
+++ b/utils/vim/create-apparmor.vim.py
@@ -57,7 +57,7 @@ for cap in capabilities:
         benign_caps.append(cap)
 
 # get network protos list
-(rc, output) = cmd(['make', '-s', '--no-print-directory', 'list_af_names'])
+(rc, output) = cmd(['../../common/list_af_names.sh'])
 if rc != 0:
     sys.stderr.write("make list_af_names failed: " + output)
     exit(rc)

Reply via email to