Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libnftnl for openSUSE:Factory 
checked in at 2021-11-22 23:03:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libnftnl (Old)
 and      /work/SRC/openSUSE:Factory/.libnftnl.new.1895 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libnftnl"

Mon Nov 22 23:03:43 2021 rev:22 rq:932368 version:1.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libnftnl/libnftnl.changes        2021-06-02 
22:10:25.768128027 +0200
+++ /work/SRC/openSUSE:Factory/.libnftnl.new.1895/libnftnl.changes      
2021-11-22 23:03:45.222018679 +0100
@@ -1,0 +2,7 @@
+Thu Nov 18 21:30:11 UTC 2021 - Jan Engelhardt <[email protected]>
+
+- Update to release 1.2.1
+  * expr: add last match time support
+  * expr: missing netlink attribute in last expression
+
+-------------------------------------------------------------------

Old:
----
  libnftnl-1.2.0.tar.bz2
  libnftnl-1.2.0.tar.bz2.sig

New:
----
  libnftnl-1.2.1.tar.bz2
  libnftnl-1.2.1.tar.bz2.sig

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

Other differences:
------------------
++++++ libnftnl.spec ++++++
--- /var/tmp/diff_new_pack.9fCVyN/_old  2021-11-22 23:03:46.586014103 +0100
+++ /var/tmp/diff_new_pack.9fCVyN/_new  2021-11-22 23:03:46.586014103 +0100
@@ -18,7 +18,7 @@
 
 Name:           libnftnl
 %define lname  libnftnl11
-Version:        1.2.0
+Version:        1.2.1
 Release:        0
 Summary:        Userspace library to access the nftables Netlink interface
 License:        GPL-2.0-or-later

++++++ libnftnl-1.2.0.tar.bz2 -> libnftnl-1.2.1.tar.bz2 ++++++
++++ 1857 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/Make_global.am new/libnftnl-1.2.1/Make_global.am
--- old/libnftnl-1.2.0/Make_global.am   2021-05-25 13:21:06.422665421 +0200
+++ new/libnftnl-1.2.1/Make_global.am   2021-11-18 11:40:21.972881611 +0100
@@ -18,7 +18,7 @@
 # set age to 0.
 # </snippet>
 #
-LIBVERSION=16:0:5
+LIBVERSION=17:0:6
 
 AM_CPPFLAGS = ${regular_CPPFLAGS} -I${top_srcdir}/include ${LIBMNL_CFLAGS} 
${LIBMXML_CFLAGS}
 AM_CFLAGS = ${regular_CFLAGS} ${GCC_FVISIBILITY_HIDDEN}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/build-aux/ar-lib new/libnftnl-1.2.1/build-aux/ar-lib
--- old/libnftnl-1.2.0/build-aux/ar-lib 2021-05-25 13:21:18.354624480 +0200
+++ new/libnftnl-1.2.1/build-aux/ar-lib 2021-11-18 11:40:28.612687249 +0100
@@ -2,9 +2,9 @@
 # Wrapper for Microsoft lib.exe
 
 me=ar-lib
-scriptversion=2012-03-01.08; # UTC
+scriptversion=2019-07-04.01; # UTC
 
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 Free Software Foundation, Inc.
 # Written by Peter Rosin <[email protected]>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@
          MINGW*)
            file_conv=mingw
            ;;
-         CYGWIN*)
+         CYGWIN* | MSYS*)
            file_conv=cygwin
            ;;
          *)
@@ -65,7 +65,7 @@
        mingw)
          file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
          ;;
-       cygwin)
+       cygwin | msys)
          file=`cygpath -m "$file" || echo "$file"`
          ;;
        wine)
@@ -224,10 +224,11 @@
       esac
     done
   else
-    $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
-    do
-      $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
-    done
+    $AR -NOLOGO -LIST "$archive" | tr -d '\r' | sed -e 's/\\/\\\\/g' \
+      | while read member
+        do
+          $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
+        done
   fi
 
 elif test -n "$quick$replace"; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/build-aux/compile new/libnftnl-1.2.1/build-aux/compile
