| 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 \ |
| file://0002-link-with-libtirpc.patch \ |
| file://0003-musl-fixes.patch \ |
| file://strncpy-truncation.patch \ |
| " |
| |
| LIC_FILES_CHKSUM = "file://LICENSE;md5=4c59283b82fc2b166455e0fc23c71c6f" |
| SRC_URI[md5sum] = "e2401e65db26a3764585b97212888fae" |
| SRC_URI[sha256sum] = "d3eab7d6cad5da8ccc9d1e31d5303e27a39622c07bdb8fa3618eea314412075b" |
| |
| inherit systemd |
| |
| DEPENDS = "readline ppp ncurses gzip-native rpcsvc-proto-native 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} -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(r"\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 |
| |