mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-05-30 13:00:02 +00:00
lldpd: Add recipe
lldpd is a 802.1AB implementation, a L2 network discovery protocol. It also supports CDP, EDP and various other protocols. Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
This commit is contained in:
committed by
Joe MacDonald
parent
395519075d
commit
0289eac721
@@ -0,0 +1,39 @@
|
||||
Upstream-Status: Submitted [https://github.com/vincentbernat/lldpd/issues/133]
|
||||
|
||||
Subject: [PATCH] fix libevent configure
|
||||
|
||||
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
|
||||
---
|
||||
m4/libevent.m4 | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/m4/libevent.m4 b/m4/libevent.m4
|
||||
index 275e5a5..dcd3309 100644
|
||||
--- a/m4/libevent.m4
|
||||
+++ b/m4/libevent.m4
|
||||
@@ -45,13 +45,11 @@ AC_DEFUN([lldp_CHECK_LIBEVENT], [
|
||||
AC_MSG_ERROR([*** libevent not found])
|
||||
fi
|
||||
])
|
||||
- fi
|
||||
|
||||
if test x"$LIBEVENT_EMBEDDED" != x; then
|
||||
unset LIBEVENT_LIBS
|
||||
LIBEVENT_CFLAGS="-I\$(top_srcdir)/libevent/include -I\$(top_builddir)/libevent/include"
|
||||
LIBEVENT_LDFLAGS="\$(top_builddir)/libevent/libevent.la"
|
||||
- fi
|
||||
|
||||
# Call ./configure in libevent. Need it for make dist...
|
||||
libevent_configure_args="$libevent_configure_args --disable-libevent-regress"
|
||||
@@ -64,6 +62,8 @@ AC_DEFUN([lldp_CHECK_LIBEVENT], [
|
||||
libevent_configure_args="$libevent_configure_args --with-pic"
|
||||
libevent_configure_args="$libevent_configure_args --enable-static"
|
||||
lldp_CONFIG_SUBDIRS([libevent], [$libevent_configure_args])
|
||||
+ fi
|
||||
+ fi
|
||||
|
||||
AM_CONDITIONAL([LIBEVENT_EMBEDDED], [test x"$LIBEVENT_EMBEDDED" != x])
|
||||
AC_SUBST([LIBEVENT_LIBS])
|
||||
--
|
||||
2.1.4
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Uncomment to start SNMP subagent and enable CDP, SONMP and EDP protocol
|
||||
#DAEMON_ARGS="-x -c -s -e"
|
||||
@@ -0,0 +1,128 @@
|
||||
#! /bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: lldpd
|
||||
# Required-Start: $remote_fs $network $syslog
|
||||
# Required-Stop: $network $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: LLDP daemon
|
||||
# Description: lldpd is a 802.1AB implementation, a L2 network
|
||||
# discovery protocol. It also supports CDP, EDP and
|
||||
# various other protocols.
|
||||
### END INIT INFO
|
||||
|
||||
# Do NOT "set -e"
|
||||
|
||||
log_daemon_msg() {
|
||||
echo $*
|
||||
}
|
||||
|
||||
log_end_msg() {
|
||||
if [ $1 -eq 0 ]; then
|
||||
success $*
|
||||
else
|
||||
failure $*
|
||||
fi
|
||||
}
|
||||
|
||||
log_failure_msg() {
|
||||
echo $*
|
||||
}
|
||||
|
||||
log_success_msg() {
|
||||
echo $*
|
||||
}
|
||||
|
||||
|
||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
DESC="LLDP daemon"
|
||||
NAME=lldpd
|
||||
DAEMON=/usr/sbin/$NAME
|
||||
DAEMON_ARGS=""
|
||||
PIDFILE=/var/run/$NAME.pid
|
||||
SCRIPTNAME=/etc/init.d/$NAME
|
||||
CHROOT=/var/run/$NAME
|
||||
|
||||
# Exit if the package is not installed
|
||||
[ -x "$DAEMON" ] || exit 0
|
||||
|
||||
# Read configuration variable file if it is present
|
||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||
|
||||
# LSB log_* functions
|
||||
. /etc/init.d/functions
|
||||
|
||||
do_start()
|
||||
{
|
||||
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
|
||||
$DAEMON_ARGS \
|
||||
|| return 2
|
||||
}
|
||||
|
||||
do_stop()
|
||||
{
|
||||
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
|
||||
RETVAL="$?"
|
||||
[ "$RETVAL" = 2 ] && return 2
|
||||
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
|
||||
[ "$?" = 2 ] && return 2
|
||||
rm -f $PIDFILE
|
||||
return "$RETVAL"
|
||||
}
|
||||
|
||||
do_reload() {
|
||||
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
|
||||
return 0
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||
do_start
|
||||
case "$?" in
|
||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||
esac
|
||||
;;
|
||||
stop)
|
||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||
do_stop
|
||||
case "$?" in
|
||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||
esac
|
||||
;;
|
||||
reload)
|
||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
||||
do_reload
|
||||
log_end_msg $?
|
||||
;;
|
||||
restart|force-reload)
|
||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||
do_stop
|
||||
case "$?" in
|
||||
0|1)
|
||||
do_start
|
||||
case "$?" in
|
||||
0) log_end_msg 0 ;;
|
||||
1) log_end_msg 1 ;; # Old process is still running
|
||||
*) log_end_msg 1 ;; # Failed to start
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
# Failed to stop
|
||||
log_end_msg 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
status)
|
||||
status_of_proc $DAEMON $NAME -p $PIDFILE && exit 0 || exit $?
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
|
||||
:
|
||||
@@ -0,0 +1,68 @@
|
||||
SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments"
|
||||
SECTION = "net/misc"
|
||||
LICENSE = "ISC"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d"
|
||||
|
||||
DEPENDS = "libbsd libevent"
|
||||
|
||||
SRC_URI = "\
|
||||
http://media.luffy.cx/files/${PN}/${PN}-${PV}.tar.gz \
|
||||
file://lldpd.init.d \
|
||||
file://lldpd.default \
|
||||
file://fix-libevent-configure.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "8cb74065956bc32a575ee5203b0e0fb5"
|
||||
SRC_URI[sha256sum] = "6b50b8aa47d1424a93ba3df55af26da41f7d5718db8d25e99291c4a6cd09c20e"
|
||||
|
||||
inherit autotools update-rc.d useradd systemd pkgconfig
|
||||
|
||||
USERADD_PACKAGES = "${PN}"
|
||||
USERADD_PARAM_${PN} = "--system -g lldpd --shell /bin/false lldpd"
|
||||
GROUPADD_PARAM_${PN} = "--system lldpd"
|
||||
|
||||
EXTRA_OECONF += "--without-embedded-libevent \
|
||||
--disable-oldies \
|
||||
--with-privsep-user=lldpd \
|
||||
--with-privsep-group=lldpd"
|
||||
|
||||
PACKAGECONFIG ??= "cdp fdp edp sonmp lldpmed dot1 dot3"
|
||||
PACKAGECONFIG[json] = "--with-json,--without-json,jansson"
|
||||
PACKAGECONFIG[xml] = "--with-xml,--without-xml,libxm2"
|
||||
PACKAGECONFIG[snmp] = "--with-snmp,--without-snmp,net-snmp"
|
||||
PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
|
||||
PACKAGECONFIG[seccomp] = "--with-seccomp,--without-seccomp,libseccomp"
|
||||
PACKAGECONFIG[cdp] = "--enable-cdp,--disable-cdp"
|
||||
PACKAGECONFIG[fdp] = "--enable-fdp,--disable-fdp"
|
||||
PACKAGECONFIG[edp] = "--enable-edp,--disable-edp"
|
||||
PACKAGECONFIG[sonmp] = "--enable-sonmp,--disable-sonmp"
|
||||
PACKAGECONFIG[lldpmed] = "--enable-lldpmed,--disable-lldpmed"
|
||||
PACKAGECONFIG[dot1] = "--enable-dot1,--disable-dot1"
|
||||
PACKAGECONFIG[dot3] = "--enable-dot3,--disable-dot3"
|
||||
PACKAGECONFIG[custom] = "--enable-custom,--disable-custom"
|
||||
|
||||
INITSCRIPT_NAME = "lldpd"
|
||||
INITSCRIPT_PARAMS = "defaults"
|
||||
|
||||
SYSTEMD_SERVICE_${PN} = "lldpd.service"
|
||||
|
||||
do_install_append() {
|
||||
install -Dm 0755 ${WORKDIR}/lldpd.init.d ${D}${sysconfdir}/init.d/lldpd
|
||||
install -Dm 0644 ${WORKDIR}/lldpd.default ${D}${sysconfdir}/default/lldpd
|
||||
# Make an empty configuration file
|
||||
touch ${D}${sysconfdir}/lldpd.conf
|
||||
}
|
||||
|
||||
PACKAGES =+ "${PN}-bash-completion ${PN}-zsh-completion"
|
||||
|
||||
FILES_${PN} += "${libdir}/sysusers.d"
|
||||
RDEPENDS_${PN} += "os-release"
|
||||
|
||||
FILES_${PN}-bash-completion += "${sysconfdir}/bash_completion.d/ \
|
||||
${datadir}/bash-completion/ \
|
||||
"
|
||||
RDEPENDS_${PN}-bash-completion += "bash"
|
||||
|
||||
FILES_${PN}-zsh-completion += "${datadir}/zsh/"
|
||||
# FIXME: zsh is broken in meta-oe so this cannot be enabled for now
|
||||
#RDEPENDS_${PN}-zsh-completion += "zsh"
|
||||
Reference in New Issue
Block a user