You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.7 KiB

  1. #
  2. # Copyright (C) 2017 Steven Hessing
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. # Name and release number of this package
  9. PKG_NAME:=noddos
  10. PKG_RELEASE:=1
  11. PKG_LICENSE:=GPLv3
  12. PKG_MAINTAINER:=Steven Hessing <steven.hessing@gmail.com>
  13. PKG_SOURCE_VERSION:=0.5.2
  14. PKG_SOURCE_URL:=https://github.com/noddos/noddos/releases/download/v$(PKG_SOURCE_VERSION)/
  15. PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.xz
  16. PKG_HASH:=63fe85fc4a588da2d71b7b7db68f1c80ba19520467a3800bdb43bc516a6cff72
  17. PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
  18. CMAKE_INSTALL:=1
  19. include $(INCLUDE_DIR)/package.mk
  20. include $(INCLUDE_DIR)/cmake.mk
  21. define Package/noddos
  22. SECTION:=net
  23. CATEGORY:=Network
  24. TITLE:=noddos -- device-aware cloud-powered firewall
  25. URL:=https://www.noddos.io/
  26. DEPENDS:=+libstdcpp +libnetfilter-conntrack +libcurl +libopenssl +openssl-util +ca-bundle +ca-certificates +wget +bzip2 +libtins +ipset +libpthread
  27. endef
  28. define Package/noddos/description
  29. Noddos discovers what devices you have in your network and tailors the firewall rules based on whitelisted flows for that device. Noddos downloads the firewall rules periodically from the cloud. In order to support creating these firewall rules, noddos can optionally upload anonimized traffic statistics for each device to the cloud.
  30. endef
  31. define Package/noddos/conffiles
  32. /etc/config/noddos
  33. endef
  34. define Package/noddos/install
  35. $(INSTALL_DIR) $(1)/usr/bin
  36. $(INSTALL_DIR) $(1)/usr/sbin
  37. $(INSTALL_DIR) $(1)/etc/config
  38. $(INSTALL_DIR) $(1)/etc/init.d
  39. $(INSTALL_DIR) $(1)/etc/noddos
  40. $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/noddos $(1)/usr/sbin/
  41. $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/getnoddosdeviceprofiles $(1)/usr/bin
  42. $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/makenoddoscert.sh $(1)/usr/bin
  43. $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/noddos.init $(1)/etc/init.d/noddos
  44. $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/noddos.uciconfig $(1)/etc/config/noddos
  45. $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddos.conf-base $(1)/etc/noddos
  46. $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddosconfig.pem $(1)/etc/noddos
  47. $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddos.conf-base $(1)/etc/noddos
  48. endef
  49. define Package/noddos/prerm
  50. #!/bin/sh
  51. # check if we are on real system
  52. if [ -z "$${IPKG_INSTROOT}" ]; then
  53. /etc/init.d/noddos stop
  54. echo "Removing rc.d symlink for noddos"
  55. /etc/init.d/noddos disable
  56. fi
  57. exit 0
  58. endef
  59. define Package/noddos/postrm
  60. #!/bin/sh
  61. # check if we are on real system
  62. if [ -z "$${IPKG_INSTROOT}" ]; then
  63. echo "Removing noddos data directory"
  64. rm -rf /var/lib/noddos
  65. if [ -f /var/etc/noddos.conf ]; then
  66. rm /var/etc/noddos.conf
  67. fi
  68. fi
  69. exit 0
  70. endef
  71. $(eval $(call BuildPackage,noddos))