[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