Compare commits

...

173 Commits

Author SHA1 Message Date
Stephan Raue
cadfde96f0 config/version: set version to 3.95.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 16:28:03 +01:00
Stefan Saraev
6ef33e1091 curl: rtsp: parse "Session:" header properly 2014-03-29 13:40:50 +02:00
Stephan Raue
a01376b71d util-macros: update to util-macros-1.19.0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 08:06:39 +01:00
Stephan Raue
d74d2dd554 xrandr: update to xrandr-1.4.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 08:04:48 +01:00
Stephan Raue
62c1750ad4 xbmc: add upstream patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 08:04:19 +01:00
Stephan Raue
863f66efa7 Revert "libva: update to libva-1.3.0"
This reverts commit 3241fae1ce.
2014-03-29 04:10:36 +01:00
Stephan Raue
475e0e9959 Revert "libva-driver-intel: update to libva-driver-intel-1.3.0"
This reverts commit 16f05c6ca3.
2014-03-29 04:10:22 +01:00
Stephan Raue
d685ca7bed xbmc: add upstream patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 03:16:47 +01:00
Stephan Raue
095d2336ed bcm2835-bootloader: update to bcm2835-bootloader-9c7c2cd
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 03:06:06 +01:00
Stephan Raue
c91274c465 bcm2835-driver: update to bcm2835-driver-9c7c2cd
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 03:05:48 +01:00
Stephan Raue
835a49ff92 projects/RPi/patches: update RPi kernel patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 02:55:53 +01:00
Stephan Raue
777241d5dd xbmc: add PR4473
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 02:25:55 +01:00
Stephan Raue
d35f9cd4f8 xbmc: add PR4475
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 02:25:47 +01:00
Stephan Raue
b2d1a5580a xbmc: add upstream patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 02:25:31 +01:00
Stephan Raue
c1d03046eb xbmc: update PR4445
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-29 02:25:10 +01:00
Stefan Saraev
320230748c xbmc: update to xbmc-13-ce52900 2014-03-29 01:16:41 +02:00
Stefan Saraev
1dda3a99dd Revert "vdr: disable locale support"
This reverts commit 3cc17f4deb.

errors in journal are fine. nothing fatal

if people start to whine about it: vdr.bin --localedir=/path/to/some/empty/dir
2014-03-29 01:08:47 +02:00
Stefan Saraev
d05b5722a1 xbmc-addon-xvdr: strip 2014-03-28 16:42:43 +02:00
Stefan Saraev
79f8b7fc14 xbmc-pvr-addons: strip 2014-03-28 16:42:40 +02:00
Stefan Saraev
a247c895e7 mysql: mysql_config: dont include LDFLAGS in "mysql_config --libs" output
including "$ldflags" with --libs is not an intended behaviour.
this fixes the case where one must rebuild mysql with
DEBUG in order to have xbmc DEBUG build.
2014-03-28 16:42:35 +02:00
Steeve Morin
add8285e38 RTL8192CU: Fix compilation (typo in patch) 2014-03-28 11:45:35 +02:00
Stephan Raue
55232622e3 Revert "projects/*: enable in-kernel RTL8192CU driver"
This reverts commit 2c595ceef9.

Conflicts:
	projects/RPi/options
