mirror of
https://github.com/thead-yocto-mirror/meta-openembedded
synced 2026-09-08 07:05:24 +02:00
IpPool is a userspace daemon for managing one or more pools of IP addresses. It was developed as part of the OpenL2TP project but has since been repackaged so that it may be used independently of OpenL2TP. Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
106 lines
3.4 KiB
BlitzBasic
106 lines
3.4 KiB
BlitzBasic
SUMMARY = "An IP address pool manager"
|
|
DESCRIPTION = "IpPool is implemented as a separate server daemon \
|
|
to allow any application to use its address pools. This makes it possible \
|
|
to define address pools that are shared by PPP, L2TP, PPTP etc. It may be \
|
|
useful in some VPN server setups. IpPool comes with a command line \
|
|
management application, ippoolconfig to manage and query address pool \
|
|
status. A pppd plugin is supplied which allows pppd to request IP \
|
|
addresses from ippoold. \
|
|
"
|
|
HOMEPAGE = "http://www.openl2tp.org/"
|
|
SECTION = "console/network"
|
|
LICENSE = "GPLv2+"
|
|
|
|
SRC_URI = "\
|
|
https://sourceforge.net/projects/openl2tp/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
|
|
file://ippool_usl_timer.patch \
|
|
file://ippool_parallel_make_and_pic.patch \
|
|
file://ippool_init.d.patch \
|
|
file://always_syslog.patch \
|
|
file://makefile-add-ldflags.patch \
|
|
file://runtest.sh \
|
|
file://ippool.service \
|
|
"
|
|
|
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=4c59283b82fc2b166455e0fc23c71c6f"
|
|
SRC_URI[md5sum] = "e2401e65db26a3764585b97212888fae"
|
|
SRC_URI[sha256sum] = "d3eab7d6cad5da8ccc9d1e31d5303e27a39622c07bdb8fa3618eea314412075b"
|
|
|
|
inherit systemd
|
|
|
|
DEPENDS = "readline ppp ncurses gzip-native"
|
|
RDEPENDS_${PN} = "rpcbind"
|
|
|
|
EXTRA_OEMAKE = "CC='${CC}' AS='${AS}' LD='${LD}' AR='${AR}' NM='${NM}' STRIP='${STRIP}'"
|
|
EXTRA_OEMAKE += "PPPD_VERSION=${PPPD_VERSION} SYS_LIBDIR=${libdir}"
|
|
# enable self tests
|
|
EXTRA_OEMAKE += "IPPOOL_TEST=y"
|
|
|
|
|
|
SYSTEMD_SERVICE_${PN} = "ippool.service"
|
|
SYSTEMD_AUTO_ENABLE = "disable"
|
|
|
|
|
|
do_compile_prepend() {
|
|
# fix the CFLAGS= and CPPFLAGS= in main Makefile, to have the extra CFLAGS in env
|
|
sed -i -e "s/^CFLAGS=/CFLAGS+=/" ${S}/Makefile
|
|
sed -i -e "s/^CPPFLAGS=/CPPFLAGS+=/" ${S}/Makefile
|
|
|
|
sed -i -e "s:-I/usr/include/pppd:-I=/usr/include/pppd:" ${S}/pppd/Makefile
|
|
|
|
# ignore the OPT_CFLAGS?= in Makefile,
|
|
# it should be in CFLAGS from env
|
|
export OPT_CFLAGS=
|
|
}
|
|
|
|
|
|
do_install() {
|
|
oe_runmake DESTDIR=${D} install
|
|
|
|
install -D -m 0755 ${S}/debian/init.d ${D}${sysconfdir}/init.d/ippoold
|
|
install -D -m 0644 ${WORKDIR}/ippool.service ${D}${systemd_system_unitdir}/ippool.service
|
|
sed -i -e 's:@SBINDIR@:${sbindir}:g' ${D}${systemd_system_unitdir}/ippool.service
|
|
|
|
# install self test
|
|
install -d ${D}/opt/${BPN}
|
|
install ${S}/test/all.tcl ${S}/test/ippool.test \
|
|
${S}/test/test_procs.tcl ${D}/opt/${BPN}
|
|
install ${WORKDIR}/runtest.sh ${D}/opt/${BPN}
|
|
# fix the ../ippoolconfig in test_procs.tcl
|
|
sed -i -e "s:../ippoolconfig:ippoolconfig:" \
|
|
${D}/opt/${BPN}/test_procs.tcl
|
|
}
|
|
|
|
|
|
PACKAGES =+ "${PN}-test"
|
|
|
|
FILES_${PN} += "${libdir}/pppd/${PPPD_VERSION}/ippool.so"
|
|
FILES_${PN}-dbg += "${libdir}/pppd/${PPPD_VERSION}/.debug/ippool.so"
|
|
FILES_${PN}-test = "/opt/${BPN}"
|
|
|
|
# needs tcl to run tests
|
|
RDEPENDS_${PN}-test += "tcl ${BPN}"
|
|
|
|
PPPD_VERSION="${@get_ppp_version(d)}"
|
|
|
|
def get_ppp_version(d):
|
|
import re
|
|
|
|
pppd_plugin = d.expand('${STAGING_LIBDIR}/pppd')
|
|
if not os.path.isdir(pppd_plugin):
|
|
return None
|
|
|
|
bb.debug(1, "pppd plugin dir %s" % pppd_plugin)
|
|
r = re.compile("\d*\.\d*\.\d*")
|
|
for f in os.listdir(pppd_plugin):
|
|
if os.path.isdir(os.path.join(pppd_plugin, f)):
|
|
ma = r.match(f)
|
|
if ma:
|
|
bb.debug(1, "pppd version dir %s" % f)
|
|
return f
|
|
else:
|
|
bb.debug(1, "under pppd plugin dir %s" % f)
|
|
|
|
return None
|
|
|