summaryrefslogtreecommitdiffstats
path: root/abs
diff options
context:
space:
mode:
authorBritney Fransen <brfransen@gmail.com>2017-01-20 16:53:38 (GMT)
committerBritney Fransen <brfransen@gmail.com>2017-01-20 16:53:38 (GMT)
commit6d8692bba331b7a24205e4f9bb1b91dfa6d4d6d4 (patch)
tree443e6b7f12822b8a0a3fdb5a290757a817e7eb5b /abs
parent95d651edb72e7b278c9ba02e9afa64eb6a0d911e (diff)
parentd0b37ccccc013118824437c8afdf3c48dd4d6530 (diff)
downloadlinhes_pkgbuild-6d8692bba331b7a24205e4f9bb1b91dfa6d4d6d4.zip
linhes_pkgbuild-6d8692bba331b7a24205e4f9bb1b91dfa6d4d6d4.tar.gz
linhes_pkgbuild-6d8692bba331b7a24205e4f9bb1b91dfa6d4d6d4.tar.bz2
Merge branch 'testing'
Diffstat (limited to 'abs')
-rwxr-xr-xabs/core/LinHES-config/PKGBUILD13
-rwxr-xr-xabs/core/LinHES-config/mv_network.py18
-rwxr-xr-xabs/core/LinHES-config/plymouth_config.py13
-rwxr-xr-xabs/core/LinHES-config/systemd-coredump.conf2
-rwxr-xr-xabs/core/LinHES-config/xconfig.sh146
-rwxr-xr-xabs/core/LinHES-system/PKGBUILD4
-rwxr-xr-xabs/core/LinHES-system/checkXFSfrag.sh4
-rw-r--r--abs/core/alsa-lib/PKGBUILD4
-rw-r--r--abs/core/alsa-utils/PKGBUILD4
-rwxr-xr-xabs/core/ceton_infinitv/PKGBUILD4
-rw-r--r--abs/core/less/PKGBUILD6
-rw-r--r--abs/core/lighttpd/PKGBUILD27
-rw-r--r--abs/core/lighttpd/lighttpd.conf18
-rwxr-xr-xabs/core/lighttpd/lighttpd.install4
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/LHLogo.pngbin95713 -> 95713 bytes
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/LHLogoAndText.pngbin112895 -> 112895 bytes
-rwxr-xr-xabs/core/linhes-theme/PKGBUILD45
-rw-r--r--abs/core/linhes-theme/base.xml.patch212
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/blank_coverart.pngbin50947 -> 50947 bytes
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/checkmark.pngbin24628 -> 24628 bytes
-rw-r--r--abs/core/linhes-theme/controls-ui.xml.patch11
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/error.pngbin16172 -> 16172 bytes
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/gears.pngbin24505 -> 24505 bytes
-rw-r--r--abs/core/linhes-theme/image-ui.xml632
-rw-r--r--abs/core/linhes-theme/menu-ui-vert.xml.patch20
-rw-r--r--abs/core/linhes-theme/music-base.xml.patch121
-rw-r--r--abs/core/linhes-theme/music-ui.xml.patch704
-rw-r--r--abs/core/linhes-theme/osd.xml.patch93
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/preview.pngbin264596 -> 264596 bytes
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/question.pngbin25883 -> 25883 bytes
-rw-r--r--abs/core/linhes-theme/recordings-ui.xml.patch21
-rw-r--r--abs/core/linhes-theme/schedule-ui.xml.patch43
-rw-r--r--abs/core/linhes-theme/status-ui.xml.patch53
-rw-r--r--abs/core/linhes-theme/stream-ui.xml.patch568
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/tux_thoughts.pngbin50666 -> 50666 bytes
-rw-r--r--abs/core/linhes-theme/video-ui.xml.patch50
-rw-r--r--[-rwxr-xr-x]abs/core/linhes-theme/warning.pngbin5436 -> 5436 bytes
-rw-r--r--abs/core/linux/PKGBUILD4
-rw-r--r--abs/core/linux/linux.install.pkg2
-rw-r--r--abs/core/mkinitcpio/PKGBUILD12
-rw-r--r--abs/core/mythinstall/PKGBUILD2
-rw-r--r--abs/core/mythtv/stable-0.28/git_src/git_hash2
-rw-r--r--abs/core/mythtv/stable-0.28/git_src/git_hash_web2
-rw-r--r--abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD2
-rw-r--r--abs/core/mythtv/stable-0.28/mythtv/PKGBUILD6
-rw-r--r--abs/core/mythtv/stable-0.28/mythtv/defaultThemeLinHES.patch11
-rw-r--r--abs/core/mythtv/stable-0.28/mythtv/disable_subtitle_cutdown_in_recording_options.patch12
-rw-r--r--abs/core/mythtv/stable-0.28/mythtv/fixQTvirtualkeyboard.patch.2846
-rw-r--r--abs/core/mythtv/stable-0.28/mythtv/menu-xml/siriusmenu.xml.del (renamed from abs/core/mythtv/stable-0.28/mythtv/menu-xml/siriusmenu.xml)0
-rw-r--r--abs/core/mythtv/stable-0.28/mythtv/menu-xml/xmmenu.xml.del (renamed from abs/core/mythtv/stable-0.28/mythtv/menu-xml/xmmenu.xml)0
-rw-r--r--abs/core/mythtv/stable-0.28/mythweb/PKGBUILD2
-rw-r--r--abs/core/nano/PKGBUILD8
-rw-r--r--abs/core/nvidia-304xx-utils/PKGBUILD10
-rw-r--r--abs/core/nvidia-304xx/PKGBUILD6
-rw-r--r--abs/core/nvidia-340xx-utils/PKGBUILD14
-rw-r--r--abs/core/nvidia-340xx/PKGBUILD8
-rw-r--r--abs/core/nvidia-utils/PKGBUILD22
-rw-r--r--abs/core/nvidia/PKGBUILD10
-rw-r--r--abs/core/pam/PKGBUILD18
-rw-r--r--abs/core/pam/__changelog1
-rw-r--r--abs/core/pam/pam-1.1.8-cve-2013-7041.patch52
-rw-r--r--abs/core/pam/pam-1.1.8-cve-2014-2583.patch56
-rw-r--r--abs/core/procps-ng/PKGBUILD13
-rwxr-xr-xabs/core/runit-scripts/PKGBUILD4
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/autofs/run4
-rwxr-xr-xabs/core/system-templates/PKGBUILD2
-rw-r--r--abs/core/system-templates/templates/xorg/nvidia_disable_msi.txt10
-rw-r--r--abs/core/util-linux/0001-chrt-default-to-SCHED_RR-policy.patch39
-rw-r--r--abs/core/util-linux/0001-lsns-Fix-parser-for-proc-pid-stat-which-is-including.patch79
-rw-r--r--abs/core/util-linux/0001-sfdisk-cleanup-dump-error-messages.patch44
-rw-r--r--abs/core/util-linux/0001-sfdisk-don-t-be-silent-when-list-non-existing-device.patch70
-rw-r--r--abs/core/util-linux/0001-sfdisk-support-empty-label-use-case.patch223
-rw-r--r--abs/core/util-linux/PKGBUILD39
-rw-r--r--abs/core/which/PKGBUILD32
-rw-r--r--abs/core/which/which.install20
-rwxr-xr-xabs/core/xymon/PKGBUILD113
-rw-r--r--abs/core/xymon/analysis.cfg445
-rw-r--r--abs/core/xymon/analysis.cfg.patch112
-rw-r--r--abs/core/xymon/xymon-server.gen_light_conf.d2
-rw-r--r--abs/core/xymon/xymon-server.include4
-rw-r--r--abs/core/xymon/xymon-server.install85
-rw-r--r--abs/core/xymon/xymon-server.rules3
-rwxr-xr-xabs/core/xymon/xymon.install81
-rwxr-xr-xabs/core/xymon/xymonserver.cfg.diff22
-rw-r--r--abs/extra/autofs/PKGBUILD31
-rw-r--r--abs/extra/autofs/__changelog1
-rw-r--r--abs/extra/google-chrome/PKGBUILD6
-rw-r--r--abs/extra/libglvnd/PKGBUILD25
-rw-r--r--abs/extra/libglvnd/__changelog1
-rw-r--r--abs/extra/nvidia-settings/PKGBUILD16
-rw-r--r--abs/extra/openpht/PKGBUILD21
-rw-r--r--abs/extra/openpht/__changelog1
-rw-r--r--abs/extra/openpht/plex_lib.conf2
-rwxr-xr-xabs/extra/openpht/plexhometheater.sh11
-rw-r--r--abs/extra/plex-media-server/PKGBUILD10
95 files changed, 3609 insertions, 1110 deletions
diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index ed6cca9..f67f84d 100755
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-config
pkgver=8.4.2
-pkgrel=1
+pkgrel=5
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'
@@ -48,6 +48,7 @@ source=(mv_install.py 09_mythvantge_runit_grub
mv_fileshare.py
mv_locale.py
systemconfig.py
+ systemd-coredump.conf
pinkNoise_3s.wav
myth_user_call.py
mythvantage.cfg
@@ -132,6 +133,9 @@ package() {
#sysctrl conf
install -o root -g root -D -m 0755 hdhr.conf $pkgdir/etc/sysctl.d/hdhr.conf
+ #systemd conf
+ install -o root -g root -D -m 0755 systemd-coredump.conf $pkgdir/etc/systemd/coredump.conf.d/coredump.conf
+
#modules blacklist files
install -o root -g root -D -m 0755 blacklist_pcspkr.conf $pkgdir/etc/modprobe.d/blacklist_pcspkr.conf
install -o root -g root -D -m 0755 blacklist_nouveau.conf $pkgdir/etc/modprobe.d/blacklist_nouveau.conf
@@ -148,7 +152,7 @@ md5sums=('97b810ddc35d1f441dbe8cdd6886e2af'
'27e4fcacca9b9662dd782fbdc92fceea'
'2a7f3b34e522acfd08283b86c8926aba'
'b596d2e3779a434435bc0f0277b1ba3e'
- 'a751a88268029989f0067e2c9e75bf6e'
+ 'f0fb2ec7bcfa827686f590db8890d87a'
'f0376c98a7986897406d393186c0365e'
'157e73d0f90d7b306aba8f5921aeedd3'
'1f58c0393a131f4a8f9a84b3fe08a7e4'
@@ -166,7 +170,7 @@ md5sums=('97b810ddc35d1f441dbe8cdd6886e2af'
'b845de3e05c1734cce4b9ac5e8f1baaf'
'02b4378b17bca6bebdcc2258a80dfc6b'
'8b7dce4a3a0a281fa6656aa8781a648e'
- '4b10fff21a0274f950f97f2b61e92463'
+ '3ef3f589f46d0b59603226fef325e611'
'824e49d9b01fed295c704ab68908b464'
'fe5e31b833cc6707209e9d656b6eb53c'
'336f08aed2e3c0b9fd09563933d54735'
@@ -177,6 +181,7 @@ md5sums=('97b810ddc35d1f441dbe8cdd6886e2af'
'3cb673adb83b6afa52cffaa621b9d96b'
'781f161a79c3188a31c8615b8258b241'
'888a6c57f272d9fa3e77e216a421562b'
+ '6cb0aac63623a44463c4209862d2baa0'
'cdd5008ee77e67c1d51ad73a24612485'
'2596460462cf6c889cf8f95485537b20'
'dc3c5270691a62600475705f4cb78b56'
@@ -186,5 +191,5 @@ md5sums=('97b810ddc35d1f441dbe8cdd6886e2af'
'3866086e6af5e3528a66eff492f2f4dd'
'c9279fa095af624ee3d9bc75d3328360'
'02cf69074d2bbacef05fa3e451af9af3'
- '10354854c29d894d3598639eaa1df72c'
+ '18a47236637c364af27c14ac0aafc801'
'7acbd2064db905e76372a0618b24a6d9')
diff --git a/abs/core/LinHES-config/mv_network.py b/abs/core/LinHES-config/mv_network.py
index a4ad0c9..559a226 100755
--- a/abs/core/LinHES-config/mv_network.py
+++ b/abs/core/LinHES-config/mv_network.py
@@ -53,17 +53,23 @@ def get_ip(ifname):
logging.debug(" Found %s in all_interfaces", ifname)
else:
logging.critical("* Couldn't find %s in list", ifname)
- ifname = all_if[0]
+ try:
+ ifname = all_if[0]
+ except:
+ ifname = ifname
logging.critical("* Using %s for interface name", ifname)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- ip = socket.inet_ntoa(fcntl.ioctl(
- s.fileno(),
- 0x8915, # SIOCGIFADDR
- struct.pack('256s', ifname[:15])
- )[20:24])
+ try:
+ ip = socket.inet_ntoa(fcntl.ioctl(
+ s.fileno(),
+ 0x8915, # SIOCGIFADDR
+ struct.pack('256s', ifname[:15])
+ )[20:24])
+ except:
+ ip = "127.0.0.1"
logging.debug(" get_ip ip address is %s", ip)
return ip
diff --git a/abs/core/LinHES-config/plymouth_config.py b/abs/core/LinHES-config/plymouth_config.py
index bb60722..a3ade2b 100755
--- a/abs/core/LinHES-config/plymouth_config.py
+++ b/abs/core/LinHES-config/plymouth_config.py
@@ -120,14 +120,16 @@ class plymouth_driver():
add_modules = ['i915']
remove_hooks = ['v86d']
else:
- #add_modules = ['nfs','jm']
- remove_modules = ['i915']
- add_hooks = ['v86d']
+ #add_modules = ['nfs','jm']
+ remove_modules = ['i915']
+ #remove and add to ensure v86d is first
+ remove_hooks = ['v86d','plymouth']
+ add_hooks = ['v86d','plymouth']
- new_hooks = self.add_hooks(add_hooks , new_hooks)
new_hooks = self.remove_hooks(remove_hooks, new_hooks)
- new_modules = self.add_modules(add_modules, new_modules)
+ new_hooks = self.add_hooks(add_hooks , new_hooks)
new_modules = self.remove_modules(remove_modules, new_modules)
+ new_modules = self.add_modules(add_modules, new_modules)
self.new_hooks = new_hooks
self.new_modules = new_modules
@@ -156,7 +158,6 @@ class plymouth_driver():
if line.startswith('MODULES='):
new_line = 'MODULES="%s"'%(" ".join(self.new_modules))
f.write(new_line)
- f.write("\n")
f.close()
except:
print " plymouth_config: couldn't write %s" %conf_file
diff --git a/abs/core/LinHES-config/systemd-coredump.conf b/abs/core/LinHES-config/systemd-coredump.conf
new file mode 100755
index 0000000..519f838
--- /dev/null
+++ b/abs/core/LinHES-config/systemd-coredump.conf
@@ -0,0 +1,2 @@
+[Coredump]
+Storage=none
diff --git a/abs/core/LinHES-config/xconfig.sh b/abs/core/LinHES-config/xconfig.sh
index b5693b9..be01857 100755
--- a/abs/core/LinHES-config/xconfig.sh
+++ b/abs/core/LinHES-config/xconfig.sh
@@ -1,9 +1,18 @@
#!/bin/bash
#set -x
#SET DISPLAYRES to force Xres, ENV takes precendent over cmdline
-
+#SET VGACARDTYPE to force card type:
+ #VGACARDTYPE="intel" xconfig.sh
+ #VGACARDTYPE="nvidia" xconfig.sh
+ #VGACARDTYPE="nvidia-340xx" xconfig.sh
+ #VGACARDTYPE="nvidia-304xx" xconfig.sh
+ #VGACARDTYPE="VMware" xconfig.sh
+ #VGACARDTYPE="vesa" xconfig.sh
LOGFILE=/tmp/xconfig.log
+echo -e "\n\n--------------------------------------------------------------------------------" >> $LOGFILE 2>&1
+echo -e `date`"\n" >> $LOGFILE 2>&1
+
for i in ati intel mga savage sis unichrome
do
templist=`echo $i-dri xf86-video-$i`
@@ -17,6 +26,8 @@ MYTH_RUN_STATUS="1"
NVIDIA_304xx="$TEMPLATES/xorg/304xx_supported.txt"
NVIDIA_340xx="$TEMPLATES/xorg/340xx_supported.txt"
NVIDIA_SUPPORTED="$TEMPLATES/xorg/nvidia_supported.txt"
+NVIDIA_DISABLE_MSI="$TEMPLATES/xorg/nvidia_disable_msi.txt"
+NVIDIA_MSI_MODPROBE="$BASE/etc/modprobe.d/nvidia_msi.conf"
. /usr/MythVantage/bin/install_functions.sh
home_check
@@ -26,11 +37,11 @@ function Xvalues {
VGAFORCED=0
if [ "x$VGACARDTYPE" = "x" ]
then
- CMDLINE=$(cat /proc/cmdline)
+ CMDLINE=$(cat /proc/cmdline)
echo "$CMDLINE" | grep -q forceXvesa
if [ $? = 0 ]
then
- echo "Forcing driver to vesa"
+ echo "Forcing driver to vesa from kernel cmdline" | tee -a $LOGFILE
VGACARDTYPE=vesa
Xcardtype=$VGACARDTYPE
else
@@ -38,10 +49,10 @@ function Xvalues {
VGAPCIID=`lspci | grep -i vga |grep -vi non-vga| sort -r | head -n 1 | cut -d" " -f1`
CARDID=`lspci -n | grep "$VGAPCIID" | grep 10de | cut -d" " -f3 | cut -d: -f2`
VENDORID=`lspci -n | grep "$VGAPCIID" | grep 10de | cut -d" " -f3 | cut -d: -f1`
- echo "Detected $VGACARDTYPE as the video card type"
+ echo "Detected $VGACARDTYPE as the video card type" | tee -a $LOGFILE
fi
else
- echo "Video card type forced to $VGACARDTYPE"
+ echo "Video card type forced to $VGACARDTYPE" | tee -a $LOGFILE
VGAFORCED=1
CARDID="NOT_DETECTED"
fi
@@ -49,14 +60,14 @@ function Xvalues {
}
function presetupX {
- if [ "$XIgnoreConfig" = 1 ]
+ if [ "$XIgnoreConfig" = 1 ]
then
- echo "Using User Supplied X"
+ echo "Using User Supplied X" | tee -a $LOGFILE
if [ -f "$MYTHHOME/templates/xorg.user" ]
then
cp -f "$MYTHHOME/templates/xorg.user" "$XORG_CONF"
else
- echo "Didn't find the file"
+ echo "Didn't find the file" | tee -a $LOGFILE
echo "Copy your config file to $MYTHHOME/templates/xorg.user" > "$XORG_CONF"
fi
else
@@ -65,6 +76,7 @@ function presetupX {
}
function nvidia_prepare {
+ [[ -f "$NVIDIA_MSI_MODPROBE" ]] && rm -f "$NVIDIA_MSI_MODPROBE"
for i in libva-intel-driver mesa-libgl nvidia nvidia-utils nvidia-libgl opencl-nvidia nvidia-settings libglvnd nvidia-304xx nvidia-304xx-utils nvidia-304xx-libgl opencl-nvidia-304xx nvidia-340xx nvidia-340xx-utils nvidia-340xx-libgl opencl-nvidia-340xx
do
pacman --noconfirm -Rdd $i >> $LOGFILE 2>&1
@@ -77,13 +89,12 @@ function nvidia_prepare {
}
function pkg_check () {
- echo " Checking for $1 in cache or online"
+ echo " Checking for $1 in cache or online" | tee -a $LOGFILE
pacman --noconfirm -Sw $1 >> $LOGFILE 2>&1
rc=$?
if [ $rc != 0 ]
then
- echo " Couldn't find $1 for install, aborting"
- echo " Couldn't find $1 for install, aborting" >> $LOGFILE 2>&1
+ echo " Couldn't find $1 for install, aborting" | tee -a $LOGFILE
exit 1
fi
}
@@ -93,22 +104,21 @@ function nvidia_driver_install {
INSTALLED=0
- grep -qi "$CARDID" "$NVIDIA_SUPPORTED"
+ CARDNAME=`grep -i "$CARDID" "$NVIDIA_SUPPORTED"`
if [[ $? = 0 || $VGAFORCED -eq 1 && $VGACARDTYPE == "nvidia" ]]
then
+ echo "$CARDNAME" | tee -a $LOGFILE
LIST="nvidia nvidia-libgl nvidia-utils opencl-nvidia nvidia-settings"
for i in `echo ${LIST}`
do
pkg_check $i
done
- echo "Installing current nvidia driver"
- echo "Installing current nvidia driver" >> $LOGFILE 2>&1
+ echo "Installing current nvidia driver" | tee -a $LOGFILE
nvidia_prepare
pacman --noconfirm -S ${LIST} >> $LOGFILE 2>&1
if [[ $? != 0 ]]
then
- echo "ERROR: Unable to install current nvidia driver"
- echo "ERROR: Unable to install current nvidia driver" >> $LOGFILE 2>&1
+ echo "ERROR: Unable to install current nvidia driver" | tee -a $LOGFILE
else
INSTALLED=1
fi
@@ -116,22 +126,21 @@ function nvidia_driver_install {
if [ $INSTALLED -eq 0 ]
then
- grep -qi "$CARDID" "$NVIDIA_340xx"
+ CARDNAME=`grep -i "$CARDID" "$NVIDIA_340xx"`
if [[ $? = 0 || $VGAFORCED -eq 1 && $VGACARDTYPE == "nvidia-340xx" ]]
then
+ echo "$CARDNAME" | tee -a $LOGFILE
LIST="nvidia-340xx nvidia-340xx-libgl nvidia-340xx-utils opencl-nvidia-340xx"
for i in `echo ${LIST}`
do
pkg_check $i
done
- echo "Installing nvidia-340xx driver"
- echo "Installing nvidia-340xx driver" >> $LOGFILE 2>&1
+ echo "Installing nvidia-340xx driver" | tee -a $LOGFILE
nvidia_prepare
pacman --noconfirm -S ${LIST} >> $LOGFILE 2>&1
if [[ $? != 0 ]]
then
- echo "ERROR: Unable to install nvidia-340xx driver"
- echo "ERROR: Unable to install nvidia-340xx driver" >> $LOGFILE 2>&1
+ echo "ERROR: Unable to install nvidia-340xx driver" | tee -a $LOGFILE
else
INSTALLED=1
fi
@@ -140,22 +149,21 @@ function nvidia_driver_install {
if [ $INSTALLED -eq 0 ]
then
- grep -qi "$CARDID" "$NVIDIA_304xx"
+ CARDNAME=`grep -i "$CARDID" "$NVIDIA_304xx"`
if [[ $? = 0 || $VGAFORCED -eq 1 && $VGACARDTYPE == "nvidia-304xx" ]]
then
+ echo "$CARDNAME" | tee -a $LOGFILE
LIST="nvidia-304xx nvidia-304xx-libgl nvidia-304xx-utils opencl-nvidia-304xx"
for i in `echo ${LIST}`
do
pkg_check $i
done
- echo "Installing nvidia-304xx driver"
- echo "Installing nvidia-304xx driver" >> $LOGFILE 2>&1
+ echo "Installing nvidia-304xx driver" | tee -a $LOGFILE
nvidia_prepare
pacman --noconfirm -S ${LIST} >> $LOGFILE 2>&1
if [[ $? != 0 ]]
then
- echo "ERROR: Unable to install nvidia-304xx driver"
- echo "ERROR: Unable to install nvidia-304xx driver" >> $LOGFILE 2>&1
+ echo "ERROR: Unable to install nvidia-304xx driver" | tee -a $LOGFILE
else
INSTALLED=1
fi
@@ -165,27 +173,34 @@ function nvidia_driver_install {
if [ $INSTALLED -eq 0 ]
then
#this is a failsafe, can't find the right driver, then use the latest'
- echo " Couldn't find the card id in any list"
- echo " Couldn't find the card id in any list" >> $LOGFILE 2>&1
+ echo " Couldn't find the card id in any list" | tee -a $LOGFILE
LIST="nvidia nvidia-libgl nvidia-utils opencl-nvidia nvidia-settings"
for i in `echo ${LIST}`
do
pkg_check $i
done
- echo "Installing current nvidia driver"
- echo "Installing current nvidia driver" >> $LOGFILE 2>&1
+ echo "Installing current nvidia driver" | tee -a $LOGFILE
nvidia_prepare
pacman --noconfirm -S ${LIST} >> $LOGFILE 2>&1
if [[ $? != 0 ]]
then
- echo "ERROR: Unable to install current nvidia driver"
- echo "ERROR: Unable to install current nvidia driver" >> $LOGFILE 2>&1
+ echo "ERROR: Unable to install current nvidia driver" | tee -a $LOGFILE
else
INSTALLED=1
fi
fi
echo "/usr/lib/libXvMCNVIDIA_dynamic.so.1" > "$XVMC_CONFIG"
+
+ if [ $INSTALLED -eq 1 ]
+ then
+ grep -qi "$CARDID" "$NVIDIA_DISABLE_MSI"
+ if [[ $? = 0 ]]
+ then
+ echo "Disabling MSI interrupts" | tee -a $LOGFILE
+ echo "options nvidia NVreg_EnableMSI=0" > "$NVIDIA_MSI_MODPROBE"
+ fi
+ fi
}
function vmware_driver_install {
@@ -194,8 +209,7 @@ function vmware_driver_install {
do
pkg_check $i
done
- echo "Installing VMware driver"
- echo "Installing VMware driver" >> $LOGFILE 2>&1
+ echo "Installing VMware driver" | tee -a $LOGFILE
#this is used to remove nvidia
nvidia_prepare
for i in `echo ${LIST}`
@@ -207,8 +221,7 @@ function vmware_driver_install {
function vesa_driver_install {
pkg_check xf86-video-vesa
pkg_check mesa-libgl
- echo "Installing Vesa driver"
- echo "Installing Vesa driver" >> $LOGFILE 2>&1
+ echo "Installing Vesa driver" | tee -a $LOGFILE
#this is used to remove nvidia
nvidia_prepare
pacman -S --noconfirm xf86-video-vesa mesa-libgl >> $LOGFILE 2>&1
@@ -217,8 +230,7 @@ function vesa_driver_install {
function intel_driver_install {
pkg_check xf86-video-intel
pkg_check mesa-libgl
- echo "Installing Intel driver"
- echo "Installing Intel driver" >> $LOGFILE 2>&1
+ echo "Installing Intel driver" | tee -a $LOGFILE
#this is used to remove nvidia
nvidia_prepare
pacman -S --noconfirm xf86-video-intel libva-intel-driver mesa-libgl >> $LOGFILE 2>&1
@@ -226,8 +238,7 @@ function intel_driver_install {
}
function set_res {
- echo " Setting modeline to ${Xres}"
- echo " Setting modeline to ${Xres}" >> $LOGFILE 2>&1
+ echo "Setting resolution to ${Xres}" | tee -a $LOGFILE
cat > /etc/X11/xorg.conf.d/30-screen.conf <<EOF
Section "Screen"
Identifier "Screen0" #Collapse Monitor and Device section to Screen section
@@ -249,15 +260,11 @@ function setupX {
case $VGACARDTYPE in
nvidia|nvidia-340xx|nvidia-304xx)
nvidia_driver_install
- if [ \"$Xres\" = "Auto" ]
- then
- Xres="nvidia-auto-select"
- fi
-
- if [ ${Xres} != "Auto" ]
+ if [[ $Xres != "Auto" ]]
then
set_res
else
+ echo "Setting resolution to ${Xres}" | tee -a $LOGFILE
rm -f /etc/X11/xorg.conf.d/30-screen.conf
fi
;;
@@ -270,10 +277,11 @@ function setupX {
echo "#!/bin/bash" > /etc/X11/autostart/vmware.sh
echo "/usr/bin/vmware-user-suid-wrapper" >> /etc/X11/autostart/vmware.sh
chmod 755 /etc/X11/autostart/vmware.sh
- if [ ${Xres} != "Auto" ]
+ if [[ $Xres != "Auto" ]]
then
set_res
else
+ echo "Setting resolution to ${Xres}" | tee -a $LOGFILE
rm -f /etc/X11/xorg.conf.d/30-screen.conf
fi
;;
@@ -281,25 +289,27 @@ function setupX {
intel)
intel_driver_install
cp $TEMPLATES/xorg/xorg.intel /etc/X11/xorg.conf.d/20-automv.conf
- if [ ${Xres} != "Auto" ]
+ if [[ $Xres != "Auto" ]]
then
set_res
else
+ echo "Setting resolution to ${Xres}" | tee -a $LOGFILE
rm -f /etc/X11/xorg.conf.d/30-screen.conf
fi
;;
vesa|innotek|*) #leaving this as * and vesa for no real reason other then it's explicit to catch vesa
- if [[ $VGACARDTYPE != "vesa" && $VGACARDTYPE != "innotek" ]]
- then
- echo "Unknown card type, using Vesa."
- fi
- vesa_driver_install
- cp $TEMPLATES/xorg/xorg.vesa /etc/X11/xorg.conf.d/20-automv.conf
- if [ ${Xres} != "Auto" ]
+ if [[ $VGACARDTYPE != "vesa" && $VGACARDTYPE != "innotek" ]]
+ then
+ echo "Unknown card type, using Vesa." | tee -a $LOGFILE
+ fi
+ vesa_driver_install
+ cp $TEMPLATES/xorg/xorg.vesa /etc/X11/xorg.conf.d/20-automv.conf
+ if [[ $Xres != "Auto" ]]
then
set_res
else
+ echo "Setting resolution to ${Xres}" | tee -a $LOGFILE
rm -f /etc/X11/xorg.conf.d/30-screen.conf
fi
@@ -309,7 +319,7 @@ function setupX {
#configure the ramdisk for kms
if [ x$RUNP != "x1" ]
then
- echo "Running plymouth_config"
+ echo "Running plymouth_config" | tee -a $LOGFILE
plymouth_config.py >> $LOGFILE 2>&1
fi
fi
@@ -319,8 +329,8 @@ function setupX {
function pacman_wait {
if [ -f /var/lib/pacman/db.lck ]
then
- echo "Pacman is running and must quit before xconfig.sh can continue."
- echo " Waiting for pacman to quit..."
+ echo "Pacman is running and must quit before xconfig.sh can continue." | tee -a $LOGFILE
+ echo " Waiting for pacman to quit..." | tee -a $LOGFILE
while [ -f /var/lib/pacman/db.lck ]
do
sleep 5
@@ -333,28 +343,25 @@ function pacman_wait {
LINE=`grep -i xorg /etc/mythvantage.cfg|grep -q False`
rc=$?
-if [ $rc = 0 ]
+if [ $rc = 0 ]
then
- echo "** xorg configuration disabled in /etc/mythvantage.cfg"
+ echo "** xorg configuration disabled in /etc/mythvantage.cfg" | tee -a $LOGFILE
exit 1
fi
if [ -f /etc/sysconfig/IGNORE_X ]
then
- echo "** Will not run xconfig.sh due to presence of /etc/sysconfig/IGNORE_X"
+ echo "** Will not run xconfig.sh due to presence of /etc/sysconfig/IGNORE_X" | tee -a $LOGFILE
exit 1
fi
-
if [ -f /etc/systemconfig ]
then
. /etc/systemconfig
else
- #Xres="800x600"
- Xres="Auto"
- echo " Setting modeline to ${Xres}"
- echo " Setting modeline to ${Xres}" >> $LOGFILE 2>&1
+ echo " systemconfig not found." | tee -a $LOGFILE
fi
+
CMDLINE=$(cat /proc/cmdline)
echo $CMDLINE | grep -q displayres
if [ $? = 0 ]
@@ -365,10 +372,17 @@ fi
if [ ! x$DSR = x ]
then
Xres=$DSR
+ echo " Setting resolution to ${Xres} from kernel cmdline" | tee -a $LOGFILE
fi
if [ ! x$DISPLAYRES = x ]
then
Xres=$DISPLAYRES
+ echo "Resolution forced to ${Xres}" | tee -a $LOGFILE
+fi
+if [ x$Xres = x ]
+then
+ Xres="Auto"
+ echo "Resolution not set. Setting to ${Xres}" | tee -a $LOGFILE
fi
diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD
index 7a02894..9cc6e8b 100755
--- a/abs/core/LinHES-system/PKGBUILD
+++ b/abs/core/LinHES-system/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-system
pkgver=8.4
-pkgrel=16
+pkgrel=17
arch=('i686' 'x86_64')
install=system.install
pkgdesc="Everything that makes LinHES an automated system"
@@ -125,7 +125,7 @@ md5sums=('c6e6b83a1f4c35ef4501e277657ab2ac'
'bacc813b48bafcc6fe906e5969930501'
'dedd3fcb1abec6361f4060d8149c7d6d'
'8b0298f70f97cc1dc2a58b9a73c64bd3'
- 'b4bb70650893c811c854d446cfa6ca6a'
+ '85558db5864bc70676ef46acc4595f88'
'e30bf8ec8b9dcc2ceb7127375a91d8d1'
'e9f545c3bcf9c85b45496c281fc6a1b8'
'a94fe6d980f4b810f2e2ae5352084b39'
diff --git a/abs/core/LinHES-system/checkXFSfrag.sh b/abs/core/LinHES-system/checkXFSfrag.sh
index 709cdac..5fccece 100755
--- a/abs/core/LinHES-system/checkXFSfrag.sh
+++ b/abs/core/LinHES-system/checkXFSfrag.sh
@@ -42,11 +42,11 @@ do
isSATA=`cat /sys/block/${device}/queue/rotational`
if [[ $isSATA -eq 1 ]]
then
- percentage=`$xfsdb -c frag -r ${i}|cut -f 7 --delim=" "`
+ percentage=`$xfsdb -c frag -r ${i}|grep factor|cut -f 7 --delim=" "`
percent2=`$e $percentage|cut -f 1 --delim=.`
if [ "$percent2" -gt "$pctmax" ]
then
- $e "${i} is $percentage% fragmented. Running defragment on ${i}."
+ $e "${i} is $percentage fragmented. Running defragment on ${i}."
# Only uncomment one of the following two lines.
#$xfsfsr -v ${i} # Uncomment for verbose defrag.
$ionice -c3 $xfsfsr ${i} # Uncomment for quiet defrag.
diff --git a/abs/core/alsa-lib/PKGBUILD b/abs/core/alsa-lib/PKGBUILD
index af325f4..24f8aaa 100644
--- a/abs/core/alsa-lib/PKGBUILD
+++ b/abs/core/alsa-lib/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=alsa-lib
-pkgver=1.1.1
+pkgver=1.1.2
pkgrel=1
pkgdesc="An alternative implementation of Linux sound support"
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ optdepends=('python2: for python smixer plugin')
makedepends=('python2')
license=('GPL')
source=(ftp://ftp.alsa-project.org/pub/lib/$pkgname-$pkgver.tar.bz2)
-sha1sums=('09f7e9b2d88287e04a4bb0d56e0cbc9018e524ec')
+sha1sums=('574a0ebd4d218c81f73a0abae79f0e3cc9a6e402')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/abs/core/alsa-utils/PKGBUILD b/abs/core/alsa-utils/PKGBUILD
index d12067b..1e450d0 100644
--- a/abs/core/alsa-utils/PKGBUILD
+++ b/abs/core/alsa-utils/PKGBUILD
@@ -3,7 +3,7 @@
# Contributor: judd <jvinet@zeroflux.org>
pkgname=alsa-utils
-pkgver=1.1.1
+pkgver=1.1.2
pkgrel=1
pkgdesc="An alternative implementation of Linux sound support"
arch=('i686' 'x86_64')
@@ -38,5 +38,5 @@ package() {
# dir where to save ALSA state
install -d ${pkgdir}/var/lib/alsa
}
-md5sums=('f8d00ad5fba757b4c3735d066cc288e2'
+md5sums=('38ac7c781f80c41c02b4664d8cbafa87'
'529216f6a46e61a546640e08ea7a0879')
diff --git a/abs/core/ceton_infinitv/PKGBUILD b/abs/core/ceton_infinitv/PKGBUILD
index 839883c..2caaa68 100755
--- a/abs/core/ceton_infinitv/PKGBUILD
+++ b/abs/core/ceton_infinitv/PKGBUILD
@@ -2,10 +2,10 @@
pkgname=ceton_infinitv
#_kernver=`uname -r`
-_kernver=4.4.26-1-ARCH
+_kernver=4.4.39-1-ARCH
_extramods="extramodules-4.4-ARCH"
pkgver=2013.0326.2226
-pkgrel=17
+pkgrel=18
usb_pkgver=0.1.0
pci_pkgver=`echo $pkgver | tr . _`
pkgdesc="Drivers for Ceton InfiniTV4 - pci/usb "
diff --git a/abs/core/less/PKGBUILD b/abs/core/less/PKGBUILD
index 5a5c2a4..c833986 100644
--- a/abs/core/less/PKGBUILD
+++ b/abs/core/less/PKGBUILD
@@ -4,8 +4,8 @@
# Contributor: judd <jvinet@zeroflux.org>
pkgname=less
-pkgver=481
-pkgrel=2
+pkgver=487
+pkgrel=1
pkgdesc='A terminal based program for viewing text files'
license=('GPL3')
arch=('i686' 'x86_64')
@@ -14,7 +14,7 @@ groups=('base')
depends=('glibc' 'ncurses' 'pcre')
validpgpkeys=('AE27252BD6846E7D6EAE1DD6F153A7C833235259') # Mark Nudelman
source=("http://www.greenwoodsoftware.com/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig})
-md5sums=('50ef46065c65257141a7340123527767'
+md5sums=('dcc8bf183a83b362d37fe9ef8df1fb60'
'SKIP')
build() {
diff --git a/abs/core/lighttpd/PKGBUILD b/abs/core/lighttpd/PKGBUILD
index d389ecd..d7405ab 100644
--- a/abs/core/lighttpd/PKGBUILD
+++ b/abs/core/lighttpd/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=lighttpd
-pkgver=1.4.39
+pkgver=1.4.45
pkgrel=1
pkgdesc='A secure, fast, compliant and very flexible web-server'
license=('custom')
@@ -15,8 +15,8 @@ optdepends=('libxml2: mod_webdav' \
'libmysqlclient: mod_mysql_vhost' \
'sqlite3: mod_webdav' \
'gdbm: mod_trigger_b4_dl')
-backup=('etc/lighttpd/lighttpd.conf' 'etc/logrotate.d/lighttpd' 'etc/lighttpd/auth-inc.conf' 'etc/lighttpd/conf.include' 'etc/lighttpd/html.include')
-options=('!libtool' 'emptydirs')
+backup=('etc/lighttpd/auth-inc.conf' 'etc/lighttpd/conf.include' 'etc/lighttpd/html.include')
+options=('emptydirs')
source=("http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${pkgver}.tar.gz"
'lighttpd.logrotate.d' 'lighttpd.conf' 'auth-inc.conf' 'ssl-inc.conf'
'lighttpd.tmpfiles')
@@ -58,28 +58,13 @@ package() {
install -D -m644 ${srcdir}/ssl-inc.conf ${pkgdir}/etc/lighttpd/ssl-inc.conf
install -D -m644 ${srcdir}/lighttpd.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/lighttpd.conf
- # set sane defaults
- sed -e 's|/srv/www/htdocs/|/srv/http/|' \
- -e 's|/srv/www/|/srv/http/|' \
- -e 's|#server.username = "wwwrun"|server.username = "http"|' \
- -e 's|#server.groupname = "wwwrun"|server.groupname = "http"|' \
- -e 's|#server.pid-file = "/run/lighttpd.pid"|server.pid-file = "/run/lighttpd/lighttpd.pid"|' \
- -e 's|/usr/local/bin/php-cgi|/usr/bin/php-cgi|' \
- -e 's|"^/mythweb|"^/{1,2}mythweb|' \
- -e 's|# "mod_proxy",| "mod_proxy",|' \
- -e 's|# "mod_ssi",| "mod_ssi",|' \
- -e 's|#ssi.extension = ( ".shtml" )|ssi.extension = ( ".shtml" )|' \
- -i ${pkgdir}/etc/lighttpd/lighttpd.conf || return 1
-
- /usr/bin/touch ${pkgdir}/etc/lighttpd/{conf,html}.include || return 1
- /bin/echo 'include "/etc/lighttpd/conf.include"' >> ${pkgdir}/etc/lighttpd/lighttpd.conf || return 1
- /bin/echo 'include "/etc/lighttpd/html.include"' >> ${pkgdir}/etc/lighttpd/lighttpd.conf || return 1
+ /usr/bin/touch ${pkgdir}/etc/lighttpd/{conf,html}.include || return 1
install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
}
-md5sums=('b49e133a4b321921331eba5a343872ab'
+md5sums=('98b97852441fc6b1942dfa9cf5c0beba'
'42d106b101d21ffd76ed9f3f1621e164'
- '7945bd60801295010e9e2cac1dba78b7'
+ '1ff60252037689b0419e4c11af34b1ef'
'62779511e3f1127c3cc9b94c49f99c29'
'ef64c496602b182a551416a8ba6b3d43'
'1aeda5526e2cf1ca99d6e1571a6d9cf5')
diff --git a/abs/core/lighttpd/lighttpd.conf b/abs/core/lighttpd/lighttpd.conf
index 0d8becd..4d84dba 100644
--- a/abs/core/lighttpd/lighttpd.conf
+++ b/abs/core/lighttpd/lighttpd.conf
@@ -1,10 +1,8 @@
+#######################################################################
# lighttpd configuration file
#
-# use it as a base for lighttpd 1.0.0 and above
-#
-# $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $
-
-############ Options you really have to take care of ####################
+# /etc/lighttpd/lighttpd.conf
+#######################################################################
## modules to load
# at least mod_access and mod_accesslog should be loaded
@@ -28,7 +26,7 @@ server.modules = (
# "mod_userdir",
"mod_cgi",
# "mod_compress",
-# "mod_ssi",
+ "mod_ssi",
# "mod_usertrack",
# "mod_expire",
# "mod_secdownload",
@@ -242,10 +240,11 @@ fastcgi.server = (
#### CGI module
cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl",
- ".sh" => "/bin/bash",
+ ".sh" => "/usr/bin/bash",
".py" => "/usr/bin/python2")
-alias.url = ( "/unicorn" => "/data/srv/httpd/supercorn" )
+
alias.url += ( "/cgi-bin" => "/data/srv/httpd/cgi-bin/")
+
$HTTP["url"] =~ "^/cgi-bin" {
cgi.assign = ( "" => "" )
}
@@ -267,3 +266,6 @@ $HTTP["url"] =~ "^/cgi-bin" {
#include_shell "echo var.a=1"
## the above is same as:
#var.a=1
+
+include "/etc/lighttpd/conf.include"
+include "/etc/lighttpd/html.include"
diff --git a/abs/core/lighttpd/lighttpd.install b/abs/core/lighttpd/lighttpd.install
index 1b0a4d7..3526b71 100755
--- a/abs/core/lighttpd/lighttpd.install
+++ b/abs/core/lighttpd/lighttpd.install
@@ -2,7 +2,11 @@ post_install() {
if [[ ! -d run/lighttpd ]]; then
usr/bin/systemd-tmpfiles --create lighttpd.conf
fi
+
+ echo "Generate lighttpd include..."
gen_light_include.py
+ echo "Forcing a re-read of lighttpd's configuration file..."
+ /sbin/sv hup /service/lighttpd
}
post_upgrade() {
diff --git a/abs/core/linhes-theme/LHLogo.png b/abs/core/linhes-theme/LHLogo.png
index 9ff4fd2..9ff4fd2 100755..100644
--- a/abs/core/linhes-theme/LHLogo.png
+++ b/abs/core/linhes-theme/LHLogo.png
Binary files differ
diff --git a/abs/core/linhes-theme/LHLogoAndText.png b/abs/core/linhes-theme/LHLogoAndText.png
index 39504e7..39504e7 100755..100644
--- a/abs/core/linhes-theme/LHLogoAndText.png
+++ b/abs/core/linhes-theme/LHLogoAndText.png
Binary files differ
diff --git a/abs/core/linhes-theme/PKGBUILD b/abs/core/linhes-theme/PKGBUILD
index b30b086..5bbe836 100755
--- a/abs/core/linhes-theme/PKGBUILD
+++ b/abs/core/linhes-theme/PKGBUILD
@@ -1,21 +1,23 @@
pkgname=linhes-theme
pkgver=8.4
-pkgrel=13
+pkgrel=20
pkgdesc="Default LinHES MythTV theme"
arch=('i686' 'x86_64')
license=('GPL2')
url="http://linhes.org/"
patches=('readme.txt.patch' 'osd.xml.patch' 'base.xml.patch'
- 'menu-ui-vert.xml.patch' 'notification-ui.xml.patch'
- 'schedule-ui.xml.patch' 'qtlook.txt.patch'
- 'recordings-ui.xml.patch' 'video-ui.xml.patch')
+ 'controls-ui.xml.patch' 'menu-ui-vert.xml.patch'
+ 'music-base.xml.patch' 'music-ui.xml.patch'
+ 'notification-ui.xml.patch' 'qtlook.txt.patch'
+ 'recordings-ui.xml.patch' 'schedule-ui.xml.patch'
+ 'status-ui.xml.patch' 'stream-ui.xml.patch' 'video-ui.xml.patch')
#The LinHES theme is based on TintedGlass 4.56 by Harley Peters
source=(`echo ${patches[@]:0}` 'themeinfo.xml' 'install-ui.xml' 'osd_subtitle.xml'
'bubble_background.png' 'preview.png' 'blank_coverart.png'
'checkmark.png' 'error.png' 'gears.png' 'question.png' 'warning.png'
- 'progdetails_page1.html'
+ 'progdetails_page1.html' 'image-ui.xml'
'LHLogo.png' 'LHLogoAndText.png')
install=$pkgname.install
@@ -70,8 +72,6 @@ package() {
rsync -pL $srcdir/warning.png $pkgdir/$THEMEROOT/LinHES/images/
rsync -pL $srcdir/preview.png $pkgdir/$THEMEROOT/LinHES/
- #tux_thoughts.png is the thought bubble for the menu descriptions
- #rsync -pL $srcdir/tux_thoughts.png $pkgdir/$THEMEROOT/LinHES/images/
rsync -pL $srcdir/LHLogo.png $pkgdir/$THEMEROOT/LinHES/images/
rsync -pL $srcdir/LHLogoAndText.png $pkgdir/$THEMEROOT/LinHES/images/
@@ -80,29 +80,33 @@ package() {
msg "Modifying yellows and blue to LinHES yellow and blue"
#yellow
- grep -lr '#d9d900' $pkgdir/$THEMEROOT/LinHES/ | xargs sed -i "s/\#d9d900/\#ebb81c/g" || return 0
+ grep -lr '#d9d900' $pkgdir/$THEMEROOT/LinHES/ | xargs -r sed -i "s/\#d9d900/\#ebb81c/g"
#darkyellow
- grep -lr '#CCCC29' $pkgdir/$THEMEROOT/LinHES/ | xargs sed -i "s/\#CCCC29/\#ebb81c/g" || return 0
+ grep -lr '#CCCC29' $pkgdir/$THEMEROOT/LinHES/ | xargs -r sed -i "s/\#CCCC29/\#ebb81c/g"
#blue
- grep -lr '#3a9ade' $pkgdir/$THEMEROOT/LinHES/ | xargs sed -i "s/\#3a9ade/\#0072bc/g" || return 0
+ grep -lr '#3a9ade' $pkgdir/$THEMEROOT/LinHES/ | xargs -r sed -i "s/\#3a9ade/\#0072bc/g"
msg "Modifying fonts to Overlock"
- grep -lr 'DejaVu Sans' $pkgdir/$THEMEROOT/LinHES/ | xargs sed -i "s/\DejaVu Sans/\Overlock/g"
+ grep -lr 'DejaVu Sans' $pkgdir/$THEMEROOT/LinHES/ | xargs -r sed -i "s/\DejaVu Sans/\Overlock/g"
msg "Updating themeinfo.xml version number"
- IFS="." read -a array <<< "$pkgver"
- sed -i "s/MAJ_VER/${array[0]}/" $pkgdir/$THEMEROOT/LinHES/themeinfo.xml
- sed -i "s/MIN_VER/${array[1]}${pkgrel}/" $pkgdir/$THEMEROOT/LinHES/themeinfo.xml
+ sed -i "s/MAJ_VER/${pkgver//.}/" $pkgdir/$THEMEROOT/LinHES/themeinfo.xml
+ sed -i "s/MIN_VER/${pkgrel}/" $pkgdir/$THEMEROOT/LinHES/themeinfo.xml
}
md5sums=('2dca856c2a4d1f959473512c94e43b60'
- '196b4d6691e95b87a76a9ed8be31a3d9'
- 'f2b9c85519e80843294315a42870e582'
- '43b1f213fd392fb07aac503e775e27bc'
+ '3fc2c8838a9e331a2d19c114760a5acb'
+ '66dd0365257d88b48ffeec00289e3b22'
+ 'ed56a335f8523d288609a81c005cab3f'
+ 'b90b745c72a057c78ebd0b6f2c5530b9'
+ 'a0ea2d3e386c0b483b31aa1a2703f9eb'
+ '8f8c27146e11954f60913da6d1fce073'
'80bb72994eca59ca6dc9034ac185e7cc'
- '22ff4044c8c29560451fb51dcbf4d44e'
'9fe3371a8b964a7028126405cfaa330b'
- 'ca7efe27ec941e341a555451a48f42ed'
- '0d62c91c3c1fe76a4549459741591312'
+ '537e12f58ae8da81176d8b982ac9c783'
+ '0a50f8ecd3d73622b31b52b905307c34'
+ '4d01487b534e45c631734501ec0da501'
+ '8312aff444945f80a76100696c81cb2e'
+ '5527190d8dd74e720b9160f851727390'
'5a8fb2a5f0e657d52be6f0a6a006ce72'
'35d77d91125e46728a30ab23d0903223'
'bfc32b9fa5dca3d46dd6f365ecb449b5'
@@ -115,5 +119,6 @@ md5sums=('2dca856c2a4d1f959473512c94e43b60'
'e8ac15e38b3dc99c9e889e439ba356de'
'e8cf0d3a55ba3be47deae55c05432141'
'58834fbee0230c713802c61e635cbab0'
+ '3f600b966bd813dd27f620762ddb3ac8'
'b51ef0cbf8ed2d3a8c1a8257a89aceff'
'09ad14842f828b7a8d24070ec8214fe5')
diff --git a/abs/core/linhes-theme/base.xml.patch b/abs/core/linhes-theme/base.xml.patch
index f672114..1f3b71a 100644
--- a/abs/core/linhes-theme/base.xml.patch
+++ b/abs/core/linhes-theme/base.xml.patch
@@ -1,5 +1,5 @@
---- base.xml.orig 2016-01-13 18:47:41.473066307 +0000
-+++ base.xml 2016-01-13 01:12:57.516392855 +0000
+--- base.xml.orig 2016-12-13 20:41:54.779274682 +0000
++++ base.xml 2017-01-12 17:34:48.863983285 +0000
@@ -3,55 +3,55 @@
<mythuitheme>
@@ -126,7 +126,18 @@
</fontdef>
<fontdef name="basesupersmallgreen" from="basesupersmall">
-@@ -241,55 +241,55 @@
+@@ -200,6 +200,10 @@
+ <color>#d97616</color>
+ </fontdef>
+
++ <fontdef name="basemediumorange" from="basemedium">
++ <color>#d97616</color>
++ </fontdef>
++
+ <fontdef name="baseextrasmallpurple" from="baseextrasmall">
+ <color>#9898d9</color>
+ </fontdef>
+@@ -241,55 +245,55 @@
</fontdef>
<fontdef name="basesupersmallyellow" from="basesupersmall">
@@ -195,7 +206,7 @@
</fontdef>
<!-- Base definition of a textarea -->
-@@ -305,7 +305,7 @@
+@@ -305,7 +309,7 @@
<font>baseextrasmallverylightgrey</font>
<font state="disabled">baseextrasmalllightgrey</font>
<font state="error">baseextrasmallred</font>
@@ -204,7 +215,7 @@
<font state="normal">baseextrasmallverylightgrey</font>
<font state="running">baseextrasmallgreen</font>
<cutdown>yes</cutdown>
-@@ -317,7 +317,7 @@
+@@ -317,7 +321,7 @@
<font>basesmallerverylightgrey</font>
<font state="disabled">basesmallerlightgrey</font>
<font state="error">basesmallerred</font>
@@ -213,7 +224,7 @@
<font state="normal">basesmallerverylightgrey</font>
<font state="running">basesmallergreen</font>
<cutdown>yes</cutdown>
-@@ -329,7 +329,7 @@
+@@ -329,7 +333,7 @@
<font>basesmallverylightgrey</font>
<font state="disabled">basesmalllightgrey</font>
<font state="error">basesmallred</font>
@@ -222,7 +233,7 @@
<font state="normal">basesmallverylightgrey</font>
<font state="running">basesmallgreen</font>
<cutdown>yes</cutdown>
-@@ -411,7 +411,7 @@
+@@ -411,7 +415,7 @@
<area>283,436,50,11</area>
<type>roundbox</type>
<fill color="#000000" alpha="200" />
@@ -231,7 +242,7 @@
</shape>
<shape name="base_backdrop_line">
-@@ -424,7 +424,7 @@
+@@ -424,7 +428,7 @@
<!-- Base definition of a base popup backdrop -->
<shape name="base_popup_backdrop" from="base_backdrop">
@@ -240,7 +251,37 @@
</shape>
<!-- Base definition of a heading group -->
-@@ -667,10 +667,10 @@
+@@ -535,10 +539,10 @@
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="horizontal" alpha="50">
+- <stop position="0" color="#d6d6d6" />
+- <stop position="25" color="#d6d6d6" alpha="255" />
+- <stop position="50" color="#d6d6d6" />
+- <stop position="100" color="#d6d6d6" />
++ <stop position="0" color="#0072bc" />
++ <stop position="25" color="#0072bc" alpha="255" />
++ <stop position="50" color="#0072bc" />
++ <stop position="100" color="#0072bc" />
+ </gradient>
+ </fill>
+ </shape>
+@@ -547,10 +551,10 @@
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="horizontal" alpha="50">
+- <stop position="0" color="#d6d6d6" />
+- <stop position="50" color="#d6d6d6" />
+- <stop position="75" color="#d6d6d6" alpha="255"/>
+- <stop position="100" color="#d6d6d6" />
++ <stop position="0" color="#0072bc" />
++ <stop position="50" color="#0072bc" />
++ <stop position="75" color="#0072bc" alpha="255"/>
++ <stop position="100" color="#0072bc" />
+ </gradient>
+ </fill>
+ </shape>
+@@ -667,10 +671,10 @@
<type>box</type>
<fill style="gradient">
<gradient direction="horizontal" alpha="50">
@@ -255,7 +296,7 @@
</gradient>
</fill>
</shape>
-@@ -679,10 +679,10 @@
+@@ -679,10 +683,10 @@
<type>box</type>
<fill style="gradient">
<gradient direction="horizontal" alpha="50">
@@ -270,7 +311,37 @@
</gradient>
</fill>
</shape>
-@@ -863,7 +863,7 @@
+@@ -700,10 +704,10 @@
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="horizontal" alpha="50">
+- <stop position="0" color="#d6d6d6" />
+- <stop position="25" color="#d6d6d6" alpha="255" />
+- <stop position="50" color="#d6d6d6" />
+- <stop position="100" color="#d6d6d6" />
++ <stop position="0" color="#0072bc" />
++ <stop position="25" color="#0072bc" alpha="255" />
++ <stop position="50" color="#0072bc" />
++ <stop position="100" color="#0072bc" />
+ </gradient>
+ </fill>
+ </shape>
+@@ -712,10 +716,10 @@
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="horizontal" alpha="50">
+- <stop position="0" color="#d6d6d6" />
+- <stop position="50" color="#d6d6d6" />
+- <stop position="75" color="#d6d6d6" alpha="255"/>
+- <stop position="100" color="#d6d6d6" />
++ <stop position="0" color="#0072bc" />
++ <stop position="50" color="#0072bc" />
++ <stop position="75" color="#0072bc" alpha="255"/>
++ <stop position="100" color="#0072bc" />
+ </gradient>
+ </fill>
+ </shape>
+@@ -863,7 +867,7 @@
<type>roundbox</type>
<fill color="#1a1a1a" alpha="175" />
<line color="#454545" alpha="180" width="2" />
@@ -279,7 +350,7 @@
</shape>
<shape name="select_bar_top_highlight">
<area>0,0,100%,2</area>
-@@ -956,7 +956,7 @@
+@@ -956,7 +960,7 @@
<type>roundbox</type>
<fill color="#333333" alpha="175" />
<line color="#454545" alpha="180" width="2" />
@@ -288,7 +359,7 @@
</shape>
</group>
-@@ -967,7 +967,7 @@
+@@ -967,7 +971,7 @@
<type>roundbox</type>
<fill color="#1a1a1a" alpha="175" />
<line color="#454545" alpha="180" width="2" />
@@ -297,7 +368,7 @@
</shape>
<shape name="select_bar_top_highlight">
<area>0,0,100%,2</area>
-@@ -1060,7 +1060,7 @@
+@@ -1060,7 +1064,7 @@
<type>roundbox</type>
<fill color="#333333" alpha="175" />
<line color="#454545" alpha="180" width="2" />
@@ -306,7 +377,7 @@
</shape>
</group>
-@@ -1071,7 +1071,7 @@
+@@ -1071,7 +1075,7 @@
<type>roundbox</type>
<fill color="#1a1a1a" alpha="175" />
<line color="#454545" alpha="180" width="2" />
@@ -315,7 +386,7 @@
</shape>
<shape name="select_bar_top_highlight">
<area>0,0,100%,2</area>
-@@ -1164,7 +1164,7 @@
+@@ -1164,7 +1168,7 @@
<type>roundbox</type>
<fill color="#1a1a1a" alpha="175" />
<line color="#454545" alpha="180" width="2" />
@@ -324,7 +395,7 @@
</shape>
</group>
-@@ -1233,7 +1233,7 @@
+@@ -1233,7 +1237,7 @@
<type>roundbox</type>
<fill color="#333333" alpha="175" />
<line color="#454545" alpha="180" width="2" />
@@ -333,3 +404,110 @@
</shape>
</group>
+@@ -1455,7 +1459,7 @@
+ <area>0,0,100%,100%</area>
+ </group>
+ <textarea name="buttontext">
+- <font>basesmall</font>
++ <font>basesmallyellow</font>
+ </textarea>
+ </state>
+ <state name="selectedinactive" from="active">
+@@ -1564,6 +1568,9 @@
+ <group name="select_bar" from="base_select_bar_selectedinactive_group">
+ <area>0,0,100%,100%</area>
+ </group>
++ <textarea name="buttontext">
++ <font>basesmall</font>
++ </textarea>
+ <imagetype name="buttonarrow">
+ <filename>images/lists_right_arrow.png</filename>
+ <alpha>0</alpha>
+@@ -1664,6 +1671,7 @@
+ </state>
+ </statetype>
+ <textarea name="buttontext" from="base_text_font_state_small">
++ <font state="normal">basesmallyellow</font>
+ </textarea>
+ <statetype name="buttoncheck">
+ <state type="off">
+@@ -2186,7 +2194,7 @@
+ </shape>
+
+ <shape name="popup-seperator-line" from="base_line">
+- <area>23,212,556,2</area>
++ <area>23,174,556,2</area>
+ </shape>
+
+ <shape name="popup-third-line" from="base_highlight_line">
+@@ -2202,18 +2210,18 @@
+ </shape>
+
+ <shape name="popup-arrows-backdrop" from="base_arrows_backdrop">
+- <area>3,488,50,13</area>
++ <area>549,488,50,13</area>
+ </shape>
+
+ <textarea name="messagearea" from="basetextarea">
+- <area>16,10,570,196</area>
+- <font>basesmalldarkyellow</font>
++ <area>16,10,570,158</area>
++ <font>basesmall</font>
+ <multiline>yes</multiline>
+ <align>allcenter</align>
+ </textarea>
+
+ <buttonlist name="list" from="base_button_list">
+- <area>8,216,586,264</area>
++ <area>8,178,586,302</area>
+ <statetype name="buttonitem">
+ <state name="active">
+ <area>0,0,100%,34</area>
+@@ -2244,10 +2252,10 @@
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+- <position>2,274</position>
++ <position>548,312</position>
+ </statetype>
+ <statetype name="downscrollarrow">
+- <position>22,274</position>
++ <position>568,312</position>
+ </statetype>
+ </buttonlist>
+ </window>
+@@ -2299,7 +2307,7 @@
+ </shape>
+
+ <shape name="large-dialogbox-arrows-backdrop" from="base_arrows_backdrop">
+- <area>3,488,50,13</area>
++ <area>761,488,50,13</area>
+ </shape>
+
+ <textarea name="messagearea" from="basetextarea">
+@@ -2332,10 +2340,10 @@
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+- <position>2,198</position>
++ <position>762,198</position>
+ </statetype>
+ <statetype name="downscrollarrow">
+- <position>22,198</position>
++ <position>782,198</position>
+ </statetype>
+ </buttonlist>
+ </window>
+@@ -2795,10 +2803,10 @@
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+- <position>0,272</position>
++ <position>550,272</position>
+ </statetype>
+ <statetype name="downscrollarrow">
+- <position>20,272</position>
++ <position>570,272</position>
+ </statetype>
+ </buttonlist>
+
diff --git a/abs/core/linhes-theme/blank_coverart.png b/abs/core/linhes-theme/blank_coverart.png
index c44148e..c44148e 100755..100644
--- a/abs/core/linhes-theme/blank_coverart.png
+++ b/abs/core/linhes-theme/blank_coverart.png
Binary files differ
diff --git a/abs/core/linhes-theme/checkmark.png b/abs/core/linhes-theme/checkmark.png
index 0c8ba2d..0c8ba2d 100755..100644
--- a/abs/core/linhes-theme/checkmark.png
+++ b/abs/core/linhes-theme/checkmark.png
Binary files differ
diff --git a/abs/core/linhes-theme/controls-ui.xml.patch b/abs/core/linhes-theme/controls-ui.xml.patch
new file mode 100644
index 0000000..6da0bcd
--- /dev/null
+++ b/abs/core/linhes-theme/controls-ui.xml.patch
@@ -0,0 +1,11 @@
+--- controls-ui.xml.orig 2016-12-13 20:38:02.325765836 +0000
++++ controls-ui.xml 2016-12-13 20:34:54.356551993 +0000
+@@ -73,7 +73,7 @@
+ <area>0,0,1280,720</area>
+
+ <textarea name="heading" from="base_heading">
+- <value>Edit keys</value>
++ <value>Edit Keys</value>
+ </textarea>
+
+ <shape name="edit-keys-backdrop" from="base_backdrop">
diff --git a/abs/core/linhes-theme/error.png b/abs/core/linhes-theme/error.png
index d5ccc2d..d5ccc2d 100755..100644
--- a/abs/core/linhes-theme/error.png
+++ b/abs/core/linhes-theme/error.png
Binary files differ
diff --git a/abs/core/linhes-theme/gears.png b/abs/core/linhes-theme/gears.png
index b2f78d6..b2f78d6 100755..100644
--- a/abs/core/linhes-theme/gears.png
+++ b/abs/core/linhes-theme/gears.png
Binary files differ
diff --git a/abs/core/linhes-theme/image-ui.xml b/abs/core/linhes-theme/image-ui.xml
new file mode 100644
index 0000000..2e4f996
--- /dev/null
+++ b/abs/core/linhes-theme/image-ui.xml
@@ -0,0 +1,632 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE mythuitheme SYSTEM "http://www.mythtv.org/schema/mythuitheme.dtd">
+<mythuitheme>
+ <!-- A gallery button showing a picture, video or folder -->
+ <window name="gallery">
+
+ <textarea name="heading" from="base_heading">
+ <value>Image Gallery</value>
+ </textarea>
+
+ <shape name="help-instr-backdrop" from="base_backdrop">
+ <area>0,36,1280,40</area>
+ <type>box</type>
+ </shape>
+
+ <shape name="help-instr-top-line" from="base_line">
+ <area>0,37,1280,2</area>
+ </shape>
+
+ <shape name="help-instr-bottom-line" from="base_line">
+ <area>0,73,1280,2</area>
+ </shape>
+
+ <shape name="arrows-backdrop" from="base_backdrop">
+ <area>1215,697,50,20</area>
+ </shape>
+
+ <!--shows path to current image -->
+ <textarea name="breadcrumbs">
+ <area>110,39,900,34</area>
+ <font>basesmallyellow</font>
+ <cutdown>no</cutdown>
+ <scroll direction="horizontal" startdelay="0" returndelay="0"/>
+ <align>left,vcenter</align>
+ </textarea>
+
+ <!-- shows current position in grid eg '1/123' -->
+ <textarea name="position" from="basetextarea">
+ <area>15,39,100,34</area>
+ <font>basesmall</font>
+ <align>left,vcenter</align>
+ </textarea>
+
+ <!-- Mandatory: the image list 10 columns x 6 rows -->
+ <buttonlist name="images0">
+ <area>15,80,100%-10,100%-30</area>
+ <buttonarea>0,15,100%,100%-10</buttonarea>
+ <wrapstyle>flowing</wrapstyle>
+ <layout>grid</layout>
+ <arrange>fixed</arrange>
+ <align>allcenter</align>
+ <spacing>0</spacing> <!-- (100% - 10*10%) / (10-1) or 0% -->
+ <statetype name="buttonitem">
+ <area>0,0,100%,100%</area>
+ <state name="active">
+ <area>0,0,10%,16%</area>
+ <shape name="buttonbackground" from="base_backdrop">
+ <area>0,0,100%,100%</area>
+ </shape>
+ <shape name="buttonbackground-line" from="base_backdrop_line">
+ <area>1%,1%,99%,99%</area>
+ </shape>
+ <!-- Shows a picture image -->
+ <imagetype name="buttonimage">
+ <area>4%,4%,96%,96%</area>
+ <preserveaspect>yes</preserveaspect>
+ </imagetype>
+ <!-- Shows a single folder image -->
+ <imagetype name="folderimage" from="buttonimage">
+ </imagetype>
+ <!-- Shows image for default folder -->
+ <imagetype name="thumbimage0" from="buttonimage">
+ </imagetype>
+ <!-- Shows a video image -->
+ <imagetype name="videoimage" from="buttonimage">
+ </imagetype>
+ <!-- Show a background image depending on node type -->
+ <statetype name="buttontype">
+ <area>0,0,100%,100%</area>
+ <state name="subfolder">
+ <area>0,0,100%,100%</area>
+ <imagetype name="background">
+ <area>30%,30%,55%,55%</area>
+ <filename>images/folderclosed.png</filename>
+ <preserveaspect>yes</preserveaspect>
+ </imagetype>
+ </state>
+ <state name="device" from="subfolder"/>
+ <state name="image">
+ <area>0,0,100%,100%</area>
+ <imagetype name="background">
+ <area>0,0,100%,100%</area>
+ <filename>images/image_gallery_no_image</filename>
+ <alpha>64</alpha>
+ </imagetype>
+ </state>
+ <state name="video">
+ <area>0,0,50%,50%</area>
+ <imagetype name="background">
+ <area>0,0,100%,100%</area>
+ <filename>images/no_preview_with_fanart.png</filename>
+ <preserveaspect>yes</preserveaspect>
+ </imagetype>
+ </state>
+ </statetype>
+ <!-- Show how many images / directories are in this directory -->
+ <textarea name="childcount">
+ <area>0,0,100%,100%</area>
+ <font>baseextrasmall</font>
+ <align>allcenter</align>
+ </textarea>
+ <!-- Show up arrow on parent dir with ancestors -->
+ <statetype name="parenttype">
+ <area>0,0,100%,100%</area>
+ <state name="upfolder">
+ <area>0,0,100%,100%</area>
+ <imagetype name="icon">
+ <area>30%,30%,55%,55%</area>
+ <filename>images/mv_gallery_dir_up.png</filename>
+ <preserveaspect>yes</preserveaspect>
+ </imagetype>
+ </state>
+ </statetype>
+ <!-- Darken hidden files/ folders -->
+ <statetype name="buttonstate">
+ <area>0,0,100%,100%</area>
+ <state name="visible"/>
+ <state name="hidden">
+ <area>0,0,100%,100%</area>
+ <shape name="hidden_background_shape">
+ <area>0,0,100%,100%</area>
+ <type>box</type>
+ <fill color="#000000" alpha="128"/>
+ </shape>
+ </state>
+ </statetype>
+ <!-- Shows that the image was marked/selected and
+ might be manipulated with other images -->
+ <statetype name="buttoncheck">
+ <area>0,0,100%,100%</area>
+ <state type="full">
+ <area>70%,5%,76%,26%</area>
+ <shape name="marked_background">
+ <area>0,0,100%,100%</area>
+ <type>ellipse</type>
+ <fill color="#000000"/>
+ </shape>
+ <imagetype name="marked">
+ <area>4%,4%,96%,96%</area>
+ <filename>images/checkmark.png</filename>
+ <preserveaspect>no</preserveaspect>
+ </imagetype>
+ </state>
+ </statetype>
+ <shape name="buttontext-backdrop" from="base_backdrop" depends="buttontext">
+ <area>3%,97%-22,97%,22</area>
+ <type>roundbox</type>
+ <cornerradius>4</cornerradius>
+ </shape>
+ <textarea name="buttontext">
+ <area>2%,97%-22,97%,22</area>
+ <font>baseextrasmall</font>
+ <align>allcenter</align>
+ </textarea>
+ </state>
+
+ <state name="selectedactive" from="active">
+ <area>-8,-8,10%+16,16%+16</area>
+ <shape name="buttonbackground">
+ <area>0,0,100%,100%</area>
+ <type>roundbox</type>
+ <fill color="#101017" alpha="255" />
+ <cornerradius>8</cornerradius>
+ </shape>
+ <shape name="buttonbackground-line">
+ <area>0,0,100%,100%</area>
+ <type>roundbox</type>
+ <fill color="#000000" alpha="0" />
+ <line color="#0072bc" alpha="45" width="4" />
+ <cornerradius>8</cornerradius>
+ </shape>
+ <shape name="buttonbackground-top-highlight-line">
+ <area>8%,0,92%,4</area>
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="horizontal" alpha="0">
+ <stop position="0" color="#0072bc" />
+ <stop position="50" color="#0072bc" alpha="180" />
+ <stop position="100" color="#0072bc" />
+ </gradient>
+ </fill>
+ </shape>
+ <shape name="buttonbackground-bottom-highlight-line" from="buttonbackground-top-highlight-line">
+ <area>8%,100%-4,92%,4</area>
+ </shape>
+ <shape name="buttonbackground-left-highlight-line">
+ <area>0,8%,4,92%</area>
+ <type>box</type>
+ <fill style="gradient">
+ <gradient alpha="0" direction="vertical">
+ <stop position="0" color="#0072bc" />
+ <stop position="50" color="#0072bc" alpha="220" />
+ <stop position="100" color="#0072bc" />
+ </gradient>
+ </fill>
+ </shape>
+ <shape name="buttonbackground-right-highlight-line" from="buttonbackground-left-highlight-line">
+ <area>100%-4,8%,4,92%</area>
+ </shape>
+
+ <statetype name="buttontype" depends="!parenttype">
+ <area>0,0,100%,100%</area>
+ <state name="subfolder">
+ <area>0,0,100%,100%</area>
+ <imagetype name="background">
+ <area>30%,30%,55%,55%</area>
+ <filename>images/folderopen.png</filename>
+ <preserveaspect>yes</preserveaspect>
+ </imagetype>
+ </state>
+ </statetype>
+
+ <!-- Show up arrow on parent dir with ancestors -->
+ <statetype name="parenttype">
+ <state name="upfolder">
+ <imagetype name="icon">
+ <filename>images/mv_gallery_dir_up_open.png</filename>
+ </imagetype>
+ </state>
+ </statetype>
+ <!-- Show how many images / directories are in this directory -->
+ <textarea name="childcount">
+ <font>baseextrasmallyellow</font>
+ </textarea>
+ <textarea name="buttontext">
+ <area>2%,97%-22,97%,22</area>
+ <font>baseextrasmallyellow</font>
+ <align>allcenter</align>
+ </textarea>
+ </state>
+
+ <state name="inactive" from="active"/>
+
+ <state name="selectedinactive" from="active"/>
+ </statetype>
+
+ <statetype name="upscrollarrow">
+ <position>1207,623</position>
+ <state type="off">
+ <imagetype name="upoff">
+ <filename>images/lists_up_arrow.png</filename>
+ <alpha>80</alpha>
+ </imagetype>
+ </state>
+ <state type="full">
+ <imagetype name="upon">
+ <filename>images/lists_up_arrow.png</filename>
+ <alpha>200</alpha>
+ </imagetype>
+ </state>
+ </statetype>
+ <statetype name="downscrollarrow">
+ <position>1227,623</position>
+ <state type="off">
+ <imagetype name="dnoff">
+ <filename>images/lists_down_arrow.png</filename>
+ <alpha>80</alpha>
+ </imagetype>
+ </state>
+ <state type="full">
+ <imagetype name="dnon">
+ <filename>images/lists_down_arrow.png</filename>
+ <alpha>200</alpha>
+ </imagetype>
+ </state>
+ </statetype>
+
+ </buttonlist>
+
+ <!-- the image list 8 columns x 4 rows -->
+ <buttonlist name="images1" from="images0">
+ <spacing>7</spacing> <!-- (100% - 8*12%) / (8-1) or 0.57% -->
+ <statetype name="buttonitem">
+ <state name="active">
+ <area>0,0,12%,24%</area>
+ </state>
+ <state name="selectedactive">
+ <area>-8,-8,12%+16,24%+16</area>
+ </state>
+ </statetype>
+ </buttonlist>
+
+ <!-- the image list 6 columns x 3 rows -->
+ <buttonlist name="images2" from="images0">
+ <spacing>10</spacing> <!-- (100% - 6*16%) / (6-1) or 0.8% -->
+ <statetype name="buttonitem">
+ <state name="active">
+ <area>0,0,16%,32%</area>
+ </state>
+ <state name="selectedactive">
+ <area>-10,-12,16%+20,32%+20</area>
+ </state>
+ </statetype>
+ </buttonlist>
+
+ <!-- the image list 4 columns x 2 rows -->
+ <buttonlist name="images3" from="images0">
+ <spacing>0</spacing> <!-- (100% - 4*25%) / (4-1) or 0% -->
+ <statetype name="buttonitem">
+ <state name="active">
+ <area>0,0,25%,50%</area>
+ </state>
+ <state name="selectedactive">
+ <area>-9,-9,25%+16,50%+10</area>
+ </state>
+ </statetype>
+ </buttonlist>
+
+ <!-- shows a message when no images are available
+ in the current directory -->
+ <textarea name="noimages" from="basetextarea">
+ <area>20,76,1240,589</area>
+ <font>basemedium</font>
+ <align>allcenter</align>
+ </textarea>
+
+ <!-- Mandatory: Shows file info overlay -->
+ <buttonlist name="infolist" from="base_list">
+ <area>10,80,510,100%-30</area>
+ <layout>vertical</layout>
+ <spacing>0</spacing>
+ <scrollstyle>free</scrollstyle>
+ <arrange>stack</arrange>
+ <wrapstyle>items</wrapstyle>
+ <align>center</align>
+ <buttonarea>0,0,100%,100%</buttonarea>
+ <statetype name="buttonitem">
+ <state name="active">
+ <area>0,0,100%,30</area>
+ <group name="select_bar" from="base_select_bar_active_group">
+ <area>0,0,100%,100%</area>
+ <shape name="select_bar">
+ <fill color="#000000" alpha="210" />
+ <type>box</type>
+ </shape>
+ </group>
+ <textarea name="name" from="basetextarea">
+ <area>10,0,100%-10,30</area>
+ <scroll direction="left" />
+ <cutdown>yes</cutdown>
+ <template>%NAME%: %VALUE%</template>
+ </textarea>
+ </state>
+ <state name="selectedactive" from="active" />
+ <state name="selectedinactive" from="active" />
+ </statetype>
+ <statetype name="upscrollarrow">
+ <position>20,-15</position>
+ <state type="off">
+ <imagetype name="upoff">
+ <alpha>0</alpha>
+ </imagetype>
+ </state>
+ <state type="full">
+ <imagetype name="upon">
+ <filename>images/lists_up_arrow.png</filename>
+ <alpha>200</alpha>
+ </imagetype>
+ </state>
+ </statetype>
+ <statetype name="downscrollarrow">
+ <position>20,100%+10</position>
+ <state type="off">
+ <imagetype name="dnoff">
+ <alpha>0</alpha>
+ </imagetype>
+ </state>
+ <state type="full">
+ <imagetype name="dnon">
+ <filename>images/lists_down_arrow.png</filename>
+ <alpha>200</alpha>
+ </imagetype>
+ </state>
+ </statetype>
+ </buttonlist>
+
+ <!--Shows scan progress-->
+ <group name="progress">
+ <area>0,0,100%,100%</area>
+
+ <animation trigger="AboutToShow">
+ <section>
+ <alpha start="0" end="255" easingcurve="OutQuart"/>
+ <zoom start="0" end="100" easingcurve="OutQuart"/>
+ </section>
+ </animation>
+
+ <animation trigger="AboutToHide">
+ <section>
+ <alpha start="255" end="0" easingcurve="InQuart"/>
+ <zoom start="100" end="0" easingcurve="InQuart"/>
+ </section>
+ </animation>
+
+ <shape name="osd-status-backdrop" depends="scanprogresstext">
+ <area>64,624,1152,60</area>
+ <type>roundbox</type>
+ <fill color="#000000" alpha="140" />
+ <cornerradius>8</cornerradius>
+ </shape>
+
+ <shape name="osd-status-backdrop-line" depends="scanprogresstext">
+ <area>65,625,1150,58</area>
+ <type>roundbox</type>
+ <fill color="#000000" alpha="0" />
+ <line color="#ffffff" alpha="45" width="2" />
+ <cornerradius>6</cornerradius>
+ </shape>
+
+ <shape name="top-line" depends="scanprogresstext">
+ <area>66,626,1148,2</area>
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="horizontal" alpha="0">
+ <stop position="0" color="#ffffff" />
+ <stop position="50" color="#ffffff" alpha="120" />
+ <stop position="100" color="#ffffff" />
+ </gradient>
+ </fill>
+ </shape>
+
+ <shape name="bottom-line" from="top-line" depends="scanprogresstext">
+ <area>66,680,1148,2</area>
+ </shape>
+
+ <shape name="left-line" depends="scanprogresstext">
+ <area>66,628,2,52</area>
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="vertical" alpha="0">
+ <stop position="0" color="#ffffff" />
+ <stop position="50" color="#ffffff" alpha="180" />
+ <stop position="100" color="#ffffff" />
+ </gradient>
+ </fill>
+ </shape>
+
+ <shape name="right-line" from="left-line" depends="scanprogresstext">
+ <area>1212,628,2,52</area>
+ </shape>
+
+ <!-- Progress bar-->
+ <progressbar name="scanprogressbar">
+ <area>90,650,1100,8</area>
+ <layout>horizontal</layout>
+ <style>reveal</style>
+ <imagetype name="background">
+ <area>0,0,100%,100%</area>
+ <filename>images/osd/progressbar_background.png</filename>
+ </imagetype>
+ <imagetype name="progressimage">
+ <area>0,0,100%,100%</area>
+ <filename>images/osd/progressbar_fill.png</filename>
+ </imagetype>
+ </progressbar>
+
+ <!--Shows numerical scan progress-->
+ <textarea name="scanprogresstext" from="basetextarea">
+ <area>90,657,1100,24</area>
+ <font>basesmall</font>
+ <align>allcenter</align>
+ </textarea>
+ </group>
+
+ <!-- shows state of type filter -->
+ <textarea name="typefilter" from="basetextarea">
+ <area>1100,39,100,34</area>
+ <font>basesmallblue</font>
+ <align>left,vcenter</align>
+ </textarea>
+ <textarea name="typefilterAll" from="basetextarea" depends="!typefilter">
+ <value>All</value>
+ <area>1100,39,100,34</area>
+ <font>basesmallblue</font>
+ <align>left,vcenter</align>
+ </textarea>
+ <textarea name="typefilterlabel" from="basetextarea">
+ <value>Show:</value>
+ <area>1035,39,60,34</area>
+ <font>basesmallblue</font>
+ <align>right,vcenter</align>
+ </textarea>
+
+ <!-- shows state of hidden filter -->
+ <textarea name="hidefilter" from="basetextarea">
+ <area>1185,39,80,34</area>
+ <font>basesmallblue</font>
+ <align>right,vcenter</align>
+ </textarea>
+ </window>
+
+ <!-- Gallery Slideshow window which shows the a single image only or a slideshow. -->
+ <window name="slideshow">
+
+ <!-- Extra small text for Gallery images -->
+ <fontdef name="gallerytext" from="basesmall">
+ <outlinecolor>#000000</outlinecolor>
+ <outlinesize>2</outlinesize>
+ </fontdef>
+
+ <!-- the background behind the images -->
+ <shape name="background_shape">
+ <area>0,0,100%,100%</area>
+ <fill color="#000000" alpha="255"/>
+ </shape>
+
+ <!-- an image -->
+ <imagetype name="image">
+ <area>0,0,100%,100%</area>
+ <preserveaspect>yes</preserveaspect>
+ </imagetype>
+
+ <!-- Represents "Show Captions" state for use as a dependancy by other widgets
+ Set = Hide; empty = Show -->
+ <textarea name="hidecaptions" from="basetextarea">
+ <area>0,0,0,0</area>
+ </textarea>
+
+ <!-- End/Loading/Failed to load status -->
+ <textarea name="status" from="basetextarea" depends="!hidecaptions">
+ <area>200,0,100%-200,30</area>
+ <font>basesmall</font>
+ <align>hcenter,top</align>
+ </textarea>
+
+ <!-- Slide count -->
+ <textarea name="slidecount" from="basetextarea" depends="!hidecaptions">
+ <area>100%-200,0,190,30</area>
+ <font>gallerytext</font>
+ <align>right, vcentre</align>
+ </textarea>
+
+ <!-- Date/Comment -->
+ <textarea name="caption" from="basetextarea" depends="!hidecaptions">
+ <area>10,100%-28,100%-10,30</area>
+ <font>gallerytext</font>
+ <align>right, vcenter</align>
+ <cutdown>no</cutdown>
+ <scroll direction="horizontal"/>
+ </textarea>
+
+ <!-- Shows file info overlay -->
+ <buttonlist name="infolist" from="base_list">
+ <area>10,30,510,100%-30</area>
+ <layout>vertical</layout>
+ <spacing>1</spacing>
+ <scrollstyle>free</scrollstyle>
+ <arrange>stack</arrange>
+ <wrapstyle>items</wrapstyle>
+ <align>center</align>
+ <buttonarea>0,0,100%,100%</buttonarea>
+ <statetype name="buttonitem">
+ <state name="active">
+ <area>0,0,100%,30</area>
+ <group name="select_bar" from="base_select_bar_active_group">
+ <area>0,0,100%,100%</area>
+ </group>
+ <textarea name="name" from="basetextarea">
+ <area>15,0,100%,30</area>
+ <cutdown>yes</cutdown>
+ <template>%NAME%: %VALUE%</template>
+ </textarea>
+ </state>
+ <state name="selectedactive">
+ <area>0,0,100%,64</area>
+ <shape name="select_bar_backdrop_line" from="base_backdrop_line">
+ <area>0,0,100%,100%-2</area>
+ <type>box</type>
+ </shape>
+ <group name="select_bar" from="base_select_bar_selectedactive_group">
+ <area>1,1,100%-2,100%-2</area>
+ </group>
+
+ <shape name="select_bar_left_line" from="base_highlight_vertical_line">
+ <area>0,0,2,100%</area>
+ </shape>
+ <shape name="select_bar_right_line" from="base_highlight_vertical_line">
+ <area>100%-4,0,2,100%</area>
+ </shape>
+ <textarea name="name" from="basetextarea">
+ <area>15,5,100%,50</area>
+ <multiline>yes</multiline>
+ <scroll direction="up" rate="20"/>
+ <template>%NAME%: %VALUE%</template>
+ <font>basesmallyellow</font>
+ </textarea>
+ </state>
+ <state name="selectedinactive" from="active" />
+ </statetype>
+ <statetype name="upscrollarrow">
+ <position>20,-15</position>
+ <state type="off">
+ <imagetype name="upoff">
+ <alpha>0</alpha>
+ </imagetype>
+ </state>
+ <state type="full">
+ <imagetype name="upon">
+ <filename>images/lists_up_arrow.png</filename>
+ <alpha>200</alpha>
+ </imagetype>
+ </state>
+ </statetype>
+ <statetype name="downscrollarrow">
+ <position>20,100%+10</position>
+ <state type="off">
+ <imagetype name="dnoff">
+ <alpha>0</alpha>
+ </imagetype>
+ </state>
+ <state type="full">
+ <imagetype name="dnon">
+ <filename>images/lists_down_arrow.png</filename>
+ <alpha>200</alpha>
+ </imagetype>
+ </state>
+ </statetype>
+ </buttonlist>
+
+ </window>
+
+</mythuitheme>
diff --git a/abs/core/linhes-theme/menu-ui-vert.xml.patch b/abs/core/linhes-theme/menu-ui-vert.xml.patch
index b1dbaaf..3a0c3d9 100644
--- a/abs/core/linhes-theme/menu-ui-vert.xml.patch
+++ b/abs/core/linhes-theme/menu-ui-vert.xml.patch
@@ -1,5 +1,5 @@
---- menu-ui-vert.xml.orig 2016-01-13 18:48:20.631382184 +0000
-+++ menu-ui-vert.xml 2016-04-13 19:40:10.952214840 +0000
+--- menu-ui-vert.xml.orig 2017-01-12 02:27:03.269571903 +0000
++++ menu-ui-vert.xml 2017-01-12 02:19:35.517176026 +0000
@@ -6,18 +6,53 @@
<area>0,0,1280,720</area>
@@ -126,7 +126,7 @@
<font>basemediumlightgrey</font>
<multiline>yes</multiline>
<align>allcenter</align>
-@@ -147,40 +227,40 @@
+@@ -147,40 +227,48 @@
</textarea>
</state>
<state name="selectedactive">
@@ -134,6 +134,7 @@
+ <area>-20,0,370,80</area>
+ <shape name="select_bar_backdrop_line" from="base_backdrop_line">
+ <area>0,0,100%,100%-2</area>
++ <line color="#0072bc" alpha="45" width="2" />
+ <type>box</type>
+ </shape>
<group name="select_bar" from="base_select_bar_selectedactive_group">
@@ -142,9 +143,16 @@
</group>
+ <shape name="select_bar_left_line" from="base_highlight_vertical_line">
+ <area>0,0,2,100%</area>
++ <fill style="gradient">
++ <gradient alpha="0" direction="vertical">
++ <stop position="0" color="#0072bc" />
++ <stop position="50" color="#0072bc" alpha="180" />
++ <stop position="100" color="#0072bc" />
++ </gradient>
++ </fill>
+ </shape>
-+ <shape name="select_bar_right_line" from="base_highlight_vertical_line">
-+ <area>100%-4,0,2,100%</area>
++ <shape name="select_bar_right_line" from="select_bar_left_line">
++ <area>100%-2,0,2,100%</area>
+ </shape>
<textarea name="buttontext">
- <area>5,0,320,64</area>
@@ -192,7 +200,7 @@
<showempty>yes</showempty>
<state type="full">
<imagetype name="upon">
-@@ -190,7 +270,7 @@
+@@ -190,7 +278,7 @@
</state>
</statetype>
<statetype name="downscrollarrow">
diff --git a/abs/core/linhes-theme/music-base.xml.patch b/abs/core/linhes-theme/music-base.xml.patch
new file mode 100644
index 0000000..7c8e3bf
--- /dev/null
+++ b/abs/core/linhes-theme/music-base.xml.patch
@@ -0,0 +1,121 @@
+--- music-base.xml.orig 2016-12-13 20:45:06.068067497 +0000
++++ music-base.xml 2016-12-18 00:17:16.171607805 +0000
+@@ -360,7 +360,6 @@
+ <textarea name="title" from="buttontext">
+ <area>143,0,1066,30</area>
+ <align>left,vcenter</align>
+- <font>basesmall</font>
+ <template>%TITLE% by %ARTIST% on %ALBUM%</template>
+ </textarea>
+ </state>
+@@ -412,9 +411,12 @@
+ </textarea>
+ </state>
+ <state name="selectedinactive" from="selectedactive">
+- <group name="select_bar" from="base_select_bar_selectedinactive_group">
+- <area>0,0,100%,100%</area>
+- </group>
++ <group name="select_bar" from="base_select_bar_selectedinactive_group">
++ <area>0,0,100%,100%</area>
++ </group>
++ <textarea name="title">
++ <font>basesmall</font>
++ </textarea>
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+@@ -450,7 +452,7 @@
+ <textarea name="shuffletext" from="basetextarea">
+ <area>0,0,300,22</area>
+ <font>basesmaller</font>
+- <value>Shuffle Mode: Intelligent</value>
++ <value>Shuffle Mode: Smart</value>
+ <align>left,vcenter</align>
+ </textarea>
+ </state>
+@@ -504,7 +506,7 @@
+ </statetype>
+
+ <textarea name="playlistposition" from="basetextarea">
+- <area>192,9,170,14</area>
++ <area>192,8,170,14</area>
+ <font>basesupersmallyellow</font>
+ <align>right,vcenter</align>
+ </textarea>
+@@ -514,7 +516,7 @@
+ </progressbar>
+
+ <textarea name="playlisttime" from="basetextarea">
+- <area>918,9,230,14</area>
++ <area>918,8,230,14</area>
+ <font>basesupersmallyellow</font>
+ <align>left,vcenter</align>
+ </textarea>
+@@ -574,7 +576,7 @@
+ </imagetype>
+
+ <textarea name="title" from="basetextarea">
+- <area>171,18,938,24</area>
++ <area>171,14,938,24</area>
+ <font>basesmallyellow</font>
+ </textarea>
+
+@@ -615,11 +617,11 @@
+ <font>baseevensmaller</font>
+ <align>allcenter</align>
+ </textarea>
+-
++<!--
+ <group name="musiccontrols" from="base_music_controls">
+ <position>535,140</position>
+ </group>
+-
++-->
+ <statetype name="mutestate" from="base_mute_state">
+ <position>44,146</position>
+ </statetype>
+@@ -629,11 +631,11 @@
+ </textarea>
+
+ <progressbar name="progress" from="baseprogressbar">
+- <position>372,162</position>
++ <position>372,152</position>
+ </progressbar>
+
+ <textarea name="time" from="basetextarea">
+- <area>918,161,185,14</area>
++ <area>918,149,185,14</area>
+ <font>basesupersmallyellow</font>
+ </textarea>
+
+@@ -718,7 +720,7 @@
+
+ <textarea name="title" from="basetextarea">
+ <area>146,7,987,28</area>
+- <font>basesmaller</font>
++ <font>basesmalleryellow</font>
+ <template>%TITLE% - %ARTIST% - %ALBUM%</template>
+ </textarea>
+
+@@ -739,17 +741,17 @@
+ <textarea name="volume" from="base_volume">
+ <position>190,57</position>
+ </textarea>
+-
++<!--
+ <group name="musiccontrols" from="base_music_controls">
+ <position>535,68</position>
+ </group>
+-
++-->
+ <progressbar name="progress" from="baseprogressbar">
+- <position>372,90</position>
++ <position>372,79</position>
+ </progressbar>
+
+ <textarea name="time" from="basetextarea">
+- <area>918,89,185,14</area>
++ <area>918,77,185,14</area>
+ <font>basesupersmallyellow</font>
+ </textarea>
+
diff --git a/abs/core/linhes-theme/music-ui.xml.patch b/abs/core/linhes-theme/music-ui.xml.patch
new file mode 100644
index 0000000..6d01256
--- /dev/null
+++ b/abs/core/linhes-theme/music-ui.xml.patch
@@ -0,0 +1,704 @@
+--- music-ui.xml.orig 2016-12-13 20:47:17.067929339 +0000
++++ music-ui.xml 2017-01-12 02:19:35.520508931 +0000
+@@ -6,7 +6,7 @@
+ <area>0,0,1280,720</area>
+
+ <textarea name="heading" from="base_heading">
+- <value>Current Play List View</value>
++ <value>Current Playlist View</value>
+ </textarea>
+
+ <shape name="play-list-backdrop" from="base_backdrop">
+@@ -41,7 +41,7 @@
+ <area>28,44,1224,406</area>
+ <multiline>yes</multiline>
+ <align>allcenter</align>
+- <value>You haven't selected any tracks to play</value>
++ <value>Press MENU to add tracks to Current Playlist</value>
+ </textarea>
+
+ <!-- current playlist button list -->
+@@ -92,7 +92,7 @@
+ </state>
+ </statetype>
+ <textarea name="tracknum">
+- <area>133,0,52,30</area>
++ <area>118,0,70,30</area>
+ <font>basesmall</font>
+ <align>right,vcenter</align>
+ <template>%1 -</template>
+@@ -107,7 +107,7 @@
+ <align>left,vcenter</align>
+ </textarea>
+ <textarea name="length" from="title">
+- <area>1139,0,70,30</area>
++ <area>1129,0,80,30</area>
+ <align>right,vcenter</align>
+ </textarea>
+ </state>
+@@ -121,7 +121,7 @@
+ <state name="playing">
+ <area>0,0,100%,100%</area>
+ <textarea name="playing" from="basetextarea">
+- <area>84,0,70,64</area>
++ <area>74,0,70,64</area>
+ <font>basesupersmallgreen</font>
+ <cutdown>no</cutdown>
+ <align>allcenter</align>
+@@ -132,7 +132,7 @@
+ <state name="paused">
+ <area>0,0,100%,100%</area>
+ <textarea name="paused" from="basetextarea">
+- <area>84,0,70,64</area>
++ <area>74,0,70,64</area>
+ <font>basesupersmallyellow</font>
+ <cutdown>no</cutdown>
+ <align>allcenter</align>
+@@ -143,7 +143,7 @@
+ <state name="stopped">
+ <area>0,0,100%,100%</area>
+ <textarea name="stopped" from="basetextarea">
+- <area>84,0,70,64</area>
++ <area>74,0,70,64</area>
+ <font>basesupersmallred</font>
+ <cutdown>no</cutdown>
+ <align>allcenter</align>
+@@ -153,40 +153,45 @@
+ </state>
+ </statetype>
+ <textarea name="tracknum">
+- <area>159,2,52,24</area>
++ <area>118,1,70,24</area>
+ <font>basesmallyellow</font>
+- <align>right,vcenter</align>
++ <align>right,top</align>
+ <template>%1 -</template>
+ </textarea>
+ <textarea name="title">
+- <area>219,2,540,24</area>
++ <area>193,1,566,24</area>
++ <align>left,top</align>
+ <font>basesmallyellow</font>
++ <scroll direction="left" startdelay="1"/>
+ </textarea>
+ <textarea name="artist" from="title">
+- <area>774,2,350,24</area>
++ <area>774,1,350,24</area>
++ <scroll direction="left" startdelay="1"/>
+ </textarea>
+- <textarea name="length" from="title">
+- <area>1139,2,70,24</area>
++ <textarea name="length">
++ <area>1129,1,80,24</area>
+ <align>right,vcenter</align>
++ <font>basesmallyellow</font>
+ </textarea>
+ <textarea name="album">
+- <area>229,0,540,64</area>
+- <font>baseextrasmallyellow</font>
++ <area>193,24,566,20</area>
++ <font>baseextrasmallblue</font>
+ <align>left,vcenter</align>
+ </textarea>
+ <textarea name="genre" from="album">
+- <area>784,0,340,64</area>
++ <area>774,24,350,20</area>
+ </textarea>
+ <statetype name="ratingstate" from="base_rating_state">
+- <position>219,40</position>
++ <position>193,40</position>
+ </statetype>
+ <textarea name="lastplayed" from="album">
+- <area>774,43,250,20</area>
++ <area>774,43,260,20</area>
++ <font>baseextrasmall</font>
+ </textarea>
+- <textarea name="playcount" from="album">
++ <textarea name="playcount" from="lastplayed">
+ <area>1039,43,170,20</area>
+ <align>right,vcenter</align>
+- <template>Played %1 times</template>
++ <template>Played: %1</template>
+ </textarea>
+ </state>
+ <state name="selectedinactive" from="selectedactive">
+@@ -217,7 +222,7 @@
+ <area>0,0,1280,720</area>
+
+ <textarea name="heading" from="base_heading">
+- <value>Play List Editor Tree View</value>
++ <value>Playlist Editor Tree View</value>
+ </textarea>
+
+ <shape name="breadcrumbs-backdrop" from="base_backdrop">
+@@ -274,6 +279,7 @@
+ <area>36,39,993,30</area>
+ <font>basesmallyellow</font>
+ <align>left,vcenter</align>
++ <scroll direction="horizontal" startdelay="1" rate="80"/>
+ </textarea>
+
+ <!-- optional - shows current position in grid eg '1 of 123' -->
+@@ -355,7 +361,7 @@
+ <area>0,0,1280,720</area>
+
+ <textarea name="heading" from="base_heading">
+- <value>Play List Editor Gallery View</value>
++ <value>Playlist Editor Gallery View</value>
+ </textarea>
+
+ <shape name="breadcrumbs-backdrop" from="base_backdrop">
+@@ -404,6 +410,7 @@
+ <area>36,39,993,30</area>
+ <font>basesmallyellow</font>
+ <align>left,vcenter</align>
++ <scroll direction="horizontal" startdelay="1" rate="80"/>
+ </textarea>
+
+ <!-- optional - shows current position in grid eg '1 of 123' -->
+@@ -435,7 +442,8 @@
+ </group>
+ <imagetype name="buttonimage">
+ <area>8,8,120,120</area>
+- <filename>mythmusic/mm_nothumb.png</filename>
++ <filename>mythmusic/mm_category.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ <statetype name="nodetype">
+ <position>8,8</position>
+@@ -443,73 +451,85 @@
+ <state name="alltracks">
+ <imagetype name="alltracks">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="genres">
+ <imagetype name="genres">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="albums">
+ <imagetype name="albums">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="artists">
+ <imagetype name="artists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="compartists">
+ <imagetype name="compartists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="ratings">
+ <imagetype name="ratings">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="years">
+ <imagetype name="years">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="compilations">
+ <imagetype name="compilations">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="cd">
+ <imagetype name="cd">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="directory">
+ <imagetype name="directory">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="playlists">
+ <imagetype name="playlists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="smartplaylists">
+ <imagetype name="smartplaylists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
++ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ </statetype>
+@@ -547,7 +567,7 @@
+ <area>0,0,100%,100%</area>
+ <type>roundbox</type>
+ <fill color="#101017" alpha="255" />
+- <line color="#ffffff" alpha="45" width="4" />
++ <line color="#0072bc" alpha="45" width="4" />
+ <cornerradius>8</cornerradius>
+ </shape>
+ <shape name="select_bar_top_highlight_line">
+@@ -555,9 +575,9 @@
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="horizontal" alpha="0">
+- <stop position="0" color="#ffffff" />
+- <stop position="50" color="#ffffff" alpha="180" />
+- <stop position="100" color="#ffffff" />
++ <stop position="0" color="#0072bc" />
++ <stop position="50" color="#0072bc" alpha="180" />
++ <stop position="100" color="#0072bc" />
+ </gradient>
+ </fill>
+ </shape>
+@@ -569,9 +589,9 @@
+ <type>box</type>
+ <fill style="gradient">
+ <gradient alpha="0" direction="vertical">
+- <stop position="0" color="#ffffff" />
+- <stop position="50" color="#ffffff" alpha="220" />
+- <stop position="100" color="#ffffff" />
++ <stop position="0" color="#0072bc" />
++ <stop position="50" color="#0072bc" alpha="220" />
++ <stop position="100" color="#0072bc" />
+ </gradient>
+ </fill>
+ </shape>
+@@ -580,7 +600,7 @@
+ </shape>
+ <imagetype name="buttonimage">
+ <area>8,8,120,120</area>
+- <filename>mythmusic/mm_nothumb.png</filename>
++ <filename>mythmusic/mm_category.png</filename>
+ </imagetype>
+ <statetype name="nodetype">
+ <position>8,8</position>
+@@ -588,73 +608,73 @@
+ <state name="alltracks">
+ <imagetype name="alltracks">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="genres">
+ <imagetype name="genres">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="albums">
+ <imagetype name="albums">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="artists">
+ <imagetype name="artists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="compartists">
+ <imagetype name="compartists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="ratings">
+ <imagetype name="ratings">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="years">
+ <imagetype name="years">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="compilations">
+ <imagetype name="compilations">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="cd">
+ <imagetype name="cd">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="directory">
+ <imagetype name="directory">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="playlists">
+ <imagetype name="playlists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ <state name="smartplaylists">
+ <imagetype name="smartplaylists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ </imagetype>
+ </state>
+ </statetype>
+@@ -681,22 +701,50 @@
+ <area>5,1,-5,-3</area>
+ <align>bottom,hcenter</align>
+ <minsize shrink="short" vanish="true">5,5</minsize>
+- <font>baseextrasmall</font>
++ <font>baseextrasmallyellow</font>
+ <multiline>yes</multiline>
+ </textarea>
+ </group>
+ </state>
+- <state name="selectedinactive">
+- <group name="select_bar" from="base_button_select_bar_disabled_group">
+- <area>0,0,136,136</area>
+- <shape name="select_bar">
+- <fill color="#333333" alpha="255" />
+- <cornerradius>8</cornerradius>
+- </shape>
+- </group>
++ <state name="selectedinactive" from="selectedactive">
++ <shape name="select_bar">
++ <area>0,0,100%,100%</area>
++ <type>roundbox</type>
++ <fill color="#101017" alpha="255" />
++ <line color="#ffffff" alpha="45" width="4" />
++ <cornerradius>8</cornerradius>
++ </shape>
++ <shape name="select_bar_top_highlight_line">
++ <area>8,2,120,4</area>
++ <type>box</type>
++ <fill style="gradient">
++ <gradient direction="horizontal" alpha="0">
++ <stop position="0" color="#ffffff" />
++ <stop position="50" color="#ffffff" alpha="180" />
++ <stop position="100" color="#ffffff" />
++ </gradient>
++ </fill>
++ </shape>
++ <shape name="select_bar_bottom_highlight_line" from="select_bar_top_highlight_line">
++ <area>8,130,120,4</area>
++ </shape>
++ <shape name="select_bar_left_highlight_line">
++ <area>2,8,4,120</area>
++ <type>box</type>
++ <fill style="gradient">
++ <gradient alpha="0" direction="vertical">
++ <stop position="0" color="#ffffff" />
++ <stop position="50" color="#ffffff" alpha="220" />
++ <stop position="100" color="#ffffff" />
++ </gradient>
++ </fill>
++ </shape>
++ <shape name="select_bar_right_highlight_line" from="select_bar_left_highlight_line">
++ <area>130,8,4,120</area>
++ </shape>
+ <imagetype name="buttonimage">
+ <area>8,8,120,120</area>
+- <filename>mythmusic/mm_nothumb.png</filename>
++ <filename>mythmusic/mm_category.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ <statetype name="nodetype">
+@@ -705,94 +753,84 @@
+ <state name="alltracks">
+ <imagetype name="alltracks">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="genres">
+ <imagetype name="genres">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="albums">
+ <imagetype name="albums">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="artists">
+ <imagetype name="artists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="compartists">
+ <imagetype name="compartists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="ratings">
+ <imagetype name="ratings">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="years">
+ <imagetype name="years">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="compilations">
+ <imagetype name="compilations">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="cd">
+ <imagetype name="cd">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="directory">
+ <imagetype name="directory">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="playlists">
+ <imagetype name="playlists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+ <state name="smartplaylists">
+ <imagetype name="smartplaylists">
+ <area>0,0,120,120</area>
+- <filename>mythmusic/mm_category.png</filename>
+- <alpha>100</alpha>
+- </imagetype>
+- </state>
+- </statetype>
+- <statetype name="buttoncheck">
+- <position>8,8</position>
+- <showempty>yes</showempty>
+- <state type="full">
+- <imagetype name="marked">
+- <filename>mythmusic/playlist_yes.png</filename>
++ <filename>mythmusic/mm_nothumb.png</filename>
+ <alpha>100</alpha>
+ </imagetype>
+ </state>
+@@ -813,7 +851,6 @@
+ <minsize shrink="short" vanish="true">5,5</minsize>
+ <font>baseextrasmall</font>
+ <multiline>yes</multiline>
+- <alpha>100</alpha>
+ </textarea>
+ </group>
+ </state>
+@@ -1909,6 +1946,122 @@
+
+ </window>
+
++ <window name="trackslyricsview">
++ <area>0,0,1280,720</area>
++
++ <group name="heading-backdrop" from="base_heading_group" />
++
++ <textarea name="heading" from="base_heading">
++ <value>Track Lyrics View</value>
++ </textarea>
++
++ <shape name="lyrics-backdrop" from="base_backdrop">
++ <area>20,36,1240,453</area>
++ </shape>
++
++ <shape name="lyrics-backdrop-line" from="base_backdrop_line">
++ <area>21,37,1238,451</area>
++ </shape>
++
++ <shape name="lyrics-top-line" from="base_highlight_line">
++ <area>21,38,1238,2</area>
++ </shape>
++
++ <shape name="lyrics-bottom-line" from="base_highlight_line">
++ <area>21,486,1238,2</area>
++ </shape>
++
++ <shape name="lyrics-list-left-line" from="base_highlight_vertical_line">
++ <area>22,40,2,446</area>
++ </shape>
++
++ <shape name="lyrics-list-right-line" from="base_highlight_vertical_line">
++ <area>1256,40,2,446</area>
++ </shape>
++
++ <shape name="lyrics-list-arrows-backdrop" from="base_arrows_backdrop">
++ <area>1207,490,50,11</area>
++ </shape>
++
++ <buttonlist name="lyrics_list" from="base_list">
++ <area>28,44,1224,440</area>
++ <searchposition>-1,466</searchposition>
++ <buttonarea>0,0,1224,440</buttonarea>
++ <statetype name="buttonitem">
++ <state name="active">
++ <area>0,0,100%,30</area>
++ <textarea name="buttontext">
++ <area>0,0,100%,100%</area>
++ <align>top,hcenter</align>
++ <font>basesmall</font>
++ </textarea>
++ </state>
++ <state name="selectedactive" from="active">
++ <group name="select_bar" from="base_select_bar_selectedactive_group">
++ <area>0,0,100%,100%</area>
++ </group>
++ <textarea name="buttontext">
++ <font>basesmallyellow</font>
++ </textarea>
++ </state>
++ <state name="selectedinactive" from="selectedactive">
++ <group name="select_bar" from="base_select_bar_selectedinactive_group">
++ <area>0,0,100%,100%</area>
++ </group>
++ </state>
++ </statetype>
++
++ <statetype name="upscrollarrow">
++ <position>1186,448</position>
++ </statetype>
++
++ <statetype name="downscrollarrow">
++ <position>1206,448</position>
++ </statetype>
++ </buttonlist>
++
++ <statetype name="loading_state">
++ <position>339,153</position>
++ <state name="off"></state>
++ <state name="on">
++ <shape name="boxshape" from="base_popup_backdrop">
++ <area>0,0,602,144</area>
++ </shape>
++ <shape name="boxshape-line" from="base_backdrop_line">
++ <area>1,1,600,142</area>
++ </shape>
++ <shape name="busy-dialog-top-line" from="base_highlight_line">
++ <area>2,2,598,2</area>
++ </shape>
++ <shape name="busy-dialog-bottom-line" from="base_highlight_line">
++ <area>2,140,598,2</area>
++ </shape>
++ <shape name="busy-dialog-left-line" from="base_highlight_vertical_line">
++ <area>2,4,2,138</area>
++ </shape>
++ <shape name="busy-dialog-right-line" from="base_highlight_vertical_line">
++ <area>598,4,2,138</area>
++ </shape>
++ <imagetype name="loadinganimation">
++ <position>33,65</position>
++ <filepattern low="1" high="60" cycle="reverse">images/busy/busy%1.png</filepattern>
++ <delay>12</delay>
++ </imagetype>
++ </state>
++ </statetype>
++
++ <textarea name="status_text" from="basetextarea">
++ <area>20,36,1240,453</area>
++ <font>basemediumyellow</font>
++ <align>allcenter</align>
++ </textarea>
++
++ <group name="trackinfopanel" from="base_info_panel">
++ <area>0,506,1280,240</area>
++ </group>
++
++ </window>
++
+ <window name="editmetadata">
+ <area>0,0,1280,720</area>
+
+@@ -3492,7 +3645,7 @@
+ </section>
+ </animation>
+
+- <shape name="cd-rip-backdrop" from="base_popup_backdrop">
++ <shape name="cd-rip-backdrop" from="base_popup_backdrop">
+ <area>0,0,800,360</area>
+ </shape>
+
diff --git a/abs/core/linhes-theme/osd.xml.patch b/abs/core/linhes-theme/osd.xml.patch
index 3eabbfc..a5629d4 100644
--- a/abs/core/linhes-theme/osd.xml.patch
+++ b/abs/core/linhes-theme/osd.xml.patch
@@ -1,5 +1,5 @@
--- osd.xml.orig 2016-11-16 18:00:59.736588734 +0000
-+++ osd.xml 2016-11-17 19:29:17.370920531 +0000
++++ osd.xml 2017-01-13 18:57:07.721509072 +0000
@@ -7,13 +7,13 @@
<window name="osd_debug">
<area>0,0,1280,720</area>
@@ -274,17 +274,17 @@
- <area>90,658,1100,24</area>
+ <textarea name="value">
+ <area>90,657,1100,24</area>
- <font>small</font>
- <align>allcenter</align>
-- <template>%DESCRIPTION%
-- %(|REMAININGTIME|)%%(|BEHINDTIME|)%%VALUE%%UNITS%</template>
++ <font>small</font>
++ <align>allcenter</align>
+ <template>%VALUE%%UNITS%</template>
+ </textarea>
+
+ <textarea name="playedtime" depends="!value">
+ <area>90,657,1100,24</area>
-+ <font>small</font>
-+ <align>allcenter</align>
+ <font>small</font>
+ <align>allcenter</align>
+- <template>%DESCRIPTION%
+- %(|REMAININGTIME|)%%(|BEHINDTIME|)%%VALUE%%UNITS%</template>
+ <template>%PLAYEDTIME% of %TOTALTIME%
+ %(|REMAININGTIME| remains)%%(|BEHINDTIME| behind)%</template>
</textarea>
@@ -457,21 +457,21 @@
<align>vcenter</align>
- <template>%TIMEDATE% : %LENMINS%</template>
+ <template>%TIMEDATE% %LONGREPEAT%</template>
- </textarea>
-
-- <textarea name="longrepeat">
++ </textarea>
++
+ <!--use channum to detect if in videos-->
+ <textarea name="lenminsFilesize" depends="channum">
- <font>mediumsmall</font>
-- <area>771,453,435,22</area>
++ <font>mediumsmall</font>
+ <area>871,453,335,22</area>
+ <align>right,vcenter</align>
+ <template>%LENMINS% (%FILESIZE_STR%)</template>
-+ </textarea>
-+
+ </textarea>
+
+- <textarea name="longrepeat">
+ <!--use channum to detect if in videos-->
+ <textarea name="lenmins" depends="!channum">
-+ <font>mediumsmall</font>
+ <font>mediumsmall</font>
+- <area>771,453,435,22</area>
+ <area>871,453,335,22</area>
<align>right,vcenter</align>
- <template>%LONGREPEAT% Size: %FILESIZE_STR%</template>
@@ -751,3 +751,66 @@
</fontdef>
<shape name="mythpopupbox-backdrop">
+@@ -1810,7 +1836,7 @@
+ </shape>
+
+ <shape name="message-area-seperator-line">
+- <area>362,328,556,2</area>
++ <area>362,290,556,2</area>
+ <type>box</type>
+ <fill style="gradient">
+ <gradient direction="horizontal" alpha="45">
+@@ -1822,21 +1848,21 @@
+ </shape>
+
+ <shape name="mythpopup-box-arrows-backdrop">
+- <area>342,603,50,14</area>
++ <area>888,603,50,14</area>
+ <type>roundbox</type>
+- <fill color="#000000" alpha="200" />
++ <fill color="#000000" alpha="140" />
+ <cornerradius>90</cornerradius>
+ </shape>
+
+ <textarea name="messagearea">
+- <area>355,126,570,196</area>
+- <font>smallyellow</font>
++ <area>355,126,570,158</area>
++ <font>small</font>
+ <multiline>yes</multiline>
+ <align>allcenter</align>
+ </textarea>
+
+ <buttonlist name="list">
+- <area>347,332,586,264</area>
++ <area>347,294,586,302</area>
+ <layout>vertical</layout>
+ <spacing>4</spacing>
+ <showarrow>yes</showarrow>
+@@ -1922,7 +1948,7 @@
+ </fill>
+ </shape>
+ <textarea name="buttontext">
+- <font>small</font>
++ <font>smallyellow</font>
+ </textarea>
+ <imagetype name="buttonarrow">
+ <alpha>255</alpha>
+@@ -1964,7 +1990,7 @@
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+- <position>2,274</position>
++ <position>548,312</position>
+ <state type="off">
+ <imagetype name="upon">
+ <filename>images/osd/lists_up_arrow.png</filename>
+@@ -1978,7 +2004,7 @@
+ </state>
+ </statetype>
+ <statetype name="downscrollarrow">
+- <position>22,274</position>
++ <position>568,312</position>
+ <state type="off">
+ <imagetype name="dnon">
+ <filename>images/osd/lists_down_arrow.png</filename>
diff --git a/abs/core/linhes-theme/preview.png b/abs/core/linhes-theme/preview.png
index 7c1efdb..7c1efdb 100755..100644
--- a/abs/core/linhes-theme/preview.png
+++ b/abs/core/linhes-theme/preview.png
Binary files differ
diff --git a/abs/core/linhes-theme/question.png b/abs/core/linhes-theme/question.png
index 1eda678..1eda678 100755..100644
--- a/abs/core/linhes-theme/question.png
+++ b/abs/core/linhes-theme/question.png
Binary files differ
diff --git a/abs/core/linhes-theme/recordings-ui.xml.patch b/abs/core/linhes-theme/recordings-ui.xml.patch
index 4c8f8c1..77969dc 100644
--- a/abs/core/linhes-theme/recordings-ui.xml.patch
+++ b/abs/core/linhes-theme/recordings-ui.xml.patch
@@ -1,5 +1,5 @@
--- recordings-ui.xml.orig 2016-11-16 20:12:29.390254787 +0000
-+++ recordings-ui.xml 2016-11-16 20:12:03.436933524 +0000
++++ recordings-ui.xml 2016-12-23 02:34:31.313887659 +0000
@@ -105,19 +105,11 @@
</shape>
@@ -30,7 +30,7 @@
<multiline>yes</multiline>
</textarea>
</state>
-@@ -232,11 +225,12 @@
+@@ -232,16 +225,16 @@
<area>0,0,898,64</area>
<textarea name="titlesubtitle" from="base_text_font_state_small">
<area>8,2,694,24</area>
@@ -39,12 +39,19 @@
<align>vcenter</align>
</textarea>
<textarea name="shortstartdate" from="titlesubtitle">
- <area>720,3,80,24</area>
-+ <font state="normal">basesmall</font>
+- <area>720,3,80,24</area>
++ <area>720,2,80,24</area>
<align>right,vcenter</align>
</textarea>
<textarea name="filesize_str" from="base_text_font_state_extrasmall">
-@@ -579,20 +573,20 @@
+- <area>818,7,72,18</area>
+- <font state="normal">baseextrasmall</font>
++ <area>818,2,72,24</area>
++ <font state="normal">baseextrasmallyellow</font>
+ <cutdown>no</cutdown>
+ <align>right,vcenter</align>
+ </textarea>
+@@ -579,20 +572,20 @@
<align>allcenter</align>
</textarea>
<textarea name="s00e00" from="base_text_font_state_extrasmall">
@@ -68,7 +75,7 @@
<font state="normal">baseextrasmall</font>
<align>right,vcenter</align>
</textarea>
-@@ -606,57 +600,48 @@
+@@ -606,57 +599,48 @@
</statetype>
</buttonlist>
@@ -138,7 +145,7 @@
<font>basesupersmallyellow</font>
<align>allcenter</align>
<template>Disk space: %1</template>
-@@ -688,7 +673,7 @@
+@@ -688,7 +672,7 @@
<textarea name="norecordings">
<area>350,87,906,351</area>
<font>basemedium</font>
diff --git a/abs/core/linhes-theme/schedule-ui.xml.patch b/abs/core/linhes-theme/schedule-ui.xml.patch
index 930c26f..0ed5ba4 100644
--- a/abs/core/linhes-theme/schedule-ui.xml.patch
+++ b/abs/core/linhes-theme/schedule-ui.xml.patch
@@ -1,5 +1,5 @@
---- schedule-ui.xml.orig 2014-10-26 18:47:27.740659484 +0000
-+++ schedule-ui.xml 2014-10-26 18:45:31.642195458 +0000
+--- schedule-ui.xml.orig 2017-01-12 02:24:06.812272686 +0000
++++ schedule-ui.xml 2017-01-12 02:24:53.802894035 +0000
@@ -126,7 +126,7 @@
<conflictingcolor>#ff6600</conflictingcolor>
<cutdown>no</cutdown>
@@ -9,3 +9,42 @@
<recordstatus type="SingleRecord" image="images/gg-rs-single.png"></recordstatus>
<recordstatus type="TimeslotRecord" image="images/gg-rs-timeslot.png"></recordstatus>
<recordstatus type="ChannelRecord" image="images/gg-rs-channel.png"></recordstatus>
+@@ -1437,10 +1437,10 @@
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+- <position>0,350</position>
++ <position>550,350</position>
+ </statetype>
+ <statetype name="downscrollarrow">
+- <position>20,350</position>
++ <position>570,350</position>
+ </statetype>
+ </buttonlist>
+
+@@ -1544,10 +1544,10 @@
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+- <position>0,350</position>
++ <position>550,350</position>
+ </statetype>
+ <statetype name="downscrollarrow">
+- <position>20,350</position>
++ <position>570,350</position>
+ </statetype>
+ </buttonlist>
+
+@@ -3098,10 +3098,10 @@
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+- <position>0,350</position>
++ <position>550,350</position>
+ </statetype>
+ <statetype name="downscrollarrow">
+- <position>20,350</position>
++ <position>570,350</position>
+ </statetype>
+ </buttonlist>
+
diff --git a/abs/core/linhes-theme/status-ui.xml.patch b/abs/core/linhes-theme/status-ui.xml.patch
new file mode 100644
index 0000000..9c26d77
--- /dev/null
+++ b/abs/core/linhes-theme/status-ui.xml.patch
@@ -0,0 +1,53 @@
+--- status-ui.xml.orig 2017-01-12 02:25:29.328323754 +0000
++++ status-ui.xml 2017-01-12 02:19:35.527174739 +0000
+@@ -212,9 +212,9 @@
+
+ <textarea name="title">
+ <area>4,4,552,64</area>
+- <font>basemedium</font>
++ <font>basemediumyellow</font>
+ <align>allcenter</align>
+- <value>MythTV is in standby mode!</value>
++ <value>MythTV is in Standby Mode</value>
+ </textarea>
+
+ <statetype name="backendstatus">
+@@ -230,7 +230,7 @@
+ <textarea name="status">
+ <area>4,248,552,64</area>
+ <font>basemediumgreen</font>
+- <value>Backend is idle!</value>
++ <value>Backend is Idle</value>
+ <align>allcenter</align>
+ <multiline>true</multiline>
+ </textarea>
+@@ -241,16 +241,16 @@
+ </shape>
+ <textarea name="status">
+ <font>basemediumred</font>
+- <value>Backend is recording!</value>
++ <value>Backend is Recording</value>
+ </textarea>
+ </state>
+ <state name="shuttingdown" from="idle">
+ <shape name="icon">
+- <fill color="#d9d900" />
++ <fill color="#d97616" />
+ </shape>
+ <textarea name="status">
+- <font>basemediumyellow</font>
+- <value>Shutting Down!</value>
++ <font>basemediumorange</font>
++ <value>MythTV is Shutting Down</value>
+ </textarea>
+ </state>
+ <state name="offline" from="idle">
+@@ -259,7 +259,7 @@
+ </shape>
+ <textarea name="status">
+ <font>basemediumred</font>
+- <value>Backend is offline!</value>
++ <value>Backend is Offline</value>
+ </textarea>
+ </state>
+ </statetype>
diff --git a/abs/core/linhes-theme/stream-ui.xml.patch b/abs/core/linhes-theme/stream-ui.xml.patch
new file mode 100644
index 0000000..e555b2b
--- /dev/null
+++ b/abs/core/linhes-theme/stream-ui.xml.patch
@@ -0,0 +1,568 @@
+--- stream-ui.xml.orig 2016-12-13 20:49:12.313146317 +0000
++++ stream-ui.xml 2016-12-13 20:34:54.363217804 +0000
+@@ -41,7 +41,7 @@
+ <area>28,40,1224,276</area>
+ <multiline>yes</multiline>
+ <align>allcenter</align>
+- <value>Press MENU to add some radio streams to play.</value>
++ <value>Press MENU to add radio streams to play</value>
+ </textarea>
+
+ <buttonlist name="streamlist" from="base_list">
+@@ -90,21 +90,24 @@
+ </textarea>
+ </state>
+ </statetype>
+- <textarea name="station" from="buttontext">
++ <textarea name="broadcaster" from="buttontext">
+ <area>153,0,200,30</area>
+ <align>left,vcenter</align>
++ <font>basesmall</font>
+ </textarea>
+- <textarea name="channel" from="buttontext">
+- <area>363,0,370,30</area>
+- <align>left,vcenter</align>
++ <textarea name="channel" from="broadcaster">
++ <area>363,0,470,30</area>
+ </textarea>
+- <textarea name="genre" from="buttontext">
+- <area>743,0,462,30</area>
++ <textarea name="genre" from="broadcaster">
++ <area>843,0,362,30</area>
+ <align>right,vcenter</align>
+ </textarea>
+ </state>
+ <state name="selectedactive">
+ <area>0,0,100%,64</area>
++ <group name="select_bar" from="base_select_bar_selectedactive_group">
++ <area>0,0,100%,100%</area>
++ </group>
+ <imagetype name="buttonimage">
+ <area>15,3,58,58</area>
+ <filename>mm_icecast.png</filename>
+@@ -144,23 +147,43 @@
+ </textarea>
+ </state>
+ </statetype>
+- <textarea name="station" from="buttontext">
+- <area>183,0,200,64</area>
++ <textarea name="broadcaster" from="buttontext">
++ <area>183,1,200,30</area>
+ <align>left,vcenter</align>
+ </textarea>
+- <textarea name="channel" from="buttontext">
+- <area>393,0,356,64</area>
+- <align>left,vcenter</align>
++ <textarea name="channel" from="broadcaster">
++ <area>393,1,456,30</area>
+ </textarea>
+- <textarea name="genre" from="buttontext">
+- <area>759,0,450,64</area>
++ <textarea name="genre" from="broadcaster">
++ <area>859,1,350,30</area>
+ <align>right,vcenter</align>
+ </textarea>
++ <textarea name="description" from="broadcaster">
++ <area>203,32,1006,30</area>
++ <font>basesmallerblue</font>
++ <multiline>no</multiline>
++ <scroll direction="left" startdelay="1"/>
++ </textarea>
+ </state>
+ <state name="selectedinactive" from="selectedactive">
+ <group name="select_bar" from="base_select_bar_selectedinactive_group">
+ <area>0,0,100%,100%</area>
+ </group>
++ <textarea name="broadcaster">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="channel">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="genre">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="description" from="broadcaster">
++ <area>203,32,1006,30</area>
++ <font>basesmallerblue</font>
++ <multiline>no</multiline>
++ <cutdown>yes</cutdown>
++ </textarea>
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+@@ -263,6 +286,18 @@
+ <group name="select_bar" from="base_select_bar_selectedinactive_group">
+ <area>0,0,100%,100%</area>
+ </group>
++ <textarea name="tracknum">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="title">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="artist">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="length">
++ <font>basesmall</font>
++ </textarea>
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+@@ -332,12 +367,12 @@
+
+ <textarea name="channel" from="basetextarea">
+ <area>187,86,906,33</area>
+- <font>basesmallblue</font>
+- <template>%STATION% - %CHANNEL%</template>
++ <font>basesmall</font>
++ <template>%BROADCASTER% - %CHANNEL%</template>
+ </textarea>
+
+ <textarea name="filename" from="basetextarea">
+- <font>basesmall</font>
++ <font>basesmallblue</font>
+ <area>187,119,906,33</area>
+ </textarea>
+
+@@ -359,22 +394,6 @@
+ <align>allcenter</align>
+ </textarea>
+
+- <button name="prev" from="base_prev_button">
+- <position>584,158</position>
+- </button>
+-
+- <button name="play" from="base_play_button">
+- <position>618,158</position>
+- </button>
+-
+- <button name="stop" from="base_stop_button">
+- <position>646,158</position>
+- </button>
+-
+- <button name="next" from="base_next_button">
+- <position>676,158</position>
+- </button>
+-
+ <statetype name="mutestate" from="base_mute_state">
+ <position>57,163</position>
+ </statetype>
+@@ -384,11 +403,11 @@
+ </textarea>
+
+ <progressbar name="bufferprogress" from="baseprogressbar">
+- <position>372,180</position>
++ <position>372,170</position>
+ </progressbar>
+
+ <textarea name="bufferstatus" from="basetextarea">
+- <area>918,179,175,14</area>
++ <area>918,167,175,14</area>
+ <font>basesupersmallyellow</font>
+ </textarea>
+
+@@ -408,6 +427,7 @@
+
+ <shape name="edit-stream-metadata-backdrop-line" from="base_backdrop_line">
+ <area>116,37,1048,506</area>
++ <area>116,37,1048,566</area>
+ </shape>
+
+ <shape name="edit-stream-metadata-top-line" from="base_highlight_line">
+@@ -415,23 +435,25 @@
+ </shape>
+
+ <shape name="edit-stream-metadata-bottom-line" from="base_highlight_line">
+- <area>117,540,1046,2</area>
++ <area>117,600,1046,2</area>
+ </shape>
+
+ <shape name="edit-stream-metadata-left-line" from="base_highlight_vertical_line">
+- <area>117,40,2,500</area>
++ <area>117,40,2,560</area>
+ </shape>
+
+ <shape name="edit-stream-metadata-right-line" from="base_highlight_vertical_line">
+- <area>1161,40,2,500</area>
++ <area>1161,40,2,560</area>
+ </shape>
+
+ <shape name="edit-stream-metadata-bottom-backdrop-line" from="base_backdrop_line">
+ <area>116,547,1048,137</area>
++ <area>116,619,1048,65</area>
+ </shape>
+
+ <shape name="edit-stream-metadata-bottom-top-line" from="base_highlight_line">
+ <area>117,548,1046,2</area>
++ <area>117,620,1046,2</area>
+ </shape>
+
+ <shape name="edit-stream-metadata-bottom-bottom-line" from="base_highlight_line">
+@@ -439,85 +461,137 @@
+ </shape>
+
+ <shape name="edit-stream-metadata-bottom-left-line" from="base_highlight_vertical_line">
+- <area>117,550,2,131</area>
++ <area>117,622,2,59</area>
+ </shape>
+
+ <shape name="edit-stream-metadata-bottom-right-line" from="base_highlight_vertical_line">
+- <area>1161,550,2,131</area>
+- </shape>
+-
+- <shape name="edit-stream-metadata-bottom-seperator-first-line" from="base_line">
+- <area>138,620,1004,2</area>
++ <area>1161,622,2,59</area>
+ </shape>
+
+- <textarea name="stationlabel" >
+- <area>119,68,214,40</area>
++ <textarea name="broadcasterlabel" >
++ <area>119,54,140,40</area>
+ <font>basemedium</font>
+ <align>right,vcenter</align>
+- <value>Station:</value>
++ <value>Broadcaster:</value>
+ </textarea>
+
+- <textedit name="stationedit" from="base_textedit">
+- <area>343,68,800,40</area>
++ <textedit name="broadcasteredit" from="base_textedit">
++ <area>269,54,370,40</area>
+ </textedit>
+
+- <button name="searchbutton" from="base_button">
+- <area>465,136,350,40</area>
+- <value>Search for Stream</value>
+- </button>
+-
+- <textarea name="channellabel" from="stationlabel">
+- <position>119,204</position>
++ <textarea name="channellabel" from="broadcasterlabel">
++ <area>649,54,120,40</area>
+ <value>Channel:</value>
+ </textarea>
+
+- <textedit name="channeledit" from="stationedit">
+- <position>343,204</position>
++ <textedit name="channeledit" from="broadcasteredit">
++ <position>779,54</position>
++ </textedit>
++
++ <textarea name="descriptionlabel" from="broadcasterlabel">
++ <area>119,109,140,40</area>
++ <value>Description:</value>
++ </textarea>
++
++ <textedit name="descriptionedit" from="broadcasteredit">
++ <area>269,109,880,40</area>
+ </textedit>
+
+- <textarea name="urllabel" from="stationlabel">
+- <position>119,271</position>
+- <value>URL:</value>
++ <textarea name="url1label" from="descriptionlabel">
++ <position>119,164</position>
++ <value>URL1:</value>
+ </textarea>
++ <textedit name="url1edit" from="descriptionedit">
++ <position>269,164</position>
++ </textedit>
++
++ <textarea name="url2label" from="descriptionlabel">
++ <position>119,219</position>
++ <value>URL2:</value>
++ </textarea>
++ <textedit name="url2edit" from="descriptionedit">
++ <position>269,219</position>
++ </textedit>
++
++ <textarea name="url3label" from="descriptionlabel">
++ <position>119,274</position>
++ <value>URL3:</value>
++ </textarea>
++ <textedit name="url3edit" from="descriptionedit">
++ <position>269,274</position>
++ </textedit>
++
++ <textarea name="url4label" from="descriptionlabel">
++ <position>119,329</position>
++ <value>URL4:</value>
++ </textarea>
++ <textedit name="url4edit" from="descriptionedit">
++ <position>269,329</position>
++ </textedit>
+
+- <textedit name="urledit" from="stationedit">
+- <position>343,271</position>
++ <textarea name="url5label" from="descriptionlabel">
++ <position>119,384</position>
++ <value>URL5:</value>
++ </textarea>
++ <textedit name="url5edit" from="descriptionedit">
++ <position>269,384</position>
+ </textedit>
+
+- <textarea name="logourllabel" from="stationlabel">
+- <position>119,338</position>
++ <textarea name="logourllabel" from="descriptionlabel">
++ <position>119,439</position>
+ <value>Logo URL:</value>
+ </textarea>
+
+- <textedit name="logourledit" from="urledit">
+- <position>343,338</position>
++ <textedit name="logourledit" from="descriptionedit">
++ <position>269,439</position>
+ </textedit>
+
+- <textarea name="genrelabel" from="stationlabel">
+- <position>119,405</position>
++ <textarea name="genrelabel" from="broadcasterlabel">
++ <position>119,494</position>
+ <value>Genres:</value>
+ </textarea>
+
+- <textedit name="genreedit" from="urledit">
+- <position>343,405</position>
++ <textedit name="genreedit" from="broadcasteredit">
++ <position>269,494</position>
+ </textedit>
+
+- <textarea name="formatlabel" from="stationlabel">
+- <position>119,472</position>
+- <value>Metadata Format:</value>
++ <textarea name="formatlabel" from="channellabel">
++ <position>649,494</position>
++ <value>Format:</value>
+ </textarea>
+
+- <textedit name="formatedit" from="stationedit">
+- <position>343,472</position>
++ <textedit name="formatedit" from="channeledit">
++ <position>779,494</position>
++ </textedit>
++
++ <textarea name="countrylabel" from="broadcasterlabel">
++ <position>119,549</position>
++ <value>Country:</value>
++ </textarea>
++ <textedit name="countryedit" from="broadcasteredit">
++ <position>269,549</position>
++ </textedit>
++
++ <textarea name="languagelabel" from="channellabel">
++ <position>649,549</position>
++ <value>Language:</value>
++ </textarea>
++ <textedit name="languageedit" from="channeledit">
++ <position>779,549</position>
+ </textedit>
+
+ <button name="cancelbutton" from="base_button">
+- <area>233,632,350,40</area>
++ <area>138,632,320,40</area>
+ <value>Cancel</value>
+ </button>
+
++ <button name="searchbutton" from="base_button">
++ <area>480,632,320,40</area>
++ <value>Search for Stream...</value>
++ </button>
++
+ <button name="savebutton" from="base_button">
+- <area>697,632,350,40</area>
++ <area>822,632,320,40</area>
+ <value>Save</value>
+ </button>
+
+@@ -553,14 +627,6 @@
+ <area>1256,40,2,211</area>
+ </shape>
+
+- <shape name="stream-search-image-border">
+- <area>37,53,247,185</area>
+- <type>roundbox</type>
+- <fill color="#000000" alpha="0" />
+- <line color="#AAAAAA" alpha="100" width="2" />
+- <cornerradius>6</cornerradius>
+- </shape>
+-
+ <shape name="stream-list-backdrop" from="base_backdrop">
+ <area>20,265,1240,420</area>
+ </shape>
+@@ -589,50 +655,65 @@
+ <area>1207,685,50,10</area>
+ </shape>
+
+- <imagetype name="stream-search-image">
+- <area>41,57,239,177</area>
+- <filename>images/stream_search_image.png</filename>
+- <mask>images/masks/stream_search_image_mask.png</mask>
+- <preserveaspect>no</preserveaspect>
+- </imagetype>
+-
+- <textarea name="stationlabel" >
+- <area>214,64,250,40</area>
++ <textarea name="broadcasterlabel" >
++ <area>71,64,150,40</area>
+ <font>basemedium</font>
+ <align>right,vcenter</align>
+- <value>Station:</value>
++ <value>Broadcaster:</value>
+ </textarea>
+
+- <buttonlist name="stationlist" from="base_selector">
+- <area>470,64,376,40</area>
++ <buttonlist name="broadcasterlist" from="base_selector">
++ <area>231,64,370,40</area>
+ </buttonlist>
+
+- <textarea name="genrelabel" from="stationlabel">
+- <position>214,125</position>
++ <textarea name="genrelabel" from="broadcasterlabel">
++ <area>611,64,150,40</area>
+ <value>Genre:</value>
+ </textarea>
+
+- <buttonlist name="genrelist" from="stationlist">
+- <position>470,125</position>
++ <buttonlist name="genrelist" from="broadcasterlist">
++ <position>771,64</position>
++ </buttonlist>
++
++ <textarea name="countrylabel" from="broadcasterlabel">
++ <position>71,125</position>
++ <value>Country:</value>
++ </textarea>
++
++ <buttonlist name="countrylist" from="broadcasterlist">
++ <position>231,125</position>
++ </buttonlist>
++
++ <textarea name="languagelabel" from="genrelabel">
++ <position>611,125</position>
++ <value>Language:</value>
++ </textarea>
++
++ <buttonlist name="languagelist" from="genrelist">
++ <position>771,125</position>
+ </buttonlist>
+
+- <textarea name="channellabel" from="stationlabel">
+- <position>214,186</position>
++ <textarea name="channellabel" from="broadcasterlabel">
++ <position>71,186</position>
+ <value>Channel:</value>
+ </textarea>
+
+ <textedit name="channeledit" from="base_textedit">
+- <area>470,186,376,40</area>
++ <area>231,186,370,40</area>
+ <textarea name="text">
+ <area>18,0,95%,100%</area>
+ </textarea>
+ </textedit>
+
++ <textarea name="matcheslabel" from="genrelabel" depends="matchestext">
++ <position>611,186</position>
++ <value>Matches:</value>
++ </textarea>
++
+ <textarea name="matchestext">
+- <area>871,40,375,211</area>
+- <font>basemediumblue</font>
+- <align>allcenter</align>
+- <template>Matches: %1</template>
++ <area>771,186,370,40</area>
++ <font>basemedium</font>
++ <align>left,vcenter</align>
+ </textarea>
+
+ <buttonlist name="streamlist" from="base_list">
+@@ -650,16 +731,16 @@
+ <area>15,1,28,28</area>
+ <filename>mythmusic/mm_icecast.png</filename>
+ </imagetype>
+- <textarea name="station" from="buttontext">
++ <textarea name="broadcasterchannel" from="buttontext">
+ <area>58,0,548,30</area>
+ <font>basesmall</font>
+ <align>left,vcenter</align>
+- <template>%STATION% - %Channel%</template>
+ </textarea>
+- <textarea name="genre" from="buttontext">
+- <area>621,0,548,30</area>
+- <font>basesmall</font>
+- <align>left,vcenter</align>
++ <textarea name="genre" from="broadcasterchannel">
++ <area>621,0,355,30</area>
++ </textarea>
++ <textarea name="language" from="broadcasterchannel">
++ <area>990,0,177,30</area>
+ </textarea>
+ <statetype name="selectedstate">
+ <position>1184,2</position>
+@@ -681,18 +762,21 @@
+ <area>15,4,56,56</area>
+ <filename>mythmusic/mm_icecast.png</filename>
+ </imagetype>
+- <textarea name="station" from="buttontext">
+- <area>86,0,534,64</area>
+- <font>basesmall</font>
+- <multiline>yes</multiline>
++ <textarea name="broadcasterchannel" from="buttontext">
++ <area>86,0,534,30</area>
++ <font>basesmallyellow</font>
++ <multiline>no</multiline>
+ <align>left,vcenter</align>
+- <template>%STATION% - %Channel%</template>
+ </textarea>
+- <textarea name="genre" from="buttontext">
+- <area>635,0,534,64</area>
+- <font>basesmall</font>
+- <multiline>yes</multiline>
+- <align>left,vcenter</align>
++ <textarea name="genre" from="broadcasterchannel">
++ <area>635,0,534,30</area>
++ </textarea>
++ <textarea name="language" from="broadcasterchannel">
++ <area>1004,0,177,30</area>
++ </textarea>
++ <textarea name="description" from="broadcasterchannel">
++ <area>86,30,100%,30</area>
++ <scroll direction="left" startdelay="2"/>
+ </textarea>
+ <statetype name="selectedstate">
+ <position>1184,19</position>
+@@ -708,6 +792,20 @@
+ <group name="select_bar" from="base_select_bar_selectedinactive_group">
+ <area>0,0,100%,100%</area>
+ </group>
++ <textarea name="broadcasterchannel">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="genre">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="language">
++ <font>basesmall</font>
++ </textarea>
++ <textarea name="description" from="broadcasterchannel">
++ <area>86,30,100%,30</area>
++ <font>basesmall</font>
++ <cutdown>yes</cutdown>
++ </textarea>
+ </state>
+ </statetype>
+ <statetype name="upscrollarrow">
+@@ -718,7 +816,6 @@
+ </statetype>
+ </buttonlist>
+
+-
+ </window>
+
+ </mythuitheme>
diff --git a/abs/core/linhes-theme/tux_thoughts.png b/abs/core/linhes-theme/tux_thoughts.png
index c36c7a6..c36c7a6 100755..100644
--- a/abs/core/linhes-theme/tux_thoughts.png
+++ b/abs/core/linhes-theme/tux_thoughts.png
Binary files differ
diff --git a/abs/core/linhes-theme/video-ui.xml.patch b/abs/core/linhes-theme/video-ui.xml.patch
index 0047776..5c84fcd 100644
--- a/abs/core/linhes-theme/video-ui.xml.patch
+++ b/abs/core/linhes-theme/video-ui.xml.patch
@@ -1,5 +1,5 @@
---- video-ui.xml.orig 2016-11-16 20:12:36.859292023 +0000
-+++ video-ui.xml 2016-11-16 20:11:55.327978776 +0000
+--- video-ui.xml.orig 2016-12-13 20:43:30.600314830 +0000
++++ video-ui.xml 2016-12-13 20:34:54.359884898 +0000
@@ -171,6 +171,7 @@
<textarea name="description" from="basetextarea">
<area>24,51,515,393</area>
@@ -8,6 +8,52 @@
<font>basesmall</font>
</textarea>
+@@ -358,38 +359,38 @@
+ </imagetype>
+ <textarea name="title" from="basetextarea">
+ <area>88,1,498,24</area>
+- <font>basesmall</font>
++ <font>basesmallyellow</font>
+ </textarea>
+ <textarea name="director" from="title">
+ <area>606,1,536,24</area>
+ <cutdown>no</cutdown>
+ </textarea>
+ <textarea name="year" from="title">
+- <area>1162,2,54,24</area>
++ <area>1162,1,54,24</area>
+ <cutdown>no</cutdown>
+ <align>right,vcenter</align>
+ </textarea>
+ <textarea name="rating" from="basetextarea">
+- <area>88,23,196,20</area>
++ <area>88,26,196,20</area>
+ <font>baseextrasmallblue</font>
+ <cutdown>no</cutdown>
+ <align>vcenter</align>
+ <template>Rated: %1</template>
+ </textarea>
+ <textarea name="length" from="rating">
+- <area>305,23,280,20</area>
++ <area>305,26,280,20</area>
+ <template>Runtime: %1</template>
+ </textarea>
+ <textarea name="season" from="rating">
+- <area>606,23,216,20</area>
++ <area>606,26,216,20</area>
+ <template>Season: %1</template>
+ </textarea>
+ <textarea name="episode" from="rating">
+- <area>843,23,228,20</area>
++ <area>843,26,228,20</area>
+ <template>Episode: %1</template>
+ </textarea>
+ <textarea name="browseable" from="rating">
+- <area>1082,23,134,20</area>
++ <area>1082,26,134,20</area>
+ <align>right,vcenter</align>
+ <template>Browseable: %1</template>
+ </textarea>
@@ -641,7 +642,7 @@
<multiline>yes</multiline>
<font>basesmall</font>
diff --git a/abs/core/linhes-theme/warning.png b/abs/core/linhes-theme/warning.png
index 047cac5..047cac5 100755..100644
--- a/abs/core/linhes-theme/warning.png
+++ b/abs/core/linhes-theme/warning.png
Binary files differ
diff --git a/abs/core/linux/PKGBUILD b/abs/core/linux/PKGBUILD
index 1e7309b..5b8d3ae 100644
--- a/abs/core/linux/PKGBUILD
+++ b/abs/core/linux/PKGBUILD
@@ -5,7 +5,7 @@
pkgbase=linux # Build stock -ARCH kernel
#pkgbase=linux-custom # Build kernel with a different name
_srcname=linux-4.4
-pkgver=4.4.26
+pkgver=4.4.39
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.kernel.org/"
@@ -25,7 +25,7 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
sha256sums=('401d7c8fef594999a460d10c72c5a94e9c2e1022f16795ec51746b0d165418b2'
'SKIP'
- '100bb46956585d418a6950bc898c5abc8206c3e34adfaf7ce4f6d14598918f72'
+ 'fc2b60d221aeaf3eafec4f36f299e4002be81da85117c3f59963fdcb6facb929'
'SKIP'
'fbbae1d873900e84d1b7ef00593fbb94fc79f078a34b22ee824bab8b0a92be64'
'756a168bbc3bb582f0df45b977c32af53658f21d62fe15171c9ac85f52d8852a'
diff --git a/abs/core/linux/linux.install.pkg b/abs/core/linux/linux.install.pkg
index 50cb5b6..90e9fbb 100644
--- a/abs/core/linux/linux.install.pkg
+++ b/abs/core/linux/linux.install.pkg
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=
-KERNEL_VERSION=4.4.26-1-ARCH
+KERNEL_VERSION=4.4.39-1-ARCH
post_install () {
# updating module dependencies
diff --git a/abs/core/mkinitcpio/PKGBUILD b/abs/core/mkinitcpio/PKGBUILD
index 7b5b08d..e62fef0 100644
--- a/abs/core/mkinitcpio/PKGBUILD
+++ b/abs/core/mkinitcpio/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=mkinitcpio
-pkgver=19
+pkgver=22
pkgrel=1
pkgdesc="Modular initramfs image creation utility"
arch=('any')
@@ -20,14 +20,18 @@ backup=('etc/mkinitcpio.conf')
source=("https://sources.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig}
'mkinitcpio.patch')
install=mkinitcpio.install
+sha256sums=('54c1fc0fc128ae486e72362f49f52e94acd5fcfea9f44b719dc33250e42664eb'
+ 'SKIP'
+ 'dbc98f69a56f07c4a0f1c7fc3f7143c1719bdb30b75fbb29d75581bb51b5e98a')
validpgpkeys=('487EACC08557AD082088DABA1EB2638FF56C0C53' # Dave Reisner
'86CFFCA918CF3AF47147588051E8B148A9999C34') # Evangelos Foutras
+check() {
+ make -C "$pkgname-$pkgver" check
+}
+
package() {
make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install
cd $pkgdir/etc
patch -Np0 < $srcdir/mkinitcpio.patch || exit 1
}
-md5sums=('e8b1d1059bd7f056cd4ee33706280f0f'
- 'SKIP'
- '031fd7d3013c26175ae7421781893feb')
diff --git a/abs/core/mythinstall/PKGBUILD b/abs/core/mythinstall/PKGBUILD
index 45b963d..4c5b223 100644
--- a/abs/core/mythinstall/PKGBUILD
+++ b/abs/core/mythinstall/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Jams
pkgname=mythinstall
pkgver=8.4
-pkgrel=4
+pkgrel=5
pkgdesc="LinHES installer/systemconfig GUI."
arch=('i686' 'x86_64')
depends=('mythtv>=0.28')
diff --git a/abs/core/mythtv/stable-0.28/git_src/git_hash b/abs/core/mythtv/stable-0.28/git_src/git_hash
index ace800a..7a99331 100644
--- a/abs/core/mythtv/stable-0.28/git_src/git_hash
+++ b/abs/core/mythtv/stable-0.28/git_src/git_hash
@@ -1 +1 @@
-2131fb291c49fc62cf8ac0c1b26c89193d2436dc
+5a7b3c8d418f52b02f971469e230fb016f1f0e16
diff --git a/abs/core/mythtv/stable-0.28/git_src/git_hash_web b/abs/core/mythtv/stable-0.28/git_src/git_hash_web
index 98b5fa0..35248ef 100644
--- a/abs/core/mythtv/stable-0.28/git_src/git_hash_web
+++ b/abs/core/mythtv/stable-0.28/git_src/git_hash_web
@@ -1 +1 @@
-3fa642f00da9529674ea93110396d036da1d43ff
+7ed09ed8ed00e600a5336e571460f67034bdec6c
diff --git a/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD b/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
index d161477..e2baa8b 100644
--- a/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
@@ -9,7 +9,7 @@ pkgname=('mytharchive'
'mythweather'
'mythzoneminder')
pkgver=0.28
-pkgrel=25
+pkgrel=31
arch=('i686' 'x86_64')
url="http://www.mythtv.org"
license=('GPL')
diff --git a/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
index 5fb2f90..0b04f72 100644
--- a/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=mythtv
pkgver=0.28
-pkgrel=25
+pkgrel=31
commit_hash=`cat ../git_src/git_hash`
pkgdesc="A Homebrew PVR project $commit_hash"
arch=('i686' 'x86_64')
@@ -27,10 +27,12 @@ patches=(
'autoskip_reduce_commskip_jumpback.patch'
'change_msg_types.patch'
'disable_mythnotification_tuner_failure.patch'
+ 'disable_subtitle_cutdown_in_recording_options.patch'
'tv.cpp_fix_caps.patch'
'add_categorytype_Program.pm.patch'
'searchMetatdataSelectedGrabber.patch'
'addDamagedToProgDetails.patch'
+ 'defaultThemeLinHES.patch'
)
optdepends=()
@@ -112,8 +114,10 @@ md5sums=('e30b482dcd5f3e71c6419fd753bab2b1'
'0bf5e92c0609a7eda8f253bf2e032590'
'f8a56ac814722b110dc9859169b9bda9'
'1cd668136deea20efb79cf3e6310effc'
+ '3420d15014274b5bf8083355af71304b'
'62c42b1043ebf65959fa9eced9ca3ed8'
'fa836371ebeb3be5b9855be8dd016f82'
'0f674b9cad031ba1e03aaf6b5ee1499f'
'6add9c16bbb988067e82029327e567b2'
+ '6f916ebc2b1d0ca75c9aa6cec62c6fbb'
'e73bb7c5036e44a68b6f6aa2f1bac077')
diff --git a/abs/core/mythtv/stable-0.28/mythtv/defaultThemeLinHES.patch b/abs/core/mythtv/stable-0.28/mythtv/defaultThemeLinHES.patch
new file mode 100644
index 0000000..5fb192c
--- /dev/null
+++ b/abs/core/mythtv/stable-0.28/mythtv/defaultThemeLinHES.patch
@@ -0,0 +1,11 @@
+--- src/mythtv/libs/libmythui/mythuihelper.h.orig 2016-12-29 16:08:28.319634823 +0000
++++ src/mythtv/libs/libmythui/mythuihelper.h 2016-12-29 16:09:03.245104062 +0000
+@@ -9,7 +9,7 @@
+ #include "mythuiexp.h"
+ #include "themeinfo.h"
+
+-#define DEFAULT_UI_THEME "Terra"
++#define DEFAULT_UI_THEME "LinHES"
+ #define FALLBACK_UI_THEME "MythCenter-wide"
+
+ class MythUIHelperPrivate;
diff --git a/abs/core/mythtv/stable-0.28/mythtv/disable_subtitle_cutdown_in_recording_options.patch b/abs/core/mythtv/stable-0.28/mythtv/disable_subtitle_cutdown_in_recording_options.patch
new file mode 100644
index 0000000..ed958e0
--- /dev/null
+++ b/abs/core/mythtv/stable-0.28/mythtv/disable_subtitle_cutdown_in_recording_options.patch
@@ -0,0 +1,12 @@
+--- src/mythtv/programs/mythfrontend/playbackbox.cpp.orig 2016-12-12 20:49:50.224910076 +0000
++++ src/mythtv/programs/mythfrontend/playbackbox.cpp 2016-12-12 20:50:40.898386010 +0000
+@@ -3289,9 +3289,6 @@
+ if (!pginfo.GetSubtitle().isEmpty())
+ {
+ extra = QString('\n') + pginfo.GetSubtitle();
+- int maxll = max(title.length(), 20);
+- if (extra.length() > maxll)
+- extra = extra.left(maxll - 3) + "...";
+ }
+
+ return QString("\n%1%2\n%3").arg(title).arg(extra).arg(timedate);
diff --git a/abs/core/mythtv/stable-0.28/mythtv/fixQTvirtualkeyboard.patch.28 b/abs/core/mythtv/stable-0.28/mythtv/fixQTvirtualkeyboard.patch.28
deleted file mode 100644
index bfaad97..0000000
--- a/abs/core/mythtv/stable-0.28/mythtv/fixQTvirtualkeyboard.patch.28
+++ /dev/null
@@ -1,46 +0,0 @@
---- src/mythtv/libs/libmythui/mythmainwindow.cpp.orig 2016-03-15 17:30:19.608956780 +0000
-+++ src/mythtv/libs/libmythui/mythmainwindow.cpp 2016-03-15 17:37:17.368720092 +0000
-@@ -1458,6 +1458,7 @@
- #endif
- if (currentWidget())
- {
-+#ifdef Q_OS_MAC
- // don't disable the current widget, instead we disable all its children
- // on mac, disabling the current active widget entirely prevent keyboard to
- // work on the newly opened widget.
-@@ -1473,6 +1474,9 @@
- }
- }
- }
-+#else
-+ currentWidget()->setEnabled(false);
-+#endif
- #ifdef USE_OPENGL_QT5
- else
- {
-@@ -1506,8 +1510,6 @@
- if (!current)
- {
- current = this;
-- // We're be to the main window, enable it just in case
-- setEnabled(true);
- #ifdef USE_OPENGL_QT5
- // Restore WA_PaintOnScreen, used by OpenGL GUI painter
- setAttribute(Qt::WA_PaintOnScreen, d->m_bSavedPOS);
-@@ -1515,6 +1517,7 @@
- QTimer::singleShot(2, d->paintwin, SLOT(update()));
- #endif
- }
-+#ifdef Q_OS_MAC
- else
- {
- QList<QWidget*> list = current->findChildren<QWidget *>();
-@@ -1529,6 +1532,8 @@
- }
- }
- current->raise();
-+#endif
-+ current->setEnabled(true);
- current->setFocus();
- current->setMouseTracking(true);
-
diff --git a/abs/core/mythtv/stable-0.28/mythtv/menu-xml/siriusmenu.xml b/abs/core/mythtv/stable-0.28/mythtv/menu-xml/siriusmenu.xml.del
index e317b36..e317b36 100644
--- a/abs/core/mythtv/stable-0.28/mythtv/menu-xml/siriusmenu.xml
+++ b/abs/core/mythtv/stable-0.28/mythtv/menu-xml/siriusmenu.xml.del
diff --git a/abs/core/mythtv/stable-0.28/mythtv/menu-xml/xmmenu.xml b/abs/core/mythtv/stable-0.28/mythtv/menu-xml/xmmenu.xml.del
index 6b26d11..6b26d11 100644
--- a/abs/core/mythtv/stable-0.28/mythtv/menu-xml/xmmenu.xml
+++ b/abs/core/mythtv/stable-0.28/mythtv/menu-xml/xmmenu.xml.del
diff --git a/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD b/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
index 785056e..62fbf57 100644
--- a/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=mythweb
pkgver=0.28
-pkgrel=8
+pkgrel=9
commit_hash=`cat ../git_src/git_hash_web`
pkgdesc="Web interface for MythTV's backend, $commit_hash"
arch=('i686' 'x86_64')
diff --git a/abs/core/nano/PKGBUILD b/abs/core/nano/PKGBUILD
index b1fe973..6b63833 100644
--- a/abs/core/nano/PKGBUILD
+++ b/abs/core/nano/PKGBUILD
@@ -3,7 +3,7 @@
# Contributor: Judd <judd@archlinux.org>
pkgname=nano
-pkgver=2.7.0
+pkgver=2.7.3
pkgrel=1
pkgdesc="Pico editor clone with enhancements"
arch=('i686' 'x86_64')
@@ -12,9 +12,9 @@ url="http://www.nano-editor.org"
groups=('base')
depends=('ncurses' 'file' 'sh')
backup=('etc/nanorc')
-source=(http://www.nano-editor.org/dist/v2.7/${pkgname}-${pkgver}.tar.gz{,.asc})
-md5sums=('0805c5b8c75d4fde053e4b1431270f91'
- 'SKIP')
+source=(https://www.nano-editor.org/dist/v2.7/${pkgname}-${pkgver}.tar.gz{,.asc})
+sha256sums=('3574d4594d051f3b572c47d63bfc3763fb1148c50b811ba7a016bacd94887a88'
+ 'SKIP')
validpgpkeys=('8DA6FE7BFA7A418AB3CB2354BCB356DF91009FA7' # "Chris Allegretta <chrisa@asty.org>"
'A7F6A64A67DA09EF92782DD79DF4862AF1175C5B' # "Benno Schulenberg <bensberg@justemail.net>"
)
diff --git a/abs/core/nvidia-304xx-utils/PKGBUILD b/abs/core/nvidia-304xx-utils/PKGBUILD
index 45a30f0..6c48a82 100644
--- a/abs/core/nvidia-304xx-utils/PKGBUILD
+++ b/abs/core/nvidia-304xx-utils/PKGBUILD
@@ -4,7 +4,7 @@
pkgbase=nvidia-304xx-utils
pkgname=('nvidia-304xx-utils' 'nvidia-304xx-libgl' 'opencl-nvidia-304xx')
-pkgver=304.132
+pkgver=304.134
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
@@ -13,8 +13,8 @@ makedepends=('zlib')
options=('!strip')
source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha512sums_i686=('70a6ed74a93ac2a1acec5eab5078dfe05fab66c6264d67f3238a6b28af7b39f7205e237214bac4ee5d2366e8c6a4a63dfc8dc113e9e977ee2387c5c8c63ccc8f')
-sha512sums_x86_64=('990c79120536335f83ecd665140b2af8f778785a2cdc8afb06abbacba49e66d87f5af25fb4d6c64779cf898b61273d17cb0213516f497d1c0fbd63b7c5e85d8c')
+sha512sums_i686=('e047c62b33b092225ead42134acd596e3ae43d9bb8324188308dd7d497f33e790e7366d7a1c5ef5de66f484219d99de4c6e6206d390122d3fab4d30397ab463c')
+sha512sums_x86_64=('339efb8b47faaa16b984d84e43ef18d849a563c95298972c36616a22712740e3233c2cd7b0837d393a8f24a6ec5b501295cdc77adae12deccc993dfca48022fc')
if [ "$CARCH" = "i686" ]; then
_arch='x86'
@@ -40,9 +40,9 @@ build() {
package_opencl-nvidia-304xx() {
pkgdesc="OpenCL implemention for NVIDIA, 304xx legacy branch"
- depends=('libcl' 'zlib')
+ depends=('zlib')
optdepends=('opencl-headers: headers necessary for OpenCL development')
- provides=('opencl-nvidia')
+ provides=('opencl-nvidia' 'opencl-driver')
conflicts=('opencl-nvidia')
cd ${_pkg}
diff --git a/abs/core/nvidia-304xx/PKGBUILD b/abs/core/nvidia-304xx/PKGBUILD
index e2a8a6d..9456106 100644
--- a/abs/core/nvidia-304xx/PKGBUILD
+++ b/abs/core/nvidia-304xx/PKGBUILD
@@ -4,7 +4,7 @@
pkgbase=nvidia-304xx
pkgname=(nvidia-304xx nvidia-304xx-dkms)
-pkgver=304.132
+pkgver=304.134
_extramodules=extramodules-4.4-ARCH
pkgrel=1
arch=('i686' 'x86_64')
@@ -17,8 +17,8 @@ source=('disable-mtrr.patch')
source_i686+=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
source_x86_64+=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
sha512sums=('54e8825e523f11706890e09e476498f3a30f75ce4e350ff2ff8a1e1c3af574d9ccfb8903543766b6863d94cdfbf46e68cd3d33380867dd976cafc8dd2dd78774')
-sha512sums_i686=('70a6ed74a93ac2a1acec5eab5078dfe05fab66c6264d67f3238a6b28af7b39f7205e237214bac4ee5d2366e8c6a4a63dfc8dc113e9e977ee2387c5c8c63ccc8f')
-sha512sums_x86_64=('990c79120536335f83ecd665140b2af8f778785a2cdc8afb06abbacba49e66d87f5af25fb4d6c64779cf898b61273d17cb0213516f497d1c0fbd63b7c5e85d8c')
+sha512sums_i686=('e047c62b33b092225ead42134acd596e3ae43d9bb8324188308dd7d497f33e790e7366d7a1c5ef5de66f484219d99de4c6e6206d390122d3fab4d30397ab463c')
+sha512sums_x86_64=('339efb8b47faaa16b984d84e43ef18d849a563c95298972c36616a22712740e3233c2cd7b0837d393a8f24a6ec5b501295cdc77adae12deccc993dfca48022fc')
[[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
[[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
diff --git a/abs/core/nvidia-340xx-utils/PKGBUILD b/abs/core/nvidia-340xx-utils/PKGBUILD
index 9b12806..a2e858e 100644
--- a/abs/core/nvidia-340xx-utils/PKGBUILD
+++ b/abs/core/nvidia-340xx-utils/PKGBUILD
@@ -5,8 +5,8 @@
pkgbase=nvidia-340xx-utils
pkgname=('nvidia-340xx-utils' 'nvidia-340xx-libgl' 'opencl-nvidia-340xx')
-pkgver=340.98
-pkgrel=2
+pkgver=340.101
+pkgrel=1
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
license=('custom')
@@ -14,9 +14,9 @@ options=('!strip')
source=(nvidia-drm-outputclass.conf)
source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha1sums=('4ca2fbb2389d0bcb7a2c6f614860522d9ddf58ab')
-sha1sums_i686=('931773a3be7ab03ff787974b0760cd9ee1bd14e2')
-sha1sums_x86_64=('a31ff95eae0ec47b89a9ba5475d17d44ff4ee2e0')
+sha512sums=('06c649df3b02c6ccf5491fecd06f4c979656aaba2bb366e6197e96bb0eecd8d0a46245e69628d507ddc8c5fc6d5f1cac694f036bc45ba51f82a092ebd6097bf5')
+sha512sums_i686=('5866f2b4e6e22863c54d9fc08c9c88c9c911df2396d0ceaca653ded04589ea3a9e4550ed58f4b182b0a42cfe205ef643fe43ea709478e5df5360a7f74fa87f41')
+sha512sums_x86_64=('d5bea7315346e93a7cccd3d99900f4dad51dfa6e93382d4d61c314d0ab97dea063169b8d666d3a3373dea33b4322f945c3a18ed0fc3308e3f89af6f22f373abc')
[[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
[[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
@@ -39,10 +39,10 @@ prepare() {
package_opencl-nvidia-340xx() {
pkgdesc="OpenCL implemention for NVIDIA"
- depends=('libcl' 'zlib')
+ depends=('zlib')
optdepends=('opencl-headers: headers necessary for OpenCL development')
conflicts=('opencl-nvidia')
- provides=('opencl-nvidia')
+ provides=('opencl-nvidia' 'opencl-driver')
cd "${_pkg}"
# OpenCL
diff --git a/abs/core/nvidia-340xx/PKGBUILD b/abs/core/nvidia-340xx/PKGBUILD
index 973737b..ab42426 100644
--- a/abs/core/nvidia-340xx/PKGBUILD
+++ b/abs/core/nvidia-340xx/PKGBUILD
@@ -4,9 +4,9 @@
pkgbase=nvidia-340xx
pkgname=(nvidia-340xx nvidia-340xx-dkms)
-pkgver=340.98
+pkgver=340.101
_extramodules=extramodules-4.4-ARCH
-pkgrel=2
+pkgrel=4
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
makedepends=("nvidia-340xx-libgl=${pkgver}" "nvidia-340xx-utils=${pkgver}" 'linux' 'linux-headers>=4.4' 'linux-headers<4.5')
@@ -15,8 +15,8 @@ license=('custom')
options=(!strip)
source_i686+=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
source_x86_64+=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-md5sums_i686=('3ccb023eec137cbee0d2035c288b6bbe')
-md5sums_x86_64=('e8d1292d8d002a15e10ea349151fa8f2')
+sha512sums_i686=('5866f2b4e6e22863c54d9fc08c9c88c9c911df2396d0ceaca653ded04589ea3a9e4550ed58f4b182b0a42cfe205ef643fe43ea709478e5df5360a7f74fa87f41')
+sha512sums_x86_64=('d5bea7315346e93a7cccd3d99900f4dad51dfa6e93382d4d61c314d0ab97dea063169b8d666d3a3373dea33b4322f945c3a18ed0fc3308e3f89af6f22f373abc')
[[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
[[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
diff --git a/abs/core/nvidia-utils/PKGBUILD b/abs/core/nvidia-utils/PKGBUILD
index dde54ab..95be900 100644
--- a/abs/core/nvidia-utils/PKGBUILD
+++ b/abs/core/nvidia-utils/PKGBUILD
@@ -5,7 +5,7 @@
pkgbase=nvidia-utils
pkgname=('nvidia-utils' 'nvidia-libgl' 'opencl-nvidia')
-pkgver=370.28
+pkgver=375.26
pkgrel=2
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
@@ -13,8 +13,8 @@ license=('custom')
options=('!strip')
source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-md5sums_i686=('7d3e1c691cd53852f422a93169268178')
-md5sums_x86_64=('3bcd9a132e50a17b846869f1c57b9c75')
+sha512sums_i686=('3bc859a95469a45f3c627018248d83e178d160385c3d17d9f890b0d142ecd1220fb21c442e4fe7755b831227a9c820736f447b162acd9699819c6e8145d6d841')
+sha512sums_x86_64=('f52f6597daa1eaf4cbd934d785da6028ef23ecef98e14746143e3738504f8d65b73788abbcf9fd812317fc2c53cdf1c4d4839de57fafdea1930a08c6b21f1992')
[[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
[[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
@@ -37,8 +37,9 @@ prepare() {
package_opencl-nvidia() {
pkgdesc="OpenCL implemention for NVIDIA"
- depends=('libcl' 'zlib')
+ depends=('zlib')
optdepends=('opencl-headers: headers necessary for OpenCL development')
+ provides=('opencl-driver')
cd "${_pkg}"
# OpenCL
@@ -86,6 +87,7 @@ package_nvidia-utils() {
optdepends=('nvidia-settings: configuration tool'
'xorg-server-devel: nvidia-xconfig'
'opencl-nvidia: OpenCL support')
+ provides=('vulkan-driver')
install="${pkgname}.install"
cd "${_pkg}"
@@ -98,17 +100,21 @@ package_nvidia-utils() {
install -D -m755 "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_nvidia.so.${pkgver}"
ln -s "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_indirect.so.0"
+ # Wayland stuff
+ install -D -m755 "libnvidia-egl-wayland.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-egl-wayland.so.${pkgver}"
+ ln -s "libnvidia-egl-wayland.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-egl-wayland.so.0"
+
# OpenGL libraries
- install -D -m755 "libEGL.so.1" "${pkgdir}/usr/lib/nvidia/libEGL.so.1"
install -D -m755 "libEGL_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libEGL_nvidia.so.${pkgver}"
install -D -m755 "libGLESv1_CM_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM_nvidia.so.${pkgver}"
install -D -m755 "libGLESv2_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv2_nvidia.so.${pkgver}"
+ install -D -m644 "10_nvidia.json" "${pkgdir}/usr/share/glvnd/egl_vendor.d/10_nvidia.json"
# OpenGL core library
install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
install -D -m755 "libnvidia-eglcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-eglcore.so.${pkgver}"
install -D -m755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glsi.so.${pkgver}"
-
+
# misc
install -D -m755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ifr.so.${pkgver}"
install -D -m755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fbc.so.${pkgver}"
@@ -176,9 +182,9 @@ package_nvidia-utils() {
install -D -m644 NVIDIA_Changelog "${pkgdir}/usr/share/doc/nvidia/NVIDIA_Changelog"
cp -r html "${pkgdir}/usr/share/doc/nvidia/"
ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-utils"
-
+
# distro specific files must be installed in /usr/share/X11/xorg.conf.d
install -D -m644 nvidia-drm-outputclass.conf "${pkgdir}/usr/share/X11/xorg.conf.d/nvidia-drm-outputclass.conf"
-
+
create_links
}
diff --git a/abs/core/nvidia/PKGBUILD b/abs/core/nvidia/PKGBUILD
index e9254ba..47329f3 100644
--- a/abs/core/nvidia/PKGBUILD
+++ b/abs/core/nvidia/PKGBUILD
@@ -5,9 +5,9 @@
pkgbase=nvidia
pkgname=(nvidia nvidia-dkms)
-pkgver=370.28
+pkgver=375.26
_extramodules=extramodules-4.4-ARCH
-pkgrel=2
+pkgrel=1
pkgdesc="NVIDIA drivers for linux"
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
@@ -16,13 +16,13 @@ license=('custom')
options=('!strip')
source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-md5sums_i686=('7d3e1c691cd53852f422a93169268178')
-md5sums_x86_64=('3bcd9a132e50a17b846869f1c57b9c75')
+sha512sums_i686=('3bc859a95469a45f3c627018248d83e178d160385c3d17d9f890b0d142ecd1220fb21c442e4fe7755b831227a9c820736f447b162acd9699819c6e8145d6d841')
+sha512sums_x86_64=('f52f6597daa1eaf4cbd934d785da6028ef23ecef98e14746143e3738504f8d65b73788abbcf9fd812317fc2c53cdf1c4d4839de57fafdea1930a08c6b21f1992')
[[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
[[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
-prepare() {
+prepare() {
sh "${_pkg}.run" --extract-only
cd "${_pkg}"
diff --git a/abs/core/pam/PKGBUILD b/abs/core/pam/PKGBUILD
index 9290c1e..3279743 100644
--- a/abs/core/pam/PKGBUILD
+++ b/abs/core/pam/PKGBUILD
@@ -3,7 +3,7 @@
# Contributor: judd <jvinet@zeroflux.org>
pkgname=pam
-pkgver=1.2.1
+pkgver=1.3.0
pkgrel=1
pkgdesc="PAM (Pluggable Authentication Modules) library"
arch=('i686' 'x86_64')
@@ -15,7 +15,7 @@ backup=(etc/security/{access.conf,group.conf,limits.conf,namespace.conf,namespac
source=(http://linux-pam.org/library/Linux-PAM-$pkgver.tar.bz2
https://sources.archlinux.org/other/pam_unix2/pam_unix2-2.9.1.tar.bz2
pam_unix2-glibc216.patch)
-md5sums=('9dc53067556d2dd567808fd509519dd6'
+md5sums=('da4b2289b7cfb19583d54e9eaaef1c3a'
'da6a46e5f8cd3eaa7cbc4fc3a7e2b555'
'dac109f68e04a4df37575fda6001ea17')
@@ -53,16 +53,6 @@ package() {
cd $srcdir/pam_unix2-2.9.1
make DESTDIR=$pkgdir install
- # add the realtime permissions for audio users
- sed -i 's|# End of file||' $pkgdir/etc/security/limits.conf
- cat >>$pkgdir/etc/security/limits.conf <<_EOT
-* - rtprio 0
-* - nice 0
-@audio - rtprio 65
-@audio - nice -10
-@audio - memlock 40000
-_EOT
-
# fix some missing symlinks from old pam for compatibility
cd $pkgdir/usr/lib/security
ln -s pam_unix.so pam_unix_acct.so
@@ -75,4 +65,8 @@ _EOT
# remove doc which is not used anymore
# FS #40749
rm $pkgdir/usr/share/doc/Linux-PAM/sag-pam_userdb.html
+
+ # disable coredumps
+ sed -i 's|# End of file||' $pkgdir/etc/security/limits.conf
+ echo "* hard core 0" >> $pkgdir/etc/security/limits.conf
}
diff --git a/abs/core/pam/__changelog b/abs/core/pam/__changelog
new file mode 100644
index 0000000..5f2315e
--- /dev/null
+++ b/abs/core/pam/__changelog
@@ -0,0 +1 @@
+PKGBUILD: disable coredumps in limits.conf
diff --git a/abs/core/pam/pam-1.1.8-cve-2013-7041.patch b/abs/core/pam/pam-1.1.8-cve-2013-7041.patch
deleted file mode 100644
index 96fa916..0000000
--- a/abs/core/pam/pam-1.1.8-cve-2013-7041.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 57a1e2b274d0a6376d92ada9926e5c5741e7da20 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Fri, 24 Jan 2014 22:18:32 +0000
-Subject: [PATCH] pam_userdb: fix password hash comparison
-
-Starting with commit Linux-PAM-0-77-28-g0b3e583 that introduced hashed
-passwords support in pam_userdb, hashes are compared case-insensitively.
-This bug leads to accepting hashes for completely different passwords in
-addition to those that should be accepted.
-
-Additionally, commit Linux-PAM-1_1_6-13-ge2a8187 that added support for
-modern password hashes with different lengths and settings, did not
-update the hash comparison accordingly, which leads to accepting
-computed hashes longer than stored hashes when the latter is a prefix
-of the former.
-
-* modules/pam_userdb/pam_userdb.c (user_lookup): Reject the computed
-hash whose length differs from the stored hash length.
-Compare computed and stored hashes case-sensitively.
-Fixes CVE-2013-7041.
-
-Bug-Debian: http://bugs.debian.org/731368
----
- modules/pam_userdb/pam_userdb.c | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/modules/pam_userdb/pam_userdb.c b/modules/pam_userdb/pam_userdb.c
-index de8b5b1..ff040e6 100644
---- a/modules/pam_userdb/pam_userdb.c
-+++ b/modules/pam_userdb/pam_userdb.c
-@@ -222,12 +222,15 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode,
- } else {
- cryptpw = crypt (pass, data.dptr);
-
-- if (cryptpw) {
-- compare = strncasecmp (data.dptr, cryptpw, data.dsize);
-+ if (cryptpw && strlen(cryptpw) == (size_t)data.dsize) {
-+ compare = memcmp(data.dptr, cryptpw, data.dsize);
- } else {
- compare = -2;
- if (ctrl & PAM_DEBUG_ARG) {
-- pam_syslog(pamh, LOG_INFO, "crypt() returned NULL");
-+ if (cryptpw)
-+ pam_syslog(pamh, LOG_INFO, "lengths of computed and stored hashes differ");
-+ else
-+ pam_syslog(pamh, LOG_INFO, "crypt() returned NULL");
- }
- };
-
---
-1.8.3.1
-
diff --git a/abs/core/pam/pam-1.1.8-cve-2014-2583.patch b/abs/core/pam/pam-1.1.8-cve-2014-2583.patch
deleted file mode 100644
index f2aa2de..0000000
--- a/abs/core/pam/pam-1.1.8-cve-2014-2583.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 9dcead87e6d7f66d34e7a56d11a30daca367dffb Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Wed, 26 Mar 2014 22:17:23 +0000
-Subject: [PATCH] pam_timestamp: fix potential directory traversal issue
- (ticket #27)
-
-pam_timestamp uses values of PAM_RUSER and PAM_TTY as components of
-the timestamp pathname it creates, so extra care should be taken to
-avoid potential directory traversal issues.
-
-* modules/pam_timestamp/pam_timestamp.c (check_tty): Treat
-"." and ".." tty values as invalid.
-(get_ruser): Treat "." and ".." ruser values, as well as any ruser
-value containing '/', as invalid.
-
-Fixes CVE-2014-2583.
-
-Reported-by: Sebastian Krahmer <krahmer@suse.de>
----
- modules/pam_timestamp/pam_timestamp.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/modules/pam_timestamp/pam_timestamp.c b/modules/pam_timestamp/pam_timestamp.c
-index 5193733..b3f08b1 100644
---- a/modules/pam_timestamp/pam_timestamp.c
-+++ b/modules/pam_timestamp/pam_timestamp.c
-@@ -158,7 +158,7 @@ check_tty(const char *tty)
- tty = strrchr(tty, '/') + 1;
- }
- /* Make sure the tty wasn't actually a directory (no basename). */
-- if (strlen(tty) == 0) {
-+ if (!strlen(tty) || !strcmp(tty, ".") || !strcmp(tty, "..")) {
- return NULL;
- }
- return tty;
-@@ -243,6 +243,17 @@ get_ruser(pam_handle_t *pamh, char *ruserbuf, size_t ruserbuflen)
- if (pwd != NULL) {
- ruser = pwd->pw_name;
- }
-+ } else {
-+ /*
-+ * This ruser is used by format_timestamp_name as a component
-+ * of constructed timestamp pathname, so ".", "..", and '/'
-+ * are disallowed to avoid potential path traversal issues.
-+ */
-+ if (!strcmp(ruser, ".") ||
-+ !strcmp(ruser, "..") ||
-+ strchr(ruser, '/')) {
-+ ruser = NULL;
-+ }
- }
- if (ruser == NULL || strlen(ruser) >= ruserbuflen) {
- *ruserbuf = '\0';
---
-1.8.3.1
-
diff --git a/abs/core/procps-ng/PKGBUILD b/abs/core/procps-ng/PKGBUILD
index ba2e3bd..a017867 100644
--- a/abs/core/procps-ng/PKGBUILD
+++ b/abs/core/procps-ng/PKGBUILD
@@ -3,8 +3,8 @@
# Contributor: Eric Bélanger <eric@archlinux.org>
pkgname=procps-ng
-pkgver=3.3.11
-pkgrel=2
+pkgver=3.3.12
+pkgrel=1
pkgdesc='Utilities for monitoring your system and its processes'
url='https://gitlab.com/procps-ng/procps'
license=('GPL' 'LGPL')
@@ -12,7 +12,7 @@ arch=('i686' 'x86_64')
makedepends=('systemd')
depends=('ncurses' 'libsystemd')
source=("http://downloads.sourceforge.net/project/${pkgname}/Production/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('1bdca65547df9ed019bd83649b0f8b8eaa017e25')
+sha1sums=('82c0745f150f1385ca01fe7d24f05f74e31c94c6')
groups=('base')
@@ -38,6 +38,9 @@ build() {
--sbindir=/usr/bin \
--enable-watch8bit \
--with-systemd \
+ --disable-kill \
+
+ # kill is provided by util-linux
make
}
@@ -45,8 +48,4 @@ build() {
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
-
- # provided by util-linux
- rm "${pkgdir}/usr/bin/kill"
- rm "${pkgdir}/usr/share/man/man1/kill.1"
}
diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD
index 4fd9efd..f31881e 100755
--- a/abs/core/runit-scripts/PKGBUILD
+++ b/abs/core/runit-scripts/PKGBUILD
@@ -1,9 +1,9 @@
pkgname=runit-scripts
pkgver=8.4
-pkgrel=2
+pkgrel=3
pkgdesc="collection of startup scripts for runit"
url="http://smarden.org/runit/"
-license="BSD"
+license=('BSD')
depends=('glibc' 'util-linux' 'initscripts' 'runit' )
makedepends=('gcc' 'make' 'rsync')
conflicts=()
diff --git a/abs/core/runit-scripts/runitscripts/services/autofs/run b/abs/core/runit-scripts/runitscripts/services/autofs/run
index d6659c4..c0800a2 100755
--- a/abs/core/runit-scripts/runitscripts/services/autofs/run
+++ b/abs/core/runit-scripts/runitscripts/services/autofs/run
@@ -4,10 +4,6 @@ exec 2>&1
. /etc/rc.conf
. /etc/rc.d/functions
-stat_runit "Starting autofs4 kernel module" && echo ""
-set -e # barf if modprobe fails
-/usr/bin/modprobe autofs4
-
stat_runit "Starting autofs automount" && echo ""
# source application-specific settings
[ -f /etc/conf.d/autofs ] && . /etc/conf.d/autofs
diff --git a/abs/core/system-templates/PKGBUILD b/abs/core/system-templates/PKGBUILD
index c685bae..b496d1c 100755
--- a/abs/core/system-templates/PKGBUILD
+++ b/abs/core/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=system-templates
pkgver=8.4
-pkgrel=1
+pkgrel=2
conflicts=( )
pkgdesc="Templates used for system configuration"
depends=()
diff --git a/abs/core/system-templates/templates/xorg/nvidia_disable_msi.txt b/abs/core/system-templates/templates/xorg/nvidia_disable_msi.txt
new file mode 100644
index 0000000..0a679dc
--- /dev/null
+++ b/abs/core/system-templates/templates/xorg/nvidia_disable_msi.txt
@@ -0,0 +1,10 @@
+Devices listed will have the MSI interrupts disabled via the NVIDIA kernel module parameter "NVreg_EnableMSI=0"
+
+NVIDIA GPU product Device PCI ID Subdevice PCI ID
+GeForce 8300 GS 0x0406
+GeForce 8300 GS 0x0423
+GeForce 8200M 0x0840
+GeForce 8200M G 0x0845
+GeForce 8300 0x0848
+GeForce 8200 0x0849
+GeForce 8200M G 0x086F
diff --git a/abs/core/util-linux/0001-chrt-default-to-SCHED_RR-policy.patch b/abs/core/util-linux/0001-chrt-default-to-SCHED_RR-policy.patch
new file mode 100644
index 0000000..c442149
--- /dev/null
+++ b/abs/core/util-linux/0001-chrt-default-to-SCHED_RR-policy.patch
@@ -0,0 +1,39 @@
+From c7adc2f204f19167f781fa2ee739e0ca386fc4f5 Mon Sep 17 00:00:00 2001
+From: Andreas Henriksson <andreas@fatal.se>
+Date: Fri, 2 Dec 2016 15:10:18 +0100
+Subject: [PATCH] chrt: default to SCHED_RR policy
+
+This fixes a regression introduced in:
+
+commit 7a4ea5664edba98bff28adec3a9c3cfb5763a495
+"chrt: add control struct"
+
+Previously (and as documented in the manpage) the default policy
+was SCHED_RR. Now it's implicitly SCHED_OTHER (0) as the value
+is not initialized explicitly anymore.
+
+Test-command: chrt 90 echo hello
+
+Reported-by: Patrick Pelissier <patrick.pelissier@gmail.com>
+Addresses: http://bugs.debian.org/846572
+Signed-off-by: Andreas Henriksson <andreas@fatal.se>
+---
+ schedutils/chrt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/schedutils/chrt.c b/schedutils/chrt.c
+index a861d9f..73d1ffa 100644
+--- a/schedutils/chrt.c
++++ b/schedutils/chrt.c
+@@ -409,7 +409,7 @@ static void set_sched(struct chrt_ctl *ctl)
+
+ int main(int argc, char **argv)
+ {
+- struct chrt_ctl _ctl = { .pid = -1 }, *ctl = &_ctl;
++ struct chrt_ctl _ctl = { .pid = -1, .policy = SCHED_RR }, *ctl = &_ctl;
+ int c;
+
+ static const struct option longopts[] = {
+--
+2.10.2
+
diff --git a/abs/core/util-linux/0001-lsns-Fix-parser-for-proc-pid-stat-which-is-including.patch b/abs/core/util-linux/0001-lsns-Fix-parser-for-proc-pid-stat-which-is-including.patch
new file mode 100644
index 0000000..b13f189
--- /dev/null
+++ b/abs/core/util-linux/0001-lsns-Fix-parser-for-proc-pid-stat-which-is-including.patch
@@ -0,0 +1,79 @@
+From 3fcbd7978980dc1a29c626b701333e27599e506d Mon Sep 17 00:00:00 2001
+From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+Date: Wed, 23 Nov 2016 14:13:34 +0900
+Subject: [PATCH] lsns: Fix parser for /proc/<pid>/stat which is including
+ space in comm
+
+For example, child process of spamd has
+
+ 32031 (spamd child) S 32026 32026 32026 0 -1 4210752 338 0 0 0 ...
+
+fscanf("%d %*s %c %d*[^\n]") in read_process() can't parse above as we
+expected, because %s only skips non-whitespace. I.e. it parses like
+following,
+
+ 32031 (spamd child) S 32026 32026 32026 0 -1 4210752 338 0 0 0 ...
+ +---+ +----+ +
+ %d %*s %c
+
+and returns 2 (pid=32031, state=c).
+
+This fixes it by skipping task->comm part manually.
+
+Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+---
+ sys-utils/lsns.c | 30 ++++++++++++++++++++++++++----
+ 1 file changed, 26 insertions(+), 4 deletions(-)
+
+diff --git a/sys-utils/lsns.c b/sys-utils/lsns.c
+index e4fd208..809737c 100644
+--- a/sys-utils/lsns.c
++++ b/sys-utils/lsns.c
+@@ -217,6 +217,30 @@ static int get_ns_ino(int dir, const char *nsname, ino_t *ino)
+ return 0;
+ }
+
++static int parse_proc_stat(FILE *fp, pid_t *pid, char *state, pid_t *ppid)
++{
++ char *line = NULL, *p;
++ size_t len = 0;
++ int rc;
++
++ if (getline(&line, &len, fp) < 0) {
++ rc = -errno;
++ goto error;
++ }
++
++ p = strrchr(line, ')');
++ if (p == NULL ||
++ sscanf(line, "%d (", pid) != 1 ||
++ sscanf(p, ") %c %d*[^\n]", state, ppid) != 2) {
++ rc = -EINVAL;
++ goto error;
++ }
++ rc = 0;
++
++error:
++ free(line);
++ return rc;
++}
+
+ static int read_process(struct lsns *ls, pid_t pid)
+ {
+@@ -255,11 +279,9 @@ static int read_process(struct lsns *ls, pid_t pid)
+ rc = -errno;
+ goto done;
+ }
+- rc = fscanf(f, "%d %*s %c %d*[^\n]", &p->pid, &p->state, &p->ppid);
+- if (rc != 3) {
+- rc = rc < 0 ? -errno : -EINVAL;
++ rc = parse_proc_stat(f, &p->pid, &p->state, &p->ppid);
++ if (rc < 0)
+ goto done;
+- }
+ rc = 0;
+
+ for (i = 0; i < ARRAY_SIZE(p->ns_ids); i++) {
+--
+2.10.2
+
diff --git a/abs/core/util-linux/0001-sfdisk-cleanup-dump-error-messages.patch b/abs/core/util-linux/0001-sfdisk-cleanup-dump-error-messages.patch
new file mode 100644
index 0000000..918138c
--- /dev/null
+++ b/abs/core/util-linux/0001-sfdisk-cleanup-dump-error-messages.patch
@@ -0,0 +1,44 @@
+From c49b765a6e9031642e2bb846e93dddc6827e4b28 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Wed, 30 Nov 2016 10:53:56 +0100
+Subject: [PATCH] sfdisk: cleanup --dump error messages
+
+old:
+ # truncate -s 1G empty && ./sfdisk --dump empty
+ sfdisk: failed to dump partition table: Success
+
+new:
+ # truncate -s 1G empty && ./sfdisk --dump empty
+ sfdisk: empty: does not contain a recognized partition table.
+
+Addresses: https://github.com/karelzak/util-linux/issues/375
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ disk-utils/sfdisk.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c
+index 0f69d65..10307ad 100644
+--- a/disk-utils/sfdisk.c
++++ b/disk-utils/sfdisk.c
+@@ -950,13 +950,16 @@ static int command_dump(struct sfdisk *sf, int argc, char **argv)
+ if (rc)
+ err(EXIT_FAILURE, _("cannot open %s"), devname);
+
++ if (!fdisk_has_label(sf->cxt))
++ errx(EXIT_FAILURE, _("%s: does not contain a recognized partition table"), devname);
++
+ dp = fdisk_new_script(sf->cxt);
+ if (!dp)
+ err(EXIT_FAILURE, _("failed to allocate dump struct"));
+
+ rc = fdisk_script_read_context(dp, NULL);
+ if (rc)
+- err(EXIT_FAILURE, _("failed to dump partition table"));
++ errx(EXIT_FAILURE, _("%s: failed to dump partition table"), devname);
+
+ if (sf->json)
+ fdisk_script_enable_json(dp, 1);
+--
+2.10.2
+
diff --git a/abs/core/util-linux/0001-sfdisk-don-t-be-silent-when-list-non-existing-device.patch b/abs/core/util-linux/0001-sfdisk-don-t-be-silent-when-list-non-existing-device.patch
new file mode 100644
index 0000000..4b088bb
--- /dev/null
+++ b/abs/core/util-linux/0001-sfdisk-don-t-be-silent-when-list-non-existing-device.patch
@@ -0,0 +1,70 @@
+From fed304837f60b626f6198663990e76e506f89063 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Tue, 29 Nov 2016 15:58:18 +0100
+Subject: [PATCH] sfdisk: don't be silent when list non-existing device
+
+Addresses: https://github.com/karelzak/util-linux/issues/376
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ disk-utils/sfdisk.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c
+index 52f2a6d..0f69d65 100644
+--- a/disk-utils/sfdisk.c
++++ b/disk-utils/sfdisk.c
+@@ -560,6 +560,7 @@ static int write_changes(struct sfdisk *sf)
+ */
+ static int command_list_partitions(struct sfdisk *sf, int argc, char **argv)
+ {
++ int fail = 0;
+ fdisk_enable_listonly(sf->cxt, 1);
+
+ if (argc) {
+@@ -568,13 +569,14 @@ static int command_list_partitions(struct sfdisk *sf, int argc, char **argv)
+ for (i = 0; i < argc; i++) {
+ if (ct)
+ fputs("\n\n", stdout);
+- if (print_device_pt(sf->cxt, argv[i], 0, sf->verify) == 0)
+- ct++;
++ if (print_device_pt(sf->cxt, argv[i], 1, sf->verify) != 0)
++ fail++;
++ ct++;
+ }
+ } else
+ print_all_devices_pt(sf->cxt, sf->verify);
+
+- return 0;
++ return fail;
+ }
+
+ /*
+@@ -582,6 +584,7 @@ static int command_list_partitions(struct sfdisk *sf, int argc, char **argv)
+ */
+ static int command_list_freespace(struct sfdisk *sf, int argc, char **argv)
+ {
++ int fail = 0;
+ fdisk_enable_listonly(sf->cxt, 1);
+
+ if (argc) {
+@@ -590,13 +593,14 @@ static int command_list_freespace(struct sfdisk *sf, int argc, char **argv)
+ for (i = 0; i < argc; i++) {
+ if (ct)
+ fputs("\n\n", stdout);
+- if (print_device_freespace(sf->cxt, argv[i], 0) == 0)
+- ct++;
++ if (print_device_freespace(sf->cxt, argv[i], 1) != 0)
++ fail++;
++ ct++;
+ }
+ } else
+ print_all_devices_freespace(sf->cxt);
+
+- return 0;
++ return fail;
+ }
+
+ /*
+--
+2.10.2
+
diff --git a/abs/core/util-linux/0001-sfdisk-support-empty-label-use-case.patch b/abs/core/util-linux/0001-sfdisk-support-empty-label-use-case.patch
new file mode 100644
index 0000000..29ab44d
--- /dev/null
+++ b/abs/core/util-linux/0001-sfdisk-support-empty-label-use-case.patch
@@ -0,0 +1,223 @@
+From 35ca51182782193f555fbdcb06bb10766550d017 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Wed, 30 Nov 2016 12:43:10 +0100
+Subject: [PATCH] sfdisk: support empty label use-case
+
+By default sfdisk creates partition table when a first partition is
+specified, otherwise the device is not modified. This force users to
+create at least one partition.
+
+This commit allows to create empty label without partitions if "label:
+<name>" header line is specified by script.
+
+The commit also modifies "New situation:" output to list label name
+and label identifier.
+
+Addresses: https://github.com/karelzak/util-linux/issues/374
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ disk-utils/fdisk-list.c | 23 +++++++++++++++--------
+ disk-utils/fdisk-list.h | 1 +
+ disk-utils/sfdisk.8 | 18 +++++++++++++++++-
+ disk-utils/sfdisk.c | 17 +++++++++++++++++
+ libfdisk/src/libfdisk.h.in | 1 +
+ libfdisk/src/libfdisk.sym | 5 +++++
+ libfdisk/src/script.c | 20 +++++++++++++++++++-
+ 7 files changed, 75 insertions(+), 10 deletions(-)
+
+diff --git a/disk-utils/fdisk-list.c b/disk-utils/fdisk-list.c
+index e6b2033..c9560f4 100644
+--- a/disk-utils/fdisk-list.c
++++ b/disk-utils/fdisk-list.c
+@@ -34,10 +34,23 @@ static int is_ide_cdrom_or_tape(char *device)
+ return ret;
+ }
+
++void list_disk_identifier(struct fdisk_context *cxt)
++{
++ struct fdisk_label *lb = fdisk_get_label(cxt, NULL);
++ char *id = NULL;
++
++ if (fdisk_has_label(cxt))
++ fdisk_info(cxt, _("Disklabel type: %s"),
++ fdisk_label_get_name(lb));
++
++ if (!fdisk_is_details(cxt) && fdisk_get_disklabel_id(cxt, &id) == 0 && id) {
++ fdisk_info(cxt, _("Disk identifier: %s"), id);
++ free(id);
++ }
++}
+
+ void list_disk_geometry(struct fdisk_context *cxt)
+ {
+- char *id = NULL;
+ struct fdisk_label *lb = fdisk_get_label(cxt, NULL);
+ uint64_t bytes = fdisk_get_nsectors(cxt) * fdisk_get_sector_size(cxt);
+ char *strsz = size_to_human_string(SIZE_SUFFIX_SPACE
+@@ -71,14 +84,8 @@ void list_disk_geometry(struct fdisk_context *cxt)
+ if (fdisk_get_alignment_offset(cxt))
+ fdisk_info(cxt, _("Alignment offset: %lu bytes"),
+ fdisk_get_alignment_offset(cxt));
+- if (fdisk_has_label(cxt))
+- fdisk_info(cxt, _("Disklabel type: %s"),
+- fdisk_label_get_name(lb));
+
+- if (!fdisk_is_details(cxt) && fdisk_get_disklabel_id(cxt, &id) == 0 && id) {
+- fdisk_info(cxt, _("Disk identifier: %s"), id);
+- free(id);
+- }
++ list_disk_identifier(cxt);
+ }
+
+ void list_disklabel(struct fdisk_context *cxt)
+diff --git a/disk-utils/fdisk-list.h b/disk-utils/fdisk-list.h
+index eddab92..4ed5c25 100644
+--- a/disk-utils/fdisk-list.h
++++ b/disk-utils/fdisk-list.h
+@@ -2,6 +2,7 @@
+ #define UTIL_LINUX_FDISK_LIST_H
+
+ extern void list_disklabel(struct fdisk_context *cxt);
++extern void list_disk_identifier(struct fdisk_context *cxt);
+ extern void list_disk_geometry(struct fdisk_context *cxt);
+ extern void list_freespace(struct fdisk_context *cxt);
+
+diff --git a/disk-utils/sfdisk.8 b/disk-utils/sfdisk.8
+index fcde872..efe4a86 100644
+--- a/disk-utils/sfdisk.8
++++ b/disk-utils/sfdisk.8
+@@ -212,7 +212,10 @@ Deprecated option. Only the sector unit is supported.
+ .BR \-X , " \-\-label " \fItype
+ Specify the disk label type (e.g. \fBdos\fR, \fBgpt\fR, ...). If this option
+ is not given, then \fBsfdisk\fR defaults to the existing label, but if there
+-is no label on the device yet, then the type defaults to \fBdos\fR.
++is no label on the device yet, then the type defaults to \fBdos\fR. The default
++or the current label may be overwritten by the "label: <name>" script header
++line. The option \fB\-\-label\fR does not force \fBsfdisk\fR to create empty
++disk label (see the \fBEMPTY DISK LABEL\fR section below).
+ .TP
+ .BR \-Y , " \-\-label\-nested " \fItype
+ Force editing of a nested disk label. The primary disk label has to exist already.
+@@ -404,6 +407,19 @@ For backward compatibility the \fBId=\fR field has the same meaning.
+ .RE
+ .RE
+
++.SH "EMPTY DISK LABEL"
++.B sfdisk
++does not create partition table without partitions by default. The lines with
++partitions are expected in the script by default. The empty partition table has
++to be explicitly requested by "label: <name>" script header line without any
++partitions lines. For example:
++.RS
++.sp
++.B "echo 'label: gpt' | sfdisk /dev/sdb"
++.sp
++.RE
++creates empty GPT partition table. Note that the \fB\-\-append\fR disables this feature.
++
+ .SH "BACKING UP THE PARTITION TABLE"
+ It is recommended to save the layout of your devices.
+ .B sfdisk
+diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c
+index 10307ad..2d65974 100644
+--- a/disk-utils/sfdisk.c
++++ b/disk-utils/sfdisk.c
+@@ -1766,8 +1766,25 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv)
+ }
+ } while (1);
+
++ /* create empty disk label if label, but no partition specified */
++ if (rc == SFDISK_DONE_EOF && created == 0
++ && fdisk_script_has_force_label(dp) == 1
++ && fdisk_table_get_nents(tb) == 0
++ && fdisk_script_get_header(dp, "label")) {
++
++ int xrc = fdisk_apply_script_headers(sf->cxt, dp);
++ created = !xrc;
++ if (xrc) {
++ fdisk_warnx(sf->cxt, _(
++ "Failed to apply script headers, "
++ "disk label not created."));
++ rc = SFDISK_DONE_ABORT;
++ }
++ }
++
+ if (!sf->quiet && rc != SFDISK_DONE_ABORT) {
+ fdisk_info(sf->cxt, _("\nNew situation:"));
++ list_disk_identifier(sf->cxt);
+ list_disklabel(sf->cxt);
+ }
+
+diff --git a/libfdisk/src/libfdisk.h.in b/libfdisk/src/libfdisk.h.in
+index 9154f5b..59cce19 100644
+--- a/libfdisk/src/libfdisk.h.in
++++ b/libfdisk/src/libfdisk.h.in
+@@ -642,6 +642,7 @@ const char *fdisk_script_get_header(struct fdisk_script *dp, const char *name);
+ int fdisk_script_set_header(struct fdisk_script *dp, const char *name, const char *data);
+ struct fdisk_table *fdisk_script_get_table(struct fdisk_script *dp);
+ int fdisk_script_get_nlines(struct fdisk_script *dp);
++int fdisk_script_has_force_label(struct fdisk_script *dp);
+
+ int fdisk_script_set_userdata(struct fdisk_script *dp, void *data);
+ void *fdisk_script_get_userdata(struct fdisk_script *dp);
+diff --git a/libfdisk/src/libfdisk.sym b/libfdisk/src/libfdisk.sym
+index 02cd7a8..d6d4ac5 100644
+--- a/libfdisk/src/libfdisk.sym
++++ b/libfdisk/src/libfdisk.sym
+@@ -274,3 +274,8 @@ FDISK_2.29 {
+ fdisk_labelitem_is_number;
+ fdisk_gpt_set_npartitions;
+ } FDISK_2.28;
++
++
++FDISK_2.30 {
++ fdisk_script_has_force_label;
++} FDISK_2.29;
+diff --git a/libfdisk/src/script.c b/libfdisk/src/script.c
+index ae7e99a..0d1f260 100644
+--- a/libfdisk/src/script.c
++++ b/libfdisk/src/script.c
+@@ -36,7 +36,8 @@ struct fdisk_script {
+ size_t nlines;
+ struct fdisk_label *label;
+
+- unsigned int json : 1; /* JSON output */
++ unsigned int json : 1, /* JSON output */
++ force_label : 1; /* label: <name> specified */
+ };
+
+
+@@ -354,6 +355,22 @@ int fdisk_script_get_nlines(struct fdisk_script *dp)
+ }
+
+ /**
++ * fdisk_script_has_force_label:
++ * @dp: script
++ *
++ * Note that fdisk_script_set_header(dp, "label", name) does not modify
++ * force_label status. The label has to be specified by script.
++ *
++ * Returns: true if "label: <name>" has been parsed.
++ */
++int fdisk_script_has_force_label(struct fdisk_script *dp)
++{
++ assert(dp);
++ return dp->force_label;
++}
++
++
++/**
+ * fdisk_script_read_context:
+ * @dp: script
+ * @cxt: context
+@@ -706,6 +723,7 @@ static int parse_line_header(struct fdisk_script *dp, char *s)
+ if (strcmp(name, "label") == 0) {
+ if (dp->cxt && !fdisk_get_label(dp->cxt, value))
+ goto done; /* unknown label name */
++ dp->force_label = 1;
+ } else if (strcmp(name, "unit") == 0) {
+ if (strcmp(value, "sectors") != 0)
+ goto done; /* only "sectors" supported */
+--
+2.10.2
+
diff --git a/abs/core/util-linux/PKGBUILD b/abs/core/util-linux/PKGBUILD
index 64faa1a..72df84c 100644
--- a/abs/core/util-linux/PKGBUILD
+++ b/abs/core/util-linux/PKGBUILD
@@ -5,7 +5,8 @@
pkgbase=util-linux
pkgname=(util-linux libutil-linux)
-pkgver=2.27.1
+_pkgmajor=2.29
+pkgver=${_pkgmajor}
pkgrel=1
pkgdesc="Miscellaneous system utilities for Linux"
url="https://www.kernel.org/pub/linux/utils/util-linux/"
@@ -14,13 +15,33 @@ makedepends=('systemd' 'python2')
license=('GPL2')
options=('strip' 'debug')
validpgpkeys=('B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284') # Karel Zak
-source=("https://www.kernel.org/pub/linux/utils/util-linux/v${pkgver%.?}/$pkgbase-$pkgver.tar."{xz,sign}
- pam-{login,common,su})
-md5sums=('3cd2698d1363a2c64091c2dadc974647'
+source=("https://www.kernel.org/pub/linux/utils/util-linux/v$_pkgmajor/$pkgbase-$pkgver.tar."{xz,sign}
+ pam-{login,common,su}
+ '0001-sfdisk-don-t-be-silent-when-list-non-existing-device.patch'
+ '0001-sfdisk-cleanup-dump-error-messages.patch'
+ '0001-sfdisk-support-empty-label-use-case.patch'
+ '0001-chrt-default-to-SCHED_RR-policy.patch'
+ '0001-lsns-Fix-parser-for-proc-pid-stat-which-is-including.patch')
+md5sums=('07b6845f48a421ad5844aa9d58edb837'
'SKIP'
'4368b3f98abd8a32662e094c54e7f9b1'
'a31374fef2cba0ca34dfc7078e2969e4'
- 'fa85e5cce5d723275b14365ba71a8aad')
+ 'fa85e5cce5d723275b14365ba71a8aad'
+ '3fce7192ce1b3d97fdffd0226ed63a90'
+ '2f3c061865360170cacda948035fd02d'
+ '6d2e3915124938577f0ff18ef701c87f'
+ '168c1cb2cfe7d4eddfc6e3f3b19d3ced'
+ '68c2076a9a09564ba0c9776540a175fa')
+
+prepare() {
+ cd "$pkgbase-$pkgver"
+
+ patch -Np1 <../0001-sfdisk-don-t-be-silent-when-list-non-existing-device.patch
+ patch -Np1 <../0001-sfdisk-cleanup-dump-error-messages.patch
+ patch -Np1 <../0001-sfdisk-support-empty-label-use-case.patch
+ patch -Np1 <../0001-chrt-default-to-SCHED_RR-policy.patch
+ patch -Np1 <../0001-lsns-Fix-parser-for-proc-pid-stat-which-is-including.patch
+}
build() {
cd "$pkgbase-$pkgver"
@@ -36,7 +57,7 @@ build() {
--enable-chfn-chsh \
--enable-write \
--enable-mesg \
- --enable-libmount-force-mountinfo \
+ --disable-tailf \
--with-python=2
make
@@ -80,6 +101,12 @@ package_util-linux() {
### runtime libs are shipped as part of libutil-linux
rm "$pkgdir"/usr/lib/lib*.{a,so}*
+
+ ### tailf has been deprecated for a while. let's not include it anymore.
+ rm \
+ "$pkgdir"/usr/bin/tailf \
+ "$pkgdir"/usr/share/bash-completion/completions/tailf \
+ "$pkgdir"/usr/share/man/man1/tailf.1
}
package_libutil-linux() {
diff --git a/abs/core/which/PKGBUILD b/abs/core/which/PKGBUILD
index 65495fe..3df51e9 100644
--- a/abs/core/which/PKGBUILD
+++ b/abs/core/which/PKGBUILD
@@ -1,27 +1,31 @@
-# $Id: PKGBUILD 142082 2011-11-04 23:36:20Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id$
+# Maintainer: Sébastien Luttringer <seblu@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=which
-pkgver=2.20
-pkgrel=5
-pkgdesc="A utility to show the full path of commands"
+pkgver=2.21
+pkgrel=2
+pkgdesc='A utility to show the full path of commands'
arch=('i686' 'x86_64')
-url="http://www.xs4all.nl/~carlo17/which"
+url='https://savannah.gnu.org/projects/which/'
license=('GPL3')
-groups=('base')
-depends=('glibc' 'sh')
-install=which.install
-source=(http://www.xs4all.nl/~carlo17/$pkgname/$pkgname-$pkgver.tar.gz)
-md5sums=('95be0501a466e515422cde4af46b2744')
+groups=('base' 'base-devel')
+depends=('glibc' 'bash')
+# gpg key is using deprecated md5 algo, do not use
+# check if a new one is issued in the next release
+source=("https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('097ff1a324ae02e0a3b0369f07a7544a')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd $pkgname-$pkgver
./configure --prefix=/usr
make
}
package() {
- cd $srcdir/$pkgname-$pkgver
- make DESTDIR=$pkgdir install
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/which/which.install b/abs/core/which/which.install
deleted file mode 100644
index 167e250..0000000
--- a/abs/core/which/which.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=/usr/share/info
-filelist=(which.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file $infodir/dir 2> /dev/null
- done
-}
diff --git a/abs/core/xymon/PKGBUILD b/abs/core/xymon/PKGBUILD
index 787ce61..e69afd4 100755
--- a/abs/core/xymon/PKGBUILD
+++ b/abs/core/xymon/PKGBUILD
@@ -1,42 +1,45 @@
pkgbase=xymon
pkgname=('xymonserver' 'xymonclient')
-pkgver=4.3.17
-pkgrel=23
+pkgver=4.3.28
+pkgrel=1
pkgdesc="Xymon is a system for monitoring of hosts and networks"
-license="GPL"
+license=('GPL')
arch=('i686' 'x86_64')
url="http://www.xymon.com/"
source=("https://downloads.sourceforge.net/project/xymon/Xymon/$pkgver/$pkgbase-$pkgver.tar.gz"
- 'hobbitadd.py'
- 'xymon_ghost_check'
- 'graphs.cfg.diff'
- 'xymonserver.cfg.diff'
- 'tasks.d.mv'
+ 'alerts.cfg'
+ 'analysis.cfg.patch'
+ 'be.png' 'tuner.png' 'tv.png'
'clientlaunch.cfg.patch'
- 'hobbitstorage.py'
- 'hbnotes.py'
- 'hobbit-myth-orphan.sh'
- 'analysis.cfg'
+ 'client-local.cfg.patch'
+ 'graphs.cfg.diff'
'hbfunc.py'
- 'be.png' 'tuner.png' 'tv.png'
- 'hobbit-mem-myth.sh'
+ 'hbnotes.py'
'hobbit_notify.sh'
- 'login_notify.sh'
- 'alerts.cfg'
+ 'hobbit-mem-myth.sh'
+ 'hobbit-myth-orphan.sh'
'hobbit_myth_data.py'
+ 'hobbitadd.py'
+ 'hobbitstorage.py'
+ 'hosts.cfg.patch'
+ 'log_list.sh'
+ 'led_themes.tar.gz'
+ 'login_notify.sh'
+ 'logrotate-server.xymon'
+ 'logrotate-client.xymon'
+ 'tasks.d.mv'
+ 'xymon_ghost_check'
'xymon-gputemp.sh'
'xymon-hddtemp.sh'
'xymon-smart.sh'
- 'logrotate-server.xymon'
- 'logrotate-client.xymon'
- 'log_list.sh'
- 'client-local.cfg.patch'
- 'led_themes.tar.gz'
+ 'xymon-server.include'
+ 'xymon-server.gen_light_conf.d'
+ 'xymonserver.cfg.diff'
'xymon-server.rules'
'xymon-client.rules'
- 'hosts.cfg.patch')
+ )
depends=('rrdtool' 'fping' 'pcre' 'python2' 'graphviz' 'smartmontools')
-install=xymon.install
+install=xymon-server.install
build() {
cd ${srcdir}/xymon-$pkgver
@@ -58,6 +61,7 @@ build() {
MANROOT=/usr/share/man \
BARS=all \
USENEWHIST=y \
+ USEXYMONPING=n \
PIXELCOUNT=960 \
INSTALLBINDIR=/home/xymon/server/bin \
INSTALLETCDIR=/home/xymon/etc \
@@ -88,7 +92,6 @@ package_xymonserver(){
install -D -m755 ${srcdir}/xymon-smart.sh ${pkgdir}/home/xymon/server/ext/xymon-smart.sh
install -D -m755 ${srcdir}/log_list.sh ${pkgdir}/home/xymon/client/bin/log_list.sh
- install -m755 analysis.cfg ${pkgdir}/home/xymon/etc/analysis.cfg
cat alerts.cfg >> ${pkgdir}/home/xymon/etc/alerts.cfg
install -m755 hobbit_notify.sh ${pkgdir}/home/xymon/server/bin/hobbit_notify.sh
@@ -115,6 +118,7 @@ package_xymonserver(){
cd ${pkgdir}/home/xymon/etc
patch -p0 < ${srcdir}/graphs.cfg.diff || return 1
patch -p0 < ${srcdir}/xymonserver.cfg.diff || return 1
+ patch -p0 < ${srcdir}/analysis.cfg.patch || return 1
patch -p3 < ${srcdir}/client-local.cfg.patch || return 1
patch -p3 < ${srcdir}/hosts.cfg.patch || return 1
@@ -126,9 +130,20 @@ package_xymonserver(){
echo "myth_mtc;The <b>myth_mtc</b> column shows the status of the MythTV maintenance script.;" >> $COLDOC
echo "orphan;The <b>orphan</b> column shows the status of the find_orphans.py script.;" >> $COLDOC
+ #move cgiwrap to same partiton as hobbit-cgi and hobbit-seccgi
+ #because pacman is not able to install hardlinks accross partitions
+ mv ${pkgdir}/home/xymon/server/bin/cgiwrap ${pkgdir}/data/srv/httpd/htdocs/xymon/
+
+ #install conf files for lighttpd
+ mkdir -p ${pkgdir}/etc/lighttpd
+ install -D -m 644 ${srcdir}/xymon-server.include ${pkgdir}/etc/lighttpd/
+ #gen_light_conf
+ install -D -m 744 ${srcdir}/xymon-server.gen_light_conf.d ${pkgdir}/etc/gen_light_conf.d/xymon-server.conf
+
#fix permissions
- chmod 775 ${pkgdir}/data/srv/httpd/htdocs/
+ chmod 755 ${pkgdir}/data/srv/httpd/htdocs/
chmod 775 ${pkgdir}/data/srv/httpd/htdocs/xymon/
+ chmod 755 ${pkgdir}/data/srv/httpd/htdocs/xymon/cgiwrap
chmod 775 ${pkgdir}/data/srv/httpd/htdocs/xymon/notes/
chmod 775 ${pkgdir}/data/srv/httpd/htdocs/xymon/gifs/
chmod 775 ${pkgdir}/data/srv/httpd/htdocs/xymon/snap/
@@ -160,34 +175,36 @@ package_xymonclient(){
cd -
}
-md5sums=('d8d119a777e7b7204d1292fb27314312'
- 'a0fbb9cbeb3600a40943e6205790f22f'
- 'c60b0d59bb39505ee3d62c6dd65429c5'
- '92bd5e8279c688fd854d514443bc733c'
- 'f0fca78520f434918bd1be717d165073'
- 'a19c8c546dcd95049476bb19f9d4e3ae'
- 'c9a31ea9ae131fb351db913e922c25aa'
- 'b2f98ac0df013332deedc1efae0a270d'
- 'df77d1de72157d23a301a72288fbf7e5'
- '2a509d81ee1655130ce40bf970719e0a'
- '166279c006c3ef7bf0c21537cf89fc83'
- '80d9cfac86c6d96836e6f406e35e7cf5'
+md5sums=('14501ab2cfce9a332c1590543dfcbd0f'
+ '9af2ad60ac4c3cb653754618f603e311'
+ '77fd7ab6ebbe72d14092ee53c5958f97'
'd210c43fb9ee9ad6cd7648e0c2e0efea'
'0c808fa12672289f86b0651545381308'
'0469d775db9fdd18ea95dd41937ada82'
- '0757294eec13771f8e63da23cf066796'
+ 'c9a31ea9ae131fb351db913e922c25aa'
+ '31ac5c1f6dcc9408b64c4107b325a9a6'
+ '92bd5e8279c688fd854d514443bc733c'
+ '80d9cfac86c6d96836e6f406e35e7cf5'
+ 'df77d1de72157d23a301a72288fbf7e5'
'b1d5592fa92ef71303621964e84c2b9e'
- '22d4c9065fd959efe82f121dcb511305'
- '9af2ad60ac4c3cb653754618f603e311'
+ '0757294eec13771f8e63da23cf066796'
+ '2a509d81ee1655130ce40bf970719e0a'
'313b11e7a22c3c08fb2afaadbfb46d87'
+ 'a0fbb9cbeb3600a40943e6205790f22f'
+ 'b2f98ac0df013332deedc1efae0a270d'
+ '606f535a49f32b35802ed9d46bd7d068'
+ '98e9242ae346f729b14cb195786571f2'
+ 'c7178bbf384bbe86c318b60fef6faf10'
+ '22d4c9065fd959efe82f121dcb511305'
+ 'b4e8641e97e6b689dbc634af785e6799'
+ 'e2844513e2c92e8b5084818f3b2a478d'
+ 'a19c8c546dcd95049476bb19f9d4e3ae'
+ 'c60b0d59bb39505ee3d62c6dd65429c5'
'6452d891d88bb46d07bcf7790a523ad0'
'b49e7de696c1a0678ad198bab926266c'
'e071c387deac6b896b20db19903b7794'
- 'b4e8641e97e6b689dbc634af785e6799'
- 'e2844513e2c92e8b5084818f3b2a478d'
- '98e9242ae346f729b14cb195786571f2'
- '31ac5c1f6dcc9408b64c4107b325a9a6'
- 'c7178bbf384bbe86c318b60fef6faf10'
- '2871c53627e9e125922118013a868a95'
- 'cdfbca43dbae4ce0ca72dd002ec22af1'
- '606f535a49f32b35802ed9d46bd7d068')
+ '1a00c0b9b9b1a37f1513fa8489ce9d31'
+ '3d1f311f0142f41d763276302a7ce396'
+ 'c75c434ba9c39a914e7693004b580554'
+ 'e9dbff011e57861266d27dfdf465a4b3'
+ 'cdfbca43dbae4ce0ca72dd002ec22af1')
diff --git a/abs/core/xymon/analysis.cfg b/abs/core/xymon/analysis.cfg
deleted file mode 100644
index 460d157..0000000
--- a/abs/core/xymon/analysis.cfg
+++ /dev/null
@@ -1,445 +0,0 @@
-# analysis.cfg - configuration file for clients reporting to Xymon
-#
-# This file is used by the xymond_client module, when it builds the
-# cpu, disk, files, memory, msgs and procs status messages from the
-# information reported by clients running on the monitored systems.
-#
-# This file must be installed on the Xymon server - client installations
-# do not need this file.
-#
-# The file defines a series of rules:
-# UP : Changes the "cpu" status when the system has rebooted recently,
-# or when it has been running for too long.
-# LOAD : Changes the "cpu" status according to the system load.
-# CLOCK : Changes the "cpu" status if the client system clock is
-# not synchronized with the clock of the Xymon server.
-# DISK : Changes the "disk" status, depending on the amount of space
-# used of filesystems.
-# MEMPHYS: Changes the "memory" status, based on the percentage of real
-# memory used.
-# MEMACT : Changes the "memory" status, based on the percentage of "actual"
-# memory used. Note: Not all systems report an "actual" value.
-# MEMSWAP: Changes the "memory" status, based on the percentage of swap
-# space used.
-# PROC : Changes the "procs" status according to which processes were found
-# in the "ps" listing from the client.
-# LOG : Changes the "msgs" status according to entries in text-based logfiles.
-# Note: The "client-local.cfg" file controls which logfiles the client will report.
-# FILE : Changes the "files" status according to meta-data for files.
-# Note: The "client-local.cfg" file controls which files the client will report.
-# DIR : Changes the "files" status according to the size of a directory.
-# Note: The "client-local.cfg" file controls which directories the client will report.
-# PORT : Changes the "ports" status according to which tcp ports were found
-# in the "netstat" listing from the client.
-# DEFAULT: Set the default values that apply if no other rules match.
-#
-# All rules can be qualified so they apply only to certain hosts, or on certain
-# times of the day (see below).
-#
-# Each type of rule takes a number of parameters:
-# UP bootlimit toolonglimit
-# The cpu status goes yellow if the system has been up for less than
-# "bootlimit" time, or longer than "toolonglimit". The time is in
-# minutes, or you can add h/d/w for hours/days/weeks - eg. "2h" for
-# two hours, or "4w" for 4 weeks.
-# Defaults: bootlimit=1h, toolonglimit=-1 (infinite).
-#
-# LOAD warnlevel paniclevel
-# If the system load exceeds "warnlevel" or "paniclevel", the "cpu"
-# status will go yellow or red, respectively. These are decimal
-# numbers.
-# Defaults: warnlevel=5.0, paniclevel=10.0
-#
-# CLOCK maximum-offset
-# If the system clock of the client differs from that of the Xymon
-# server by more than "maximum-offset" seconds, then the CPU status
-# column will go yellow. Note that the accuracy of this test is limited,
-# since it is affected by the time it takes a client status report to
-# go from the client to the Xymon server and be processed. You should
-# therefore allow for a few seconds (5-10) of slack when you define
-# your max. offset.
-# It is not wise to use this test, unless your servers are synchronized
-# to a common clock, e.g. through NTP.
-#
-# DISK filesystem warnlevel paniclevel
-# DISK filesystem IGNORE
-# If the utilization of "filesystem" is reported to exceed "warnlevel"
-# or "paniclevel", the "disk" status will go yellow or red, respectively.
-# "warnlevel" and "paniclevel" are either the percentage used, or the
-# space available as reported by the local "df" command on the host.
-# For the latter type of check, the "warnlevel" must be followed by the
-# letter "U", e.g. "1024U".
-# The special keyword "IGNORE" causes this filesystem to be ignored
-# completely, i.e. it will not appear in the "disk" status column and
-# it will not be tracked in a graph. This is useful for e.g. removable
-# devices, backup-disks and similar hardware.
-# "filesystem" is the mount-point where the filesystem is mounted, e.g.
-# "/usr" or "/home". A filesystem-name that begins with "%" is interpreted
-# as a Perl-compatible regular expression; e.g. "%^/oracle.*/" will match
-# any filesystem whose mountpoint begins with "/oracle".
-# Defaults: warnlevel=90%, paniclevel=95%
-#
-# MEMPHYS warnlevel paniclevel
-# MEMACT warnlevel paniclevel
-# MEMSWAP warnlevel paniclevel
-# If the memory utilization exceeds the "warnlevel" or "paniclevel", the
-# "memory" status will change to yellow or red, respectively.
-# Note: The words "PHYS", "ACT" and "SWAP" are also recognized.
-# Defaults: MEMPHYS warnlevel=100 paniclevel=101 (i.e. it will never go red)
-# MEMSWAP warnlevel=50 paniclevel=80
-# MEMACT warnlevel=90 paniclevel=97
-#
-# PROC processname minimumcount maximumcount color [TRACK=id] [TEXT=displaytext]
-# The "ps" listing sent by the client will be scanned for how many
-# processes containing "processname" are running, and this is then
-# matched against the min/max settings defined here. If the running
-# count is outside the thresholds, the color of the "procs" status
-# changes to "color".
-# To check for a process that must NOT be running: Set minimum and
-# maximum to 0.
-#
-# "processname" can be a simple string, in which case this string must
-# show up in the "ps" listing as a command. The scanner will find
-# a ps-listing of e.g. "/usr/sbin/cron" if you only specify "processname"
-# as "cron".
-# "processname" can also be a Perl-compatiable regular expression, e.g.
-# "%java.*inst[0123]" can be used to find entries in the ps-listing for
-# "java -Xmx512m inst2" and "java -Xmx256 inst3". In that case,
-# "processname" must begin with "%" followed by the reg.expression.
-# If "processname" contains whitespace (blanks or TAB), you must enclose
-# the full string in double quotes - including the "%" if you use regular
-# expression matching. E.g.
-# PROC "%xymond_channel --channel=data.*xymond_rrd" 1 1 yellow
-# or
-# PROC "java -DCLASSPATH=/opt/java/lib" 2 5
-#
-# You can have multiple "PROC" entries for the same host, all of the
-# checks are merged into the "procs" status and the most severe
-# check defines the color of the status.
-#
-# The TRACK=id option causes the number of processes found to be recorded
-# in an RRD file, with "id" as part of the filename. This graph will then
-# appear on the "procs" page as well as on the "trends" page. Note that
-# "id" must be unique among the processes tracked for each host.
-#
-# The TEXT=displaytext option affects how the process appears on the
-# "procs" status page. By default, the process is listed with the
-# "processname" as identification, but if this is a regular expression
-# it may be a bit difficult to understand. You can then use e.g.
-# "TEXT=Apache" to make these processes appear with the name "Apache"
-# instead.
-#
-# Defaults: mincount=1, maxcount=-1 (unlimited), color="red".
-# Note: No processes are checked by default.
-#
-# Example: Check that "cron" is running:
-# PROC cron
-# Example: Check that at least 5 "httpd" processes are running, but
-# not more than 20:
-# PROC httpd 5 20
-#
-# LOG filename match-pattern [COLOR=color] [IGNORE=ignore-pattern] [TEXT=displaytext]
-# In the "client-local.cfg" file, you can list any number of files
-# that the client will collect log data from. These are sent to the
-# Xymon server together with the other client data, and you can then
-# choose how to analyze the log data with LOG entries.
-#
-# ************ IMPORTANT ***************
-# To monitor a logfile, you *MUST* configure both client-local.cfg
-# and analysis.cfg. If you configure only the client-local.cfg
-# file, the client will collect the log data and you can view it in
-# the "client data" display, but it will not affect the color of the
-# "msgs" status. On the other hand, if you configure only the
-# analysis.cfg file, then there will be no log data to inspect,
-# and you will not see any updates of the "msgs" status either.
-#
-# "filename" is a filename or pattern. The set of files reported by
-# the client is matched against "filename", and if they match then
-# this LOG entry is processed against the data from a file.
-#
-# "match-pattern": The log data is matched against this pattern. If
-# there is a match, this log file causes a status change to "color".
-#
-# "ignore-pattern": The log data that matched "match-pattern" is also
-# matched against "ignore-pattern". If the data matches the "ignore-pattern",
-# this line of data does not affect the status color. In other words,
-# the "ignore-pattern" can be used to refine the strings which cause
-# a match.
-# Note: The "ignore-pattern" is optional.
-#
-# "color": The color which this match will trigger.
-# Note: "color" is optional, if omitted then "red" will be used.
-#
-# Example: Go yellow if the text "WARNING" shows up in any logfile.
-# LOG %.* WARNING COLOR=yellow
-#
-# Example: Go red if the text "I/O error" or "read error" appears.
-# LOG %/var/(adm|log)/messages %(I/O|read).error COLOR=red
-#
-# FILE filename [color] [things to check] [TRACK]
-# NB: The files you wish to monitor must be listed in a "file:..."
-# entry in the client-local.cfg file, in order for the client to
-# report any data about them.
-#
-# "filename" is a filename or pattern. The set of files reported by
-# the client is matched against "filename", and if they match then
-# this FILE entry is processed against the data from that file.
-#
-# [things to check] can be one or more of the following:
-# - "NOEXIST" triggers a warning if the file exists. By default,
-# a warning is triggered for files that have a FILE entry, but
-# which do not exist.
-# - "TYPE=type" where "type" is one of "file", "dir", "char", "block",
-# "fifo", or "socket". Triggers warning if the file is not of the
-# specified type.
-# - "OWNERID=owner" and "GROUPID=group" triggers a warning if the owner
-# or group does not match what is listed here. "owner" and "group" is
-# specified either with the numeric uid/gid, or the user/group name.
-# - "MODE=mode" triggers a warning if the file permissions are not
-# as listed. "mode" is written in the standard octal notation, e.g.
-# "644" for the rw-r--r-- permissions.
-# - "SIZE<max.size" and "SIZE>min.size" triggers a warning it the file
-# size is greater than "max.size" or less than "min.size", respectively.
-# You can append "K" (KB), "M" (MB), "G" (GB) or "T" (TB) to the size.
-# If there is no such modifier, KB is assumed.
-# E.g. to warn if a file grows larger than 1MB (1024 KB): "SIZE<1M".
-# - "SIZE=size" triggers a warning it the file size is not what is listed.
-# - "MTIME>min.mtime" and "MTIME<max.mtime" checks how long ago the file
-# was last modified (in seconds). E.g. to check if a file was updated
-# within the past 10 minutes (600 seconds): "MTIME<600". Or to check
-# that a file has NOT been updated in the past 24 hours: "MTIME>86400".
-# - "MTIME=timestamp" checks if a file was last modified at "timestamp".
-# "timestamp" is a unix epoch time (seconds since midnight Jan 1 1970 UTC).
-# - "CTIME>min.ctime", "CTIME<max.ctime", "CTIME=timestamp" acts as the
-# mtime checks, but for the ctime timestamp (when the files' directory
-# entry was last changed, eg. by chown, chgrp or chmod).
-# - "MD5=md5sum", "SHA1=sha1sum", "RMD160=rmd160sum" trigger a warning
-# if the file checksum using the MD5, SHA1 or RMD160 message digest
-# algorithms do not match the one configured here. Note: The "file"
-# entry in the client-local.cfg file must specify which algorithm to use.
-#
-# "TRACK" causes the size of this file to be tracked in an RRD file, and
-# shown on the graph on the "files" display.
-#
-# Example: Check that the /var/log/messages file is not empty and was updated
-# within the past 10 minutes, and go yellow if either fails:
-# FILE /var/log/messages SIZE>0 MTIME<600 yellow
-#
-# Example: Check the timestamp, size and SHA-1 hash of the /bin/sh program:
-# FILE /bin/sh MTIME=1128514608 SIZE=645140 SHA1=5bd81afecf0eb93849a2fd9df54e8bcbe3fefd72
-#
-# DIR directory [color] [SIZE<maxsize] [SIZE>minsize] [TRACK]
-# NB: The directories you wish to monitor must be listed in a "dir:..."
-# entry in the client-local.cfg file, in order for the client to
-# report any data about them.
-#
-# "directory" is a filename or pattern. The set of directories reported by
-# the client is matched against "directory", and if they match then
-# this DIR entry is processed against the data for that directory.
-#
-# "SIZE<maxsize" and "SIZE>minsize" defines the size limits that the
-# directory must stay within. If it goes outside these limits, a warning
-# will trigger. Note the Xymon uses the raw number reported by the
-# local "du" command on the client. This is commonly KB, but it may be
-# disk blocks which are often 512 bytes.
-#
-# "TRACK" causes the size of this directory to be tracked in an RRD file,
-# and shown on the graph on the "files" display.
-#
-# PORT [LOCAL=addr] [EXLOCAL=addr] [REMOTE=addr] [EXREMOTE=addr] [STATE=state] [EXSTATE=state] [MIN=mincount] [MAX=maxcount] [COLOR=color] [TRACK=id] [TEXT=displaytext]
-# The "netstat" listing sent by the client will be scanned for how many
-# sockets match the criteria listed.
-# "addr" is a (partial) address specification in the format used on
-# the output from netstat. This is typically "10.0.0.1:80" for the IP
-# 10.0.0.1, port 80. Or "*:80" for any local address, port 80.
-# NB: The Xymon clients normally report only the numeric data for
-# IP-adresses and port-numbers, so you must specify the port
-# number (e.g. "80") instead of the service name ("www").
-# "state" causes only the sockets in the specified state to be included;
-# it is usually LISTEN or ESTABLISHED.
-# The socket count is then matched against the min/max settings defined
-# here. If the count is outside the thresholds, the color of the "ports"
-# status changes to "color".
-# To check for a socket that must NOT exist: Set minimum and
-# maximum to 0.
-#
-# "addr" and "state" can be a simple strings, in which case these string must
-# show up in the "netstat" at the appropriate column.
-# "addr" and "state" can also be a Perl-compatiable regular expression, e.g.
-# "LOCAL=%(:80|:443)" can be used to find entries in the netstat local port for
-# both http (port 80) and https (port 443). In that case, portname or state must
-# begin with "%" followed by the reg.expression.
-#
-# The TRACK=id option causes the number of sockets found to be recorded
-# in an RRD file, with "id" as part of the filename. This graph will then
-# appear on the "ports" page as well as on the "trends" page. Note that
-# "id" must be unique among the ports tracked for each host.
-#
-# The TEXT=displaytext option affects how the port appears on the
-# "ports" status page. By default, the port is listed with the
-# local/remote/state rules as identification, but this may be somewhat
-# difficult to understand. You can then use e.g. "TEXT=Secure Shell" to make
-# these ports appear with the name "Secure Shell" instead.
-#
-# Defaults: state="LISTEN", mincount=1, maxcount=-1 (unlimited), color="red".
-# Note: No ports are checked by default.
-#
-# Example: Check that there is someone listening on the https port:
-# PORT "LOCAL=%([.:]443)$" state=LISTEN TEXT=https
-#
-# Example: Check that at least 5 "ssh" connections are established, but
-# not more than 10; warn but do not error; graph the connection count:
-# PORT "LOCAL=%([.:]22)$" state=ESTABLISHED min=5 max=20 color=yellow TRACK=ssh "TEXT=SSH logins"
-#
-# Example: Check that ONLY ports 22, 80 and 443 are open for incoming connections:
-# PORT STATE=LISTEN LOCAL=%0.0.0.0[.:].* EXLOCAL=%[.:](22|80|443)$ MAX=0 "TEXT=Bad listeners"
-#
-#
-# To apply rules to specific hosts, you can use the "HOST=", "EXHOST=", "PAGE="
-# "EXPAGE=", "CLASS=" or "EXCLASS=" qualifiers. (These act just as in the
-# alerts.cfg file).
-#
-# Hostnames are either a comma-separated list of hostnames (from the hosts.cfg file),
-# "*" to indicate "all hosts", or a Perl-compatible regular expression.
-# E.g. "HOST=dns.foo.com,www.foo.com" identifies two specific hosts;
-# "HOST=%www.*.foo.com EXHOST=www-test.foo.com" matches all hosts with a name
-# beginning with "www", except the "www-test" host.
-# "PAGE" and "EXPAGE" match the hostnames against the page on where they are
-# located in the hosts.cfg file, via the hosts' page/subpage/subparent
-# directives. This can be convenient to pick out all hosts on a specific page.
-#
-# Rules can be dependant on time-of-day, using the standard Xymon syntax
-# (the hosts.cfg(5) about the NKTIME parameter). E.g. "TIME=W:0800:2200"
-# applied to a rule will make this rule active only on week-days between
-# 8AM and 10PM.
-#
-# You can also associate a GROUP id with a rule. The group-id is passed to
-# the alert module, which can then use it to control who gets an alert when
-# a failure occurs. E.g. the following associates the "httpd" process check
-# with the "web" group, and the "sshd" check with the "admins" group:
-# PROC httpd ?5 GROUP=web
-# PROC sshd 1 GROUP=admins
-# In the alerts.cfg file, you could then have rules like
-# GROUP=web
-# MAIL webmaster@foo.com
-# GROUP=admins
-# MAIL root@foo.com
-#
-# Qualifiers must be placed after each rule, e.g.
-# LOAD 8.0 12.0 HOST=db.foo.com TIME=*:0800:1600
-#
-# If you have multiple rules that you want to apply the same qualifiers to,
-# you can write the qualifiers *only* on one line, followed by the rules. E.g.
-# HOST=%db.*.foo.com TIME=W:0800:1600
-# LOAD 8.0 12.0
-# DISK /db 98 100
-# PROC mysqld 1
-# will apply the three rules to all of the "db" hosts on week-days between 8AM
-# and 4PM. This can be combined with per-rule qualifiers, in which case the
-# per-rule qualifier overrides the general qualifier; e.g.
-# HOST=%.*.foo.com
-# LOAD 7.0 12.0 HOST=bax.foo.com
-# LOAD 3.0 8.0
-# will result in the load-limits being 7.0/12.0 for the "bax.foo.com" host,
-# and 3.0/8.0 for all other foo.com hosts.
-#
-# The special DEFAULT section can modify the built-in defaults - this must
-# be placed at the end of the file.
-
-
-HOST=_MASTERBACKEND_
- PROC sshd 1
- PROC lighttpd
- PROC xymond
- PROC crond
- PROC mysql
- PROC mythbackend
- PROC msg_daemon.py
- DISK %^/cdrom.* IGNORE
- DISK %^/mnt.* IGNORE
- DISK %^/media.* IGNORE
- DISK * 95 99
- PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http
- PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi
- PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
-
-HOST=_MASTERFRONTEND_
- PROC mythfrontend 1 5 yellow
- PROC sshd 1
- PROC lighttpd
- PROC xymond
- PROC crond
- PROC mysql
- PROC mythbackend
- PROC msg_daemon.py
- DISK %^/cdrom.* IGNORE
- DISK %^/mnt.* IGNORE
- DISK %^/media.* IGNORE
- DISK * 95 99
- PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http
- PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi
- PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
-
-
-
-HOST=_FRONTEND_
- PROC sshd 1
- PROC crond
- PROC mythfrontend 1 5 yellow
- PROC msg_daemon.py
- PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
-
-HOST=_SLAVEBACKEND_
- PROC sshd 1
- PROC crond
- PROC mythbackend
- DISK %^/cdrom.* IGNORE
- DISK %^/mnt.* IGNORE
- DISK %^/media.* IGNORE
- DISK * 95 99
- PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
-
-HOST=_SLAVEFRONTEND_
- PROC sshd 1
- PROC lighttpd
- PROC hobbitd
- PROC crond
- PROC mythbackend
- PROC mythfrontend 1 5 yellow
- PROC msg_daemon.py
- DISK %^/cdrom.* IGNORE
- DISK %^/mnt.* IGNORE
- DISK %^/media.* IGNORE
- DISK * 95 99
- PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
-
-
-HOST=_STANDALONE_
- PROC mythfrontend 1 5 yellow
- PROC sshd 1
- PROC lighttpd
- PROC xymond
- PROC crond
- PROC mysql
- PROC mythbackend
- PROC msg_daemon.py
- DISK %^/cdrom.* IGNORE
- DISK %^/mnt.* IGNORE
- DISK %^/media.* IGNORE
- DISK * 95 99
- PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http
- PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi
- PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
-
-DEFAULT
- # These are the built-in defaults.
- UP 1h
- LOAD 5.0 10.0
- DISK %^/cdrom.* IGNORE
- DISK %^/mnt.* IGNORE
- DISK %^/media.* IGNORE
- DISK * 99 100
- MEMPHYS 100 101
- MEMSWAP 50 80
- MEMACT 90 97
-
diff --git a/abs/core/xymon/analysis.cfg.patch b/abs/core/xymon/analysis.cfg.patch
new file mode 100644
index 0000000..3539ae3
--- /dev/null
+++ b/abs/core/xymon/analysis.cfg.patch
@@ -0,0 +1,112 @@
+--- analysis.cfg.orig 2017-01-18 19:50:46.758666909 +0000
++++ analysis.cfg 2017-01-18 20:01:50.480263760 +0000
+@@ -353,12 +353,108 @@
+ # to all hosts, add a new section with "HOSTS=*"
+
+
++HOST=_MASTERBACKEND_
++ PROC sshd 1
++ PROC lighttpd
++ PROC xymond
++ PROC crond
++ PROC mysql
++ PROC mythbackend
++ PROC msg_daemon.py
++ DISK %^/cdrom.* IGNORE
++ DISK %^/mnt.* IGNORE
++ DISK %^/media.* IGNORE
++ DISK * 95 99
++ INODE %^/cdrom.* IGNORE
++ INODE %^/mnt.* IGNORE
++ INODE %^/media.* IGNORE
++ PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http
++ PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi
++ PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
++
++HOST=_MASTERFRONTEND_
++ PROC mythfrontend 1 5 yellow
++ PROC sshd 1
++ PROC lighttpd
++ PROC xymond
++ PROC crond
++ PROC mysql
++ PROC mythbackend
++ PROC msg_daemon.py
++ DISK %^/cdrom.* IGNORE
++ DISK %^/mnt.* IGNORE
++ DISK %^/media.* IGNORE
++ DISK * 95 99
++ INODE %^/cdrom.* IGNORE
++ INODE %^/mnt.* IGNORE
++ INODE %^/media.* IGNORE
++ PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http
++ PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi
++ PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
++
++HOST=_FRONTEND_
++ PROC sshd 1
++ PROC crond
++ PROC mythfrontend 1 5 yellow
++ PROC msg_daemon.py
++ PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
++
++HOST=_SLAVEBACKEND_
++ PROC sshd 1
++ PROC crond
++ PROC mythbackend
++ DISK %^/cdrom.* IGNORE
++ DISK %^/mnt.* IGNORE
++ DISK %^/media.* IGNORE
++ DISK * 95 99
++ INODE %^/cdrom.* IGNORE
++ INODE %^/mnt.* IGNORE
++ INODE %^/media.* IGNORE
++ PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
++
++HOST=_SLAVEFRONTEND_
++ PROC sshd 1
++ PROC lighttpd
++ PROC hobbitd
++ PROC crond
++ PROC mythbackend
++ PROC mythfrontend 1 5 yellow
++ PROC msg_daemon.py
++ DISK %^/cdrom.* IGNORE
++ DISK %^/mnt.* IGNORE
++ DISK %^/media.* IGNORE
++ DISK * 95 99
++ INODE %^/cdrom.* IGNORE
++ INODE %^/mnt.* IGNORE
++ INODE %^/media.* IGNORE
++ PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
++
++HOST=_STANDALONE_
++ PROC mythfrontend 1 5 yellow
++ PROC sshd 1
++ PROC lighttpd
++ PROC xymond
++ PROC crond
++ PROC mysql
++ PROC mythbackend
++ PROC msg_daemon.py
++ DISK %^/cdrom.* IGNORE
++ DISK %^/mnt.* IGNORE
++ DISK %^/media.* IGNORE
++ DISK * 95 99
++ INODE %^/cdrom.* IGNORE
++ INODE %^/mnt.* IGNORE
++ INODE %^/media.* IGNORE
++ PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http
++ PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi
++ PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh
++
+ DEFAULT
+ # These are the built-in defaults. You should only modify these
+ # lines, not add new ones (no PROC, DISK, LOG ... lines).
+ UP 1h
+ LOAD 5.0 10.0
+- DISK * 90 95
++ DISK * 95 99
+ INODE * 70 90
+ MEMPHYS 100 101
+ MEMSWAP 50 80
diff --git a/abs/core/xymon/xymon-server.gen_light_conf.d b/abs/core/xymon/xymon-server.gen_light_conf.d
new file mode 100644
index 0000000..6b558ce
--- /dev/null
+++ b/abs/core/xymon/xymon-server.gen_light_conf.d
@@ -0,0 +1,2 @@
+include "/etc/lighttpd/xymon-server.include"
+
diff --git a/abs/core/xymon/xymon-server.include b/abs/core/xymon/xymon-server.include
new file mode 100644
index 0000000..b3e15e0
--- /dev/null
+++ b/abs/core/xymon/xymon-server.include
@@ -0,0 +1,4 @@
+$HTTP["url"] =~ "^/xymon/hobbit-" {
+ cgi.assign = ( "" => "" )
+ }
+
diff --git a/abs/core/xymon/xymon-server.install b/abs/core/xymon/xymon-server.install
new file mode 100644
index 0000000..0eec8f1
--- /dev/null
+++ b/abs/core/xymon/xymon-server.install
@@ -0,0 +1,85 @@
+post_install() {
+ . /etc/systemconfig
+ if [ ! -f /home/xymon/server/ext/ignoreclient.py ]
+ then
+ echo "#this is a list of hosts to ignore" > /home/xymon/server/ext/ignoreclient.py
+ echo ignorehosts=\"\'ignoreme1\',\'ignoreme2\'\" >> /home/xymon/server/ext/ignoreclient.py
+ fi
+
+ if [ ! -f /data/srv/httpd/htdocs/failed_func_hosts ]
+ then
+ touch /data/srv/httpd/htdocs/failed_func_hosts
+ fi
+ chown nobody:nobody /data/srv/httpd/htdocs/failed_func_hosts
+ chmod 777 /data/srv/httpd/htdocs/failed_func_hosts
+
+ sed -i -e "s/localhost/$hostname/" /home/xymon/server/etc/hosts.cfg
+ sed -i -e "s/\# bbd/\# bbd func/" /home/xymon/server/etc/hosts.cfg
+ sed -i -e "s/localhost/$hostname/" /home/xymon/server/etc/xymonserver.cfg
+
+ #fix permissions
+ chown -R nobody:nobody /home/xymon
+ chown -R nobody:nobody /data/srv/httpd/htdocs/xymon
+
+ chown -R nobody:http /data/srv/httpd/htdocs/xymon/snap
+ chown -R nobody:http /data/srv/httpd/htdocs/xymon/rep
+ chmod -R 775 /data/srv/httpd/htdocs/xymon/rep
+ chmod -R 775 /data/srv/httpd/htdocs/xymon/snap
+
+ chmod g+s /data/srv/httpd/htdocs/xymon/notes/
+ setfacl -d -m g::rw /data/srv/httpd/htdocs/xymon/notes/
+ setfacl -d -m u:nobody:rwx /data/srv/httpd/htdocs/xymon/notes/
+
+ file="/data/srv/httpd/htdocs/xymon/gifs/network.png"
+ if [ -f $file ]
+ then
+ setfacl -m u:nobody:rw $file
+ fi
+
+ setfacl -d -m u:nobody:rwx /data/srv/httpd/htdocs/xymon/gifs/
+
+ chmod g+s /home/xymon/etc
+ setfacl -d -m g::rw /home/xymon/etc/
+ setfacl -d -m u::rw /home/xymon/etc/
+ setfacl -d -m u:nobody:rwx /home/xymon/etc/
+
+ file="/home/xymon/etc/mythdot"
+ if [ -f $file ]
+ then
+ setfacl -m u:nobody:rw $file
+ fi
+
+ chown -R nobody /var/log/hobbit
+
+ chown root /home/xymon/server/bin/xymonping
+ chmod +s /home/xymon/server/bin/xymonping
+
+ #remove old mtc log files
+ rm -f /var/log/hobbit/mtc
+ rm -f /var/log/hobbit/mtc.1*
+
+ echo "Generate lighttpd include..."
+ gen_light_include.py
+ echo "Forcing a re-read of lighttpd's configuration file..."
+ sv hup /service/lighttpd
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ rm -f /data/srv/httpd/htdocs/xymon/index.html
+ echo "Generate lighttpd include..."
+ gen_light_include.py
+ echo "Forcing a re-read of lighttpd's configuration file..."
+ sv hup /service/lighttpd
+}
+
+pre_remove() {
+ /bin/true
+}
+op=$1
+shift
+$op $*
+# vim: ft=sh ts=2
diff --git a/abs/core/xymon/xymon-server.rules b/abs/core/xymon/xymon-server.rules
index e4c515b..40b81af 100644
--- a/abs/core/xymon/xymon-server.rules
+++ b/abs/core/xymon/xymon-server.rules
@@ -1,7 +1,8 @@
#These rules are used by xymon-server
nobody ALL = NOPASSWD:/usr/bin/certmaster-ca
nobody ALL = NOPASSWD:/usr/bin/smartctl
+nobody ALL = NOPASSWD:/usr/bin/fping
http ALL = NOPASSWD:/usr/LH/bin/lh_system_backup_job
http ALL = NOPASSWD:/usr/LH/bin/lh_system_restore_job
-http ALL = NOPASSWD:/sbin/sv
+http ALL = NOPASSWD:/usr/bin/sv
diff --git a/abs/core/xymon/xymon.install b/abs/core/xymon/xymon.install
deleted file mode 100755
index 4461df4..0000000
--- a/abs/core/xymon/xymon.install
+++ /dev/null
@@ -1,81 +0,0 @@
-post_install() {
- . /etc/systemconfig
- if [ ! -f /home/xymon/server/ext/ignoreclient.py ]
- then
- echo "#this is a list of hosts to ignore" > /home/xymon/server/ext/ignoreclient.py
- echo ignorehosts=\"\'ignoreme1\',\'ignoreme2\'\" >> /home/xymon/server/ext/ignoreclient.py
- fi
-
- if [ ! -f /data/srv/httpd/htdocs/failed_func_hosts ]
- then
- touch /data/srv/httpd/htdocs/failed_func_hosts
- fi
- chown nobody:nobody /data/srv/httpd/htdocs/failed_func_hosts
- chmod 777 /data/srv/httpd/htdocs/failed_func_hosts
-
-
- sed -i -e "s/localhost/$hostname/" /home/xymon/server/etc/hosts.cfg
- sed -i -e "s/\# bbd/\# bbd func/" /home/xymon/server/etc/hosts.cfg
- sed -i -e "s/localhost/$hostname/" /home/xymon/server/etc/xymonserver.cfg
-
- #fix permissions
- chown -R nobody:nobody /home/xymon
- chown -R nobody:nobody /data/srv/httpd/htdocs/xymon
-
- chown -R nobody:http /data/srv/httpd/htdocs/xymon/snap
- chown -R nobody:http /data/srv/httpd/htdocs/xymon/rep
- chmod -R 775 /data/srv/httpd/htdocs/xymon/rep
- chmod -R 775 /data/srv/httpd/htdocs/xymon/snap
-
- chmod g+s /data/srv/httpd/htdocs/xymon/notes/
- setfacl -d -m g::rw /data/srv/httpd/htdocs/xymon/notes/
- setfacl -d -m u:nobody:rwx /data/srv/httpd/htdocs/xymon/notes/
-
- file="/data/srv/httpd/htdocs/xymon/gifs/network.png"
- if [ -f $file ]
- then
- setfacl -m u:nobody:rw $file
- fi
-
-
- setfacl -d -m u:nobody:rwx /data/srv/httpd/htdocs/xymon/gifs/
-
- chmod g+s /home/xymon/etc
- setfacl -d -m g::rw /home/xymon/etc/
- setfacl -d -m u::rw /home/xymon/etc/
- setfacl -d -m u:nobody:rwx /home/xymon/etc/
-
- file="/home/xymon/etc/mythdot"
- if [ -f $file ]
- then
- setfacl -m u:nobody:rw $file
- fi
-
-
- chown -R nobody /var/log/hobbit
-
- chown root /home/xymon/server/bin/xymonping
- chmod +s /home/xymon/server/bin/xymonping
-
- #remove old mtc log files
- rm -f /var/log/hobbit/mtc
- rm -f /var/log/hobbit/mtc.1*
-
-
-}
-
-post_upgrade() {
- post_install $1
-}
-
-post_remove() {
- rm -f /data/srv/httpd/htdocs/xymon/index.html
-}
-
-pre_remove() {
- /bin/true
-}
-op=$1
-shift
-$op $*
-# vim: ft=sh ts=2
diff --git a/abs/core/xymon/xymonserver.cfg.diff b/abs/core/xymon/xymonserver.cfg.diff
index 48631dc..f017432 100755
--- a/abs/core/xymon/xymonserver.cfg.diff
+++ b/abs/core/xymon/xymonserver.cfg.diff
@@ -1,6 +1,6 @@
---- xymonserver.cfg.orig 2015-03-04 21:28:58.618598840 +0000
-+++ xymonserver.cfg 2015-03-04 21:31:55.352569106 +0000
-@@ -145,6 +145,12 @@
+--- xymonserver.cfg.orig 2017-01-19 16:57:57.745304289 +0000
++++ xymonserver.cfg 2017-01-19 17:02:08.323770694 +0000
+@@ -150,6 +150,12 @@
RRDHEIGHT="120"
RRDWIDTH="576" # The RRD's contain 576 data points, so this is a good value
@@ -13,19 +13,19 @@
# TEST2RRD defines the status- and data-messages you want to collect RRD data
# about. You will normally not need to modify this, unless you have added a
# script to pick up RRD data from custom tests (the xymond_rrd --extra-script
-@@ -156,11 +162,13 @@
+@@ -169,11 +175,13 @@
#
- # This is also used by the svcstatus.cgi script to determine if the detailed
+ # TEST2RRD and GRAPHS_* are used by the svcstatus.cgi script to determine if the detailed
# status view of a test should include a graph.
--TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
-+#TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
-+TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond,storage=ncv,memmbe=ncv,memmfe=ncv,gputemp=ncv,hddtemp=ncv,smart"
+-TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,deltalines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
++#TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,deltalines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
++TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,deltalines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond,storage=ncv,memmbe=ncv,memmfe=ncv,gputemp=ncv,hddtemp=ncv,smart"
# This defines which RRD files to include on the "trends" column webpage,
# and the order in which they appear.
--GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
-+#GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
-+GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond,storage,memmbe,memmfe,gputemp,hddtemp"
+-GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,deltalines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
++#GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,deltalines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
++GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,deltalines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond,storage,memmbe,memmfe,gputemp,hddtemp"
# These two settings can be used to restrict what filesystems are being
# tracked (i.e. have their utilisation graphed) by Xymon.
diff --git a/abs/extra/autofs/PKGBUILD b/abs/extra/autofs/PKGBUILD
index 0618dae..ce58b2e 100644
--- a/abs/extra/autofs/PKGBUILD
+++ b/abs/extra/autofs/PKGBUILD
@@ -1,28 +1,34 @@
-# $Id: PKGBUILD 103218 2013-12-30 14:30:57Z lfleischer $
-# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Dale Blount <dale@archlinux.org>
# Contributor: Manolis Tzanidakis
pkgname=autofs
-pkgver=5.0.8
+pkgver=5.1.2
pkgrel=1
pkgdesc='A kernel-based automounter for Linux.'
arch=('i686' 'x86_64')
-url='http://freshmeat.net/projects/autofs'
+url='https://www.kernel.org/pub/linux/daemons/autofs/'
license=('GPL2')
depends=('libxml2')
makedepends=('libldap' 'krb5' 'kmod')
optdepends=('krb5: for LDAP support')
-backup=('etc/default/autofs'
- 'etc/autofs/auto.master'
- 'etc/autofs/auto.misc')
+backup=('etc/autofs/auto.master'
+ 'etc/autofs/auto.misc'
+ 'etc/autofs/auto.net'
+ 'etc/autofs/auto.smb'
+ 'etc/autofs/autofs.conf'
+ 'etc/autofs/autofs_ldap_auth.conf'
+ 'etc/default/autofs')
options=(!makeflags)
-source=("http://www.kernel.org/pub/linux/daemons/${pkgname}/v5/${pkgname}-${pkgver}.tar.xz")
-sha256sums=('32c41fb4e3439f18400468e84dc82fbbd4b14156bef6b9a7f09196ecd9299d52')
+source=("https://www.kernel.org/pub/linux/daemons/${pkgname}/v5/${pkgname}-${pkgver}.tar."{xz,sign})
+sha256sums=('88b7de39088aead983e02072a7b753d5ee52ce419c8913f7a3d4ff5521313f0c'
+ 'SKIP')
+validpgpkeys=('CD0A6E3CBB6768800B0736A8E7677380F54FD8A9') # Ian Kent
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
+
sed -i -e 's|/etc/auto.misc|/etc/autofs/auto.misc|' \
-e 's|/etc/auto.master.d|/etc/autofs/auto.master.d|' samples/auto.master
}
@@ -30,9 +36,8 @@ prepare() {
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --sysconfdir=/etc/autofs --sbindir=/usr/bin \
- --with-mapdir=/etc/autofs --without-hesiod \
- --enable-ignore-busy --with-systemd
+ ./configure --prefix=/usr --sysconfdir=/etc/autofs --sbindir=/usr/bin --with-mapdir=/etc/autofs \
+ --without-hesiod --enable-ignore-busy --with-systemd
make
}
@@ -43,5 +48,3 @@ package() {
rm -r "$pkgdir/run"
install -dm755 "$pkgdir/etc/autofs/auto.master.d"
}
-
-# vim:set ts=2 sw=2 et:
diff --git a/abs/extra/autofs/__changelog b/abs/extra/autofs/__changelog
new file mode 100644
index 0000000..e37323f
--- /dev/null
+++ b/abs/extra/autofs/__changelog
@@ -0,0 +1 @@
+PKGBUILD: remove sssd dep and opt dep
diff --git a/abs/extra/google-chrome/PKGBUILD b/abs/extra/google-chrome/PKGBUILD
index 959f80d..d3e765f 100644
--- a/abs/extra/google-chrome/PKGBUILD
+++ b/abs/extra/google-chrome/PKGBUILD
@@ -5,7 +5,7 @@
# or use: $ curl -s https://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/other.xml.gz | gzip -df | awk -F\" '/pkgid/{ sub(".*-","",$4); print $4": "$10 }'
pkgname=google-chrome
-pkgver=54.0.2840.90
+pkgver=55.0.2883.75
pkgrel=1
pkgdesc="An attempt at creating a safer, faster, and more stable browser (Stable Channel)"
arch=('x86_64')
@@ -49,13 +49,13 @@ package() {
msg2 "Fixing permissions of documentation folder..."
chmod 755 "$pkgdir"/usr/share/doc/google-chrome-$_channel/
- msg2 "Removing unnecessities (e.g. Debian Cron job)..."
+ msg2 "Removing Debian Cron job and duplicate product logos..."
rm -r "$pkgdir"/etc/cron.daily/ "$pkgdir"/opt/google/chrome/cron/
rm "$pkgdir"/opt/google/chrome/product_logo_*.png
msg2 "Rename google-chrome-stable to google-chrome..."
mv "$pkgdir"/usr/bin/google-chrome-stable "$pkgdir"/usr/bin/google-chrome
}
-md5sums=('f65863914e5f83d5f88094af93c85021'
+md5sums=('45b8ef99605e140ea46198175f8dd512'
'da54da9383ddffa44c5db45513239da2'
'99fa93d5e7fb5d622cef0f9621f3ffa3')
diff --git a/abs/extra/libglvnd/PKGBUILD b/abs/extra/libglvnd/PKGBUILD
index e9753c8..12011ec 100644
--- a/abs/extra/libglvnd/PKGBUILD
+++ b/abs/extra/libglvnd/PKGBUILD
@@ -2,18 +2,31 @@
# Maintainer: Felix Yan <felixonmars@archlinux.org>
pkgname=libglvnd
-pkgver=0.1.1
+pkgver=0.1.1.20161028
+_commit=470fc824a38521a52707c6c0f59d827aa5e0f45a
pkgrel=1
pkgdesc="The GL Vendor-Neutral Dispatch library"
arch=('i686' 'x86_64')
url="https://github.com/NVIDIA/libglvnd"
license=('custom:BSD-like')
depends=('libxext')
-makedepends=('xorg-server-devel' 'git' 'python2')
-source=("git+https://github.com/NVIDIA/libglvnd.git#tag=v$pkgver"
- LICENSE)
+makedepends=('libx11' 'glproto' 'git' 'python2')
+#source=("git+https://github.com/NVIDIA/libglvnd.git#tag=v$pkgver"
+source=("git+https://github.com/NVIDIA/libglvnd.git#commit=$_commit"
+ LICENSE
+ https://patch-diff.githubusercontent.com/raw/NVIDIA/libglvnd/pull/110.patch
+ https://patch-diff.githubusercontent.com/raw/NVIDIA/libglvnd/pull/97.patch)
sha1sums=('SKIP'
- 'c88e07f333fcf8dcdbef370b85372b4d88ad8a66')
+ 'c88e07f333fcf8dcdbef370b85372b4d88ad8a66'
+ '048e89dbdd0a6ca33441a6273208e4126d9828fc'
+ '48fac1b1248f1a6766ebae66432269c5147b5815')
+
+prepare() {
+ cd $pkgname
+ # FS#51527
+ patch -p1 -i ../97.patch
+ patch -p1 -i ../110.patch
+}
build() {
cd $pkgname
@@ -29,7 +42,7 @@ package() {
# For compatibility with older nvidia drivers for bumblebee
# Symlinks to /usr/lib will be in nvidia-libgl
mkdir "$pkgdir/usr/lib/nvidia"
- for _lib in libGL.so libGLESv1_CM.so libGLESv2.so; do
+ for _lib in libGL.so libGLESv1_CM.so libGLESv2.so libEGL.so; do
mv "$pkgdir"/usr/lib/$_lib* "$pkgdir"/usr/lib/nvidia/
done
diff --git a/abs/extra/libglvnd/__changelog b/abs/extra/libglvnd/__changelog
new file mode 100644
index 0000000..99dab7b
--- /dev/null
+++ b/abs/extra/libglvnd/__changelog
@@ -0,0 +1 @@
+PKGBUILD: change python dep to python2
diff --git a/abs/extra/nvidia-settings/PKGBUILD b/abs/extra/nvidia-settings/PKGBUILD
index 28ee5c4..798993e 100644
--- a/abs/extra/nvidia-settings/PKGBUILD
+++ b/abs/extra/nvidia-settings/PKGBUILD
@@ -3,7 +3,7 @@
pkgbase=nvidia-settings
pkgname=('nvidia-settings' 'libxnvctrl')
-pkgver=370.28
+pkgver=375.26
pkgrel=1
pkgdesc="Tool for configuring the NVIDIA graphics driver"
arch=('i686' 'x86_64')
@@ -11,20 +11,20 @@ url="https://github.com/NVIDIA/nvidia-settings"
license=('GPL2')
makedepends=('git' 'inetutils' 'gtk2' 'jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-utils' 'libxext')
options=('staticlibs')
-source=("git+https://github.com/NVIDIA/nvidia-settings#tag=$pkgver"
+source=(ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${pkgver}.tar.bz2
libxnvctrl_so.patch)
-sha1sums=('SKIP'
- '16619a01e92e565c79ad344be87ad11244ac1762')
+sha512sums=('e575670ccf7e3ef0089ee6a969f107f6f43d742a60cc325c6d95efc4773f34a6e013fd2c4e38b5f90054e24146a05c2300c0cf6a9b7013b556bacc1402956f49'
+ 'ed4b609de9691fbb4421eea340399331e7a5c5f47b9de8eade40ca8f78ac39a6f76cc106928cd0d79825f248a3a0eb563a10f68b7b6991cf3e28db0dde2a0f8d')
prepare() {
export PREFIX=/usr
export NV_USE_BUNDLED_LIBJANSSON=0
- cd ${pkgbase}
+ cd ${pkgbase}-${pkgver}
patch -p1 < "${srcdir}/libxnvctrl_so.patch"
}
build() {
- cd ${pkgbase}
+ cd ${pkgbase}-${pkgver}
make
make -C src/libXNVCtrl
}
@@ -32,7 +32,7 @@ build() {
package_nvidia-settings() {
depends=('jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-utils' 'libxnvctrl')
- cd ${pkgbase}
+ cd ${pkgbase}-${pkgver}
make DESTDIR="${pkgdir}" install
install -D -m644 doc/nvidia-settings.desktop "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
@@ -46,7 +46,7 @@ package_libxnvctrl() {
depends=('libxext')
pkgdesc='NVIDIA NV-CONTROL X extension'
- cd ${pkgbase}
+ cd ${pkgbase}-${pkgver}
install -Dm 644 doc/{NV-CONTROL-API.txt,FRAMELOCK.txt} -t "${pkgdir}/usr/share/doc/${pkgname}"
install -Dm 644 samples/{Makefile,README,*.c,*.h,*.mk} -t "${pkgdir}/usr/share/doc/${pkgname}/samples"
diff --git a/abs/extra/openpht/PKGBUILD b/abs/extra/openpht/PKGBUILD
index 6ccd7e9..06afae1 100644
--- a/abs/extra/openpht/PKGBUILD
+++ b/abs/extra/openpht/PKGBUILD
@@ -3,9 +3,9 @@
# Contributor: Daniel Wallace <daniel.wallace@gatech.edu>
pkgname=openpht
-pkgver=1.6.2.123
-_pkghash=e23a7eef
-pkgrel=5
+pkgver=1.7.1.137
+_pkghash=b604995c
+pkgrel=2
pkgdesc='OpenPHT is a community driven fork of Plex Home Theater'
arch=('i686' 'x86_64')
url='https://github.com/RasPlex/OpenPHT/'
@@ -21,15 +21,15 @@ depends=('alsa-lib' 'avahi' 'boost-libs' 'curl' 'expat' 'ffmpeg2.8' 'freetype2'
'libxext' 'libxrandr' 'lzo' 'pcre' 'python2' 'sdl' 'sdl_image'
'sdl_mixer' 'sqlite' 'smbclient' 'taglib' 'tinyxml' 'yajl' 'zlib' 'rtmpdump')
makedepends=('boost' 'cmake' 'doxygen' 'git' 'java-environment' 'shairplay'
- 'libcec' 'libplist' 'nasm' 'swig' 'unzip' 'zip')
+ 'libcec' 'libplist' 'nasm' 'swig' 'unzip' 'zip' 'gcc-libs' 'glibc' 'llvm-libs')
optdepends=('libplist: AirPlay support'
'libcec: Pulse-Eight USB-CEC adapter support'
'shairplay: Shairplay Support')
source=("https://github.com/RasPlex/OpenPHT/archive/v${pkgver}-${_pkghash}.tar.gz"
- 'plexhometheater.sh'
'plex_lib.conf'
'fribidi.patch'
'plexhometheater.desktop')
+
prepare() {
cd OpenPHT-${pkgver}-${_pkghash}
patch -Np1 <../fribidi.patch
@@ -57,11 +57,7 @@ package() {
cd OpenPHT-${pkgver}-${_pkghash}/build
make DESTDIR="${pkgdir}" install
- install -dm 755 "${pkgdir}"/usr/{lib/plexhometheater,share/{applications,pixmaps}}
- mv "${pkgdir}"/usr/bin/{system,xbmc-xrandr} "${pkgdir}"/usr/lib/plexhometheater/
- mv "${pkgdir}"/usr/share/XBMC "${pkgdir}"/usr/share/plexhometheater
- rm -rf "${pkgdir}"/usr/bin/*.so
- install -Dm 755 "${srcdir}"/plexhometheater.sh "${pkgdir}"/usr/LH/bin/plexhometheater.sh
+ install -dm 755 "${pkgdir}"/usr/{share/{applications,pixmaps}}
install -m 644 "${srcdir}"/plexhometheater.desktop "${pkgdir}"/usr/share/applications/
install -m 644 ../plex/Resources/plex-icon-256.png "${pkgdir}"/usr/share/pixmaps/plexhometheater.png
@@ -69,8 +65,7 @@ package() {
# add in plex_lib.conf
install -D -m0744 ${srcdir}/plex_lib.conf ${pkgdir}/etc/gen_lib_xml.d/plex_lib.conf
}
-md5sums=('075d697793b32d34c9ac57b94ae14821'
- 'ad57396d98692dbe8c8d6f2fab707a94'
- 'c1eedd9f89ee727230833db9ef1e5d29'
+md5sums=('9a7a2205a30f1002b2600cf8e240fb98'
+ 'b9524fe29d0cc65087ba447d1b892da2'
'a5980579c1b6341a6d06e80d9da2a924'
'e530e2b4d8333863ba1c87862c291ba1')
diff --git a/abs/extra/openpht/__changelog b/abs/extra/openpht/__changelog
index 6daae7f..140f8a0 100644
--- a/abs/extra/openpht/__changelog
+++ b/abs/extra/openpht/__changelog
@@ -2,5 +2,4 @@ copied plex-home-theater to openpht
PKGBUILD - Remove opt dep pulseaudio
PKGBUILD - Add dep ffmpeg2.8
PKGBUILD - Added plex_lib.conf, this file goes in /etc/gen_lib_xml.d/
-PKGBUILD - Install plexhometheater.sh to /usr/LH/bin
openpht.install - add gen_lib_xml.py to post_install and post_remove and post_update
diff --git a/abs/extra/openpht/plex_lib.conf b/abs/extra/openpht/plex_lib.conf
index 1aa78f3..e85d31d 100644
--- a/abs/extra/openpht/plex_lib.conf
+++ b/abs/extra/openpht/plex_lib.conf
@@ -3,7 +3,7 @@
<type>MENU_PLEX</type>
<text>Launch Plex</text>
<description>Open Plex Home Theater</description>
- <action>EXEC /usr/LH/bin/plexhometheater.sh</action>
+ <action>EXEC /usr/bin/openpht</action>
</button>
<!--#PLEX-->
diff --git a/abs/extra/openpht/plexhometheater.sh b/abs/extra/openpht/plexhometheater.sh
deleted file mode 100755
index 16da77d..0000000
--- a/abs/extra/openpht/plexhometheater.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-#Stop XScreensaver
-stop_xss.sh &
-
-#Launch plex
-export XBMC_BIN_HOME='/usr/lib/plexhometheater'
-export XBMC_HOME='/usr/share/plexhometheater'
-exec plexhometheater
-
-#Start Xscreensaver again
-killall stop_xss.sh
diff --git a/abs/extra/plex-media-server/PKGBUILD b/abs/extra/plex-media-server/PKGBUILD
index e85c821..4acf9a3 100644
--- a/abs/extra/plex-media-server/PKGBUILD
+++ b/abs/extra/plex-media-server/PKGBUILD
@@ -7,8 +7,8 @@
# Contributor: Praekon <praekon@googlemail.com>
pkgname=plex-media-server
-pkgver=1.2.7.2987
-_pkgsum=1bef33a
+pkgver=1.3.3.3148
+_pkgsum=b38628e
pkgrel=1
pkgdesc='Plex Media Server'
arch=('armv7h' 'i686' 'x86_64')
@@ -57,6 +57,6 @@ md5sums=('dfd6778f5c0d3d64c2c3a71dca02b7cc'
'97241861f2c0b7c82d1945a6c5de8e35'
'506ec15815bba749a743780edd2323c8'
'bd703bc750b989a27edd590eb8c8e9d7')
-md5sums_armv7h=('cca403ab622a87240e4060473acd0d6a')
-md5sums_i686=('18919ac4bac1f8e2d413c24e0fb4cb87')
-md5sums_x86_64=('703274f93a3dcac3cbbf1ab9d70a5af6')
+md5sums_armv7h=('453a4b479a21be7fe2e867781872e2f4')
+md5sums_i686=('199d68eb86dbd4d031615f10348261b6')
+md5sums_x86_64=('6a3190505b96b7b167aefb9a99e388ee')