From 67dda43da082345f0419361237b271da3bd519a9 Mon Sep 17 00:00:00 2001 From: Cecil Date: Wed, 14 Sep 2011 22:06:31 -0700 Subject: mythtv:latest -fixes --- abs/core/mythtv/stable-0.24/mythtv/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD index ab70bcd..2f9970a 100755 --- a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD +++ b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD @@ -6,7 +6,7 @@ pkgname=mythtv pkgver=0.24 -pkgrel=21 +pkgrel=22 pkgdesc="A Homebrew PVR project" arch=('i686' 'x86_64') url="http://www.mythtv.org/" -- cgit v0.12 From ff64e6d438831823f1c99e71e3fb5e369b86926f Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Fri, 16 Sep 2011 23:11:08 -0500 Subject: fluxbox: update keys for mythtv-setup to run as user --- abs/core/fluxbox/PKGBUILD | 4 ++-- abs/core/fluxbox/keys | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/abs/core/fluxbox/PKGBUILD b/abs/core/fluxbox/PKGBUILD index 4ca4e8a..6caea3f 100644 --- a/abs/core/fluxbox/PKGBUILD +++ b/abs/core/fluxbox/PKGBUILD @@ -3,7 +3,7 @@ pkgname=fluxbox pkgver=1.3.1 -pkgrel=2 +pkgrel=3 pkgdesc="A lightweight and highly-configurable window manager" arch=('i686' 'x86_64') url="http://www.fluxbox.org" @@ -35,5 +35,5 @@ package() { } md5sums=('0eaa940a69c0a876a520bb85d67b8bec' 'eeae9c88a2526ac0bd8afcd9ce97f9ed' - 'd201812779a3e66c81b9ca753af39396' + 'f46ddb76de4766a7a31a98d0205c330f' '7d2fff845c9f951e925b9adcd1053242') diff --git a/abs/core/fluxbox/keys b/abs/core/fluxbox/keys index 3a4dfa7..a2bfd93 100644 --- a/abs/core/fluxbox/keys +++ b/abs/core/fluxbox/keys @@ -29,7 +29,7 @@ Mod1 F10 :Workspace 10 Mod1 F11 :Workspace 11 Mod1 F12 :Workspace 12 Mod1 x :ExecCommand tvterm.sh -Mod1 s :ExecCommand sudo taskset -c 0 mythtv-setup +Mod1 s :ExecCommand mythtv-setup #Mod1 m :ExecCommand mythfrontend --logfile /var/log/mythtv/mythfrontend.log Mod1 m :ExecCommand /usr/LH/bin/mythfrontend-start Mod1 1 :ExecCommand sudo sv start mythbackend -- cgit v0.12 From ebef2b2f6247ea0d1cae2202f466bbdce3226f33 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Sun, 18 Sep 2011 00:22:27 -0500 Subject: hauppauge-hvr-firmware: removed. replaced by linux-firmware and dvb-firmware --- abs/core/hauppauge-hvr-firmware/PKGBUILD | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100755 abs/core/hauppauge-hvr-firmware/PKGBUILD diff --git a/abs/core/hauppauge-hvr-firmware/PKGBUILD b/abs/core/hauppauge-hvr-firmware/PKGBUILD deleted file mode 100755 index f9a488d..0000000 --- a/abs/core/hauppauge-hvr-firmware/PKGBUILD +++ /dev/null @@ -1,24 +0,0 @@ -pkgname=hauppauge-hvr-firmware -pkgver=1 -pkgrel=3 -pkgdesc="firmware needed for the hvr cards" -arch=(i686 x86_64) -url="" -makedepends='unzip' -source=("http://steventoth.net/linux/hvr1800/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip" - "http://steventoth.net/linux/hvr1400/xc3028L-v36.fw") -md5sums=('7fe395c1a398f079d98e416ee7be3777' - '5260975b76ade7a1d37270129b6d6372') - -build() { - cd $startdir || return 1 - mkdir -p $startdir/pkg/lib/firmware - unzip -jo HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85enc.rom - unzip -jo HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85mlC.rom - cd $startdir/src/Driver85 - mv hcw85enc.rom v4l-cx23885-enc.fw - mv hcw85mlC.rom v4l-cx23885-avcore-01.fw - cp -rp *.fw $startdir/pkg/lib/firmware - cd $startdir/src/ - cp *.fw $startdir/pkg/lib/firmware -} -- cgit v0.12 From 65ee8aef7895a0b077b92ec5f37913051223b434 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Sun, 18 Sep 2011 00:37:50 -0500 Subject: alsa-firmware: Bump to latest --- abs/extra/alsa-firmware/PKGBUILD | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/abs/extra/alsa-firmware/PKGBUILD b/abs/extra/alsa-firmware/PKGBUILD index d9c890b..af2c544 100644 --- a/abs/extra/alsa-firmware/PKGBUILD +++ b/abs/extra/alsa-firmware/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 79046 2010-04-30 05:38:39Z tpowa $ +# $Id$ # Contributor: Jochen Immendörfer # Package Maintainer: Tobias Powalowski pkgname=alsa-firmware -pkgver=1.0.23 +pkgver=1.0.24.1 pkgrel=1 pkgdesc="ALSA firmware package" arch=('i686' 'x86_64') @@ -14,20 +14,24 @@ options=(!strip) build() { cd $srcdir/$pkgname-$pkgver ./configure --prefix=/usr - make || return 1 - make DESTDIR=$pkgdir install || return 1 + make +} + +package() { + cd $srcdir/$pkgname-$pkgver + make DESTDIR=$pkgdir install # remove files which conflicts with kernel26-firmware - rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_kernel.fw || return 1 - rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_minisrc.fw || return 1 - rm -rf ${pkgdir}/lib/firmware/korg/k1212.dsp || return 1 - rm -rf ${pkgdir}/lib/firmware/sb16/alaw_main.csp || return 1 - rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_capture.csp || return 1 - rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_init.csp || return 1 - rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_playback.csp || return 1 - rm -rf ${pkgdir}/lib/firmware/sb16/mulaw_main.csp || return 1 - rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_ctrl.fw || return 1 - rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_dsp.fw || return 1 - rm -rf ${pkgdir}/lib/firmware/yamaha/ds1e_ctrl.fw || return 1 - rm -rf ${pkgdir}/lib/firmware/yamaha/yss225_registers.bin || return 1 + rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_kernel.fw + rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_minisrc.fw + rm -rf ${pkgdir}/lib/firmware/korg/k1212.dsp + rm -rf ${pkgdir}/lib/firmware/sb16/alaw_main.csp + rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_capture.csp + rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_init.csp + rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_playback.csp + rm -rf ${pkgdir}/lib/firmware/sb16/mulaw_main.csp + rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_ctrl.fw + rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_dsp.fw + rm -rf ${pkgdir}/lib/firmware/yamaha/ds1e_ctrl.fw + rm -rf ${pkgdir}/lib/firmware/yamaha/yss225_registers.bin } -md5sums=('e3f755331d6d485f6fd697249b90f877') +md5sums=('d37434dfcfececd8581d2f0bbe2fcf1b') -- cgit v0.12 From 0d123a378cf237a185c7eee7301dd01542f921a3 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Sun, 18 Sep 2011 13:16:55 -0500 Subject: dvb-firmware: add firmware for Hauppauge HVR-22xx --- abs/core/dvb-firmware/PKGBUILD | 4 ++-- abs/core/dvb-firmware/dvb-usb-af9015.fw | Bin 15913 -> 0 bytes 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 abs/core/dvb-firmware/dvb-usb-af9015.fw diff --git a/abs/core/dvb-firmware/PKGBUILD b/abs/core/dvb-firmware/PKGBUILD index 614060c..2150e6f 100644 --- a/abs/core/dvb-firmware/PKGBUILD +++ b/abs/core/dvb-firmware/PKGBUILD @@ -3,7 +3,7 @@ pkgname=dvb-firmware pkgver=1 -pkgrel=11 +pkgrel=12 pkgdesc="Firmware for DVB cards" arch=('i586' 'i686' 'x86_64') url="http://linuxtv.org/" @@ -14,4 +14,4 @@ build() { mkdir -p $startdir/pkg/lib/firmware cp -a dvb-fw/* $startdir/pkg/lib/firmware } -md5sums=('25c77369112a6f682d87c3f7dcbe028c') +md5sums=('de87b810a42016a0c81cfc0abaecb19e') diff --git a/abs/core/dvb-firmware/dvb-usb-af9015.fw b/abs/core/dvb-firmware/dvb-usb-af9015.fw deleted file mode 100644 index 0014181..0000000 Binary files a/abs/core/dvb-firmware/dvb-usb-af9015.fw and /dev/null differ -- cgit v0.12 From 0ee2824a5f1c1cfe961310f5cd645716bbb43861 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Sun, 18 Sep 2011 14:05:44 -0500 Subject: wget: Bump to latest --- abs/core/wget/PKGBUILD | 36 ++++++++++++++++++++++--------- abs/core/wget/wget-1.12-2-i686.pkg.tar.gz | 1 - abs/core/wget/wget.install | 2 +- 3 files changed, 27 insertions(+), 12 deletions(-) delete mode 120000 abs/core/wget/wget-1.12-2-i686.pkg.tar.gz diff --git a/abs/core/wget/PKGBUILD b/abs/core/wget/PKGBUILD index eb13f03..44a6477 100644 --- a/abs/core/wget/PKGBUILD +++ b/abs/core/wget/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 75183 2010-04-01 01:40:17Z pierre $ +# $Id$ # Maintainer: Allan McRae # Contributor: Judd Vinet pkgname=wget -pkgver=1.12 -pkgrel=3 +pkgver=1.13.4 +pkgrel=1 pkgdesc="A network utility to retrieve files from the Web" arch=('i686' 'x86_64') url="http://www.gnu.org/software/wget/wget.html" @@ -14,16 +14,32 @@ depends=('glibc' 'openssl') optdepends=('ca-certificates: HTTPS downloads') backup=('etc/wgetrc') install=wget.install -source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz) -md5sums=('141461b9c04e454dc8933c9d1f2abf83') +source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.xz) +md5sums=('7f518b3a71e9efd330e9a0c3714f8463') build() { - cd ${srcdir}/$pkgname-$pkgver - ./configure --prefix=/usr --sysconfdir=/etc - make || return 1 + cd "${srcdir}/${pkgname}-${pkgver}" + + # Note : We do not build with --enable-nls, because there is a bug in wget causing + # international domain names to be not properly converted to punycode if + # the current locale is a UTF-8 one + # See : http://lists.gnu.org/archive/html/bug-wget/2011-02/msg00026.html + + ./configure -with-ssl=openssl --prefix=/usr --sysconfdir=/etc + make } package() { - cd ${srcdir}/$pkgname-$pkgver - make DESTDIR=${pkgdir} install + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + + cat >> "$pkgdir/etc/wgetrc" < Date: Sun, 18 Sep 2011 14:14:25 -0500 Subject: geoip: Bump to latest. Ref #778 --- abs/extra/geoip/PKGBUILD | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/abs/extra/geoip/PKGBUILD b/abs/extra/geoip/PKGBUILD index 936aa57..32c5927 100644 --- a/abs/extra/geoip/PKGBUILD +++ b/abs/extra/geoip/PKGBUILD @@ -1,34 +1,36 @@ -# $Id: PKGBUILD 40078 2009-05-27 06:04:17Z juergen $ +# $Id$ # Maintainer: Dan McGee # Contributor: Manolis Tzanidakis pkgname=geoip -pkgver=1.4.7 +pkgver=1.4.8 pkgrel=1 pkgdesc="Non-DNS IP-to-country resolver C library & utils" -arch=(i686 x86_64) -license=('GPL') +arch=('i686' 'x86_64') url="http://www.maxmind.com/app/c" +license=('GPL') depends=('zlib') -backup=(etc/geoip/GeoIP.conf) +backup=('etc/geoip/GeoIP.conf') options=('!libtool') source=(http://www.maxmind.com/download/geoip/api/c/GeoIP-${pkgver}.tar.gz) +md5sums=('05b7300435336231b556df5ab36f326d') build() { - cd ${srcdir}/GeoIP-${pkgver} + cd "${srcdir}/GeoIP-${pkgver}" + + autoreconf -i ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc/geoip - make || return 1 + make } check() { - - cd ${srcdir}/GeoIP-${pkgver} - make check || return 1 - + cd "${srcdir}/GeoIP-${pkgver}" + make check } package() { - cd ${srcdir}/GeoIP-${pkgver} - make DESTDIR=${startdir}/pkg install + cd "${srcdir}/GeoIP-${pkgver}" + make DESTDIR="${pkgdir}" install } -md5sums=('a802175d5b7e2b57b540a7dd308d9205') + +# vim:set ts=2 sw=2 et: -- cgit v0.12 From 622f8dd5cb4f4ad95b42f8929a0265d13dc61cc1 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Sun, 18 Sep 2011 17:44:42 -0500 Subject: dvb-firmware: added firmware NXP7164-2010-03-10.1.fw for HVR-22xx --- abs/core/dvb-firmware/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/abs/core/dvb-firmware/PKGBUILD b/abs/core/dvb-firmware/PKGBUILD index 2150e6f..64fc01e 100644 --- a/abs/core/dvb-firmware/PKGBUILD +++ b/abs/core/dvb-firmware/PKGBUILD @@ -3,7 +3,7 @@ pkgname=dvb-firmware pkgver=1 -pkgrel=12 +pkgrel=13 pkgdesc="Firmware for DVB cards" arch=('i586' 'i686' 'x86_64') url="http://linuxtv.org/" @@ -14,4 +14,4 @@ build() { mkdir -p $startdir/pkg/lib/firmware cp -a dvb-fw/* $startdir/pkg/lib/firmware } -md5sums=('de87b810a42016a0c81cfc0abaecb19e') +md5sums=('32e19e3f9f849e667c6f7db1186180b9') -- cgit v0.12 From a7be8e2becb3e888056f2d01248d589af827bb27 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Mon, 19 Sep 2011 18:47:56 -0500 Subject: mdbtools: recompile against new libs --- abs/extra/mdbtools/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abs/extra/mdbtools/PKGBUILD b/abs/extra/mdbtools/PKGBUILD index c7a562d..870551c 100644 --- a/abs/extra/mdbtools/PKGBUILD +++ b/abs/extra/mdbtools/PKGBUILD @@ -2,7 +2,7 @@ # Contributor: Eduard "bekks" Warkentin pkgname=mdbtools pkgver=0.5 -pkgrel=8 +pkgrel=9 pkgdesc="Utilities for viewing data and exporting schema from Microsoft Access Database files" arch=('i686' 'x86_64') url="http://sourceforge.net/projects/mdbtools/" -- cgit v0.12 From ae5fc8a102437e1671eb2d4a53a3c999cf1e1339 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Mon, 19 Sep 2011 18:58:21 -0500 Subject: LinHES-timezone: fix parsing to guess location. refs #778 --- abs/core/LinHES-timezone/PKGBUILD | 5 +++-- abs/core/LinHES-timezone/linhes_timezone.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/abs/core/LinHES-timezone/PKGBUILD b/abs/core/LinHES-timezone/PKGBUILD index e819965..05a48fc 100644 --- a/abs/core/LinHES-timezone/PKGBUILD +++ b/abs/core/LinHES-timezone/PKGBUILD @@ -2,7 +2,7 @@ # Maintainer: Greg Frost pkgname=LinHES-timezone pkgver=1 -pkgrel=9 +pkgrel=10 pkgdesc="GUI timezone selector used by LinHES-config." arch=i686 depends=() @@ -26,4 +26,5 @@ md5sums=('53976e51e938c555f84b43c933339051' '0710658b3b46cc659f56260c03b904ed' '0d9e51af5f650dd329edce4531c42a58' 'c01e2335603d8395004e32bae9060fde' - 'b20bd68272644f607fbfe7d50e7be42a') + 'b20bd68272644f607fbfe7d50e7be42a' + '96e8dd40e3b7c9f5ba2423dc4243758b') diff --git a/abs/core/LinHES-timezone/linhes_timezone.c b/abs/core/LinHES-timezone/linhes_timezone.c index d7a56d2..1cf04b2 100644 --- a/abs/core/LinHES-timezone/linhes_timezone.c +++ b/abs/core/LinHES-timezone/linhes_timezone.c @@ -641,7 +641,7 @@ void *timezone_guess (void *unused) { timezone_info_command = "wget http://www.geobytes.com/IpLocator.htm -O - 2> /dev/null |" - "grep \"^ Date: Tue, 20 Sep 2011 17:28:16 -0500 Subject: zoneminder: Bump to latest. ref #770 --- abs/core/zoneminder/Controls_Orbit.sql | 3 + abs/core/zoneminder/Makefile.patch | 20 +- abs/core/zoneminder/PKGBUILD | 107 ++- abs/core/zoneminder/customdb | 6 +- abs/core/zoneminder/httpd-zm.conf | 18 + abs/core/zoneminder/mootools.v1.11.js | 3 - abs/core/zoneminder/zm.conf.patch | 20 - abs/core/zoneminder/zm.rc.d | 4 +- abs/core/zoneminder/zmeventbackup | 48 ++ abs/core/zoneminder/zmeventdump | 48 -- abs/core/zoneminder/zmfilter.pl | 1119 ++++++++++++++++++++++++++++++++ abs/core/zoneminder/zminit.arch | 0 abs/core/zoneminder/zmupdate.patch | 23 - abs/core/zoneminder/zoneminder.install | 82 +-- 14 files changed, 1283 insertions(+), 218 deletions(-) create mode 100755 abs/core/zoneminder/Controls_Orbit.sql mode change 100644 => 100755 abs/core/zoneminder/Makefile.patch mode change 100644 => 100755 abs/core/zoneminder/PKGBUILD create mode 100755 abs/core/zoneminder/httpd-zm.conf delete mode 100644 abs/core/zoneminder/mootools.v1.11.js delete mode 100644 abs/core/zoneminder/zm.conf.patch mode change 100644 => 100755 abs/core/zoneminder/zm.rc.d create mode 100755 abs/core/zoneminder/zmeventbackup delete mode 100755 abs/core/zoneminder/zmeventdump create mode 100755 abs/core/zoneminder/zmfilter.pl mode change 100644 => 100755 abs/core/zoneminder/zminit.arch delete mode 100644 abs/core/zoneminder/zmupdate.patch mode change 100644 => 100755 abs/core/zoneminder/zoneminder.install diff --git a/abs/core/zoneminder/Controls_Orbit.sql b/abs/core/zoneminder/Controls_Orbit.sql new file mode 100755 index 0000000..23224e4 --- /dev/null +++ b/abs/core/zoneminder/Controls_Orbit.sql @@ -0,0 +1,3 @@ + +INSERT INTO `Controls` VALUES (7,'Orbit','Remote','mjpgStreamer',0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,-7000,7000,200,200,1,100,100,0,0,1,-2000,2000,10,100,1,200,200,0,0,0,0); + diff --git a/abs/core/zoneminder/Makefile.patch b/abs/core/zoneminder/Makefile.patch old mode 100644 new mode 100755 index d033e72..efafc48 --- a/abs/core/zoneminder/Makefile.patch +++ b/abs/core/zoneminder/Makefile.patch @@ -1,13 +1,11 @@ ---- ZoneMinder-1.23.3.orig/Makefile 2008-03-13 17:41:47.000000000 -0700 -+++ ZoneMinder-1.23.3/Makefile 2008-03-15 06:21:22.000000000 -0700 -@@ -687,8 +687,8 @@ +--- ZoneMinder-1.24.0.orig/Makefile 2008-03-13 17:41:47.000000000 -0700 ++++ ZoneMinder-1.24.0/Makefile 2008-03-15 06:21:22.000000000 -0700 +@@ -815,7 +815,7 @@ # Yes, you are correct. This is a HACK! install-data-hook: - ( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) ) -- -( if ! test -e $(RUNDIR); then mkdir $(RUNDIR); fi ) -- ( if ! test -e $(ZM_RUNDIR); then mkdir $(ZM_RUNDIR); fi; chown $(webuser):$(webgroup) $(ZM_RUNDIR); chmod u+w $(ZM_RUNDIR) ) -+ -( if ! test -e$(DESTDIR)$(RUNDIR); then mkdir -p $(DESTDIR)$(RUNDIR); fi ) -+ ( if ! test -e $(DESTDIR)$(ZM_RUNDIR); then mkdir -p $(DESTDIR)$(ZM_RUNDIR); fi; chown $(webuser):$(webgroup) $(DESTDIR)$(ZM_RUNDIR); chmod u+w $(DESTDIR)$(ZM_RUNDIR) ) - - uninstall-hook: - @-( cd $(DESTDIR)$(webdir); rm -rf events graphics images sounds temp ) + ( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) ) +- ( if ! test -e $(ZM_RUNDIR); then mkdir -p $(ZM_RUNDIR); fi; if test "$(ZM_RUNDIR)" != "/var/run"; then chown $(webuser):$(webgroup) $(ZM_RUNDIR); chmod u+w $(ZM_RUNDIR); fi ) ++ ( if ! test -e $(DESTDIR)$(ZM_RUNDIR); then mkdir -p $(DESTDIR)$(ZM_RUNDIR); fi; if test "$(DESTDIR)$(ZM_RUNDIR)" != "/var/run"; then chown $(webuser):$(webgroup) $(DESTDIR)$(ZM_RUNDIR); chmod u+w $(DESTDIR)$(ZM_RUNDIR); fi ) + ( if ! test -e $(ZM_TMPDIR); then mkdir -m 700 -p $(ZM_TMPDIR); fi; if test "$(ZM_TMPDIR)" != "/tmp"; then chown $(webuser):$(webgroup) $(ZM_TMPDIR); chmod u+w $(ZM_TMPDIR); fi ) + ( if ! test -e $(ZM_LOGDIR); then mkdir -p $(ZM_LOGDIR); fi; if test "$(ZM_LOGDIR)" != "/var/log"; then chown $(webuser):$(webgroup) $(ZM_LOGDIR); chmod u+w $(ZM_LOGDIR); fi ) + diff --git a/abs/core/zoneminder/PKGBUILD b/abs/core/zoneminder/PKGBUILD old mode 100644 new mode 100755 index 94a543a..f9d6f8f --- a/abs/core/zoneminder/PKGBUILD +++ b/abs/core/zoneminder/PKGBUILD @@ -2,81 +2,70 @@ # Contributor: Ross melin pkgname=zoneminder -pkgver=1.23.3 -pkgrel=10 +pkgver=1.25.0 +pkgrel=1 pkgdesc="Capture, analyse, record and monitor video security cameras." -arch=('i686') +arch=('i686' 'x86_64') url="http://www.zoneminder.com" license=('GPL') -groups=() -depends=('lighttpd' 'php' 'mysql' 'pcre' 'gnutls' 'ffmpeg' 'perl-php-serialization' 'perl-libwww' 'perl-date-manip' 'perl-unicode-map' 'perl-dbi' 'perl-dbd-mysql' 'perl-io-stringy' 'perl-mime-lite' 'perl-timedate' 'perl-x10' 'perl-time-modules') +depends=('cambozola' 'apache' 'php' 'mysql' 'pcre' 'openssl' 'ffmpeg' 'perl-php-serialization' 'perl-libwww' 'perl-date-manip' 'perl-unicode-map' 'perl-dbi' 'perl-dbd-mysql' 'perl-io-stringy' 'perl-mime-lite' 'perl-timedate' 'perl-x10' 'perl-time-modules' 'perl-net-smtp-ssl' 'perl-sys-mmap' 'sudo' 'libv4l') makedepends=() -provides=(zoneminder) -conflicts=() -replaces=() -backup=(etc/zm.conf) -options=() install=zoneminder.install -source=(http://www2.zoneminder.com/downloads/ZoneMinder-$pkgver.tar.gz \ - zm.rc.d \ - zm.conf.patch \ - zmupdate.patch \ - Makefile.patch \ - zminit.arch \ - customdb \ - mootools.v1.11.js \ - http://www.charliemouse.com:8080/code/cambozola/cambozola-0.50.tar.gz \ - zmeventdump \ - run) -noextract=() -md5sums=('ee803f0f71d6e67adf602c3557fb6bc9' - 'af8631abe20cd7dcab1a023af7d4f3e8' - '1a6c94411f8adb53a10dc7c19c3bbf02' - '320dd41725945218de0672f899e1d739' - '818cec2eba7e1efb3f5c410f6dd8d528' +source=("http://www2.zoneminder.com/downloads/ZoneMinder-${pkgver}.tar.gz" +zm.rc.d +Controls_Orbit.sql +zminit.arch +customdb +httpd-zm.conf +zmfilter.pl +zmeventbackup +Makefile.patch) +md5sums=('eaefa14befd482154970541252aa1a39' + 'b20fb25b187eb6abb21321e153a7fb25' + '5033bc098bf497c8aed1fc1b3c9c5f9c' 'f9720872736f26d17bc49d8725b75ae4' - 'f0c4b80b3c2f1e0fe90d7b52191b7e51' - '0df5bf23f9b09f0cae2e7f0a9e0ef16e' - 'daded58688e16ab513920a54a0599267' - '3046d91dde4a753867c62aba985c647e') + '4ace13d1e20934abe192ef7372c75988' + '00201eba9c0a5d1ed14b10cc55410698' + '80c52cc3575073a7462ff6a54886a345' + '8b40137b6ff54f2fb26104b70edd22e9' + 'bb308c2393e947a224d56862c85a3ad9') -build() { - cd "$srcdir/ZoneMinder-$pkgver" - - patch -p1 < $startdir/src/zm.conf.patch - patch -p1 < $startdir/src/zmupdate.patch - sed -i 's|||' $srcdir/ZoneMinder-$pkgver/src/zm_mpeg.h - sed -i 's|||' $srcdir/ZoneMinder-$pkgver/src/zm_mpeg.h - sed -i 's|--- Created by|-- Created by|' $srcdir/ZoneMinder-$pkgver/scripts/zmdbbackup.in - - ./configure --prefix=/usr \ - --sysconfdir=/etc \ - --with-webuser=http \ - --with-webgroup=http \ - --with-mysql=/usr \ - --with-webdir=/data/srv/httpd/htdocs/zm \ - --with-cgidir=/data/srv/httpd/htdocs/cgi-bin \ - --bindir=/usr/lib/zm/bin +build() { + cd "$srcdir/ZoneMinder-$pkgver" - patch -p1 < $startdir/src/Makefile.patch - make || return 1 - make DESTDIR="$pkgdir" install || return 1 + cat ../Controls_Orbit.sql >> db/zm_create.sql.in + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --with-webuser=http \ + --with-webgroup=http \ + --with-mysql=/usr \ + --with-webdir=/srv/zoneminder/www \ + --with-cgidir=/srv/zoneminder/cgi-bin \ + --bindir=/srv/zoneminder/bin \ + ZM_SSL_LIB=openssl \ + CPPFLAGS=-D__STDC_CONSTANT_MACROS + # goddamn chown line just mucks everything up, we'll chown it in the install + # script. + sed -i '/chown/d' Makefile + make || return 1 + make DESTDIR="$pkgdir" install || return 1 - install -D -m 700 $startdir/src/zminit.arch $startdir/pkg/usr/lib/zm/bin/zminit - install -D -m 700 $startdir/src/zm.rc.d $startdir/pkg/etc/rc.d/zm + install -D -m 700 $startdir/src/zminit.arch $startdir/pkg/usr/lib/zm/bin/zminit + install -D -m 700 $startdir/src/zm.rc.d $startdir/pkg/etc/rc.d/zm install -D -m 700 scripts/zmdbbackup $startdir/pkg/usr/lib/zm/bin/zmdbbackup install -D -m 700 scripts/zmdbbackup $startdir/pkg/usr/lib/zm/bin/zmdbbackup install -D -m 700 scripts/zmdbrestore $startdir/pkg/usr/lib/zm/bin/zmdbrestore + install -D -m 700 scripts/zmeventdump $startdir/pkg/usr/lib/zm/bin/zmeventdump install -D -m 700 scripts/zmlogrotate.conf $startdir/pkg/etc/logrotate.d/zm - install -D -m 700 $startdir/src/zmeventdump $startdir/pkg/etc/cron.hourly/zmeventdump + install -D -m 700 $startdir/src/zmeventbackup $startdir/pkg/etc/cron.hourly/zmeventbackup + install -D -m 755 $startdir/src/zmfilter.pl $startdir/pkg/usr/lib/zm/bin/zmfilter.pl - tar -zxf $startdir/src/cambozola-0.50.tar.gz - install -m 644 cambozola-0.50/dist/cambozola.jar $startdir/pkg/data/srv/httpd/htdocs/zm/cambozola.jar + mkdir -p $startdir/pkg/etc/httpd/conf/extra/ + install -m 644 $startdir/src/httpd-zm.conf $startdir/pkg/etc/httpd/conf/extra/httpd-zm.conf - install $startdir/src/mootools.v1.11.js $startdir/pkg/data/srv/httpd/htdocs/zm/mootools.js install -D -m 700 $startdir/src/customdb $startdir/pkg/usr/lib/zm/upgrade/customdb - install -D db/zm*.sql $startdir/pkg/usr/lib/zm/upgrade/ + install -D db/zm*.sql $startdir/pkg/usr/lib/zm/upgrade/ mkdir -p $startdir/pkg/var/run/zm @@ -85,8 +74,6 @@ build() { -o -name ".packlist" \ -o -name "*.bs" \ |xargs -i rm -f {} - mkdir -p $pkgdir/etc/sv/zm - install -D -m 755 $srcdir/run $pkgdir/etc/sv/zm } diff --git a/abs/core/zoneminder/customdb b/abs/core/zoneminder/customdb index 93ce7fe..82dfc48 100755 --- a/abs/core/zoneminder/customdb +++ b/abs/core/zoneminder/customdb @@ -4,8 +4,8 @@ DBNAME=$2 USERNAME=$3 PASSWORD=$4 -ZM_PATH_ZMS=/cgi-bin/nph-zms -ZM_PATH_SOCKS=/var/lib/zm +ZM_PATH_ZMS=/cgi-zm/nph-zms +ZM_PATH_SOCKS=/var/lib/zm/socks ZM_PATH_LOGS=/var/log/zm ZM_WEB_LIST_THUMBS=1 ZM_WEB_MONTAGE_WIDTH=320 @@ -14,7 +14,7 @@ ZM_OPT_CAMBOZOLA=1 ZM_OPT_MPEG=ffmpeg ZM_PATH_FFMPEG=/usr/bin/ffmpeg ZM_OPT_NETPBM=1 -ZM_EXTRA_DEBUG_LOG=/var/log/zm/zm_debug.log+ +ZM_EXTRA_DEBUG_LOG=/var/log/zm/zm_debug.log ZM_OPT_USE_AUTH=0 sql=/tmp/$$ diff --git a/abs/core/zoneminder/httpd-zm.conf b/abs/core/zoneminder/httpd-zm.conf new file mode 100755 index 0000000..bdd29d7 --- /dev/null +++ b/abs/core/zoneminder/httpd-zm.conf @@ -0,0 +1,18 @@ +# /etc/httpd/conf/extra/httpd-zm.conf +# Config for zoneminder web app + +Alias /zm "/var/lib/zm/www" + + Options -Indexes MultiViews FollowSymLinks + AllowOverride All + Order allow,deny + Allow from all + + +ScriptAlias /cgi-zm "/var/lib/zm/cgi-bin" + + AllowOverride All + Options ExecCGI + Order allow,deny + Allow from all + diff --git a/abs/core/zoneminder/mootools.v1.11.js b/abs/core/zoneminder/mootools.v1.11.js deleted file mode 100644 index 154284c..0000000 --- a/abs/core/zoneminder/mootools.v1.11.js +++ /dev/null @@ -1,3 +0,0 @@ -//MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006-2007 Valerio Proietti, , MIT Style License. - -eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('o ci={cj:\'1.11\'};k $77(N){m(N!=9N)};k $F(N){B(!$77(N))m O;B(N.5i)m\'G\';o F=7c N;B(F==\'2I\'&&N.ch){22(N.84){Y 1:m\'G\';Y 3:m(/\\S/).2v(N.ax)?\'cg\':\'cd\'}}B(F==\'2I\'||F==\'k\'){22(N.9C){Y 2t:m\'1z\';Y 7y:m\'5C\';Y 18:m\'4R\'}B(7c N.V==\'4M\'){B(N.3r)m\'ce\';B(N.8t)m\'1b\'}}m F};k $2a(){o 54={};M(o i=0;i<1b.V;i++){M(o K 1a 1b[i]){o ap=1b[i][K];o 6d=54[K];B(6d&&$F(ap)==\'2I\'&&$F(6d)==\'2I\')54[K]=$2a(6d,ap);14 54[K]=ap}}m 54};o $R=k(){o 1p=1b;B(!1p[1])1p=[c,1p[0]];M(o K 1a 1p[1])1p[0][K]=1p[1][K];m 1p[0]};o $5e=k(){M(o i=0,l=1b.V;i-1:c.3k(2z)>-1},b5:k(){m c.3g(/([.*+?^${}()|[\\]\\/\\\\])/g,\'\\\\$1\')}});2t.R({5E:k(1z){B(c.V<3)m O;B(c.V==4&&c[3]==0&&!1z)m\'c2\';o 3C=[];M(o i=0;i<3;i++){o 5d=(c[i]-0).4l(16);3C.1k((5d.V==1)?\'0\'+5d:5d)}m 1z?3C:\'#\'+3C.2c(\'\')},5G:k(1z){B(c.V!=3)m O;o 1s=[];M(o i=0;i<3;i++){1s.1k(5O((c[i].V==1)?c[i]+c[i]:c[i],16))}m 1z?1s:\'1s(\'+1s.2c(\',\')+\')\'}});7Z.R({3a:k(C){o fn=c;C=$2a({\'W\':fn,\'I\':O,\'1b\':1n,\'2g\':O,\'4f\':O,\'6f\':O},C);B($2A(C.1b)&&$F(C.1b)!=\'1z\')C.1b=[C.1b];m k(I){o 1p;B(C.I){I=I||U.I;1p=[(C.I===1e)?I:L C.I(I)];B(C.1b)1p.R(C.1b)}14 1p=C.1b||1b;o 3N=k(){m fn.4j($4T(C.W,fn),1p)};B(C.2g)m 9M(3N,C.2g);B(C.4f)m c3(3N,C.4f);B(C.6f)5j{m 3N()}5c(c9){m O};m 3N()}},bT:k(1p,W){m c.3a({\'1b\':1p,\'W\':W})},6f:k(1p,W){m c.3a({\'1b\':1p,\'W\':W,\'6f\':1e})()},W:k(W,1p){m c.3a({\'W\':W,\'1b\':1p})},c8:k(W,1p){m c.3a({\'W\':W,\'I\':1e,\'1b\':1p})},2g:k(2g,W,1p){m c.3a({\'2g\':2g,\'W\':W,\'1b\':1p})()},4f:k(aV,W,1p){m c.3a({\'4f\':aV,\'W\':W,\'1b\':1p})()}});aN.R({3d:k(){m 5O(c)},aH:k(){m 66(c)},1F:k(3s,1D){m 1c.3s(1D,1c.1D(3s,c))},2q:k(5Y){5Y=1c.3w(10,5Y||0);m 1c.2q(c*5Y)/5Y},c7:k(fn){M(o i=0;i\'}el=Q.aJ(el)}el=$(el);m(!1U||!el)?el:el.2j(1U)}});o 26=L 18({1i:k(T){m(T)?$R(T,c):c}});26.R=k(1U){M(o 1V 1a 1U){c.1L[1V]=1U[1V];c[1V]=$5e.6x(1V)}};k $(el){B(!el)m 1n;B(el.5i)m 2F.52(el);B([U,Q].1j(el))m el;o F=$F(el);B(F==\'2z\'){el=Q.6W(el);F=(el)?\'G\':O}B(F!=\'G\')m 1n;B(el.5i)m 2F.52(el);B([\'2I\',\'c4\'].1j(el.6S.5L()))m el;$R(el,P.1L);el.5i=k(){};m 2F.52(el)};Q.6Y=Q.33;k $$(){o T=[];M(o i=0,j=1b.V;i0&&6Q<13)c.1t=\'f\'+6Q}c.1t=c.1t||6i.bA(c.6O).5L()}14 B(c.F.2v(/(6h|3m|bw)/)){c.1Y={\'x\':I.8E||I.9f+Q.2Z.5V,\'y\':I.8w||I.at+Q.2Z.63};c.9B={\'x\':I.8E?I.8E-U.99:I.9f,\'y\':I.8w?I.8w-U.9i:I.at};c.bR=(I.9K==3)||(I.bv==2);22(c.F){Y\'90\':c.2o=I.2o||I.ca;1C;Y\'8Y\':c.2o=I.2o||I.8A}c.aU()}m c},1R:k(){m c.6U().6X()},6U:k(){B(c.I.6U)c.I.6U();14 c.I.db=1e;m c},6X:k(){B(c.I.6X)c.I.6X();14 c.I.eK=O;m c}});2X.6m={2o:k(){B(c.2o&&c.2o.84==3)c.2o=c.2o.3n},aD:k(){5j{2X.6m.2o.1X(c)}5c(e){c.2o=c.3v}}};2X.1L.aU=(U.8r)?2X.6m.aD:2X.6m.2o;2X.1O=L 3M({\'eL\':13,\'6P\':38,\'eJ\':40,\'1u\':37,\'4n\':39,\'eI\':27,\'eF\':32,\'eG\':8,\'eH\':9,\'57\':46});P.2H.2p={1B:k(F,fn){c.$19=c.$19||{};c.$19[F]=c.$19[F]||{\'1O\':[],\'1I\':[]};B(c.$19[F].1O.1j(fn))m c;c.$19[F].1O.1k(fn);o 76=F;o 2w=P.2p[F];B(2w){B(2w.7F)2w.7F.1X(c,fn);B(2w.2D)fn=2w.2D;B(2w.F)76=2w.F}B(!c.8j)fn=fn.3a({\'W\':c,\'I\':1e});c.$19[F].1I.1k(fn);m(P.8V.1j(76))?c.2C(76,fn):c},4C:k(F,fn){B(!c.$19||!c.$19[F])m c;o 1m=c.$19[F].1O.3k(fn);B(1m==-1)m c;o 1t=c.$19[F].1O.74(1m,1)[0];o J=c.$19[F].1I.74(1m,1)[0];o 2w=P.2p[F];B(2w){B(2w.2K)2w.2K.1X(c,fn);B(2w.F)F=2w.F}m(P.8V.1j(F))?c.3h(F,J):c},6j:k(1Z){m P.72(c,\'1B\',1Z)},78:k(F){B(!c.$19)m c;B(!F){M(o 6g 1a c.$19)c.78(6g);c.$19=1n}14 B(c.$19[F]){c.$19[F].1O.1q(k(fn){c.4C(F,fn)},c);c.$19[F]=1n}m c},1h:k(F,1p,2g){B(c.$19&&c.$19[F]){c.$19[F].1O.1q(k(fn){fn.3a({\'W\':c,\'2g\':2g,\'1b\':1p})()},c)}m c},au:k(15,F){B(!15.$19)m c;B(!F){M(o 6g 1a 15.$19)c.au(15,6g)}14 B(15.$19[F]){15.$19[F].1O.1q(k(fn){c.1B(F,fn)},c)}m c}};U.R(P.2H.2p);Q.R(P.2H.2p);P.R(P.2H.2p);P.2p=L 3M({\'8N\':{F:\'90\',2D:k(I){I=L 2X(I);B(I.2o!=c&&!c.8o(I.2o))c.1h(\'8N\',I)}},\'8P\':{F:\'8Y\',2D:k(I){I=L 2X(I);B(I.2o!=c&&!c.8o(I.2o))c.1h(\'8P\',I)}},\'5a\':{F:(U.8r)?\'8b\':\'5a\'}});P.8V=[\'6h\',\'eM\',\'5z\',\'5n\',\'5a\',\'8b\',\'90\',\'8Y\',\'2M\',\'9X\',\'eN\',\'eS\',\'4e\',\'7v\',\'9t\',\'eT\',\'5o\',\'eR\',\'eQ\',\'3F\',\'eO\',\'eP\',\'48\',\'aE\',\'8s\',\'eE\',\'2G\'];7Z.R({3e:k(W,1p){m c.3a({\'W\':W,\'1b\':1p,\'I\':2X})}});26.R({eV:k(3q){m L 26(c.36(k(el){m(P.4D(el)==3q)}))},a8:k(1A,2J){o T=c.36(k(el){m(el.1A&&el.1A.1j(1A,\' \'))});m(2J)?T:L 26(T)},a2:k(4u,2J){o T=c.36(k(el){m(el.4u==4u)});m(2J)?T:L 26(T)},a9:k(1w,82,J,2J){o T=c.36(k(el){o 2i=P.5R(el,1w);B(!2i)m O;B(!82)m 1e;22(82){Y\'=\':m(2i==J);Y\'*=\':m(2i.1j(J));Y\'^=\':m(2i.6K(0,J.V)==J);Y\'$=\':m(2i.6K(2i.V-J.V)==J);Y\'!=\':m(2i!=J);Y\'~=\':m 2i.1j(J,\' \')}m O});m(2J)?T:L 26(T)}});k $E(1S,36){m($(36)||Q).9P(1S)};k $et(1S,36){m($(36)||Q).6Y(1S)};$$.3B={\'5C\':/^(\\w*|\\*)(?:#([\\w-]+)|\\.([\\w-]+))?(?:\\[(\\w+)(?:([!*^$]?=)["\']?([^"\'\\]]*)["\']?)?])?$/,\'4a\':{7L:k(1x,3b,1d,i){o 2r=[3b.eu?\'7N:\':\'\',1d[1]];B(1d[2])2r.1k(\'[@4u="\',1d[2],\'"]\');B(1d[3])2r.1k(\'[1j(7P(" ", @4R, " "), " \',1d[3],\' ")]\');B(1d[4]){B(1d[5]&&1d[6]){22(1d[5]){Y\'*=\':2r.1k(\'[1j(@\',1d[4],\', "\',1d[6],\'")]\');1C;Y\'^=\':2r.1k(\'[es-er(@\',1d[4],\', "\',1d[6],\'")]\');1C;Y\'$=\':2r.1k(\'[eo(@\',1d[4],\', 2z-V(@\',1d[4],\') - \',1d[6].V,\' + 1) = "\',1d[6],\'"]\');1C;Y\'=\':2r.1k(\'[@\',1d[4],\'="\',1d[6],\'"]\');1C;Y\'!=\':2r.1k(\'[@\',1d[4],\'!="\',1d[6],\'"]\')}}14{2r.1k(\'[@\',1d[4],\']\')}}1x.1k(2r.2c(\'\'));m 1x},7O:k(1x,3b,2J){o T=[];o 4a=Q.5r(\'.//\'+1x.2c(\'//\'),3b,$$.3B.ac,ep.eq,1n);M(o i=0,j=4a.ev;i<\\/2s>\');$(\'7I\').7i=k(){B(c.5m==\'8p\')5X()}}}14{U.2C("4e",5X);Q.2C("fe",5X)}}};U.fm=k(fn){m c.1B(\'7S\',fn)};U.R({8m:k(){B(c.5x)m c.fl;B(c.9a)m Q.4B.9c;m Q.2Z.9c},8n:k(){B(c.5x)m c.fo;B(c.9a)m Q.4B.9d;m Q.2Z.9d},93:k(){B(c.2P)m 1c.1D(Q.2Z.4b,Q.2Z.71);B(c.4x)m Q.4B.71;m Q.2Z.71},92:k(){B(c.2P)m 1c.1D(Q.2Z.3R,Q.2Z.5P);B(c.4x)m Q.4B.5P;m Q.2Z.5P},8u:k(){m c.99||Q.2Z.5V},8v:k(){m c.9i||Q.2Z.63},7g:k(){m{\'3l\':{\'x\':c.8m(),\'y\':c.8n()},\'7h\':{\'x\':c.93(),\'y\':c.92()},\'2G\':{\'x\':c.8u(),\'y\':c.8v()}}},3p:k(){m{\'x\':0,\'y\':0}}});o 1f={};1f.2T=L 18({C:{3X:18.1l,1Q:18.1l,7w:18.1l,2f:k(p){m-(1c.av(1c.7W*p)-1)/2},49:fb,2x:\'4W\',3T:1e,98:50},1i:k(C){c.G=c.G||1n;c.2Y(C);B(c.C.1i)c.C.1i.1X(c)},2n:k(){o 3A=$3A();B(3A=(7-4*a)/11){J=-1c.3w((11-6*a-11*p)/4,2)+b*b;1C}}m J},ds:k(p,x){m 1c.3w(2,10*--p)*1c.av(20*p*1c.7W*(x[0]||1)/3)}});[\'dt\',\'dz\',\'dA\',\'dG\'].1q(k(2f,i){1f.3o[2f]=L 1f.7U(k(p){m 1c.3w(p,[i+2])});1f.3o.7X(2f)});o 4g={};4g.2T=L 18({C:{3J:O,2x:\'4W\',3X:18.1l,al:18.1l,1Q:18.1l,as:18.1l,8S:18.1l,1F:O,3E:{x:\'1u\',y:\'1o\'},4P:O,6M:6},1i:k(el,C){c.2Y(C);c.G=$(el);c.3J=$(c.C.3J)||c.G;c.3m={\'12\':{},\'1m\':{}};c.J={\'1g\':{},\'12\':{}};c.1G={\'1g\':c.1g.3e(c),\'4i\':c.4i.3e(c),\'3D\':c.3D.3e(c),\'1R\':c.1R.W(c)};c.6V();B(c.C.1i)c.C.1i.1X(c)},6V:k(){c.3J.1B(\'5n\',c.1G.1g);m c},9F:k(){c.3J.4C(\'5n\',c.1G.1g);m c},1g:k(I){c.1h(\'al\',c.G);c.3m.1g=I.1Y;o 1F=c.C.1F;c.1F={\'x\':[],\'y\':[]};M(o z 1a c.C.3E){B(!c.C.3E[z])6l;c.J.12[z]=c.G.2h(c.C.3E[z]).3d();c.3m.1m[z]=I.1Y[z]-c.J.12[z];B(1F&&1F[z]){M(o i=0;i<2;i++){B($2A(1F[z][i]))c.1F[z][i]=($F(1F[z][i])==\'k\')?1F[z][i]():1F[z][i]}}}B($F(c.C.4P)==\'4M\')c.C.4P={\'x\':c.C.4P,\'y\':c.C.4P};Q.2C(\'2M\',c.1G.4i);Q.2C(\'5z\',c.1G.1R);c.1h(\'3X\',c.G);I.1R()},4i:k(I){o ao=1c.2q(1c.dH(1c.3w(I.1Y.x-c.3m.1g.x,2)+1c.3w(I.1Y.y-c.3m.1g.y,2)));B(ao>c.C.6M){Q.3h(\'2M\',c.1G.4i);Q.2C(\'2M\',c.1G.3D);c.3D(I);c.1h(\'as\',c.G)}I.1R()},3D:k(I){c.69=O;c.3m.12=I.1Y;M(o z 1a c.C.3E){B(!c.C.3E[z])6l;c.J.12[z]=c.3m.12[z]-c.3m.1m[z];B(c.1F[z]){B($2A(c.1F[z][1])&&(c.J.12[z]>c.1F[z][1])){c.J.12[z]=c.1F[z][1];c.69=1e}14 B($2A(c.1F[z][0])&&(c.J.12[z]el.1u&&12.xel.1o)},1R:k(){B(c.3f&&!c.69)c.3f.1h(\'dC\',[c.G,c]);14 c.G.1h(\'dD\',c);c.1r();m c}});P.R({dq:k(C){m L 4g.aM(c,C)}});o 6n=L 18({C:{23:\'59\',be:1e,9g:18.1l,5h:18.1l,6w:18.1l,aG:1e,5J:\'dp-8\',aZ:O,4J:{}},7q:k(){c.2u=(U.6C)?L 6C():(U.2P?L 9o(\'en.dc\'):O);m c},1i:k(C){c.7q().2Y(C);c.C.5D=c.C.5D||c.5D;c.4J={};B(c.C.aG&&c.C.23==\'59\'){o 5J=(c.C.5J)?\'; dd=\'+c.C.5J:\'\';c.5l(\'9R-F\',\'9J/x-aS-da-d9\'+5J)}B(c.C.1i)c.C.1i.1X(c)},9s:k(){B(c.2u.5m!=4||!c.4Q)m;c.4Q=O;o 4I=0;5j{4I=c.2u.4I}5c(e){};B(c.C.5D.1X(c,4I))c.5h();14 c.6w();c.2u.7i=18.1l},5D:k(4I){m((4I>=d6)&&(4I]*>([\\s\\S]*?)<\\/2s>/dJ;6Z((2s=5C.e9(c.3L.1K)))3y.1k(2s[1]);3y=3y.2c(\'\\n\')}B(3y)(U.9O)?U.9O(3y):U.9M(3y,0)},af:k(1w){5j{m c.2u.ea(1w)}5c(e){};m 1n}});8X.5A=k(1Z){o 5f=[];M(o K 1a 1Z)5f.1k(7e(K)+\'=\'+7e(1Z[K]));m 5f.2c(\'&\')};P.R({6a:k(C){m L 9b(c.5R(\'eb\'),$2a({1T:c.5A()},C,{23:\'59\'})).9h()}});o 3H=L 3M({C:{7o:O,7k:O,49:O,5g:O},2j:k(1t,J,C){C=$2a(c.C,C);J=7e(J);B(C.7o)J+=\'; 7o=\'+C.7o;B(C.7k)J+=\'; 7k=\'+C.7k;B(C.49){o 6k=L 96();6k.e8(6k.9w()+C.49*24*60*60*bd);J+=\'; e7=\'+6k.e4()}B(C.5g)J+=\'; 5g\';Q.4K=1t+\'=\'+J;m $R(C,{\'1t\':1t,\'J\':J})},5q:k(1t){o J=Q.4K.31(\'(?:^|;)\\\\s*\'+1t.b5()+\'=([^;]*)\');m J?e5(J[1]):O},2K:k(4K,C){B($F(4K)==\'2I\')c.2j(4K.1t,\'\',$2a(4K,{49:-1}));14 c.2j(4K,\'\',$2a(C,{49:-1}))}});o 3I={4l:k(N){22($F(N)){Y\'2z\':m\'"\'+N.3g(/(["\\\\])/g,\'\\\\$1\')+\'"\';Y\'1z\':m\'[\'+N.2D(3I.4l).2c(\',\')+\']\';Y\'2I\':o 2z=[];M(o K 1a N)2z.1k(3I.4l(K)+\':\'+3I.4l(N[K]));m\'{\'+2z.2c(\',\')+\'}\';Y\'4M\':B(e6(N))1C;Y O:m\'1n\'}m 6i(N)},5r:k(4H,5g){m(($F(4H)!=\'2z\')||(5g&&!4H.2v(/^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+ec-u \\n\\r\\t])+?$/)))?1n:ed(\'(\'+4H+\')\')}};3I.ej=6n.R({1i:k(2L,C){c.2L=2L;c.1B(\'5h\',c.1Q);c.1r(C);c.5l(\'X-ek\',\'ei\')},6a:k(N){m c.1r(c.2L,\'eh=\'+3I.4l(N))},1Q:k(){c.1h(\'1Q\',[3I.5r(c.3L.1K,c.C.5g)])}});o ar=L 3M({8q:k(1Z,1J){1J=$2a({\'5N\':18.1l},1J);o 2s=L P(\'2s\',{\'4s\':1Z}).6j({\'4e\':1J.5N,\'ee\':k(){B(c.5m==\'8p\')c.1h(\'4e\')}});57 1J.5N;m 2s.6o(1J).28(Q.6e)},1y:k(1Z,1J){m L P(\'4y\',$2a({\'a1\':\'ef\',\'eg\':\'e3\',\'F\':\'1K/1y\',\'4N\':1Z},1J)).28(Q.6e)},4S:k(1Z,1J){1J=$2a({\'5N\':18.1l,\'e2\':18.1l,\'dP\':18.1l},1J);o 4S=L dQ();4S.4s=1Z;o G=L P(\'8x\',{\'4s\':1Z});[\'4e\',\'8s\',\'aE\'].1q(k(F){o I=1J[\'67\'+F];57 1J[\'67\'+F];G.1B(F,k(){c.4C(F,1b.8t);I.1X(c)})});B(4S.2y&&4S.2N)G.1h(\'4e\',G,1);m G.6o(1J)},6s:k(58,C){C=$2a({1Q:18.1l,an:18.1l},C);B(!58.1k)58=[58];o 6s=[];o 6q=0;58.1q(k(1Z){o 8x=L ar.4S(1Z,{\'5N\':k(){C.an.1X(c,6q);6q++;B(6q==58.V)C.1Q()}});6s.1k(8x)});m L 26(6s)}});o 3O=L 18({V:0,1i:k(2I){c.N=2I||{};c.5K()},5q:k(1t){m(c.6t(1t))?c.N[1t]:1n},6t:k(1t){m(1t 1a c.N)},2j:k(1t,J){B(!c.6t(1t))c.V++;c.N[1t]=J;m c},5K:k(){c.V=0;M(o p 1a c.N)c.V++;m c},2K:k(1t){B(c.6t(1t)){57 c.N[1t];c.V--}m c},1q:k(fn,W){$1q(c.N,fn,W)},R:k(N){$R(c.N,N);m c.5K()},2a:k(){c.N=$2a.4j(1n,[c.N].R(1b));m c.5K()},1l:k(){c.N={};c.V=0;m c},1O:k(){o 1O=[];M(o K 1a c.N)1O.1k(K);m 1O},1I:k(){o 1I=[];M(o K 1a c.N)1I.1k(c.N[K]);m 1I}});k $H(N){m L 3O(N)};3O.3H=3O.R({1i:k(1w,C){c.1w=1w;c.C=$R({\'aw\':1e},C||{});c.4e()},aX:k(){B(c.V==0){3H.2K(c.1w,c.C);m 1e}o 4H=3I.4l(c.N);B(4H.V>dR)m O;3H.2j(c.1w,4H,c.C);m 1e},4e:k(){c.N=3I.5r(3H.5q(c.1w),1e)||{};c.5K()}});3O.3H.2H={};[\'R\',\'2j\',\'2a\',\'1l\',\'2K\'].1q(k(23){3O.3H.2H[23]=k(){3O.1L[23].4j(c,1b);B(c.C.aw)c.aX();m c}});3O.3H.3i(3O.3H.2H);o 2Q=L 18({1i:k(2E,F){F=F||(2E.1k?\'1s\':\'3C\');o 1s,2m;22(F){Y\'1s\':1s=2E;2m=1s.8h();1C;Y\'2m\':1s=2E.b9();2m=2E;1C;62:1s=2E.5G(1e);2m=1s.8h()}1s.2m=2m;1s.3C=1s.5E();m $R(1s,2Q.1L)},54:k(){o 5I=$A(1b);o 7d=($F(5I[5I.V-1])==\'4M\')?5I.dO():50;o 1s=c.8e();5I.1q(k(2E){2E=L 2Q(2E);M(o i=0;i<3;i++)1s[i]=1c.2q((1s[i]/ 35 * (35 - 7d)) + (2E[i] /35*7d))});m L 2Q(1s,\'1s\')},dN:k(){m L 2Q(c.2D(k(J){m 51-J}))},dK:k(J){m L 2Q([J,c.2m[1],c.2m[2]],\'2m\')},dL:k(7a){m L 2Q([c.2m[0],7a,c.2m[2]],\'2m\')},dM:k(7a){m L 2Q([c.2m[0],c.2m[1],7a],\'2m\')}});k $dS(r,g,b){m L 2Q([r,g,b],\'1s\')};k $dT(h,s,b){m L 2Q([h,s,b],\'2m\')};2t.R({8h:k(){o 5W=c[0],65=c[1],75=c[2];o 2W,6y,8k;o 1D=1c.1D(5W,65,75),3s=1c.3s(5W,65,75);o 4p=1D-3s;8k=1D/51;6y=(1D!=0)?4p/1D:0;B(6y==0){2W=0}14{o 8l=(1D-5W)/4p;o 8W=(1D-65)/4p;o br=(1D-75)/4p;B(5W==1D)2W=br-8W;14 B(65==1D)2W=2+8l-br;14 2W=4+8W-8l;2W/=6;B(2W<0)2W++}m[1c.2q(2W*bc),1c.2q(6y*35),1c.2q(8k*35)]},b9:k(){o br=1c.2q(c[2]/35*51);B(c[1]==0){m[br,br,br]}14{o 2W=c[0]%bc;o f=2W%60;o p=1c.2q((c[2]*(35-c[1]))/dZ*51);o q=1c.2q((c[2]*(b7-c[1]*f))/bm*51);o t=1c.2q((c[2]*(b7-c[1]*(60-f)))/bm*51);22(1c.9q(2W/60)){Y 0:m[br,t,p];Y 1:m[q,br,p];Y 2:m[p,br,t];Y 3:m[p,q,br];Y 4:m[t,p,br];Y 5:m[br,p,q]}}m O}});o 9x=L 18({C:{6b:20,8O:1,6F:k(x,y){c.G.3G(x,y)}},1i:k(G,C){c.2Y(C);c.G=$(G);c.8y=([U,Q].1j(G))?$(Q.4B):c.G},1g:k(){c.8z=c.9A.3e(c);c.8y.2C(\'2M\',c.8z)},1R:k(){c.8y.3h(\'2M\',c.8z);c.1H=$55(c.1H)},9A:k(I){c.1Y=(c.G==U)?I.9B:I.1Y;B(!c.1H)c.1H=c.2G.4f(50,c)},2G:k(){o el=c.G.7g();o 1m=c.G.3p();o 3F={\'x\':0,\'y\':0};M(o z 1a c.1Y){B(c.1Y[z]<(c.C.6b+1m[z])&&el.2G[z]!=0)3F[z]=(c.1Y[z]-c.C.6b-1m[z])*c.C.8O;14 B(c.1Y[z]+c.C.6b>(el.3l[z]+1m[z])&&el.2G[z]+el.3l[z]!=el.7h[z])3F[z]=(c.1Y[z]-el.3l[z]+c.C.6b-1m[z])*c.C.8O}B(3F.y||3F.x)c.1h(\'6F\',[el.2G.x+3F.x,el.2G.y+3F.y])}});9x.3i(L 2p,L 43);o 8B=L 18({C:{6F:18.1l,1Q:18.1l,8L:k(1m){c.4h.1P(c.p,1m)},2b:\'8M\',6E:35,1E:0},1i:k(el,4h,C){c.G=$(el);c.4h=$(4h);c.2Y(C);c.8K=-1;c.8D=-1;c.2n=-1;c.G.1B(\'5n\',c.9D.3e(c));o 6H,1E;22(c.C.2b){Y\'8M\':c.z=\'x\';c.p=\'1u\';6H={\'x\':\'1u\',\'y\':O};1E=\'4b\';1C;Y\'8Q\':c.z=\'y\';c.p=\'1o\';6H={\'x\':O,\'y\':\'1o\'};1E=\'3R\'}c.1D=c.G[1E]-c.4h[1E]+(c.C.1E*2);c.a5=c.4h[1E]/2;c.ai=c.G[\'5q\'+c.p.8R()].W(c.G);c.4h.1P(\'1v\',\'70\').1P(c.p,-c.C.1E);o 8U={};8U[c.z]=[-c.C.1E,c.1D-c.C.1E];c.3D=L 4g.2T(c.4h,{1F:8U,3E:6H,6M:0,3X:k(){c.6L()}.W(c),8S:k(){c.6L()}.W(c),1Q:k(){c.6L();c.29()}.W(c)});B(c.C.1i)c.C.1i.1X(c)},2j:k(2n){c.2n=2n.1F(0,c.C.6E);c.6G();c.29();c.1h(\'8L\',c.a0(c.2n));m c},9D:k(I){o 1v=I.1Y[c.z]-c.ai()-c.a5;1v=1v.1F(-c.C.1E,c.1D-c.C.1E);c.2n=c.8C(1v);c.6G();c.29();c.1h(\'8L\',1v)},6L:k(){c.2n=c.8C(c.3D.J.12[c.z]);c.6G()},6G:k(){B(c.8K!=c.2n){c.8K=c.2n;c.1h(\'6F\',c.2n)}},29:k(){B(c.8D!==c.2n){c.8D=c.2n;c.1h(\'1Q\',c.2n+\'\')}},8C:k(1v){m 1c.2q((1v+c.C.1E)/c.1D*c.C.6E)},a0:k(2n){m c.1D*2n/c.C.6E}});8B.3i(L 2p);8B.3i(L 43);o e0=1f.ah.R({1i:k(C){c.1r(U,C);c.5w=(c.C.5w)?$$(c.C.5w):$$(Q.5w);o 5k=U.5k.4N.31(/^[^#]*/)[0]+\'#\';c.5w.1q(k(4y){B(4y.4N.3k(5k)!=0)m;o 3K=4y.4N.6K(5k.V);B(3K&&$(3K))c.9L(4y,3K)},c);B(!U.5x)c.1B(\'1Q\',k(){U.5k.e1=c.3K})},9L:k(4y,3K){4y.1B(\'6h\',k(I){c.3K=3K;c.8A(3K);I.1R()}.3e(c))}});o 9S=L 18({C:{4L:O,3X:18.1l,1Q:18.1l,2S:1e,6M:3,9H:k(G,2S){2S.1P(\'21\',0.7);G.1P(\'21\',0.7)},9e:k(G,2S){G.1P(\'21\',1);2S.2K();c.3V.2K()}},1i:k(5p,C){c.2Y(C);c.5p=$(5p);c.T=c.5p.8H();c.4L=(c.C.4L)?$$(c.C.4L):c.T;c.1G={\'1g\':[],\'5y\':c.5y.3e(c)};M(o i=0,l=c.4L.V;i0);o 6T=c.4G.9W();o 3x=c.4G.8I();B(6T&&6P&&12<6T.4E().3P)c.4G.7Y(6T);B(3x&&!6P&&12>3x.4E().1o)c.4G.6v(3x);c.2l=12},dY:k(9Q){m c.5p.8H().2D(9Q||k(el){m c.T.3k(el)},c)},29:k(){c.2l=1n;Q.3h(\'2M\',c.1G.5o);Q.3h(\'5z\',c.1G.29);B(c.C.2S){Q.3h(\'2M\',c.1G.5y);c.1h(\'9e\',[c.4G,c.2S])}c.1h(\'1Q\',c.4G)}});9S.3i(L 2p,L 43);o aI=L 18({C:{aT:k(3W){3W.1P(\'4z\',\'8G\')},aW:k(3W){3W.1P(\'4z\',\'4O\')},8T:30,bp:35,bt:35,1A:\'dX\',5F:{\'x\':16,\'y\':16},4V:O},1i:k(T,C){c.2Y(C);c.45=L P(\'4Z\',{\'4R\':c.C.1A+\'-3W\',\'8J\':{\'1v\':\'3Y\',\'1o\':\'0\',\'1u\':\'0\',\'4z\':\'4O\'}}).28(Q.4B);c.3c=L P(\'4Z\').28(c.45);$$(T).1q(c.9I,c);B(c.C.1i)c.C.1i.1X(c)},9I:k(el){el.$1W.42=(el.4N&&el.4D()==\'a\')?el.4N.3g(\'9Y://\',\'\'):(el.a1||O);B(el.53){o 6z=el.53.68(\'::\');B(6z.V>1){el.$1W.42=6z[0].5T();el.$1W.5u=6z[1].5T()}14{el.$1W.5u=el.53}el.a7(\'53\')}14{el.$1W.5u=O}B(el.$1W.42&&el.$1W.42.V>c.C.8T)el.$1W.42=el.$1W.42.6K(0,c.C.8T-1)+"&dU;";el.1B(\'8N\',k(I){c.1g(el);B(!c.C.4V)c.8f(I);14 c.1v(el)}.W(c));B(!c.C.4V)el.1B(\'2M\',c.8f.3e(c));o 29=c.29.W(c);el.1B(\'8P\',29);el.1B(\'3V\',29)},1g:k(el){c.3c.1l();B(el.$1W.42){c.53=L P(\'b0\').28(L P(\'4Z\',{\'4R\':c.C.1A+\'-53\'}).28(c.3c)).5s(el.$1W.42)}B(el.$1W.5u){c.1K=L P(\'b0\').28(L P(\'4Z\',{\'4R\':c.C.1A+\'-1K\'}).28(c.3c)).5s(el.$1W.5u)}$55(c.1H);c.1H=c.4d.2g(c.C.bp,c)},29:k(I){$55(c.1H);c.1H=c.3Z.2g(c.C.bt,c)},1v:k(G){o 1m=G.3p();c.45.4A({\'1u\':1m.x+c.C.5F.x,\'1o\':1m.y+c.C.5F.y})},8f:k(I){o am={\'x\':U.8m(),\'y\':U.8n()};o 2G={\'x\':U.8u(),\'y\':U.8v()};o 3W={\'x\':c.45.4b,\'y\':c.45.3R};o 1V={\'x\':\'1u\',\'y\':\'1o\'};M(o z 1a 1V){o 1m=I.1Y[z]+c.C.5F[z];B((1m+3W[z]-2G[z])>am[z])1m=I.1Y[z]-c.C.5F[z]-3W[z];c.45.1P(1V[z],1m)}},4d:k(){B(c.C.aq)c.1H=c.3Z.2g(c.C.aq,c);c.1h(\'aT\',[c.45])},3Z:k(){c.1h(\'aW\',[c.45])}});aI.3i(L 2p,L 43);o dV=L 18({1i:k(){c.6D=$A(1b);c.19={};c.4U={}},1B:k(F,fn){c.4U[F]=c.4U[F]||{};c.19[F]=c.19[F]||[];B(c.19[F].1j(fn))m O;14 c.19[F].1k(fn);c.6D.1q(k(5v,i){5v.1B(F,c.4i.W(c,[F,5v,i]))},c);m c},4i:k(F,5v,i){c.4U[F][i]=1e;o 4F=c.6D.4F(k(2i,j){m c.4U[F][j]||O},c);B(!4F)m;c.4U[F]={};c.19[F].1q(k(I){I.1X(c,c.6D,5v)},c)}});o 7t=1f.26.R({C:{7K:18.1l,aa:18.1l,3Q:0,4d:O,2N:1e,2y:O,21:1e,7f:O,7n:O,3T:O,6I:O},1i:k(){o C,2B,T,2d;$1q(1b,k(4t,i){22($F(4t)){Y\'2I\':C=4t;1C;Y\'G\':2d=$(4t);1C;62:o 2r=$$(4t);B(!2B)2B=2r;14 T=2r}});c.2B=2B||[];c.T=T||[];c.2d=$(2d);c.2Y(C);c.2l=-1;B(c.C.6I)c.C.3T=1e;B($2A(c.C.4d)){c.C.3Q=O;c.2l=c.C.4d}B(c.C.1g){c.C.3Q=O;c.C.4d=O}c.3U={};B(c.C.21)c.3U.21=\'b8\';B(c.C.2y)c.3U.2y=c.C.7n?\'aj\':\'4b\';B(c.C.2N)c.3U.2N=c.C.7f?\'9n\':\'5P\';M(o i=0,l=c.2B.V;i0));c.1h(3Z?\'aa\':\'7K\',[c.2B[i],el]);M(o 2O 1a c.3U)N[i][2O]=3Z?0:el[c.3U[2O]]},c);m c.1g(N)},dW:k(25){m c.3Q(25)}});1f.7t=7t;',62,956,'||||||||||||this||||||||function||return||var|||||||||||||if|options|||type|element||event|value|property|new|for|obj|false|Element|document|extend||elements|window|length|bind||case||||now||else|from||to|Class|events|in|arguments|Math|param|true|Fx|start|fireEvent|initialize|contains|push|empty|pos|null|top|args|each|parent|rgb|key|left|position|name|items|css|array|className|addEvent|break|max|offset|limit|bound|timer|values|properties|text|prototype|result|style|keys|setStyle|onComplete|stop|selector|data|props|prop|tmp|call|page|source||opacity|switch|method||index|Elements||inject|end|merge|mode|join|container|parsed|transition|delay|getStyle|current|set|overflown|previous|hsb|step|relatedTarget|Events|round|temp|script|Array|transport|test|custom|unit|width|string|chk|togglers|addListener|map|color|Garbage|scroll|Methods|object|nocash|remove|url|mousemove|height|fx|ie|Color|border|ghost|Base|params|parse|hue|Event|setOptions|documentElement||match||getElementsByTagName|margin|100|filter||||create|context|wrapper|toInt|bindWithEvent|overed|replace|removeListener|implement|toggler|indexOf|size|mouse|parentNode|Transitions|getPosition|tag|item|min|CSS|iCss|target|pow|next|scripts|option|time|shared|hex|drag|modifiers|change|scrollTo|Cookie|Json|handle|anchor|response|Abstract|returns|Hash|bottom|display|offsetHeight|len|wait|effects|trash|tip|onStart|absolute|hide||iterable|myTitle|Options|getValue|toolTip||iTo|select|duration|xpath|offsetWidth|Styles|show|load|periodical|Drag|knob|check|apply|increase|toString|val|right|compute|delta|setNow|cont|src|argument|id|chains|padding|webkit|link|visibility|setStyles|body|removeEvent|getTag|getCoordinates|every|active|str|status|headers|cookie|handles|number|href|hidden|grid|running|class|image|pick|checker|fixed|px|open|results|div||255|collect|title|mix|clear|getNow|delete|sources|post|mousewheel|fromTo|catch|bit|native|queryString|secure|onSuccess|htmlElement|try|location|setHeader|readyState|mousedown|move|list|get|evaluate|setHTML|xml|myText|instance|links|webkit419|moveGhost|mouseup|toQueryString|HTMLElement|regexp|isSuccess|rgbToHex|offsets|hexToRgb|_method|colors|encoding|setLength|toLowerCase|unique|onload|parseInt|scrollHeight|iFrom|getProperty|include|trim|iNow|scrollLeft|red|domReady|precision|klass||walk|default|scrollTop|layout|green|parseFloat|on|split|out|send|area|droppables|mp|head|attempt|evType|click|String|addEvents|date|continue|fix|XHR|setProperties|currentStyle|counter|included|images|hasKey|brother|injectAfter|onFailure|generic|saturation|dual|Properties|loaded|XMLHttpRequest|instances|steps|onChange|checkStep|mod|alwaysHide|Listeners|substr|draggedKnob|snap|getElements|code|up|fKey|evalScripts|tagName|prev|stopPropagation|attach|getElementById|preventDefault|getElementsBySelector|while|relative|scrollWidth|setMany|Multi|splice|blue|realType|defined|removeEvents|regex|percent|forEach|typeof|alpha|encodeURIComponent|fixedHeight|getSize|scrollSize|onreadystatechange|none|path|setProperty|proto|fixedWidth|domain|evalResponse|setTransport|clean|hasClass|Accordion|Chain|unload|onCancel|update|RegExp|callChain|toUpperCase|transitions|qs|disabled|checked|add|pairs|getMany|ie_ready|multiple|onActive|getParam|found|xhtml|getItems|concat|selected|Dom|domready|Style|Transition|flag|PI|compat|injectBefore|Function|getLast|node|operator|innerText|nodeType|iProps|appendChild|cssText|firstChild|easeType|camelCase|DOMMouseScroll|random|charAt|copy|locate|newArray|rgbToHsb|merged|addEventListener|brightness|rr|getWidth|getHeight|hasChild|complete|javascript|gecko|abort|callee|getScrollLeft|getScrollTop|pageY|img|mousemover|coord|toElement|Slider|toStep|previousEnd|pageX|coordinates|visible|getChildren|getNext|styles|previousChange|onTick|horizontal|mouseenter|velocity|mouseleave|vertical|capitalize|onDrag|maxTitleChars|lim|NativeEvents|gr|Object|mouseout|first|mouseover|insertBefore|getScrollHeight|getScrollWidth|after|cancel|Date|borderShort|fps|pageXOffset|opera|Ajax|clientWidth|clientHeight|onDragComplete|clientX|onRequest|request|pageYOffset|Single|before|Merge|pp|fullHeight|ActiveXObject|wheelDelta|floor|wheelStops|onStateChange|beforeunload|iParsed|direction|getTime|Scroller|overflow|addClass|getCoords|client|constructor|clickedElement|removeClass|detach|clone|onDragStart|build|application|which|useLink|setTimeout|undefined|execScript|getElement|converter|Content|Sortables|normal|sel|contents|getPrevious|keydown|http|prefix|toPosition|rel|filterById|PropertiesIFlag|removeEventListener|half|Left|removeAttribute|filterByClass|filterByAttribute|onBackground|input|resolver|textarea|getFormElements|getHeader|ie6|Scroll|getPos|fullWidth|zoom|onBeforeStart|win|onProgress|distance||timeout|Asset|onSnap|clientY|cloneEvents|cos|autoSave|nodeValue|where|Bottom|idx|elementsProperty|childNodes|relatedTargetGecko|error|defaultView|urlEncoded|toFloat|Tips|createElement|shift|hyphenate|Move|Number|checkAgainst|getLeft|getTop|addSection|www|onShow|fixRelatedTarget|interval|onHide|save|picked|autoCancel|span|textContent|adopt|innerHTML|styleSheet|escapeRegExp|fixStyle|6000|fullOpacity|hsbToRgb|slideIn|slideOut|360|1000|async|Width|getStyles|slice|Top|sin|setOpacity|removeChild|600000|appendText|0px|showDelay|extended||Right|hideDelay|full|button|menu|shiftKey|metaKey|altKey|fromCharCode|frameborder|ctrlKey|attachEvent|detail|srcElement|control|CollectGarbage|readonly|frameBorder|alt|keyCode|111|readOnly|meta|detachEvent|120|rightClick|wheel|pass|some|associate|getRandom|clearChain|chain|DOMElement|execCommand|BackgroundImageCache|transparent|setInterval|embed|boolean|injectInside|times|bindAsEventListener|err|fromElement|iframe|khtml|whitespace|collection|clearTimeout|textnode|nodeName|MooTools|version|clearInterval|Window|taintEnabled|webkit420|getBoxObjectFor|navigator|all|Document|ie7|injectTop|cloneNode|borderStyle|borderColor|htmlFor|borderWidth|getText|getProperties|setAttribute|setText|colspan|colSpan|tabindex|tabIndex|maxlength|accessKey|accesskey|rowspan|rowSpan|removeProperty|attributes|float|styleFloat|cssFloat|toggleClass|createTextNode|replaceWith|replaceChild|zIndex|hasLayout|lastChild|getParent|getAttribute|getFirst|Sibling|getComputedStyle|getPropertyValue|maxLength|overrideMimeType|200|300|responseText|urlencoded|form|cancelBubble|XMLHTTP|charset|responseXML|Connection|Accept|html|ecma|With|Requested|close|setRequestHeader|postBody||utf|makeDraggable|Bounce|Elastic|Quad|618|Back|Circ|acos|Sine|Cubic|Quart|over|drop|emptydrop|leave|makeResizable|Quint|sqrt|java|gi|setHue|setSaturation|setBrightness|invert|pop|onerror|Image|4096|RGB|HSB|hellip|Group|showThisHideOpen|tool|serialize|10000|SmoothScroll|hash|onabort|screen|toGMTString|decodeURIComponent|isFinite|expires|setTime|exec|getResponseHeader|action|Eaeflnr|eval|readystatechange|stylesheet|media|json|JSON|Remote|Request||Expo|Microsoft|substring|XPathResult|UNORDERED_NODE_SNAPSHOT_TYPE|with|starts|ES|namespaceURI|snapshotLength|snapshotItem|checkbox|radio|getElementsByClassName|1999|w3|org|Pow|contextmenu|space|backspace|tab|esc|down|returnValue|enter|dblclick|keypress|submit|reset|blur|focus|keyup|resize|password|filterByTag|toLeft|toRight|Slide|toBottom|toTop|clearTimer|effect|toggle|easeIn|InOut|ease|Out|In|easeOut|easeInOut|500|linear|defer|DOMContentLoaded|protocol|write|offsetTop|https|offsetParent|void|innerWidth|onDomReady||innerHeight|offsetLeft'.split('|'),0,{})) diff --git a/abs/core/zoneminder/zm.conf.patch b/abs/core/zoneminder/zm.conf.patch deleted file mode 100644 index f7a9870..0000000 --- a/abs/core/zoneminder/zm.conf.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- ZoneMinder-1.23.3/zm.conf.in.orig 2006-11-16 01:06:30.000000000 -0800 -+++ ZoneMinder-1.23.3/zm.conf.in 2007-09-26 16:51:06.000000000 -0700 -@@ -14,6 +14,7 @@ - - # Path to build directory, used mostly for finding DB upgrade scripts - ZM_PATH_BUILD=@PATH_BUILD@ -+ZM_PATH_UPDATE=/usr/lib/zm/upgrade - - # Build time, used to record when to trigger various checks - ZM_TIME_BUILD=@TIME_BUILD@ -@@ -44,7 +45,7 @@ - ZM_DB_NAME=@ZM_DB_NAME@ - - # ZoneMinder database user --ZM_DB_USER=@ZM_DB_USER@ -+ZM_DB_USER=mythtv - - # ZoneMinder database password --ZM_DB_PASS=@ZM_DB_PASS@ -+ZM_DB_PASS=mythtv diff --git a/abs/core/zoneminder/zm.rc.d b/abs/core/zoneminder/zm.rc.d old mode 100644 new mode 100755 index 00cd73c..60f684b --- a/abs/core/zoneminder/zm.rc.d +++ b/abs/core/zoneminder/zm.rc.d @@ -5,7 +5,7 @@ . /etc/rc.d/functions prog=ZoneMinder -ZM_VERSION="1.23.3" +ZM_VERSION="1.24.0" ZM_PATH_BIN="/usr/lib/zm/bin" ZM_CONFIG="/etc/zm.conf" command="$ZM_PATH_BIN/zmpkg.pl" @@ -99,7 +99,7 @@ start() chown -R $ZM_WEB_USER:$ZM_WEB_GROUP /var/run/zm GetPath="select Value from Config where Name='ZM_PATH_SOCKS'" ZM_PATH_SOCK=`echo $GetPath | mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'` - [ -d $ZM_PATH_SOCK ] || mkdir -m 774 $ZM_PATH_SOCK + [ -d $ZM_PATH_SOCK ] || mkdir -m 774 -p $ZM_PATH_SOCK sudo -u $ZM_WEB_USER test -O $ZM_PATH_SOCK \ || chown -R $ZM_WEB_USER:$ZM_WEB_GROUP $ZM_PATH_SOCK # Setup the log dir diff --git a/abs/core/zoneminder/zmeventbackup b/abs/core/zoneminder/zmeventbackup new file mode 100755 index 0000000..71c9538 --- /dev/null +++ b/abs/core/zoneminder/zmeventbackup @@ -0,0 +1,48 @@ +#!/bin/bash +#=============================================================================== +# +# FILE: eventdump.sh +# +# USAGE: ./eventdump.sh +# +# DESCRIPTION: Uses mysqldump to create a .sql file for individual zm +# events to make Event table recovery possible by doing a +# 'find' search in ZoneMinder the events directory +# +# OPTIONS: --- +# REQUIREMENTS: --- mysqldump +# BUGS: --- +# NOTES: --- +# AUTHOR: Ross Melin +# COMPANY: +# VERSION: 1.0 +# CREATED: 03/06/2008 11:51:19 AM PST +# REVISION: --- +#=============================================================================== + +# Edit these to suit your configuration +ZM_CONFIG=/etc/zm.conf +MYSQLDUMP=/usr/bin/mysqldump +EVENTSDIR=/var/lib/zm/www/events + +# The rest should not need editing + +# Get the mysql user and password +source $ZM_CONFIG +MYDUMPOPTS="--user=$ZM_DB_USER --password=$ZM_DB_PASS --skip-opt --compact --quick --no-create-info" + + +for tag in $(find $EVENTSDIR -amin -65 -name ".[0-9]*") + do + EVENT_PATH=$(echo $tag |cut -f 1 -d .) + EVENT_ID=$(echo $tag |cut -f 2 -d .) + # Dump the sql statements needed to reload the Events, Frames and Stats tables + + echo "-- ZM_DB_VERSION=$ZM_VERSION +" > $EVENT_PATH.sql + + $MYSQLDUMP $MYDUMPOPTS --where="Id=$EVENT_ID" zm Events >> $EVENT_PATH.sql + $MYSQLDUMP $MYDUMPOPTS --where="Eventid=$EVENT_ID" zm Frames >> $EVENT_PATH.sql + $MYSQLDUMP $MYDUMPOPTS --where="Eventid=$EVENT_ID" zm Stats >> $EVENT_PATH.sql + +done diff --git a/abs/core/zoneminder/zmeventdump b/abs/core/zoneminder/zmeventdump deleted file mode 100755 index 17087b9..0000000 --- a/abs/core/zoneminder/zmeventdump +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -#=============================================================================== -# -# FILE: eventdump.sh -# -# USAGE: ./eventdump.sh -# -# DESCRIPTION: Uses mysqldump to create a .sql file for individual zm -# events to make Event table recovery possible by doing a -# 'find' search in ZoneMinder the events directory -# -# OPTIONS: --- -# REQUIREMENTS: --- mysqldump -# BUGS: --- -# NOTES: --- -# AUTHOR: Ross Melin -# COMPANY: -# VERSION: 1.0 -# CREATED: 03/06/2008 11:51:19 AM PST -# REVISION: --- -#=============================================================================== - -# Edit these to suit your configuration -ZM_CONFIG=/etc/zm.conf -MYSQLDUMP=/usr/bin/mysqldump -EVENTSDIR=/home/httpd/html/zm/events - -# The rest should not need editing - -# Get the mysql user and password -source $ZM_CONFIG -MYDUMPOPTS="--user=$ZM_DB_USER --password=$ZM_DB_PASS --skip-opt --compact --quick --no-create-info" - - -for tag in $(find $EVENTSDIR -amin -65 -name ".[0-9]*") - do - EVENT_PATH=$(echo $tag |cut -f 1 -d .) - EVENT_ID=$(echo $tag |cut -f 2 -d .) - # Dump the sql statements needed to reload the Events, Frames and Stats tables - - echo "-- ZM_DB_VERSION=$ZM_VERSION -" > $EVENT_PATH.sql - - $MYSQLDUMP $MYDUMPOPTS --where="Id=$EVENT_ID" zm Events >> $EVENT_PATH.sql - $MYSQLDUMP $MYDUMPOPTS --where="Eventid=$EVENT_ID" zm Frames >> $EVENT_PATH.sql - $MYSQLDUMP $MYDUMPOPTS --where="Eventid=$EVENT_ID" zm Stats >> $EVENT_PATH.sql - -done diff --git a/abs/core/zoneminder/zmfilter.pl b/abs/core/zoneminder/zmfilter.pl new file mode 100755 index 0000000..7875937 --- /dev/null +++ b/abs/core/zoneminder/zmfilter.pl @@ -0,0 +1,1119 @@ +#!/usr/bin/perl -wT +# +# ========================================================================== +# +# ZoneMinder Event Filter Script, $Date: 2008-10-09 10:17:07 +0100 (Thu, 09 Oct 2008) $, $Revision: 2659 $ +# Copyright (C) 2001-2008 Philip Coombes +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# ========================================================================== +# +# This script continuously monitors the recorded events for the given +# monitor and applies any filters which would delete and/or upload +# matching events +# +use strict; +use bytes; + +# ========================================================================== +# +# These are the elements you can edit to suit your installation +# +# ========================================================================== + +use constant DBG_ID => "zmfilter"; # Tag that appears in debug to identify source +use constant DBG_LEVEL => 0; # 0 is errors, warnings and info only, > 0 for debug + +use constant START_DELAY => 5; # How long to wait before starting + +# ========================================================================== +# +# You shouldn't need to change anything from here downwards +# +# ========================================================================== + +use ZoneMinder; +use DBI; +use POSIX; +use Time::HiRes qw/gettimeofday/; +use Date::Manip; +use Getopt::Long; +use PHP::Serialization qw(serialize unserialize); +use Data::Dumper; + +use constant EVENT_PATH => ZM_PATH_WEB.'/'.ZM_DIR_EVENTS; + +zmDbgInit( DBG_ID, level=>DBG_LEVEL ); +zmDbgSetSignal(); + +if ( ZM_OPT_UPLOAD ) +{ + # Comment these out if you don't have them and don't want to upload + # or don't want to use that format + if ( ZM_UPLOAD_ARCH_FORMAT eq "zip" ) + { + require Archive::Zip; + import Archive::Zip qw( :ERROR_CODES :CONSTANTS ); + } + else + { + require Archive::Tar; + } + require Net::FTP; +} + +if ( ZM_OPT_EMAIL ) +{ + if ( ZM_NEW_MAIL_MODULES ) + { + require MIME::Lite; + require Net::SMTP; + } + else + { + require MIME::Entity; + } +} + +if ( ZM_OPT_MESSAGE ) +{ + if ( ZM_NEW_MAIL_MODULES ) + { + require MIME::Lite; + require Net::SMTP; + } + else + { + require MIME::Entity; + } +} + + +$| = 1; + +$ENV{PATH} = '/bin:/usr/bin'; +$ENV{SHELL} = '/bin/sh' if exists $ENV{SHELL}; +delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; + +my $delay = ZM_FILTER_EXECUTE_INTERVAL; +my $event_id = 0; +my $filter_parm = ""; + +sub Usage +{ + print( " +Usage: zmfilter.pl [-f ,--filter=] +Parameters are :- +-f, --filter= - The name of a specific filter to run +"); + exit( -1 ); +} + +# +# More or less replicates the equivalent PHP function +# +sub strtotime +{ + my $dt_str = shift; + return( UnixDate( $dt_str, '%s' ) ); +} + +# +# More or less replicates the equivalent PHP function +# +sub str_repeat +{ + my $string = shift; + my $count = shift; + return( ${string}x${count} ); +} + +# Formats a date into MySQL format +sub DateTimeToSQL +{ + my $dt_str = shift; + my $dt_val = strtotime( $dt_str ); + if ( !$dt_val ) + { + Error( "Unable to parse date string '$dt_str'\n" ); + return( undef ); + } + return( strftime( "%Y-%m-%d %H:%M:%S", localtime( $dt_val ) ) ); +} + +if ( !GetOptions( 'filter=s'=>\$filter_parm ) ) +{ + Usage(); +} + +chdir( EVENT_PATH ); + +my $dbh = zmDbConnect(); + +if ( $filter_parm ) +{ + Info( "Scanning for events using filter '$filter_parm'\n" ); +} +else +{ + Info( "Scanning for events\n" ); +} + +if ( !$filter_parm ) +{ + sleep( START_DELAY ); +} + +my $filters; +my $last_action = 0; + +while( 1 ) +{ + if ( (time() - $last_action) > ZM_FILTER_RELOAD_DELAY ) + { + Debug( "Reloading filters\n" ); + $last_action = time(); + $filters = getFilters( $filter_parm ); + } + + foreach my $filter ( @$filters ) + { + checkFilter( $filter ); + } + + last if ( $filter_parm ); + + Debug( "Sleeping for $delay seconds\n" ); + sleep( $delay ); +} + +sub getDiskPercent +{ + my $command = "df ."; + my $df = qx( $command ); + my $space = -1; + if ( $df =~ /\s(\d+)%/ms ) + { + $space = $1; + } + return( $space ); +} + +sub getDiskBlocks +{ + my $command = "df ."; + my $df = qx( $command ); + my $space = -1; + if ( $df =~ /\s(\d+)\s+\d+\s+\d+%/ms ) + { + $space = $1; + } + return( $space ); +} + +sub getLoad +{ + my $command = "uptime ."; + my $uptime = qx( $command ); + my $load = -1; + if ( $uptime =~ /load average:\s+([\d.]+)/ms ) + { + $load = $1; + Info( "Load: $load" ); + } + return( $load ); +} + +sub getFilters +{ + my $filter_name = shift; + + my @filters; + my $sql = "select * from Filters where"; + if ( $filter_name ) + { + $sql .= " Name = ? and"; + } + else + { + $sql .= " Background = 1 and"; + } + $sql .= " (AutoArchive = 1 or AutoVideo = 1 or AutoUpload = 1 or AutoEmail = 1 or AutoMessage = 1 or AutoExecute = 1 or AutoDelete = 1) order by Name"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res; + if ( $filter_name ) + { + $res = $sth->execute( $filter_name ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + } + else + { + $res = $sth->execute() or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + } + FILTER: while( my $db_filter = $sth->fetchrow_hashref() ) + { + Debug( "Found filter '$db_filter->{Name}'\n" ); + my $filter_expr = unserialize( $db_filter->{Query} ); + my $sql = "select E.Id,E.MonitorId,M.Name as MonitorName,M.DefaultRate,M.DefaultScale,E.Name,E.Cause,E.Notes,E.StartTime,unix_timestamp(E.StartTime) as Time,E.Length,E.Frames,E.AlarmFrames,E.TotScore,E.AvgScore,E.MaxScore,E.Archived,E.Videoed,E.Uploaded,E.Emailed,E.Messaged,E.Executed from Events as E inner join Monitors as M on M.Id = E.MonitorId where not isnull(E.EndTime)"; + $db_filter->{Sql} = ''; + + if ( @{$filter_expr->{terms}} ) + { + for ( my $i = 0; $i < @{$filter_expr->{terms}}; $i++ ) + { + if ( exists($filter_expr->{terms}[$i]->{cnj}) ) + { + $db_filter->{Sql} .= " ".$filter_expr->{terms}[$i]->{cnj}." "; + } + if ( exists($filter_expr->{terms}[$i]->{obr}) ) + { + $db_filter->{Sql} .= " ".str_repeat( "(", $filter_expr->{terms}[$i]->{obr} )." "; + } + my $value = $filter_expr->{terms}[$i]->{val}; + my @value_list; + if ( $filter_expr->{terms}[$i]->{attr} ) + { + if ( $filter_expr->{terms}[$i]->{attr} =~ /^Monitor/ ) + { + my ( $temp_attr_name ) = $filter_expr->{terms}[$i]->{attr} =~ /^Monitor(.+)$/; + $db_filter->{Sql} .= "M.".$temp_attr_name; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'DateTime' ) + { + $db_filter->{Sql} .= "E.StartTime"; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Date' ) + { + $db_filter->{Sql} .= "to_days( E.StartTime )"; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Time' ) + { + $db_filter->{Sql} .= "extract( hour_second from E.StartTime )"; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Weekday' ) + { + $db_filter->{Sql} .= "weekday( E.StartTime )"; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'DiskPercent' ) + { + $db_filter->{Sql} .= "zmDiskPercent"; + $db_filter->{HasDiskPercent} = !undef; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'DiskBlocks' ) + { + $db_filter->{Sql} .= "zmDiskBlocks"; + $db_filter->{HasDiskBlocks} = !undef; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'SystemLoad' ) + { + $db_filter->{Sql} .= "zmSystemLoad"; + $db_filter->{HasSystemLoad} = !undef; + } + else + { + $db_filter->{Sql} .= "E.".$filter_expr->{terms}[$i]->{attr}; + } + + ( my $stripped_value = $value ) =~ s/^["\']+?(.+)["\']+?$/$1/; + foreach my $temp_value ( split( '/["\'\s]*?,["\'\s]*?/', $stripped_value ) ) + { + if ( $filter_expr->{terms}[$i]->{attr} =~ /^Monitor/ ) + { + $value = "'$temp_value'"; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Name' || $filter_expr->{terms}[$i]->{attr} eq 'Cause' || $filter_expr->{terms}[$i]->{attr} eq 'Notes' ) + { + $value = "'$temp_value'"; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'DateTime' ) + { + $value = DateTimeToSQL( $temp_value ); + if ( !$value ) + { + Error( "Error parsing date/time '$temp_value', skipping filter '$db_filter->{Name}'\n" ); + next FILTER; + } + $value = "'$value'"; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Date' ) + { + $value = DateTimeToSQL( $temp_value ); + if ( !$value ) + { + Error( "Error parsing date/time '$temp_value', skipping filter '$db_filter->{Name}'\n" ); + next FILTER; + } + $value = "to_days( '$value' )"; + } + elsif ( $filter_expr->{terms}[$i]->{attr} eq 'Time' ) + { + $value = DateTimeToSQL( $temp_value ); + if ( !$value ) + { + Error( "Error parsing date/time '$temp_value', skipping filter '$db_filter->{Name}'\n" ); + next FILTER; + } + $value = "extract( hour_second from '$value' )"; + } + else + { + $value = $temp_value; + } + push( @value_list, $value ); + } + } + if ( $filter_expr->{terms}[$i]->{op} ) + { + if ( $filter_expr->{terms}[$i]->{op} eq '=~' ) + { + $db_filter->{Sql} .= " regexp $value"; + } + elsif ( $filter_expr->{terms}[$i]->{op} eq '!~' ) + { + $db_filter->{Sql} .= " not regexp $value"; + } + elsif ( $filter_expr->{terms}[$i]->{op} eq '=[]' ) + { + $db_filter->{Sql} .= " in (".join( ",", @value_list ).")"; + } + elsif ( $filter_expr->{terms}[$i]->{op} eq '!~' ) + { + $db_filter->{Sql} .= " not in (".join( ",", @value_list ).")"; + } + else + { + $db_filter->{Sql} .= " ".$filter_expr->{terms}[$i]->{op}." $value"; + } + } + if ( exists($filter_expr->{terms}[$i]->{cbr}) ) + { + $db_filter->{Sql} .= " ".str_repeat( ")", $filter_expr->{terms}[$i]->{cbr} )." "; + } + } + } + if ( $db_filter->{Sql} ) + { + $sql .= " and ( ".$db_filter->{Sql}." )"; + } + my @auto_terms; + if ( $db_filter->{AutoArchive} ) + { + push( @auto_terms, "E.Archived = 0" ) + } + if ( $db_filter->{AutoVideo} ) + { + push( @auto_terms, "E.Videoed = 0" ) + } + if ( $db_filter->{AutoUpload} ) + { + push( @auto_terms, "E.Uploaded = 0" ) + } + if ( $db_filter->{AutoEmail} ) + { + push( @auto_terms, "E.Emailed = 0" ) + } + if ( $db_filter->{AutoMessage} ) + { + push( @auto_terms, "E.Messaged = 0" ) + } + if ( $db_filter->{AutoExecute} ) + { + push( @auto_terms, "E.Executed = 0" ) + } + if ( @auto_terms ) + { + $sql .= " and ( ".join( " or ", @auto_terms )." )"; + } + if ( !$filter_expr->{sort_field} ) + { + $filter_expr->{sort_field} = 'StartTime'; + $filter_expr->{sort_asc} = 0; + } + my $sort_column = ''; + if ( $filter_expr->{sort_field} eq 'Id' ) + { + $sort_column = "E.Id"; + } + elsif ( $filter_expr->{sort_field} eq 'MonitorName' ) + { + $sort_column = "M.Name"; + } + elsif ( $filter_expr->{sort_field} eq 'Name' ) + { + $sort_column = "E.Name"; + } + elsif ( $filter_expr->{sort_field} eq 'StartTime' ) + { + $sort_column = "E.StartTime"; + } + elsif ( $filter_expr->{sort_field} eq 'Secs' ) + { + $sort_column = "E.Length"; + } + elsif ( $filter_expr->{sort_field} eq 'Frames' ) + { + $sort_column = "E.Frames"; + } + elsif ( $filter_expr->{sort_field} eq 'AlarmFrames' ) + { + $sort_column = "E.AlarmFrames"; + } + elsif ( $filter_expr->{sort_field} eq 'TotScore' ) + { + $sort_column = "E.TotScore"; + } + elsif ( $filter_expr->{sort_field} eq 'AvgScore' ) + { + $sort_column = "E.AvgScore"; + } + elsif ( $filter_expr->{sort_field} eq 'MaxScore' ) + { + $sort_column = "E.MaxScore"; + } + else + { + $sort_column = "E.StartTime"; + } + my $sort_order = $filter_expr->{sort_asc}?"asc":"desc"; + $sql .= " order by ".$sort_column." ".$sort_order; + if ( $filter_expr->{limit} ) + { + $sql .= " limit 0,".$filter_expr->{limit}; + } + Debug( "SQL:$sql\n" ); + $db_filter->{Sql} = $sql; + if ( $db_filter->{AutoExecute} ) + { + my $script = $db_filter->{AutoExecuteCmd}; + $script =~ s/\s.*$//; + if ( !-e $script ) + { + Error( "Auto execute script '$script' not found, skipping filter '$db_filter->{Name}'\n" ); + next FILTER; + + } + elsif ( !-x $script ) + { + Error( "Auto execute script '$script' not executable, skipping filter '$db_filter->{Name}'\n" ); + next FILTER; + } + } + push( @filters, $db_filter ); + } + $sth->finish(); + + return( \@filters ); +} + +sub checkFilter +{ + my $filter = shift; + + Debug( "Checking filter '$filter->{Name}'". + ($filter->{AutoDelete}?", delete":""). + ($filter->{AutoArchive}?", archive":""). + ($filter->{AutoVideo}?", video":""). + ($filter->{AutoUpload}?", upload":""). + ($filter->{AutoEmail}?", email":""). + ($filter->{AutoMessage}?", message":""). + ($filter->{AutoExecute}?", execute":""). + "\n" + ); + my $sql = $filter->{Sql}; + + if ( $filter->{HasDiskPercent} ) + { + my $disk_percent = getDiskPercent(); + $sql =~ s/zmDiskPercent/$disk_percent/g; + } + if ( $filter->{HasDiskBlocks} ) + { + my $disk_blocks = getDiskBlocks(); + $sql =~ s/zmDiskBlocks/$disk_blocks/g; + } + if ( $filter->{HasSystemLoad} ) + { + my $load = getLoad(); + $sql =~ s/zmSystemLoad/$load/g; + } + + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute(); + if ( !$res ) + { + Error( "Can't execute filter '$sql', ignoring: ".$sth->errstr() ); + return; + } + + while( my $event = $sth->fetchrow_hashref() ) + { + Debug( "Checking event $event->{Id}\n" ); + my $delete_ok = !undef; + if ( $filter->{AutoArchive} ) + { + Info( "Archiving event $event->{Id}\n" ); + # Do it individually to avoid locking up the table for new events + my $sql = "update Events set Archived = 1 where Id = ?"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + } + if ( ZM_OPT_FFMPEG && $filter->{AutoVideo} ) + { + if ( !$event->{Videoed} ) + { + $delete_ok = undef if ( !generateVideo( $filter, $event ) ); + } + } + if ( ZM_OPT_EMAIL && $filter->{AutoEmail} ) + { + if ( !$event->{Emailed} ) + { + $delete_ok = undef if ( !sendEmail( $filter, $event ) ); + } + } + if ( ZM_OPT_MESSAGE && $filter->{AutoMessage} ) + { + if ( !$event->{Messaged} ) + { + $delete_ok = undef if ( !sendMessage( $filter, $event ) ); + } + } + if ( ZM_OPT_UPLOAD && $filter->{AutoUpload} ) + { + if ( !$event->{Uploaded} ) + { + $delete_ok = undef if ( !uploadArchFile( $filter, $event ) ); + } + } + if ( $filter->{AutoExecute} ) + { + if ( !$event->{Execute} ) + { + $delete_ok = undef if ( !executeCommand( $filter, $event ) ); + } + } + if ( $filter->{AutoDelete} ) + { + if ( $delete_ok ) + { + Info( "Deleting event $event->{Id}\n" ); + # Do it individually to avoid locking up the table for new events + my $sql = "delete from Events where Id = ?"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + + if ( !ZM_OPT_FAST_DELETE ) + { + my $sql = "delete from Frames where EventId = ?"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + + $sql = "delete from Stats where EventId = ?"; + $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + + deleteEventFiles( $event->{Id}, $event->{MonitorId} ); + } + } + else + { + Error( "Unable to delete event $event->{Id} as previous operations failed\n" ); + } + } + } + $sth->finish(); +} + +sub generateVideo +{ + my $filter = shift; + my $event = shift; + my $phone = shift; + + my $rate = $event->{DefaultRate}/100; + my $scale = $event->{DefaultScale}/100; + my $format; + + my @ffmpeg_formats = split( /\s+/, ZM_FFMPEG_FORMATS ); + my $default_video_format; + my $default_phone_format; + foreach my $ffmpeg_format( @ffmpeg_formats ) + { + if ( $ffmpeg_format =~ /^(.+)\*\*$/ ) + { + $default_phone_format = $1; + } + elsif ( $ffmpeg_format =~ /^(.+)\*$/ ) + { + $default_video_format = $1; + } + } + + if ( $phone && $default_phone_format ) + { + $format = $default_phone_format; + } + elsif ( $default_video_format ) + { + $format = $default_video_format; + } + else + { + $format = $ffmpeg_formats[0]; + } + + my $command = ZM_PATH_BIN."/zmvideo.pl -e ".$event->{Id}." -r ".$rate." -s ".$scale." -f ".$format; + my $output = qx($command); + chomp( $output ); + my $status = $? >> 8; + if ( $status || DBG_LEVEL > 0 ) + { + Debug( "Output: $output\n" ); + } + if ( $status ) + { + Error( "Video generation '$command' failed with status: $status\n" ); + if ( wantarray() ) + { + return( undef, undef ); + } + return( 0 ); + } + else + { + my $sql = "update Events set Videoed = 1 where Id = ?"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + if ( wantarray() ) + { + return( $format, sprintf( "%s/%s", getEventPath( $event ), $output ) ); + } + } + return( 1 ); +} + +sub uploadArchFile +{ + my $filter = shift; + my $event = shift; + if ( !ZM_UPLOAD_FTP_HOST ) + { + Error( "Cannot upload archive as no FTP host defined" ); + return( 0 ); + } + + my $arch_file = ZM_UPLOAD_FTP_LOC_DIR.'/'.$event->{MonitorName}.'-'.$event->{Id}; + my $arch_image_path = getEventPath( $event )."/".((ZM_UPLOAD_ARCH_ANALYSE)?'{*analyse,*capture}':'*capture').".jpg"; + my @arch_image_files = glob($arch_image_path); + + my $arch_error; + if ( ZM_UPLOAD_ARCH_FORMAT eq "zip" ) + { + $arch_file .= '.zip'; + my $zip = Archive::Zip->new(); + Info( "Creating upload file '$arch_file', ".int(@arch_image_files)." files\n" ); + + my $status = &AZ_OK; + foreach my $image_file ( @arch_image_files ) + { + Info( "Adding $image_file\n" ); + my $member = $zip->addFile( $image_file ); + last unless ( $member ); + $member->desiredCompressionMethod( (ZM_UPLOAD_ARCH_COMPRESS)?&COMPRESSION_DEFLATED:&COMPRESSION_STORED ); + } + $status = $zip->writeToFileNamed( $arch_file ); + + if ( $arch_error = ($status != &AZ_OK) ) + { + Error( "Zip error: $status\n " ); + } + } + elsif ( ZM_UPLOAD_ARCH_FORMAT eq "tar" ) + { + if ( ZM_UPLOAD_ARCH_COMPRESS ) + { + $arch_file .= '.tar.gz'; + } + else + { + $arch_file .= '.tar'; + } + Info( "Creating upload file '$arch_file', ".int(@arch_image_files)." files\n" ); + + if ( $arch_error = !Archive::Tar->create_archive( $arch_file, ZM_UPLOAD_ARCH_COMPRESS, @arch_image_files ) ) + { + Error( "Tar error: ".Archive::Tar->error()."\n " ); + } + } + + if ( $arch_error ) + { + return( 0 ); + } + else + { + Info( "Uploading to ".ZM_UPLOAD_FTP_HOST."\n" ); + my $ftp = Net::FTP->new( ZM_UPLOAD_FTP_HOST, Timeout=>ZM_UPLOAD_FTP_TIMEOUT, Passive=>ZM_UPLOAD_FTP_PASSIVE, Debug=>ZM_UPLOAD_FTP_DEBUG ); + if ( !$ftp ) + { + warn( "Can't create ftp connection: $@" ); + return( 0 ); + } + + $ftp->login( ZM_UPLOAD_FTP_USER, ZM_UPLOAD_FTP_PASS ) or warn( "FTP - Can't login" ); + $ftp->binary() or warn( "FTP - Can't go binary" ); + $ftp->cwd( ZM_UPLOAD_FTP_REM_DIR ) or warn( "FTP - Can't cwd" ); + $ftp->put( $arch_file ) or warn( "FTP - Can't upload '$arch_file'" ); + $ftp->quit() or warn( "FTP - Can't quit" ); + unlink( $arch_file ); + my $sql = "update Events set Uploaded = 1 where Id = ?"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + } + return( 1 ); +} + +sub substituteTags +{ + my $text = shift; + my $filter = shift; + my $event = shift; + my $attachments_ref = shift; + + # First we'd better check what we need to get + # We have a filter and an event, do we need any more + # monitor information? + my $need_monitor = $text =~ /%(?:MET|MEH|MED|MEW|MEN|MEA)%/; + + my $monitor = {}; + if ( $need_monitor ) + { + my $db_now = strftime( "%Y-%m-%d %H:%M:%S", localtime() ); + my $sql = "select M.Id, count(E.Id) as EventCount, count(if(E.Archived,1,NULL)) as ArchEventCount, count(if(E.StartTime>'$db_now' - INTERVAL 1 HOUR && E.Archived = 0,1,NULL)) as HourEventCount, count(if(E.StartTime>'$db_now' - INTERVAL 1 DAY && E.Archived = 0,1,NULL)) as DayEventCount, count(if(E.StartTime>'$db_now' - INTERVAL 7 DAY && E.Archived = 0,1,NULL)) as WeekEventCount, count(if(E.StartTime>'$db_now' - INTERVAL 1 MONTH && E.Archived = 0,1,NULL)) as MonthEventCount from Monitors as M left join Events as E on E.MonitorId = M.Id where MonitorId = ? group by E.MonitorId order by Id"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{MonitorId} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + $monitor = $sth->fetchrow_hashref(); + $sth->finish(); + return() if ( !$monitor ); + } + + # Do we need the image information too? + my $need_images = $text =~ /%(?:EPI1|EPIM|EI1|EIM)%/; + my $first_alarm_frame; + my $max_alarm_frame; + my $max_alarm_score = 0; + if ( $need_images ) + { + my $sql = "select * from Frames where EventId = ? and Type = 'Alarm' order by FrameId"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + while( my $frame = $sth->fetchrow_hashref() ) + { + if ( !$first_alarm_frame ) + { + $first_alarm_frame = $frame; + } + if ( $frame->{Score} > $max_alarm_score ) + { + $max_alarm_frame = $frame; + $max_alarm_score = $frame->{Score}; + } + } + $sth->finish(); + } + + my $url = ZM_URL; + $text =~ s/%ZP%/$url/g; + $text =~ s/%MN%/$event->{MonitorName}/g; + $text =~ s/%MET%/$monitor->{EventCount}/g; + $text =~ s/%MEH%/$monitor->{HourEventCount}/g; + $text =~ s/%MED%/$monitor->{DayEventCount}/g; + $text =~ s/%MEW%/$monitor->{WeekEventCount}/g; + $text =~ s/%MEM%/$monitor->{MonthEventCount}/g; + $text =~ s/%MEA%/$monitor->{ArchEventCount}/g; + $text =~ s/%MP%/$url?view=watch&mid=$event->{MonitorId}/g; + $text =~ s/%MPS%/$url?view=watchfeed&mid=$event->{MonitorId}&mode=stream/g; + $text =~ s/%MPI%/$url?view=watchfeed&mid=$event->{MonitorId}&mode=still/g; + $text =~ s/%EP%/$url?view=event&mid=$event->{MonitorId}&eid=$event->{Id}/g; + $text =~ s/%EPS%/$url?view=event&mode=stream&mid=$event->{MonitorId}&eid=$event->{Id}/g; + $text =~ s/%EPI%/$url?view=event&mode=still&mid=$event->{MonitorId}&eid=$event->{Id}/g; + $text =~ s/%EI%/$event->{Id}/g; + $text =~ s/%EN%/$event->{Name}/g; + $text =~ s/%EC%/$event->{Cause}/g; + $text =~ s/%ED%/$event->{Notes}/g; + $text =~ s/%ET%/$event->{StartTime}/g; + $text =~ s/%EL%/$event->{Length}/g; + $text =~ s/%EF%/$event->{Frames}/g; + $text =~ s/%EFA%/$event->{AlarmFrames}/g; + $text =~ s/%EST%/$event->{TotScore}/g; + $text =~ s/%ESA%/$event->{AvgScore}/g; + $text =~ s/%ESM%/$event->{MaxScore}/g; + if ( $first_alarm_frame ) + { + $text =~ s/%EPI1%/$url?view=frame&mid=$event->{MonitorId}&eid=$event->{Id}&fid=$first_alarm_frame->{FrameId}/g; + $text =~ s/%EPIM%/$url?view=frame&mid=$event->{MonitorId}&eid=$event->{Id}&fid=$max_alarm_frame->{FrameId}/g; + if ( $attachments_ref && $text =~ s/%EI1%//g ) + { + push( @$attachments_ref, { type=>"image/jpeg", path=>sprintf( "%s/%0".ZM_EVENT_IMAGE_DIGITS."d-capture.jpg", getEventPath( $event ), $first_alarm_frame->{FrameId} ) } ); + } + if ( $attachments_ref && $text =~ s/%EIM%//g ) + { + # Don't attach the same image twice + if ( !@$attachments_ref || ($first_alarm_frame->{FrameId} != $max_alarm_frame->{FrameId} ) ) + { + push( @$attachments_ref, { type=>"image/jpeg", path=>sprintf( "%s/%0".ZM_EVENT_IMAGE_DIGITS."d-capture.jpg", getEventPath( $event ), $max_alarm_frame->{FrameId} ) } ); + } + } + } + if ( $attachments_ref && ZM_OPT_FFMPEG ) + { + if ( $text =~ s/%EV%//g ) + { + my ( $format, $path ) = generateVideo( $filter, $event ); + if ( !$format ) + { + return( undef ); + } + push( @$attachments_ref, { type=>"video/$format", path=>$path } ); + } + if ( $text =~ s/%EVM%//g ) + { + my ( $format, $path ) = generateVideo( $filter, $event, 1 ); + if ( !$format ) + { + return( undef ); + } + push( @$attachments_ref, { type=>"video/$format", path=>$path } ); + } + } + $text =~ s/%FN%/$filter->{Name}/g; + ( my $filter_name = $filter->{Name} ) =~ s/ /+/g; + $text =~ s/%FP%/$url?view=filter&mid=$event->{MonitorId}&filter_name=$filter_name/g; + + return( $text ); +} + +sub sendEmail +{ + my $filter = shift; + my $event = shift; + + if ( !ZM_FROM_EMAIL ) + { + warn( "No 'from' email address defined, not sending email" ); + return( 0 ); + } + if ( !ZM_EMAIL_ADDRESS ) + { + warn( "No email address defined, not sending email" ); + return( 0 ); + } + + Info( "Creating notification email\n" ); + + my $subject = substituteTags( ZM_EMAIL_SUBJECT, $filter, $event ); + return( 0 ) if ( !$subject ); + my @attachments; + my $body = substituteTags( ZM_EMAIL_BODY, $filter, $event, \@attachments ); + return( 0 ) if ( !$body ); + + Info( "Sending notification email '$subject'\n" ); + + eval + { + if ( ZM_NEW_MAIL_MODULES ) + { + ### Create the multipart container + my $mail = MIME::Lite->new ( + From => ZM_FROM_EMAIL, + To => ZM_EMAIL_ADDRESS, + Subject => $subject, + Type => "multipart/mixed" + ); + ### Add the text message part + $mail->attach ( + Type => "TEXT", + Data => $body + ); + ### Add the attachments + foreach my $attachment ( @attachments ) + { + Info( "Attaching '$attachment->{path}\n" ); + $mail->attach( + Path => $attachment->{path}, + Type => $attachment->{type}, + Disposition => "attachment" + ); + } + ### Send the Message + MIME::Lite->send( "smtp", ZM_EMAIL_HOST, Timeout=>60 ); + $mail->send(); + } + else + { + my $from_email = substituteTags( ZM_FROM_EMAIL ); + my $email_address = substituteTags( ZM_EMAIL_ADDRESS ); + my @attachpaths ; + foreach my $attachment ( @attachments ) + { + push(@attachpaths, $attachment->{path} ); + } + my $attachstring ; + if ( @attachpaths ) + { + $attachstring = join(" -a "," ", @attachpaths); + } + Info( "Executing /usr/bin/email -s \" $subject\" $attachstring -f $from_email $email_address \n" ); + my $mail = `/usr/bin/email -s \"$subject\" $attachstring -f $from_email $email_address << EOF $body `; + } + }; + if ( $@ ) + { + warn( "Can't send email: $@" ); + return( 0 ); + } + else + { + Info( "Notification email sent\n" ); + } + my $sql = "update Events set Emailed = 1 where Id = ?"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + + return( 1 ); +} + +sub sendMessage +{ + my $filter = shift; + my $event = shift; + + if ( !ZM_FROM_EMAIL ) + { + warn( "No 'from' email address defined, not sending message" ); + return( 0 ); + } + if ( !ZM_MESSAGE_ADDRESS ) + { + warn( "No message address defined, not sending message" ); + return( 0 ); + } + + Info( "Creating notification message\n" ); + + my $subject = substituteTags( ZM_MESSAGE_SUBJECT, $filter, $event ); + return( 0 ) if ( !$subject ); + my @attachments; + my $body = substituteTags( ZM_MESSAGE_BODY, $filter, $event, \@attachments ); + return( 0 ) if ( !$body ); + + Info( "Sending notification message '$subject'\n" ); + + eval + { + if ( ZM_NEW_MAIL_MODULES ) + { + ### Create the multipart container + my $mail = MIME::Lite->new ( + From => ZM_FROM_EMAIL, + To => ZM_MESSAGE_ADDRESS, + Subject => $subject, + Type => "multipart/mixed" + ); + ### Add the text message part + $mail->attach ( + Type => "TEXT", + Data => $body + ); + ### Add the attachments + foreach my $attachment ( @attachments ) + { + Info( "Attaching '$attachment->{path}\n" ); + $mail->attach( + Path => $attachment->{path}, + Type => $attachment->{type}, + Disposition => "attachment" + ); + } + ### Send the Message + MIME::Lite->send( "smtp", ZM_EMAIL_HOST, Timeout=>60 ); + $mail->send(); + } + else + { + my $from_email = substituteTags( ZM_FROM_EMAIL ); + my $email_address = substituteTags( ZM_EMAIL_ADDRESS ); + my @attachpaths ; + foreach my $attachment ( @attachments ) + { + push(@attachpaths, $attachment->{path} ); + } + my $attachstring ; + if ( @attachpaths ) + { + $attachstring = join(" -a "," ", @attachpaths); + } + Info( "Executing /usr/bin/email -s \" $subject\" $attachstring -f $from_email $email_address \n" ); + my $mail = `/usr/bin/email -s \"$subject\" $attachstring -f $from_email $email_address << EOF $body `; + } + }; + if ( $@ ) + { + warn( "Can't send email: $@" ); + return( 0 ); + } + else + { + Info( "Notification message sent\n" ); + } + my $sql = "update Events set Messaged = 1 where Id = ?"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + + return( 1 ); +} + +sub executeCommand +{ + my $filter = shift; + my $event = shift; + + my $event_path = getEventPath( $event ); + + my $command = $filter->{AutoExecuteCmd}; + $command .= " $event_path"; + + Info( "Executing '$command'\n" ); + my $output = qx($command); + my $status = $? >> 8; + if ( $status || DBG_LEVEL > 0 ) + { + chomp( $output ); + Debug( "Output: $output\n" ); + } + if ( $status ) + { + Error( "Command '$command' exited with status: $status\n" ); + return( 0 ); + } + else + { + my $sql = "update Events set Executed = 1 where Id = ?"; + my $sth = $dbh->prepare_cached( $sql ) or Fatal( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute( $event->{Id} ) or Fatal( "Can't execute '$sql': ".$sth->errstr() ); + } + return( 1 ); +} + diff --git a/abs/core/zoneminder/zminit.arch b/abs/core/zoneminder/zminit.arch old mode 100644 new mode 100755 diff --git a/abs/core/zoneminder/zmupdate.patch b/abs/core/zoneminder/zmupdate.patch deleted file mode 100644 index 913a6ec..0000000 --- a/abs/core/zoneminder/zmupdate.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- ZoneMinder-1.23.3/scripts/zmupdate.pl.orig 2007-09-26 17:05:19.000000000 -0700 -+++ ZoneMinder-1.23.3/scripts/zmupdate.pl 2007-09-26 17:10:55.000000000 -0700 -@@ -327,7 +327,7 @@ - $command .= " -p".$db_pass; - } - } -- $command .= " ".ZM_DB_NAME." < ".ZM_PATH_BUILD."/db/zm_update-".$version.".sql"; -+ $command .= " ".ZM_DB_NAME." < ".ZM_PATH_UPDATE."/zm_update-".$version.".sql"; - - print( "Executing '$command'\n" ) if ( DBG_LEVEL > 0 ); - my $output = qx($command); -diff -Naru ZoneMinder-1.23.3-orig/scripts/zmlogrotate.conf.in ZoneMinder-1.23.3/scripts/zmlogrotate.conf.in ---- ZoneMinder-1.23.3-orig/scripts/zmlogrotate.conf.in 2008-02-25 20:19:52.000000000 +1030 -+++ ZoneMinder-1.23.3/scripts/zmlogrotate.conf.in 2009-07-20 20:18:16.000000000 +0930 -@@ -7,7 +7,7 @@ - missingok - } - --Now the weekly db backup -+# Now the weekly db backup - - /var/lib/zm/zm_backup.sql { - weekly diff --git a/abs/core/zoneminder/zoneminder.install b/abs/core/zoneminder/zoneminder.install old mode 100644 new mode 100755 index 1f3cfc0..250749f --- a/abs/core/zoneminder/zoneminder.install +++ b/abs/core/zoneminder/zoneminder.install @@ -1,69 +1,55 @@ # zoneminder.install ## arg 1: the new package version -pre_install() { - echo -} - -## arg 1: the new package version post_install() { -chown http.http /data/srv/httpd/htdocs/zm/events -chown http.http /data/srv/httpd/htdocs/zm/images -chown http.http /data/srv/httpd/htdocs/zm/temp -chown http.http /etc/zm.conf - -cat << EOF + ln -s /usr/share/cambozola/cambozola.jar /srv/zoneminder/www/ + chown -R http.http /srv/zoneminder + chown http.http /etc/zm.conf + cat << EOF Note: -==> mythtv has been defined in /etc/zm.conf as user and password for -==> The zoneminder (zm) database ==> To initialize the ZoneMinder database run (as root) ==> /usr/lib/zm/bin/zminit - EOF -cat /etc/sysctl.conf |grep "kernel.shmall" >/dev/null || cat << EOF -==> To raise the limit on shared memory for zoneminder -==> add these lines to /etc/sysctl.conf -==> kernel.shmall = 134217728 -==> kernel.shmmax = 134217728 +cat << EOF +==> Check /etc/php/php.ini and make sure these are uncommented +==> extension=gd.so +==> extension=gettext.so +==> extension=mcrypt.so +==> extension=mysql.so +==> extension=mysqli.so +==> extension=session.so +==> extension=sockets.so +EOF +cat << EOF +==> Check /etc/php/php.ini and make sure short_open_tag = On EOF -[ -d /var/lib/zm ] || mkdir /var/lib/zm/ -touch /var/lib/zm/zm_backup.sql - -# Reuse the old config -[ -f /etc/zm.conf.pacnew ] && cat /etc/zm.conf | sed -e "s/^ZM_VERSION=.*$/ZM_VERSION=1.23.3/" > /tmp/zm.conf -[ -f /etc/zm.conf.pacsave ] && cat /etc/zm.conf.pacsave | sed -e "s/^ZM_VERSION=.*$/ZM_VERSION=1.23.3/" > /tmp/zm.conf -[ -f /tmp/zm.conf ] && mv -f /tmp/zm.conf /etc/zm.conf && chown -R nobody.nobody /etc/zm.conf +cat /etc/php/php.ini |grep "^open_basedir.*/etc/" | \ +grep "/var/lib/zm/www">/dev/null || cat << EOF +==> You must edit /etc/php/php.ini and add to open_basedir "/etc/" and +==> "/var/lib/zm/" like so +==> open_basedir = /home/:/tmp/:/usr/share/pear/:/etc/:/var/lib/zm/ +==> Otherwise ZoneMinder will be unable to read /etc/zm.conf +==> or display its own web directory +EOF +cat << EOF +Note: +==> You must edit /etc/httpd/conf/httpd.conf and uncomment/add the line +==> LoadModule php5_module modules/libphp5.so +==> You must also add these lines: +==> Include conf/extra/php5_module.conf +==> Include /etc/httpd/conf/extra/httpd-zm.conf +EOF +touch /var/lib/zm/zm_backup.sql } -## arg 1: the new package version -## arg 2: the old package version -pre_upgrade() { - echo -} ## arg 1: the new package version ## arg 2: the old package version post_upgrade() { - - # Reuse the old config -[ -f /etc/zm.conf.pacnew ] && cat /etc/zm.conf | sed -e "s/^ZM_VERSION=.*$/ZM_VERSION=1.23.3/" > /tmp/zm.conf -[ -f /etc/zm.conf.pacsave ] && cat /etc/zm.conf.pacsave | sed -e "s/^ZM_VERSION=.*$/ZM_VERSION=1.23.3/" > /tmp/zm.conf -[ -f /tmp/zm.conf ] && mv -f /tmp/zm.conf /etc/zm.conf && chown -R http.http /etc/zm.conf -add_service.sh zm -} -## arg 1: the old package version -pre_remove() { - echo +/usr/lib/zm/bin/zmupdate.pl -f >/dev/null } - -## arg 1: the old package version -post_remove() { - echo - remove_service.sh zm -} - # vim:set ts=2 sw=2 et: -- cgit v0.12 From 05bf1ffe6a564d12266613616133517e9e9e972f Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Tue, 20 Sep 2011 17:37:18 -0500 Subject: cambozola: Initial inclusion. Dep of zoneminder. refs #770 --- abs/extra/cambozola/PKGBUILD | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 abs/extra/cambozola/PKGBUILD diff --git a/abs/extra/cambozola/PKGBUILD b/abs/extra/cambozola/PKGBUILD new file mode 100644 index 0000000..27664f1 --- /dev/null +++ b/abs/extra/cambozola/PKGBUILD @@ -0,0 +1,26 @@ +# Maintainer: Ernie Brodeur +pkgname=cambozola +pkgver=0.92 +pkgrel=1 +pkgdesc="A java servlet for streaming JPEG's from ip Cameras." +url="http://www.charliemouse.com:8080/code/cambozola/" +arch=('x86_64' 'i686') +license=('GPL') +depends=('java-runtime') +makedepends=('apache-ant') +source=("${url}${pkgname}-${pkgver}.tar.gz") +md5sums=('602daba851e726e2399445fda3ca718f') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ant +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + mkdir -p ${pkgdir}/usr/share/${pkgname} + cp dist/* ${pkgdir}/usr/share/${pkgname}/ +} + +# vim:set ts=2 sw=2 et: + -- cgit v0.12 From ad5be4387035eec47c68c03169c82a5fa780d0c4 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Tue, 20 Sep 2011 18:42:12 -0500 Subject: zoneminder: update for runit. refs #770 closes #751 --- abs/core/zoneminder/PKGBUILD | 28 ++++++++++++++++------------ abs/core/zoneminder/run | 19 +++++++++++++++++-- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/abs/core/zoneminder/PKGBUILD b/abs/core/zoneminder/PKGBUILD index f9d6f8f..00ac2c6 100755 --- a/abs/core/zoneminder/PKGBUILD +++ b/abs/core/zoneminder/PKGBUILD @@ -19,17 +19,8 @@ customdb httpd-zm.conf zmfilter.pl zmeventbackup -Makefile.patch) -md5sums=('eaefa14befd482154970541252aa1a39' - 'b20fb25b187eb6abb21321e153a7fb25' - '5033bc098bf497c8aed1fc1b3c9c5f9c' - 'f9720872736f26d17bc49d8725b75ae4' - '4ace13d1e20934abe192ef7372c75988' - '00201eba9c0a5d1ed14b10cc55410698' - '80c52cc3575073a7462ff6a54886a345' - '8b40137b6ff54f2fb26104b70edd22e9' - 'bb308c2393e947a224d56862c85a3ad9') - +Makefile.patch +run) build() { cd "$srcdir/ZoneMinder-$pkgver" @@ -69,6 +60,10 @@ build() { mkdir -p $startdir/pkg/var/run/zm + #install runit files + mkdir -p $pkgdir/etc/sv/zm + install -D -m 755 $srcdir/run $pkgdir/etc/sv/zm + ### remove special files find $startdir/pkg/ -name "perllocal.pod" \ -o -name ".packlist" \ @@ -77,4 +72,13 @@ build() { } -# vim:set ts=2 sw=2 et: +md5sums=('eaefa14befd482154970541252aa1a39' + 'b20fb25b187eb6abb21321e153a7fb25' + '5033bc098bf497c8aed1fc1b3c9c5f9c' + 'f9720872736f26d17bc49d8725b75ae4' + '4ace13d1e20934abe192ef7372c75988' + '00201eba9c0a5d1ed14b10cc55410698' + '80c52cc3575073a7462ff6a54886a345' + '8b40137b6ff54f2fb26104b70edd22e9' + 'bb308c2393e947a224d56862c85a3ad9' + '0c7024c355ce36828627bed10d965202') diff --git a/abs/core/zoneminder/run b/abs/core/zoneminder/run index e458bc8..ce61c24 100755 --- a/abs/core/zoneminder/run +++ b/abs/core/zoneminder/run @@ -2,5 +2,20 @@ export TERM=linux . /etc/rc.conf . /etc/rc.d/functions -stat_runit "Starting ZoneMinder" -exec /etc/rc.d/zm start + +while true ; do + PID=`pidof -x zmdc.pl` + if test -n "$PID" ; then + sleep 60 + continue + fi + stat_runit "Starting ZoneMinder" + /etc/rc.d/zm start + if test $? -ne 0 ; then + stat_fail + else + add_daemon zm + stat_done + fi + sleep 30 +done -- cgit v0.12 From 848229e1de18d7bb2893e6cd78f71f315935685c Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Wed, 21 Sep 2011 10:17:04 -0500 Subject: linhes-theme: add theme files to git --- abs/core/linhes-theme/LinHES/README | 32 ++ abs/core/linhes-theme/LinHES/base.xml | 25 ++ abs/core/linhes-theme/LinHES/cr-lines.png | Bin 0 -> 7194 bytes abs/core/linhes-theme/LinHES/cr-selectbar.png | Bin 0 -> 3081 bytes .../LinHES/htmls/progdetails_page1.html | 30 ++ .../LinHES/htmls/progdetails_page2.html | 47 +++ abs/core/linhes-theme/LinHES/menu-ui.xml | 456 +++++++++++++++++++++ abs/core/linhes-theme/LinHES/preview.jpg | Bin 0 -> 7606 bytes abs/core/linhes-theme/LinHES/qtlook.txt | 98 +++++ abs/core/linhes-theme/LinHES/themeinfo.xml | 56 +++ abs/core/linhes-theme/LinHES/ui.xml | 182 ++++++++ abs/core/linhes-theme/LinHES/ui/LinHESlogo.png | Bin 0 -> 14750 bytes abs/core/linhes-theme/LinHES/ui/background.png | Bin 0 -> 195508 bytes abs/core/linhes-theme/LinHES/ui/button_off.png | Bin 0 -> 306 bytes abs/core/linhes-theme/LinHES/ui/button_on.png | Bin 0 -> 1835 bytes abs/core/linhes-theme/LinHES/ui/kmlogo.png | Bin 0 -> 7633 bytes abs/core/linhes-theme/LinHES/ui/kmlogo1.png | Bin 0 -> 10306 bytes .../linhes-theme/LinHES/watermark/appearance.png | Bin 0 -> 17926 bytes abs/core/linhes-theme/LinHES/watermark/archive.png | Bin 0 -> 22055 bytes abs/core/linhes-theme/LinHES/watermark/backup.png | Bin 0 -> 20560 bytes abs/core/linhes-theme/LinHES/watermark/blank.png | Bin 0 -> 2740 bytes abs/core/linhes-theme/LinHES/watermark/browser.png | Bin 0 -> 23307 bytes .../linhes-theme/LinHES/watermark/categories.png | Bin 0 -> 18445 bytes abs/core/linhes-theme/LinHES/watermark/cd.png | Bin 0 -> 20061 bytes abs/core/linhes-theme/LinHES/watermark/cd_rip.png | Bin 0 -> 22482 bytes .../linhes-theme/LinHES/watermark/checklist.png | Bin 0 -> 18088 bytes abs/core/linhes-theme/LinHES/watermark/clock.png | Bin 0 -> 20829 bytes abs/core/linhes-theme/LinHES/watermark/delete.png | Bin 0 -> 15863 bytes abs/core/linhes-theme/LinHES/watermark/dvd.png | Bin 0 -> 21929 bytes abs/core/linhes-theme/LinHES/watermark/dvd_rip.png | Bin 0 -> 17874 bytes abs/core/linhes-theme/LinHES/watermark/eject.png | Bin 0 -> 10120 bytes abs/core/linhes-theme/LinHES/watermark/gallery.png | Bin 0 -> 21515 bytes .../LinHES/watermark/gallery_settings.png | Bin 0 -> 16959 bytes .../LinHES/watermark/hardware_info.png | Bin 0 -> 20290 bytes .../LinHES/watermark/hardware_settings.png | Bin 0 -> 19672 bytes abs/core/linhes-theme/LinHES/watermark/info.png | Bin 0 -> 17085 bytes .../linhes-theme/LinHES/watermark/joystick.png | Bin 0 -> 19896 bytes abs/core/linhes-theme/LinHES/watermark/keys.png | Bin 0 -> 9850 bytes .../linhes-theme/LinHES/watermark/movietime.png | Bin 0 -> 22507 bytes .../linhes-theme/LinHES/watermark/multimedia.png | Bin 0 -> 26544 bytes abs/core/linhes-theme/LinHES/watermark/music.png | Bin 0 -> 17707 bytes .../LinHES/watermark/music_settings.png | Bin 0 -> 16664 bytes abs/core/linhes-theme/LinHES/watermark/news.png | Bin 0 -> 18377 bytes abs/core/linhes-theme/LinHES/watermark/optical.png | Bin 0 -> 20312 bytes abs/core/linhes-theme/LinHES/watermark/phone.png | Bin 0 -> 21081 bytes abs/core/linhes-theme/LinHES/watermark/play.png | Bin 0 -> 23696 bytes .../linhes-theme/LinHES/watermark/previous.png | Bin 0 -> 15845 bytes .../linhes-theme/LinHES/watermark/priority.png | Bin 0 -> 13209 bytes abs/core/linhes-theme/LinHES/watermark/record.png | Bin 0 -> 14236 bytes abs/core/linhes-theme/LinHES/watermark/restore.png | Bin 0 -> 18406 bytes abs/core/linhes-theme/LinHES/watermark/search.png | Bin 0 -> 12588 bytes abs/core/linhes-theme/LinHES/watermark/setup.png | Bin 0 -> 21414 bytes abs/core/linhes-theme/LinHES/watermark/smolt.png | Bin 0 -> 19672 bytes abs/core/linhes-theme/LinHES/watermark/stream.png | Bin 0 -> 19398 bytes abs/core/linhes-theme/LinHES/watermark/tng.png | Bin 0 -> 19019 bytes abs/core/linhes-theme/LinHES/watermark/tv.png | Bin 0 -> 14951 bytes abs/core/linhes-theme/LinHES/watermark/upgrade.png | Bin 0 -> 18875 bytes abs/core/linhes-theme/LinHES/watermark/video.png | Bin 0 -> 22688 bytes .../LinHES/watermark/video_settings.png | Bin 0 -> 19234 bytes abs/core/linhes-theme/LinHES/watermark/weather.png | Bin 0 -> 20572 bytes abs/core/linhes-theme/LinHES/watermark/wizard.png | Bin 0 -> 18834 bytes .../linhes-theme/LinHES/watermark/zoneminder.png | Bin 0 -> 14476 bytes abs/core/linhes-theme/PKGBUILD | 4 +- 63 files changed, 928 insertions(+), 2 deletions(-) create mode 100644 abs/core/linhes-theme/LinHES/README create mode 100644 abs/core/linhes-theme/LinHES/base.xml create mode 100644 abs/core/linhes-theme/LinHES/cr-lines.png create mode 100644 abs/core/linhes-theme/LinHES/cr-selectbar.png create mode 100644 abs/core/linhes-theme/LinHES/htmls/progdetails_page1.html create mode 100644 abs/core/linhes-theme/LinHES/htmls/progdetails_page2.html create mode 100644 abs/core/linhes-theme/LinHES/menu-ui.xml create mode 100644 abs/core/linhes-theme/LinHES/preview.jpg create mode 100644 abs/core/linhes-theme/LinHES/qtlook.txt create mode 100755 abs/core/linhes-theme/LinHES/themeinfo.xml create mode 100644 abs/core/linhes-theme/LinHES/ui.xml create mode 100644 abs/core/linhes-theme/LinHES/ui/LinHESlogo.png create mode 100644 abs/core/linhes-theme/LinHES/ui/background.png create mode 100644 abs/core/linhes-theme/LinHES/ui/button_off.png create mode 100755 abs/core/linhes-theme/LinHES/ui/button_on.png create mode 100755 abs/core/linhes-theme/LinHES/ui/kmlogo.png create mode 100755 abs/core/linhes-theme/LinHES/ui/kmlogo1.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/appearance.png create mode 100755 abs/core/linhes-theme/LinHES/watermark/archive.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/backup.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/blank.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/browser.png create mode 100755 abs/core/linhes-theme/LinHES/watermark/categories.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/cd.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/cd_rip.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/checklist.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/clock.png create mode 100755 abs/core/linhes-theme/LinHES/watermark/delete.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/dvd.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/dvd_rip.png create mode 100755 abs/core/linhes-theme/LinHES/watermark/eject.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/gallery.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/gallery_settings.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/hardware_info.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/hardware_settings.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/info.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/joystick.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/keys.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/movietime.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/multimedia.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/music.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/music_settings.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/news.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/optical.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/phone.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/play.png create mode 100755 abs/core/linhes-theme/LinHES/watermark/previous.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/priority.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/record.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/restore.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/search.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/setup.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/smolt.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/stream.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/tng.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/tv.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/upgrade.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/video.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/video_settings.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/weather.png create mode 100644 abs/core/linhes-theme/LinHES/watermark/wizard.png create mode 100755 abs/core/linhes-theme/LinHES/watermark/zoneminder.png diff --git a/abs/core/linhes-theme/LinHES/README b/abs/core/linhes-theme/LinHES/README new file mode 100644 index 0000000..7fcf653 --- /dev/null +++ b/abs/core/linhes-theme/LinHES/README @@ -0,0 +1,32 @@ +=================================== + The 'MythCenter' theme for MythTV +=================================== + +Changelog: +---------- +04 feb 2005: removed clashing 'MythCenter' text from background +03 feb 2005: initial release + +About: +------ + +This theme is originally based on G.A.N.T. by Oscar Carlsson and +is inspired by the well-known Media Center theme. + +I found the MythTVMediaCenterOSD osd theme by Jason Gabriele to go best +with this theme, but of course this is merely a matter of taste. +Maybe I will do an OSD theme in the future too. + +The most recent version can be downloaded here: +http://www.fotoniq.nl/files/MythCenter.tar.gz + +Licensing: +---------- + +The contents may be freely distributed and changed. + +Contact: +-------- + +Jeroen Brosens +jeroen@fotoniq.nl diff --git a/abs/core/linhes-theme/LinHES/base.xml b/abs/core/linhes-theme/LinHES/base.xml new file mode 100644 index 0000000..93d8fc2 --- /dev/null +++ b/abs/core/linhes-theme/LinHES/base.xml @@ -0,0 +1,25 @@ + + + + + ui/background.png + + + + #FFFFFF + 19 + bold + + + + 22 + + + + 28 + + + + + + diff --git a/abs/core/linhes-theme/LinHES/cr-lines.png b/abs/core/linhes-theme/LinHES/cr-lines.png new file mode 100644 index 0000000..5edb06a Binary files /dev/null and b/abs/core/linhes-theme/LinHES/cr-lines.png differ diff --git a/abs/core/linhes-theme/LinHES/cr-selectbar.png b/abs/core/linhes-theme/LinHES/cr-selectbar.png new file mode 100644 index 0000000..9c4b635 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/cr-selectbar.png differ diff --git a/abs/core/linhes-theme/LinHES/htmls/progdetails_page1.html b/abs/core/linhes-theme/LinHES/htmls/progdetails_page1.html new file mode 100644 index 0000000..0ac7b5e --- /dev/null +++ b/abs/core/linhes-theme/LinHES/htmls/progdetails_page1.html @@ -0,0 +1,30 @@ + + + + + + +

