blob: 6e474835709251ee57815f1fd0f13a79a2760424 [file] [log] [blame]
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://runtest.sh \
file://ippool.service \
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://0001-usl_timer-Check-for-return-value-of-write-API.patch \
file://0001-Respect-flags-from-env.patch \
file://0001-read-returns-ssize_t.patch \
file://0002-Mark-first-element-of-a-string-as-null.patch \
file://0003-cli-Mark-return-of-strtol-as-long-int.patch \
"
SRC_URI_append_libc-musl = "\
file://0002-link-with-libtirpc.patch \
file://0003-musl-fixes.patch \
"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4c59283b82fc2b166455e0fc23c71c6f"
SRC_URI[md5sum] = "e2401e65db26a3764585b97212888fae"
SRC_URI[sha256sum] = "d3eab7d6cad5da8ccc9d1e31d5303e27a39622c07bdb8fa3618eea314412075b"
inherit systemd
DEPENDS = "readline ppp ncurses gzip-native"
DEPENDS_append_libc-musl = " libtirpc"
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"
CPPFLAGS += "${SELECTED_OPTIMIZATION}"
CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
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
}
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