Browse Source

net/ipvsadm: add Virtual Server Administration Tool

Add the ipvsadm command line tool to set up, maintain or inspect the virtual
server table in the Linux kernel.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
lilik-openwrt-22.03
Florian Eckert 6 years ago
committed by Yousong Zhou
parent
commit
79c5c78115
3 changed files with 149 additions and 0 deletions
  1. +61
    -0
      net/ipvsadm/Makefile
  2. +54
    -0
      net/ipvsadm/patches/001-Makefile.patch
  3. +34
    -0
      net/ipvsadm/patches/002-save-restore.patch

+ 61
- 0
net/ipvsadm/Makefile View File

@ -0,0 +1,61 @@
#
# Copyright (C) 2016-2017 Mauro Mozzarelli
#
# This is free software, licensed under the GNU General Public License
# See /LICENSE for more information.
#
# AUTHOR: Mauro Mozzarelli <mauro@ezplanet.org>
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ipvsadm
PKG_VERSION:=1.29
PKG_MAINTAINER:=Mauro Mozzarelli <mauro@ezplanet.org>, \
Florian Eckert <fe@dev.tdt.de>
PKG_LICENSE:=GPL-2.0+
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://www.kernel.org/pub/linux/utils/kernel/ipvsadm/
PKG_HASH:=c3de4a21d90a02c621f0c72ee36a7aa27374b6f29fd4178f33fbf71b4c66c149
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/ipvsadm
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/ipvsadm/description
IPVS (IP Virtual Server) implements transport-layer load balancing
inside the Linux kernel, so called Layer-4 switching. The command line tool
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 += \
-D_GNU_SOURCE \
-I$(STAGING_DIR)/usr/include/libnl-tiny
define Build/Compile
CFLAGS="$(TARGET_CFLAGS)" \
$(MAKE) -C $(PKG_BUILD_DIR) \
CC="$(TARGET_CC)" \
LIBS="$(TARGET_LDFLAGS) -lnl-tiny -lpopt"
endef
define Package/ipvsadm/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,ipvsadm))

+ 54
- 0
net/ipvsadm/patches/001-Makefile.patch View File

@ -0,0 +1,54 @@
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@ ARCH = $(shell uname -m)
RPMSOURCEDIR = $(shell rpm --eval '%_sourcedir')
RPMSPECDIR = $(shell rpm --eval '%_specdir')
-CC = gcc
+BUILD_ROOT = $(DESTDIR)
INCLUDE =
SBIN = $(BUILD_ROOT)/sbin
MANDIR = usr/man
@@ -46,9 +46,9 @@ INSTALL = install
STATIC_LIBS = libipvs/libipvs.a
ifeq "${ARCH}" "sparc64"
- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
+ CFLAGS += -Wall -Wunused -Wstrict-prototypes -g -m64 -pipe -mcpu=ultrasparc -mcmodel=medlow
else
- CFLAGS = -Wall -Wunused -Wstrict-prototypes -g
+ CFLAGS += -Wall -Wunused -Wstrict-prototypes -g
endif
@@ -83,8 +83,9 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h
all: libs ipvsadm
+$(STATIC_LIBS): libs
libs:
- make -C libipvs
+ $(MAKE) -C libipvs
ipvsadm: $(OBJS) $(STATIC_LIBS)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
@@ -106,7 +107,7 @@ clean:
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
--- a/libipvs/Makefile
+++ b/libipvs/Makefile
@@ -1,7 +1,6 @@
# Makefile for libipvs
-CC = gcc
-CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
+CFLAGS += -Wall -Wunused -Wstrict-prototypes -g -fPIC
ifneq (0,$(HAVE_NL))
CFLAGS += -DLIBIPVS_USE_NL
CFLAGS += $(shell \

+ 34
- 0
net/ipvsadm/patches/002-save-restore.patch View File

@ -0,0 +1,34 @@
--- a/ipvsadm-restore
+++ b/ipvsadm-restore
@@ -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 "^#"
#
--- a/ipvsadm-save
+++ b/ipvsadm-save
@@ -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()
#

Loading…
Cancel
Save