%TITLE_LABEL%

%TITLE%

+

%TITLE_PRONOUNCE_LABEL%

%TITLE_PRONOUNCE%

+

%DESCRIPTION_LABEL%

%DESCRIPTION%

+

%EPISODE_LABEL%

%EPISODE%

+

%ORIGINAL_AIRDATE_LABEL%

%ORIGINAL_AIRDATE%

+

%ACTORS_LABEL%

%ACTORS%

+

%DIRECTOR_LABEL%

%DIRECTOR%

+

%PRODUCER_LABEL%

%PRODUCER%

+

%EXECUTIVE_PRODUCER_LABEL%

%EXECUTIVE_PRODUCER%

+

%WRITER_LABEL%

%WRITER%

+

%GUEST_STAR_LABEL%

%GUEST_STAR%

+

%HOST_LABEL%

%HOST%

+

%ADAPTER_LABEL%

%ADAPTER%

+

%PRESENTER_LABEL%

%PRESENTER%

+

%COMMENTATOR_LABEL%

%COMMENTATOR%

+

%GUEST_LABEL%

%GUEST%

+

%CATEGORY_LABEL%

%CATEGORY%

+

%MYTHTV_STATUS_LABEL%

%MYTHTV_STATUS%

+ + + diff --git a/abs/core/linhes-theme/LinHES/htmls/progdetails_page2.html b/abs/core/linhes-theme/LinHES/htmls/progdetails_page2.html new file mode 100644 index 0000000..ede4146 --- /dev/null +++ b/abs/core/linhes-theme/LinHES/htmls/progdetails_page2.html @@ -0,0 +1,47 @@ + + + + + + +

