attendedsysupgrade-common: add package

due to various clients and the existence of rpcd-mod-rpcsys the package
rpcd-mod-attendedsysupgrade is superflous.

From now on the attendedsysupgrade-common package should be dependencie
of all kinds of clients.

Currently active or planned:
- luci-app-attendedsysupgrade
- attendedsysupgrade cli in shell
- attendedsysupgrade cli in c

Signed-off-by: Paul Spooren <paul@spooren.de>
This commit is contained in:
Paul Spooren 2017-11-05 18:45:44 +01:00
parent a665803ef2
commit 861e5eda86
4 changed files with 11 additions and 93 deletions

View File

@ -4,39 +4,25 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=rpcd-mod-attendedsysupgrade
PKG_VERSION:=1.1
PKG_RELEASE:=2
PKG_NAME:=attendedsysupgrade-common
PKG_VERSION:=0.1
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk
define Package/rpcd-mod-attendedsysupgrade
define Package/attendedsysupgrade-common
SECTION:=utils
CATEGORY:=Base system
TITLE:=OpenWrt ubus RPC backend server (attendedsysupgrade)
TITLE:=Common files neede by attendedsysupgrade packages
MAINTAINER:=Paul Spooren <paul@spooren.de>
DEPENDS:=rpcd +cgi-io +rpcd-mod-packagelist
DEPENDS:=rpcd +rpcd-mod-rpcsys +rpcd-mod-packagelist
endef
define Package/rpcd-mod-attendedsysupgrade/description
Implements a sysupgrade procedure which can be used to invoke sysupgrade via ubus calls
The sysupgrade image must be placed at /tmp/sysupgrade.bin
After a successfull installation the device will perform a restart.
define Package/attendedsysupgrade-common/description
Common needed files for attendedsysupgrade tool
Usage:
ubus call attendedsysupgrade sysupgrade
Example output:
{
"message": "starting sysupgrade"
}
Possible parameters:
keep_settings: bool # preserve /config/
Manages dependencies and brings settings used by clients.
UCI options:
@ -62,12 +48,9 @@ endef
define Build/Configure
endef
define Package/rpcd-mod-attendedsysupgrade/install
$(INSTALL_DIR) $(1)/usr/libexec/rpcd/
$(INSTALL_BIN) ./files/attendedsysupgrade.rpcd $(1)/usr/libexec/rpcd/attendedsysupgrade
define Package/attendedsysupgrade-common/install
$(INSTALL_DIR) $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/attendedsysupgrade.defaults $(1)/etc/uci-defaults/attendedsysupgrade
endef
$(eval $(call BuildPackage,rpcd-mod-attendedsysupgrade))
$(eval $(call BuildPackage,attendedsysupgrade-common))

View File

@ -1,26 +0,0 @@
{
"attendedsysupgrade": {
"description": "attended sysupgrade via rpcd",
"read": {
"ubus": {
"attendedsysupgrade": [
"sysupgrade"
],
"system": [
"board"
],
"uci": [
"get"
]
},
"uci": [
"*"
]
},
"write": {
"cgi-io": [
"upload"
]
}
}
}

View File

@ -1,39 +0,0 @@
#!/bin/sh
. /usr/share/libubox/jshn.sh
case "$1" in
list)
json_init
json_add_object "sysupgrade"
json_add_boolean "keep_settings" 1
json_close_object
json_dump
;;
call)
case "$2" in
sysupgrade)
read input;
json_load "$input"
json_get_var keep_settings keep_settings
if [ -f "/tmp/sysupgrade.bin" ]; then
json_init
json_add_string "message" "starting sysupgrade"
json_dump
/etc/init.d/uhttpd stop
/etc/init.d/dropbear stop
sleep 1;
if [ "$keep_settings" -eq "0" ]; then
keep_settings_param="-n"
fi
/sbin/sysupgrade $keep_settings_param /tmp/sysupgrade.bin
fi
json_init
json_add_string "message" "could not find /tmp/sysupgrade.bin"
json_dump
esac
;;
esac