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.6 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_SOURCE_VERSION:=0.5.0
  13. PKG_SOURCE_URL:=https://github.com/noddos/noddos/releases/download/v$(PKG_SOURCE_VERSION)/
  14. PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.xz
  15. PKG_HASH:=61119d76bbc1e7de74c3f3cd58fe7048581a1653dbffa03ae4215163b5221b18
  16. PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
  17. CMAKE_INSTALL:=1
  18. include $(INCLUDE_DIR)/package.mk
  19. include $(INCLUDE_DIR)/cmake.mk
  20. define Package/noddos
  21. SECTION:=net
  22. CATEGORY:=Network
  23. TITLE:=noddos -- device-aware cloud-powered firewall
  24. URL:=https://www.noddos.io/
  25. DEPENDS:=+libstdcpp +libnetfilter-conntrack +libcurl +libopenssl +openssl-util +ca-bundle +ca-certificates +wget +bzip2 +libtins +ipset +libpthread
  26. endef
  27. define Package/noddos/description
  28. 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.
  29. endef
  30. define Package/noddos/conffiles
  31. /etc/config/noddos
  32. endef
  33. define Package/noddos/install
  34. $(INSTALL_DIR) $(1)/usr/bin
  35. $(INSTALL_DIR) $(1)/usr/sbin
  36. $(INSTALL_DIR) $(1)/etc/config
  37. $(INSTALL_DIR) $(1)/etc/init.d
  38. $(INSTALL_DIR) $(1)/etc/noddos
  39. $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/noddos $(1)/usr/sbin/
  40. $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/getnoddosdeviceprofiles $(1)/usr/bin
  41. $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/makenoddoscert.sh $(1)/usr/bin
  42. $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/noddos.init $(1)/etc/init.d/noddos
  43. $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/noddos.uciconfig $(1)/etc/config/noddos
  44. $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddos.conf-base $(1)/etc/noddos
  45. $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddosconfig.pem $(1)/etc/noddos
  46. $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/noddos.conf-base $(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.conf ]; then
  65. rm /var/etc/noddos.conf
  66. fi
  67. fi
  68. exit 0
  69. endef
  70. $(eval $(call BuildPackage,noddos))