iproute2: add libcap support, enabled in ip-full
authorAlin Nastac <alin.nastac@gmail.com>
Mon, 1 Jul 2019 08:57:26 +0000 (10:57 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Sun, 18 Aug 2019 12:44:10 +0000 (14:44 +0200)
Preserve optionality of libcap by having configuration script follow the
HAVE_CAP environment variable, used similarly to the HAVE_ELF variable.

Signed-off-by: Alin Nastac <alin.nastac@gmail.com>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [PKG_RELEASE increase/refresh patches]
package/network/utils/iproute2/Makefile
package/network/utils/iproute2/patches/001-devlink-fix-libc-and-kernel-headers-collision.patch
package/network/utils/iproute2/patches/090-tc-add-support-for-action-act_ctinfo.patch
package/network/utils/iproute2/patches/150-keep_libcap_optional.patch [new file with mode: 0644]

index 37a01a597e9d7f44921e70197ed47aa5fbdd7fdc..4db7d75d80becad6cb7a19f9072dd87ffadfc37e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iproute2
 PKG_VERSION:=5.1.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
@@ -47,7 +47,7 @@ $(call Package/iproute2/Default)
  VARIANT:=full
  PROVIDES:=ip
  ALTERNATIVES:=300:/sbin/ip:/usr/libexec/ip-full
- DEPENDS:=+libnl-tiny +libelf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
+ DEPENDS:=+libnl-tiny +libelf +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libcap
 endef
 
 define Package/tc
@@ -55,43 +55,43 @@ $(call Package/iproute2/Default)
   TITLE:=Traffic control utility
   VARIANT:=tc
   PROVIDES:=tc
-  DEPENDS:=+kmod-sched-core +libxtables +libelf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
+  DEPENDS:=+kmod-sched-core +libxtables +libelf +(PACKAGE_devlink||PACKAGE_rdma):libmnl +PACKAGE_ip-full:libcap
 endef
 
 define Package/genl
 $(call Package/iproute2/Default)
   TITLE:=General netlink utility frontend
-  DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf
+  DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf +PACKAGE_ip-full:libcap
 endef
 
 define Package/ip-bridge
 $(call Package/iproute2/Default)
   TITLE:=Bridge configuration utility from iproute2
-  DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf
+  DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf +PACKAGE_ip-full:libcap
 endef
 
 define Package/ss
 $(call Package/iproute2/Default)
   TITLE:=Socket statistics utility
-  DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf
+  DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf +PACKAGE_ip-full:libcap
 endef
 
 define Package/nstat
 $(call Package/iproute2/Default)
   TITLE:=Network statistics utility
-  DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf
+  DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf +PACKAGE_ip-full:libcap
 endef
 
 define Package/devlink
 $(call Package/iproute2/Default)
   TITLE:=Network devlink utility
-  DEPENDS:=+libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf
+  DEPENDS:=+libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf +PACKAGE_ip-full:libcap
 endef
 
 define Package/rdma
 $(call Package/iproute2/Default)
   TITLE:=Network rdma utility
-  DEPENDS:=+libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf
+  DEPENDS:=+libmnl +(PACKAGE_tc||PACKAGE_ip-full):libelf +PACKAGE_ip-full:libcap
 endef
 
 ifeq ($(BUILD_VARIANT),tiny)
@@ -100,6 +100,7 @@ endif
 
 ifeq ($(BUILD_VARIANT),full)
   HAVE_ELF:=y
+  HAVE_CAP:=y
 endif
 
 ifeq ($(BUILD_VARIANT),tc)
@@ -130,6 +131,7 @@ MAKE_FLAGS += \
        IP_CONFIG_TINY=$(IP_CONFIG_TINY) \
        HAVE_ELF=$(HAVE_ELF) \
        HAVE_MNL=$(HAVE_MNL) \
+       HAVE_CAP=$(HAVE_CAP) \
        IPT_LIB_DIR=/usr/lib/iptables \
        XT_LIB_DIR=/usr/lib/iptables \
        FPIC="$(FPIC)"
index e2ddaa25b15c946533a7280cf3e6166dce750c4d..bde2b5780c355c1a00e2080f9d271c860776c314 100644 (file)
@@ -32,8 +32,6 @@ Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
  devlink/devlink.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
-diff --git a/devlink/devlink.c b/devlink/devlink.c
-index 97b9373..5618ba2 100644
 --- a/devlink/devlink.c
 +++ b/devlink/devlink.c
 @@ -18,11 +18,12 @@
index 4e14a09eebbe4daf0eead6b48925956623513ea8..cc74c29c3ca1c6897033add42c8dc089b20d4e97 100644 (file)
@@ -73,8 +73,6 @@ Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com>
  create mode 100644 man/man8/tc-ctinfo.8
  create mode 100644 tc/m_ctinfo.c
 
-diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h
-index 95d0db2a..a6e7e176 100644
 --- a/include/uapi/linux/pkt_cls.h
 +++ b/include/uapi/linux/pkt_cls.h
 @@ -105,6 +105,7 @@ enum tca_id {
@@ -85,9 +83,6 @@ index 95d0db2a..a6e7e176 100644
        __TCA_ID_MAX = 255
  };
  
-diff --git a/include/uapi/linux/tc_act/tc_ctinfo.h b/include/uapi/linux/tc_act/tc_ctinfo.h
-new file mode 100644
-index 00000000..f5f26d95
 --- /dev/null
 +++ b/include/uapi/linux/tc_act/tc_ctinfo.h
 @@ -0,0 +1,29 @@
@@ -120,9 +115,6 @@ index 00000000..f5f26d95
 +#define TCA_CTINFO_MAX (__TCA_CTINFO_MAX - 1)
 +
 +#endif
-diff --git a/man/man8/tc-ctinfo.8 b/man/man8/tc-ctinfo.8
-new file mode 100644
-index 00000000..096590d1
 --- /dev/null
 +++ b/man/man8/tc-ctinfo.8
 @@ -0,0 +1,170 @@
@@ -296,8 +288,6 @@ index 00000000..096590d1
 +.BR tc-mirred (8)
 +.SH AUTHORS
 +ctinfo was written by Kevin Darbyshire-Bryant.
-diff --git a/tc/Makefile b/tc/Makefile
-index 2edaf2c8..ec93a9a1 100644
 --- a/tc/Makefile
 +++ b/tc/Makefile
 @@ -48,6 +48,7 @@ TCMODULES += m_csum.o
@@ -308,9 +298,6 @@ index 2edaf2c8..ec93a9a1 100644
  TCMODULES += m_bpf.o
  TCMODULES += m_tunnel_key.o
  TCMODULES += m_sample.o
-diff --git a/tc/m_ctinfo.c b/tc/m_ctinfo.c
-new file mode 100644
-index 00000000..5e451f87
 --- /dev/null
 +++ b/tc/m_ctinfo.c
 @@ -0,0 +1,268 @@
@@ -582,6 +569,3 @@ index 00000000..5e451f87
 +      .parse_aopt = parse_ctinfo,
 +      .print_aopt = print_ctinfo,
 +};
--- 
-2.20.1 (Apple Git-117)
-
diff --git a/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch b/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch
new file mode 100644 (file)
index 0000000..05336a7
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -313,7 +313,7 @@ EOF
+ check_cap()
+ {
+-      if ${PKG_CONFIG} libcap --exists; then
++      if [ "${HAVE_CAP}" = "y" ] && ${PKG_CONFIG} libcap --exists; then
+               echo "HAVE_CAP:=y" >>$CONFIG
+               echo "yes"