2014-03-27 23:06:19 +01:00
Stephan Raue
814ce348f0 Revert "projects/RPi/linux: fix kernel config"
This reverts commit e3ea5ec446.
2014-03-27 23:04:15 +01:00
Stefan Saraev
f3eac4364a vdr-plugin-dvbapi: update to vdr-plugin-dvbapi-2b1bacd 2014-03-27 22:19:19 +02:00
Stefan Saraev
7dc87c3c32 buildsys: we require bash 2014-03-27 15:33:45 +02:00
Stefan Saraev
bb3a9b335f xbmc: update to xbmc-13-342c737 2014-03-27 15:33:42 +02:00
Stefan Saraev
16f05c6ca3 libva-driver-intel: update to libva-driver-intel-1.3.0 2014-03-27 15:33:38 +02:00
Stefan Saraev
3241fae1ce libva: update to libva-1.3.0 2014-03-27 15:33:36 +02:00
Stephan Raue
cd75c3b449 libshairplay: add upstream patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-26 20:46:05 +01:00
Stephan Raue
f6fd7d1ee7 systemd: remove not more needed patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-26 15:02:21 +01:00
Stephan Raue
ed74935322 automake: dont install 3rdparty m4 files from here, fix the packages who need them
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-26 15:02:21 +01:00
Stephan Raue
606493827d systemd: update to systemd-212
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-26 15:02:00 +01:00
Stefan Saraev
8b96f46ba2 busybox: add ddbridge to suspendmodules 2014-03-26 13:46:06 +02:00
Stephan Raue
6df81f61c8 projects/RPi/options: disable build of RTL8723AU driver
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-25 20:08:11 +01:00
Stephan Raue
e3ea5ec446 projects/RPi/linux: fix kernel config
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-25 20:08:11 +01:00
Stephan Raue
2c595ceef9 projects/*: enable in-kernel RTL8192CU driver
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-25 19:22:19 +01:00
Stephan Raue
7978fad22f wlan-firmware: update to wlan-firmware-0.0.18
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-25 16:07:31 +01:00
Stephan Raue
0998ffa8f1 new package: add package 'RTL8192DU'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-25 16:07:31 +01:00
Stephan Raue
443a4b8d25 new package: add package 'RTL8723AU'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-25 16:07:31 +01:00
Stephan Raue
e0cae7384d RTL8188EU: update to RTL8188EU-fcc9034
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-25 16:07:31 +01:00
Stefan Saraev
6b2573d1dc Mesa: fix crash on exit with amd + vdpau
thanks @fritsch credits to @koying for the patch
2014-03-24 21:17:37 +02:00
Stephan Raue
9b1fd2a588 linux: update to linux-3.13.7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-24 16:02:18 +01:00
Stefan Saraev
007b8b98ad disable suspend if booting from removable storage 2014-03-24 13:02:37 +02:00
Stefan Saraev
a542ecf3de vdr-addon: libtntnet.so.11 is enough 2014-03-23 21:56:14 +02:00
Stefan Saraev
f8d3de4001 remove package: vdr-sc 2014-03-23 21:56:10 +02:00
Stefan Saraev
786fed55b3 vdr-addon: remove vdr-sc 2014-03-23 21:56:07 +02:00
Stefan Saraev
35b70e919a xbmc: update to xbmc-13-745067f 2014-03-23 17:27:23 +02:00
Stefan Saraev
3db63ac4c6 bye bye dwm. we dont need you anymore 2014-03-23 00:16:05 +02:00
Stefan Saraev
87dedc2cf8 xf86-video-nvidia: downgrade to xf86-video-nvidia-331.49
... because I am stupid and I fail to read
2014-03-22 23:28:51 +02:00
Stefan Saraev
1bfeffafcf xbmc: remove WM hacks. WM detection is fine now. dont set _NET_WM_STATE_FULLSCREEN 2014-03-22 22:40:44 +02:00
Stefan Saraev
082202f76b fluxbox: enable extended windowmanager hints
.. or gtk_window_maximize silently fails
2014-03-22 22:40:36 +02:00
Stephan Raue
14bbc0b3ca xbmc: update PR4445
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-21 17:46:34 +01:00
Stephan Raue
42b8b360f1 bcm2835-bootloader: update to bcm2835-bootloader-18a7921
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-21 17:46:03 +01:00
Stephan Raue
cc586cba21 bcm2835-driver: update to bcm2835-driver-18a7921
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-21 17:46:03 +01:00
Stephan Raue
46d1f3de49 xbmc: add PR4445
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-21 17:46:03 +01:00
Stephan Raue
b11556d2aa xbmc: rename patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-21 17:46:03 +01:00
Stephan Raue
2b4fdf0687 projects/RPi/patches/linux: update RPi patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-21 17:46:03 +01:00
Stephan Raue
7595fbb1af xf86-video-intel: update to xf86-video-intel-2.99.911
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-21 17:46:03 +01:00
Stephan Raue
7488d7591c linux: add patch to add support for TechniSat CableStar Combo HDCI DVB device
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-21 17:46:03 +01:00
Stefan Saraev
b2dc78c9af vdr-addon: settings cosmetics 2014-03-20 21:49:40 +02:00
Stefan Saraev
0268958fbc vdr-plugin-vnsiserver: update to vdr-plugin-vnsiserver-a3f7ac5 2014-03-20 21:49:36 +02:00
Stefan Saraev
477b1215ee mkpkg: vdr-plugin-vnsiserver: moved to separate repository 2014-03-20 21:49:34 +02:00
Stefan Saraev
b6a0bb75f1 curl: re-enable rtsp 2014-03-19 22:22:10 +02:00
Kai Sommerfeld
4f8c2af8c9 Fixed lcdd dependencies. 2014-03-19 22:10:37 +02:00
Stefan Saraev
21fb75ef73 vdr-addon: add vdr-satip plugin 2014-03-19 22:10:37 +02:00
Stefan Saraev
bc09fd58ea new package: vdr-satip
ref #2982
2014-03-19 22:10:37 +02:00
Stefan Saraev
ba69934851 vdr-addon: add dummydevice to depends 2014-03-19 22:10:37 +02:00
Stefan Saraev
2f3643a4f6 vdr-iptv: update to vdr-iptv-2.1.2 2014-03-19 22:10:37 +02:00
Stefan Saraev
d53cc0896f vdr: update to vdr-2.1.6 2014-03-19 22:10:37 +02:00
Stefan Saraev
f930c10b86 update TODO 2014-03-19 12:03:04 +02:00
Christian Hewitt
3217abe6fa atv: add ModeDebug back to xorg.conf
we no longer support /storage/.config/xorg.debug so this commend needs
to be added back
2014-03-19 12:03:01 +02:00
Stefan Saraev
a8ff08ac2b xbmc: revert last FM patch
spotimc broken...
2014-03-18 23:46:22 +02:00
Stefan Saraev
0a4df2da0f make: create release tarbals by default 2014-03-18 13:41:45 +02:00
Christian Hewitt
73b2ac73d2 changelog udpate
update this to provide generic info on how to find change information
..else we’re bundling this very-out-of-date file in each .tar downloaded
2014-03-18 12:02:52 +01:00
Steeve Morin
1ed97dc19d bcm2835-bootloader create_sdcard: create the storage partition aligned on 4mb 2014-03-18 11:41:03 +01:00
Steeve Morin
c02f928cb2 bcm2835-bootloader: create flash/sdcard optimized ext4 filesystem
See http://blogofterje.wordpress.com/2012/01/14/optimizing-fs-on-sd-card/ for
reference:
- disable journaling
- set stride and stripe-width
- set block size to 4k
2014-03-18 11:41:03 +01:00
Stephan Raue
70391fbdf0 new package: add package 'espeak' (initial)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-18 11:40:03 +01:00
Stephan Raue
b5a9271e03 bcm2835-bootloader: update initial config.txt, dont change gpu_mem values anymore on update
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-18 11:40:03 +01:00
Stephan Raue
ed6c301e05 bcm2835-bootloader: use 128MB as GPU MEM, even on 256MB RPis
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-18 11:40:03 +01:00
Stephan Raue
c1c444db63 xbmc: readd PR4414
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-18 11:40:03 +01:00
Stephan Raue
4d8e2bfd8d ntfs-3g_ntfsprogs: update to ntfs-3g_ntfsprogs-2014.2.15
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-18 11:40:03 +01:00
Stephan Raue
fda08977bc openssh: update to openssh-6.6p1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-18 11:40:03 +01:00
Stephan Raue
c7923eb55a libpng: update to libpng-1.6.10
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-18 11:40:03 +01:00
Stephan Raue
b14da755fd sqlite: update to sqlite-autoconf-3080401
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-18 11:40:03 +01:00
Stefan Saraev
e2e0ec3c85 fluxbox: remove decorations 2014-03-17 23:16:49 +02:00
Christian Hewitt
31ae25452b atvboot: cleanup
changes to put all the boot/installer files in one place instead of
scattering them over multiple packages, and removing the 3rdparty
folder from the .tar file as it’s +12MB and nobody is ever going to use
them
2014-03-17 23:16:46 +02:00
Stefan Saraev
89911c0f37 xbmc: update FM patch 2014-03-17 20:33:40 +02:00
Stefan Saraev
5e008012f4 vdr-addon: add dummydevice plugin 2014-03-17 20:33:40 +02:00
Stefan Saraev
c464c29fb9 vdr-plugin-xvdr: update to vdr-plugin-xvdr-7f49bfa 2014-03-17 20:33:40 +02:00
Stefan Saraev
13459fd50a new package: vdr-dummydevice 2014-03-17 20:33:39 +02:00
Stefan Saraev
4834bc1c75 fluxbox: usability fixes. move/resize.. 2014-03-17 20:33:39 +02:00
Stefan Saraev
a9ecf85da8 xbmc: skip WM check 2014-03-17 20:33:39 +02:00
Stefan Saraev
0fb810cb03 fluxbox: tweak config. start by default 2014-03-17 20:33:39 +02:00
Christian Hewitt
49bebdc5fa scripts: mkimage-atv
fixes to make this script work .. ping me on irc if you want to debate
anything
2014-03-17 20:33:39 +02:00
Stefan Saraev
022680f493 service.openelec.settings: update to 0.3.14 2014-03-17 00:52:03 +02:00
Stefan Saraev
c95cf9a231 Revert "xbmc: add PR4414"
This reverts commit 2bbee7ca90.

crash with clean profile as soon I enter system->settings

3  0x00007f6e421f2aa2 in __assert_fail () from /lib/libc.so.6
4  0x00007f6e4471ce06 in avahi_entry_group_update_service_txt_strlst () from /usr/lib/libavahi-client.so.3
5  0x00000000010fd9f8 in CZeroconfAvahi::doForceReAnnounceService(std::string const&) ()
6  0x0000000000b704bb in handleZeroconfAnnouncement() ()

happy broken beta2, newcomers!
2014-03-16 22:29:50 +02:00
Stefan Saraev
359e49626a service.openelec.settings: update to service.openelec.settings-0.3.13 2014-03-16 16:53:55 +02:00
Stefan Saraev
02293ef864 lcdproc: add wrapper script to start 2014-03-16 16:52:02 +02:00
Stefan Saraev
c0cf56004c libXrender: build with -fPIC 2014-03-16 16:10:12 +02:00
Stefan Saraev
d0575271fc libXfixes: build with -fPIC 2014-03-16 16:08:44 +02:00
Stefan Saraev
bd64bbba2f libXdamage: build with -fPIC 2014-03-16 16:08:41 +02:00
Stefan Saraev
391de0a17a libXcomposite: build with -fPIC 2014-03-16 16:08:37 +02:00
Stefan Saraev
b646193917 fluxbox: install fluxbox-update_configs 2014-03-16 16:08:33 +02:00
Stefan Saraev
d124bd561a windowmanagers: systemd: also export /root 2014-03-16 16:01:21 +02:00
Stefan Saraev
ec361b5ea3 RPi: cleanup. thanks @popcornmix 2014-03-16 14:22:48 +02:00
Stephan Raue
80376d3e6a config/version: set version back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-15 14:36:43 +01:00
Stephan Raue
67d84187b0 config/version: set version to 3.95.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-15 04:15:06 +01:00
Stephan Raue
7babb495e3 xbmc: add PR4414
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-15 04:13:01 +01:00
Stephan Raue
ea1ceaa46f xbmc-theme-Confluence: update to xbmc-theme-Confluence-13-a1cab7a
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-15 04:12:40 +01:00
Stephan Raue
68e9c5428f xbmc: update to xbmc-13-a1cab7a
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-15 04:12:21 +01:00
Andy Botting
540169148a Fix ffmpeg build to include SSL support
The XBMC package didn't depend on gnutls, therefore it would be build
before gnutls. Because of this, XBMC's ffmpeg would be built without
and TLS/SSL support and break streaming from some secure streams.

In my case, it broke HLS streaming via a HTTPS url.
2014-03-14 22:45:42 +01:00
Stephan Raue
913cf458ed xf86-video-nvidia-legacy: update to xf86-video-nvidia-legacy-304.121
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-14 21:10:11 +01:00
Stephan Raue
b6d13595ac bcm2835-bootloader: update to bcm2835-bootloader-11886b8
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-14 20:25:59 +01:00
Stephan Raue
29bfd8ad51 bcm2835-driver: update to bcm2835-driver-11886b8
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-14 20:25:39 +01:00
Stephan Raue
3ec0384725 xbmc-theme-Confluence: update to xbmc-theme-Confluence-13-86de5b5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-14 16:29:00 +01:00
Stephan Raue
d7612dee66 xbmc: update to xbmc-13-86de5b5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-14 16:28:36 +01:00
Stefan Saraev
2c80d5d0ed Revert "connman: update to connman-1.22"
This reverts commit b429799b79.
2014-03-14 13:54:15 +02:00
Stefan Saraev
f595b4be79 xbmc: oh damn fix c75b77c :( 2014-03-13 14:37:53 +02:00
Stefan Saraev
39ed3fc17c xbmc: update to xbmc-13-ef4d0c8 2014-03-13 14:20:10 +02:00
Stefan Saraev
730bffa8c2 Revert "xbmc: add upstream patch"
This reverts commit 8b0cd8daf3.

not mainline. ref #2994
2014-03-13 14:20:05 +02:00
Stefan Saraev
56f49f178e xbmc: fix optional libssh support
thanks @pimvullers
2014-03-13 14:12:54 +02:00
Stefan Saraev
54b3b675c3 libhdhomerun: update to libhdhomerun-20140121 2014-03-13 11:30:55 +02:00
Pim Vullers
175f0ca2c9 Disable curses support for cmake 2014-03-13 11:30:49 +02:00
Stefan Saraev
3d49ebd4a3 vdr-addon: bump (4.1.5) 2014-03-12 21:43:07 +02:00
Stefan Saraev
ac3018fd13 tvheadend: bump (4.1.2) 2014-03-12 21:43:07 +02:00
Stefan Saraev
8015822f52 vdr-addon: cehcking for frontend0 is enough
... or sh** happens with multi-frontend adapter (digital-devices for example)
2014-03-12 21:43:07 +02:00
Stefan Saraev
f1314d5d8c tvheadend: cehcking for frontend0 is enough
... or sh** happens with multi-frontend adapter (digital-devices for example)
2014-03-12 21:43:07 +02:00
Stefan Saraev
cb4f8e233e vdr-addon: xbmc allows 'numeric' setting to be empty. fix 2014-03-12 21:43:07 +02:00
Stefan Saraev
5321a58a20 tvheadend: xbmc allows 'numeric' setting to be empty. fix 2014-03-12 21:43:07 +02:00
Stephan Raue
4d1a74cede dvb-firmware: update to dvb-firmware-0.0.38
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-12 17:05:02 +01:00
Stephan Raue
1f32acedb8 samba: update to samba-3.6.23
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-12 17:04:12 +01:00
Stefan Saraev
357873e1e6 alsa-utils: dont install systemd services 2014-03-12 13:21:15 +02:00
Stefan Saraev
9496c2c80c connman: update to connman-1.22 2014-03-12 13:21:09 +02:00
Stefan Saraev
535b0a8cb2 systemd: fix systemd 211 build on non-fedora hosts 2014-03-12 13:07:16 +02:00
Stephan Raue
fd0b4bd192 linux: disable wakeup for 'ehci_pci' and 'xhci_hcd' devices, this should fix some more standby issues
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-12 02:48:24 +01:00
Stephan Raue
297db961ba systemd: update to systemd-211
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-12 02:48:24 +01:00
Stephan Raue
9971be4c18 bluez: update to bluez-5.16
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-12 00:05:42 +01:00
Stephan Raue
087766fe21 lirc: dont start lircd if 'lircd_driver' and/or 'lircd_conf' is empty, thanks to user 'gda'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-11 23:41:05 +01:00
Stephan Raue
28d38c295a wlan-firmware: update to wlan-firmware-0.0.17
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-11 23:10:58 +02:00
Stephan Raue
c2f62cfaba pulseaudio: update to pulseaudio-5.0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-11 23:10:55 +02:00
Stefan Saraev
6c8b869279 xbmc-addon-xvdr: update to xbmc-addon-xvdr-77a27f8 2014-03-11 21:13:50 +02:00
Stefan Saraev
6fb9f7705c vdr-addon: bump (4.1.4) 2014-03-11 20:35:36 +02:00
Stefan Saraev
5f519dd7f7 vdr-plugin-xvdr: update to vdr-plugin-xvdr-4a9d95e 2014-03-11 20:35:12 +02:00
Stefan Saraev
372a148f60 vdr-plugin-dvbapi: update to vdr-plugin-dvbapi-a9b738e 2014-03-11 20:34:52 +02:00
Stefan Saraev
23820c0447 vdr-plugin-eepg: fuxup. dont touch DEFINES
uh I missed that one ;)
2014-03-11 20:23:04 +02:00
Alasdair Campbell
ac766edd14 add vdr-plugin-eepg
closes #3002
2014-03-11 20:23:04 +02:00
Stephan Raue
a749513c10 misc-firmware: update to misc-firmware-0.0.9
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-11 15:46:31 +02:00
Stefan Saraev
f00a7d3ba2 xbmc: 5 seconds to exit. no more
5 seconds should be enough to store settings, if
pvrmanager / random addon / service is not yet stopped, we dont care
2014-03-11 15:46:31 +02:00
Stefan Saraev
cdb586ad15 xbmc: init takes care of reboot and shutdown
when one decides to reboot/shutdown via xbmc GUI, he/she
expects it to happen immediately or with minimal delay.

there are addons (trakt, watchdog) that are known to cause high
(1+ minute) shutdown.

----
16:19:15 T:140287759476608   DEBUG: CAnnouncementManager - Announcement: OnQuit from xbmc
16:19:15 T:140287759476608   DEBUG: GOT ANNOUNCEMENT, type: 8, from xbmc, message OnQuit
16:19:15 T:140287759476608  NOTICE: Storing total System Uptime
16:19:15 T:140287759476608  NOTICE: Saving settings
16:19:15 T:140287759476608  NOTICE: stop all
^^ CJobManager::GetInstance().CancelJobs() comes in
16:19:15 T:140286952978176   DEBUG: Thread JobWorker 140286952978176 terminating (autodelete)
16:19:15 T:140286978156288   DEBUG: Thread JobWorker 140286978156288 terminating (autodelete)
16:19:15 T:140286676150016   DEBUG: Thread JobWorker 140286676150016 terminating (autodelete)
16:19:19 T:140286676150016  NOTICE: Thread FileCache start, auto delete: false
^^ so far so good but this should never happen once CApplication::Stop is called. but it does
16:19:30 T:140286676150016   ERROR: CCurlFile::FillBuffer - Failed: Timeout was reached(28)
16:19:30 T:140286676150016  NOTICE: CCurlFile::FillBuffer - Reconnect, (re)try 1
16:19:50 T:140286676150016   ERROR: CCurlFile::FillBuffer - Failed: Timeout was reached(28)
16:19:50 T:140286676150016  NOTICE: CCurlFile::FillBuffer - Reconnect, (re)try 2
16:20:10 T:140286676150016   ERROR: CCurlFile::FillBuffer - Failed: Timeout was reached(28)
16:20:10 T:140286676150016   ERROR: CCurlFile::FillBuffer - Reconnect failed!
16:20:10 T:140286676150016    INFO: CFileCache::Process - Hit eof.
16:20:10 T:140286676150016   DEBUG: Thread FileCache 140286676150016 terminating
^^ 1 minute shutdown delay..
----

with this patch now xbmc can handle SIGTERM and attempt clean exit, systemd
will take care of the rest if xbmc fails to exit.
2014-03-11 15:46:31 +02:00
Stephan Raue
e9ff6f4d2d lirc: fix leftover from testing
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-09 22:57:41 +01:00
Stephan Raue
15a5ae6ce4 lircd: start lircd via systemd, rework lircd_helper and udev rules, this should fix #2991, this should fix #2968
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-09 22:28:30 +01:00
Stephan Raue
07a6125d1e eventlircd: seperate udev rules and scripts and move to package 'lirc'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-09 22:28:30 +01:00
Stefan Saraev
3a0b0544d8 sundtek-mediatv: dont touch /storage/.profile 2014-03-09 23:17:39 +02:00
Stephan Raue
66c678419d Revert "xbmc: add PR3677"
This reverts commit 12768a5a5b.
2014-03-09 23:17:32 +02:00
Stefan Saraev
670a175206 RPi//advancedsettings.xml: dont force omxplayer as default audio player 2014-03-09 20:22:40 +02:00
Stefan Saraev
79623f2eb3 samba: autoshare is enabled by default. ...on new installs too 2014-03-09 20:08:50 +02:00
Stefan Saraev
e43b9b6f75 xbmc: update to xbmc-13-887db48 2014-03-09 00:52:24 +02:00
Stefan Saraev
31bc54ef13 mkpkg: update mkpkg_xbmc for gotham. cleanup 2014-03-09 00:52:24 +02:00
Lukas Rusak
3db640d681 Updated default fluxbox config files 2014-03-09 00:52:24 +02:00
Stefan Saraev
b8d228e228 config/path: unset PYTHONSTARTUP/PYTHONPATH
tryfix #2964
2014-03-09 00:52:24 +02:00
Stephan Raue
090aa9b441 Merge branch 'openelec-4.0' of https://github.com/OpenELEC/OpenELEC.tv into openelec-4.0 2014-03-08 00:02:43 +01:00
Stefan Saraev
5f5b177c59 misc-firmware: update to misc-firmware-0.0.8 2014-03-07 20:15:15 +02:00
Stephan Raue
4add89cab2 projects/RPi/filesystem: move /etc/modules to /usr/lib/modules-load.d/
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-07 16:27:47 +01:00
Stephan Raue
b1133fc9b8 eventlircd: use /run/lirc instead /var/run/lirc for lircs pid and socket files
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-07 15:35:59 +01:00
Stephan Raue
4c9178d948 linux: update to linux-3.13.6
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-07 11:43:25 +01:00
Stefan Saraev
2aa9d968b6 fluxbox: dont build with imlib2 2014-03-07 10:22:24 +02:00
Stefan Saraev
4034e52c6d service.openelec.settings: update to service.openelec.settings-0.3.12
closes #2974
2014-03-06 23:57:31 +02:00
Stefan Saraev
406400de43 fix radeonsi/radeon typo
closes #2874
2014-03-06 12:22:06 +02:00
Stephan Raue
f9fbfc8e62 config/version: set version back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-06 11:20:36 +01:00
Stephan Raue
3496da6625 config/version: set version to 3.95.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-06 10:21:32 +01:00
Stephan Raue
31b8ef7afb projects/RPi/linux: update kernel config
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-03-06 10:21:03 +01:00
Stephan Raue
a5d64f255a Merge branch 'master' of https://github.com/OpenELEC/OpenELEC.tv into openelec-4.0 2014-03-05 19:02:27 +01:00
Joachim Breuer
f2e593a8c0 Enable auto-repeat for all non-qualifier keys 2014-03-05 17:35:07 +01:00
192 changed files with 3814 additions and 3537 deletions

View File

@@ -1,20 +1,13 @@
OpenELEC (Version 2.1)
OpenELEC CHANGELOG
==================
Changelog OpenELEC-2.0 to OpenELEC-2.1
To view recent changes/commits to the project (master branch) please visit:
Added packages:
- add package 'ppp'
- add package 'pptp'
https://github.com/OpenELEC/OpenELEC.tv/commits/master
Package updates:
- update linux to linux-3.5
- update dialog to dialog-1.1-20120215
- update connman to connman-1.4
To compare commits between versions use a formatted URL like:
Added functions:
- sshd can be enabled via OpenELEC Settings addon
- add PPTP support
https://github.com/OpenELEC/OpenELEC.tv/compare/3.2.3...3.2.4
Changed functions:
Removed functions:
If you have questions on differences between releases please ask them in the
OpenELEC website forums or IRC support channel.

View File

@@ -1,6 +1,6 @@
BUILD_DIRS=build.*
all: system
all: release
system:
./scripts/image

1
TODO
View File

@@ -6,4 +6,3 @@ irserver:
settings addon:
- remove ps3 sleep? should be fixed in bluez 5.13/5.14
- move LCDd to services

View File

@@ -193,3 +193,7 @@ BUILD_INDENT_SIZE=4
# multilib? nah
unset CONFIG_SITE
# meh suse
unset PYTHONSTARTUP
unset PYTHONPATH

View File

@@ -1,5 +1,5 @@
# VERSION: set full version, use "devel" for development version
OPENELEC_VERSION="devel"
OPENELEC_VERSION="3.95.3"
# OS_VERSION: OS Version
OS_VERSION="4.0"

View File

@@ -0,0 +1,55 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC 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.
#
# OpenELEC 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 OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="vdr-dummydevice"
PKG_VERSION="2.0.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.vdr-wiki.de/wiki/index.php/Dummydevice-plugin"
PKG_URL="http://phivdr.dyndns.org/vdr/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tgz"
PKG_SOURCE_DIR="dummydevice-${PKG_VERSION}"
PKG_DEPENDS_TARGET="toolchain vdr"
PKG_PRIORITY="optional"
PKG_SECTION="multimedia"
PKG_SHORTDESC="vdr dummydevice plugin"
PKG_LONGDESC="vdr dummydevice plugin"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
pre_configure_target() {
export CFLAGS="$CFLAGS -fPIC"
export CXXFLAGS="$CXXFLAGS -fPIC"
export LDFLAGS="$LDFLAGS -fPIC"
}
make_target() {
VDR_DIR=$(get_build_dir vdr)
make VDRDIR=$VDR_DIR \
LIBDIR="." \
LOCALEDIR="./locale"
}
post_make_target() {
$STRIP libvdr-*.so*
}
makeinstall_target() {
: # installation not needed, done by create-addon script
}

View File

@@ -0,0 +1,46 @@
diff --git a/Makefile b/Makefile
index dc959f1..5cb2315 100644
--- a/Makefile
+++ b/Makefile
@@ -15,22 +15,15 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ pri
### The directory environment:
-# Use package data if installed...otherwise assume we're under the VDR source directory:
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
-LIBDIR = $(call PKGCFG,libdir)
-LOCDIR = $(call PKGCFG,locdir)
-PLGCFG = $(call PKGCFG,plgcfg)
-#
TMPDIR ?= /tmp
### The compiler options:
-export CFLAGS = $(call PKGCFG,cflags)
-export CXXFLAGS = $(call PKGCFG,cxxflags)
+include $(VDRDIR)/Make.global
### The version number of VDR's plugin API:
-APIVERSION = $(call PKGCFG,apiversion)
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### Allow user defined options to overwrite defaults:
@@ -47,7 +40,7 @@ SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
-INCLUDES +=
+INCLUDES += -I$(VDRDIR)/include
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
@@ -103,6 +96,7 @@ install-i18n: $(I18Nmsgs)
$(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="vdr-iptv"
PKG_VERSION="2.1.0"
PKG_VERSION="2.1.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,5 +1,5 @@
diff --git a/Makefile b/Makefile
index 74f8b09..db294fc 100644
index 48c8b2c..d370f92 100644
--- a/Makefile
+++ b/Makefile
@@ -12,8 +12,6 @@
@@ -11,7 +11,7 @@ index 74f8b09..db294fc 100644
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
@@ -27,23 +25,15 @@ GITTAG = $(shell git describe --always 2>/dev/null)
@@ -27,24 +25,15 @@ GITTAG = $(shell git describe --always 2>/dev/null)
### The directory environment:
@@ -20,6 +20,7 @@ index 74f8b09..db294fc 100644
-LIBDIR = $(call PKGCFG,libdir)
-LOCDIR = $(call PKGCFG,locdir)
-PLGCFG = $(call PKGCFG,plgcfg)
-RESDIR = $(call PKGCFG,resdir)
-CFGDIR = $(call PKGCFG,configdir)
-#
TMPDIR ?= /tmp
@@ -37,7 +38,7 @@ index 74f8b09..db294fc 100644
### Allow user defined options to overwrite defaults:
@@ -64,7 +54,7 @@ LIBS = $(shell curl-config --libs)
@@ -65,7 +54,7 @@ LIBS = $(shell curl-config --libs)
### Includes and Defines (add further entries here):
@@ -46,7 +47,7 @@ index 74f8b09..db294fc 100644
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
@@ -138,6 +128,7 @@ install-i18n: $(I18Nmsgs)
@@ -139,6 +128,7 @@ install-i18n: $(I18Nmsgs)
$(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="vdr-plugin-dvbapi"
PKG_VERSION="a3b4a5a"
PKG_VERSION="2b1bacd"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,8 +1,12 @@
diff --git a/Makefile b/Makefile
index a49dda6..873e73d 100644
index efd124a..ed303fa 100644
--- a/Makefile
+++ b/Makefile
@@ -16,18 +16,11 @@ GITTAG = $(shell git describe --always 2>/dev/null)
@@ -12,22 +12,14 @@ PLUGIN = dvbapi
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' DVBAPI.h | awk '{ print $$6 }' | sed -e 's/[";]//g')
-GITTAG = $(shell git describe --always 2>/dev/null)
### The directory environment:
@@ -22,7 +26,7 @@ index a49dda6..873e73d 100644
### Allow user defined options to overwrite defaults:
@@ -35,7 +28,7 @@ export CXXFLAGS = $(call PKGCFG,cxxflags)
@@ -35,7 +27,7 @@ export CXXFLAGS = $(call PKGCFG,cxxflags)
### The version number of VDR's plugin API:
@@ -31,7 +35,7 @@ index a49dda6..873e73d 100644
### The name of the distribution archive:
@@ -48,7 +41,7 @@ SOFILE = libvdr-$(PLUGIN).so
@@ -48,7 +40,7 @@ SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
@@ -40,7 +44,7 @@ index a49dda6..873e73d 100644
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
@@ -122,6 +115,7 @@ install-i18n: $(I18Nmsgs)
@@ -122,6 +114,7 @@ install-i18n: $(I18Nmsgs)
$(SOFILE): $(OBJS) $(FFDECSA)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(DECSALIB) -o $@

View File

@@ -16,35 +16,27 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="vdr-sc"
PKG_VERSION="620"
PKG_NAME="vdr-plugin-eepg"
PKG_VERSION="69b47ba"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://85.17.209.13:6100/"
PKG_SITE="http://projects.vdr-developer.org/projects/plg-eepg"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain vdr openssl"
PKG_DEPENDS_TARGET="toolchain vdr"
PKG_PRIORITY="optional"
PKG_SECTION="multimedia"
PKG_SHORTDESC="TV"
PKG_LONGDESC="TV"
PKG_SHORTDESC="vdr-plugin-eepg"
PKG_LONGDESC="This plugin parses the Extended (2 to 10 day) EPG data which is send by providers on their portal channels. This EEPG data is transmitted in a non-standard format on a non-standard PID."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
pre_make_target() {
# dont build parallel
MAKEFLAGS=-j1
}
pre_configure_target() {
# vdr-sc fails building with LTO support
strip_lto
export CFLAGS="$CFLAGS -fPIC"
export CXXFLAGS="$CXXFLAGS -fPIC"
export LDFLAGS="$LDFLAGS -fPIC"
export CSAFLAGS="$CFLAGS -Wall -fomit-frame-pointer -fexpensive-optimizations -funroll-loops"
}
make_target() {

View File

@@ -0,0 +1,34 @@
--- vdr-plugin-eepg-master/Makefile 2014-03-11 15:44:36.675368020 +0000
+++ vdr-plugin-eepg-master/Makefile 2014-03-11 15:51:02.065495474 +0000
@@ -31,21 +31,16 @@
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
-LIBDIR = $(call PKGCFG,libdir)
-LOCDIR = $(call PKGCFG,locdir)
-PLGCFG = $(call PKGCFG,plgcfg)
#
TMPDIR ?= /tmp
### The compiler options:
-export CFLAGS = $(call PKGCFG,cflags)
-export CXXFLAGS = $(call PKGCFG,cxxflags)
+include $(VDRDIR)/Make.global
### The version number of VDR's plugin API:
-APIVERSION = $(call PKGCFG,apiversion)
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### Allow user defined options to overwrite defaults:
@@ -119,6 +114,7 @@
$(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="vdr-plugin-vnsiserver"
PKG_VERSION="e5f02b6"
PKG_VERSION="a3f7ac5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -2,15 +2,6 @@ diff --git a/Makefile b/Makefile
index 8f37c92..94869aa 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
-PLUGIN = vnsiserver5
+PLUGIN = vnsiserver
### The version number of this plugin (taken from the main source file):
@@ -16,30 +16,18 @@ VERSION = $(shell grep 'static const char \*VERSION *=' vnsi.h | awk '{ print $$
### The directory environment:

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="vdr-plugin-xvdr"
PKG_VERSION="7d6ebb7"
PKG_VERSION="7f49bfa"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -0,0 +1,52 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC 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.
#
# OpenELEC 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 OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="vdr-satip"
PKG_VERSION="0.1.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.saunalahti.fi/~rahrenbe/vdr/satip/"
PKG_URL="http://www.saunalahti.fi/~rahrenbe/vdr/satip/files/$PKG_NAME-$PKG_VERSION.tgz"
PKG_SOURCE_DIR="satip-${PKG_VERSION}"
PKG_DEPENDS_TARGET="toolchain vdr curl tinyxml"
PKG_PRIORITY="optional"
PKG_SECTION="multimedia"
PKG_SHORTDESC="vdr-satip: SAT>IP plugin for VDR"
PKG_LONGDESC="vdr-satip is a SAT>IP plugin for VDR"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
pre_configure_target() {
export CFLAGS="$CFLAGS -fPIC"
export CXXFLAGS="$CXXFLAGS -fPIC"
export LDFLAGS="$LDFLAGS -fPIC"
}
make_target() {
VDR_DIR=$(get_build_dir vdr)
make VDRDIR=$VDR_DIR \
SATIP_USE_TINYXML=1 \
LIBDIR="." \
LOCALEDIR="./locale"
}
makeinstall_target() {
: # installation not needed, done by create-addon script
}

View File

@@ -0,0 +1,56 @@
diff --git a/Makefile b/Makefile
index 524338c..0569ebe 100644
--- a/Makefile
+++ b/Makefile
@@ -12,8 +12,6 @@
# Strip debug symbols? Set eg. to /bin/true if not
-STRIP = strip
-
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
@@ -27,23 +25,15 @@ GITTAG = $(shell git describe --always 2>/dev/null)
### The directory environment:
-# Use package data if installed...otherwise assume we're under the VDR source directory:
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
-LIBDIR = $(call PKGCFG,libdir)
-LOCDIR = $(call PKGCFG,locdir)
-PLGCFG = $(call PKGCFG,plgcfg)
-CFGDIR = $(call PKGCFG,configdir)
-#
TMPDIR ?= /tmp
### The compiler options:
-export CFLAGS = $(call PKGCFG,cflags)
-export CXXFLAGS = $(call PKGCFG,cxxflags)
+include $(VDRDIR)/Make.global
### The version number of VDR's plugin API:
-APIVERSION = $(call PKGCFG,apiversion)
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
### Allow user defined options to overwrite defaults:
@@ -64,7 +54,7 @@ LIBS = $(shell curl-config --libs)
### Includes and Defines (add further entries here):
-INCLUDES +=
+INCLUDES += -I$(VDRDIR)/include
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
@@ -139,6 +129,7 @@ install-i18n: $(I18Nmsgs)
$(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
ifndef SATIP_DEBUG
@$(STRIP) $@
endif

View File

@@ -1,12 +0,0 @@
diff -Naur vdr-sc-603/Makefile vdr-sc-603.patch/Makefile
--- vdr-sc-603/Makefile 2011-12-24 04:02:53.000000000 +0100
+++ vdr-sc-603.patch/Makefile 2011-12-29 18:57:21.660586103 +0100
@@ -213,7 +213,7 @@
@cp -p $< $@
$(FFDECSA) $(FFDECSATEST): $(FFDECSADIR)/*.c $(FFDECSADIR)/*.h
- @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CSAFLAGS) -march=$(CPUOPT)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) all
+ @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CSAFLAGS)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) FFdecsa.o
$(I18Npot): $(shell grep -rl '\(tr\|trNOOP\)(\".*\")' *.c $(SYSDIR))
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<noone@nowhere.org>' -o $@ `ls $^`

View File

@@ -1,31 +0,0 @@
diff --git a/device.c b/device.c
index 04bbef1..e6d63aa 100644
--- a/device.c
+++ b/device.c
@@ -357,7 +357,7 @@ bool cScDevices::Initialize(void)
*vdr_nci=0; *vdr_ud=vdr_save_ud;
int i, found=0;
- for(i=0; i<MAXDVBDEVICES; i++) {
+ for(i=0; i<MAXDEVICES; i++) {
if(UseDevice(NextCardIndex())) {
char name[128];
cScDevices::DvbName(DEV_DVB_FRONTEND,i,0,name,sizeof(name));
@@ -382,7 +382,7 @@ bool cScDevices::Initialize(void)
}
else NextCardIndex(1);
}
- NextCardIndex(MAXDVBDEVICES-i);
+ NextCardIndex(MAXDEVICES-i);
if(found>0) PRINTF(L_GEN_INFO,"captured %d video device%s",found,found>1 ? "s" : "");
else PRINTF(L_GEN_INFO,"no DVB device captured");
return found>0;
@@ -411,7 +411,7 @@ void cScDevices::Shutdown(void)
void cScDevices::SetForceBudget(int n)
{
- if(n>=0 && n<MAXDVBDEVICES) budget|=(1<<n);
+ if(n>=0 && n<MAXDEVICES) budget|=(1<<n);
}
bool cScDevices::ForceBudget(int n)

View File

@@ -1,73 +0,0 @@
## source: http://overlays.gentoo.org/svn/proj/vdr/vdr-devel/media-plugins/vdr-sc/files/
diff -r 29b7b5f231c8 cam.c
--- a/cam.c Sat Jul 21 20:51:33 2012 +0200
+++ b/cam.c Wed Jan 08 16:47:38 2014 +0400
@@ -1841,7 +1841,7 @@
cScCamSlot(cCam *Cam, const char *DevId, int Slot);
void Process(const unsigned char *data, int len);
eModuleStatus Status(void);
- bool Reset(bool log=true);
+ bool ResetSlot(bool log=true);
cCiFrame *Frame(void) { return &frame; }
};
@@ -1853,7 +1853,7 @@
cam=Cam; devId=DevId; slot=Slot;
version=0; caids[0]=0; doReply=false; lastStatus=msReset;
frame.SetRb(&rb);
- Reset(false);
+ ResetSlot(false);
}
eModuleStatus cScCamSlot::Status(void)
@@ -1876,7 +1876,7 @@
return status;
}
-bool cScCamSlot::Reset(bool log)
+bool cScCamSlot::ResetSlot(bool log)
{
reset=true; resetTimer.Set(SLOT_RESET_TIME);
rb.Clear();
@@ -1890,7 +1890,7 @@
bool dr=cam->IsSoftCSA(false) || ScSetup.ConcurrentFF>0;
if(dr!=doReply && !IsDecrypting()) {
PRINTF(L_CORE_CI,"%s.%d: doReply changed, reset triggered",devId,slot);
- Reset(false);
+ ResetSlot(false);
doReply=dr;
}
if(checkTimer.TimedOut()) {
@@ -2330,7 +2330,7 @@
{
cMutexLock lock(&ciMutex);
PRINTF(L_CORE_CI,"%s: reset of slot %d requested",devId,Slot);
- return slots[Slot] ? slots[Slot]->Reset():false;
+ return slots[Slot] ? slots[Slot]->ResetSlot():false;
}
eModuleStatus cCam::ModuleStatus(int Slot)
--- a/device-tmpl.c 2012-07-21 20:51:33.000000000 +0200
+++ b/device-tmpl.c 2014-01-26 13:51:59.000000000 +0100
@@ -41,7 +41,6 @@
#endif //!SASC
protected:
#ifndef SASC
- virtual bool Ready(void);
virtual bool SetPid(cPidHandle *Handle, int Type, bool On);
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
virtual bool OpenDvr(void);
@@ -164,12 +163,6 @@
return cam || hwciadapter;
}
-bool SCDEVICE::Ready(void)
-{
- return (cam ? cam->Ready():true) &&
- (hwciadapter ? hwciadapter->Ready():true);
-}
-
bool SCDEVICE::SetPid(cPidHandle *Handle, int Type, bool On)
{
if(cam) cam->SetPid(Type,Handle->pid,On);

View File

@@ -18,7 +18,7 @@
################################################################################
PKG_NAME="vdr"
PKG_VERSION="2.1.5"
PKG_VERSION="2.1.6"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,27 +0,0 @@
From 092b87b7789206f041de68016fb9a900577a6681 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Sun, 13 Oct 2013 20:40:36 +0300
Subject: [PATCH] no locale support
---
vdr.c | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/vdr.c b/vdr.c
index ba59f07..c1b0541 100644
--- a/vdr.c
+++ b/vdr.c
@@ -637,10 +637,6 @@ int main(int argc, char *argv[])
cCharSetConv::SetSystemCharacterTable(CodeSet);
}
- // Initialize internationalization:
-
- I18nInitialize(LocaleDirectory);
-
// Main program loop variables - need to be here to have them initialized before any EXIT():
cEpgDataReader EpgDataReader;
--
1.7.2.5

View File

@@ -1,3 +1,5 @@
4.1.5
dont touch /storage/.profile
4.1.4
enable hw pid filter by default
4.1.3

View File

@@ -18,7 +18,7 @@
PKG_NAME="sundtek-mediatv"
PKG_VERSION="4.1"
PKG_REV="4"
PKG_REV="5"
PKG_ARCH="any"
PKG_LICENSE="nonfree"
PKG_SITE="http://support.sundtek.com/"
@@ -49,6 +49,8 @@ make_target() {
esac
wget -O installer.tar.gz $INSTALLER_URL
tar -xzf installer.tar.gz
# we run this via wrapper
mv opt/bin/mediaclient opt/bin/mediaclient.bin
chmod 755 opt/bin/*
}

View File

@@ -0,0 +1,2 @@
#!/bin/sh
LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so exec mediaclient.bin "$@"

View File

@@ -73,17 +73,6 @@ mkdir -p /var/config
cat "$SUNDTEK_ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/sundtek-addon.conf
. /var/config/sundtek-addon.conf
# add alias for /opt/bin/mediaclient
alias_set="$(grep libmediaclient.so /storage/.profile 2>/dev/null)"
if [ -z "$alias_set" ]; then
echo "" >>/storage/.profile
echo "[ -f /storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so ] && export LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so" >>/storage/.profile
echo "" >>/storage/.profile
else
# fix name
sed -i 's|/driver.dvb.sundtek/|/driver.dvb.sundtek-mediatv/|g' /storage/.profile
fi
export LD_PRELOAD=$SUNDTEK_ADDON_DIR/lib/libmediaclient.so
if [ -z "$(pidof mediasrv)" ]; then
@@ -240,7 +229,7 @@ if [ -z "$(pidof mediasrv)" ]; then
# save adapter serial number in background
sleep 5
serial_number_old=$(cat $SUNDTEK_ADDON_HOME/adapters.txt 2>/dev/null)
serial_number_new=$(mediaclient -e | awk '/device / {print $0} /ID:/ {print $2}')
serial_number_new=$(mediaclient.bin -e | awk '/device / {print $0} /ID:/ {print $2}')
if [ "$serial_number_old" != "$serial_number_new" ]; then
echo "$serial_number_new" >$SUNDTEK_ADDON_HOME/adapters.txt
fi

View File

@@ -25,7 +25,7 @@ __cwd__ = __settings__.getAddonInfo('path')
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient'))
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient.bin'))
__ld_preload__ = xbmc.translatePath(os.path.join(__cwd__, 'lib', 'libmediaclient.so'))
__mediaclient_e__ = 'LD_PRELOAD=' + __ld_preload__ + ' ' + __mediaclient__ + ' -e'

View File

@@ -1,3 +1,6 @@
4.1.2
- fix issues with "wait for frontend init". thanks @sraue
4.1.1
- rebuild to fix curl/gnutls/ssl

View File

@@ -18,7 +18,7 @@
PKG_NAME="tvheadend"
PKG_VERSION="3.4.27"
PKG_REV="1"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"

View File

@@ -73,10 +73,13 @@ for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver
done
# (wait for) at least 1 adapter (xbmc allows to set 0)
# xbmc allows "numeric" type field to be empty. lets handle thaat
[ "$NUM_ADAPTERS" = "" ] && NUM_ADAPTERS=1
# 0 does not make sense. should be 1 or more
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
while [ true ] ; do
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend0 ] ; then
break
fi
sleep 1

View File

@@ -1,3 +1,11 @@
4.1.5
- fix issues with "wait for frontend init". thanks @sraue
4.1.4
- add plugin 'vdr-plugin-eepg'
- update to vdr-plugin-xvdr-4a9d95e
- update to vdr-plugin-dvbapi-a9b738e
4.1.3
- update to vdr-2.1.5
- update to vdr-iptv-2.1.0

View File

@@ -19,12 +19,12 @@
PKG_NAME="vdr-addon"
PKG_VERSION="4.1"
PKG_REV="3"
PKG_REV="5"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.openelec.tv"
PKG_URL=""
PKG_DEPENDS_TARGET="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-sc vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr"
PKG_DEPENDS_TARGET="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr vdr-plugin-eepg vdr-dummydevice vdr-satip"
PKG_PRIORITY="optional"
PKG_SECTION="service.multimedia"
PKG_SHORTDESC="vdr: A powerful DVB TV application"
@@ -46,7 +46,6 @@ addon() {
VDR_LIVE_DIR="$(get_build_dir vdr-live)"
VDR_PLUGIN_XVDR_DIR="$(get_build_dir vdr-plugin-xvdr)"
VDR_PLUGIN_VNSISERVER_DIR="$(get_build_dir vdr-plugin-vnsiserver)"
VDR_SC_DIR="$(get_build_dir vdr-sc)"
VDR_PLUGIN_STREAMVEV_DIR="$(get_build_dir vdr-plugin-streamdev)"
VDR_PLUGIN_XMLTV2VDR="$(get_build_dir vdr-plugin-xmltv2vdr)"
@@ -76,14 +75,17 @@ addon() {
cp -PR $(get_build_dir vdr-wirbelscan)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $(get_build_dir vdr-wirbelscancontrol)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $(get_build_dir vdr-plugin-dvbapi)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $VDR_SC_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $VDR_SC_DIR/systems/*/libsc*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $(get_build_dir vdr-plugin-eepg)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/server/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/client/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $VDR_LIVE_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $(get_build_dir vdr-control)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $(get_build_dir vdr-epgsearch)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $VDR_PLUGIN_XMLTV2VDR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $(get_build_dir vdr-dummydevice)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
cp -PR $(get_build_dir vdr-satip)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/eepg
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
cp -PR $VDR_PLUGIN_XVDR_DIR/xvdr/allowed_hosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
@@ -97,7 +99,7 @@ addon() {
cp -P $VDR_PLUGIN_XMLTV2VDR/dist/epgdata2xmltv/epgdata2xmltv $ADDON_BUILD/$PKG_ADDON_ID/bin
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
cp -P $(get_build_dir tntnet)/.install_pkg/usr/lib/libtntnet.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
cp -PL $(get_build_dir tntnet)/.install_pkg/usr/lib/libtntnet.so.11 $ADDON_BUILD/$PKG_ADDON_ID/lib
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/streamdev-server
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/streamdev-server/streamdevhosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/streamdev-server

View File

@@ -78,7 +78,7 @@ fi
# keep softcam first
if [ "$ENABLE_SOFTCAM" == "true" ] ; then
VDR_ARG="$VDR_ARG -P $SOFTCAM_PLUGIN"
VDR_ARG="$VDR_ARG -P dvbapi"
fi
VDR_ARG="$VDR_ARG -P wirbelscan -P wirbelscancontrol"
if [ "$ENABLE_IPTV" == "true" ] ; then
@@ -96,9 +96,18 @@ fi
if [ "$ENABLE_CONTROL" == "true" ] ; then
VDR_ARG="$VDR_ARG -P 'control -p $CONTROL_PORT'"
fi
if [ "$ENABLE_EEPG" == "true" ] ; then
VDR_ARG="$VDR_ARG -P eepg"
fi
if [ "$ENABLE_EPGSEARCH" == "true" ] ; then
VDR_ARG="$VDR_ARG -P epgsearch"
fi
if [ "$ENABLE_DUMMYDEVICE" == "true" ] ; then
VDR_ARG="$VDR_ARG -P dummydevice"
fi
if [ "$ENABLE_SATIP" == "true" ] ; then
VDR_ARG="$VDR_ARG -P satip"
fi
if [ "$ENABLE_XMLTV2VDR" == "true" ] ; then
VDR_ARG="$VDR_ARG -P 'xmltv2vdr --epgfile=$ADDON_CACHE_DIR/epg.db'"
# xmltv2vdr needs /var/run/vdr
@@ -140,10 +149,13 @@ for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver
done
# (wait for) at least 1 adapter (xbmc allows to set 0)
# xbmc allows "numeric" type field to be empty. lets handle thaat
[ "$NUM_ADAPTERS" = "" ] && NUM_ADAPTERS=1
# 0 does not make sense. should be 1 or more
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
while [ true ] ; do
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend0 ] ; then
break
fi
sleep 1