%TITLE_LABEL%

%TITLE%

+

%TITLE_PRONOUNCE_LABEL%

%TITLE_PRONOUNCE%

+

%DESCRIPTION_LABEL%

%DESCRIPTION%

+

%EPISODE_LABEL%

%EPISODE%

+

%ACTORS_LABEL%

%ACTORS%

+

%DIRECTOR_LABEL%

%DIRECTOR%

+

%PRODUCER_LABEL%

%PRODUCER%

+

%EXECUTIVE_PRODUCER_LABEL%

%EXECUTIVE_PRODUCER%

+

%WRITER_LABEL%

%WRITER%

+

%GUEST_STAR_LABEL%

%GUEST_STAR%

+

%HOST_LABEL%

%HOST%

+

%ADAPTER_LABEL%

%ADAPTER%

+

%PRESENTER_LABEL%

%PRESENTER%

+

%COMMENTATOR_LABEL%

%COMMENTATOR%

+

%GUEST_LABEL%

%GUEST%

+

%CATEGORY_LABEL%

%CATEGORY%

+

%CATEGORY_TYPE_LABEL%

%CATEGORY_TYPE%

+

%ORIGINAL_AIRDATE_LABEL%

%ORIGINAL_AIRDATE%

+

%PROGRAMID_LABEL%

