diff options
| author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-10-10 13:17:14 +0000 | 
|---|---|---|
| committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-10-10 13:17:14 +0000 | 
| commit | 2698a0226e302e2e3162753fcd776316f546df2a (patch) | |
| tree | 7d320422192981acd2453afcff8a0e144a93a38c | |
| parent | 62b7377df912e7ab298d5ca434266e1ca7a5fd8e (diff) | |
lldpd: move to trunk and add myself as maintainer
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33700 3c298f89-4303-0410-b956-a3cf2f4a3e73
5 files changed, 154 insertions, 0 deletions
| diff --git a/package/network/services/lldpd/Makefile b/package/network/services/lldpd/Makefile new file mode 100644 index 000000000..0e62e3533 --- /dev/null +++ b/package/network/services/lldpd/Makefile @@ -0,0 +1,56 @@ +# +# Copyright (C) 2008-2012 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=lldpd +PKG_VERSION:=0.6.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://media.luffy.cx/files/lldpd +PKG_MD5SUM:=77279577e3b6d85a33dc0afe7c960b27 + +PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org> + +PKG_FIXUP:=autoreconf +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/lldpd +  SECTION:=net +  CATEGORY:=Network +  SUBMENU:=Routing and Redirection +  TITLE:=Link Layer Discovery Protocol daemon +  URL:=https://github.com/vincentbernat/lldpd/wiki +  DEPENDS:=+libevent2 +endef + +define Package/lldpd/description +	LLDP (Link Layer Discovery Protocol) is an industry standard protocol designed +	to supplant proprietary Link-Layer protocols such as +	Extreme's EDP (Extreme Discovery Protocol) and +	CDP (Cisco Discovery Protocol). +	The goal of LLDP is to provide an inter-vendor compatible mechanism to deliver +	Link-Layer notifications to adjacent network devices. +endef + +define Package/lldpd/install +	$(INSTALL_DIR) $(1)/etc/init.d +	$(INSTALL_DIR) $(1)/etc/config +	$(INSTALL_DIR) $(1)/usr/sbin +	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lldp{ctl,d} $(1)/usr/sbin/ +	$(INSTALL_BIN) ./files/lldpd.init $(1)/etc/init.d/lldpd +	$(INSTALL_DATA) ./files/lldpd.config $(1)/etc/config/lldpd +endef + +define Package/lldpd/conffiles +/etc/config/lldpd +endef + +$(eval $(call BuildPackage,lldpd)) diff --git a/package/network/services/lldpd/files/lldpd.config b/package/network/services/lldpd/files/lldpd.config new file mode 100644 index 000000000..14ba02fcc --- /dev/null +++ b/package/network/services/lldpd/files/lldpd.config @@ -0,0 +1,8 @@ +config lldpd config +	option enable_cdp 1 +	option enable_fdp 1 +	option enable_sonmp 1 +	option enable_edp 1 +	 +	option lldp_class 4 +	option lldp_location "2:FR:6:Commercial Rd:3:Roseville:19:4" diff --git a/package/network/services/lldpd/files/lldpd.init b/package/network/services/lldpd/files/lldpd.init new file mode 100644 index 000000000..5d3428388 --- /dev/null +++ b/package/network/services/lldpd/files/lldpd.init @@ -0,0 +1,40 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2008-2012 OpenWrt.org + +START=90 + +SERVICE_USE_PID=1 + +start() { +	local enable_cdp +	local enable_fdp +	local enable_sonmp +	local enable_edp +	local lldp_class +	local lldp_location + +	config_load 'lldpd' +	config_get_bool enable_cdp 'config' 'enable_cdp' 0 +	config_get_bool enable_fdp 'config' 'enable_fdp' 0 +	config_get_bool enable_sonmp 'config' 'enable_sonmp' 0 +	config_get_bool enable_edp 'config' 'enable_edp' 0 +	config_get lldp_class 'config' 'lldp_class' +	config_get lldp_location 'config' 'lldp_location' + +	[ $enable_cdp -gt 0 ] && append args '-c' +	[ $enable_fdp -gt 0 ] && append args '-f' +	[ $enable_sonmp -gt 0 ] && append args '-s' +	[ $enable_edp -gt 0 ] && append args '-e' + +	service_start /usr/sbin/lldpd $args \ +		${lldp_class:+ -M $lldp_class} + +	[ -n "$lldp_location" ] && { +		sleep 1 +		/usr/sbin/lldpctl -L "$lldp_location" > /dev/null 2>&1 +	} +} + +stop() { +	service_stop /usr/sbin/lldpd +} diff --git a/package/network/services/lldpd/patches/001-no-multiuser.patch b/package/network/services/lldpd/patches/001-no-multiuser.patch new file mode 100644 index 000000000..5f216c428 --- /dev/null +++ b/package/network/services/lldpd/patches/001-no-multiuser.patch @@ -0,0 +1,40 @@ +--- a/src/priv.c ++++ b/src/priv.c +@@ -518,12 +518,14 @@ priv_init(char *chrootdir) + 		fatal("[priv]: unable to create socket pair for privilege separation"); +  + 	/* Get users */ ++	/* + 	if ((user = getpwnam(PRIVSEP_USER)) == NULL) + 		fatal("[priv]: no " PRIVSEP_USER " user for privilege separation"); + 	uid = user->pw_uid; + 	if ((group = getgrnam(PRIVSEP_GROUP)) == NULL) + 		fatal("[priv]: no " PRIVSEP_GROUP " group for privilege separation"); + 	gid = group->gr_gid; ++	*/ +  + 	/* Spawn off monitor */ + 	if ((monitored = fork()) < 0) +@@ -534,17 +536,17 @@ priv_init(char *chrootdir) + 		if (RUNNING_ON_VALGRIND) + 			LLOG_WARNX("[priv]: running on valgrind, keep privileges"); + 		else { +-			if (chroot(chrootdir) == -1) +-				fatal("[priv]: unable to chroot"); +-			if (chdir("/") != 0) ++			/*if (chroot(chrootdir) == -1) ++				fatal("[priv]: unable to chroot");*/ ++			if (chdir("/tmp") != 0) + 				fatal("[priv]: unable to chdir"); + 			gidset[0] = gid; +-			if (setresgid(gid, gid, gid) == -1) ++			/*if (setresgid(gid, gid, gid) == -1) + 				fatal("[priv]: setresgid() failed"); + 			if (setgroups(1, gidset) == -1) + 				fatal("[priv]: setgroups() failed"); + 			if (setresuid(uid, uid, uid) == -1) +-				fatal("[priv]: setresuid() failed"); ++				fatal("[priv]: setresuid() failed");*/ + 		} + 		remote = pair[0]; + 		close(pair[1]); diff --git a/package/network/services/lldpd/patches/002-no-stack-protector.patch b/package/network/services/lldpd/patches/002-no-stack-protector.patch new file mode 100644 index 000000000..0a0c6fbb6 --- /dev/null +++ b/package/network/services/lldpd/patches/002-no-stack-protector.patch @@ -0,0 +1,10 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -48,7 +48,6 @@ AX_CFLAGS_GCC_OPTION([-Wformat]) + AX_CFLAGS_GCC_OPTION([-Wformat-security]) + AX_CFLAGS_GCC_OPTION([-Wcast-align]) + AX_CFLAGS_GCC_OPTION([-Winline]) +-AX_CFLAGS_GCC_OPTION([-fstack-protector]) + AX_CFLAGS_GCC_OPTION([-D_FORTIFY_SOURCE=2]) + AX_CFLAGS_GCC_OPTION([-Wdeclaration-after-statement]) + AX_CFLAGS_GCC_OPTION([-Wno-unused-parameter]) | 