View File

@@ -11,15 +11,17 @@
<string id="1031">Enable plugin: iptv</string>
<string id="1032">Enable plugin: streamdev-client</string>
<string id="1033">Enable plugin: streamdev-server</string>
<string id="1036">Enable softcam</string>
<string id="1037">softcam plugin</string>
<string id="1036">Enable softcam (dvbapi)</string>
<string id="1038">Enable plugin: live</string>
<string id="1039">live: listen on ip</string>
<string id="1040">live: listen on port</string>
<string id="1039">- listen on ip</string>
<string id="1040">- listen on port</string>
<string id="1042">Enable plugin: control</string>
<string id="1043">control: listen on port</string>
<string id="1043">- listen on port</string>
<string id="1044">Enable plugin: epgsearch</string>
<string id="1045">Enable plugin: xmltv2vdr</string>
<string id="1046">Enable plugin: extended EPG</string>
<string id="1047">Enable plugin: dummydevice</string>
<string id="1048">Enable plugin: satip</string>
<string id="1051">VDR Configuration</string>
<string id="1052">VDR Video Dir</string>
<string id="1053">PVR plugin</string>

View File

@@ -13,7 +13,7 @@
<setting id="VDR_VIDEO_DIR" type="folder" label="1052" value="" default="/storage/videos" />
<setting type="sep" />
<setting id="ENABLE_EXTERNAL_RECCMD" type="bool" label="1056" default="false" />
<setting id="EXTERNAL_RECCMD_PATH" type="file" label="1057" enable="!eq(-1,false)" default="" />
<setting id="EXTERNAL_RECCMD_PATH" type="file" label="1057" visible="!eq(-1,false)" default="" />
</category>
<category label="1001">
<setting label="1030" type="lsep"/>
@@ -23,14 +23,16 @@
<setting id="ENABLE_STREAMDEV_CLIENT" type="bool" label="1032" default="false" />
<setting id="ENABLE_STREAMDEV_SERVER" type="bool" label="1033" default="false" />
<setting id="ENABLE_LIVE" type="bool" label="1038" default="false" />
<setting id="LIVE_IP" type="ipaddress" label="1039" values="" enable="!eq(-1,false)" default="0.0.0.0"/>
<setting id="LIVE_PORT" type="number" label="1040" values="" enable="!eq(-2,false)" default="8008"/>
<setting id="LIVE_IP" type="ipaddress" label="1039" values="" visible="!eq(-1,false)" default="0.0.0.0"/>
<setting id="LIVE_PORT" type="number" label="1040" values="" visible="!eq(-2,false)" default="8008"/>
<setting id="ENABLE_CONTROL" type="bool" label="1042" default="false" />
<setting id="CONTROL_PORT" type="number" label="1043" values="" enable="!eq(-1,false)" default="2002"/>
<setting id="CONTROL_PORT" type="number" label="1043" values="" visible="!eq(-1,false)" default="2002"/>
<setting id="ENABLE_EEPG" type="bool" label="1046" default="false" />
<setting id="ENABLE_EPGSEARCH" type="bool" label="1044" default="false" />
<setting id="ENABLE_XMLTV2VDR" type="bool" label="1045" default="false" />
<setting id="ENABLE_DUMMYDEVICE" type="bool" label="1047" default="false" />
<setting id="ENABLE_SATIP" type="bool" label="1048" default="false" />
<setting type="sep" />
<setting id="ENABLE_SOFTCAM" type="bool" label="1036" default="true" />
<setting id="SOFTCAM_PLUGIN" type="labelenum" label="1037" values="sc|dvbapi" enable="!eq(-1,false)" default="sc" />
</category>
</settings>