%PROGRAMID%

+

%MYTHTV_STATUS_LABEL%

%MYTHTV_STATUS%

+

%RECORDING_RULE_LABEL%

%RECORDING_RULE%

+

%LAST_RECORDED_LABEL%

%LAST_RECORDED%

+

%NEXT_RECORDING_LABEL%

%NEXT_RECORDING%

+

%AVERAGE_TIME_SHIFT_LABEL%

%AVERAGE_TIME_SHIFT%

+

%WATCH_LIST_SCORE_LABEL%

%WATCH_LIST_SCORE%

+

%WATCH_LIST_STATUS_LABEL%

%WATCH_LIST_STATUS%

+

%SEARCH_PHRASE_LABEL%

%SEARCH_PHRASE%

+

%FINDID_LABEL%

%FINDID%

+

%RECORDING_HOST_LABEL%

%RECORDING_HOST%

+

%RECORDED_FILE_NAME_LABEL%

%RECORDED_FILE_NAME%

+

%RECORDED_FILE_SIZE_LABEL%

%RECORDED_FILE_SIZE%

+

%RECORDING_PROFILE_LABEL%

%RECORDING_PROFILE%

+

%RECORDING_GROUP_LABEL%

%RECORDING_GROUP%

+

%STORAGE_GROUP_LABEL%

