summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2012-08-15 16:13:51 (GMT)
committerJames Meyer <james.meyer@operamail.com>2012-08-15 16:13:51 (GMT)
commit4989e79abe0bd9b8c7e364953158e66578f0b0d4 (patch)
tree38c0d1fe29ea2b8b4c4dd9aac56eb41b73a552a0
parent094bbec4072b32b2d9d81fb94fd262f60611f7e8 (diff)
downloadlinhes_pkgbuild-4989e79abe0bd9b8c7e364953158e66578f0b0d4.zip
linhes_pkgbuild-4989e79abe0bd9b8c7e364953158e66578f0b0d4.tar.gz
linhes_pkgbuild-4989e79abe0bd9b8c7e364953158e66578f0b0d4.tar.bz2
LinHES-config: fixed several install problems
- new grub install - fix detection of ip in python scripts - fix xscreensaver not starting after install - fix force umount of /new_boot
-rw-r--r--abs/core/LinHES-config/09_mythvantge_runit_grub46
-rw-r--r--abs/core/LinHES-config/LinHES-release2
-rw-r--r--abs/core/LinHES-config/PKGBUILD22
-rw-r--r--abs/core/LinHES-config/issue1
-rwxr-xr-xabs/core/LinHES-config/mv_common.py10
-rwxr-xr-xabs/core/LinHES-config/mv_hostype.py30
-rwxr-xr-xabs/core/LinHES-config/mv_install.py38
-rwxr-xr-xabs/core/LinHES-config/mv_network.py43
-rwxr-xr-xabs/core/LinHES-config/mv_screensaver.py22
-rwxr-xr-xabs/core/LinHES-config/systemconfig.py16
10 files changed, 183 insertions, 47 deletions
diff --git a/abs/core/LinHES-config/09_mythvantge_runit_grub b/abs/core/LinHES-config/09_mythvantge_runit_grub
new file mode 100644
index 0000000..ec20282
--- /dev/null
+++ b/abs/core/LinHES-config/09_mythvantge_runit_grub
@@ -0,0 +1,46 @@
+#!/bin/sh
+prefix="/usr"
+exec_prefix="${prefix}"
+datarootdir="/usr/share"
+. "${datarootdir}/grub/grub-mkconfig_lib"
+if [ -z "$boot_device_id" ]; then
+boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
+fi
+
+gettext_printf "Found LinHES runit: \n" >&2
+echo "
+menuentry 'LinHES' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-$boot_device_id' {
+ load_video
+ set gfxpayload=keep
+ insmod gzio
+ insmod part_msdos
+ insmod ext2
+ set root='hd0,msdos1'
+ if [ x$feature_platform_search_hint = xy ]; then
+ search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 $boot_device_id
+ else
+ search --no-floppy --fs-uuid --set=root $boot_device_id
+ fi
+ echo 'Loading Linux core repo kernel ...'
+ linux /boot/vmlinuz-linux root=UUID=$boot_device_id ro quiet init=/sbin/runit
+ echo 'Loading initial ramdisk ...'
+ initrd /boot/initramfs-linux.img
+ }
+menuentry 'LinHES --no-splash' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-$boot_device_id' {
+ load_video
+ set gfxpayload=keep
+ insmod gzio
+ insmod part_msdos
+ insmod ext2
+ set root='hd0,msdos1'
+ if [ x$feature_platform_search_hint = xy ]; then
+ search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 $boot_device_id
+ else
+ search --no-floppy --fs-uuid --set=root $boot_device_id
+ fi
+ echo 'Loading Linux core repo kernel ...'
+ linux /boot/vmlinuz-linux root=UUID=$boot_device_id ro init=/sbin/runit
+ echo 'Loading initial ramdisk ...'
+ initrd /boot/initramfs-linux.img
+}
+"
diff --git a/abs/core/LinHES-config/LinHES-release b/abs/core/LinHES-config/LinHES-release
index 3939edc..747db47 100644
--- a/abs/core/LinHES-config/LinHES-release
+++ b/abs/core/LinHES-config/LinHES-release
@@ -1 +1 @@
-LinHES R7.3 (Crave)
+LinHES 8.0 (Trip the bits)
diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index 077064c..0666eac 100644
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-config
pkgver=2.3
-pkgrel=78
+pkgrel=79
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'
@@ -10,7 +10,7 @@ depends=('bc' 'libstatgrab' 'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
#LinHES-timezone
arch=('i686' 'x86_64')
-source=(mv_install.py
+source=(mv_install.py 09_mythvantge_runit_grub
mv_config.py
myth_user_call
file_time_offset.py
@@ -24,7 +24,6 @@ source=(mv_install.py
timezip.py
soundconfig.sh
LinHES-release
- issue
MythVantage.sh
create_master.sh
build_diskless.sh
@@ -55,6 +54,8 @@ install=config.install
build() {
mkdir -p $startdir/pkg/etc
mkdir -p $startdir/pkg/usr/share/mythtv/themes/default
+ install -D -m0755 09_mythvantge_runit_grub $startdir/pkg/etc/grub.d/09_mythvantge_runit_grub
+
MVDIR=$startdir/pkg/usr/MythVantage
mkdir $startdir/pkg/etc/profile.d
@@ -107,10 +108,10 @@ build() {
mkdir -p $startdir/pkg/etc/sudoers.d/
chmod 750 $startdir/pkg/etc/sudoers.d/
chown -R root:root $startdir/pkg/etc/sudoers.d
-
- install -o root -g root -m 0750 config-sudo.rules $startdir/pkg/etc/sudoers.d/config-sudo.rules
+ install -o root -g root -m 0750 config-sudo.rules $startdir/pkg/etc/sudoers.d/config_sudo
}
-md5sums=('4ef6a2f04f5cb1777ac3772eeccdc78f'
+md5sums=('5d40d7ce4cd99fae059cac37cef9440f'
+ '8aec4b2310e4c5375e32df37d37964dd'
'16b98fcb3753ef6cfc35075c326d30e4'
'2596460462cf6c889cf8f95485537b20'
'985891a43f7c4c983eb2a362162f1a0f'
@@ -123,8 +124,7 @@ md5sums=('4ef6a2f04f5cb1777ac3772eeccdc78f'
'960017a34d9cc78af6298f45aad6eb8e'
'ecf9e5df20683a769c4a8a8f2d65de85'
'6d32a88e76b0a97b0ce67d37ef6394aa'
- '40d28d5f5009971c507e94c9639be4a1'
- '6aff504ed5e860adc1b7317cd0780900'
+ '8ba06c2ce6129371548cc360ccca27f8'
'55fccb1da0417a896b724f7cfc32dd5a'
'ab2aa42c2947148c2b1cac0ade6d1d55'
'd429b59d3cfb37b0624c6a4a71a7c2c0'
@@ -133,16 +133,16 @@ md5sums=('4ef6a2f04f5cb1777ac3772eeccdc78f'
'3d1e4a119f38cff0498bf8a67e94e4b3'
'71fd2d0d448fc2fcd15415a1beed7109'
'61ccbf573ee196e3edf53a512820b431'
- 'e1715bbbabd42e7419755b09f60734aa'
+ 'd66c0e470e54a1551bdf60d8df85108d'
'b845de3e05c1734cce4b9ac5e8f1baaf'
'6801f87992b44118a12b6dfe6ea68127'
'5e69839659d65ddda35b8a9982dc29e9'
'3afd18517bb765d1680f4fcc8d08c9cc'
- 'ec6a9961e4d1b53ec1240c5979efff11'
+ '824e49d9b01fed295c704ab68908b464'
'fe5e31b833cc6707209e9d656b6eb53c'
'ecb52b9b7a9ac0c8988093c1dfdda635'
'23d0e12b7ca1cc6ea6b993c1d7ff20b9'
- '0b5b9e5385c7ae77e561812e96ce8161'
+ 'fd2414d9b0e611a95e858cae5736ccad'
'755c05b833aca6c5be130972af052e8b'
'd8f80e5686d02555f044363f1ac17d97'
'2596460462cf6c889cf8f95485537b20'
diff --git a/abs/core/LinHES-config/issue b/abs/core/LinHES-config/issue
index 00d4abd..8b13789 100644
--- a/abs/core/LinHES-config/issue
+++ b/abs/core/LinHES-config/issue
@@ -1,2 +1 @@
-LinHes
diff --git a/abs/core/LinHES-config/mv_common.py b/abs/core/LinHES-config/mv_common.py
index e4bef48..fa610b6 100755
--- a/abs/core/LinHES-config/mv_common.py
+++ b/abs/core/LinHES-config/mv_common.py
@@ -162,6 +162,16 @@ def restart_service(daemon):
cmd = "sv restart %s" %daemon
runcmd(cmd)
+def check_service(daemon):
+ logging.info(" Checking status of service %s",daemon)
+ cmd = "sv status %s" %daemon
+ results = runcmd_output(cmd)
+ status = results.split()[0]
+ if status == "run:":
+ return True
+ else:
+ return False
+
def hup_service(daemon):
logging.info(" hup service %s",daemon)
cmd = "sv hup %s" %daemon
diff --git a/abs/core/LinHES-config/mv_hostype.py b/abs/core/LinHES-config/mv_hostype.py
index 59b05b6..2f2ceab 100755
--- a/abs/core/LinHES-config/mv_hostype.py
+++ b/abs/core/LinHES-config/mv_hostype.py
@@ -260,7 +260,7 @@ def hostypeprint(systemconfig):
daemon_list=''
daemon_remove_list=''
run_mysqlnetwork = False
-
+ restart_mbe = False
profile_status="/etc/profile.d/z_myth_status.sh"
myth_status="/usr/LH/bin/myth_status.sh"
@@ -271,9 +271,12 @@ def hostypeprint(systemconfig):
EnableNetwork = False
run_mysqlnetwork = True
if systemconfig.get("hostypec"):
- setup_db()
+ logging.info(" Host type change detected, queuing restart of backend")
+ restart_mbe = True
+
+
install_list=["nss-mdns", "mysql", "mythdb-initial", "avahi", "rpcbind", "nfs-utils", "local-website", "myth2ipod", "mythtv-status"]
- daemon_list=["mysql", "mythbackend", "avahi", "rpcbind", "nfs-common", "netfs", "lighttpd"]
+ daemon_list=["mysql", "mythbackend", "avahi", "rpcbind", "nfs-common", "netfs", "lighttpd" ,"msg_daemon"]
mv_common.link_file(myth_status,profile_status)
@@ -290,7 +293,7 @@ def hostypeprint(systemconfig):
setup_ntp(False,"null")
setup_avahi(systemconfig.get("TEMPLATES"))
install_list=["nss-mdns", "mysql", "mythdb-initial", "avahi", "rpcbind", "nfs-utils", "local-website", "myth2ipod", "mythtv-status"]
- daemon_list=["mysql", "mythbackend", "avahi", "rpcbind", "nfs-common", "netfs", "lighttpd"]
+ daemon_list=["mysql", "mythbackend", "avahi", "rpcbind", "nfs-common", "netfs", "lighttpd" ,"msg_daemon"]
EnableNetwork = True
run_mysqlnetwork = True
mv_common.link_file(myth_status,profile_status)
@@ -303,6 +306,9 @@ def hostypeprint(systemconfig):
install_list.append('certmaster')
daemon_list.append('certmaster')
+ if systemconfig.get("hostypec"):
+ logging.info(" Host type change detected, queuing restart of backend")
+ restart_mbe = True
elif systemconfig.get("SystemType") == "Slave_backend":
logging.info("Slave backend system being configured")
@@ -310,10 +316,8 @@ def hostypeprint(systemconfig):
remove_avahi_service()
mv_common.link_file(myth_status,profile_status)
- if systemconfig.get("hostypec"):
- setup_db()
install_list = [ "nss-mdns", "rpcbind", "nfs-utils", "avahi", "libmysqlclient" ]
- daemon_list = ["mythbackend", "rpcbind", "nfs-common", "netfs", "avahi" ]
+ daemon_list = ["mythbackend", "rpcbind", "nfs-common", "netfs", "avahi" ,"msg_daemon" ]
daemon_remove_list=["mysql", "lighttpd", "certmaster"]
@@ -326,6 +330,9 @@ def hostypeprint(systemconfig):
daemon_list.append('xymon-client')
setup_rsyslog_client(systemconfig.get("dbhost"))
+ if systemconfig.get("hostypec"):
+ logging.info(" Host type change detected, queuing restart of backend")
+ restart_mbe = True
elif systemconfig.get("SystemType") == "Frontend_only":
@@ -335,7 +342,7 @@ def hostypeprint(systemconfig):
install_list=["mysql-clients", "libmysqlclient", "avahi", "rpcbind", "nfs-utils"]
remove_list=["mysql","lighttpd"]
- daemon_list=["nss-mdns", "mysql", "mythbackend", "avahi", "rpcbind", "nfs-common", "netfs" ]
+ daemon_list=["nss-mdns", "mysql", "mythbackend", "avahi", "rpcbind", "nfs-common", "netfs" ,"msg_daemon"]
daemon_remove_list=["mysql", "mythbackend","lighttpd"]
if xymon_supported:
install_list.append('xymonclient')
@@ -361,16 +368,19 @@ def hostypeprint(systemconfig):
if systemconfig.get("RunFrontend") == "1":
logging.debug(" Will run the frontend")
mv_common.add_service("frontend")
- mv_common.add_service("hal")
+ #mv_common.add_service("hal")
if data_config.SYSTEMTYPE == "MythVantage":
mv_common.add_service("ghosd")
else:
logging.debug(" Will NOT run the frontend")
mv_common.remove_service("frontend")
- mv_common.add_service("hal")
+ #mv_common.add_service("hal")
if data_config.SYSTEMTYPE == "MythVantage":
mv_common.remove_service("ghosd")
+ if restart_mbe == True :
+ mv_common.restart_service("mythbackend")
+
if run_mysqlnetwork:
setup_mysqlnetwork(EnableNetwork)
diff --git a/abs/core/LinHES-config/mv_install.py b/abs/core/LinHES-config/mv_install.py
index c7a002d3..1d5f6fe 100755
--- a/abs/core/LinHES-config/mv_install.py
+++ b/abs/core/LinHES-config/mv_install.py
@@ -66,6 +66,14 @@ def kill_dhcp_chroot():
os.chdir(stddir)
except:
pass
+ #force kill
+ try:
+ cmd = "lsof -t /new_boot|xargs kill -9"
+ runcmd(cmd)
+ except:
+ print " !!!Problem killing all /new_boot pids"
+
+
def statgrab(disk):
cmd = "statgrab -M disk. |grep %s.write_bytes" % hostoptions["rootdisk"]
@@ -590,14 +598,30 @@ def copy_it(install_type):
if ( install_type == "upgrade"):
logging.info("Upgrading system")
- create_squashlist()
- cmd = " unsquashfs -e %s -f -d %s /.livesys/medium/larch/system.sqf" %(data_config.SQUASHFILE, data_config.MOUNTPOINT)
- #runcmd(cmd)
- rc = runcmd(cmd)[0]
- if rc != 0 :
- error_out("Running unsquashfs")
+ cmdlist = ['rsync -avrp /image_mount/root/* /new_boot',
+ 'rsync -arvp /image_mount/lib/* /new_boot/lib/',
+ 'rsync -arvp /image_mount/usr /new_boot',
+ 'rsync -arvp /image_mount/var /new_boot']
+
+ #'rsync -arvp /image_mount/lib /new_boot',
+
+ for cmd in cmdlist:
+ #runcmd(cmd)
+ rc = runcmd(cmd)[0]
+ if rc != 0 :
+ error_out("Running %s" %cmd)
+
+ #create_squashlist()
+ #cmd = " unsquashfs -e %s -f -d %s /.livesys/medium/larch/system.sqf" %(data_config.SQUASHFILE, data_config.MOUNTPOINT)
+
+ #rc = runcmd(cmd)[0]
+ #if rc != 0 :
+ # error_out("Running unsquashfs")
#logging.debug(cmd)
#cmdout=commands.getoutput(cmd)
+
+
+
# Create the missing dir
i = ("sys", "proc", "dev", "tmp", "mnt", "media", "media/cdrom", "media/dvd", "var/log/mythtv", "var/lock", "var/tmp", "usr/lib/locale")
mountpoint = data_config.MOUNTPOINT
@@ -949,6 +973,8 @@ def fix_permissions():
runcmd(cmd)
cmd = " chown -R mythtv:mythtv %s" %(data_config.MOUNTPOINT+"/var/log/mythtv")
runcmd(cmd)
+ cmd = " chmod +s %s" %(data_config.MOUNTPOINT+"/usr/bin/ping")
+ runcmd(cmd)
def apply_new_auth():
logging.info("_____Applying Password updates_______")
diff --git a/abs/core/LinHES-config/mv_network.py b/abs/core/LinHES-config/mv_network.py
index aab1345..d0fa16c 100755
--- a/abs/core/LinHES-config/mv_network.py
+++ b/abs/core/LinHES-config/mv_network.py
@@ -18,17 +18,32 @@ def setup_MYTH_DHCP(systemconfig):
return defaultdhcp
def all_interfaces():
- max_possible = 128 # arbitrary. raise if needed.
- bytes = max_possible * 32
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- names = array.array('B', '\0' * bytes)
- outbytes = struct.unpack('iL', fcntl.ioctl(
- s.fileno(),
- 0x8912, # SIOCGIFCONF
- struct.pack('iL', bytes, names.buffer_info()[0])
- ))[0]
- namestr = names.tostring()
- return [namestr[i:i+32].split('\0', 1)[0] for i in range(0, outbytes, 32)]
+ # read the file /proc/net/dev
+ ifacelist=[]
+ returnlist=[]
+ try:
+ f = open('/proc/net/dev','r')
+ # put the content to list
+ ifacelist = f.read().split('\n')
+ # close the file
+ f.close()
+ # remove 2 lines header
+ ifacelist.pop(0)
+ ifacelist.pop(0)
+ except:
+ logging.critical(" *Problem reading /proc/net/dev")
+
+ # loop to check each line
+ for line in ifacelist:
+ ifacedata = line.replace(' ','').split(':')
+ # check the data have 2 elements
+ if len(ifacedata) == 2:
+ # check the interface is up (Transmit/Receive data)
+ if int(ifacedata[1]) > 0:
+ #print ifacedata[0]
+ returnlist.append(ifacedata[0])
+
+ return returnlist
def get_ip(ifname):
logging.debug(" Finding ip address for %s", ifname)
@@ -43,12 +58,16 @@ def get_ip(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- return socket.inet_ntoa(fcntl.ioctl(
+
+ ip = socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
+ logging.debug(" get_ip ip address is %s", ip)
+ return ip
+
def get_default_route(iface):
rcroute = "127.0.0.1"
f = open ('/proc/net/route', 'r')
diff --git a/abs/core/LinHES-config/mv_screensaver.py b/abs/core/LinHES-config/mv_screensaver.py
index 6a5ce1c..a1d1530 100755
--- a/abs/core/LinHES-config/mv_screensaver.py
+++ b/abs/core/LinHES-config/mv_screensaver.py
@@ -40,7 +40,7 @@ def mplayer_saver_check (cmd,templatefile):
def killxscreensaver():
- logging.info(" Stopping xscreensaver")
+ logging.info(" Stopping xscreensaver")
cmd="xscreensaver-command --exit "
mv_common.runcmd(cmd)
cmd="killall xscreensaver "
@@ -160,6 +160,25 @@ def setup_gnome_screensaver(theme,idletime):
logging.info("__End gnome screensaver")
+def start_screensaver(screensaver):
+ logging.info(" Checking if screensaver needs to be started")
+ if mv_common.check_service("frontend"):
+ killxscreensaver()
+ logging.info(" Frontend is running, starting screensaver")
+ line='''su mythtv -c "DISPLAY=localhost:0 xscreensaver -no-splash 2>&1 > /dev/null &" \n'''
+ #line='''su mythtv -c "DISPLAY=localhost:0 xscreensaver -no-splash \&" '''
+ try:
+ fout = open("/tmp/cmd.sh", "w")
+ fout.write(line)
+ fout.close()
+ os.chmod("/tmp/cmd.sh",0755)
+ cmd="/tmp/cmd.sh"
+ os.system(cmd)
+ os.remove("/tmp/cmd.sh")
+ except:
+ logging.info(" Couldn't start screensaver")
+
+
def setup_screensaver (systemconfig,data_config):
@@ -179,6 +198,7 @@ def setup_screensaver (systemconfig,data_config):
mv_common.pacremove("gnome-screensaver")
setup_x_screensaver(idletime, theme, configfile, templatefile)
mplayer_saver_check("/usr/bin/xscreensaver-command -deactivate &",mtemplate)
+ start_screensaver("xscreensaver")
elif screensavertype == "gscreensaver":
mv_common.pacinstall("xscreensaver")
diff --git a/abs/core/LinHES-config/systemconfig.py b/abs/core/LinHES-config/systemconfig.py
index 9a9cd11..baa7142 100755
--- a/abs/core/LinHES-config/systemconfig.py
+++ b/abs/core/LinHES-config/systemconfig.py
@@ -110,6 +110,12 @@ def main(argv):
if cmdmodule["network"]:
restartfe = mv_network.setup_network(systemconfig, cmdmodule["this_is_install"])
+ systemconfig["mythip"] = mv_network.setup_MYTH_IP(systemconfig)
+ systemconfig["mythdhcp"] = mv_network.setup_MYTH_DHCP(systemconfig)
+ systemconfig["mythgw"] = mv_network.setup_MYTH_DHCP(systemconfig)
+ systemconfig["mythdns"] = mv_network.setup_MYTH_DHCP(systemconfig)
+ cmdmodule["hostype"] = True
+
if restartfe == True :
logging.debug(" Setting the frontend to restart due to network change")
cmdmodule["restartfe"] = True
@@ -129,11 +135,11 @@ def main(argv):
mv_hostype.hostypeprint(systemconfig)
cmdmodule["smolt"] = True
- if cmdmodule["network"]:
- restartfe = mv_network.setup_network(systemconfig, cmdmodule["this_is_install"])
- if restartfe == True :
- logging.debug(" Setting the frontend to restart due to network change")
- cmdmodule["restartfe"] = True
+ #if cmdmodule["network"]:
+ #restartfe = mv_network.setup_network(systemconfig, cmdmodule["this_is_install"])
+ #if restartfe == True :
+ #logging.debug(" Setting the frontend to restart due to network change")
+ #cmdmodule["restartfe"] = True