View File

@@ -13,9 +13,11 @@
<setting id="LIVE_PORT" value="8008" />
<setting id="ENABLE_CONTROL" value="false" />
<setting id="CONTROL_PORT" value="2002" />
<setting id="ENABLE_EEPG" value="false" />
<setting id="ENABLE_EPGSEARCH" value="false" />
<setting id="ENABLE_XMLTV2VDR" value="false" />
<setting id="SOFTCAM_PLUGIN" value="sc" />
<setting id="ENABLE_DUMMYDEVICE" value="false" />
<setting id="ENABLE_SATIP" value="false" />
<setting id="ENABLE_EXTERNAL_RECCMD" value="false" />
<setting id="EXTERNAL_RECCMD_PATH" value="" />
</settings>

View File

@@ -46,6 +46,7 @@ post_makeinstall_target() {
rm -rf $INSTALL/lib $INSTALL/var
rm -rf $INSTALL/usr/share/alsa/speaker-test
rm -rf $INSTALL/usr/share/sounds
rm -rf $INSTALL/usr/lib/systemd/system
for i in aconnect alsaucm amidi aplaymidi arecord arecordmidi aseqdump aseqnet iecset; do
rm -rf $INSTALL/usr/bin/$i

View File

@@ -0,0 +1,53 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC 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.
#
# OpenELEC 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 OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="espeak"
PKG_VERSION="1.48.04-source"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://espeak.sourceforge.net/"
PKG_URL="http://downloads.sourceforge.net/$PKG_NAME/$PKG_NAME-$PKG_VERSION.zip"
PKG_SOURCE_DIR="$PKG_NAME/$PKG_NAME-$PKG_VERSION"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="audio"
PKG_SHORTDESC="Text to Speech engine for English, with support for other languages"
PKG_LONGDESC="Text to Speech engine for English, with support for other languages"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
pre_make_target() {
cp src/portaudio19.h src/portaudio.h
}
make_target() {
make -C src \
CXXFLAGS="$CXXFLAGS" \
LDFLAGS="$LDFLAGS" \
AUDIO=""
}
makeinstall_target() {
make -C src \
CXXFLAGS="$CXXFLAGS" \
LDFLAGS="$LDFLAGS" \
AUDIO="" \
DESTDIR=$INSTALL install
}

View File

@@ -0,0 +1,23 @@
diff --git a/src/Makefile b/src/Makefile
index f04b4c4..b8d4b19 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -83,15 +83,15 @@ libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp
SRCS1=$(speak_SOURCES)
OBJS1=$(patsubst %.cpp,%.o,$(SRCS1))
-LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
+LIBS1=-lstdc++ -lm $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
SRCS2=$(libespeak_SOURCES)
OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2))
-LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread
+LIBS2=-lstdc++ -lm $(LIB_AUDIO) -lpthread
SRCS3 = espeak.cpp
OBJS3=$(patsubst %.cpp,%.o,$(SRCS3))
-LIBS3=-lstdc++ -L . -lespeak
+LIBS3=-lstdc++ -lm -L . -lespeak
CXXFLAGS=-O2

