From patchwork Sun Jul 8 09:36:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 940931 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:400c:c09::238; helo=mail-wm0-x238.google.com; envelope-from=swupdate+bncbcxploxj6ikrbr5wq7nakgqeervfxii@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b="UyX+/E77"; dkim-atps=neutral Received: from mail-wm0-x238.google.com (mail-wm0-x238.google.com [IPv6:2a00:1450:400c:c09::238]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41NjzZ0ckPz9s3q for ; Sun, 8 Jul 2018 19:37:13 +1000 (AEST) Received: by mail-wm0-x238.google.com with SMTP id o1-v6sf12501081wmc.6 for ; Sun, 08 Jul 2018 02:37:13 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1531042631; cv=pass; d=google.com; s=arc-20160816; b=l6EV1rzxWdh1WQHLD5diLOXCyE/xsuqAvLW3cfS4rRx/6XFCpqCEqAEZlnGZN0nTvm U6zsSlL7YH0KmJlK/Hnie6vCc4LHMIEGxnTZi+EvyxFehRROaX8i2mMPki9Y3svJVZZl lnEARRoRtyBi9mEFrShUWqvOOgfFHBN5HiCulxSym/EZ9IgZrxV+pqcMMaX/T/ly7K2V Qq12W86qJpmepw7mguEghRUyAHR6ainQC06SLVqHi7f17IgzOK0Oi5vytlzE0c5r2TSE 7bm1NBz4JOP9ueadFdCMeEqkWwk2maS9WypY4JByzWX0ZP3iFA6PICmWlXzIyTKSfnXn s0nw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:arc-authentication-results :arc-message-signature:mime-version:sender:dkim-signature :arc-authentication-results; bh=r0mgXplMcjoFhzziDJgGE3eDdO6Si8gBf07Pgrk/8o0=; b=Pizp3pPELQT/hx/t2A2Bt+RhLqmRO6KG9qM2tPS+pb7utKiIpuTvXNt6zRdslYF2VF 25n9paOZetkU4zq0A0I5OyfDX2n337RptSrp1iVZR5ldnG0yYZnItbP/uS1PXkJJs9S0 m1hMG2fTuscAwOGYKNlfe7EuclA9Eo/c4J2aBh7++KR4hQg2s9iEsQCJ0jn/O5iSn5Pd 1k0vjgNJj48J0D90HTWRLq99qty633xkfXCcSzfPU4ugf0A/HUHr7N7SKOho8WrpEhpm 9V5SS3D1wUQoxiUrDX3MuQZiO4MCEGRBaEK9qMH3YIUQ9xRB1BAWVbcwz78rTa3NsOta oDjw== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:mime-version:from:to:cc:subject:date:message-id:in-reply-to :references:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=r0mgXplMcjoFhzziDJgGE3eDdO6Si8gBf07Pgrk/8o0=; b=UyX+/E77anWEgfyYSMwznAF1ucjd0PMxLWqHcSjREtD5OJUl5lvcWHsbB4VZe/7ifM oRoxBgxJ/rjGfvPEqh0FLTkqsO/rQWOA7gh+MLa2j5M+H20yVzTCN1p0i66zG9ZDlVhQ s+pncbtcD7hSQACGVYAz8q7eVQmj3lzCX1CXUrsN5qc1b03UbB4hkRA58YtufB2OUqdy e5orb1sVKLXx0dHx9k9srV1R3z7HtXSHvxov+//lyKRBumse6v2L2vixyCSed8r4Rdk8 srKpZPUpPTS4iFuv4buPmxABvA/LBi/xBL8xsY8sL9aoojhCrQz6pvajexsljuFJFYFx mvAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:mime-version:from:to:cc:subject:date :message-id:in-reply-to:references:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=r0mgXplMcjoFhzziDJgGE3eDdO6Si8gBf07Pgrk/8o0=; b=rPEOFBaBSKUMtm9rE5PcUUuHCIGZuT1ZGeavzbJc49sqlG3HoFK01bplrw4MYHaVhS el5l17rYZtUfYGlEv97a0DCV+oYaQgnzfPljC/GM//t/ADeStSU2lQs/e7crICEHeBBr C/aD73I30MjDSIFeZFQ0FkIyPRI27KjeNknsYuGyBN3B7kB5tLimPvUln2l9fMeZHN6G FGGdaiMNVslu8hne5pe3p7bGak4MbglcaEmS2GmqRXVCN07VCv1W97zNdP6TgPLKMvFO 8KqMDDdScnkwwwIiOaq0oRYxrLwhhy3n9TaodQklyPpcr5/mndMbeCCKegZ+bFhTkEM1 u0nA== Sender: swupdate@googlegroups.com X-Gm-Message-State: APt69E1qdjl0gssvJU5nVfbgzuSfO636A7LoQyL3kTGwpL0kDyqgJ+iA d98pgfMRuM80pkPLKMC9cyI= X-Google-Smtp-Source: AAOMgpePs1GQnZAMFOvQCk/y7+1NfhfqruzbkymJvfLfuOoXyhc5pIuWY+4688D2MtborVqmSv9gLQ== X-Received: by 2002:adf:eb05:: with SMTP id s5-v6mr176195wrn.3.1531042631472; Sun, 08 Jul 2018 02:37:11 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: swupdate@googlegroups.com Received: by 2002:a5d:478c:: with SMTP id w12-v6ls3301210wrq.12.gmail; Sun, 08 Jul 2018 02:37:11 -0700 (PDT) X-Received: by 2002:adf:f04d:: with SMTP id t13-v6mr1376581wro.10.1531042631013; Sun, 08 Jul 2018 02:37:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531042630; cv=none; d=google.com; s=arc-20160816; b=zImKGFCue3jaciJFz2aQvRl/w16aEhreLFfbtkmaeTMkHBOdUhgnPVuNw5Z2GAA+kM ImyxZmte65iyFBC9pAdtBUS7ZfpdGDkYAyFWQ4a7KqL8KUuITF8xdWalQ3EG02rB86yd QfnQVwi/bojoaj9htNHf+rO4Bm/U4wOjST2yfyI8bO/yz8HJLgtU8WCxBv4S9CkOVz91 CXgC5gf1t10fYQWn69NyYHU/hokNzV6H+YkEHME3jAb1SVQgD974Al/d2agLcipGHNky XM75vnG5/52cQXwLAIv5hV1Nw97UsUmPw/zzuM2runLWFn4aJCMGJNiDIRo++X8shLkq dQ8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=f1j+TZJUpCUJaipwIZvmrn54qr1T07qUYLjP7XtDn0I=; b=NZKxKLjC1zZD7Sd+RJBB6KLcDTKdVUm1CMYDAcDYNdRWFpaui+ZGDkg2snq5rHkxEE H7HJPnh5Gb56v4kJ7GH3wMYHsCRmbKpYaYRJFKwVk1SBXGsOtTAcmxUNYq3zng5TxuFB cny6CRaS8JbTIfLi6xNyfRjFwKXwsp3KmQFAm4xniYclf/DHWi1BTPUsDADBQzVSRYes 0xQFcUG+/VVWakmJkH4B6NViTUIDaQfXNHLEKEfovqhfkoiloWd5BRSNcE1qU11YrZ5K GXAcWI8XjWrQ0wL9XvxwYHw6RjBFhOeFEj+ETRVC41iInQ9TlTfBH/1z5/9esALMVqYa YKZg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Received: from mail-out.m-online.net (mail-out.m-online.net. [212.18.0.10]) by gmr-mx.google.com with ESMTPS id v124-v6si462536wma.2.2018.07.08.02.37.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 08 Jul 2018 02:37:10 -0700 (PDT) Received-SPF: neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) client-ip=212.18.0.10; Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 41NjzV5fNxz1qtNv; Sun, 8 Jul 2018 11:37:10 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 41NjzV5SYPz1qqkC; Sun, 8 Jul 2018 11:37:10 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id d1-MvkiZ_58R; Sun, 8 Jul 2018 11:37:09 +0200 (CEST) Received: from babic.homelinux.org (host-88-217-136-221.customer.m-online.net [88.217.136.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Sun, 8 Jul 2018 11:37:09 +0200 (CEST) Received: from localhost (mail.babic.homelinux.org [127.0.0.1]) by babic.homelinux.org (Postfix) with ESMTP id 42D2A4540633; Sun, 8 Jul 2018 11:37:09 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at babic.homelinux.org Received: from babic.homelinux.org ([127.0.0.1]) by localhost (mail.babic.homelinux.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SbXZyJES6SUp; Sun, 8 Jul 2018 11:37:07 +0200 (CEST) Received: from papero.fritz.box (papero.fritz.box [192.168.178.132]) by babic.homelinux.org (Postfix) with ESMTP id 251194540643; Sun, 8 Jul 2018 11:37:02 +0200 (CEST) From: Stefano Babic To: swupdate@googlegroups.com Cc: Stefano Babic Subject: [swupdate] [[meta-swupdate] [PATCH] 6/7] rescuegui: a GUI for rescue system Date: Sun, 8 Jul 2018 11:36:56 +0200 Message-Id: <1531042617-6503-6-git-send-email-sbabic@denx.de> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1531042617-6503-1-git-send-email-sbabic@denx.de> References: <1531042617-6503-1-git-send-email-sbabic@denx.de> X-Original-Sender: sbabic@denx.de X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , rescueGUI is a small application drawing on the Linux Framebuffer with a small footprint and suitable to be added to the rescue system. It is written in LUA with a binding to SWUpdate's progress interface. Signed-off-by: Stefano Babic --- recipes-support/rescuegui/files/config.lua | 4 + recipes-support/rescuegui/files/rescuegui | 176 +++++++++++++++++++++++++++++ recipes-support/rescuegui/rescuegui_git.bb | 54 +++++++++ 3 files changed, 234 insertions(+) create mode 100644 recipes-support/rescuegui/files/config.lua create mode 100644 recipes-support/rescuegui/files/rescuegui create mode 100644 recipes-support/rescuegui/rescuegui_git.bb diff --git a/recipes-support/rescuegui/files/config.lua b/recipes-support/rescuegui/files/config.lua new file mode 100644 index 0000000..cd45225 --- /dev/null +++ b/recipes-support/rescuegui/files/config.lua @@ -0,0 +1,4 @@ +APP_ID = "PDM-3 Recovery System" +LOGO = "IFM/logo-ifm.png" +NOREBOOT = true + diff --git a/recipes-support/rescuegui/files/rescuegui b/recipes-support/rescuegui/files/rescuegui new file mode 100644 index 0000000..6caa6e5 --- /dev/null +++ b/recipes-support/rescuegui/files/rescuegui @@ -0,0 +1,176 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: rescuegui +# Required-Start: $local_fs +# Should-Start: +# Required-Stop: $local_fs +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start rescuegui application +### END INIT INFO + +# The definition of actions: (From LSB 3.1.0) +# start start the service +# stop stop the service +# restart stop and restart the service if the service is already running, +# otherwise start the service +# try-restart restart the service if the service is already running +# reload cause the configuration of the service to be reloaded without +# actually stopping and restarting the service +# force-reload cause the configuration to be reloaded if the service supports +# this, otherwise restart the service if it is running +# status print the current status of the service + +# The start, stop, restart, force-reload, and status actions shall be supported +# by all init scripts; the reload and the try-restart actions are optional + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +DESC="rescuegui" +NAME="SWUpdateGUI" +DAEMON=/opt/rescueGUI/SWUpdateGUI.lua +PIDFILE=/var/run/$NAME.pid + +. /etc/init.d/functions || exit 1 + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# +# Function that starts the daemon/service +# +do_start() { + local status pid + + status=0 + pid=`pidofproc $NAME` || status=$? + case $status in + 0) + echo "$DESC already running ($pid)." + exit 1 + ;; + *) + echo "Starting $DESC ..." + cd /opt/rescueGUI + export FONTDIR=/usr/share/fonts/truetype + exec $DAEMON & + exit 0 + ;; + esac +} + +# +# Function that stops the daemon/service +# +do_stop() { + local pid status + + status=0 + pid=`pidofproc $NAME` || status=$? + case $status in + 0) + # Exit when fail to stop, the kill would complain when fail + kill -s 15 $pid >/dev/null && rm -f $PIDFILE && \ + echo "Stopped $DESC ($pid)." || exit $? + ;; + *) + echo "$DESC is not running; none killed." >&2 + ;; + esac + + # Wait for children to finish too if this is a daemon that forks + # and if the daemon is only ever run from this initscript. + # If the above conditions are not satisfied then add some other code + # that waits for the process to drop all resources that could be + # needed by services started subsequently. A last resort is to + # sleep for some time. + return $status +} + +# +# Function that sends a SIGHUP to the daemon/service +# +do_reload() { + local pid status + + status=0 + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + pid=`pidofproc $NAME` || status=$? + case $status in + 0) + echo "Reloading $DESC ..." + kill -s 1 $pid || exit $? + ;; + *) + echo "$DESC is not running; none reloaded." >&2 + ;; + esac + exit $status +} + + +# +# Function that shows the daemon/service status +# +status_of_proc () { + local pid status + + status=0 + # pidof output null when no program is running, so no "2>/dev/null". + pid=`pidofproc $NAME` || status=$? + case $status in + 0) + echo "$DESC is running ($pid)." + exit 0 + ;; + *) + echo "$DESC is not running." >&2 + exit $status + ;; + esac +} + +case "$1" in +start) + do_start + ;; +stop) + do_stop || exit $? + ;; +status) + status_of_proc + ;; +restart) + # Always start the service regardless the status of do_stop + do_stop + do_start + ;; +try-restart|force-reload) + # force-reload is the same as reload or try-restart according + # to its definition, the reload is not implemented here, so + # force-reload is the alias of try-restart here, but it should + # be the alias of reload if reload is implemented. + # + # Only start the service when do_stop succeeds + do_stop && do_start + ;; +#reload) + # If the "reload" action is implemented properly, then let the + # force-reload be the alias of reload, and remove it from + # try-restart|force-reload) + # + #do_reload + #;; +*) + echo "Usage: $0 {start|stop|status|restart|try-restart|force-reload}" >&2 + exit 3 + ;; +esac + diff --git a/recipes-support/rescuegui/rescuegui_git.bb b/recipes-support/rescuegui/rescuegui_git.bb new file mode 100644 index 0000000..def2ee0 --- /dev/null +++ b/recipes-support/rescuegui/rescuegui_git.bb @@ -0,0 +1,54 @@ +SUMMARY="Simple GUI for SWUpdate in rescue mode" +DESCRIPTION = "This is a simple GUI that allows to set network addresses \ + and start an install from local media. It shows progress on the HMI" +SECTION="swupdate" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +inherit update-rc.d + +DEPENDS += "swupdate lua lua-swupdate luafilesystem" +RDEPENDS_${PN} += "swupdate-tools" + +SRC_URI = "git://github.com/sbabic/SWUpdateGUI.git;protocol=https \ + file://rescuegui \ + file://config.lua \ + " + +# Modify these as desired +PV = "1.0+git${SRCPV}" +#SRCREV = "e286a994e7ed4fc660d644634abc4837c1f78beb" +SRCREV = "${AUTOREV}" + +S = "${WORKDIR}/git" + +FILES_${PN} = "/opt ${sysconfdir}" + +do_configure () { + # Specify any needed configure commands here + : +} + +do_compile () { + # Specify compilation commands here + : +} + +do_install () { + install -d ${D}/opt/rescueGUI + install -d ${D}/opt/rescueGUI/tek/ui/locale/SWUpdate/SWUpdate-GUI + for f in ${S}/*.lua;do + install -m 755 ${f} ${D}/opt/rescueGUI + done + for f in ${S}/tek/ui/locale/SWUpdate/SWUpdate-GUI/*;do + install -m 644 ${f} ${D}/opt/rescueGUI/tek/ui/locale/SWUpdate/SWUpdate-GUI + done + + install -m 644 ${S}/config.lua ${D}/opt/rescueGUI + install -d ${D}/${sysconfdir}/init.d + install -m 755 ${WORKDIR}/rescuegui ${D}${sysconfdir}/init.d +} + +# Be sure to run the GUI after starting SWUpdate +INITSCRIPT_NAME = "rescuegui" +INITSCRIPT_PARAMS = "defaults 90"