--- old/libnftnl-1.2.0/build-aux/compile        2021-05-25 13:21:18.370624425 
+0200
+++ new/libnftnl-1.2.1/build-aux/compile        2021-11-18 11:40:28.612687249 
+0100
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 # Written by Tom Tromey <[email protected]>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@
          MINGW*)
            file_conv=mingw
            ;;
-         CYGWIN*)
+         CYGWIN* | MSYS*)
            file_conv=cygwin
            ;;
          *)
@@ -67,7 +67,7 @@
        mingw/*)
          file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
          ;;
-       cygwin/*)
+       cygwin/* | msys/*)
          file=`cygpath -m "$file" || echo "$file"`
          ;;
        wine/*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/build-aux/missing new/libnftnl-1.2.1/build-aux/missing
--- old/libnftnl-1.2.0/build-aux/missing        2021-05-25 13:21:18.430624221 
+0200
+++ new/libnftnl-1.2.1/build-aux/missing        2021-11-18 11:40:28.622686957 
+0100
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <[email protected]>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/build-aux/test-driver 
new/libnftnl-1.2.1/build-aux/test-driver
--- old/libnftnl-1.2.0/build-aux/test-driver    2021-05-25 13:21:18.858622764 
+0200
+++ new/libnftnl-1.2.1/build-aux/test-driver    2021-11-18 11:40:28.922678185 
+0100
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -42,11 +42,13 @@
 {
   cat <<END
 Usage:
-  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
-              [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--]
+  test-driver --test-name NAME --log-file PATH --trs-file PATH
+              [--expect-failure {yes|no}] [--color-tests {yes|no}]
+              [--enable-hard-errors {yes|no}] [--]
               TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+
 The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+See the GNU Automake documentation for information.
 END
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/configure.ac new/libnftnl-1.2.1/configure.ac
--- old/libnftnl-1.2.0/configure.ac     2021-05-25 13:21:06.422665421 +0200
+++ new/libnftnl-1.2.1/configure.ac     2021-11-18 11:40:21.972881611 +0100
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to create configure.
 
-AC_INIT([libnftnl], [1.2.0])
+AC_INIT([libnftnl], [1.2.1])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CANONICAL_HOST
 AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/include/libnftnl/expr.h 
new/libnftnl-1.2.1/include/libnftnl/expr.h
--- old/libnftnl-1.2.0/include/libnftnl/expr.h  2021-05-25 13:21:06.446665338 
+0200
+++ new/libnftnl-1.2.1/include/libnftnl/expr.h  2021-11-18 11:40:21.972881611 
+0100
@@ -311,6 +311,11 @@
        NFTNL_EXPR_SYNPROXY_FLAGS,
 };
 
+enum {
+       NFTNL_EXPR_LAST_MSECS = NFTNL_EXPR_BASE,
+       NFTNL_EXPR_LAST_SET,
+};
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/include/libnftnl/set.h 
new/libnftnl-1.2.1/include/libnftnl/set.h
--- old/libnftnl-1.2.0/include/libnftnl/set.h   2021-05-25 13:21:06.446665338 
+0200
+++ new/libnftnl-1.2.1/include/libnftnl/set.h   2021-11-18 11:40:21.972881611 
+0100
@@ -144,6 +144,8 @@
 #define nftnl_set_elem_nlmsg_build_hdr nftnl_nlmsg_build_hdr
 void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct 
nftnl_set *s);
 void nftnl_set_elem_nlmsg_build_payload(struct nlmsghdr *nlh, struct 
nftnl_set_elem *e);
+struct nlattr *nftnl_set_elem_nlmsg_build(struct nlmsghdr *nlh,
+                                         struct nftnl_set_elem *elem, int i);
 
 int nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
                       const char *data, struct nftnl_parse_err *err);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/include/linux/netfilter/nf_tables.h 
new/libnftnl-1.2.1/include/linux/netfilter/nf_tables.h
--- old/libnftnl-1.2.0/include/linux/netfilter/nf_tables.h      2021-05-25 
13:21:06.454665311 +0200
+++ new/libnftnl-1.2.1/include/linux/netfilter/nf_tables.h      2021-11-18 
11:40:21.972881611 +0100
@@ -133,7 +133,7 @@
  * @NFTA_LIST_ELEM: list element (NLA_NESTED)
  */
 enum nft_list_attributes {
-       NFTA_LIST_UNPEC,
+       NFTA_LIST_UNSPEC,
        NFTA_LIST_ELEM,
        __NFTA_LIST_MAX
 };