View File

@@ -0,0 +1,23 @@
diff --git a/src/espeak.cpp b/src/espeak.cpp
index 00f93c1..4ad42e8 100644
--- a/src/espeak.cpp
+++ b/src/espeak.cpp
@@ -281,10 +281,7 @@ static int SynthCallback(short *wav, int numsamples, espeak_EVENT *events)
if(quiet) return(0); // -q quiet mode
if(wav == NULL)
- {
- CloseWavFile();
return(0);
- }
while(events->type != 0)
{
@@ -805,5 +802,7 @@ int main (int argc, char **argv)
if(f_phonemes_out != stdout)
fclose(f_phonemes_out); // needed for WinCE
+ CloseWavFile();
+ espeak_Terminate();
return(0);
}

View File

@@ -19,12 +19,12 @@
################################################################################
PKG_NAME="pulseaudio"
PKG_VERSION="4.99.3"
PKG_VERSION="5.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://pulseaudio.org/"
PKG_URL="http://cgit.freedesktop.org/pulseaudio/pulseaudio/snapshot/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_URL="http://www.freedesktop.org/software/pulseaudio/releases/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain libtool json-c alsa-lib libsndfile libsamplerate speex dbus systemd openssl libcap"
PKG_PRIORITY="optional"
PKG_SECTION="audio"
@@ -41,8 +41,6 @@ else
PULSEAUDIO_BLUETOOTH="--disable-bluez5"
fi
export GIT_DESCRIBE_FOR_BUILD="4.0"
# package specific configure options
PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
--disable-nls \

View File

@@ -0,0 +1,30 @@
From 161d55d84441bd3b66eba9eafd85782eeb168cdd Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 28 Mar 2014 13:12:50 +0200
Subject: [PATCH] mysql_config: dont include LDFLAGS in --libs output
---
scripts/mysql_config.sh | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh
index 7dc9beb..eb188b6 100644
--- a/scripts/mysql_config.sh
+++ b/scripts/mysql_config.sh
@@ -105,10 +105,10 @@ fi
# Create options
# We intentionally add a space to the beginning and end of lib strings, simplifies replace later
-libs=" $ldflags -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
+libs=" -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ "
-libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ "
-embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
+libs_r=" -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ "
+embedded_libs=" -L$pkglibdir -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
if [ -r "$pkglibdir/libmygcc.a" ]; then
# When linking against the static library with a different version of GCC
--
1.7.2.5

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="sqlite"
PKG_VERSION="autoconf-3080301"
PKG_VERSION="autoconf-3080401"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="PublicDomain"

View File

