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.

82 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.5
  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:=1f5be0c1015b0407036eecc8449d60d2abcacec442bba55db85fc32e89f754db
  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 +libyaml-cpp
  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, after opt-in, upload anonimized traffic statistics for each device to the cloud. The Luci interface is available in the luci-apps-noddos package. For information, visit https://www.noddos.io/
  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.yml-base $(1)/etc/noddos
  46. $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddosconfig.pem $(1)/etc/noddos
  47. endef
  48. define Package/noddos/prerm
  49. #!/bin/sh
  50. # check if we are on real system
  51. if [ -z "$${IPKG_INSTROOT}" ]; then
  52. /etc/init.d/noddos stop
  53. echo "Removing rc.d symlink for noddos"
  54. /etc/init.d/noddos disable
  55. fi
  56. exit 0
  57. endef
  58. define Package/noddos/postrm
  59. #!/bin/sh
  60. # check if we are on real system
  61. if [ -z "$${IPKG_INSTROOT}" ]; then
  62. echo "Removing noddos data directory"
  63. rm -rf /var/lib/noddos
  64. if [ -f /var/etc/noddos.yml ]; then
  65. rm /var/etc/noddos.yml
  66. fi
  67. fi
  68. exit 0
  69. endef
  70. $(eval $(call BuildPackage,noddos))