Merge pull request #917 from ecsv/batadv-2022.3
[feed/routing.git] / alfred / Makefile
1 # SPDX-License-Identifier: GPL-2.0-only
2
3 include $(TOPDIR)/rules.mk
4
5 PKG_NAME:=alfred
6 PKG_VERSION:=2022.3
7 PKG_RELEASE:=$(AUTORELEASE)
8
9 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
10 PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
11 PKG_HASH:=c03f1763b855e32cc2384eca9560e9609c96d9b01ef5375f28765cee18005112
12
13 PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
14 PKG_LICENSE:=GPL-2.0-only MIT
15 PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT
16
17 PKG_BUILD_PARALLEL:=1
18
19 PKG_CONFIG_DEPENDS += \
20 CONFIG_ALFRED_NEEDS_lua \
21 CONFIG_ALFRED_NEEDS_libgps \
22 CONFIG_PACKAGE_ALFRED_VIS \
23 CONFIG_PACKAGE_ALFRED_BATHOSTS \
24 CONFIG_PACKAGE_ALFRED_GPSD
25
26 include $(INCLUDE_DIR)/package.mk
27
28 define Package/alfred
29 SECTION:=net
30 CATEGORY:=Network
31 TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon
32 URL:=https://www.open-mesh.org/
33 DEPENDS:= +libc @IPV6 +libnl-tiny +librt \
34 +ALFRED_NEEDS_lua:lua \
35 +ALFRED_NEEDS_libgps:libgps
36 endef
37
38 define Package/alfred/description
39 alfred is a user space daemon for distributing arbitrary local information
40 over the mesh/network in a decentralized fashion. This data can be anything
41 which appears to be useful - originally designed to replace the batman-adv
42 visualization (vis), you may distribute hostnames, phone books, administration
43 information, DNS information, the local weather forecast ...
44
45 alfred runs as daemon in the background of the system. A user may insert
46 information by using the alfred binary on the command line, or use special
47 programs to communicate with alfred (done via unix sockets). alfred then takes
48 care of distributing the local information to other alfred servers on other
49 nodes. This is done via IPv6 link-local multicast, and does not require any
50 configuration. A user can request data from alfred, and will receive the
51 information available from all alfred servers in the network.
52 endef
53
54 define Package/alfred/conffiles
55 /etc/config/alfred
56 endef
57
58 define Package/alfred/config
59 source "$(SOURCE)/Config.in"
60 endef
61
62 MAKE_FLAGS += \
63 CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \
64 CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \
65 CONFIG_ALFRED_CAPABILITIES=n \
66 LIBNL_NAME="libnl-tiny" \
67 LIBNL_GENL_NAME="libnl-tiny" \
68 REVISION="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)"
69
70 TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
71 TARGET_LDFLAGS += -Wl,--gc-sections -fuse-linker-plugin
72
73 define Package/alfred/install
74 $(INSTALL_DIR) $(1)/usr/sbin
75 cp -fpR $(PKG_BUILD_DIR)/alfred $(1)/usr/sbin/
76 [ "x$(CONFIG_PACKAGE_ALFRED_VIS)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/vis/batadv-vis $(1)/usr/sbin/ ; true
77 [ "x$(CONFIG_PACKAGE_ALFRED_GPSD)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/gpsd/alfred-gpsd $(1)/usr/sbin/ ; true
78 $(INSTALL_DIR) $(1)/etc/init.d
79 $(INSTALL_BIN) ./files/alfred.init $(1)/etc/init.d/alfred
80 $(INSTALL_DIR) $(1)/etc/config
81 $(INSTALL_DATA) ./files/alfred.config $(1)/etc/config/alfred
82 $(INSTALL_DIR) $(1)/etc/alfred
83 [ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN) ./files/bat-hosts.lua $(1)/etc/alfred/bat-hosts.lua ; true
84 endef
85
86 $(eval $(call BuildPackage,alfred))