%STORAGE_GROUP%

+

%PLAYBACK_GROUP_LABEL%

%PLAYBACK_GROUP%

+ + + diff --git a/abs/core/linhes-theme/LinHES/menu-ui.xml b/abs/core/linhes-theme/LinHES/menu-ui.xml new file mode 100644 index 0000000..3883b21 --- /dev/null +++ b/abs/core/linhes-theme/LinHES/menu-ui.xml @@ -0,0 +1,456 @@ + + + + + + #FFFFFF + 17 + yes + #000000 + 2,2 + 50 + + + + 20 + + + + 280,525,500,40 + clock + + center + 85 + + + + 10,10 + ui/kmlogo.png + + + + 10,10 + ui/kmlogo1.png + + + + + 475,10 + ui/LinHESlogo.png + + + + 160,70,300,415 + vertical + selection + 0 + 0,57,300,300 + + + 0,0,300,50 + + + + + + ui/button_on.png + + + + + 250,0 + yes + + + ui/up.png + + + + + 250,365 + yes + + + ui/down.png + + + + + + + 575,220 + + + + watermark/tv.png + + + + + + + + watermark/tv.png + + + + + watermark/music.png + + + + + watermark/video.png + + + + + watermark/dvd.png + + + + + watermark/radio.png + + + + + watermark/gallery.png + + + + + watermark/joystick.png + + + + + watermark/weather.png + + + + + watermark/news.png + + + + + watermark/browser.png + + + + + watermark/pie.png + + + + + watermark/phone.png + + + + + watermark/setup.png + + + + + watermark/important.png + + + + + watermark/backup.png + + + + + watermark/restore.png + + + + + watermark/upgrade.png + + + + + watermark/hardware_settings.png + + + + + + + + watermark/cd.png + + + + + watermark/dvd_rip.png + + + + + + + + + + + + + + + + + + + + + + + + watermark/appearance.png + + + + + watermark/wizard.png + + + + + + watermark/music_settings.png + + + + + watermark/video_settings.png + + + + + + + + + + + + + + watermark/keys.png + + + + + + + + + watermark/cd_rip.png + + + + + watermark/search.png + + + + + + + + + + + + + watermark/clock.png + + + + + watermark/search.png + + + + + + + + + + + watermark/record.png + + + + + + watermark/priority.png + + + + + + + + + + + + + + + watermark/hardware_settings.png + + + + + + watermark/hardware_info.png + + + + + watermark/checklist.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + watermark/play.png + + + + + watermark/delete.png + + + + + watermark/previous.png + + + + + watermark/info.png + + + + + + + + + + + + + + + + + + + watermark/multimedia.png + + + + + watermark/hardware_info.png + + + + + + + + + + + + + watermark/stream.png + + + + + watermark/eject.png + + + + + watermark/archive.png + + + + + + + + + + + + + + + + watermark/archive.png + + + + + + + watermark/movietime.png + + + + + + + watermark/zoneminder.png + + + + + + + + diff --git a/abs/core/linhes-theme/LinHES/preview.jpg b/abs/core/linhes-theme/LinHES/preview.jpg new file mode 100644 index 0000000..d89d8e5 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/preview.jpg differ diff --git a/abs/core/linhes-theme/LinHES/qtlook.txt b/abs/core/linhes-theme/LinHES/qtlook.txt new file mode 100644 index 0000000..1e1a3d5 --- /dev/null +++ b/abs/core/linhes-theme/LinHES/qtlook.txt @@ -0,0 +1,98 @@ +# Color of the background +str BackgroundColor=SteelBlue +# Color of lines, text, etc +str ForegroundColor=white +# Pixmap to use for the background +str BackgroundPixmap=ui/background.png + +# Colors for the different program categories +str Cat_Comedy=DarkOrchid +str Cat_Animals=ForestGreen +str Cat_Nature=SprintGreen +str Cat_SciFi=DarkBlue +str Cat_Horror=firebrick3 +str Cat_Action=maroon +str Cat_Game=orchid +str Cat_Children's=MediumSlateBlue +str Cat_Edu=CornflowerBlue +str Cat_Adult=thistle3 +str Cat_Musical=turquoise3 +str Cat_News=DarkOrange3 +str Cat_Reality=sienna +str Cat_Cooking=tan3 +str Cat_Doc=goldenrod +str Cat_Sports=DarkCyan +str Cat_Mystery=SlateGrey +str Cat_Drama=rosybrown3 +str Cat_Classic=grey62 +str Cat_Crime=MediumVioletRed +str Cat_Talk=MediumTurquoise + +str ActiveForeground=#ffffff +str ActiveButton=#38689c +str ActiveLight=#5788c3 +str ActiveMidlight=#4871a2 +str ActiveDark=#162231 +str ActiveMid=#37567b +str ActiveText=#dcdcdc +str ActiveBrightText=#5788c3 +str ActiveButtonText=#ffffff +str ActiveBase=#002a4e +str ActiveBackground=#426794 +str ActiveShadow=#000000 +str ActiveHighlight=#70a0d8 +str ActiveHighlightedText=#000000 + +str InactiveForeground=#ffffff +str InactiveButton=#426794 +str InactiveLight=#5788c3 +str InactiveMidlight=#4871a2 +str InactiveDark=#162231 +str InactiveMid=#37567b +str InactiveText=#dcdcdc +str InactiveBrightText=#5788c3 +str InactiveButtonText=#ffffff +str InactiveBase=#002a4e +str InactiveBackground=#426794 +str InactiveShadow=#000000 +str InactiveHighlight=#5cb3ff +str InactiveHighlightedText=#000000 + +str DisabledForeground=#555555 +str DisabledButton=#426794 +str DisabledLight=#5788c3 +str DisabledMidlight=#4871a2 +str DisabledDark=#162231 +str DisabledMid=#37567b +str DisabledText=#37567b +str DisabledBrightText=#5788c3 +str DisabledButtonText=#37567b +str DisabledBase=#002a4e +str DisabledBackground=#426794 +str DisabledShadow=#000000 +str DisabledHighlight=#000080 +str DisabledHighlightedText=#ffffff + +str curTimeChan_bgColor=#8f2813 +str curTimeChan_fgColor=#ffffff +str date_bgColor=#0f2e8f +str date_dsColor=#000000 +str date_fgColor=#ffffff +str chan_bgColor=#0f2f5a +str chan_dsColor=#000000 +str chan_fgColor=#ffffff +str time_bgColor=#0f2e8f +str time_dsColor=#000000 +str time_fgColor=#ffffff +str prog_bgColor=#2d587b +str prog_fgColor=#ffffff +str progLine_Color=#104064 +str progArrow_Color=#ffffff +int progArrow_Type=0 +str curProg_bgColor=#85a5bc +str curRecProg_bgColor=#bc4c32 +str curProg_dsColor=#000000 +str curProg_fgColor=#eefb92 +str misChanIcon_bgColor=#000000 +str misChanIcon_fgColor=#ffffff + diff --git a/abs/core/linhes-theme/LinHES/themeinfo.xml b/abs/core/linhes-theme/LinHES/themeinfo.xml new file mode 100755 index 0000000..3ff2771 --- /dev/null +++ b/abs/core/linhes-theme/LinHES/themeinfo.xml @@ -0,0 +1,56 @@ + + + LinHES + + + + + UI + + + + 4:3 + + + 800x600 + + + + + Cecil Watson + + + linhes@ovi.com + + + + + + 1 + + + 4 + + + + + + preview.jpg + + + LinHES theme based on MythCenter. + + + N/A + + diff --git a/abs/core/linhes-theme/LinHES/ui.xml b/abs/core/linhes-theme/LinHES/ui.xml new file mode 100644 index 0000000..7857798 --- /dev/null +++ b/abs/core/linhes-theme/LinHES/ui.xml @@ -0,0 +1,182 @@ + + + + + + + #ffffff + 16 + 11 + yes + + + + #9999cc + 16 + 11 + yes + + + + #33FF33 + 16 + 11 + yes + + + + #FF33FF + 16 + 11 + yes + + + + #999999 + 16 + 11 + yes + + + + #ffff33 + 16 + 11 + yes + + + + #ffff33 + 18 + 12 + yes + + + + #ffffff + #000000 + 27 + 13 + 3,3 + yes + + + + #ffffff + 17 + 8 + 1,1 + yes + + + + #ffffff + 16 + 10 + 1,1 + yes + + + + #999999 + 16 + 10 + 1,1 + yes + + + + #ffff33 + 16 + 10 + 1,1 + yes + + + + + + + cr-background.png + 0,39 + + + + + 0,39,800,290 + + 20,12,760,265 + + + + + + + + 10 + + + + + + 9 + + + + + + cr-lines.png + 0,0 + + + + + 0,360,800,210 + + + + + + + + 300,330,480,30 + + + + + + + + + + diff --git a/abs/core/linhes-theme/LinHES/ui/LinHESlogo.png b/abs/core/linhes-theme/LinHES/ui/LinHESlogo.png new file mode 100644 index 0000000..b0ebf1a Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/LinHESlogo.png differ diff --git a/abs/core/linhes-theme/LinHES/ui/background.png b/abs/core/linhes-theme/LinHES/ui/background.png new file mode 100644 index 0000000..d948de7 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/background.png differ diff --git a/abs/core/linhes-theme/LinHES/ui/button_off.png b/abs/core/linhes-theme/LinHES/ui/button_off.png new file mode 100644 index 0000000..56d4c36 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/button_off.png differ diff --git a/abs/core/linhes-theme/LinHES/ui/button_on.png b/abs/core/linhes-theme/LinHES/ui/button_on.png new file mode 100755 index 0000000..09c10f9 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/button_on.png differ diff --git a/abs/core/linhes-theme/LinHES/ui/kmlogo.png b/abs/core/linhes-theme/LinHES/ui/kmlogo.png new file mode 100755 index 0000000..19ea6d5 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/kmlogo.png differ diff --git a/abs/core/linhes-theme/LinHES/ui/kmlogo1.png b/abs/core/linhes-theme/LinHES/ui/kmlogo1.png new file mode 100755 index 0000000..0550ef3 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/ui/kmlogo1.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/appearance.png b/abs/core/linhes-theme/LinHES/watermark/appearance.png new file mode 100644 index 0000000..37b575e Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/appearance.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/archive.png b/abs/core/linhes-theme/LinHES/watermark/archive.png new file mode 100755 index 0000000..0fd1dff Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/archive.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/backup.png b/abs/core/linhes-theme/LinHES/watermark/backup.png new file mode 100644 index 0000000..a63ea36 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/backup.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/blank.png b/abs/core/linhes-theme/LinHES/watermark/blank.png new file mode 100644 index 0000000..163a9ff Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/blank.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/browser.png b/abs/core/linhes-theme/LinHES/watermark/browser.png new file mode 100644 index 0000000..0171ab6 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/browser.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/categories.png b/abs/core/linhes-theme/LinHES/watermark/categories.png new file mode 100755 index 0000000..e0fd57f Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/categories.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/cd.png b/abs/core/linhes-theme/LinHES/watermark/cd.png new file mode 100644 index 0000000..9f08c2f Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/cd.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/cd_rip.png b/abs/core/linhes-theme/LinHES/watermark/cd_rip.png new file mode 100644 index 0000000..92150bd Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/cd_rip.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/checklist.png b/abs/core/linhes-theme/LinHES/watermark/checklist.png new file mode 100644 index 0000000..66fd8b2 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/checklist.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/clock.png b/abs/core/linhes-theme/LinHES/watermark/clock.png new file mode 100644 index 0000000..621fec4 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/clock.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/delete.png b/abs/core/linhes-theme/LinHES/watermark/delete.png new file mode 100755 index 0000000..d8b9e76 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/delete.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/dvd.png b/abs/core/linhes-theme/LinHES/watermark/dvd.png new file mode 100644 index 0000000..be25627 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/dvd.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/dvd_rip.png b/abs/core/linhes-theme/LinHES/watermark/dvd_rip.png new file mode 100644 index 0000000..81b776c Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/dvd_rip.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/eject.png b/abs/core/linhes-theme/LinHES/watermark/eject.png new file mode 100755 index 0000000..871576d Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/eject.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/gallery.png b/abs/core/linhes-theme/LinHES/watermark/gallery.png new file mode 100644 index 0000000..ad5baa5 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/gallery.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/gallery_settings.png b/abs/core/linhes-theme/LinHES/watermark/gallery_settings.png new file mode 100644 index 0000000..17f0c9a Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/gallery_settings.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/hardware_info.png b/abs/core/linhes-theme/LinHES/watermark/hardware_info.png new file mode 100644 index 0000000..0d7232d Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/hardware_info.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/hardware_settings.png b/abs/core/linhes-theme/LinHES/watermark/hardware_settings.png new file mode 100644 index 0000000..44dec7a Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/hardware_settings.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/info.png b/abs/core/linhes-theme/LinHES/watermark/info.png new file mode 100644 index 0000000..41821ab Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/info.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/joystick.png b/abs/core/linhes-theme/LinHES/watermark/joystick.png new file mode 100644 index 0000000..e482e5d Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/joystick.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/keys.png b/abs/core/linhes-theme/LinHES/watermark/keys.png new file mode 100644 index 0000000..fa8fecb Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/keys.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/movietime.png b/abs/core/linhes-theme/LinHES/watermark/movietime.png new file mode 100644 index 0000000..df3bcb6 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/movietime.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/multimedia.png b/abs/core/linhes-theme/LinHES/watermark/multimedia.png new file mode 100644 index 0000000..0e8e1dd Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/multimedia.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/music.png b/abs/core/linhes-theme/LinHES/watermark/music.png new file mode 100644 index 0000000..a97ba4c Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/music.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/music_settings.png b/abs/core/linhes-theme/LinHES/watermark/music_settings.png new file mode 100644 index 0000000..9e65588 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/music_settings.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/news.png b/abs/core/linhes-theme/LinHES/watermark/news.png new file mode 100644 index 0000000..438a02d Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/news.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/optical.png b/abs/core/linhes-theme/LinHES/watermark/optical.png new file mode 100644 index 0000000..1cdf3ea Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/optical.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/phone.png b/abs/core/linhes-theme/LinHES/watermark/phone.png new file mode 100644 index 0000000..c9abc2e Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/phone.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/play.png b/abs/core/linhes-theme/LinHES/watermark/play.png new file mode 100644 index 0000000..e9c8b15 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/play.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/previous.png b/abs/core/linhes-theme/LinHES/watermark/previous.png new file mode 100755 index 0000000..57363e8 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/previous.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/priority.png b/abs/core/linhes-theme/LinHES/watermark/priority.png new file mode 100644 index 0000000..9b00a35 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/priority.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/record.png b/abs/core/linhes-theme/LinHES/watermark/record.png new file mode 100644 index 0000000..7c07dd9 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/record.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/restore.png b/abs/core/linhes-theme/LinHES/watermark/restore.png new file mode 100644 index 0000000..6ed810c Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/restore.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/search.png b/abs/core/linhes-theme/LinHES/watermark/search.png new file mode 100644 index 0000000..2371f90 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/search.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/setup.png b/abs/core/linhes-theme/LinHES/watermark/setup.png new file mode 100644 index 0000000..4aaa062 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/setup.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/smolt.png b/abs/core/linhes-theme/LinHES/watermark/smolt.png new file mode 100644 index 0000000..44dec7a Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/smolt.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/stream.png b/abs/core/linhes-theme/LinHES/watermark/stream.png new file mode 100644 index 0000000..493e5da Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/stream.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/tng.png b/abs/core/linhes-theme/LinHES/watermark/tng.png new file mode 100644 index 0000000..ac0b685 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/tng.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/tv.png b/abs/core/linhes-theme/LinHES/watermark/tv.png new file mode 100644 index 0000000..e836592 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/tv.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/upgrade.png b/abs/core/linhes-theme/LinHES/watermark/upgrade.png new file mode 100644 index 0000000..c838a3d Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/upgrade.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/video.png b/abs/core/linhes-theme/LinHES/watermark/video.png new file mode 100644 index 0000000..bf07e27 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/video.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/video_settings.png b/abs/core/linhes-theme/LinHES/watermark/video_settings.png new file mode 100644 index 0000000..a786c2c Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/video_settings.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/weather.png b/abs/core/linhes-theme/LinHES/watermark/weather.png new file mode 100644 index 0000000..6ef59eb Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/weather.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/wizard.png b/abs/core/linhes-theme/LinHES/watermark/wizard.png new file mode 100644 index 0000000..3b7a184 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/wizard.png differ diff --git a/abs/core/linhes-theme/LinHES/watermark/zoneminder.png b/abs/core/linhes-theme/LinHES/watermark/zoneminder.png new file mode 100755 index 0000000..b97dec2 Binary files /dev/null and b/abs/core/linhes-theme/LinHES/watermark/zoneminder.png differ diff --git a/abs/core/linhes-theme/PKGBUILD b/abs/core/linhes-theme/PKGBUILD index 9399806..a9a7cbb 100644 --- a/abs/core/linhes-theme/PKGBUILD +++ b/abs/core/linhes-theme/PKGBUILD @@ -8,11 +8,11 @@ pkgdesc="Default LinHES theme." arch=('i686' 'x86_64') license=('GPL2') url="http://linhes.org/" -source=(ftp://ftp.knoppmyth.net/R6/sources/linhes-theme-1.4.tar.bz2) build() { cd $startdir/src/ + cp -a $startdir/LinHES $startdir/src/ mkdir -p $startdir/pkg/usr/share/mythtv/themes cp -a LinHES $startdir/pkg/usr/share/mythtv/themes } -md5sums=('dfcf30f641d989fc6e4f20bc6c9da515') +md5sums=() -- cgit v0.12 From be452ab0786fa9a452938c647704122f42838a28 Mon Sep 17 00:00:00 2001 From: Cecil Date: Sat, 24 Sep 2011 00:20:16 -0700 Subject: fbsplash:Bumped to latest version. --- abs/core/fbsplash/PKGBUILD | 38 +++--- abs/core/fbsplash/fbsplash-basic.sh | 39 +++--- abs/core/fbsplash/fbsplash.git.patch | 166 ------------------------ abs/core/fbsplash/fbsplash.initcpio_hook | 128 ++++++------------- abs/core/fbsplash/fbsplash.initcpio_install | 176 ++++++++++++-------------- abs/core/fbsplash/splash.conf | 31 +++-- abs/core/fbsplash/splash_start_initcpio.patch | 22 ++++ 7 files changed, 202 insertions(+), 398 deletions(-) delete mode 100644 abs/core/fbsplash/fbsplash.git.patch create mode 100644 abs/core/fbsplash/splash_start_initcpio.patch diff --git a/abs/core/fbsplash/PKGBUILD b/abs/core/fbsplash/PKGBUILD index 3b25af8..49725d4 100644 --- a/abs/core/fbsplash/PKGBUILD +++ b/abs/core/fbsplash/PKGBUILD @@ -2,39 +2,50 @@ # Contributor: Kurt J. Bosch pkgname=fbsplash -pkgver=1.5.4.3 -pkgrel=38 +pkgver=1.5.4.4 +pkgrel=7 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)" arch=('i686' 'x86_64') url="http://fbsplash.berlios.de" license=('GPL') depends=('miscsplashutils' 'freetype2' 'libjpeg' 'libpng' 'libmng' 'lcms' 'gpm') -optdepends=('kernel26-fbcondecor: enable console background images' +optdepends=('linux-fbcondecor: enable console background images' 'fbsplash-extras: additional functionality like daemon icons' 'uswsusp-fbsplash: suspend to disk with fbsplash' - 'python2: convert themes from splashy to fbsplash') + 'python: convert themes from splashy to fbsplash') conflicts=('fbsplash-scripts' 'initscripts-extras-fbsplash') options=('!makeflags') backup=('etc/conf.d/fbcondecor' 'etc/conf.d/splash') install=fbsplash.install -source=(http://dev.gentoo.org/~spock/projects/gensplash/archive/splashutils-${pkgver}.tar.bz2 - fbsplash.git.patch +source=(http://download.berlios.de/fbsplash/splashutils-${pkgver}.tar.bz2 + splash_start_initcpio.patch splash.conf fbsplash-basic.sh fbsplash.initcpio_install fbsplash.initcpio_hook fbcondecor.daemon fbcondecor.conf) +md5sums=('2a16704c4adde97b58812cd89e3f2342' + '4045e315c52f5a576fca4f7e634eeb91' + '90708a96038d7d7921c2e9fde938c058' + 'a6b0b9c5c7a460380a7db127e0278164' + '24e2a7bbc2d18fe3ec10093665cd7a6e' + '4a3ac992a5042fa9770cbd3fdb7e1465' + '715926469d05eecd345c052e6248ca32' + 'b3db9d4fd902b62ac9e38589677e2d16') + build() { cd ${srcdir}/splashutils-${pkgver} - # patch for building splashutils with glibc and dynamical linking - patch -Np0 -i ${srcdir}/fbsplash.git.patch autoreconf # fix fbcondecor_ctl splash type sed -e 's,fbsplash_lib_init(fbspl_bootup),fbsplash_lib_init(fbspl_undef),' -i src/fbcon_decor_ctl.c + # fix set_event_dev call for initcpio usage (if evdev module is there) + #patch -Np2 -i ${srcdir}/splash_start_initcpio.patch + + export LIBS="-lbz2" ./configure --prefix=/usr --sysconfdir=/etc --without-klibc --enable-fbcondecor --with-gpm --with-mng --with-png --with-ttf --with-ttf-kernel make } @@ -57,7 +68,7 @@ package() { # Install fbsplash scripts and config file install -D -m644 ${srcdir}/splash.conf etc/conf.d/splash - install -D -m744 ${srcdir}/fbsplash-basic.sh etc/rc.d/functions.d/fbsplash-basic.sh + install -D -m644 ${srcdir}/fbsplash-basic.sh etc/rc.d/functions.d/fbsplash-basic.sh install -D -m644 ${srcdir}/fbsplash.initcpio_install lib/initcpio/install/fbsplash install -D -m644 ${srcdir}/fbsplash.initcpio_hook lib/initcpio/hooks/fbsplash @@ -65,12 +76,3 @@ package() { install -D -m644 ${srcdir}/fbcondecor.conf etc/conf.d/fbcondecor install -D -m755 ${srcdir}/fbcondecor.daemon etc/rc.d/fbcondecor } - -md5sums=('c722cd4148817b9c50381d9bdc1ea6ef' - '3a338c60ed0710c8b7e3e08929db521a' - '8f342632af1075667d6e11871a9e5d7e' - 'e69753dac753b8ba4e2e29ef5a9c46ca' - 'e29b3db6ee059b9950febe976a0f2881' - 'ac2351bc918b101bb9249ce8940722be' - '715926469d05eecd345c052e6248ca32' - 'b3db9d4fd902b62ac9e38589677e2d16') diff --git a/abs/core/fbsplash/fbsplash-basic.sh b/abs/core/fbsplash/fbsplash-basic.sh index 2834060..4403b86 100644 --- a/abs/core/fbsplash/fbsplash-basic.sh +++ b/abs/core/fbsplash/fbsplash-basic.sh @@ -12,18 +12,20 @@ [[ $PREVLEVEL && $RUNLEVEL ]] || return 0 -# Do nothing if improved scripts are installed -[ -r /etc/rc.d/functions.d/fbsplash-extras.sh ] && return +# Do nothing if advanced script is installed +[[ -r /etc/rc.d/functions.d/fbsplash-extras.sh ]] && return # Only do this where needed # Since we use BASH, all important functions and variables are exported case ${0#/etc/rc.} in sysinit | multi | shutdown ) - export SPLASH_PUSH_MESSAGES="no" - export SPLASH_VERBOSE_ON_ERRORS="no" + # splash-functions.sh will run splash_setup which needs /proc + # code line copied from /etc/rc.sysinit + /bin/mountpoint -q /proc || /bin/mount -n -t proc proc /proc -o nosuid,noexec,nodev + export SPLASH_PUSH_MESSAGES SPLASH_VERBOSE_ON_ERRORS . /sbin/splash-functions.sh # /etc/conf.d/splash is also sourced by this unset options opt i # eliminate splash_setup non local vars ## FIX ME ## - declare -ix SPLASH_STEPS=3 # sysinit steps - declare -ix SPLASH_STEPS_DONE=0 + SPLASH_STEPS=3 # sysinit steps + SPLASH_STEPS_DONE=0 esac # Verbose mode is handled by fbcondecor kernel patch and daemon script @@ -38,8 +40,8 @@ case $0 in /etc/rc.sysinit ) # Prevent splash destruction CONSOLEFONT="" # Continue to use a splash daamon started in initcpio - if /bin/mountpoint -q /dev/.splash-cache; then - /bin/mount --move /dev/.splash-cache $spl_cachedir || return + if /bin/mountpoint -q /run/.splash-cache; then + /bin/mount --move /run/.splash-cache $spl_cachedir || return splash_comm_send set message "$SPLASH_BOOT_MESSAGE" # Mount a tmpfs else @@ -59,7 +61,7 @@ case $0 in /etc/rc.sysinit ) splash_progress } splash_sysinit_postfsck() { # fsck failure emergency exit - [ ${fsckret} -gt 1 -a ${fsckret} -ne 32 ] && chvt 1 + (( fsckret > 1 && fsckret != 32 )) && chvt 1 } splash_sysinit_end() { splash_progress @@ -108,19 +110,13 @@ case $0 in /etc/rc.sysinit ) splash_shutdown_start() { splash_begin } - ## http://bugs.archlinux.org/task/10536 ## FIX ME ## - splash_shutdown_prekillall() { /bin/sleep .1; } + splash_shutdown_prekillall() { + splash_comm_send progress $(( 65535*1/3 )); splash_comm_send paint + [[ -r $spl_pidfile ]] && add_omit_pids $( <$spl_pidfile ) + } splash_shutdown_postkillall() { - if [[ $( $spl_bindir/fgconsole ) = $SPLASH_TTY ]]; then - stat_busy "Restarting Fbsplash daemon" - PROGRESS=$(( 65535*2/3 )) splash_start - if [[ -e $spl_cachedir/stop_failed-fbsplash-dummy ]]; then - splash_comm_send update_svc fbsplash-dummy svc_stop_failed - fi - stat_done - fi + splash_comm_send progress $(( 65535*2/3 )); splash_comm_send paint } - ## splash_shutdown_poweroff() { SPLASH_EXIT_TYPE=staysilent splash_stop } @@ -131,7 +127,7 @@ splash_progress_init() { case $daemon in $SPLASH_XSERVICE | @$SPLASH_XSERVICE ) break ;; \!* |@* ) continue esac - SPLASH_STEPS+=1 + (( SPLASH_STEPS++ )) done } @@ -141,7 +137,6 @@ splash_progress() { } # Start the splash daemon - using upstream function -splash_set_event_dev() { :; } # override - Never grab the keyboard splash_begin() { if ! [[ $( /bin/pidof -o %PPID $spl_daemon ) ]]; then stat_busy "Starting Fbsplash daemon" diff --git a/abs/core/fbsplash/fbsplash.git.patch b/abs/core/fbsplash/fbsplash.git.patch deleted file mode 100644 index 15f041c..0000000 --- a/abs/core/fbsplash/fbsplash.git.patch +++ /dev/null @@ -1,166 +0,0 @@ -From 4ecac1b2645afc8079aad4067a1aa0e8a96eab12 Mon Sep 17 00:00:00 2001 -From: =?utf8?q?Micha=C5=82=20Januszewski?= -Date: Tue, 16 Feb 2010 23:30:18 +0100 -Subject: [PATCH] Make it possible to build fbcondecor_helper against glibc. - ---- - configure.ac | 34 ++++++++++++++++++++++++++++++++++ - libs/Makefile.am | 2 ++ - src/Makefile.am | 34 +++++++++++++++++++++++++++++++++- - 3 files changed, 69 insertions(+), 1 deletions(-) - -diff --git configure.ac configure.ac -index 63b1ff6..8db1498 100644 ---- configure.ac -+++ configure.ac -@@ -76,6 +76,23 @@ AC_ARG_ENABLE([klibc-shared], - ) - AM_CONDITIONAL([CONFIG_KLIBC_SHARED], [test "x${config_klibc_shared}" = "xyes"]) - -+AC_ARG_ENABLE([static-binaries], -+ AC_HELP_STRING([--disable-static-binaries], [do not build any statically linked binaries]), -+ [ -+ AS_CASE(["${enableval}"], -+ [yes], [config_static_binaries="yes"], -+ [no], [config_static_binaries="no"], -+ [AC_MSG_ERROR([bad value '${enableval}' for --disable-static-binaries])] -+ ) -+ ], -+ [config_static_binaries="yes"] -+) -+AM_CONDITIONAL([CONFIG_STATIC_BINARIES], [test "x${config_static_binaries}" = "xyes"]) -+AS_IF( -+ [test "x${config_static_binaries}" = "xyes"], -+ [AC_DEFINE([CONFIG_STATIC_BINARIES], [1], [Define to 1 to disable building of statically linked binaries.])] -+) -+ - AC_ARG_ENABLE([deprecated], - AC_HELP_STRING([--enable-deprecated], [include support for deprecated features]), - [ -@@ -333,6 +350,23 @@ AC_ARG_WITH([themedir], - ) - AC_SUBST([themedir]) - -+AC_ARG_WITH([klibc], -+ AC_HELP_STRING([--without-klibc], [link the kernel helper against glibc instead of klibc]), -+ [ -+ AS_CASE(["${withval}"], -+ [yes], [config_klibc="yes"], -+ [no], [config_klibc="no"], -+ [AC_MSG_ERROR([bad value ${withval} for --with-klibc])] -+ ) -+ ], -+ [config_klibc="yes"] -+) -+AM_CONDITIONAL([CONFIG_KLIBC], [test "x${config_klibc}" = "xyes"]) -+AS_IF( -+ [test "x${config_klibc}" = "xyes"], -+ [AC_DEFINE([CONFIG_KLIBC], [1], [use klibc])] -+) -+ - M_CFLFAGS= - M_LIBS= - AC_CHECK_HEADER( -diff --git libs/Makefile.am b/core/libs/Makefile.am -index 6675ec1..d070b29 100644 ---- libs/Makefile.am -+++ libs/Makefile.am -@@ -24,6 +24,7 @@ mostlyclean-local: \ - - noinst_LIBRARIES = - -+if CONFIG_KLIBC - if CONFIG_HELPER - noinst_LIBRARIES += libjpeg.a - if CONFIG_PNG -@@ -33,6 +34,7 @@ if CONFIG_TTF_KERNEL - noinst_LIBRARIES += libfreetype.a - endif - endif -+endif - - libjpeg_a_SOURCES = - libpng_a_SOURCES = -diff --git src/Makefile.am b/core/src/Makefile.am -index fa6919d..7570b5e 100644 ---- src/Makefile.am -+++ src/Makefile.am -@@ -167,7 +167,6 @@ sbin_PROGRAMS += fbcondecor_ctl - endif - sbin_PROGRAMS += fbsplashd - bin_PROGRAMS += splash_util --eexecsbin_PROGRAMS += fbsplashctl - - fbcondecor_ctl_SOURCES = fbcon_decor_ctl.c fbcon_decor.h ../include/console_decor.h ../include/fbcondecor.h common.h fbsplash.h - fbcondecor_ctl_CPPFLAGS = $(AM_CPPFLAGS) -DTARGET_UTIL $(libfbsplashrender_la_CFLAGS) -@@ -185,6 +184,9 @@ splash_util_CPPFLAGS = $(AM_CPPFLAGS) -DTARGET_UTIL $(libfbsplashrender_l - splash_util_LDFLAGS = $(AM_LDFLAGS) - splash_util_LDADD = libfbsplashrender.la libfbsplash.la - -+if CONFIG_STATIC_BINARIES -+eexecsbin_PROGRAMS += fbsplashctl -+ - fbsplashctl_SOURCES = $(fbsplashd_SOURCES) $(splash_util_SOURCES) fbsplashctl.c - fbsplashctl_CFLAGS = $(AM_CFLAGS) $(PTHREAD_STATIC_CFLAGS) $(RT_CFLAGS) $(libfbsplashrender_la_CFLAGS) -DUNIFIED_BUILD - fbsplashctl_CPPFLAGS = $(fbsplashd_CPPFLAGS) $(splash_util_CPPFLAGS) -@@ -210,6 +212,7 @@ uninstall-hook: - if CONFIG_FBCON_DECOR - rm -f $(DESTDIR)$(eexecsbindir)/fbcondecor_ctl.static$(EXEEXT) - endif -+endif - - ################################################################################ - # Kernel -@@ -219,6 +222,7 @@ if CONFIG_HELPER - eexecsbin_PROGRAMS += fbcondecor_helper - endif - -+if CONFIG_KLIBC - fbcondecor_helper_SOURCES = \ - kernel.c \ - libfbsplash.c \ -@@ -236,10 +240,12 @@ fbcondecor_helper_SOURCES = \ - common.h \ - render.h \ - fbsplash.h -+ - fbcondecor_helper_CPPFLAGS = -DWITH_ERRLIST -DTARGET_KERNEL -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER - fbcondecor_helper_CFLAGS = -Os -w -ffunction-sections -fdata-sections -I.@am__isrc@ - fbcondecor_helper_LDFLAGS = - fbcondecor_helper_LDADD = -+ - fbcondecor_helper_CFLAGS += -I$(abs_top_builddir)/libs/libjpeg -I$(LIBJPEG_SOURCE) - fbcondecor_helper_LDADD += $(top_builddir)/libs/libjpeg.a - if CONFIG_PNG -@@ -280,3 +286,29 @@ fbcondecor_helper-%.o: %.c - @$(call infmsg,CC,$@) - $(Q)$(MKDIR_P) $(@D) - $(Q)$(KLCC) $(fbcondecor_helper_CPPFLAGS) $(fbcondecor_helper_CFLAGS) $(INCLUDES) -c $< -o $@ -+else -+fbcondecor_helper_SOURCES = \ -+ kernel.c \ -+ libfbsplash.c \ -+ libfbsplashrender.c \ -+ fbcon_decor.c \ -+ common.c \ -+ parse.c \ -+ list.c \ -+ render.c \ -+ image.c \ -+ effects.c \ -+ fbcon_decor.h \ -+ ../include/console_decor.h \ -+ ../include/fbcondecor.h \ -+ common.h \ -+ render.h \ -+ fbsplash.h -+if CONFIG_TTF_KERNEL -+fbcondecor_helper_SOURCES += ttf.c ttf.h -+endif -+fbcondecor_helper_CPPFLAGS = $(AM_CPPFLAGS) -DTARGET_KERNEL -+fbcondecor_helper_CFLAGS = $(AM_CFLAGS) $(libfbsplashrender_la_CFLAGS) -+fbcondecor_helper_LDFLAGS = $(AM_LDFLAGS) -+fbcondecor_helper_LDADD = $(libfbsplashrender_la_LIBADD) -+endif --- -1.6.5.GIT diff --git a/abs/core/fbsplash/fbsplash.initcpio_hook b/abs/core/fbsplash/fbsplash.initcpio_hook index 62048df..02617a2 100644 --- a/abs/core/fbsplash/fbsplash.initcpio_hook +++ b/abs/core/fbsplash/fbsplash.initcpio_hook @@ -1,99 +1,49 @@ run_hook () { - SPLASH_INIT_MESSAGE="Initializing the kernel" - SPLASH_MODE_REQ="off" - SPLASH_THEME="default" - SPLASH_TTY=16 - SPLASH_TEXTBOX="no" - SPLASH_AUTOVERBOSE=0 - - . /etc/conf.d/splash - - # Kernel parameters override config file - local ifs="$IFS" - IFS=',' - set -- $splash - IFS="$ifs" - local arg effects - for arg in "$@"; do - case "$arg" - in off ) SPLASH_MODE_REQ="off" - ;; silent ) SPLASH_MODE_REQ="silent" - ;; verbose ) SPLASH_MODE_REQ="verbose" - ;; theme:?* ) SPLASH_THEME="${arg#theme:}" - ;; tty:?* ) SPLASH_TTY="${arg#tty:}" - ;; insane ) SPLASH_SANITY="insane" - ;; fadein | fadeout ) effects="$effects,$arg" - esac - done - if [ -n "$effects" ]; then - SPLASH_EFFECTS="${effects#,}" - fi - - if [ "${SPLASH_MODE_REQ}" != "silent" ]; then - return - fi + # avoid exporting configuration + ( + SPLASH_INIT_MESSAGE="Initializing the kernel" + # Get configuration and functions (faking sysinit for config file hacks) + PREVLEVEL=N; RUNLEVEL=S + . /sbin/splash-functions.sh + unset PREVLEVEL RUNLEVEL - if ! [ "$console" = tty1 -o "$SPLASH_SANITY" = insane ]; then - err "Fbsplash requires console=tty1 in kernel line!" - return 1 - fi + [ "${SPLASH_MODE_REQ}" = "silent" ] || exit 0 - # Start the daemon here if possible - # to show animations early and gain some bootup speed - if [ -x /sbin/fbsplashd.static ]; then - if [ -x /etc/splash/"$SPLASH_THEME"/scripts/rc_init-pre ]; then - msg "Found '/etc/splash/$SPLASH_THEME/scripts/rc_init-pre'" - msg "Not starting Fbsplash daemon - no theme hook support in initcpio." - else + # Start the daemon here if possible + # to show animations early and gain some bootup speed + if [ -x "$spl_daemon" ]; then msg "Starting Fbsplash Daemon" - ( - set -e - # Hold the cache and fifo within /dev to get it moved to the new root - mkdir /dev/.splash-cache - # code line derived from splash-functions.sh - mount -t tmpfs cachedir /dev/.splash-cache -o rw,mode=0644,size=4096k - # Take over any existing cache content - mkdir -p /lib/splash/cache - mv /lib/splash/cache /lib/splash/.splash-cache - cp -a /lib/splash/.splash-cache /dev/ - ln -s /dev/.splash-cache /lib/splash/cache - mkfifo -m 600 /lib/splash/cache/.splash - # Wait for any fbcondecor fadein - may take very long on some broken systems - i=0 - while [ -n "$( pidof fbcondecor_helper )" ]; do - if [ $i -ge 50 ]; then - err "timeout on waiting for fbcondecor_helper to die!" - exit 1 - fi - sleep .1 - i=$(( i + 1 )) - done - # Actually start the daemon - options="" - [ -n "$SPLASH_THEME" ] && options="$options --theme=$SPLASH_THEME" - [ -n "$SPLASH_EFFECTS" ] && options="$options --effects=$SPLASH_EFFECTS" - [ "$SPLASH_TEXTBOX" = yes ] && options="$options --textbox" - cd /dev/.splash-cache - BOOT_MSG="${SPLASH_INIT_MESSAGE}" \ - /sbin/fbsplashd.static --type=bootup --pidfile=daemon.pid $options - ( - echo set tty silent $SPLASH_TTY - echo set mode silent - echo repaint - echo set autoverbose $SPLASH_AUTOVERBOSE - ) >/lib/splash/cache/.splash & - ) - return + set -e + # Mount the cache within /run to get it moved to the new root + mkdir /run/.splash-cache + ( spl_cachedir=/run/.splash-cache; splash_cache_prep ) + # Take over any existing cache content + mkdir -p $spl_cachedir + parent=$( dirname $spl_cachedir ) + mv $spl_cachedir $parent/.splash-cache + cp -a $parent/.splash-cache /run/ + # Symlink for starting the daemon + ln -s /run/.splash-cache $spl_cachedir + # Wait for any fbcondecor fadein - may take very long on some broken systems + i=0 + while [ -n "$( pidof fbcondecor_helper )" ]; do + if [ $i -ge 50 ]; then + err "timeout on waiting for fbcondecor_helper to die!" + exit 1 + fi + sleep .1 + i=$(( i + 1 )) + done + # Actually start the daemon + cd /run/.splash-cache + set +e + SPLASH_BOOT_MESSAGE="${SPLASH_INIT_MESSAGE}" + splash_start && sleep .1 # allow the daemon to open the event dev + exit fi - fi - # Start the fbcondecor helper if not already done by fbcondecor kernel - ( - # code copied from splash-functions.sh - fbcondecor_supported() { - [ -e /dev/fbsplash -o -e /dev/fbcondecor ] - } + # Start the fbcondecor helper if not already done by fbcondecor kernel if ! fbcondecor_supported; then BOOT_MSG="${SPLASH_INIT_MESSAGE}" \ /sbin/fbcondecor_helper 2 init 0 0 $SPLASH_THEME diff --git a/abs/core/fbsplash/fbsplash.initcpio_install b/abs/core/fbsplash/fbsplash.initcpio_install index 4485f91..841405b 100644 --- a/abs/core/fbsplash/fbsplash.initcpio_install +++ b/abs/core/fbsplash/fbsplash.initcpio_install @@ -1,104 +1,95 @@ -install() { - ( - . /etc/conf.d/splash +build() { + # Add config file, splash-functions and the helper + add_file /etc/conf.d/splash + add_file /sbin/splash-functions.sh + add_binary /sbin/fbcondecor_helper - if /bin/mountpoint -q /lib/splash/cache; then - /bin/umount /lib/splash/cache - fi - - # Add the helper - add_binary /sbin/fbcondecor_helper - - # Add the daemon for early start - if [[ $SPLASH_DAEMON = early ]]; then - add_binary /sbin/fbsplashd.static - fi + # Get in configuration, parameters and functions + . /etc/conf.d/splash + . /sbin/splash-functions.sh - # Add a clean config file avoiding errors when running the hook - file=$( /usr/bin/mktemp ) - for var in SPLASH_INIT_MESSAGE SPLASH_MODE_REQ SPLASH_THEME SPLASH_TTY \ - SPLASH_AUTOVERBOSE SPLASH_EFFECTS SPLASH_TEXTBOX - do - eval value=\"\$$var\" - [ -n "$value" ] && echo $var="'$value'" - done >|$file - add_file $file /etc/conf.d/splash + # Unmount any stale cache tmpfs + splash_cache_cleanup - # List file paths contained in given Fbsplash theme cfg file - _get_cfg_files() { - < "$1" /bin/sed -re ' - # convert all whitespace into single blanks - s,[[:space:]]+, ,g ; t L1 - :L1 - # drop comments, grouping directives and blank lines - /^ *([#<]|$)/ d - # get a filepath or drop - s,.*[ =]([^ ]*/[^ ]+).*,\1, ; t ; d - ' | /usr/bin/sort -u - } + SPLASH_PROFILE=off - # Check if cfg file name or path - _match_cfg() { - [[ "$1" =~ (^|/)[0-9]+x[0-9]+\.cfg$ ]] - } + if [[ $SPLASH_DAEMON = early ]]; then + # Add stuff needed to run splash_start function (except optional evdev module) + add_dir $spl_tmpdir + add_binary $spl_daemon + if [[ -e /etc/rc.d/functions.d/fbsplash-extras.sh ]]; then + . /etc/rc.d/functions.d/fbsplash-extras.sh + # Add files from a prepared cache (faking sysinit) + splash_cache_prep_initcpio && add_full_dir $spl_cachedir + fi + fi - # Add non-cfg files in given dir - _add_non_cfg_files() { - local file dir="$1" - for file in $( /bin/ls "$dir" ); do - if [ -f "$dir/$file" ]; then - _match_cfg "$file" || add_file "$dir/$file" - fi - done - } + # List file paths contained in given Fbsplash theme cfg files + # (Only file paths containing at least one slash will be found by this.) + fbsplash_list_paths() { + (( $# )) || return 0 + /bin/sed -re ' + # convert all whitespace into single blanks + s,[[:space:]]+, ,g ; t L1 + :L1 + # drop comments, grouping directives and blank lines + /^ *([#<]|$)/ d + # get a filepath or drop + s,.*[ =]([^ ]*/[^ ]+).*,\1, ; t ; d + ' "$@" | /usr/bin/sort -u + } - # Add global non-cfg files - _add_non_cfg_files /etc/splash + # Check if arg is a theme cfg file path + fbsplash_is_cfg() { + [[ $1 =~ ^/etc/splash/[^/]+/[0-9]+x[0-9]+\.cfg$ ]] + } - # Add themes - dirs="" - for theme in ${SPLASH_THEMES[*]}; do # string list and array allowed - [ ${theme:0:1} = / ] || theme=/etc/splash/$theme - if [ -f $theme ]; then - if ! _match_cfg $theme; then - err "Not a valid theme cfg file name: $theme" - continue - fi - add_file $theme || continue - dir=$( dirname $theme ) - # Add non-cfg files in theme dir - _add_non_cfg_files $dir - # Add files refered in cfg file by paths - for file in $( _get_cfg_files $theme ); do - if [ ${file:0:1} = / ]; then - add_file $file - continue - fi - # Path may be relative to theme-dir or to /etc/splash - [ -e $dir/$file -o ! -f /etc/splash/$file ] && add_file $dir/$file - [ -e /etc/splash/$file -o ! -f $dir/$file ] && add_file /etc/splash/$file + # Add all files referenced by path in given theme cfg files + # args: ... + fbsplash_add_files_from_cfgs() { + local file theme_dir=$1; shift + while read file; do + if [[ $file == /* ]]; then + add_file $file + else # Path may be relative to /etc/splash or theme-dir + local found=0 + for file in /etc/splash/$file "$theme_dir"/$file; do + [[ -f $file ]] && { add_file $file; found=1; } done - elif [ -d $theme ]; then - dir=$theme - add_full_dir $dir - else - err "Theme not found: $theme" - continue - fi - if [[ " "$dirs" " != *" "$dir" "* ]]; then - dirs+=" "$dir + (( found )) || error "Theme '${theme_dir##*/}': File not found: '$file'" fi - done - for dir in $dirs; do - # Add the rc_init-pre script if we have one - # Currently this just prevents early daemon start for the theme - if [[ $SPLASH_DAEMON = early && -x $dir/scripts/rc_init-pre ]]; then - add_file $dir/scripts/rc_init-pre || continue - echo "WARNING: rc_init-pre script found - no early daemon with '${dir##*/}'!" >&2 - fi - done - ) + done < <( fbsplash_list_paths "$@" ) + } + + # Add common files (may be referenced in cfg by plain file name) + local file + for file in /etc/splash/*; do + [[ -f $file ]] && add_file "$file" + done + + # Add themes + local file theme + for theme in $SPLASH_THEMES; do + if [[ -d /etc/splash/$theme && $theme != */* ]]; then + add_full_dir /etc/splash/$theme + local files=() + for file in /etc/splash/$theme/*.cfg; do + [[ -f $file ]] && fbsplash_is_cfg "$file" && files+=( $file ) + done + fbsplash_add_files_from_cfgs /etc/splash/$theme "${files[@]}" + elif [[ -f /etc/splash/$theme ]] && fbsplash_is_cfg /etc/splash/$theme; then + file=/etc/splash/$theme; theme=${theme%/*} + add_file $file + fbsplash_add_files_from_cfgs /etc/splash/$theme $file + # Add all non-cfg files from theme dir (may be referenced by plain file name) + for file in /etc/splash/$theme/*; do + [[ -f $file ]] && ! fbsplash_is_cfg "$file" && add_file "$file" + done + else + error "Theme invalid or not found: '$theme'" + fi + done SCRIPT="fbsplash" } @@ -106,8 +97,7 @@ install() { help() { cat<=2.0.10 is installed, but there +## might still be some sophisticated ones which break when using this. SPLASH_DAEMON="early" ## Make the splash daemon use fade effects. ## Note: The initcpio helper does only use the kernel parameter! +# Just use fadein on bootup and fadeout on shutdown/reboot +case $PREVLEVEL in N ) SPLASH_EFFECTS="fadein" ; esac +case $RUNLEVEL in [06] ) SPLASH_EFFECTS="fadeout"; esac +# Uncomment this line to allways use both # SPLASH_EFFECTS="fadein,fadeout" -## Uggly hack to get that in from the kernel line :p -SPLASH_EFFECTS=$(e=();IFS=',';for w in $splash;do [[ $w == fade* ]]&&e+=($w);done;echo "${e[*]}") ## Enable the textbox when starting the Fbsplash daemon. ## Useful if the theme provides a message log or other textbox. @@ -52,7 +63,7 @@ SPLASH_AUTOVERBOSE=0 SPLASH_VERBOSE_ON_ERRORS="no" ## Name of the DAEMONS script starting Xorg if any -## Set this to avoid virtual terminal change struggle between Xorg and Fbsplash. +## Set this to avoid virtual terminal change struggle between X and Fbsplash. SPLASH_XSERVICE="gdm" #SPLASH_XSERVICE="kdm" #SPLASH_XSERVICE="xdm" diff --git a/abs/core/fbsplash/splash_start_initcpio.patch b/abs/core/fbsplash/splash_start_initcpio.patch new file mode 100644 index 0000000..ff4ae96 --- /dev/null +++ b/abs/core/fbsplash/splash_start_initcpio.patch @@ -0,0 +1,22 @@ +diff -ru src.orig//splashutils-1.5.4.3/scripts/splash-functions.sh.in src//splashutils-1.5.4.3/scripts/splash-functions.sh.in +--- src.orig//splashutils-1.5.4.3/scripts/splash-functions.sh.in 2008-11-13 20:54:19.000000000 +0100 ++++ src//splashutils-1.5.4.3/scripts/splash-functions.sh.in 2011-03-03 09:45:29.258901793 +0100 +@@ -250,6 +250,9 @@ + # Start the splash daemon + BOOT_MSG="$(splash_get_boot_message)" ${spl_daemon} --theme="${SPLASH_THEME}" --pidfile="${spl_pidfile}" --type=${ttype} ${options} + ++ # First let the daemon open the event dev before it's gone away in case this is run in the initcpio ++ splash_set_event_dev ++ + # Set the silent TTY and boot message + splash_comm_send "set tty silent ${SPLASH_TTY}" + +@@ -261,8 +264,6 @@ + + splash_comm_send "set autoverbose ${SPLASH_AUTOVERBOSE}" + +- splash_set_event_dev +- + return 0 + } + -- cgit v0.12 From f514b16b0faa7487af9b6e3fecc5b1c8b0955b6e Mon Sep 17 00:00:00 2001 From: Cecil Date: Sat, 24 Sep 2011 00:20:36 -0700 Subject: mkinitcpio:Added fbsplash hook. --- abs/core/mkinitcpio/PKGBUILD | 4 ++-- abs/core/mkinitcpio/mkinitcpio.conf.patch | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/abs/core/mkinitcpio/PKGBUILD b/abs/core/mkinitcpio/PKGBUILD index 6e4eb3f..0631650 100644 --- a/abs/core/mkinitcpio/PKGBUILD +++ b/abs/core/mkinitcpio/PKGBUILD @@ -3,7 +3,7 @@ pkgname=mkinitcpio pkgver=0.7.2 -pkgrel=10 +pkgrel=11 pkgdesc="Modular initramfs image creation utility" arch=(any) url="http://www.archlinux.org/" @@ -26,4 +26,4 @@ package() { make DESTDIR="${pkgdir}" install } md5sums=('e11670a7d4802b2ef20cab4b3815168a' - '30cbb2840012223f056386d8a3336a2e') + '36da3320c907bf3b41b74fc824cbd1d8') diff --git a/abs/core/mkinitcpio/mkinitcpio.conf.patch b/abs/core/mkinitcpio/mkinitcpio.conf.patch index 41d0ed9..800b347 100644 --- a/abs/core/mkinitcpio/mkinitcpio.conf.patch +++ b/abs/core/mkinitcpio/mkinitcpio.conf.patch @@ -14,7 +14,7 @@ ## This setup loads an lvm2 volume group on a usb device. # HOOKS="base udev usb lvm2 filesystems" -HOOKS="base udev autodetect pata scsi sata filesystems usbinput" -+HOOKS="base udev usb net autodetect pata scsi sata filesystems usbinput" ++HOOKS="base udev usb net autodetect pata scsi sata filesystems usbinput fbsplash" # COMPRESSION # Use this to compress the initramfs image. With kernels earlier than -- cgit v0.12 From 6cd4eb30283496ab8d844f95082bba7c4e544c3c Mon Sep 17 00:00:00 2001 From: Cecil Date: Sat, 24 Sep 2011 00:47:03 -0700 Subject: fbsplash:Default theme set to LinHES. --- abs/core/fbsplash/PKGBUILD | 18 +++++++++--------- abs/core/fbsplash/splash.conf | 8 ++------ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/abs/core/fbsplash/PKGBUILD b/abs/core/fbsplash/PKGBUILD index 49725d4..dda0dd4 100644 --- a/abs/core/fbsplash/PKGBUILD +++ b/abs/core/fbsplash/PKGBUILD @@ -3,7 +3,7 @@ pkgname=fbsplash pkgver=1.5.4.4 -pkgrel=7 +pkgrel=8 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)" arch=('i686' 'x86_64') url="http://fbsplash.berlios.de" @@ -25,14 +25,6 @@ source=(http://download.berlios.de/fbsplash/splashutils-${pkgver}.tar.bz2 fbsplash.initcpio_hook fbcondecor.daemon fbcondecor.conf) -md5sums=('2a16704c4adde97b58812cd89e3f2342' - '4045e315c52f5a576fca4f7e634eeb91' - '90708a96038d7d7921c2e9fde938c058' - 'a6b0b9c5c7a460380a7db127e0278164' - '24e2a7bbc2d18fe3ec10093665cd7a6e' - '4a3ac992a5042fa9770cbd3fdb7e1465' - '715926469d05eecd345c052e6248ca32' - 'b3db9d4fd902b62ac9e38589677e2d16') build() { cd ${srcdir}/splashutils-${pkgver} @@ -76,3 +68,11 @@ package() { install -D -m644 ${srcdir}/fbcondecor.conf etc/conf.d/fbcondecor install -D -m755 ${srcdir}/fbcondecor.daemon etc/rc.d/fbcondecor } +md5sums=('2a16704c4adde97b58812cd89e3f2342' + '4045e315c52f5a576fca4f7e634eeb91' + '83f7b36399e8e3b24e18de670280be1d' + 'a6b0b9c5c7a460380a7db127e0278164' + '24e2a7bbc2d18fe3ec10093665cd7a6e' + '4a3ac992a5042fa9770cbd3fdb7e1465' + '715926469d05eecd345c052e6248ca32' + 'b3db9d4fd902b62ac9e38589677e2d16') diff --git a/abs/core/fbsplash/splash.conf b/abs/core/fbsplash/splash.conf index 8eb3a44..57e6e85 100644 --- a/abs/core/fbsplash/splash.conf +++ b/abs/core/fbsplash/splash.conf @@ -11,11 +11,7 @@ ## Themes to include into initcpio ## For a smaller initcpio you may try theme cfg files instead of directories. SPLASH_THEMES=" - arch-black - arch-banner-icons/1024x768.cfg - arch-banner-icons/1280x800.cfg - arch-banner-noicons/1024x768.cfg - arch-banner-noicons/1280x800.cfg + linhes " ## Override the initial silent splash screen status message defaults. @@ -64,7 +60,7 @@ SPLASH_VERBOSE_ON_ERRORS="no" ## Name of the DAEMONS script starting Xorg if any ## Set this to avoid virtual terminal change struggle between X and Fbsplash. -SPLASH_XSERVICE="gdm" +#SPLASH_XSERVICE="gdm" #SPLASH_XSERVICE="kdm" #SPLASH_XSERVICE="xdm" #SPLASH_XSERVICE="lxdm" -- cgit v0.12 From b9a07427a9567a8a0170724fba030c13e5114d20 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Sat, 24 Sep 2011 12:10:41 -0500 Subject: libxml2: recompile to fix version warning --- abs/core/libxml2/PKGBUILD | 20 ++++++++++++-------- abs/core/libxml2/shared_library_versionning.patch | 21 +++++++++++++++++++++ 2 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 abs/core/libxml2/shared_library_versionning.patch diff --git a/abs/core/libxml2/PKGBUILD b/abs/core/libxml2/PKGBUILD index 55adfb7..2566d0e 100644 --- a/abs/core/libxml2/PKGBUILD +++ b/abs/core/libxml2/PKGBUILD @@ -1,32 +1,36 @@ -# $Id: PKGBUILD 87702 2010-08-18 01:57:53Z allan $ +# $Id$ # Maintainer: Jan de Groot # Contributor: John Proctor pkgname=libxml2 pkgver=2.7.8 -pkgrel=3 +pkgrel=4 pkgdesc="XML parsing library, version 2" -arch=('i686' 'x86_64') +arch=(i686 x86_64) license=('custom') depends=('zlib>=1.2.4' 'readline>=6.1' 'ncurses>=5.7') makedepends=('python2') options=('!libtool') url="http://www.xmlsoft.org/" source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz - largefile64.patch) + largefile64.patch shared_library_versionning.patch) +md5sums=('8127a65e8c3b08856093099b52599c86' + '5ad4915665608ebfa5b89f7908467a72' + '84aeb7c6db023eae044e95d9211dba53') build() { cd "${srcdir}/${pkgname}-${pkgver}" patch -Np1 -i "${srcdir}/largefile64.patch" + patch -Np1 -i "${srcdir}/shared_library_versionning.patch" + autoreconf -fi ./configure --prefix=/usr --with-threads --with-history \ --with-python=/usr/bin/python2.7 - make || return 1 + make } package() { cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install || return 1 + make DESTDIR="${pkgdir}" install install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" } -md5sums=('8127a65e8c3b08856093099b52599c86' - '5ad4915665608ebfa5b89f7908467a72') + diff --git a/abs/core/libxml2/shared_library_versionning.patch b/abs/core/libxml2/shared_library_versionning.patch new file mode 100644 index 0000000..a0b62bc --- /dev/null +++ b/abs/core/libxml2/shared_library_versionning.patch @@ -0,0 +1,21 @@ +From 00819877651b87842ed878898ba17dba489820f0 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Thu, 04 Nov 2010 20:53:14 +0000 +Subject: Reactivate the shared library versionning script + +--- +diff --git a/configure.in b/configure.in +index 59d0629..a1d2c89 100644 +--- a/configure.in ++++ b/configure.in +@@ -84,7 +84,7 @@ else + esac + fi + AC_SUBST(VERSION_SCRIPT_FLAGS) +-AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -z "$VERSION_SCRIPT_FLAGS"]) ++AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"]) + + dnl + dnl We process the AC_ARG_WITH first so that later we can modify +-- +cgit v0.8.3.1 -- cgit v0.12 From d85a54be874d653f47ab9c20d01b69e820b368db Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Sat, 1 Oct 2011 11:39:33 -0500 Subject: files that I forgot to add to to git. --- abs/core/lvm2/11-dm-initramfs.rules | 3 ++ abs/core/qt/qtbug-16292.patch | 62 +++++++++++++++++++++++++++++++++++++ abs/extra/help2man/help2man.install | 18 +++++++++++ abs/extra/htop/htop.c.patch | 15 +++++++++ 4 files changed, 98 insertions(+) create mode 100644 abs/core/lvm2/11-dm-initramfs.rules create mode 100644 abs/core/qt/qtbug-16292.patch create mode 100644 abs/extra/help2man/help2man.install create mode 100644 abs/extra/htop/htop.c.patch diff --git a/abs/core/lvm2/11-dm-initramfs.rules b/abs/core/lvm2/11-dm-initramfs.rules new file mode 100644 index 0000000..d2c1673 --- /dev/null +++ b/abs/core/lvm2/11-dm-initramfs.rules @@ -0,0 +1,3 @@ +# needed with new udev/mkinitcpio and as implemented in dracut: +# +SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", ACTION=="add|change", OPTIONS="db_persist" diff --git a/abs/core/qt/qtbug-16292.patch b/abs/core/qt/qtbug-16292.patch new file mode 100644 index 0000000..9728e28 --- /dev/null +++ b/abs/core/qt/qtbug-16292.patch @@ -0,0 +1,62 @@ +From e340844bd614add505a39a3a6b915632476f6305 Mon Sep 17 00:00:00 2001 +From: Gabriel de Dietrich +Date: Tue, 15 Feb 2011 11:19:26 +0100 +Subject: [PATCH] Fix crash in KPackageKit + +QTreeViewPrivate::itemHeight() may refer to an invalid QModelIndex +after calling QTreeView::indexRowSizeHint(). + +Same thing inside QTreeView::indexRowSizeHint(), since +QHeaderView::count() will call +QAbstractItemViewPrivate::executePostedLayout() which may invalidate +all the QModelIndex. + +Reviewed-by: Olivier +Task-number: QTBUG-16292 +--- + src/gui/itemviews/qtreeview.cpp | 11 ++++++----- + 1 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp +index f1f3236..c0573bb 100644 +--- a/src/gui/itemviews/qtreeview.cpp ++++ b/src/gui/itemviews/qtreeview.cpp +@@ -2753,6 +2753,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &index) const + + int start = -1; + int end = -1; ++ int indexRow = index.row(); + int count = d->header->count(); + bool emptyHeader = (count == 0); + QModelIndex parent = index.parent(); +@@ -2789,7 +2790,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &index) const + int logicalColumn = emptyHeader ? column : d->header->logicalIndex(column); + if (d->header->isSectionHidden(logicalColumn)) + continue; +- QModelIndex idx = d->model->index(index.row(), logicalColumn, parent); ++ QModelIndex idx = d->model->index(indexRow, logicalColumn, parent); + if (idx.isValid()) { + QWidget *editor = d->editorForIndex(idx).editor; + if (editor && d->persistent.contains(editor)) { +@@ -3224,14 +3225,14 @@ int QTreeViewPrivate::itemHeight(int item) const + if (viewItems.isEmpty()) + return 0; + const QModelIndex &index = viewItems.at(item).index; ++ if (!index.isValid()) ++ return 0; + int height = viewItems.at(item).height; +- if (height <= 0 && index.isValid()) { ++ if (height <= 0) { + height = q_func()->indexRowSizeHint(index); + viewItems[item].height = height; + } +- if (!index.isValid() || height < 0) +- return 0; +- return height; ++ return qMax(height, 0); + } + + +-- +1.6.1 + diff --git a/abs/extra/help2man/help2man.install b/abs/extra/help2man/help2man.install new file mode 100644 index 0000000..ab6585b --- /dev/null +++ b/abs/extra/help2man/help2man.install @@ -0,0 +1,18 @@ +info_dir=/usr/share/info +info_files=(help2man.info) + +post_install() { + for f in ${info_files[@]}; do + install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null + done +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + for f in ${info_files[@]}; do + install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null + done +} diff --git a/abs/extra/htop/htop.c.patch b/abs/extra/htop/htop.c.patch new file mode 100644 index 0000000..41a2dd3 --- /dev/null +++ b/abs/extra/htop/htop.c.patch @@ -0,0 +1,15 @@ +From: Roman Kosenko +Date: Thu, 10 Mar 2011 16:23:53 +0200 +Subject: [PATCH] Fix stupid bug with --sort-key + +--- htop.c.old 2010-11-24 20:45:38.000000000 +0200 ++++ htop.c 2011-03-10 16:32:18.473716667 +0200 +@@ -282,7 +282,7 @@ + printVersionFlag(); + break; + case 's': +- if (strcmp(optarg, "help")) { ++ if (!strcmp(optarg, "help")) { + for (int j = 1; j < LAST_PROCESSFIELD; j++) + printf ("%s\n", Process_fieldNames[j]); + exit(0); -- cgit v0.12 From 3735849e4bd7a3fe9e46c2069dbf65acd838c2a7 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Thu, 6 Oct 2011 16:27:09 -0500 Subject: fbsplash: remove progress from splash messages --- abs/core/fbsplash/PKGBUILD | 4 ++-- abs/core/fbsplash/splash.conf | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/abs/core/fbsplash/PKGBUILD b/abs/core/fbsplash/PKGBUILD index dda0dd4..fab0d28 100644 --- a/abs/core/fbsplash/PKGBUILD +++ b/abs/core/fbsplash/PKGBUILD @@ -3,7 +3,7 @@ pkgname=fbsplash pkgver=1.5.4.4 -pkgrel=8 +pkgrel=9 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)" arch=('i686' 'x86_64') url="http://fbsplash.berlios.de" @@ -70,7 +70,7 @@ package() { } md5sums=('2a16704c4adde97b58812cd89e3f2342' '4045e315c52f5a576fca4f7e634eeb91' - '83f7b36399e8e3b24e18de670280be1d' + 'c39f865e75192745759c8e95c7a7fd06' 'a6b0b9c5c7a460380a7db127e0278164' '24e2a7bbc2d18fe3ec10093665cd7a6e' '4a3ac992a5042fa9770cbd3fdb7e1465' diff --git a/abs/core/fbsplash/splash.conf b/abs/core/fbsplash/splash.conf index 57e6e85..44fed88 100644 --- a/abs/core/fbsplash/splash.conf +++ b/abs/core/fbsplash/splash.conf @@ -17,13 +17,13 @@ SPLASH_THEMES=" ## Override the initial silent splash screen status message defaults. ## Note: '$progress' will be replaced by Fbsplash itself. ## * initcpio - (no effect with fbcondecor kernel) -SPLASH_INIT_MESSAGE="Initializing the kernel" +SPLASH_INIT_MESSAGE="Initializing the kernel..." ## * bootup -SPLASH_BOOT_MESSAGE="Booting '$HOSTNAME' (\$progress%)" +SPLASH_BOOT_MESSAGE="Booting $HOSTNAME..." ## * reboot -SPLASH_REBOOT_MESSAGE="Rebooting '$HOSTNAME' (\$progress%)" +SPLASH_REBOOT_MESSAGE="Rebooting $HOSTNAME..." ## * shutdown -SPLASH_SHUTDOWN_MESSAGE="Shutting down '$HOSTNAME' (\$progress%)" +SPLASH_SHUTDOWN_MESSAGE="Shutting down $HOSTNAME..." ## Include and use the Fbsplash daemon (1.5 MiB) in the initcpio ## instead of the small helper only. @@ -36,8 +36,8 @@ SPLASH_DAEMON="early" ## Make the splash daemon use fade effects. ## Note: The initcpio helper does only use the kernel parameter! # Just use fadein on bootup and fadeout on shutdown/reboot -case $PREVLEVEL in N ) SPLASH_EFFECTS="fadein" ; esac -case $RUNLEVEL in [06] ) SPLASH_EFFECTS="fadeout"; esac +#case $PREVLEVEL in N ) SPLASH_EFFECTS="fadein" ; esac +#case $RUNLEVEL in [06] ) SPLASH_EFFECTS="fadeout"; esac # Uncomment this line to allways use both # SPLASH_EFFECTS="fadein,fadeout" -- cgit v0.12 From 81f6e0d44f1f03250fbda0217bfaba88fe55ac3f Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Thu, 6 Oct 2011 16:40:08 -0500 Subject: linhes-splash: remove progress bar and change console size --- abs/core/linhes-splash/PKGBUILD | 4 ++-- abs/core/linhes-splash/__changelog | 1 - abs/core/linhes-splash/linhes-splash.tar.bz2 | Bin 871971 -> 871816 bytes 3 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 abs/core/linhes-splash/__changelog diff --git a/abs/core/linhes-splash/PKGBUILD b/abs/core/linhes-splash/PKGBUILD index de73d50..1bb7519 100644 --- a/abs/core/linhes-splash/PKGBUILD +++ b/abs/core/linhes-splash/PKGBUILD @@ -3,7 +3,7 @@ pkgname=linhes-splash pkgver=1 -pkgrel=8 +pkgrel=9 pkgdesc="FBSplash theme for LinHES." arch=('i686' 'x86_64') license=('GPL2') @@ -28,4 +28,4 @@ build() { # fi # done } -md5sums=('9b1f58dad581187ff080097f5fa1ae1c') +md5sums=('10c26a030db0fab8dea7574ee00f3516') diff --git a/abs/core/linhes-splash/__changelog b/abs/core/linhes-splash/__changelog deleted file mode 100644 index 886928e..0000000 --- a/abs/core/linhes-splash/__changelog +++ /dev/null @@ -1 +0,0 @@ -changed 800x600.cfg. Moved the box down and made the font bigger diff --git a/abs/core/linhes-splash/linhes-splash.tar.bz2 b/abs/core/linhes-splash/linhes-splash.tar.bz2 index 9d52a1e..616f460 100644 Binary files a/abs/core/linhes-splash/linhes-splash.tar.bz2 and b/abs/core/linhes-splash/linhes-splash.tar.bz2 differ -- cgit v0.12 From fc7b12c545c7ecf66df1e7113f59dcf2fea0c2de Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Thu, 6 Oct 2011 17:02:37 -0500 Subject: runit-scripts: fbsplash-runit.sh: update for new fbsplash --- abs/core/runit-scripts/PKGBUILD | 4 +-- abs/core/runit-scripts/fbsplash-runit.sh | 55 ++++++++++++++------------------ 2 files changed, 26 insertions(+), 33 deletions(-) diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD index ee88800..c505356 100755 --- a/abs/core/runit-scripts/PKGBUILD +++ b/abs/core/runit-scripts/PKGBUILD @@ -1,6 +1,6 @@ pkgname=runit-scripts pkgver=2.1.1 -pkgrel=33 +pkgrel=34 pkgdesc="collection of startup scripts for runit" url="http://smarden.org/runit/" license="BSD" @@ -27,4 +27,4 @@ build() { install -m0755 reboot-runit halt-runit logger $startdir/pkg/sbin rsync -a --exclude=.svn services/* $startdir/pkg/etc/sv } -md5sums=('45d0b0c6ad9b00eeaaef3341245a8d4c') +md5sums=('c79246677d5ffe687bcf6df1b9c2abc2') diff --git a/abs/core/runit-scripts/fbsplash-runit.sh b/abs/core/runit-scripts/fbsplash-runit.sh index a9432d0..87435ee 100755 --- a/abs/core/runit-scripts/fbsplash-runit.sh +++ b/abs/core/runit-scripts/fbsplash-runit.sh @@ -1,44 +1,37 @@ -# fbsplash function.d script # -# Author: Greg Helton # +# fbsplash functions.d runit script # -# Who is calling? # -CALLER=$0 printhlr() { printf "${C_OTHER}${PREFIX_REG} ${C_H1}${1}${C_CLEAR} \n" } +stat_runit(){ + printf "" + printhlr "${C_MAIN}${1}${C_CLEAR} " +} + + # splash stuff # -if [ -e /etc/conf.d/fbsplash.conf ] +if [ -e /etc/conf.d/fbcondecor ] then - . /etc/conf.d/fbsplash.conf + . /etc/conf.d/fbcondecor . /sbin/splash-functions.sh -# Redefine the stat functions # - - stat_runit() { - # printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} " - # printf "${SAVE_POSITION}" - # deltext - # printf " ${C_OTHER}[${C_BUSY}BKGD${C_OTHER}]${C_CLEAR} "a - - printf "" - printhlr "${C_MAIN}${1}${C_CLEAR} " - - # Load variables # + case $0 in /etc/runit/1 ) + # Prevent splash destruction + CONSOLEFONT="" + # Continue to use a splash daemon started in initcpio + if /bin/mountpoint -q /run/.splash-cache; then + /bin/mount --move /run/.splash-cache $spl_cachedir || return + # Mount a tmpfs + else + ( splash_cache_prep ) || return + fi - var_load STEP_NR MAX_STEPS RC_MULTI RC_SYSINIT RC_SHUTDOWN - # Only update the splash progress if we're in sysinit, multi, or shutdown. # + splash_comm_send set message "$SPLASH_BOOT_MESSAGE" - ((SPLASH_STEP_NR++)) - SPLASH_PROGRESS=$((100*${SPLASH_STEP_NR}/${SPLASH_MAX_STEPS})) - SPLASH_CURRENT_PROGRESS=${SPLASH_PROGRESS} - splash_update_progress ${SPLASH_PROGRESS} - var_save STEP_NR CURRENT_PROGRESS + ;; /etc/runit/3 ) + ( splash_cache_prep ) || return - } -else - stat_runit(){ - printf "" - printhlr "${C_MAIN}${1}${C_CLEAR} " - } + splash_comm_send set message "$SPLASH_SHUTDOWN_MESSAGE" + esac fi -- cgit v0.12 From 858a019f8a4a016fd5f50144b16fe8fb08a10978 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Thu, 6 Oct 2011 17:14:06 -0500 Subject: linhes-splash: restore text box status --- abs/core/linhes-splash/PKGBUILD | 4 ++-- abs/core/linhes-splash/linhes-splash.tar.bz2 | Bin 871816 -> 872102 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/abs/core/linhes-splash/PKGBUILD b/abs/core/linhes-splash/PKGBUILD index 1bb7519..d97d794 100644 --- a/abs/core/linhes-splash/PKGBUILD +++ b/abs/core/linhes-splash/PKGBUILD @@ -3,7 +3,7 @@ pkgname=linhes-splash pkgver=1 -pkgrel=9 +pkgrel=10 pkgdesc="FBSplash theme for LinHES." arch=('i686' 'x86_64') license=('GPL2') @@ -28,4 +28,4 @@ build() { # fi # done } -md5sums=('10c26a030db0fab8dea7574ee00f3516') +md5sums=('9b330cd74a438fbf2d814096c3e3be6a') diff --git a/abs/core/linhes-splash/linhes-splash.tar.bz2 b/abs/core/linhes-splash/linhes-splash.tar.bz2 index 616f460..c41706a 100644 Binary files a/abs/core/linhes-splash/linhes-splash.tar.bz2 and b/abs/core/linhes-splash/linhes-splash.tar.bz2 differ -- cgit v0.12 From 7770cdbf5597c3da976fabbea753474044ec93e6 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Thu, 6 Oct 2011 17:33:56 -0500 Subject: nvidia-utils: update to 285.05.09 --- abs/core/nvidia-utils/PKGBUILD | 93 +++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 47 deletions(-) diff --git a/abs/core/nvidia-utils/PKGBUILD b/abs/core/nvidia-utils/PKGBUILD index 4099d9f..3a768d8 100644 --- a/abs/core/nvidia-utils/PKGBUILD +++ b/abs/core/nvidia-utils/PKGBUILD @@ -3,105 +3,104 @@ # Contributor: James Rayner pkgbase=nvidia-utils pkgname=('nvidia-utils' 'opencl-nvidia') -pkgver=280.13 +pkgver=285.05.09 pkgrel=1 arch=('i686' 'x86_64') url="http://www.nvidia.com/" license=('custom') -install=nvidia.install options=('!strip') if [ "$CARCH" = "i686" ]; then _arch='x86' _pkg="NVIDIA-Linux-${_arch}-${pkgver}" - source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + md5sums=('2d469a90abef50320f548cfa8085e3a0') elif [ "$CARCH" = "x86_64" ]; then _arch='x86_64' _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32" - source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + md5sums=('2f4a0e78f5560c07220b7ed6fc1e27aa') fi create_links() { # create soname links - for _lib in $(find $pkgdir -name '*.so*'); do - _soname="$(dirname ${_lib})/$(readelf -d "$_lib" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')" - if [ ! -e "${_soname}" ]; then - ln -s "$(basename ${_lib})" "${_soname}" - ln -s "$(basename ${_soname})" "${_soname/.[0-9]*/}" - fi - done + while read -d '' _lib; do + _soname="$(dirname "${_lib}")/$(readelf -d "${_lib}" | sed -nr 's/.*Library soname: \[(.*)\].*/\1/p')" + [[ -e "${_soname}" ]] || ln -s "$(basename "${_lib}")" "${_soname}" + [[ -e "${_soname/.[0-9]*/}" ]] || ln -s "$(basename "${_soname}")" "${_soname/.[0-9]*/}" + done < <(find "${pkgdir}" -type f -name '*.so*' -print0) } build() { - cd $srcdir - sh ${_pkg}.run --extract-only + cd "${srcdir}" + sh "${_pkg}.run" --extract-only } package_opencl-nvidia() { pkgdesc="OpenCL implemention for NVIDIA" depends=('libcl') optdepends=('opencl-headers: headers necessary for OpenCL development') - cd $srcdir/${_pkg} + cd "${srcdir}/${_pkg}" # OpenCL - install -D -m644 nvidia.icd $pkgdir/etc/OpenCL/vendors/nvidia.icd - install -D -m755 libnvidia-compiler.so.$pkgver $pkgdir/usr/lib/libnvidia-compiler.so.$pkgver + install -D -m644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd" + install -D -m755 "libnvidia-compiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-compiler.so.${pkgver}" # CUDA - install -D -m755 libcuda.so.$pkgver $pkgdir/usr/lib/libcuda.so.$pkgver - install -D -m755 libnvcuvid.so.$pkgver $pkgdir/usr/lib/libnvcuvid.so.$pkgver + install -D -m755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}" + install -D -m755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}" create_links } package_nvidia-utils() { pkgdesc="NVIDIA drivers utilities and libraries." - depends=('xorg-server' 'libxvmc' 'libcl' "opencl-nvidia=${pkgver}") + depends=('xorg-server' 'libxvmc' 'opencl-nvidia') optdepends=('gtk2: nvidia-settings' 'pkg-config: nvidia-xconfig') conflicts=('libgl') provides=('libgl') - cd $srcdir/${_pkg} + cd "${srcdir}/${_pkg}" # X driver - install -D -m755 nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers/nvidia_drv.so + install -D -m755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so" # GLX extension module for X - install -D -m755 libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so.$pkgver - ln -s libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions/libglx.so # X doesn't find glx otherwise + install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.${pkgver}" + ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" # X doesn't find glx otherwise # OpenGL library - install -D -m755 libGL.so.$pkgver $pkgdir/usr/lib/libGL.so.$pkgver + install -D -m755 "libGL.so.${pkgver}" "${pkgdir}/usr/lib/libGL.so.${pkgver}" # OpenGL core library - install -D -m755 libnvidia-glcore.so.$pkgver $pkgdir/usr/lib/libnvidia-glcore.so.$pkgver + install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}" # XvMC - install -D -m644 libXvMCNVIDIA.a $pkgdir/usr/lib/libXvMCNVIDIA.a - install -D -m755 libXvMCNVIDIA.so.$pkgver $pkgdir/usr/lib/libXvMCNVIDIA.so.$pkgver + install -D -m644 libXvMCNVIDIA.a "${pkgdir}/usr/lib/libXvMCNVIDIA.a" + install -D -m755 "libXvMCNVIDIA.so.${pkgver}" "${pkgdir}/usr/lib/libXvMCNVIDIA.so.${pkgver}" # VDPAU - install -D -m755 libvdpau_nvidia.so.$pkgver $pkgdir/usr/lib/vdpau/libvdpau_nvidia.so.$pkgver + install -D -m755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}" # nvidia-tls library - install -D -m755 tls/libnvidia-tls.so.$pkgver $pkgdir/usr/lib/libnvidia-tls.so.$pkgver - install -D -m755 libnvidia-cfg.so.$pkgver $pkgdir/usr/lib/libnvidia-cfg.so.$pkgver + install -D -m755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}" + install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}" - install -D -m755 libnvidia-ml.so.$pkgver $pkgdir/usr/lib/libnvidia-ml.so.$pkgver + install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}" # nvidia-xconfig - install -D -m755 nvidia-xconfig $pkgdir/usr/bin/nvidia-xconfig - install -D -m644 nvidia-xconfig.1.gz $pkgdir/usr/share/man/man1/nvidia-xconfig.1.gz + install -D -m755 nvidia-xconfig "${pkgdir}/usr/bin/nvidia-xconfig" + install -D -m644 nvidia-xconfig.1.gz "${pkgdir}/usr/share/man/man1/nvidia-xconfig.1.gz" # nvidia-settings - install -D -m755 nvidia-settings $pkgdir/usr/bin/nvidia-settings - install -D -m644 nvidia-settings.1.gz $pkgdir/usr/share/man/man1/nvidia-settings.1.gz - install -D -m644 nvidia-settings.desktop $pkgdir/usr/share/applications/nvidia-settings.desktop - install -D -m644 nvidia-settings.png $pkgdir/usr/share/pixmaps/nvidia-settings.png - sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop + install -D -m755 nvidia-settings "${pkgdir}/usr/bin/nvidia-settings" + install -D -m644 nvidia-settings.1.gz "${pkgdir}/usr/share/man/man1/nvidia-settings.1.gz" + install -D -m644 nvidia-settings.desktop "${pkgdir}/usr/share/applications/nvidia-settings.desktop" + install -D -m644 nvidia-settings.png "${pkgdir}/usr/share/pixmaps/nvidia-settings.png" + sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i "${pkgdir}/usr/share/applications/nvidia-settings.desktop" # nvidia-bug-report - install -D -m755 nvidia-bug-report.sh $pkgdir/usr/bin/nvidia-bug-report.sh + install -D -m755 nvidia-bug-report.sh "${pkgdir}/usr/bin/nvidia-bug-report.sh" # nvidia-smi - install -D -m755 nvidia-smi $pkgdir/usr/bin/nvidia-smi - install -D -m644 nvidia-smi.1.gz $pkgdir/usr/share/man/man1/nvidia-smi.1.gz + install -D -m755 nvidia-smi "${pkgdir}/usr/bin/nvidia-smi" + install -D -m644 nvidia-smi.1.gz "${pkgdir}/usr/share/man/man1/nvidia-smi.1.gz" - install -D -m644 LICENSE $pkgdir/usr/share/licenses/nvidia/LICENSE - ln -s nvidia $pkgdir/usr/share/licenses/nvidia-utils - install -D -m644 README.txt $pkgdir/usr/share/doc/nvidia/README - install -D -m644 NVIDIA_Changelog $pkgdir/usr/share/doc/nvidia/NVIDIA_Changelog - ln -s nvidia $pkgdir/usr/share/doc/nvidia-utils + install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/nvidia/LICENSE" + ln -s nvidia "${pkgdir}/usr/share/licenses/nvidia-utils" + install -D -m644 README.txt "${pkgdir}/usr/share/doc/nvidia/README" + install -D -m644 NVIDIA_Changelog "${pkgdir}/usr/share/doc/nvidia/NVIDIA_Changelog" + ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-utils" create_links } -md5sums=('c3992c8cef02b7773a398640d8830e77') +md5sums=('2d469a90abef50320f548cfa8085e3a0') -- cgit v0.12 From 44906a17902495db99431255a833eedf16a581fd Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Thu, 6 Oct 2011 18:30:19 -0500 Subject: nvidia: update to 285.05.09 --- abs/core/nvidia/PKGBUILD | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/abs/core/nvidia/PKGBUILD b/abs/core/nvidia/PKGBUILD index 4d8dcb1..934420e 100644 --- a/abs/core/nvidia/PKGBUILD +++ b/abs/core/nvidia/PKGBUILD @@ -2,10 +2,10 @@ # Maintainer : Thomas Baechler pkgname=nvidia -pkgver=280.13 +pkgver=285.05.09 _kernver='2.6.39-LinHES' pkgrel=1 -pkgdesc="NVIDIA drivers for kernel26." +pkgdesc="NVIDIA drivers for linux." arch=('i686' 'x86_64') url="http://www.nvidia.com/" depends=('kernel26>=2.6.39' 'kernel26<2.6.40' "nvidia-utils=${pkgver}") @@ -18,26 +18,28 @@ options=(!strip) if [ "$CARCH" = "i686" ]; then _arch='x86' _pkg="NVIDIA-Linux-${_arch}-${pkgver}" - source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + md5sums=('2d469a90abef50320f548cfa8085e3a0') elif [ "$CARCH" = "x86_64" ]; then _arch='x86_64' _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32" - source=("http://us.download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + md5sums=('2f4a0e78f5560c07220b7ed6fc1e27aa') fi build() { - cd $srcdir - sh ${_pkg}.run --extract-only - cd ${_pkg}/kernel - make SYSSRC=/lib/modules/${_kernver}/build module + cd "${srcdir}" + sh "${_pkg}.run" --extract-only + cd "${_pkg}/kernel" + make SYSSRC=/lib/modules/"${_kernver}/build" module } package() { - install -D -m644 $srcdir/${_pkg}/kernel/nvidia.ko \ - $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko - install -d -m755 $pkgdir/etc/modprobe.d - echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf - sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install + install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia.ko" \ + "${pkgdir}/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko" + install -d -m755 "${pkgdir}/etc/modprobe.d" + echo "blacklist nouveau" >> "${pkgdir}/etc/modprobe.d/nouveau_blacklist.conf" + sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "${startdir}/nvidia.install" gzip "${pkgdir}/lib/modules/${_kernver}/kernel/drivers/video/nvidia.ko" } -md5sums=('c3992c8cef02b7773a398640d8830e77') +md5sums=('2d469a90abef50320f548cfa8085e3a0') -- cgit v0.12 From 8d153f743a19c2571f516fc9e913798097e628d6 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Thu, 6 Oct 2011 19:08:21 -0500 Subject: system-templates: nvidia_supported.txt: update to 285.05.09 --- abs/core/system-templates/PKGBUILD | 2 +- .../templates/xorg/nvidia_supported.txt | 61 +++++++++++++++++++--- 2 files changed, 55 insertions(+), 8 deletions(-) diff --git a/abs/core/system-templates/PKGBUILD b/abs/core/system-templates/PKGBUILD index bd53e14..022a84e 100755 --- a/abs/core/system-templates/PKGBUILD +++ b/abs/core/system-templates/PKGBUILD @@ -1,6 +1,6 @@ pkgname=system-templates pkgver=2.0 -pkgrel=4 +pkgrel=5 conflicts=( ) pkgdesc="Templates used for system configuration" depends=() diff --git a/abs/core/system-templates/templates/xorg/nvidia_supported.txt b/abs/core/system-templates/templates/xorg/nvidia_supported.txt index ba238a6..6d0fc16 100644 --- a/abs/core/system-templates/templates/xorg/nvidia_supported.txt +++ b/abs/core/system-templates/templates/xorg/nvidia_supported.txt @@ -1,4 +1,4 @@ -#http://us.download.nvidia.com/XFree86/Linux-x86/260.19.29/README/supportedchips.html +#http://us.download.nvidia.com/XFree86/Linux-x86/285.05.09/README/supportedchips.html GeForce 6800 Ultra 0x0040 - GeForce 6800 0x0041 - @@ -197,13 +197,11 @@ GeForce GTX 480 0x06C0 C GeForce GTX 465 0x06C4 C GeForce GTX 480M 0x06CA C GeForce GTX 470 0x06CD C -Tesla C2050 0x06D1 C +Tesla C2050 / C2070 0x06D1 C Tesla C2070 0x06D1 0x0772 C Tesla M2070 0x06D2 C -Tesla S2050 0x06DE C -Tesla M2050 0x06DE 0x077A C +Tesla T20 Processor 0x06DE C Tesla M2050 0x06DE 0x082F C -Tesla M2050 0x06DE 0x0843 C Tesla M2050 0x06DE 0x0846 C Tesla M2070-Q 0x06DF C GeForce 9300 GE 0x06E0 B 1 @@ -259,9 +257,12 @@ GeForce 9400 0x087A B 1 ION 0x087D B 1 ION LE 0x087E B 1 ION LE 0x087F B 1 +GeForce 320M 0x08A5 C GeForce GT 220 0x0A20 C GeForce 315 0x0A22 - GeForce 210 0x0A23 C +GeForce 405 0x0A26 C +GeForce 405 0x0A27 C GeForce GT 230M 0x0A28 C GeForce GT 330M 0x0A29 C GeForce GT 230M 0x0A2A C @@ -286,6 +287,7 @@ GeForce 310M 0x0A72 C GeForce 305M 0x0A73 C GeForce G210M 0x0A74 C GeForce 310M 0x0A75 C +GeForce 315M 0x0A7A C GeForce GT 330 0x0CA0 A GeForce GT 320 0x0CA2 C GeForce GT 240 0x0CA3 C @@ -297,22 +299,55 @@ GeForce GT 220 0x0CAC - GeForce GT 335M 0x0CAF C GeForce GTS 350M 0x0CB0 C GeForce GTS 360M 0x0CB1 C +GeForce GT 440 0x0DC0 C GeForce GTS 450 0x0DC4 C +GeForce GT 555M 0x0DCD C +GeForce GT 555M 0x0DCE C GeForce GTX 460M 0x0DD1 C +GeForce GT 445M 0x0DD2 C +GeForce GT 550M 0x0DD6 C +GeForce GT 440 0x0DE0 C GeForce GT 430 0x0DE1 C +GeForce GT 420 0x0DE2 C +GeForce GT 530 0x0DE5 C +GeForce GT 525M 0x0DEC C GeForce GT 415M 0x0DEE C GeForce GT 425M 0x0DF0 C GeForce GT 420M 0x0DF1 C GeForce GT 435M 0x0DF2 C GeForce GT 420M 0x0DF3 C +GeForce GT 540M 0x0DF4 C +GeForce GT 525M 0x0DF5 C +GeForce GT 550M 0x0DF6 C +GeForce GT 520M 0x0DF7 C GeForce GTX 460 0x0E22 C GeForce GTX 460 SE 0x0E23 C GeForce GTX 460 0x0E24 C +GeForce GTX 470M 0x0E30 C +GeForce GTX 485M 0x0E31 C +GeForce GT 520 0x1040 D +GeForce GT 520M 0x1050 C +GeForce GT 520MX 0x1051 D GeForce GTX 580 0x1080 C GeForce GTX 570 0x1081 C +GeForce GTX 560 Ti 0x1082 C +GeForce GTX 590 0x1088 C +Tesla M2090 0x1091 C +Tesla M2075 0x1094 C +Tesla C2075 0x1096 C +GeForce 8400GS 0x10C3 A +GeForce 405 0x10C5 C +GeForce GTX 560 Ti 0x1200 C +GeForce GTX 560 0x1201 C +GeForce GTX 570M 0x1210 C +GeForce GTX 580M 0x1211 C +GeForce GT 545 0x1241 C +GeForce GTX 550 Ti 0x1244 C +GeForce GTS 450 0x1245 C +GeForce GTX 560M 0x1251 C +#NVIDIA Quadro GPUs -#NVIDIA Quadro GPUsNVIDIA GPU product Device PCI ID* VDPAU features Quadro FX 4000 0x004E - Quadro FX 4500 0x009D - Quadro FX Go1400 0x00CC - @@ -373,6 +408,7 @@ Quadro FX 770M 0x065C A Quadro 6000 0x06D8 C Quadro 5000 0x06D9 C Quadro 5000M 0x06DA C +Quadro 6000 0x06DC C Quadro 4000 0x06DD C Quadro NVS 150M 0x06EA B 1 Quadro NVS 160M 0x06EB B 1 @@ -383,6 +419,7 @@ Quadro FX 370M 0x06FB B 1 Quadro NVS 295 0x06FD B 1 HICx16 + Graphics 0x06FF B 1 NVS 5100M 0x0A2C C +Quadro 400 0x0A38 C Quadro FX 880M 0x0A3C C NVS 2100M 0x0A6A C NVS 3100M 0x0A6C C @@ -390,5 +427,15 @@ Quadro FX 380 LP 0x0A78 C Quadro FX 380M 0x0A7C C Quadro FX 1800M 0x0CBC C Quadro 2000 0x0DD8 C +Quadro 2000D 0x0DD8 0x0914 C +Quadro 2000M 0x0DDA C Quadro 600 0x0DF8 C -NVS 300 0x10D8 C \ No newline at end of file +Quadro 1000M 0x0DFA C +Quadro 3000M 0x0E3A C +Quadro 4000M 0x0E3B C +GeForce 410M 0x1055 D +NVS 4200M 0x1056 D +Quadro 5010M 0x109A C +Quadro 7000 0x109B C +NVS 300 0x10D8 C + -- cgit v0.12 From b1b6ee0f12cdb36a552141f3efebcf917d9f5eff Mon Sep 17 00:00:00 2001 From: Cecil Date: Thu, 6 Oct 2011 21:51:18 -0700 Subject: kernel26:Built evdev into kernel. --- abs/core/kernel26/PKGBUILD | 5 +++-- abs/core/kernel26/config | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/abs/core/kernel26/PKGBUILD b/abs/core/kernel26/PKGBUILD index 1b0efcd..3a59e70 100644 --- a/abs/core/kernel26/PKGBUILD +++ b/abs/core/kernel26/PKGBUILD @@ -6,7 +6,7 @@ pkgname=('kernel26' 'kernel26-headers' 'kernel26-docs') # Build stock -ARCH kern _kernelname=${pkgname#kernel26} _basekernel=2.6.39 pkgver=${_basekernel}.4 -pkgrel=2 +pkgrel=3 makedepends=('xmlto' 'docbook-xsl') _archpatch=1 _patchname="patch-${_basekernel}-1-ARCH" @@ -270,6 +270,7 @@ find $pkgdir -type d -exec chmod 755 {} \; # remove a file already in kernel26 package rm -f $pkgdir/usr/src/linux-$_kernver/Documentation/DocBook/Makefile } + md5sums=('1aab7a741abe08d42e8eccf20de61e05' 'ff5eb7323c054a128d2922bde3297ed5' '25bb870bed3865d3771b5e40d6dbfd50' @@ -280,6 +281,6 @@ md5sums=('1aab7a741abe08d42e8eccf20de61e05' '351469fd75d3fa848398728360c6ffa4' '3b4a1df8e1f584446918f76cfca66e9b' '93d83faea1144a5dbd6df0f42148fb7f' - '7b90f6fcd433ddba40337b1e1158b789' + '0f8a224911137558edd48e41b38000e8' '8be1f60e54eb505b7e67d39fd2233103' '25584700a0a679542929c4bed31433b6') diff --git a/abs/core/kernel26/config b/abs/core/kernel26/config index da92112..97bcfc9 100644 --- a/abs/core/kernel26/config +++ b/abs/core/kernel26/config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux/i386 2.6.39.4 Kernel Configuration -# Wed Aug 17 01:29:19 2011 +# Linux/i386 2.6.39 Kernel Configuration +# Fri Oct 7 04:30:52 2011 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -2511,7 +2511,7 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=m -CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # -- cgit v0.12 From 04949a18e6ea4a313d101911dcdc689d029ddcb1 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Fri, 7 Oct 2011 02:34:55 -0500 Subject: zoneminder: add zmupdate.pl --- abs/core/zoneminder/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/abs/core/zoneminder/PKGBUILD b/abs/core/zoneminder/PKGBUILD index 00ac2c6..6b5c6c8 100755 --- a/abs/core/zoneminder/PKGBUILD +++ b/abs/core/zoneminder/PKGBUILD @@ -3,7 +3,7 @@ pkgname=zoneminder pkgver=1.25.0 -pkgrel=1 +pkgrel=2 pkgdesc="Capture, analyse, record and monitor video security cameras." arch=('i686' 'x86_64') url="http://www.zoneminder.com" @@ -45,12 +45,12 @@ build() { install -D -m 700 $startdir/src/zminit.arch $startdir/pkg/usr/lib/zm/bin/zminit install -D -m 700 $startdir/src/zm.rc.d $startdir/pkg/etc/rc.d/zm install -D -m 700 scripts/zmdbbackup $startdir/pkg/usr/lib/zm/bin/zmdbbackup - install -D -m 700 scripts/zmdbbackup $startdir/pkg/usr/lib/zm/bin/zmdbbackup install -D -m 700 scripts/zmdbrestore $startdir/pkg/usr/lib/zm/bin/zmdbrestore install -D -m 700 scripts/zmeventdump $startdir/pkg/usr/lib/zm/bin/zmeventdump install -D -m 700 scripts/zmlogrotate.conf $startdir/pkg/etc/logrotate.d/zm install -D -m 700 $startdir/src/zmeventbackup $startdir/pkg/etc/cron.hourly/zmeventbackup - install -D -m 755 $startdir/src/zmfilter.pl $startdir/pkg/usr/lib/zm/bin/zmfilter.pl + install -D -m 755 scripts/zmfilter.pl $startdir/pkg/usr/lib/zm/bin/zmfilter.pl + install -D -m 755 scripts/zmupdate.pl $startdir/pkg/usr/lib/zm/bin/zmupdate.pl mkdir -p $startdir/pkg/etc/httpd/conf/extra/ install -m 644 $startdir/src/httpd-zm.conf $startdir/pkg/etc/httpd/conf/extra/httpd-zm.conf @@ -59,6 +59,7 @@ build() { install -D db/zm*.sql $startdir/pkg/usr/lib/zm/upgrade/ mkdir -p $startdir/pkg/var/run/zm + mkdir -p $startdir/pkg/var/lib/zm #install runit files mkdir -p $pkgdir/etc/sv/zm @@ -71,7 +72,6 @@ build() { |xargs -i rm -f {} } - md5sums=('eaefa14befd482154970541252aa1a39' 'b20fb25b187eb6abb21321e153a7fb25' '5033bc098bf497c8aed1fc1b3c9c5f9c' -- cgit v0.12