Hello community,

here is the log from the commit of package audit for openSUSE:Factory checked 
in at 2018-03-26 11:51:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/audit (Old)
 and      /work/SRC/openSUSE:Factory/.audit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "audit"

Mon Mar 26 11:51:53 2018 rev:86 rq:588035 version:2.8.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/audit/audit-secondary.changes    2018-01-26 
13:33:25.518317199 +0100
+++ /work/SRC/openSUSE:Factory/.audit.new/audit-secondary.changes       
2018-03-26 11:52:01.794699318 +0200
@@ -1,0 +2,36 @@
+Fri Mar 16 19:44:45 UTC 2018 - to...@suse.com
+
+- Change openldap dependency to client only (bsc#1085003)
+- Resolve issue with previous change if both Python2 and Python3 are
+  present, tests were failing as python2 bindings are preferred in this
+  case.
+
+-------------------------------------------------------------------
+Thu Feb 22 11:00:16 UTC 2018 - meiss...@suse.com
+
+- reverted -j1 force ppc specific only
+
+-------------------------------------------------------------------
+Wed Feb  7 09:26:35 UTC 2018 - tchva...@suse.com
+
+- Add patch to fix test run without python2 interpreter:
+  * audit-python3.patch
+- Update to 2.8.2 release:
+  * Update tables for 4.14 kernel
+  * Fixup ipv6 server side binding
+  * AVC report from aureport was missing result column header (#1511606)
+  * Add SOFTWARE_UPDATE event
+  * In ausearch/report pickup any path and new-disk fields as a file
+  * Fix value returned by auditctl --reset-lost (Richard Guy Briggs)
+  * In auparse, fix expr_create_timestamp_comparison_ex to be numeric field
+  * Fix building on old systems without linux/fanotify.h
+  * Fix shell portability issues reported by shellcheck
+  * Auditd validate_email should not use gethostbyname
+
+-------------------------------------------------------------------
+Tue Feb  6 13:24:43 UTC 2018 - norm...@linux.vnet.ibm.com
+
+- force -j1 for PowerPC make check to avoid build failure
+  (lookup_test.o: file not recognized: File truncated)
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/audit/audit.changes      2017-11-15 
16:49:27.230381656 +0100
+++ /work/SRC/openSUSE:Factory/.audit.new/audit.changes 2018-03-26 
11:52:01.942693979 +0200
@@ -1,0 +2,23 @@
+Fri Mar 16 19:41:29 UTC 2018 - to...@suse.com
+
+- Update header in audit-python3.patch
+- Update patch guidelines in README-BEFORE-ADDING-PATCHES
+
+-------------------------------------------------------------------
+Wed Feb  7 09:26:35 UTC 2018 - tchva...@suse.com
+
+- Add patch to fix test run without python2 interpreter:
+  * audit-python3.patch
+- Update to 2.8.2 release:
+  * Update tables for 4.14 kernel
+  * Fixup ipv6 server side binding
+  * AVC report from aureport was missing result column header (#1511606)
+  * Add SOFTWARE_UPDATE event
+  * In ausearch/report pickup any path and new-disk fields as a file
+  * Fix value returned by auditctl --reset-lost (Richard Guy Briggs)
+  * In auparse, fix expr_create_timestamp_comparison_ex to be numeric field
+  * Fix building on old systems without linux/fanotify.h
+  * Fix shell portability issues reported by shellcheck
+  * Auditd validate_email should not use gethostbyname
+
+-------------------------------------------------------------------

Old:
----
  audit-2.8.1.tar.gz

New:
----
  audit-2.8.2.tar.gz
  audit-python3.patch

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

Other differences:
------------------
++++++ audit-secondary.spec ++++++
--- /var/tmp/diff_new_pack.82kG78/_old  2018-03-26 11:52:03.002655740 +0200
+++ /var/tmp/diff_new_pack.82kG78/_new  2018-03-26 11:52:03.006655595 +0200
@@ -22,10 +22,10 @@
 # The seperation is required to minimize unnecessary build cycles.
 %define        _name audit
 Name:           audit-secondary
-Version:        2.8.1
+Version:        2.8.2
 Release:        0
 Summary:        Linux kernel audit subsystem utilities
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          System/Monitoring
 Url:            http://people.redhat.com/sgrubb/audit/
 Source0:        
http://people.redhat.com/sgrubb/audit/%{_name}-%{version}.tar.gz
@@ -33,12 +33,13 @@
 Patch2:         audit-no-gss.patch
 Patch3:         audit-allow-manual-stop.patch
 Patch4:         audit-ausearch-do-not-require-tclass.patch
+Patch5:         audit-python3.patch
 BuildRequires:  audit-devel = %{version}
 BuildRequires:  autoconf >= 2.12
 BuildRequires:  gcc-c++
 BuildRequires:  kernel-headers >= 2.6.30
+BuildRequires:  libldapcpp-devel
 BuildRequires:  libtool
-BuildRequires:  openldap2-devel
 BuildRequires:  pkgconfig
 %if %{with python2}
 BuildRequires:  python2-devel
@@ -58,7 +59,7 @@
 
 %package -n audit
 Summary:        User Space Tools for Kernel Auditing
-License:        LGPL-2.1+
+License:        LGPL-2.1-or-later
 Group:          System/Monitoring
 Requires:       %{_name}-libs = %{version}
 Requires:       coreutils
@@ -71,7 +72,7 @@
 
 %package -n     python2-audit
 Summary:        Python Bindings for libaudit
-License:        LGPL-2.1+
+License:        LGPL-2.1-or-later
 Group:          Development/Languages/Python
 Provides:       audit-libs-python = %{version}
 Obsoletes:      audit-libs-python < %{version}
@@ -82,7 +83,7 @@
 
 %package -n python3-audit
 Summary:        Python3 Bindings for libaudit
-License:        LGPL-2.1+
+License:        LGPL-2.1-or-later
 Group:          Development/Languages/Python
 Provides:       audit-libs-python3 = %{version}
 Obsoletes:      audit-libs-python3 < %{version}
@@ -93,9 +94,8 @@
 
 %package -n audit-audispd-plugins
 Summary:        Default plugins for the audit dispatcher
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          System/Monitoring
-Requires:       openldap2
 
 %description -n audit-audispd-plugins
 The audit-audispd-plugins package contains plugin components for the
@@ -111,6 +111,15 @@
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
+
+%if %{without python2} && %{with python3}
+# Fix python env call in tests if we only have Python3.
+# If both versions are present, python2 bindings are preferred by the tests and
+# unconditionally using /usr/bin/python3 breaks the tests
+# Probably the correct solution is to run the tests twice if both are present.
+sed -i -e 's:#!/usr/bin/env python:#!/usr/bin/python3:g' 
auparse/test/auparse_test.py
+%endif
 
 %build
 autoreconf -fi

++++++ audit.spec ++++++
--- /var/tmp/diff_new_pack.82kG78/_old  2018-03-26 11:52:03.034654585 +0200
+++ /var/tmp/diff_new_pack.82kG78/_new  2018-03-26 11:52:03.038654441 +0200
@@ -17,10 +17,10 @@
 
 
 Name:           audit
-Version:        2.8.1
+Version:        2.8.2
 Release:        0
 Summary:        Linux kernel audit subsystem utilities
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          System/Monitoring
 Url:            http://people.redhat.com/sgrubb/audit/
 Source0:        http://people.redhat.com/sgrubb/audit/%{name}-%{version}.tar.gz
@@ -41,7 +41,7 @@
 
 %package -n libaudit1
 Summary:        Library for interfacing with the kernel audit subsystem
-License:        LGPL-2.1+
+License:        LGPL-2.1-or-later
 Group:          System/Libraries
 Obsoletes:      %{name}-libs < 2.0.4
 Provides:       %{name}-libs = %{version}
@@ -52,7 +52,7 @@
 
 %package -n libauparse0
 Summary:        Library for parsing and interpreting audit events
-License:        LGPL-2.1+
+License:        LGPL-2.1-or-later
 Group:          System/Libraries
 
 %description -n libauparse0
@@ -61,7 +61,7 @@
 
 %package -n audit-devel
 Summary:        Header files for libaudit
-License:        LGPL-2.1+
+License:        LGPL-2.1-or-later
 Group:          Development/Libraries/C and C++
 Requires:       libaudit1 = %{version}
 Requires:       libauparse0 = %{version}

++++++ README-BEFORE-ADDING-PATCHES ++++++
--- /var/tmp/diff_new_pack.82kG78/_old  2018-03-26 11:52:03.082652854 +0200
+++ /var/tmp/diff_new_pack.82kG78/_new  2018-03-26 11:52:03.082652854 +0200
@@ -1,13 +1,16 @@
-All patches need to have a patch description header similar to what is used in 
-SUSE kernel git tree. Patches added without this will be reverted.  Thanks.
+All patches need to have a kernel-style patch description header.
 
-From: Name <email>
+PATCHES LACKING THIS OR NOT CORRECTLY FOLLOWING DESCRIPTION BELOW WILL BE
+REJECTED OR REVERTED
+
+From: Joe Smoe <j...@smoe.com>
 Subject: Summary of fix
-Date: date
-References: bnc#xxxxxx (bugzilla reference if applicable)
-Upstream: yes (provide repo/commit-id in description) or no (provide reason)
-Signed-Off-by: Name <email> (same as From: if committer is patch author)
+Date: Date of fix
+References: Bugzilla reference [bsc#xxxx]
+References: URL of relevant discussion thread, opensuse or upstream ML etc
+Git-commit: Full SHA of upstream commit [if applicable]
+Git-repo: [if different from 
https://github.com/linux-audit/audit-userspace.git]
+Patch-mainline: revision of audit package or explanation if not [i.e v2.8.1 or 
"queued with maintainer" or "never; because ...." ]
+Signed-Off-by: Joe Smoe <j...@smoe.com>
 
 Short paragraph describing problem/fix.
-
-References to upstream repo-path/commit-id if applicable.

++++++ audit-2.8.1.tar.gz -> audit-2.8.2.tar.gz ++++++
++++ 2687 lines of diff (skipped)

++++++ audit-python3.patch ++++++
From: Tomas Chvatal <tchva...@suse.com>
Date: Wed Feb  7 09:26:35 UTC 2018
Subject: Convert tests to run under python3
References: https://github.com/linux-audit/audit-userspace/pull/39
Patch-mainline: no; pending with maintainer

Adjust auparse_test to run with python3 and python2

Index: audit-2.8.1/auparse/test/auparse_test.py
===================================================================
--- audit-2.8.1.orig/auparse/test/auparse_test.py
+++ audit-2.8.1/auparse/test/auparse_test.py
@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 
+from __future__ import print_function
+
 import os
 srcdir = os.getenv('srcdir')
 
@@ -30,29 +32,29 @@ def walk_test(au):
     au.reset()
     while True:
         if not au.first_record():
-            print "Error getting first record"
+            print("Error getting first record")
             sys.exit(1)
 
-        print "event %d has %d records" % (event_cnt, au.get_num_records())
+        print("event %d has %d records" % (event_cnt, au.get_num_records()))
 
         record_cnt = 1
         while True:
-            print "    record %d of type %d(%s) has %d fields" % \
+            print("    record %d of type %d(%s) has %d fields" % \
                   (record_cnt,
                    au.get_type(), audit.audit_msg_type_to_name(au.get_type()),
-                   au.get_num_fields())
-            print "    line=%d file=%s" % (au.get_line_number(), 
au.get_filename())
+                   au.get_num_fields()))
+            print("    line=%d file=%s" % (au.get_line_number(), 
au.get_filename()))
             event = au.get_timestamp()
             if event is None:
-                print "Error getting timestamp - aborting"
+                print("Error getting timestamp - aborting")
                 sys.exit(1)
 
-            print "    event time: %d.%d:%d, host=%s" % (event.sec, 
event.milli, event.serial, none_to_null(event.host))
+            print("    event time: %d.%d:%d, host=%s" % (event.sec, 
event.milli, event.serial, none_to_null(event.host)))
             au.first_field()
             while True:
-                print "        %s=%s (%s)" % (au.get_field_name(), 
au.get_field_str(), au.interpret_field())
+                print("        %s=%s (%s)" % (au.get_field_name(), 
au.get_field_str(), au.interpret_field()))
                 if not au.next_field(): break
-            print
+            print("")
             record_cnt += 1
             if not au.next_record(): break
         event_cnt += 1
@@ -62,25 +64,25 @@ def walk_test(au):
 def light_test(au):
     while True:
         if not au.first_record():
-            print "Error getting first record"
+            print("Error getting first record")
             sys.exit(1)
 
-        print "event has %d records" % (au.get_num_records())
+        print("event has %d records" % (au.get_num_records()))
 
         record_cnt = 1
         while True:
-            print "    record %d of type %d(%s) has %d fields" % \
+            print("    record %d of type %d(%s) has %d fields" % \
                   (record_cnt,
                    au.get_type(), audit.audit_msg_type_to_name(au.get_type()),
-                   au.get_num_fields())
-            print "    line=%d file=%s" % (au.get_line_number(), 
au.get_filename())
+                   au.get_num_fields()))
+            print("    line=%d file=%s" % (au.get_line_number(), 
au.get_filename()))
             event = au.get_timestamp()
             if event is None:
-                print "Error getting timestamp - aborting"
+                print("Error getting timestamp - aborting")
                 sys.exit(1)
 
-            print "    event time: %d.%d:%d, host=%s" % (event.sec, 
event.milli, event.serial, none_to_null(event.host))
-            print
+            print("    event time: %d.%d:%d, host=%s" % (event.sec, 
event.milli, event.serial, none_to_null(event.host)))
+            print("")
             record_cnt += 1
             if not au.next_record(): break
         if not au.parse_next_event(): break
@@ -97,9 +99,9 @@ def simple_search(au, source, where):
     au.search_add_item("auid", "=", val, auparse.AUSEARCH_RULE_CLEAR)
     au.search_set_stop(where)
     if not au.search_next_event():
-        print "Error searching for auid"
+        print("Error searching for auid")
     else:
-        print "Found %s = %s" % (au.get_field_name(), au.get_field_str())
+        print("Found %s = %s" % (au.get_field_name(), au.get_field_str()))
 
 def compound_search(au, how):
     au = auparse.AuParser(auparse.AUSOURCE_FILE, srcdir + "/test.log");
@@ -115,119 +117,119 @@ def compound_search(au, how):
 
     au.search_set_stop(auparse.AUSEARCH_STOP_FIELD)
     if not au.search_next_event():
-        print "Error searching for auid"
+        print("Error searching for auid")
     else:
-        print "Found %s = %s" % (au.get_field_name(), au.get_field_str())
+        print("Found %s = %s" % (au.get_field_name(), au.get_field_str()))
 
 def feed_callback(au, cb_event_type, event_cnt):
     if cb_event_type == auparse.AUPARSE_CB_EVENT_READY:
         if not au.first_record():
-            print "Error getting first record"
+            print("Error getting first record")
             sys.exit(1)
 
-        print "event %d has %d records" % (event_cnt[0], au.get_num_records())
+        print("event %d has %d records" % (event_cnt[0], au.get_num_records()))
 
         record_cnt = 1
         while True:
-            print "    record %d of type %d(%s) has %d fields" % \
+            print("    record %d of type %d(%s) has %d fields" % \
                   (record_cnt,
                    au.get_type(), audit.audit_msg_type_to_name(au.get_type()),
-                   au.get_num_fields())
-            print "    line=%d file=%s" % (au.get_line_number(), 
au.get_filename())
+                   au.get_num_fields()))
+            print("    line=%d file=%s" % (au.get_line_number(), 
au.get_filename()))
             event = au.get_timestamp()
             if event is None:
-                print "Error getting timestamp - aborting"
+                print("Error getting timestamp - aborting")
                 sys.exit(1)
 
-            print "    event time: %d.%d:%d, host=%s" % (event.sec, 
event.milli, event.serial, none_to_null(event.host))
+            print("    event time: %d.%d:%d, host=%s" % (event.sec, 
event.milli, event.serial, none_to_null(event.host)))
             au.first_field()
             while True:
-                print "        %s=%s (%s)" % (au.get_field_name(), 
au.get_field_str(), au.interpret_field())
+                print("        %s=%s (%s)" % (au.get_field_name(), 
au.get_field_str(), au.interpret_field()))
                 if not au.next_field(): break
-            print
+            print("")
             record_cnt += 1
             if not au.next_record(): break
         event_cnt[0] += 1
 
 au = auparse.AuParser(auparse.AUSOURCE_BUFFER_ARRAY, buf)
 
-print "Starting Test 1, iterate..."
+print("Starting Test 1, iterate...")
 while au.parse_next_event():
     if au.find_field("auid"):
-        print "%s=%s" % (au.get_field_name(), au.get_field_str())
-        print "interp auid=%s" % (au.interpret_field())
+        print("%s=%s" % (au.get_field_name(), au.get_field_str()))
+        print("interp auid=%s" % (au.interpret_field()))
     else:
-        print "Error iterating to auid"
-print "Test 1 Done\n"
+        print("Error iterating to auid")
+print("Test 1 Done\n")
 
 # Reset, now lets go to beginning and walk the list manually */
-print "Starting Test 2, walk events, records, and fields..."
+print("Starting Test 2, walk events, records, and fields...")
 au.reset()
 walk_test(au)
-print "Test 2 Done\n"
+print("Test 2 Done\n")
 
 # Reset, now lets go to beginning and walk the list manually */
-print "Starting Test 3, walk events, records of 1 buffer..."
+print("Starting Test 3, walk events, records of 1 buffer...")
 au = auparse.AuParser(auparse.AUSOURCE_BUFFER, buf[1])
 au.reset()
 light_test(au);
-print "Test 3 Done\n"
+print("Test 3 Done\n")
 
-print "Starting Test 4, walk events, records of 1 file..."
+print("Starting Test 4, walk events, records of 1 file...")
 au = auparse.AuParser(auparse.AUSOURCE_FILE, srcdir + "/test.log");
 walk_test(au); 
-print "Test 4 Done\n"
+print("Test 4 Done\n")
 
-print "Starting Test 5, walk events, records of 2 files..."
+print("Starting Test 5, walk events, records of 2 files...")
 au = auparse.AuParser(auparse.AUSOURCE_FILE_ARRAY, files);
 walk_test(au);
-print "Test 5 Done\n"
+print("Test 5 Done\n")
 
-print "Starting Test 6, search..."
+print("Starting Test 6, search...")
 au = auparse.AuParser(auparse.AUSOURCE_BUFFER_ARRAY, buf)
 au.search_add_item("auid", "=", "500", auparse.AUSEARCH_RULE_CLEAR)
 au.search_set_stop(auparse.AUSEARCH_STOP_EVENT)
 if au.search_next_event():
-    print "Error search found something it shouldn't have"
+    print("Error search found something it shouldn't have")
 else:
-    print "auid = 500 not found...which is correct"
+    print("auid = 500 not found...which is correct")
 au.search_clear()
 au = auparse.AuParser(auparse.AUSOURCE_BUFFER_ARRAY, buf)
 #au.search_add_item("auid", "exists", None, auparse.AUSEARCH_RULE_CLEAR)
 au.search_add_item("auid", "exists", "", auparse.AUSEARCH_RULE_CLEAR)
 au.search_set_stop(auparse.AUSEARCH_STOP_EVENT)
 if not au.search_next_event():
-    print "Error searching for existence of auid"
-print "auid exists...which is correct"
-print "Testing BUFFER_ARRAY, stop on field"
+    print("Error searching for existence of auid")
+print("auid exists...which is correct")
+print("Testing BUFFER_ARRAY, stop on field")
 simple_search(au, auparse.AUSOURCE_BUFFER_ARRAY, auparse.AUSEARCH_STOP_FIELD)
-print "Testing BUFFER_ARRAY, stop on record"
+print("Testing BUFFER_ARRAY, stop on record")
 simple_search(au, auparse.AUSOURCE_BUFFER_ARRAY, auparse.AUSEARCH_STOP_RECORD)
-print "Testing BUFFER_ARRAY, stop on event"
+print("Testing BUFFER_ARRAY, stop on event")
 simple_search(au, auparse.AUSOURCE_BUFFER_ARRAY, auparse.AUSEARCH_STOP_EVENT)
-print "Testing test.log, stop on field"
+print("Testing test.log, stop on field")
 simple_search(au, auparse.AUSOURCE_FILE, auparse.AUSEARCH_STOP_FIELD)
-print "Testing test.log, stop on record"
+print("Testing test.log, stop on record")
 simple_search(au, auparse.AUSOURCE_FILE, auparse.AUSEARCH_STOP_RECORD)
-print "Testing test.log, stop on event"
+print("Testing test.log, stop on event")
 simple_search(au, auparse.AUSOURCE_FILE, auparse.AUSEARCH_STOP_EVENT)
-print "Test 6 Done\n"
+print("Test 6 Done\n")
 
-print "Starting Test 7, compound search..."
+print("Starting Test 7, compound search...")
 au = auparse.AuParser(auparse.AUSOURCE_BUFFER_ARRAY, buf)
 compound_search(au, auparse.AUSEARCH_RULE_AND)
 compound_search(au, auparse.AUSEARCH_RULE_OR)
-print "Test 7 Done\n"
+print("Test 7 Done\n")
 
-print "Starting Test 8, regex search..."
+print("Starting Test 8, regex search...")
 au = auparse.AuParser(auparse.AUSOURCE_BUFFER_ARRAY, buf)
-print "Doing regex match...\n"
+print("Doing regex match...\n")
 au = auparse.AuParser(auparse.AUSOURCE_BUFFER_ARRAY, buf)
-print "Test 8 Done\n"
+print("Test 8 Done\n")
 
 # Note: this should match Test 2 exactly
 # Note: this should match Test 2 exactly
-print "Starting Test 9, buffer feed..."
+print("Starting Test 9, buffer feed...")
 au = auparse.AuParser(auparse.AUSOURCE_FEED);
 event_cnt = 1
 au.add_callback(feed_callback, [event_cnt])
@@ -241,10 +243,10 @@ for s in buf:
         beg += chunk_len
         au.feed(data)
 au.flush_feed()
-print "Test 9 Done\n"
+print("Test 9 Done\n")
 
 # Note: this should match Test 4 exactly
-print "Starting Test 10, file feed..."
+print("Starting Test 10, file feed...")
 au = auparse.AuParser(auparse.AUSOURCE_FEED);
 event_cnt = 1
 au.add_callback(feed_callback, [event_cnt])
@@ -254,9 +256,9 @@ while True:
     if not data: break
     au.feed(data)
 au.flush_feed()
-print "Test 10 Done\n"
+print("Test 10 Done\n")
 
-print "Finished non-admin tests\n"
+print("Finished non-admin tests\n")
 
 au = None
 sys.exit(0)

Reply via email to