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.
 
 
 
 
 
 

132 lines
3.9 KiB

#
# Copyright (C) 2019-2021 CZ.NIC z.s.p.o. (https://www.nic.cz/)
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=atlas-sw-probe
PKG_VERSION:=5020
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/RIPE-NCC/ripe-atlas-software-probe.git
PKG_SOURCE:=ripe-atlas-software-probe-$(PKG_VERSION).tar.gz
PKG_MIRROR_HASH:=846aa20ff4bc938c07526a9893dcae4ac7dfa41982a5b2bcfe2dd53c974ecdc9
PKG_SOURCE_VERSION:=edee49c942b726a1d8865d91c8d7f32843bc8ad1
PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=LICENSE
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/atlas-sw-probe
SECTION:=net
CATEGORY:=Network
TITLE:=RIPE Atlas software probe
URL:=https://atlas.ripe.net/about/probes/
DEPENDS:=+atlas-probe +PACKAGE_dropbear:dropbearconvert
endef
define Package/atlas-sw-probe/description
RIPE Atlas SW probe is software variant of RIPE Atlas Probe.
It contains utilities which helps actively measure
Internet connectivity through ping, traceroute, DNS, SSL/TLS, NTP, and HTTP.
Data are then collected, aggregated and published by the RIPE NCC.
endef
define Package/atlas-sw-probe-rpc
SECTION:=net
CATEGORY:=Network
TITLE:=RPC service
URL:=https://atlas.ripe.net/about/probes/
DEPENDS:=+atlas-probe +bind-dig +rpcd
endef
define Package/atlas-sw-probe-rpc/description
Provides ubus calls for probe.
endef
Build/Compile:=:
Build/Install:=:
define Package/atlas-sw-probe-rpc/postinst
#!/bin/sh
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/rpcd restart
exit 0
endef
define Package/atlas-sw-probe-rpc/postrm
#!/bin/sh
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/rpcd restart
exit 0
endef
define Package/atlas-sw-probe/conffiles
/etc/atlas/
/etc/config/atlas
/usr/libexec/atlas-probe-scripts/state/config.txt
endef
TMP_BASE_DIR:=/tmp/ripe_atlas_probe
SCRIPTS_DIR:=/usr/libexec/atlas-probe-scripts
define Package/atlas-sw-probe/install
$(INSTALL_DIR) $(1)/$(SCRIPTS_DIR)
$(INSTALL_DIR) $(1)/$(SCRIPTS_DIR)/{etc,state,bin/arch,bin/bin}
# Copy config
$(CP) $(PKG_BUILD_DIR)/atlas-config/etc/* $(1)/$(SCRIPTS_DIR)/etc/
# Copy firmware version
$(CP) $(PKG_BUILD_DIR)/atlas-config/state/FIRMWARE_APPS_VERSION $(1)/$(SCRIPTS_DIR)/state/
# Set probe mode
echo "prod" > $(1)/$(SCRIPTS_DIR)/state/mode
# Copy scripts
$(CP) $(PKG_BUILD_DIR)/bin/{ATLAS,common-pre.sh,common.sh,reginit.sh,resolvconf} $(1)/$(SCRIPTS_DIR)/bin/
$(CP) $(PKG_BUILD_DIR)/bin/arch/{linux,openwrt-sw-probe} $(1)/$(SCRIPTS_DIR)/bin/arch/
# Create config info
echo "DEVICE_NAME=openwrt-sw-probe" > $(1)/$(SCRIPTS_DIR)/bin/config.sh
echo "ATLAS_BASE=$(SCRIPTS_DIR)" >> $(1)/$(SCRIPTS_DIR)/bin/config.sh
echo "ATLAS_STATIC=$(SCRIPTS_DIR)" >> $(1)/$(SCRIPTS_DIR)/bin/config.sh
echo "SUB_ARCH=openwrt-$(ARCH)-$(PKG_VERSION)-$(PKG_RELEASE)" >> $(1)/$(SCRIPTS_DIR)/bin/bin/config.sh
# Enable sending interface traffic statistics as Atlas measurement results
echo "RXTXRPT=yes" > $(1)/$(SCRIPTS_DIR)/state/config.txt
# Fix permision
chmod 755 $(1)/$(SCRIPTS_DIR)/bin
# Add registration instruction
$(INSTALL_DIR) $(1)/etc/atlas/
$(CP) ./files/atlas.readme $(1)/etc/atlas/
# Create softlinks for writable dirs
$(LN) $(TMP_BASE_DIR)/crons $(1)/$(SCRIPTS_DIR)/crons
$(LN) $(TMP_BASE_DIR)/data $(1)/$(SCRIPTS_DIR)/data
$(LN) $(TMP_BASE_DIR)/run $(1)/$(SCRIPTS_DIR)/run
$(LN) $(TMP_BASE_DIR)/status $(1)/$(SCRIPTS_DIR)/status
# Copy init and config
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files/atlas.init $(1)/etc/init.d/atlas
$(INSTALL_DIR) $(1)/etc/config/
$(INSTALL_CONF) ./files/atlas.conf $(1)/etc/config/atlas
endef
define Package/atlas-sw-probe-rpc/install
$(INSTALL_DIR) $(1)/usr/libexec/rpcd
$(INSTALL_BIN) ./files/atlas_rpcd.sh $(1)/usr/libexec/rpcd/atlas
endef
$(eval $(call BuildPackage,atlas-sw-probe))
$(eval $(call BuildPackage,atlas-sw-probe-rpc))