[OpenWrt-Devel] [PATCH v3 1/2] ipvsadm: ipvs administration tool

Mauro Mozzarelli mauro at ezplanet.net
Mon Mar 7 17:43:20 EST 2016


This package contains:
- ipvsadm utility to configure IP VS tables, virtual and real servers

Dependencies:
- ipvs kernel modules configuration

Signed-off-by: Mauro Mozzarelli <mauro at ezplanet.net>

diff --git a/package/network/utils/ipvsadm/Makefile b/package/network/utils/ipvsadm/Makefile
new file mode 100644
index 0000000..1eeca83
--- /dev/null
+++ b/package/network/utils/ipvsadm/Makefile
@@ -0,0 +1,55 @@
+#
+# Copyright (C) 2016 OpenWrt, Mauro Mozzarelli
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# AUTHOR: Mauro Mozzarelli <mauro at ezplanet.net>
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ipvsadm
+PKG_VERSION:=1.28
+PKG_MAINTAINER:=Mauro Mozzarelli <mauro at ezplanet.net>
+PKG_LICENSE:=GPL-1.0
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://www.kernel.org/pub/linux/utils/kernel/ipvsadm/
+PKG_MD5SUM:=b2c8fa302d5a9e9ebd4f60dd34aecd83
+
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/$(PKG_NAME)
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=IP Virtual Server Configuration Manager
+  URL:=http://www.linuxvirtualserver.org
+  DEPENDS:= +kmod-nf-ipvs +libnl-tiny +libpopt
+endef
+
+define Package/$(PKG_NAME)/description
+  IPVS (IP Virtual Server) implements transport-layer load balancing inside the Linux kernel, so called
Layer-4 switching.
+  ipvsadm is used to set up, maintain or inspect the virtual server table in the Linux kernel.
+  The Linux Virtual Server can be used to build scalable network services based on a cluster of two or more
nodes.
+endef
+
+TARGET_CFLAGS += \
+	-I$(STAGING_DIR)/usr/include/libnl-tiny
+
+MAKE_FLAGS += \
+	CFLAGS="$(TARGET_CFLAGS)" \
+	LIBS="-lnl-tiny -lpopt" \
+	CROSS_COMPILE=wrt
+
+define Package/$(PKG_NAME)/install
+	$(INSTALL_DIR) $(1)/sbin
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ipvsadm $(1)/sbin/
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ipvsadm-save $(1)/sbin/
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ipvsadm-restore $(1)/sbin/
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))
diff --git a/package/network/utils/ipvsadm/patches/001-Makefile.patch
b/package/network/utils/ipvsadm/patches/001-Makefile.patch
new file mode 100644
index 0000000..cd146e7
--- /dev/null
+++ b/package/network/utils/ipvsadm/patches/001-Makefile.patch
@@ -0,0 +1,75 @@
+diff -Naur ipvsadm-1.28/libipvs/Makefile ipvsadm-1.28.owrt/libipvs/Makefile
+--- ipvsadm-1.28/libipvs/Makefile	2015-02-09 05:26:39.000000000 +0000
++++ ipvsadm-1.28.owrt/libipvs/Makefile	2016-03-06 13:37:43.689116242 +0000
+@@ -1,4 +1,7 @@
+ # Makefile for libipvs
++#
++#      ChangeLog
++#      M. Mozzarelli  :   Added CROSS_COMPILE parameter (supports wrt)
+
+ CC		= gcc
+ CFLAGS		= -Wall -Wunused -Wstrict-prototypes -g -fPIC
+@@ -23,6 +26,10 @@
+ 			 elif pkg-config --exists libnl-1; \
+ 			 then echo "-DFALLBACK_LIBNL1"; fi; fi)
+
++ifeq "${CROSS_COMPILE}" "wrt"
++	DEFINES += -fPIC -DLIBIPVS_USE_NL -D_GNU_SOURCE
++endif
++
+ .PHONY		= all clean install dist distclean rpm rpms
+ STATIC_LIB	= libipvs.a
+ SHARED_LIB	= libipvs.so
+diff -Naur ipvsadm-1.28/Makefile ipvsadm-1.28.owrt/Makefile
+--- ipvsadm-1.28/Makefile	2015-02-09 05:26:39.000000000 +0000
++++ ipvsadm-1.28.owrt/Makefile	2016-03-06 13:37:33.649230267 +0000
+@@ -10,7 +10,10 @@
+ #      This file:
+ #
+ #      ChangeLog
+-#
++#
++#      M. Mozzarelli  :   Added support for DESTDIR for automated build
++#                     :   Added CROSS_COMPILE parameter (supports wrt)
++#                     :   Amended to use $(MAKE) for compatibility
+ #      Wensong        :   Modified the Makefile and the spec files so
+ #                     :   that rpms can be created with ipvsadm alone
+ #      P.Copeland     :   Modified the Makefile and the spec files so
+@@ -37,6 +40,9 @@
+
+ CC		= gcc
+ INCLUDE		=
++ifneq (0,$(DESTDIR))
++BUILD_ROOT  = $(DESTDIR)
++endif
+ SBIN		= $(BUILD_ROOT)/sbin
+ MANDIR		= usr/man
+ MAN		= $(BUILD_ROOT)/$(MANDIR)/man8
+@@ -77,14 +83,16 @@
+ 		  -DPE_LIST=\"$(PE_LIST)\" $(POPT_DEFINE)
+ DEFINES		+= $(shell if [ ! -f ../ip_vs.h ]; then	\
+ 		     echo "-DHAVE_NET_IP_VS_H"; fi;)
+-
++ifeq "${CROSS_COMPILE}" "wrt"
++	DEFINES += -fPIC -D_GNU_SOURCE
++endif
+
+ .PHONY	= all clean install dist distclean rpm rpms
+
+ all:            libs ipvsadm
+
+ libs:
+-		make -C libipvs
++		$(MAKE) -C libipvs
+
+ ipvsadm:	$(OBJS) $(STATIC_LIBS)
+ 		$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
+@@ -106,7 +114,7 @@
+ 		rm -rf debian/tmp
+ 		find . -name '*.[ao]' -o -name "*~" -o -name "*.orig" \
+ 		  -o -name "*.rej" -o -name core | xargs rm -f
+-		make -C libipvs clean
++		$(MAKE) -C libipvs clean
+
+ distclean:	clean
+
diff --git a/package/network/utils/ipvsadm/patches/002-save-restore.patch
b/package/network/utils/ipvsadm/patches/002-save-restore.patch
new file mode 100644
index 0000000..96fb4cf
--- /dev/null
+++ b/package/network/utils/ipvsadm/patches/002-save-restore.patch
@@ -0,0 +1,36 @@
+diff -Naur ipvsadm-1.28/ipvsadm-restore ipvsadm-1.28.owrt/ipvsadm-restore
+--- ipvsadm-1.28/ipvsadm-restore	2015-02-09 05:26:39.000000000 +0000
++++ ipvsadm-1.28.owrt/ipvsadm-restore	2016-03-06 11:38:29.400884795 +0000
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #      ipvsadm-restore - Restore IPVS rules
+ #
+ #      A very simple wrapper to restore IPVS rules
+@@ -11,6 +11,8 @@
+ #      This file:
+ #
+ #      ChangeLog
++#      M. Mozzarelli       :        Amended to use /bin/sh for compatibility
++#                          :        with embedded systems using busybox
+ #      Horms               :        Clear IPVS rules before adding from STDIN
+ #      Horms               :        Filter out "^#"
+ #
+diff -Naur ipvsadm-1.28/ipvsadm-save ipvsadm-1.28.owrt/ipvsadm-save
+--- ipvsadm-1.28/ipvsadm-save	2015-02-09 05:26:39.000000000 +0000
++++ ipvsadm-1.28.owrt/ipvsadm-save	2016-03-06 11:39:07.369444537 +0000
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #      ipvsadm-save - Save IPVS rules
+ #
+ #      A very simple wrapper to save IPVS rules
+@@ -12,6 +12,8 @@
+ #
+ #      ChangeLog
+ #
++#    M. Mozzarelli          :  Amended to use /bin/sh for compatibility
++#                           :  with embedded systems using busybox
+ #	 Wensong Zhang          :  Added the "-n" option and the help()
+ #
+
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list