@@ -164,7 +164,10 @@
  */
 enum nft_table_flags {
        NFT_TABLE_F_DORMANT     = 0x1,
+       NFT_TABLE_F_OWNER       = 0x2,
 };
+#define NFT_TABLE_F_MASK       (NFT_TABLE_F_DORMANT | \
+                                NFT_TABLE_F_OWNER)
 
 /**
  * enum nft_table_attributes - nf_tables table netlink attributes
@@ -172,6 +175,8 @@
  * @NFTA_TABLE_NAME: name of the table (NLA_STRING)
  * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32)
  * @NFTA_TABLE_USE: number of chains in this table (NLA_U32)
+ * @NFTA_TABLE_USERDATA: user data (NLA_BINARY)
+ * @NFTA_TABLE_OWNER: owner of this table through netlink portID (NLA_U32)
  */
 enum nft_table_attributes {
        NFTA_TABLE_UNSPEC,
@@ -186,6 +191,15 @@
 };
 #define NFTA_TABLE_MAX         (__NFTA_TABLE_MAX - 1)
 
+enum nft_chain_flags {
+       NFT_CHAIN_BASE          = (1 << 0),
+       NFT_CHAIN_HW_OFFLOAD    = (1 << 1),
+       NFT_CHAIN_BINDING       = (1 << 2),
+};
+#define NFT_CHAIN_FLAGS                (NFT_CHAIN_BASE         | \
+                                NFT_CHAIN_HW_OFFLOAD   | \
+                                NFT_CHAIN_BINDING)
+
 /**
  * enum nft_chain_attributes - nf_tables chain netlink attributes
  *
@@ -198,6 +212,7 @@
  * @NFTA_CHAIN_TYPE: type name of the string (NLA_NUL_STRING)
  * @NFTA_CHAIN_COUNTERS: counter specification of the chain (NLA_NESTED: 
nft_counter_attributes)
  * @NFTA_CHAIN_FLAGS: chain flags
+ * @NFTA_CHAIN_ID: uniquely identifies a chain in a transaction (NLA_U32)
  * @NFTA_CHAIN_USERDATA: user data (NLA_BINARY)
  */
 enum nft_chain_attributes {
@@ -243,6 +258,7 @@
        NFTA_RULE_PAD,
        NFTA_RULE_ID,
        NFTA_RULE_POSITION_ID,
+       NFTA_RULE_CHAIN_ID,
        __NFTA_RULE_MAX
 };
 #define NFTA_RULE_MAX          (__NFTA_RULE_MAX - 1)
@@ -281,6 +297,8 @@
  * @NFT_SET_TIMEOUT: set uses timeouts
  * @NFT_SET_EVAL: set can be updated from the evaluation path
  * @NFT_SET_OBJECT: set contains stateful objects
