lldpd: add option to disable privilege separation
[openwrt/staging/chunkeey.git] / package / network / services / lldpd / Makefile
index f0983f7ae3e1e72657b3705f40fea554ac4fe5b8..d80840e4cb5b2d4c8546275a97505f2c109aff05 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2012 OpenWrt.org
+# Copyright (C) 2008-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,18 +8,21 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lldpd
-PKG_VERSION:=0.6.1
+PKG_VERSION:=0.7.13
 PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://media.luffy.cx/files/lldpd
-PKG_MD5SUM:=d2f9ae67e0bcce0206a3a501a81d0738
+PKG_MD5SUM:=13e8be761753eac9a8e12128acba40b4
 
 PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
+PKG_LICENSE:=ISC
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
+TARGET_CFLAGS+=--std=c99
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/lldpd
@@ -28,7 +31,13 @@ define Package/lldpd
   SUBMENU:=Routing and Redirection
   TITLE:=Link Layer Discovery Protocol daemon
   URL:=https://github.com/vincentbernat/lldpd/wiki
-  DEPENDS:=+libevent2
+  DEPENDS:=+libevent2 +USE_GLIBC:libbsd +LLDPD_WITH_JSON:libjson-c
+  USERID:=lldp=121:lldp=129
+  MENU:=1
+endef
+
+define Package/lldpd/config
+source "$(SOURCE)/Config.in"
 endef
 
 define Package/lldpd/description
@@ -40,14 +49,35 @@ define Package/lldpd/description
        Link-Layer notifications to adjacent network devices.
 endef
 
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblldpctl.so* $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/lldpctl.h $(1)/usr/include/lldpctl.h
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/lldp-const.h $(1)/usr/include/lldp-const.h
+endef
+
 define Package/lldpd/install
        $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/etc/lldpd.d
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_DIR) $(1)/usr/lib $(1)/usr/sbin
-       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/lldp{ctl,d} $(1)/usr/sbin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/lldp{cli,ctl,d} $(1)/usr/sbin/
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/liblldpctl.so* $(1)/usr/lib/
        $(INSTALL_BIN) ./files/lldpd.init $(1)/etc/init.d/lldpd
        $(INSTALL_DATA) ./files/lldpd.config $(1)/etc/config/lldpd
+ifneq ($(CONFIG_LLDPD_WITH_CDP),y)
+       sed -i -e '/cdp/d' $(1)/etc/init.d/lldpd $(1)/etc/config/lldpd
+endif
+ifneq ($(CONFIG_LLDPD_WITH_FDP),y)
+       sed -i -e '/fdp/d' $(1)/etc/init.d/lldpd $(1)/etc/config/lldpd
+endif
+ifneq ($(CONFIG_LLDPD_WITH_EDP),y)
+       sed -i -e '/edp/d' $(1)/etc/init.d/lldpd $(1)/etc/config/lldpd
+endif
+ifneq ($(CONFIG_LLDPD_WITH_SONMP),y)
+       sed -i -e '/sonmp/d' $(1)/etc/init.d/lldpd $(1)/etc/config/lldpd
+endif
 endef
 
 define Package/lldpd/conffiles
@@ -55,8 +85,21 @@ define Package/lldpd/conffiles
 endef
 
 CONFIGURE_ARGS += \
+       $(if $(CONFIG_LLDPD_WITH_PRIVSEP), \
        --with-privsep-user=lldp \
        --with-privsep-group=lldp \
-       --with-privsep-chroot=/var/run/lldp
+       --with-privsep-chroot=/var/run/lldp \
+       ,--disable-privsep) \
+       --with-readline=no \
+       --with-embedded-libevent=no \
+       $(if $(CONFIG_LLDPD_WITH_CDP),,--disable-cdp) \
+       $(if $(CONFIG_LLDPD_WITH_FDP),,--disable-fdp) \
+       $(if $(CONFIG_LLDPD_WITH_EDP),,--disable-edp) \
+       $(if $(CONFIG_LLDPD_WITH_LLDPMED),,--disable-lldpmed) \
+       $(if $(CONFIG_LLDPD_WITH_DOT1),,--disable-dot1) \
+       $(if $(CONFIG_LLDPD_WITH_DOT3),,--disable-dot3) \
+       $(if $(CONFIG_LLDPD_WITH_SONMP),,--disable-sonmp) \
+       $(if $(CONFIG_LLDPD_WITH_JSON),--with-json=json-c)
+
 
 $(eval $(call BuildPackage,lldpd))