summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--abs/core/LinHES-config/PKGBUILD4
-rwxr-xr-xabs/core/LinHES-config/systemconfig.py8
-rwxr-xr-xabs/core/LinHES-system/LinHES-session120
-rwxr-xr-xabs/core/LinHES-system/PKGBUILD8
-rw-r--r--abs/core/LinHES-system/install_supplemental_service.sh14
-rw-r--r--abs/core/LinHES-system/xmsg.py163
-rw-r--r--abs/core/func/PKGBUILD2
-rw-r--r--abs/core/func/func.install3
-rw-r--r--abs/core/supplemental-web/PKGBUILD10
-rw-r--r--abs/core/supplemental-web/backend_control.sh28
-rw-r--r--abs/core/supplemental-web/cgi/beclear.cgi2
-rw-r--r--abs/core/supplemental-web/cgi/bestart.cgi6
-rw-r--r--abs/core/supplemental-web/cgi/bestop.cgi8
-rw-r--r--abs/core/xymon/PKGBUILD2
-rw-r--r--abs/core/xymon/xymon.install4
15 files changed, 298 insertions, 84 deletions
diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index b373509..21b1614 100644
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-config
pkgver=2.3
-pkgrel=54
+pkgrel=55
conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
pkgdesc="Install and configure your system"
depends=('bc' 'libstatgrab' 'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -133,6 +133,6 @@ md5sums=('f6bca2af75ddb0902f0fa9ff4b6e4fd7'
'f0988a801216b44c96bf17e24a23e3a9'
'23d0e12b7ca1cc6ea6b993c1d7ff20b9'
'bce31dc826812d1b32003f77f9945ca9'
- '892ba04c504b9be04b2573d015382eae'
+ '59dd4d49fd92a35f4111aa9b77fa21b6'
'2596460462cf6c889cf8f95485537b20'
'a63ff9ef5250965aeabc74bfa8e43981')
diff --git a/abs/core/LinHES-config/systemconfig.py b/abs/core/LinHES-config/systemconfig.py
index aa94aec..a8bae81 100755
--- a/abs/core/LinHES-config/systemconfig.py
+++ b/abs/core/LinHES-config/systemconfig.py
@@ -62,7 +62,7 @@ def main(argv):
global systemconfig
systemconfig["MVROOT"]=MVROOT
restartlcd = False
- cmdmodule={"misc":False , "sleep":False , "hostype":False , "hostypec":False , "advanced":False , "audio":False , "network":False , "advancedX":False , "webuser":False , "restartfe":False , "reloadfe":False , "ddns":False , "screensaver":False , "ir":False , "this_is_install":False , "user":False, "software":False, "plugins":False, "smolt":False, "all":False, "dhcp_request":False }
+ cmdmodule={"misc":False , "sleep":False , "hostype":False , "hostypec":False , "advanced":False , "audio":False , "network":False , "advancedX":False , "webuser":False , "restartfe":False , "reloadfe":False , "ddns":False , "screensaver":False , "ir":False , "this_is_install":False , "user":False, "software":False, "plugins":False, "smolt":False, "all":False, "dhcp_request":False , "func":False}
try:
opts, args = getopt.getopt(argv, 'c:hm:d:', ["help","modules" ] )
except getopt.GetoptError, why:
@@ -114,6 +114,12 @@ def main(argv):
logging.debug(" Setting the frontend to restart due to network change")
cmdmodule["restartfe"] = True
+ if cmdmodule["func"]:
+ from mv_hostype import setup_func_minion
+ setup_func_minion(systemconfig.get("dbhost"),systemconfig.get("hostname"))
+
+
+
if cmdmodule["hostype"]:
import mv_hostype
diff --git a/abs/core/LinHES-system/LinHES-session b/abs/core/LinHES-system/LinHES-session
index 39a60b0..626d346 100755
--- a/abs/core/LinHES-system/LinHES-session
+++ b/abs/core/LinHES-system/LinHES-session
@@ -46,10 +46,24 @@ export MALLOC_CHECK_=0
font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
}
-function msg(){
+function msg_osd(){
echo -e "$1" | osd_cat --pos=middle --align=center --offset=200 --delay=5 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
}
+function msg_pyosd(){
+ /usr/LH/bin/xmsg.py -m "$1"
+}
+
+function msg(){
+ if [ x$STARTUP_STYLE = xmythvantage ]
+ then
+ msg_pyosd "$1"
+ else
+ msg_osd "$1"
+ fi
+
+}
+
function unclutter(){
if [ -e /etc/unclutter ]
@@ -101,14 +115,14 @@ function run_tilda(){
center=$[width/2]
sixtypercent=`echo "scale=0; ( $width*.6) / 1" |bc`
quarter_height=`echo "scale=0; ($height*.35) /1" |bc`
-
- if [ $sixtypercent -lt 700 ]
+
+ if [ $sixtypercent -lt 700 ]
then
sixtypercent=700
fi
- if [ $quarter_height -lt 350 ]
+ if [ $quarter_height -lt 350 ]
then
quarter_height=350
fi
@@ -202,16 +216,14 @@ function first_configure_default(){
function first_configure_mv(){
if [ ! $SystemType = "Frontend_only" ]
then
- if [ ! -f ~/.configured ]
- then
- autocard.py -g &
- MythVantage -b
- #/root/autocard.py -g &
- #/usr/local/bin/mythinstall -b
-
- #0 yes
- #1 yes/autodetech
- #2 no
+ if [ -f ~/.configure ]
+ then
+ #for now skip these
+ #autocard.py -g &
+ #MythVantage -b
+ #0 yes
+ #1 yes/autodetech
+ #2 no
STATUS=$?
if [ ! $STATUS = 2 ]
then
@@ -219,9 +231,10 @@ function first_configure_mv(){
/usr/local/bin/mythtv-setup
/usr/bin/backend_control.sh start BE 127.0.0.1
fi
- touch ~/.configured
- fi
+ rm ~/.configure
+ fi
fi
+
}
function start_myth() {
@@ -242,65 +255,39 @@ function start_myth() {
then
start_myth_mv
else
- start_myth_default
+ run_myth
fi
}
-function start_myth_default(){
-
+function run_myth(){
if [ -f /tmp/nomfe ]
- then
- exit 0
- else
- if [ -f /tmp/debug ]
then
- echo "using gbd/debug"
- gdb /usr/bin/mythfrontend -x $MV_ROOT/mfegdbcommands.txt
- mv gdb.txt gdb.txt.mythfrontend
- sleep 10
+ exit 0
else
- killall -9 irexec
- /usr/bin/irexec -d
- $STARTCMD 2>&1 &
+ if [ -f /tmp/debug ]
+ then
+ echo "using gbd/debug"
+ gdb /usr/bin/mythfrontend -x $MV_ROOT/mfegdbcommands.txt
+ mv gdb.txt gdb.txt.mythfrontend
+ sleep 5
+ else
+ killall -9 irexec
+ /usr/bin/irexec -d
+ $STARTCMD 2>&1 &
+ fi
fi
- fi
-
-
-
-
}
function start_myth_mv(){
-
while [ x = x ]
do
- if [ -f /tmp/nomfe ]
- then
- sleep 120
- else
- if [ -f /tmp/debug ]
- then
-
- echo "using gbd/debug"
- gdb /usr/local/bin/mythfrontend -x $MV_ROOT/mfegdbcommands.txt
- bash -c "osdClient.pl localhost 5000 'Restart: mdb.txt.mythfrontend:::SYS' "&
- mv gdb.txt gdb.txt.mythfrontend
- sleep 10
-
- else
- killall -9 irexec
- /usr/bin/irexec &
- $STARTCMD 2>&1
- fi
- fi
- echo "_______________________________________________________"
+ run_myth
+ echo "_______________________________________________________"
done
-
-
- }
+}
function set_background()
@@ -317,11 +304,8 @@ then
else
#if using mythvantage style, start the WM right away
# this is done so that starting mythtv can loop.
-
- if [ x$STARTUP_STYLE = xmythvantage ]
- then
- $WM &
- fi
+ $WM &
+ pid=$!
mouse_move
keylaunch
set_background
@@ -330,14 +314,16 @@ else
run_tilda
start_screensaver
show_help_tip
- #update_apple_trailers
+ update_apple_trailers
+
first_configure
start_myth
- # start windowmanger
+ # wait for the windowmanger
+ #This will make the session wait on the WM to exit.
if [ x$STARTUP_STYLE != xmythvantage ]
then
- $WM
+ wait $pid
fi
fi
diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD
index df31953..9cc0aa9 100755
--- a/abs/core/LinHES-system/PKGBUILD
+++ b/abs/core/LinHES-system/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-system
pkgver=2
-pkgrel=11
+pkgrel=12
arch=('i686')
MVDIR=$startdir/pkg/usr/LH
BINDIR=$startdir/pkg/usr/bin
@@ -8,7 +8,7 @@ install=LinHES.install
pkgdesc="scripts and things related to having an automated system"
depends=(linhes-sounds xdotool fluxbox tilda keylaunch python_aosd)
backup=(etc/modprobe.d/alsa-base)
-binfiles="LinHES-start optimize_mythdb.py myth_mtc.py myth_mtc.sh LinHES-run firstboot.sh load-modules-mythvantage.sh unclutter-toggle.sh tvterm.sh myth_mtc.lr smolt.cron mythfrontend-start set_windowmanager.sh myth_status.py myth_status.sh"
+binfiles="LinHES-start optimize_mythdb.py myth_mtc.py myth_mtc.sh LinHES-run firstboot.sh load-modules-mythvantage.sh unclutter-toggle.sh tvterm.sh myth_mtc.lr smolt.cron mythfrontend-start set_windowmanager.sh myth_status.py myth_status.sh xmsg.py install_supplemental_service.sh"
source=(LinHES-session LinHES-profile.sh $binfiles alsa-base)
@@ -37,7 +37,7 @@ build() {
mkdir $startdir/pkg/etc/logrotate.d
cp $startdir/myth_mtc.lr $startdir/pkg/etc/logrotate.d
}
-md5sums=('2836a90e5d191faae80fad37025a5c9b'
+md5sums=('989c22c2eae00501f5b46f215dbf5e59'
'5881bdb43d578ec3a79d1f77ea58a3db'
'a875ee97f86e46f34a741c2bc455f894'
'76b2637cac0452b3acdbeeb4e8a5474b'
@@ -54,4 +54,6 @@ md5sums=('2836a90e5d191faae80fad37025a5c9b'
'dae4dfb638b11c8c79fb1424a60b762a'
'361bf81a6a117d61c3bc32dda91c4cb9'
'ce72aad1fc66c575f863d4bfbf65ce16'
+ 'd03aedeeeda0f5e9c1eb437411c88477'
+ '94ce8f1d5085c0db7b267db8c2e9a3ff'
'eb879fee9603a05d5420d4ce8ed9e450')
diff --git a/abs/core/LinHES-system/install_supplemental_service.sh b/abs/core/LinHES-system/install_supplemental_service.sh
new file mode 100644
index 0000000..d33cb18
--- /dev/null
+++ b/abs/core/LinHES-system/install_supplemental_service.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+. /etc/systemconfig
+if [ $SystemType = Master_backend -o $SystemType = Standalone ]
+then
+ pacman -S --noconfirm supplemental-web
+ add_service.sh certmaster
+ add_service.sh funcd
+ add_service.sh xymon-server
+else
+ echo "This service is only available for StandAlone or Master_backend LinHES systems"
+
+fi
+
+
diff --git a/abs/core/LinHES-system/xmsg.py b/abs/core/LinHES-system/xmsg.py
new file mode 100644
index 0000000..669a796
--- /dev/null
+++ b/abs/core/LinHES-system/xmsg.py
@@ -0,0 +1,163 @@
+#!/usr/bin/python2
+# other modules
+
+import sys, string
+import aosd
+import ConfigParser
+import getopt
+
+
+# =================================
+
+
+class msg():
+ def scroll(self,osd, width, height, display_time,position):
+ pos = position
+ step = 1
+
+ osd.set_position(pos, width, height)
+ (x, y, _, _) = osd.get_geometry()
+ osd.set_position_offset(width, height)
+ osd.show()
+
+ x -= 1
+ y += height - 1;
+ for i in range(1, height + 1, step):
+ osd.loop_for(5)
+ y -= step
+ osd.set_geometry(x, y, width, i)
+
+ osd.set_position(pos, width, height)
+ osd.set_position_offset(-1, -1)
+ (x, y, _, _) = osd.get_geometry()
+ #time to display
+ osd.loop_for(display_time)
+
+ for i in range(height, 0, -step):
+ y += step
+ osd.set_geometry(x, y, width, i);
+ osd.loop_for(1);
+
+ osd.hide();
+
+ def setup(self,font_color,font_type):
+ osd = aosd.AosdText()
+ osd.set_transparency(aosd.TRANSPARENCY_COMPOSITE)
+ if osd.get_transparency() != aosd.TRANSPARENCY_COMPOSITE:
+ osd.set_transparency(aosd.TRANSPARENCY_NONE)
+
+ osd.geom_x_offset = 10
+ osd.geom_y_offset = 0
+
+ osd.back_color = "white"
+ osd.back_opacity = 50
+
+ osd.shadow_color = "black"
+ osd.shadow_opacity = 127
+ osd.shadow_x_offset = 2
+ osd.shadow_y_offset = 2
+
+ osd.fore_color = font_color
+ osd.fore_opacity = 255
+
+ osd.set_font(font_type)
+ osd.wrap = aosd.PANGO_WRAP_WORD_CHAR
+ osd.alignment = aosd.PANGO_ALIGN_LEFT
+ osd.set_layout_width(osd.get_screen_wrap_width())
+ return osd
+
+ def set_string(self, osd, text):
+ osd.set_text(text)
+ return osd.get_text_size()
+
+ def setup_config(self):
+ module_config = ConfigParser.RawConfigParser()
+ try:
+ module_config.read('/usr/MythVantage/etc/msg.cfg')
+ except:
+ pass
+ return module_config
+
+
+
+ def display (self,flags):
+ """
+ parse the msg for display.
+ """
+ try:
+ text,config_section=flags.split("|")
+ if config_section == '':
+ config_section="default"
+ except:
+ text=flags
+ config_section="default"
+
+ module_config = self.setup_config()
+
+ display_time=5000
+ position=6
+ font_color="green"
+ font_type="Times New Roman Italic 36"
+ try:
+ display_time = int(module_config.get(config_section,"display_time"))
+ except:
+ pass
+ try:
+ position = int(module_config.get(config_section,"position"))
+ except:
+ pass
+ try:
+ font_color = module_config.get(config_section,"font_color")
+ except:
+ pass
+ try:
+ font_type = module_config.get(config_section,"font_type")
+ except:
+ pass
+
+ #this bit of code converts a \n to EOL/BREAK
+ textline=text.split('\\n')
+ try:
+ textline.remove(' ')
+ except:
+ pass
+ text=chr(10).join(textline)
+
+ #cmd = sub_process.Popen("/usr/bin/wall %s" % text,stdout=sub_process.PIPE,shell=True)
+ #data = cmd.communicate()[0]
+ osd = self.setup(font_color, font_type)
+ width, height = self.set_string(osd, text)
+ self.scroll(osd, width, height, display_time, position)
+
+ return ("Message delivered")
+
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "hm:", ["help", "msg="])
+ except getopt.GetoptError, err:
+ # print help information and exit:
+ print str(err) # will print something like "option -a not recognized"
+ usage()
+ sys.exit(2)
+ in_msg = None
+
+ for o, a in opts:
+ if o in ("-h", "--help"):
+ usage()
+ sys.exit()
+ elif o in ("-m", "--msg"):
+ in_msg = a
+ else:
+ assert False, "unhandled option"
+ txt_msg=in_msg
+ out_msg=msg()
+
+ out_msg.display(txt_msg)
+
+if __name__ == "__main__":
+ main()
+
+
diff --git a/abs/core/func/PKGBUILD b/abs/core/func/PKGBUILD
index 1110451..79bdf04 100644
--- a/abs/core/func/PKGBUILD
+++ b/abs/core/func/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=func
pkgver=0.25
-pkgrel=4
+pkgrel=5
pkgdesc="fedora unifed network controller"
url=""
license="gpl"
diff --git a/abs/core/func/func.install b/abs/core/func/func.install
index f204214..6604ecb 100644
--- a/abs/core/func/func.install
+++ b/abs/core/func/func.install
@@ -22,7 +22,8 @@ post_install() {
then
mkdir -p /var/log/func
fi
-
+ #setups up the minion name
+ systemconfig.py -m func
}
diff --git a/abs/core/supplemental-web/PKGBUILD b/abs/core/supplemental-web/PKGBUILD
index 6df239b..7c30873 100644
--- a/abs/core/supplemental-web/PKGBUILD
+++ b/abs/core/supplemental-web/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=supplemental-web
pkgver=1.0
-pkgrel=9
+pkgrel=10
arch=('i686')
MVDIR=$startdir/pkg/usr/MythVantage
#BINDIR=$MVDIR/bin
@@ -9,7 +9,7 @@ install=supplemental-web.install
#binfiles="saytime.sh backup_job restore_job.sh update_system update_system_all backend_control.sh grabkey.py notify.py"
#source=($binfiles mfegdbcommands.txt mbegdbcommands.txt 45-event.rules lighttpd-supplement.conf)
backup=('extra.cfg.txt')
-source=(lighttpd-supplement.conf extra.cfg.txt wakeonlan.sh)
+source=(lighttpd-supplement.conf extra.cfg.txt wakeonlan.sh backend_control.sh notify.py)
depends=('lighttpd' 'php' 'fcgi' 'python' 'xymonserver' 'certmaster' 'func' 'python_aosd' )
@@ -22,6 +22,8 @@ build() {
install -m755 -D lighttpd-supplement.conf $MVDIR/etc/lighttpd-supplement.conf
install -m755 -D wakeonlan.sh $MVDIR/bin/wakeonlan.sh
+ install -m755 -D backend_control.sh $MVDIR/bin/backend_control.sh
+# install -m755 -D notify.py $MVDIR/bin/notify.py
mkdir -p $startdir/pkg/data/srv/httpd/htdocs/
cp -rp $startdir/contents/* $startdir/pkg/data/srv/httpd/htdocs
chmod -R 755 $startdir/pkg/data/srv/httpd/htdocs
@@ -37,4 +39,6 @@ build() {
md5sums=('2a9d042467220fd1f74f5b12730c2e06'
'3d8c7b430c1319d706ca420825918d2a'
- '81cdb6ee6804fa36366c6e259a80e7b4')
+ '81cdb6ee6804fa36366c6e259a80e7b4'
+ 'f37e10ef9fc84b384b9a2d41f82ef744'
+ '4da05325b4f9d61d26f88c19578d1950')
diff --git a/abs/core/supplemental-web/backend_control.sh b/abs/core/supplemental-web/backend_control.sh
new file mode 100644
index 0000000..2cf8a49
--- /dev/null
+++ b/abs/core/supplemental-web/backend_control.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#. /etc/systemconfig
+#echo $@ > /tmp/parms
+#start Slavebackend: fusion 192.168.1.120
+COMMAND=$1
+BETYPE=$2
+eval LAST=\$$#
+dbhost=`echo $LAST`
+
+
+MESSAGE=""
+case $COMMAND in
+ stop) MESSAGE=`/usr/bin/curl http://$dbhost:1337/bestop.cgi 2>/dev/null`
+ ;;
+
+ start )
+ MESSAGE=`/usr/bin/curl http://$dbhost:1337/bestart.cgi 2>/dev/null`
+ ;;
+
+ restart)
+ /usr/bin/backend_control.sh stop $dbhost
+ sleep 2
+ /usr/bin/backend_control.sh start $dbhost
+ ;;
+ clearcache)
+ MESSAGE2=`/usr/bin/curl http://$dbhost:1337/beclear.cgi 2>/dev/null`
+esac
+
diff --git a/abs/core/supplemental-web/cgi/beclear.cgi b/abs/core/supplemental-web/cgi/beclear.cgi
index 40c0cec..489466d 100644
--- a/abs/core/supplemental-web/cgi/beclear.cgi
+++ b/abs/core/supplemental-web/cgi/beclear.cgi
@@ -1,4 +1,4 @@
#!/bin/bash
-/usr/local/bin/mythbackend --clearcache
+/usr/bin/mythbackend --clearcache
MESSAGE="settings cache is cleared "
#/usr/bin/notify.py SYS "$MESSAGE" 2>/dev/null
diff --git a/abs/core/supplemental-web/cgi/bestart.cgi b/abs/core/supplemental-web/cgi/bestart.cgi
new file mode 100644
index 0000000..10ca4ad
--- /dev/null
+++ b/abs/core/supplemental-web/cgi/bestart.cgi
@@ -0,0 +1,6 @@
+#!/bin/bash
+sudo /sbin/sv start mythbackend
+MESSAGE="`hostname` B.E. started"
+/usr/bin/func "*" call msg display "$MESSAGE" &
+
+
diff --git a/abs/core/supplemental-web/cgi/bestop.cgi b/abs/core/supplemental-web/cgi/bestop.cgi
index e45e74d..a65a16a 100644
--- a/abs/core/supplemental-web/cgi/bestop.cgi
+++ b/abs/core/supplemental-web/cgi/bestop.cgi
@@ -1,6 +1,8 @@
#!/bin/bash
-sudo /sbin/sv stop mythbackend > /dev/null
+sudo /sbin/sv stop mythbackend
MESSAGE="`hostname` B.E. stopped"
+/usr/bin/func "*" call msg display "$MESSAGE" &
+
+
+
-#echo $MESSAGE
-/usr/bin/notify.py NFO "$MESSAGE" 2>/dev/null
diff --git a/abs/core/xymon/PKGBUILD b/abs/core/xymon/PKGBUILD
index 9c1ef87..5332ff5 100644
--- a/abs/core/xymon/PKGBUILD
+++ b/abs/core/xymon/PKGBUILD
@@ -1,7 +1,7 @@
pkgbase=xymon
pkgname=(xymonserver xymonclient)
pkgver=4.3.5
-pkgrel=25
+pkgrel=26
pkgdesc="Hobbit is a system for monitoring servers and networks. "
license="GPL"
arch=('i686' 'x86_64')
diff --git a/abs/core/xymon/xymon.install b/abs/core/xymon/xymon.install
index ae6d3f1..8a1d798 100644
--- a/abs/core/xymon/xymon.install
+++ b/abs/core/xymon/xymon.install
@@ -24,10 +24,12 @@ post_install() {
chmod +s /data/srv/xymon/server/bin/xymonping
echo "Adding sudo permissions for nobody {certmaster-ca}"
echo "Adding sudo permissions for http {backup_job}"
+ echo "Adding sudo permissions for http {sv}"
LINE="nobody ALL = NOPASSWD:/usr/bin/certmaster-ca"
LINE1="http ALL = NOPASSWD:/usr/MythVantage/bin/backup_job"
+ LINE2="http ALL = NOPASSWD:/sbin/sv"
setfacl -R -m u:nobody:rwx /data/srv/httpd/htdocs
- for i in "$LINE" "$LINE1"
+ for i in "$LINE" "$LINE1" "$LINE2"
do
cp /etc/sudoers /etc/sudoers.bak
grep -q "$i" /etc/sudoers