diff options
-rw-r--r-- | abs/core/LinHES-config/PKGBUILD | 4 | ||||
-rwxr-xr-x | abs/core/LinHES-config/systemconfig.py | 8 | ||||
-rwxr-xr-x | abs/core/LinHES-system/LinHES-session | 120 | ||||
-rwxr-xr-x | abs/core/LinHES-system/PKGBUILD | 8 | ||||
-rw-r--r-- | abs/core/LinHES-system/install_supplemental_service.sh | 14 | ||||
-rw-r--r-- | abs/core/LinHES-system/xmsg.py | 163 | ||||
-rw-r--r-- | abs/core/func/PKGBUILD | 2 | ||||
-rw-r--r-- | abs/core/func/func.install | 3 | ||||
-rw-r--r-- | abs/core/supplemental-web/PKGBUILD | 10 | ||||
-rw-r--r-- | abs/core/supplemental-web/backend_control.sh | 28 | ||||
-rw-r--r-- | abs/core/supplemental-web/cgi/beclear.cgi | 2 | ||||
-rw-r--r-- | abs/core/supplemental-web/cgi/bestart.cgi | 6 | ||||
-rw-r--r-- | abs/core/supplemental-web/cgi/bestop.cgi | 8 | ||||
-rw-r--r-- | abs/core/xymon/PKGBUILD | 2 | ||||
-rw-r--r-- | abs/core/xymon/xymon.install | 4 |
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 |