+ * @NFT_SET_CONCAT: set contains a concatenation
+ * @NFT_SET_EXPR: set contains expressions
  */
 enum nft_set_flags {
        NFT_SET_ANONYMOUS               = 0x1,
@@ -290,6 +308,8 @@
        NFT_SET_TIMEOUT                 = 0x10,
        NFT_SET_EVAL                    = 0x20,
        NFT_SET_OBJECT                  = 0x40,
+       NFT_SET_CONCAT                  = 0x80,
+       NFT_SET_EXPR                    = 0x100,
 };
 
 /**
@@ -348,6 +368,7 @@
  * @NFTA_SET_OBJ_TYPE: stateful object type (NLA_U32: NFT_OBJECT_*)
  * @NFTA_SET_HANDLE: set handle (NLA_U64)
  * @NFTA_SET_EXPR: set expression (NLA_NESTED: nft_expr_attributes)
+ * @NFTA_SET_EXPRESSIONS: list of expressions (NLA_NESTED: nft_list_attributes)
  */
 enum nft_set_attributes {
        NFTA_SET_UNSPEC,
@@ -377,9 +398,11 @@
  * enum nft_set_elem_flags - nf_tables set element flags
  *
  * @NFT_SET_ELEM_INTERVAL_END: element ends the previous interval
+ * @NFT_SET_ELEM_CATCHALL: special catch-all element
  */
 enum nft_set_elem_flags {
        NFT_SET_ELEM_INTERVAL_END       = 0x1,
+       NFT_SET_ELEM_CATCHALL           = 0x2,
 };
 
 /**
@@ -394,6 +417,7 @@
  * @NFTA_SET_ELEM_EXPR: expression (NLA_NESTED: nft_expr_attributes)
  * @NFTA_SET_ELEM_OBJREF: stateful object reference (NLA_STRING)
  * @NFTA_SET_ELEM_KEY_END: closing key value (NLA_NESTED: nft_data)
+ * @NFTA_SET_ELEM_EXPRESSIONS: list of expressions (NLA_NESTED: 
nft_list_attributes)
  */
 enum nft_set_elem_attributes {
        NFTA_SET_ELEM_UNSPEC,
@@ -473,6 +497,7 @@
  *
  * @NFTA_VERDICT_CODE: nf_tables verdict (NLA_U32: enum nft_verdicts)
  * @NFTA_VERDICT_CHAIN: jump target chain name (NLA_STRING)
+ * @NFTA_VERDICT_CHAIN_ID: jump target chain ID (NLA_U32)
  */
 enum nft_verdict_attributes {
        NFTA_VERDICT_UNSPEC,
@@ -690,6 +715,7 @@
 
 enum nft_dynset_flags {
        NFT_DYNSET_F_INV        = (1 << 0),
+       NFT_DYNSET_F_EXPR       = (1 << 1),
 };
 
 /**
@@ -703,6 +729,7 @@
  * @NFTA_DYNSET_TIMEOUT: timeout value for the new element (NLA_U64)
  * @NFTA_DYNSET_EXPR: expression (NLA_NESTED: nft_expr_attributes)
  * @NFTA_DYNSET_FLAGS: flags (NLA_U32)
+ * @NFTA_DYNSET_EXPRESSIONS: list of expressions (NLA_NESTED: 
nft_list_attributes)
  */
 enum nft_dynset_attributes {
        NFTA_DYNSET_UNSPEC,
@@ -726,11 +753,13 @@
  * @NFT_PAYLOAD_LL_HEADER: link layer header
  * @NFT_PAYLOAD_NETWORK_HEADER: network header
  * @NFT_PAYLOAD_TRANSPORT_HEADER: transport header
+ * @NFT_PAYLOAD_INNER_HEADER: inner header
  */
 enum nft_payload_bases {
        NFT_PAYLOAD_LL_HEADER,
        NFT_PAYLOAD_NETWORK_HEADER,
        NFT_PAYLOAD_TRANSPORT_HEADER,
+       NFT_PAYLOAD_INNER_HEADER,
 };
 
 /**
@@ -738,10 +767,12 @@
  *
  * @NFT_PAYLOAD_CSUM_NONE: no checksumming
  * @NFT_PAYLOAD_CSUM_INET: internet checksum (RFC 791)
+ * @NFT_PAYLOAD_CSUM_SCTP: CRC-32c, for use in SCTP header (RFC 3309)
  */
 enum nft_payload_csum_types {
        NFT_PAYLOAD_CSUM_NONE,
        NFT_PAYLOAD_CSUM_INET,
+       NFT_PAYLOAD_CSUM_SCTP,
 };
 
 enum nft_payload_csum_flags {
@@ -784,11 +815,13 @@
  * @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers
  * @NFT_EXTHDR_OP_TCP: match against tcp options
  * @NFT_EXTHDR_OP_IPV4: match against ipv4 options
+ * @NFT_EXTHDR_OP_SCTP: match against sctp chunks
  */
 enum nft_exthdr_op {
        NFT_EXTHDR_OP_IPV6,
        NFT_EXTHDR_OP_TCPOPT,
        NFT_EXTHDR_OP_IPV4,
+       NFT_EXTHDR_OP_SCTP,
        __NFT_EXTHDR_OP_MAX
 };
 #define NFT_EXTHDR_OP_MAX      (__NFT_EXTHDR_OP_MAX - 1)
@@ -987,6 +1020,7 @@
  *
  * @NFTA_SOCKET_KEY: socket key to match
  * @NFTA_SOCKET_DREG: destination register
+ * @NFTA_SOCKET_LEVEL: cgroups2 ancestor level (only for cgroupsv2)
  */
 enum nft_socket_attributes {
        NFTA_SOCKET_UNSPEC,
@@ -1003,6 +1037,7 @@
  * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option
  * @NFT_SOCKET_MARK: Value of the socket mark
  * @NFT_SOCKET_WILDCARD: Whether the socket is zero-bound (e.g. 0.0.0.0 or ::0)
+ * @NFT_SOCKET_CGROUPV2: Match on cgroups version 2
  */
 enum nft_socket_keys {
        NFT_SOCKET_TRANSPARENT,
@@ -1163,6 +1198,21 @@
 #define NFTA_COUNTER_MAX       (__NFTA_COUNTER_MAX - 1)
 
 /**
+ * enum nft_last_attributes - nf_tables last expression netlink attributes
+ *
+ * @NFTA_LAST_SET: last update has been set, zero means never updated (NLA_U32)
+ * @NFTA_LAST_MSECS: milliseconds since last update (NLA_U64)
+ */
+enum nft_last_attributes {
+       NFTA_LAST_UNSPEC,
+       NFTA_LAST_SET,
+       NFTA_LAST_MSECS,
+       NFTA_LAST_PAD,
+       __NFTA_LAST_MAX
+};
+#define NFTA_LAST_MAX  (__NFTA_LAST_MAX - 1)
+
+/**
  * enum nft_log_attributes - nf_tables log expression netlink attributes
  *
  * @NFTA_LOG_GROUP: netlink group to send messages to (NLA_U32)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/include/set_elem.h new/libnftnl-1.2.1/include/set_elem.h
--- old/libnftnl-1.2.0/include/set_elem.h       2021-05-25 13:21:06.454665311 
+0200
+++ new/libnftnl-1.2.1/include/set_elem.h       2021-11-18 11:40:21.972881611 
+0100
@@ -21,7 +21,6 @@
 };
 
 int nftnl_set_elem_snprintf_default(char *buf, size_t size,
-                                   const struct nftnl_set_elem *e,
-                                   enum nft_data_types dtype);
+                                   const struct nftnl_set_elem *e);
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/m4/libtool.m4 new/libnftnl-1.2.1/m4/libtool.m4
--- old/libnftnl-1.2.0/m4/libtool.m4    2021-05-25 13:21:12.934643001 +0200
+++ new/libnftnl-1.2.1/m4/libtool.m4    2021-11-18 11:40:26.122760079 +0100
@@ -1041,8 +1041,8 @@
 _LT_EOF
       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
       echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
       cat > conftest.c << _LT_EOF
@@ -1071,11 +1071,11 @@
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-       10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+       10.0,*86*-darwin8*|10.0,*-darwin[[912]]*)
          _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
        10.[[012]][[,.]]*)
          _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined 
${wl}suppress' ;;
-       10.*)
+       10.*|11.*)
          _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
@@ -1492,7 +1492,7 @@
 m4_defun([_LT_PROG_AR],
 [AC_CHECK_TOOLS(AR, [ar], false)
 : ${AR=ar}
-: ${AR_FLAGS=cru}
+: ${AR_FLAGS=cr}
 _LT_DECL([], [AR], [1], [The archiver])
 _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
 
@@ -4704,6 +4704,12 @@
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
         ;;
+      # flang / f18. f95 an alias for gfortran or flang on Debian
+      flang* | f18* | f95*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
       icc* | ifort*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/src/Makefile.am new/libnftnl-1.2.1/src/Makefile.am
--- old/libnftnl-1.2.0/src/Makefile.am  2021-05-25 13:21:06.458665296 +0200
+++ new/libnftnl-1.2.1/src/Makefile.am  2021-11-18 11:40:21.982881317 +0100
@@ -34,6 +34,7 @@
                      expr/flow_offload.c \
                      expr/fib.c        \
                      expr/fwd.c        \
+                     expr/last.c       \
                      expr/limit.c      \
                      expr/log.c        \
                      expr/lookup.c     \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/src/expr/last.c new/libnftnl-1.2.1/src/expr/last.c
--- old/libnftnl-1.2.0/src/expr/last.c  1970-01-01 01:00:00.000000000 +0100
+++ new/libnftnl-1.2.1/src/expr/last.c  2021-11-18 11:40:21.982881317 +0100
@@ -0,0 +1,138 @@
+/*
+ * (C) 2016 by Pablo Neira Ayuso <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <arpa/inet.h>
+#include <errno.h>
+#include <inttypes.h>
+
+#include <linux/netfilter/nf_tables.h>
+
+#include "internal.h"
+#include <libmnl/libmnl.h>
+#include <libnftnl/expr.h>
+#include <libnftnl/rule.h>
+
+struct nftnl_expr_last {
+       uint64_t        msecs;
+       uint32_t        set;
+};
+
+static int nftnl_expr_last_set(struct nftnl_expr *e, uint16_t type,
+                               const void *data, uint32_t data_len)
+{
+       struct nftnl_expr_last *last = nftnl_expr_data(e);
+
+       switch (type) {
+       case NFTNL_EXPR_LAST_MSECS:
+               memcpy(&last->msecs, data, sizeof(last->msecs));
+               break;
+       case NFTNL_EXPR_LAST_SET:
+               memcpy(&last->set, data, sizeof(last->set));
+               break;
+       default:
+               return -1;
+       }
+       return 0;
+}
+
+static const void *nftnl_expr_last_get(const struct nftnl_expr *e,
+                                       uint16_t type, uint32_t *data_len)
+{
+       struct nftnl_expr_last *last = nftnl_expr_data(e);
+
+       switch (type) {
+       case NFTNL_EXPR_LAST_MSECS:
+               *data_len = sizeof(last->msecs);
+               return &last->msecs;
+       case NFTNL_EXPR_LAST_SET:
+               *data_len = sizeof(last->set);
+               return &last->set;
+       }
+       return NULL;
+}
+
+static int nftnl_expr_last_cb(const struct nlattr *attr, void *data)
+{
+       int type = mnl_attr_get_type(attr);
+       const struct nlattr **tb = data;
+
+       if (mnl_attr_type_valid(attr, NFTA_LAST_MAX) < 0)
+               return MNL_CB_OK;
+
+       switch(type) {
+       case NFTA_LAST_MSECS:
+               if (mnl_attr_validate(attr, MNL_TYPE_U64) < 0)
+                       abi_breakage();
+               break;
+       case NFTA_LAST_SET:
+               if (mnl_attr_validate(attr, MNL_TYPE_U32) < 0)
+                       abi_breakage();
+               break;
+       }
+
+       tb[type] = attr;
+       return MNL_CB_OK;
+}
+
+static void
+nftnl_expr_last_build(struct nlmsghdr *nlh, const struct nftnl_expr *e)
+{
+       struct nftnl_expr_last *last = nftnl_expr_data(e);
+
+       if (e->flags & (1 << NFTNL_EXPR_LAST_MSECS))
+               mnl_attr_put_u64(nlh, NFTA_LAST_MSECS, htobe64(last->msecs));
+       if (e->flags & (1 << NFTNL_EXPR_LAST_SET))
+               mnl_attr_put_u32(nlh, NFTA_LAST_SET, htonl(last->set));
+}
+
+static int
+nftnl_expr_last_parse(struct nftnl_expr *e, struct nlattr *attr)
+{
+       struct nftnl_expr_last *last = nftnl_expr_data(e);
+       struct nlattr *tb[NFTA_LAST_MAX + 1] = {};
+
+       if (mnl_attr_parse_nested(attr, nftnl_expr_last_cb, tb) < 0)
+               return -1;
+
+       if (tb[NFTA_LAST_MSECS]) {
+               last->msecs = be64toh(mnl_attr_get_u64(tb[NFTA_LAST_MSECS]));
+               e->flags |= (1 << NFTNL_EXPR_LAST_MSECS);
+       }
+       if (tb[NFTA_LAST_SET]) {
+               last->set = ntohl(mnl_attr_get_u32(tb[NFTA_LAST_SET]));
+               e->flags |= (1 << NFTNL_EXPR_LAST_SET);
+       }
+
+       return 0;
+}
+
+static int nftnl_expr_last_snprintf(char *buf, size_t len,
+                                      uint32_t flags,
+                                      const struct nftnl_expr *e)
+{
+       struct nftnl_expr_last *last = nftnl_expr_data(e);
+
+       if (!last->set)
+               return snprintf(buf, len, "never ");
+
+       return snprintf(buf, len, "%"PRIu64" ", last->msecs);
+}
+
+struct expr_ops expr_ops_last = {
+       .name           = "last",
+       .alloc_len      = sizeof(struct nftnl_expr_last),
+       .max_attr       = NFTA_LAST_MAX,
+       .set            = nftnl_expr_last_set,
+       .get            = nftnl_expr_last_get,
+       .parse          = nftnl_expr_last_parse,
+       .build          = nftnl_expr_last_build,
+       .snprintf       = nftnl_expr_last_snprintf,
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/src/expr/payload.c new/libnftnl-1.2.1/src/expr/payload.c
--- old/libnftnl-1.2.0/src/expr/payload.c       2021-05-25 13:21:06.474665241 
+0200
+++ new/libnftnl-1.2.1/src/expr/payload.c       2021-11-18 11:40:21.982881317 
+0100
@@ -203,15 +203,16 @@
        return 0;
 }
 
-static const char *base2str_array[NFT_PAYLOAD_TRANSPORT_HEADER+1] = {
+static const char *base2str_array[NFT_PAYLOAD_INNER_HEADER + 1] = {
        [NFT_PAYLOAD_LL_HEADER]         = "link",
        [NFT_PAYLOAD_NETWORK_HEADER]    = "network",
        [NFT_PAYLOAD_TRANSPORT_HEADER]  = "transport",
+       [NFT_PAYLOAD_INNER_HEADER]      = "inner",
 };
 
 static const char *base2str(enum nft_payload_bases base)
 {
-       if (base > NFT_PAYLOAD_TRANSPORT_HEADER)
+       if (base > NFT_PAYLOAD_INNER_HEADER)
                return "unknown";
 
        return base2str_array[base];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/src/expr_ops.c new/libnftnl-1.2.1/src/expr_ops.c
--- old/libnftnl-1.2.0/src/expr_ops.c   2021-05-25 13:21:06.478665228 +0200
+++ new/libnftnl-1.2.1/src/expr_ops.c   2021-11-18 11:40:21.982881317 +0100
@@ -14,6 +14,7 @@
 extern struct expr_ops expr_ops_exthdr;
 extern struct expr_ops expr_ops_fwd;
 extern struct expr_ops expr_ops_immediate;
+extern struct expr_ops expr_ops_last;
 extern struct expr_ops expr_ops_limit;
 extern struct expr_ops expr_ops_log;
 extern struct expr_ops expr_ops_lookup;
@@ -57,6 +58,7 @@
        &expr_ops_exthdr,
        &expr_ops_fwd,
        &expr_ops_immediate,
+       &expr_ops_last,
        &expr_ops_limit,
        &expr_ops_log,
        &expr_ops_lookup,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/src/libnftnl.map new/libnftnl-1.2.1/src/libnftnl.map
--- old/libnftnl-1.2.0/src/libnftnl.map 2021-05-25 13:21:06.478665228 +0200
+++ new/libnftnl-1.2.1/src/libnftnl.map 2021-11-18 11:40:21.982881317 +0100
@@ -383,3 +383,7 @@
   nftnl_expr_add_expr;
   nftnl_expr_expr_foreach;
 } LIBNFTNL_15;
+
+LIBNFTNL_17 {
+  nftnl_set_elem_nlmsg_build;
+} LIBNFTNL_16;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/src/set.c new/libnftnl-1.2.1/src/set.c
--- old/libnftnl-1.2.0/src/set.c        2021-05-25 13:21:06.482665214 +0200
+++ new/libnftnl-1.2.1/src/set.c        2021-11-18 11:40:21.982881317 +0100
@@ -829,7 +829,7 @@
                SNPRINTF_BUFFER_SIZE(ret, remain, offset);
 
                ret = nftnl_set_elem_snprintf_default(buf + offset, remain,
-                                                     elem, s->data_type);
+                                                     elem);
                SNPRINTF_BUFFER_SIZE(ret, remain, offset);
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libnftnl-1.2.0/src/set_elem.c new/libnftnl-1.2.1/src/set_elem.c
--- old/libnftnl-1.2.0/src/set_elem.c   2021-05-25 13:21:06.486665200 +0200
+++ new/libnftnl-1.2.1/src/set_elem.c   2021-11-18 11:40:21.982881317 +0100
@@ -388,8 +388,9 @@
                mnl_attr_put_strz(nlh, NFTA_SET_ELEM_LIST_TABLE, s->table);
 }
 
-static struct nlattr *nftnl_set_elem_build(struct nlmsghdr *nlh,
-                                             struct nftnl_set_elem *elem, int 
i)
+EXPORT_SYMBOL(nftnl_set_elem_nlmsg_build);
+struct nlattr *nftnl_set_elem_nlmsg_build(struct nlmsghdr *nlh,
+                                         struct nftnl_set_elem *elem, int i)
 {
        struct nlattr *nest2;
 
@@ -414,7 +415,7 @@
 
        nest1 = mnl_attr_nest_start(nlh, NFTA_SET_ELEM_LIST_ELEMENTS);
        list_for_each_entry(elem, &s->element_list, head)
-               nftnl_set_elem_build(nlh, elem, ++i);
+               nftnl_set_elem_nlmsg_build(nlh, elem, ++i);
 
        mnl_attr_nest_end(nlh, nest1);
 }
@@ -699,11 +700,9 @@
 }
 
 int nftnl_set_elem_snprintf_default(char *buf, size_t remain,
-                                   const struct nftnl_set_elem *e,
-                                   enum nft_data_types dtype)
+                                   const struct nftnl_set_elem *e)
 {
-       int dregtype = (dtype == NFT_DATA_VERDICT) ? DATA_VERDICT : DATA_VALUE;
-       int ret, offset = 0, i;
+       int ret, dregtype = DATA_VALUE, offset = 0, i;
 
        ret = snprintf(buf, remain, "element ");
        SNPRINTF_BUFFER_SIZE(ret, remain, offset);
@@ -724,6 +723,9 @@
        ret = snprintf(buf + offset, remain, " : ");
        SNPRINTF_BUFFER_SIZE(ret, remain, offset);
 
+       if (e->flags & (1 << NFTNL_SET_ELEM_VERDICT))
+               dregtype = DATA_VERDICT;
+
        ret = nftnl_data_reg_snprintf(buf + offset, remain, &e->data,
                                      DATA_F_NOPFX, dregtype);
        SNPRINTF_BUFFER_SIZE(ret, remain, offset);
@@ -760,9 +762,9 @@
        if (type != NFTNL_OUTPUT_DEFAULT)
                return -1;
 
-       ret = nftnl_set_elem_snprintf_default(buf + offset, remain, e,
-                                             NFT_DATA_VALUE);
+       ret = nftnl_set_elem_snprintf_default(buf + offset, remain, e);
        SNPRINTF_BUFFER_SIZE(ret, remain, offset);
+
        return offset;
 }
 
@@ -898,7 +900,7 @@
        nest1 = mnl_attr_nest_start(nlh, NFTA_SET_ELEM_LIST_ELEMENTS);
        elem = nftnl_set_elems_iter_next(iter);
        while (elem != NULL) {
-               nest2 = nftnl_set_elem_build(nlh, elem, ++i);
+               nest2 = nftnl_set_elem_nlmsg_build(nlh, elem, ++i);
                if (nftnl_attr_nest_overflow(nlh, nest1, nest2)) {
                        /* Go back to previous not to miss this element */
                        iter->cur = list_entry(iter->cur->head.prev,

Reply via email to