@@ -1,67 +0,0 @@
dnl -*- mode: autoconf -*-
# serial 1
dnl Usage:
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
AC_DEFUN([GTK_DOC_CHECK],
[
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
dnl check for tools we added during development
AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
dnl for overriding the documentation installation directory
AC_ARG_WITH([html-dir],
AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
[with_html_dir='${datadir}/gtk-doc/html'])
HTML_DIR="$with_html_dir"
AC_SUBST([HTML_DIR])
dnl enable/disable documentation building
AC_ARG_ENABLE([gtk-doc],
AS_HELP_STRING([--enable-gtk-doc],
[use gtk-doc to build documentation [[default=no]]]),,
[enable_gtk_doc=no])
if test x$enable_gtk_doc = xyes; then
ifelse([$1],[],
[PKG_CHECK_EXISTS([gtk-doc],,
AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
[PKG_CHECK_EXISTS([gtk-doc >= $1],,
AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
dnl don't check for glib if we build glib
if test "x$PACKAGE_NAME" != "xglib"; then
dnl don't fail if someone does not have glib
PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,)
fi
fi
AC_MSG_CHECKING([whether to build gtk-doc documentation])
AC_MSG_RESULT($enable_gtk_doc)
dnl enable/disable output formats
AC_ARG_ENABLE([gtk-doc-html],
AS_HELP_STRING([--enable-gtk-doc-html],
[build documentation in html format [[default=yes]]]),,
[enable_gtk_doc_html=yes])
AC_ARG_ENABLE([gtk-doc-pdf],
AS_HELP_STRING([--enable-gtk-doc-pdf],
[build documentation in pdf format [[default=no]]]),,
[enable_gtk_doc_pdf=no])
if test -z "$GTKDOC_MKPDF"; then
enable_gtk_doc_pdf=no
fi
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
])

View File

@@ -1,96 +0,0 @@
dnl -*- mode: autoconf -*-
dnl Copyright 2009 Johan Dahlin
dnl
dnl This file is free software; the author(s) gives unlimited
dnl permission to copy and/or distribute it, with or without
dnl modifications, as long as this notice is preserved.
dnl
# serial 1
m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
[
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
dnl enable/disable introspection
m4_if([$2], [require],
[dnl
enable_introspection=yes
],[dnl
AC_ARG_ENABLE(introspection,
AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
[Enable introspection for this build]),,
[enable_introspection=auto])
])dnl
AC_MSG_CHECKING([for gobject-introspection])
dnl presence/version checking
AS_CASE([$enable_introspection],
[no], [dnl
found_introspection="no (disabled, use --enable-introspection to enable)"
],dnl
[yes],[dnl
PKG_CHECK_EXISTS([gobject-introspection-1.0],,
AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
found_introspection=yes,
AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
],dnl
[auto],[dnl
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
dnl Canonicalize enable_introspection
enable_introspection=$found_introspection
],dnl
[dnl
AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
])dnl
AC_MSG_RESULT([$found_introspection])
INTROSPECTION_SCANNER=
INTROSPECTION_COMPILER=
INTROSPECTION_GENERATE=
INTROSPECTION_GIRDIR=
INTROSPECTION_TYPELIBDIR=
if test "x$found_introspection" = "xyes"; then
INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
fi
AC_SUBST(INTROSPECTION_SCANNER)
AC_SUBST(INTROSPECTION_COMPILER)
AC_SUBST(INTROSPECTION_GENERATE)
AC_SUBST(INTROSPECTION_GIRDIR)
AC_SUBST(INTROSPECTION_TYPELIBDIR)
AC_SUBST(INTROSPECTION_CFLAGS)
AC_SUBST(INTROSPECTION_LIBS)
AC_SUBST(INTROSPECTION_MAKEFILE)
AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
])
dnl Usage:
dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
[
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
])
dnl Usage:
dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
[
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
])

View File

@@ -36,5 +36,4 @@ PKG_CONFIGURE_OPTS_HOST="--target=$TARGET_NAME --disable-silent-rules"
post_makeinstall_host() {
make prefix=$SYSROOT_PREFIX/usr install
cp -P $PKG_DIR/files/*.m4 $SYSROOT_PREFIX/usr/share/aclocal
}

View File

@@ -33,7 +33,7 @@ PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
configure_host() {
../configure --no-qt-gui
../configure --no-qt-gui -- -DBUILD_CursesDialog=0
}
makeinstall_host() {

View File

@@ -0,0 +1,39 @@
From 92e543c45da4581b1940178a94e6f2d66c749367 Mon Sep 17 00:00:00 2001
From: Christian König <christian.koenig@amd.com>
Date: Sat, 22 Mar 2014 20:30:07 +0000
Subject: st/mesa: recreate sampler view on context change v3
With shared glx contexts it is possible that a texture is create and used
in one context and then used in another one resulting in incorrect
sampler view usage.
v2: avoid template copy
v3: add XXX comment
Signed-off-by: Christian König <christian.koenig@amd.com>
Cc: "10.0 10.1" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
---
diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
index 3557a3f..75e6fac 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -198,6 +198,16 @@ st_get_texture_sampler_view_from_stobj(struct st_texture_object *stObj,
if (!stObj->sampler_view) {
stObj->sampler_view =
st_create_texture_sampler_view_from_stobj(pipe, stObj, samp, format);
+
+ } else if (stObj->sampler_view->context != pipe) {
+ /* Recreate view in correct context, use existing view as template */
+ /* XXX: This isn't optimal, we should try to use more than one view.
+ Otherwise we create/destroy the view all the time
+ */
+ struct pipe_sampler_view *sv =
+ pipe->create_sampler_view(pipe, stObj->pt, stObj->sampler_view);
+ pipe_sampler_view_reference(&stObj->sampler_view, NULL);
+ stObj->sampler_view = sv;
}
return stObj->sampler_view;
--
cgit v0.9.0.2-2-gbebe

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="bcm2835-driver"
PKG_VERSION="bec4bd0"
PKG_VERSION="9c7c2cd"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"

View File

@@ -48,7 +48,7 @@ configure_target() {
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-libkms/enable-libkms/'` && \
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-intel/enable-intel/'`
[ "$drv" = "r200" -o "$drv" = "r300" -o "$drv" = "r600" -o "$drv" = "radeon" ] && \
[ "$drv" = "r200" -o "$drv" = "r300" -o "$drv" = "r600" -o "$drv" = "radeonsi" ] && \
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-libkms/enable-libkms/'` && \
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-radeon/enable-radeon/'`

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libpng"
PKG_VERSION="1.6.9"
PKG_VERSION="1.6.10"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@@ -16,13 +16,8 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
# driver taken from
# https://github.com/Red54/linux-shumeipai2/commit/026ba2734e035b2bde089a836912d6febabe87f3
# and patched like the RTL8192CU driver for usage on kernel 3.7 and later
PKG_NAME="RTL8188EU"
# realtek: PKG_VERSION="20130425"
PKG_VERSION="fb786d0"
PKG_VERSION="fcc9034"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -407,7 +407,7 @@ index 018fe48..d4f6e7d 100644
int proc_set_rx_signal(struct file *file, const char *buffer,
- unsigned long count, void *data)
+ unsigned long count, void *data);
+ unsigned long count, void *data)
{
struct net_device *dev = (struct net_device *)data;
_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);

View File

@@ -16,26 +16,36 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="dwm"
PKG_VERSION="6.0"
PKG_NAME="RTL8192DU"
PKG_VERSION="085e206"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://dwm.suckless.org/"
PKG_URL="http://dl.suckless.org/dwm/dwm-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain libX11"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/lwfinger/rtl8192du"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain linux"
PKG_NEED_UNPACK="$LINUX_DEPENDS"
PKG_PRIORITY="optional"
PKG_SECTION="x11/other"
PKG_SHORTDESC="dwm: dynamic window manager for X"
PKG_LONGDESC="dwm is a dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed"
PKG_SECTION="driver"
PKG_SHORTDESC="Realtek RTL8192DU Linux 3.x driver"
PKG_LONGDESC="Realtek RTL8192DU Linux 3.x driver"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
make_target() {
$MAKE LDFLAGS="$LDFLAGS -lX11" CFLAGS="$CFLAGS -std=c99" CC="$CC"
pre_make_target() {
unset LDFLAGS
}
configure_target() {
:
make_target() {
make V=1 \
ARCH=$TARGET_ARCH \
KSRC=$(kernel_path) \
CROSS_COMPILE=$TARGET_PREFIX \
CONFIG_POWER_SAVING=n
}
makeinstall_target() {
mkdir -p $INSTALL/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/lib/modules/$(get_module_dir)/$PKG_NAME
}

View File

@@ -0,0 +1,51 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC 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.
#
# OpenELEC 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 OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="RTL8723AU"
PKG_VERSION="9af1588"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/lwfinger/rtl8723au"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain linux"
PKG_NEED_UNPACK="$LINUX_DEPENDS"
PKG_PRIORITY="optional"
PKG_SECTION="driver"
PKG_SHORTDESC="Realtek RTL8723AU Linux 3.x driver"
PKG_LONGDESC="Realtek RTL8723AU Linux 3.x driver"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
pre_make_target() {
unset LDFLAGS
}
make_target() {
make V=1 \
ARCH=$TARGET_ARCH \
KSRC=$(kernel_path) \
CROSS_COMPILE=$TARGET_PREFIX \
CONFIG_POWER_SAVING=n
}
makeinstall_target() {
mkdir -p $INSTALL/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/lib/modules/$(get_module_dir)/$PKG_NAME
}

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="dvb-firmware"
PKG_VERSION="0.0.37"
PKG_VERSION="0.0.38"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="misc-firmware"
PKG_VERSION="0.0.6"
PKG_VERSION="0.0.9"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="wlan-firmware"
PKG_VERSION="0.0.16"
PKG_VERSION="0.0.18"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"

View File

@@ -23,7 +23,7 @@ case "$LINUX" in
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
*)
PKG_VERSION="3.13.5"
PKG_VERSION="3.13.7"
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
esac

View File

@@ -0,0 +1,115 @@
From e28f3bbe9ce8cb3c81f289487a8724a7b4a6ddb2 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 27 Nov 2013 22:52:53 +0000
Subject: [PATCH 061/114] dvb: Add support for CableStar Device
---
drivers/media/dvb-core/dvb-usb-ids.h | 1 +
drivers/media/usb/dvb-usb-v2/az6007.c | 59 +++++++++++++++++++++++++++++++++++
2 files changed, 60 insertions(+)
diff --git a/drivers/media/dvb-core/dvb-usb-ids.h b/drivers/media/dvb-core/dvb-usb-ids.h
index 7e0f619..8407178 100644
--- a/drivers/media/dvb-core/dvb-usb-ids.h
+++ b/drivers/media/dvb-core/dvb-usb-ids.h
@@ -366,6 +366,7 @@
#define USB_PID_TERRATEC_DVBS2CI_V2 0x10ac
#define USB_PID_TECHNISAT_USB2_HDCI_V1 0x0001
#define USB_PID_TECHNISAT_USB2_HDCI_V2 0x0002
+#define USB_PID_TECHNISAT_USB2_CABLESTAR_HDCI 0x0003
#define USB_PID_TECHNISAT_AIRSTAR_TELESTICK_2 0x0004
#define USB_PID_TECHNISAT_USB2_DVB_S2 0x0500
#define USB_PID_CPYTO_REDI_PC50A 0xa803
diff --git a/drivers/media/usb/dvb-usb-v2/az6007.c b/drivers/media/usb/dvb-usb-v2/az6007.c
index 44c64ef3..c1051c3 100644
--- a/drivers/media/usb/dvb-usb-v2/az6007.c
+++ b/drivers/media/usb/dvb-usb-v2/az6007.c
@@ -68,6 +68,19 @@ struct az6007_device_state {
.microcode_name = "dvb-usb-terratec-h7-drxk.fw",
};
+static struct drxk_config cablestar_hdci_drxk = {
+ .adr = 0x29,
+ .parallel_ts = true,
+ .dynamic_clk = true,
+ .single_master = true,
+ .enable_merr_cfg = true,
+ .no_i2c_bridge = false,
+ .chunk_size = 64,
+ .mpeg_out_clk_strength = 0x02,
+ .qam_demod_parameter_count = 2,
+ .microcode_name = "dvb-usb-technisat-cablestar-hdci-drxk.fw",
+};
+
static int drxk_gate_ctrl(struct dvb_frontend *fe, int enable)
{
struct az6007_device_state *st = fe_to_priv(fe);
@@ -630,6 +643,27 @@ static int az6007_frontend_attach(struct dvb_usb_adapter *adap)
return 0;
}
+static int az6007_cablestar_hdci_frontend_attach(struct dvb_usb_adapter *adap)
+{
+ struct az6007_device_state *st = adap_to_priv(adap);
+ struct dvb_usb_device *d = adap_to_d(adap);
+
+ pr_debug("attaching demod drxk\n");
+
+ adap->fe[0] = dvb_attach(drxk_attach, &cablestar_hdci_drxk,
+ &d->i2c_adap);
+ if (!adap->fe[0])
+ return -EINVAL;
+
+ adap->fe[0]->sec_priv = adap;
+ st->gate_ctrl = adap->fe[0]->ops.i2c_gate_ctrl;
+ adap->fe[0]->ops.i2c_gate_ctrl = drxk_gate_ctrl;
+
+ az6007_ci_init(adap);
+
+ return 0;
+}
+
static int az6007_tuner_attach(struct dvb_usb_adapter *adap)
{
struct dvb_usb_device *d = adap_to_d(adap);
@@ -868,6 +902,29 @@ static int az6007_download_firmware(struct dvb_usb_device *d,
}
};
+static struct dvb_usb_device_properties az6007_cablestar_hdci_props = {
+ .driver_name = KBUILD_MODNAME,
+ .owner = THIS_MODULE,
+ .firmware = AZ6007_FIRMWARE,
+
+ .adapter_nr = adapter_nr,
+ .size_of_priv = sizeof(struct az6007_device_state),
+ .i2c_algo = &az6007_i2c_algo,
+ .tuner_attach = az6007_tuner_attach,
+ .frontend_attach = az6007_cablestar_hdci_frontend_attach,
+ .streaming_ctrl = az6007_streaming_ctrl,
+/* ditch get_rc_config as it can't work (TS35 remote, I believe it's rc5) */
+ .get_rc_config = NULL,
+ .read_mac_address = az6007_read_mac_addr,
+ .download_firmware = az6007_download_firmware,
+ .identify_state = az6007_identify_state,
+ .power_ctrl = az6007_power_ctrl,
+ .num_adapters = 1,
+ .adapter = {
+ { .stream = DVB_USB_STREAM_BULK(0x02, 10, 4096), }
+ }
+};
+
static struct usb_device_id az6007_usb_table[] = {
{DVB_USB_DEVICE(USB_VID_AZUREWAVE, USB_PID_AZUREWAVE_6007,
&az6007_props, "Azurewave 6007", RC_MAP_EMPTY)},
@@ -875,6 +932,8 @@ static int az6007_download_firmware(struct dvb_usb_device *d,
&az6007_props, "Terratec H7", RC_MAP_NEC_TERRATEC_CINERGY_XS)},
{DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_H7_2,
&az6007_props, "Terratec H7", RC_MAP_NEC_TERRATEC_CINERGY_XS)},
+ {DVB_USB_DEVICE(USB_VID_TECHNISAT, USB_PID_TECHNISAT_USB2_CABLESTAR_HDCI,
+ &az6007_cablestar_hdci_props, "Technisat CableStar Combo HD CI", RC_MAP_EMPTY)},
{0},
};
--
1.8.5.5

View File

@@ -1,5 +1,3 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
@@ -18,8 +16,8 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. config/options $1
ACTION!="add|change", GOTO="end"
mkdir -p $RELEASE_DIR/3rdparty/atvboot
cp -PR $BUILD/atvboot-*/boot.efi $RELEASE_DIR/3rdparty/atvboot
cp -PR $BUILD/atvboot-*/mach_kernel $RELEASE_DIR/3rdparty/atvboot
DRIVER=="ehci-pci|xhci_hcd", RUN+="/bin/sh -c 'echo disabled > /sys/$devpath/power/wakeup'"
LABEL="end"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="service.openelec.settings"
PKG_VERSION="0.3.11"
PKG_VERSION="0.3.14"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="prop."

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc-addon-xvdr"
PKG_VERSION="df75826"
PKG_VERSION="77a27f8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
@@ -40,3 +40,9 @@ pre_make_target() {
# dont build parallel
MAKEFLAGS=-j1
}
post_makeinstall_target() {
if [ "$DEBUG" != yes ]; then
$STRIP $INSTALL/usr/share/xbmc/addons/pvr.vdr.xvdr/XBMC_VDR_xvdr.pvr
fi
}

View File

@@ -39,3 +39,9 @@ else
fi
PKG_CONFIGURE_OPTS_TARGET="--enable-addons-with-dependencies $PVRADDONS_MYSQL"
post_makeinstall_target() {
if [ "$DEBUG" != yes ]; then
$STRIP $INSTALL/usr/lib/xbmc/addons/pvr.*/*.pvr
fi
}

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc-theme-Confluence"
PKG_VERSION="13-128426f"
PKG_VERSION="13-ce52900"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,13 +17,13 @@
################################################################################
PKG_NAME="xbmc"
PKG_VERSION="13-128426f"
PKG_VERSION="13-ce52900"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.xbmc.org"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain boost Python zlib bzip2 systemd pciutils lzo pcre swig:host libass enca curl libssh rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libmad libsamplerate libogg libcdio libmodplug faad2 flac libmpeg2 taglib libxml2 libxslt yajl sqlite libvorbis"
PKG_DEPENDS_TARGET="toolchain boost Python zlib bzip2 systemd pciutils lzo pcre swig:host libass enca curl rtmpdump fontconfig fribidi gnutls tinyxml libjpeg-turbo libpng tiff freetype jasper libmad libsamplerate libogg libcdio libmodplug faad2 flac libmpeg2 taglib libxml2 libxslt yajl sqlite libvorbis"
PKG_PRIORITY="optional"
PKG_SECTION="mediacenter"
PKG_SHORTDESC="xbmc: XBMC Mediacenter"
@@ -88,6 +88,11 @@ else
XBMC_PULSEAUDIO="--disable-pulse"
fi
if [ "$ESPEAK_SUPPORT" = yes ]; then
# for espeak support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET espeak"
fi
if [ "$CEC_SUPPORT" = yes ]; then
# for CEC support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libcec"
@@ -248,6 +253,7 @@ else
fi
if [ "$SSHLIB_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libssh"
XBMC_SSH="--enable-ssh"
else
XBMC_SSH="--disable-ssh"

View File

@@ -0,0 +1,29 @@
From 4f6188bc2bcee52ab3a150fff336b58c11f8928a Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Sat, 22 Mar 2014 22:18:28 +0200
Subject: [PATCH] dont set _NET_WM_STATE_FULLSCREEN
---
xbmc/windowing/X11/WinSystemX11.cpp | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp
index c95f4ec..d12e050 100644
--- a/xbmc/windowing/X11/WinSystemX11.cpp
+++ b/xbmc/windowing/X11/WinSystemX11.cpp
@@ -903,12 +903,6 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const std:
InputOutput, vi->visual,
mask, &swa);
- if (fullscreen && hasWM)
- {
- Atom fs = XInternAtom(m_dpy, "_NET_WM_STATE_FULLSCREEN", True);
- XChangeProperty(m_dpy, m_mainWindow, XInternAtom(m_dpy, "_NET_WM_STATE", True), XA_ATOM, 32, PropModeReplace, (unsigned char *) &fs, 1);
- }
-
// define invisible cursor
Pixmap bitmapNoData;
XColor black;
--
1.7.2.5

View File

@@ -0,0 +1,73 @@
From 3141728598291186cc4c9d243a1e258ce6e914ae Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Mon, 10 Mar 2014 22:00:40 +0200
Subject: [PATCH 1/2] handle SIGTERM
---
xbmc/main/main.cpp | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/xbmc/main/main.cpp b/xbmc/main/main.cpp
index ec86426..aa4a925 100644
--- a/xbmc/main/main.cpp
+++ b/xbmc/main/main.cpp
@@ -40,9 +40,22 @@
#include "input/linux/LIRC.h"
#endif
#include "XbmcContext.h"
+#include "Application.h"
+
+void xbmc_term_handler(int signum)
+{
+ CLog::Log(LOGINFO, "Received SIGTERM...");
+ g_application.Stop(0);
+}
int main(int argc, char* argv[])
{
+ // SIGTERM handler
+ struct sigaction action;
+ memset(&action, 0, sizeof(struct sigaction));
+ action.sa_handler = xbmc_term_handler;
+ sigaction(SIGTERM, &action, NULL);
+
// set up some xbmc specific relationships
XBMC::Context context;
--
1.9.0
From 4945dbdeff5da8b162fdf0700f4026e9d71ffe04 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Mon, 10 Mar 2014 22:02:02 +0200
Subject: [PATCH 2/2] dont Stop() on shutdown/reboot
SIGTERM should be handled instead. systemd will take care
---
xbmc/ApplicationMessenger.cpp | 2 --
1 file changed, 2 deletions(-)
diff --git a/xbmc/ApplicationMessenger.cpp b/xbmc/ApplicationMessenger.cpp
index 3524e89..c5521f7 100644
--- a/xbmc/ApplicationMessenger.cpp
+++ b/xbmc/ApplicationMessenger.cpp
@@ -259,7 +259,6 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg)
case TMSG_POWERDOWN:
{
- g_application.Stop(EXITCODE_POWERDOWN);
g_powerManager.Powerdown();
}
break;
@@ -287,7 +286,6 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg)
case TMSG_RESTART:
case TMSG_RESET:
{
- g_application.Stop(EXITCODE_REBOOT);
g_powerManager.Reboot();
}
break;
--
1.9.0

View File

@@ -1,501 +0,0 @@
From 365460067109551fff00cd5947ffefbd5447c92e Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Thu, 14 Nov 2013 19:48:41 +0000
Subject: [PATCH] More efficient infobool expression evaluator
Expession infobools are evaluated at runtime from one or more single infobools
and a combination of boolean NOT, AND and OR operators. Previously, parsing
produced a vector of operands (leaf nodes) and operators in postfix
(reverse-Polish) form, and evaluated all leaf nodes every time the expression
was evaluated. But this ignores the fact that in many cases, once one operand
of an AND or OR operation has been evaluated, there is no need to evaluate the
other operand because its value can have no effect on the ultimate result. It
is also worth noting that AND and OR operations are associative, meaning they
can be rearranged at runtime to better suit the selected skin.
This patch rewrites the expression parsing and evaluation code. Now the
internal repreentation is in the form of a tree where leaf nodes represent a
single infobool, and branch nodes represent either an AND or an OR operation
on two or more child nodes.
Expressions are rewritten at parse time into a form which favours the
formation of groups of associative nodes. These groups are then reordered at
evaluation time such that nodes whose value renders the evaluation of the
remainder of the group unnecessary tend to be evaluated first (these are
true nodes for OR subexpressions, or false nodes for AND subexpressions).
The end effect is to minimise the number of leaf nodes that need to be
evaluated in order to determine the value of the expression. The runtime
adaptability has the advantage of not being customised for any particular skin.
The modifications to the expression at parse time fall into two groups:
1) Moving logical NOTs so that they are only applied to leaf nodes.
For example, rewriting ![A+B]|C as !A|!B|C allows reordering such that
any of the three leaves can be evaluated first.
2) Combining adjacent AND or OR operations such that each path from the root
to a leaf encounters a strictly alternating pattern of AND and OR
operations. So [A|B]|[C|D+[[E|F]|G] becomes A|B|C|[D+[E|F|G]].
I measured the effect while the Videos window of the default skin was open
(but idle) on a Raspberry Pi, and this reduced the CPU usage by 2.8% from
41.9% to 39.1%:
Before After
Mean StdDev Mean StdDev Confidence Change
IdleCPU% 41.9 0.5 39.1 0.9 100.0% +7.0%
---
xbmc/interfaces/info/InfoExpression.cpp | 313 +++++++++++++++++++++-----------
xbmc/interfaces/info/InfoExpression.h | 63 ++++++-
2 files changed, 269 insertions(+), 107 deletions(-)
diff --git a/xbmc/interfaces/info/InfoExpression.cpp b/xbmc/interfaces/info/InfoExpression.cpp
index d84f0c6..db461dd 100644
--- a/xbmc/interfaces/info/InfoExpression.cpp
+++ b/xbmc/interfaces/info/InfoExpression.cpp
@@ -22,6 +22,9 @@
#include <stack>
#include "utils/log.h"
#include "GUIInfoManager.h"
+#include <list>
+#include <boost/shared_ptr.hpp>
+#include <boost/make_shared.hpp>
using namespace std;
using namespace INFO;
@@ -40,21 +43,89 @@ void InfoSingle::Update(const CGUIListItem *item)
InfoExpression::InfoExpression(const std::string &expression, int context)
: InfoBool(expression, context)
{
- Parse(expression);
+ if (!Parse(expression))
+ CLog::Log(LOGERROR, "Error parsing boolean expression %s", expression.c_str());
}
void InfoExpression::Update(const CGUIListItem *item)
{
- Evaluate(item, m_value);
+ m_value = m_expression_tree->Evaluate(item);
}
-#define OPERATOR_LB 5
-#define OPERATOR_RB 4
-#define OPERATOR_NOT 3
-#define OPERATOR_AND 2
-#define OPERATOR_OR 1
+/* Expressions are rewritten at parse time into a form which favours the
+ * formation of groups of associative nodes. These groups are then reordered at
+ * evaluation time such that nodes whose value renders the evaluation of the
+ * remainder of the group unnecessary tend to be evaluated first (these are
+ * true nodes for OR subexpressions, or false nodes for AND subexpressions).
+ * The end effect is to minimise the number of leaf nodes that need to be
+ * evaluated in order to determine the value of the expression. The runtime
+ * adaptability has the advantage of not being customised for any particular skin.
+ *
+ * The modifications to the expression at parse time fall into two groups:
+ * 1) Moving logical NOTs so that they are only applied to leaf nodes.
+ * For example, rewriting ![A+B]|C as !A|!B|C allows reordering such that
+ * any of the three leaves can be evaluated first.
+ * 2) Combining adjacent AND or OR operations such that each path from the root
+ * to a leaf encounters a strictly alternating pattern of AND and OR
+ * operations. So [A|B]|[C|D+[[E|F]|G] becomes A|B|C|[D+[E|F|G]].
+ */
+
+bool InfoExpression::InfoLeaf::Evaluate(const CGUIListItem *item)
+{
+ return m_invert ^ m_info->Get(item);
+}
-short InfoExpression::GetOperator(const char ch) const
+InfoExpression::InfoAssociativeGroup::InfoAssociativeGroup(
+ bool and_not_or,
+ const InfoSubexpressionPtr &left,
+ const InfoSubexpressionPtr &right)
+ : m_and_not_or(and_not_or)
+{
+ AddChild(right);
+ AddChild(left);
+}
+
+void InfoExpression::InfoAssociativeGroup::AddChild(const InfoSubexpressionPtr &child)
+{
+ m_children.push_front(child); // largely undoes the effect of parsing right-associative
+}
+
+void InfoExpression::InfoAssociativeGroup::Merge(InfoAssociativeGroup *other)
+{
+ m_children.splice(m_children.end(), other->m_children);
+}
+
+bool InfoExpression::InfoAssociativeGroup::Evaluate(const CGUIListItem *item)
+{
+ /* Handle either AND or OR by using the relation
+ * A AND B == !(!A OR !B)
+ * to convert ANDs into ORs
+ */
+ std::list<InfoSubexpressionPtr>::iterator last = m_children.end();
+ std::list<InfoSubexpressionPtr>::iterator it = m_children.begin();
+ bool result = m_and_not_or ^ (*it)->Evaluate(item);
+ while (!result && ++it != last)
+ {
+ result = m_and_not_or ^ (*it)->Evaluate(item);
+ if (result)
+ {
+ /* Move this child to the head of the list so we evaluate faster next time */
+ InfoSubexpressionPtr p = *it;
+ m_children.erase(it);
+ m_children.push_front(p);
+ }
+ }
+ return m_and_not_or ^ result;
+}
+
+/* Expressions are parsed using the shunting-yard algorithm. Binary operators
+ * (AND/OR) are treated as right-associative so that we don't need to make a
+ * special case for the unary NOT operator. This has no effect upon the answers
+ * generated, though the initial sequence of evaluation of leaves may be
+ * different from what you might expect.
+ */
+
+InfoExpression::operator_t InfoExpression::GetOperator(char ch)
{
if (ch == '[')
return OPERATOR_LB;
@@ -67,122 +138,160 @@ short InfoExpression::GetOperator(const char ch) const
else if (ch == '|')
return OPERATOR_OR;
else
- return 0;
+ return OPERATOR_NONE;
}
-void InfoExpression::Parse(const std::string &expression)
+void InfoExpression::OperatorPop(std::stack<operator_t> &operator_stack, bool &invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes)
{
- stack<char> operators;
- std::string operand;
- for (unsigned int i = 0; i < expression.size(); i++)
+ operator_t op2 = operator_stack.top();
+ operator_stack.pop();
+ if (op2 == OPERATOR_NOT)
{
- if (GetOperator(expression[i]))
+ invert = !invert;
+ }
+ else
+ {
+ // At this point, it can only be OPERATOR_AND or OPERATOR_OR
+ if (invert)
+ op2 = (operator_t) (OPERATOR_AND ^ OPERATOR_OR ^ op2);
+ node_type_t new_type = op2 == OPERATOR_AND ? NODE_AND : NODE_OR;
+
+ InfoSubexpressionPtr right = nodes.top();
+ nodes.pop();
+ InfoSubexpressionPtr left = nodes.top();
+
+ node_type_t right_type = node_types.top();
+ node_types.pop();
+ node_type_t left_type = node_types.top();
+
+ // Combine associative operations into the same node where possible
+ if (left_type == new_type && right_type == new_type)
+ (static_cast<InfoAssociativeGroup *>(left.get()))->Merge(static_cast<InfoAssociativeGroup *>(right.get()));
+ else if (left_type == new_type)
+ (static_cast<InfoAssociativeGroup *>(left.get()))->AddChild(right);
+ else
{
- // cleanup any operand, translate and put into our expression list
- if (!operand.empty())
+ nodes.pop();
+ node_types.pop();
+ if (right_type == new_type)
{
- InfoPtr info = g_infoManager.Register(operand, m_context);
- if (info)
- {
- m_listItemDependent |= info->ListItemDependent();
- m_postfix.push_back(m_operands.size());
- m_operands.push_back(info);
- }
- operand.clear();
+ (static_cast<InfoAssociativeGroup *>(right.get()))->AddChild(left);
+ nodes.push(right);
}
- // handle closing parenthesis
- if (expression[i] == ']')
- {
- while (!operators.empty())
- {
- char oper = operators.top();
- operators.pop();
+ else
+ nodes.push(boost::make_shared<InfoAssociativeGroup>(new_type == NODE_AND, left, right));
+ node_types.push(new_type);
+ }
+ }
+}
+
+void InfoExpression::ProcessOperator(operator_t op, std::stack<operator_t> &operator_stack, bool &invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes)
+{
+ // Handle any higher-priority stacked operators, except when the new operator is left-bracket.
+ // For a right-bracket, this will stop with the matching left-bracket at the top of the operator stack.
+ if (op != OPERATOR_LB)
+ {
+ while (operator_stack.size() > 0 && operator_stack.top() > op)
+ OperatorPop(operator_stack, invert, node_types, nodes);
+ }
+ if (op == OPERATOR_RB)
+ operator_stack.pop(); // remove the matching left-bracket
+ else
+ operator_stack.push(op);
+ if (op == OPERATOR_NOT)
+ invert = !invert;
+}
- if (oper == '[')
- break;
+bool InfoExpression::ProcessOperand(std::string &operand, bool invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes)
+{
+ InfoPtr info = g_infoManager.Register(operand, m_context);
+ if (!info)
+ return false;
+ m_listItemDependent |= info->ListItemDependent();
+ nodes.push(boost::make_shared<InfoLeaf>(info, invert));
+ node_types.push(NODE_LEAF);
+ operand.clear();
+ return true;
+}
- m_postfix.push_back(-GetOperator(oper)); // negative denotes operator
- }
+bool InfoExpression::Parse(const std::string &expression)
+{
+ const char *s = expression.c_str();
+ std::string operand;
+ std::stack<operator_t> operator_stack;
+ bool invert = false;
+ std::stack<node_type_t> node_types;
+ std::stack<InfoSubexpressionPtr> nodes;
+ // The next two are for syntax-checking purposes
+ bool after_binaryoperator = true;
+ int bracket_count = 0;
+
+ char c;
+ // Skip leading whitespace - don't want it to count as an operand if that's all there is
+ do
+ {
+ c = *s++;
+ } while (c == ' ' || c == '\t' || c == '\r' || c == '\n');
+ s--;
+ while ((c = *s++) != '\0')
+ {
+ operator_t op;
+ if ((op = GetOperator(c)) != OPERATOR_NONE)
+ {
+ // Character is an operator
+ if ((!after_binaryoperator && (c == '!' || c == '[')) ||
+ (after_binaryoperator && (c == ']' || c == '+' || c == '|')))
+ {
+ CLog::Log(LOGERROR, "Misplaced %c", c);
+ return false;
}
- else
+ if (c == '[')
+ bracket_count++;
+ else if (c == ']' && bracket_count-- == 0)
+ {
+ CLog::Log(LOGERROR, "Unmatched ]");
+ return false;
+ }
+ if (operand.size() > 0 && !ProcessOperand(operand, invert, node_types, nodes))
{
- // all other operators we pop off the stack any operator
- // that has a higher priority than the one we have.
- while (!operators.empty() && GetOperator(operators.top()) > GetOperator(expression[i]))
- {
- // only handle parenthesis once they're closed.
- if (operators.top() == '[' && expression[i] != ']')
- break;
-
- m_postfix.push_back(-GetOperator(operators.top())); // negative denotes operator
- operators.pop();
- }
- operators.push(expression[i]);
+ CLog::Log(LOGERROR, "Bad operand '%s'", operand.c_str());
+ return false;
}
+ ProcessOperator(op, operator_stack, invert, node_types, nodes);
+ if (c == '+' || c == '|')
+ after_binaryoperator = true;
+ // Skip trailing whitespace - don't want it to count as an operand if that's all there is
+ do
+ {
+ c = *s++;
+ } while (c == ' ' || c == '\t' || c == '\r' || c == '\n');
+ s--;
}
else
{
- operand += expression[i];
+ // Character is part of operand
+ operand += c;
+ after_binaryoperator = false;
}
}
-
- if (!operand.empty())
+ if (bracket_count > 0)
{
- InfoPtr info = g_infoManager.Register(operand, m_context);
- if (info)
- {
- m_listItemDependent |= info->ListItemDependent();
- m_postfix.push_back(m_operands.size());
- m_operands.push_back(info);
- }
+ CLog::Log(LOGERROR, "Unmatched [");
+ return false;
}
-
- // finish up by adding any operators
- while (!operators.empty())
+ if (after_binaryoperator)
{
- m_postfix.push_back(-GetOperator(operators.top())); // negative denotes operator
- operators.pop();
+ CLog::Log(LOGERROR, "Missing operand");
+ return false;
}
-
- // test evaluate
- bool test;
- if (!Evaluate(NULL, test))
- CLog::Log(LOGERROR, "Error evaluating boolean expression %s", expression.c_str());
-}
-
-bool InfoExpression::Evaluate(const CGUIListItem *item, bool &result)
-{
- stack<bool> save;
- for (vector<short>::const_iterator it = m_postfix.begin(); it != m_postfix.end(); ++it)
+ if (operand.size() > 0 && !ProcessOperand(operand, invert, node_types, nodes))
{
- short expr = *it;
- if (expr == -OPERATOR_NOT)
- { // NOT the top item on the stack
- if (save.empty()) return false;
- bool expr = save.top();
- save.pop();
- save.push(!expr);
- }
- else if (expr == -OPERATOR_AND)
- { // AND the top two items on the stack
- if (save.size() < 2) return false;
- bool right = save.top(); save.pop();
- bool left = save.top(); save.pop();
- save.push(left && right);
- }
- else if (expr == -OPERATOR_OR)
- { // OR the top two items on the stack
- if (save.size() < 2) return false;
- bool right = save.top(); save.pop();
- bool left = save.top(); save.pop();
- save.push(left || right);
- }
- else // operand
- save.push(m_operands[expr]->Get(item));
- }
- if (save.size() != 1)
+ CLog::Log(LOGERROR, "Bad operand '%s'", operand.c_str());
return false;
- result = save.top();
+ }
+ while (operator_stack.size() > 0)
+ OperatorPop(operator_stack, invert, node_types, nodes);
+
+ m_expression_tree = nodes.top();
return true;
}
-
diff --git a/xbmc/interfaces/info/InfoExpression.h b/xbmc/interfaces/info/InfoExpression.h
index 4e0faee..0a91399 100644
--- a/xbmc/interfaces/info/InfoExpression.h
+++ b/xbmc/interfaces/info/InfoExpression.h
@@ -21,6 +21,8 @@
#pragma once
#include <vector>
+#include <list>
+#include <stack>
#include "InfoBool.h"
class CGUIListItem;
@@ -50,12 +52,63 @@ class InfoExpression : public InfoBool
virtual void Update(const CGUIListItem *item);
private:
- void Parse(const std::string &expression);
- bool Evaluate(const CGUIListItem *item, bool &result);
- short GetOperator(const char ch) const;
+ typedef enum
+ {
+ OPERATOR_NONE = 0,
+ OPERATOR_LB, // 1
+ OPERATOR_RB, // 2
+ OPERATOR_OR, // 3
+ OPERATOR_AND, // 4
+ OPERATOR_NOT, // 5
+ } operator_t;
- std::vector<short> m_postfix; ///< the postfix form of the expression (operators and operand indicies)
- std::vector<InfoPtr> m_operands; ///< the operands in the expression
+ typedef enum
+ {
+ NODE_LEAF,
+ NODE_AND,
+ NODE_OR,
+ } node_type_t;
+
+ // An abstract base class for nodes in the expression tree
+ class InfoSubexpression
+ {
+ public:
+ virtual ~InfoSubexpression(void) {}; // so we can destruct derived classes using a pointer to their base class
+ virtual bool Evaluate(const CGUIListItem *item) = 0;
+ };
+
+ typedef boost::shared_ptr<InfoSubexpression> InfoSubexpressionPtr;
+
+ // A leaf node in the expression tree
+ class InfoLeaf : public InfoSubexpression
+ {
+ public:
+ InfoLeaf(InfoPtr info, bool invert) : m_info(info), m_invert(invert) {};
+ virtual bool Evaluate(const CGUIListItem *item);
+ private:
+ InfoPtr m_info;
+ bool m_invert;
+ };
+
+ // A branch node in the expression tree
+ class InfoAssociativeGroup : public InfoSubexpression
+ {
+ public:
+ InfoAssociativeGroup(bool and_not_or, const InfoSubexpressionPtr &left, const InfoSubexpressionPtr &right);
+ void AddChild(const InfoSubexpressionPtr &child);
+ void Merge(InfoAssociativeGroup *other);
+ virtual bool Evaluate(const CGUIListItem *item);
+ private:
+ bool m_and_not_or;
+ std::list<InfoSubexpressionPtr> m_children;
+ };
+
+ static operator_t GetOperator(char ch);
+ static void OperatorPop(std::stack<operator_t> &operator_stack, bool &invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes);
+ static void ProcessOperator(operator_t op, std::stack<operator_t> &operator_stack, bool &invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes);
+ bool ProcessOperand(std::string &operand, bool invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes);
+ bool Parse(const std::string &expression);
+ InfoSubexpressionPtr m_expression_tree;
};
};
--
1.8.5.1

View File

@@ -1,36 +0,0 @@
From f164b7c43efa55d8132eaeaba6ea2cfecd47a4de Mon Sep 17 00:00:00 2001
From: Daniel Burr <dburr@topcon.com>
Date: Fri, 28 Feb 2014 04:36:16 +0100
Subject: [PATCH] Fix memory leakage in python bindings
The python bindings generated by the groovy code generator contain a reference counting bug which results in a memory leak whenever a std::vector is converted to a python list. The following member functions are affected:
* xbmcvfs.listdir
* xbmc.Player.getAvailableSubtitleStreams
* xbmc.Player.getAvailableAudioStreams
* xbmcgui.Control.getPosition
* xbmcgui.Dialog.browse
* xbmcgui.Dialog.browseMultiple
The reference counting bug occurs because PyList_Append() increments the reference count of the item, so the caller needs to call Py_DECREF() because it no longer owns the object.
This bug is especially problematic when running the Watchdog Service Addon since it may result in frequent calls to xbmcvfs.listdir, and each call can leak many kilobytes of data when listing directories containing many files.
---
xbmc/interfaces/python/typemaps/python.vector.outtm | 1 +
1 file changed, 1 insertion(+)
diff --git a/xbmc/interfaces/python/typemaps/python.vector.outtm b/xbmc/interfaces/python/typemaps/python.vector.outtm
index a841283..69dffe8 100644
--- a/xbmc/interfaces/python/typemaps/python.vector.outtm
+++ b/xbmc/interfaces/python/typemaps/python.vector.outtm
@@ -41,6 +41,7 @@
PyObject* pyentry${seq};
${helper.getOutConversion(vectype,'result',method,[ 'result' : 'pyentry' + seq, 'api' : 'entry' + seq, 'sequence' : sequence ])}
PyList_Append(${result}, pyentry${seq});
+ Py_DECREF(pyentry${seq});
}
<%
if (ispointer)
--
1.8.5.5

Some files were not shown because too many files have changed in this diff Show More