mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Alexander Dahl <post@lespocky.de>
To: ptxdist@pengutronix.de
Subject: [ptxdist] [PATCH] lldpd: add package
Date: Fri, 27 Sep 2013 16:37:19 +0200	[thread overview]
Message-ID: <1380292639-11871-1-git-send-email-post@lespocky.de> (raw)
In-Reply-To: <20130909160114.GD26086@pengutronix.de>

This adds lldpd from http://vincentbernat.github.io/lldpd/ to the list
of packages. Quote: »lldpd is a 802.1ab implementation (LLDP) to help
you locate neighbors of all your equipments.«

Signed-off-by: Alexander Dahl <post@lespocky.de>
---
 generic/etc/init.d/lldpd |  139 ++++++++++++++++++++++++++++++++++++++++++++++
 rules/lldpd-bbinit.in    |    9 +++
 rules/lldpd.in           |   95 +++++++++++++++++++++++++++++++
 rules/lldpd.make         |   89 +++++++++++++++++++++++++++++
 4 files changed, 332 insertions(+)
 create mode 100755 generic/etc/init.d/lldpd
 create mode 100644 rules/lldpd-bbinit.in
 create mode 100644 rules/lldpd.in
 create mode 100644 rules/lldpd.make

diff --git a/generic/etc/init.d/lldpd b/generic/etc/init.d/lldpd
new file mode 100755
index 0000000..00c8240
--- /dev/null
+++ b/generic/etc/init.d/lldpd
@@ -0,0 +1,139 @@
+#!/bin/sh
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="LLDP daemon"
+NAME=lldpd
+DAEMON=/usr/sbin/$NAME
+DAEMON_ARGS="@DAEMON_ARGS@"
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+CHROOT=@PRIVSEP_CHROOT@
+
+# exit if binary is missing
+[ -x "$DAEMON" ] || exit 0
+
+# read further config if present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+is_running() {
+    start-stop-daemon -K --quiet --test --exec $DAEMON --pidfile $PIDFILE
+}
+
+do_chroot() {
+    oldumask=$(umask)
+    umask 022
+    [ -d $CHROOT/etc ] || mkdir -p $CHROOT/etc
+    [ -f $CHROOT/etc/localtime ] || [ ! -f /etc/localtime ] || \
+        cp /etc/localtime $CHROOT/etc/localtime
+    umask $oldumask
+}
+
+do_start() {
+    do_chroot
+    is_running && return 1
+    start-stop-daemon -S --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+        $DAEMON_ARGS \
+        || return 2
+}
+
+do_stop() {
+    is_running || return 0
+    start-stop-daemon -K --quiet --pidfile $PIDFILE --name $NAME
+    RETVAL="$?"
+
+    # wait up to 30 seconds until daemon stopped
+    for i in $(seq 30)
+    do
+        sleep 1
+        echo -n '.'
+        if ! is_running
+        then
+            break
+        fi
+    done
+
+    # see if it's still running
+    if is_running
+    then
+        start-stop-daemon -K --quiet --signal KILL --pidfile $PIDFILE --name $NAME
+
+        for i in $(seq 5)
+        do
+            sleep 1
+            echo -n '.'
+            if ! is_running
+            then
+                break
+            fi
+        done
+
+        if is_running
+        then
+            return 2
+        fi
+    fi
+
+    rm -f $PIDFILE
+    return "$RETVAL"
+}
+
+do_reload() {
+    # send SIGHUP
+    start-stop-daemon -K --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+    return 0
+}
+
+case "$1" in
+    start)
+        echo -n "Starting $DESC ..."
+        do_start
+        case "$?" in
+            0|1)    echo " Done." ;;
+            2)      echo " Failed." ;;
+        esac
+        ;;
+    stop)
+        echo -n "Stopping $DESC ."
+        do_stop
+        case "$?" in
+            0|1)    echo " Done." ;;
+            2)      echo " Failed." ;;
+        esac
+        ;;
+    reload)
+        echo -n "Reloading $DESC ..."
+        do_reload
+        echo " Done."
+        ;;
+    restart|force-reload)
+        echo -n "Restarting $DESC .."
+        do_stop
+        case "$?" in
+            0|1)
+                do_start
+                case "$?" in
+                    0)  echo " Done." ;;
+                    1)  echo " Failed." ;; # Old process still running
+                    *)  echo " Failed." ;; # Failed to start
+                esac
+                ;;
+            *)
+                echo " Failed." # Failed to stop
+                ;;
+        esac
+        ;;
+    status)
+        if is_running
+        then
+            echo "$NAME is running with PID $(cat $PIDFILE) ..."
+        else
+            echo "$NAME is not running"
+        fi
+        ;;
+    *)
+        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2
+        exit 3
+        ;;
+esac
+
+:
diff --git a/rules/lldpd-bbinit.in b/rules/lldpd-bbinit.in
new file mode 100644
index 0000000..103452a
--- /dev/null
+++ b/rules/lldpd-bbinit.in
@@ -0,0 +1,9 @@
+## SECTION=initmethod_bbinit
+
+config LLDPD_BBINIT_LINK
+	string
+	depends on LLDPD_STARTSCRIPT
+	prompt "lldpd"
+	default "S28lldpd"
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/lldpd.in b/rules/lldpd.in
new file mode 100644
index 0000000..c4b4434
--- /dev/null
+++ b/rules/lldpd.in
@@ -0,0 +1,95 @@
+## SECTION=networking
+
+menuconfig LLDPD
+	tristate
+	prompt "lldpd                         "
+	select INITMETHOD
+	select LIBEVENT
+	select NET_SNMP if LLDPD_SNMP
+	select NET_SNMP_MIB_MODULES_AGENTX if LLDPD_SNMP
+	select LIBXML2 if LLDPD_XML
+	select BUSYBOX_START_STOP_DAEMON if LLDPD_STARTSCRIPT
+	select BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS if LLDPD_STARTSCRIPT
+	help
+	  lldpd is an ISC-licensed implementation of LLDP for various
+	  Unixes. It also supports some proprietary protocols.
+
+if LLDPD
+
+config LLDPD_PRIVSEP_USER
+	string
+	prompt "Which user to use for privilege separation"
+	default "nobody"
+
+config LLDPD_PRIVSEP_GROUP
+	string
+	prompt "Which group to use for privilege separation"
+	default "nogroup"
+
+config LLDPD_PRIVSEP_CHROOT
+	string
+	prompt "Which directory to use to chroot lldpd"
+	default "/var/run/lldpd"
+
+config LLDPD_CDP
+	bool
+	prompt "Enable Cisco Discovery Protocol"
+	default y
+
+config LLDPD_FDP
+	bool
+	prompt "Enable Foundry Discovery Protocol"
+	default y
+
+config LLDPD_EDP
+	bool
+	prompt "Enable Extreme Discovery Protocol"
+	default y
+
+config LLDPD_SONMP
+	bool
+	prompt "Enable SynOptics Network Management Protocol"
+	default y
+
+config LLDPD_LLDPMED
+	bool
+	prompt "Enable LLDP-MED extension"
+	default y
+
+config LLDPD_DOT1
+	bool
+	prompt "Enable Dot1 extension (VLAN stuff)"
+	default y
+
+config LLDPD_DOT3
+	bool
+	prompt "Enable Dot3 extension (PHY stuff)"
+	default y
+
+config LLDPD_OLDIES
+	bool
+	prompt "Enable compatibility with Linux kernel older than 2.6.18"
+
+config LLDPD_SNMP
+	bool
+	prompt "Enable the use of SNMP"
+
+config LLDPD_XML
+	bool
+	prompt "Enable XML output via libxml2"
+
+config LLDPD_STARTSCRIPT
+	bool
+	prompt "install /etc/init.d/lldpd"
+	default y
+
+config LLDPD_DAEMON_ARGS
+	string
+	prompt "additional arguments for daemon startup"
+	default ""
+	help
+	  This could be -c -e -f -s …
+
+endif
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/lldpd.make b/rules/lldpd.make
new file mode 100644
index 0000000..a999100
--- /dev/null
+++ b/rules/lldpd.make
@@ -0,0 +1,89 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2013 by Alexander Dahl <post@lespocky.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LLDPD) += lldpd
+
+#
+# Paths and names
+#
+LLDPD_VERSION	:= 0.7.6
+LLDPD_MD5		:= dbd90a68b91448dcb94a4a77c5d8ef65
+LLDPD			:= lldpd-$(LLDPD_VERSION)
+LLDPD_SUFFIX	:= tar.gz
+LLDPD_URL		:= http://media.luffy.cx/files/lldpd//$(LLDPD).$(LLDPD_SUFFIX)
+LLDPD_SOURCE	:= $(SRCDIR)/$(LLDPD).$(LLDPD_SUFFIX)
+LLDPD_DIR		:= $(BUILDDIR)/$(LLDPD)
+LLDPD_LICENSE	:= ICS
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LLDPD_CONF_TOOL	:= autoconf
+LLDPD_CONF_OPT	:= $(CROSS_AUTOCONF_USR) \
+	--disable-doxygen-doc \
+	--without-embedded-libevent \
+	--$(call ptx/endis, PTXCONF_LLDPD_CDP)-cdp \
+	--$(call ptx/endis, PTXCONF_LLDPD_FDP)-fdp \
+	--$(call ptx/endis, PTXCONF_LLDPD_EDP)-edp \
+	--$(call ptx/endis, PTXCONF_LLDPD_SONMP)-sonmp \
+	--$(call ptx/endis, PTXCONF_LLDPD_LLDPMED)-lldpmed \
+	--$(call ptx/endis, PTXCONF_LLDPD_DOT1)-dot1 \
+	--$(call ptx/endis, PTXCONF_LLDPD_DOT3)-dot3 \
+	--$(call ptx/endis, PTXCONF_LLDPD_OLDIES)-oldies \
+	--$(call ptx/wwo, PTXCONF_LLDPD_SNMP)-snmp \
+	--$(call ptx/wwo, PTXCONF_LLDPD_XML)-xml \
+	--with-privsep-user="$(PTXCONF_LLDPD_PRIVSEP_USER)" \
+	--with-privsep-group="$(PTXCONF_LLDPD_PRIVSEP_GROUP)" \
+	--with-privsep-chroot="$(PTXCONF_LLDPD_PRIVSEP_CHROOT)"
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/lldpd.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, lldpd)
+	@$(call install_fixup, lldpd,PRIORITY,optional)
+	@$(call install_fixup, lldpd,SECTION,base)
+	@$(call install_fixup, lldpd,AUTHOR,"Alexander Dahl <post@lespocky.de>")
+	@$(call install_fixup, lldpd,DESCRIPTION,missing)
+
+	@$(call install_copy, lldpd, 0, 0, 0755, -, /usr/sbin/lldpd)
+	@$(call install_copy, lldpd, $(PTXCONF_LLDPD_PRIVSEP_USER), \
+		$(PTXCONF_LLDPD_PRIVSEP_GROUP), 4750, -, /usr/sbin/lldpcli)
+	@$(call install_link, lldpd, lldpcli, /usr/sbin/lldpctl)
+
+	@$(call install_lib, lldpd, 0, 0, 0644, liblldpctl)
+
+ifdef PTXCONF_INITMETHOD_BBINIT
+ifdef PTXCONF_LLDPD_STARTSCRIPT
+	@$(call install_alternative, lldpd, 0, 0, 0755, /etc/init.d/lldpd)
+	@$(call install_replace, lldpd, /etc/init.d/lldpd, \
+		@DAEMON_ARGS@, $(PTXCONF_LLDPD_DAEMON_ARGS))
+	@$(call install_replace, lldpd, /etc/init.d/lldpd, \
+		@PRIVSEP_CHROOT@, $(PTXCONF_LLDPD_PRIVSEP_CHROOT))
+
+ifneq ($(call remove_quotes,$(PTXCONF_LLDPD_BBINIT_LINK)),)
+	@$(call install_link, lldpd, ../init.d/lldpd, \
+		/etc/rc.d/$(PTXCONF_LLDPD_BBINIT_LINK))
+endif
+endif
+endif
+
+	@$(call install_finish, lldpd)
+
+	@$(call touch)
+
+# vim: ft=make noet
-- 
1.7.10.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2013-09-27 14:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-05 13:48 [ptxdist] [PATCH] [lldpd] " Alexander Dahl
2013-09-09  9:49 ` Michael Olbrich
2013-09-09 10:43   ` Alexander Dahl
2013-09-09 14:45     ` Michael Olbrich
2013-09-09 15:20       ` [ptxdist] [PATCH] lldpd: " Alexander Dahl
2013-09-09 16:01         ` Michael Olbrich
2013-09-27 14:37           ` Alexander Dahl [this message]
2013-09-11 13:16 ` [ptxdist] [PATCH] [lldpd] " Alexander Dahl
2013-09-16  8:21   ` Michael Olbrich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1380292639-11871-1-git-send-email-post@lespocky.de \
    --to=post@lespocky.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox