aboutsummaryrefslogtreecommitdiffstats
path: root/package/system/rpcd
diff options
context:
space:
mode:
Diffstat (limited to 'package/system/rpcd')
-rw-r--r--package/system/rpcd/Makefile97
-rw-r--r--package/system/rpcd/files/rpcd.config7
-rwxr-xr-xpackage/system/rpcd/files/rpcd.init21
3 files changed, 125 insertions, 0 deletions
diff --git a/package/system/rpcd/Makefile b/package/system/rpcd/Makefile
new file mode 100644
index 0000000..dc7284a
--- /dev/null
+++ b/package/system/rpcd/Makefile
@@ -0,0 +1,97 @@
+#
+# Copyright (C) 2013-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=rpcd
+PKG_VERSION:=2015-01-10
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=git://nbd.name/luci2/rpcd.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)
+PKG_SOURCE_VERSION:=f00890cd6eb47ad9bb5da0fb6c50aedc8406e7c5
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
+
+PKG_LICENSE:=ISC
+PKG_LICENSE_FILES:=
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_BUILD_DIR)/include/rpcd $(1)/usr/include/
+endef
+
+define Package/rpcd/default
+ SECTION:=utils
+ CATEGORY:=Base system
+ TITLE:=OpenWrt ubus RPC backend server
+ DEPENDS:=+libubus +libubox
+endef
+
+define Package/rpcd
+ $(Package/rpcd/default)
+ DEPENDS+= +libuci +libblobmsg-json
+endef
+
+define Package/rpcd/description
+ This package provides the UBUS RPC backend server to expose various
+ functionality to frontend programs via JSON-RPC.
+endef
+
+define Package/rpcd/conffiles
+/etc/config/rpcd
+endef
+
+define Package/rpcd/install
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/rpcd.init $(1)/etc/init.d/rpcd
+ $(INSTALL_DIR) $(1)/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/rpcd $(1)/sbin/rpcd
+ $(INSTALL_DIR) $(1)/usr/share/rpcd/acl.d
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/unauthenticated.json $(1)/usr/share/rpcd/acl.d/unauthenticated.json
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_CONF) ./files/rpcd.config $(1)/etc/config/rpcd
+endef
+
+
+# 1: plugin name
+# 2: extra dependencies
+# 3: plugin title/description
+define BuildPlugin
+
+ PKG_CONFIG_DEPENDS += CONFIG_PACKAGE_luci-rpc-mod-$(1)
+
+ define Package/rpcd-mod-$(1)
+ $(Package/rpcd/default)
+ TITLE+= ($(1) plugin)
+ DEPENDS+=rpcd $(2)
+ endef
+
+ define Package/rpcd-mod-$(1)/description
+ $(3)
+ endef
+
+ define Package/rpcd-mod-$(1)/install
+ $(INSTALL_DIR) $$(1)/usr/lib/rpcd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(1).so $$(1)/usr/lib/rpcd/
+ endef
+
+ $$(eval $$(call BuildPackage,rpcd-mod-$(1)))
+
+endef
+
+$(eval $(call BuildPackage,rpcd))
+$(eval $(call BuildPlugin,file,,Provides ubus calls for file and directory operations.))
+$(eval $(call BuildPlugin,rpcsys,,Provides ubus calls for sysupgrade and password changing.))
+$(eval $(call BuildPlugin,iwinfo,+libiwinfo,Provides ubus calls for accessing iwinfo data.))
diff --git a/package/system/rpcd/files/rpcd.config b/package/system/rpcd/files/rpcd.config
new file mode 100644
index 0000000..499ea27
--- /dev/null
+++ b/package/system/rpcd/files/rpcd.config
@@ -0,0 +1,7 @@
+
+config login
+ option username 'root'
+ option password '$p$root'
+ list read '*'
+ list write '*'
+
diff --git a/package/system/rpcd/files/rpcd.init b/package/system/rpcd/files/rpcd.init
new file mode 100755
index 0000000..98b6333
--- /dev/null
+++ b/package/system/rpcd/files/rpcd.init
@@ -0,0 +1,21 @@
+#!/bin/sh /etc/rc.common
+
+START=12
+
+USE_PROCD=1
+NAME=rpcd
+PROG=/sbin/rpcd
+
+start_service() {
+ procd_open_instance
+ procd_set_param command "$PROG"
+ procd_close_instance
+}
+
+stop() {
+ service_stop /sbin/rpcd
+}
+
+reload() {
+ service_reload /sbin/rpcd
+}