Merge remote-tracking branch 'upstream/master' into lakka

Conflicts:
	packages/tools/bcm2835-bootloader/files/create_sdcard
	projects/RPi2/filesystem/usr/lib/modules-load.d/bcm2708-rng.conf
	projects/imx6/bootloader/uEnv.txt
This commit is contained in:
Jean-André Santoni 2015-02-03 16:52:41 +01:00
commit 0180a321b9
176 changed files with 162003 additions and 16523 deletions

View File

@ -307,12 +307,14 @@ show_config() {
config_message="$config_message\n\n Graphic configuration:"
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - XORG Composite support:\t\t $COMPOSITE_SUPPORT"
if [ "$DISPLAYSERVER" = "x11" ] ; then
config_message="$config_message\n - Xorg Graphic Drivers:\t\t $GRAPHIC_DRIVERS"
config_message="$config_message\n - XORG Composite support:\t\t $COMPOSITE_SUPPORT"
config_message="$config_message\n - WindowManager:\t\t\t $WINDOWMANAGER"
fi
config_message="$config_message\n - SDL support:\t\t\t\t $SDL_SUPPORT"
config_message="$config_message\n - OpenGL (GLX) support (provider):\t $OPENGL_SUPPORT ($OPENGL)"
config_message="$config_message\n - OpenGLES support (provider):\t\t $OPENGLES_SUPPORT ($OPENGLES)"
config_message="$config_message\n - WindowManager:\t\t\t $WINDOWMANAGER"
config_message="$config_message\n - Xorg Graphic Drivers:\t\t $GRAPHIC_DRIVERS"
config_message="$config_message\n - uvesafb support:\t\t\t $UVESAFB_SUPPORT"
# Hardware decoder support
@ -410,7 +412,6 @@ show_config() {
config_message="$config_message\n - Kodi DVDCSS support:\t\t\t $KODI_DVDCSS_SUPPORT"
config_message="$config_message\n - Kodi Airplay support:\t\t $KODI_AIRPLAY_SUPPORT"
config_message="$config_message\n - Kodi Airtunes support:\t\t $KODI_AIRTUNES_SUPPORT"
config_message="$config_message\n - Kodi AFP support:\t\t\t $KODI_AFP_SUPPORT"
config_message="$config_message\n - Kodi NFS support:\t\t\t $KODI_NFS_SUPPORT"
config_message="$config_message\n - Kodi MySQL support:\t\t\t $KODI_MYSQL_SUPPORT"
config_message="$config_message\n - Kodi Optical Drive support:\t\t $KODI_OPTICAL_SUPPORT"

View File

@ -110,9 +110,6 @@
# build with libnfs support (mounting nfs shares with KODI) (yes / no)
KODI_NFS_SUPPORT="yes"
# build with afpfs-ng support (mounting AFP shares with KODI) (yes / no)
KODI_AFP_SUPPORT="no"
# build with Samba Client support (mounting SAMBA shares with KODI) (yes / no)
KODI_SAMBA_SUPPORT="yes"

View File

@ -1,182 +0,0 @@
4.3.6
- fix tv_grab_file with --quiet (again!)
- fix crash on imx6
4.3.5
- fix crash on imx6
4.3.4
- update to tvheadend-3.9.2182
- fix xmltv grab issue
4.3.3
- update to tvheadend-3.9.2168
4.3.2
- update to kodi
4.3.1
- update to tvheadend-3.9.1847
- tvheadend now has native support for hdhomerun devices
4.3.0
- rebuild for addon api bump
- update to tvheadend-3.9.1083
4.1.2
- fix issues with "wait for frontend init". thanks @sraue
4.1.1
- rebuild to fix curl/gnutls/ssl
4.1.0
- convert to systemd service
- rebuild for addon api bump
4.0.1
- rebuild
4.0.0
- rebuild for OpenELEC-4.0
3.1.4
- rebuild
3.1.3
- update to TVHeadend 3.4.27
3.1.2
- fix unloading multiple modules on suspend
3.1.1
- rebuild for OpenELEC-3.2
3.0.11
- improve suspend/resume
3.0.10
- fix preloading capmt.so with sundtek
- added the ability to use a script's stdout as the xmltv source instead of a fixed file or URL
3.0.9
- update to TVHeadend 3.4
3.0.8
- update to TVHeadend 3.3.521
3.0.7
- update to TVHeadend 3.3.511
3.0.6
- update to TVHeadend 3.3.491
- disable avahi support
3.0.5
- update to TVHeadend 3.3.485
3.0.4
- update to TVHeadend 3.3.403
3.0.3
- update to TVHeadend 3.3.328
- add an option to preload capmt_ca.so library
3.0.2
- update to TVHeadend 3.2.18
3.0.1
- bump addon version
- add support to install as system addon
- update to TVHeadend 3.2, rename addon
- add version string to addon summary
2.1.5
- add an option to wait for more than 1 adapters to appear
2.1.3
- update to hts-tvheadend-78213a0
2.1.2
- add suspend/resume fixes
- use KILL signal to stop tvheadend
- add an option to wait for fe initialization
2.1.1
- update to addon version 2.1
- update to hts-tvheadend-85e23bb
2.0.8
- define default recordings folder to /storage/recordings
- update to hts-tvheadend-a76f365
- add patch for support IPTV radio streams
2.0.7
- enable unloading/loading dvb modules on suspend/resume
- add while loop for restarting tvheadend if it crashes
2.0.6
- add possibilty to start / stop addon from addon manager with enable / disable
- add possibility to browse filesystem for xmltv source file
- start tvheadend in video user group
- update to hts-tvheadend-b877800
2.0.5
- start userspace DVB drivers before Tvheadend
2.0.4
- update to hts-tvheadend-fdf89b2
2.0.3
- rebuild for libiconv changes
2.0.2
- update to hts-tvheadend-d66746c
2.0.1
- fix patches
2.0.0
- prepare for OpenELEC-2.0 release
1.90.2
- depends on xbmc.python API 2.0
1.90.1
- update to hts-tvheadend-fdc743f
1.90.0
- add (CH) GA Weissenstein default muxes
- prepare for OpenELEC-1.90 release
1.0.1
- add XMLTV tv_file_grab support
- add XMLTV configuration support
- add teletext support patch
- add fix memory leak patch
1.0.0
- prepare for OpenELEC-1.0 release
0.99.8
- add suspend/wakeup script
0.99.7
- update to hts-tvheadend-c88a646
0.99.6
- update to hts-tvheadend-9d775da
0.99.5
- update to hts-tvheadend-ca68ed4
0.99.4
- change icon
0.99.3
- rebuild for openssl downgrade
0.99.2
- rework start scripts
0.99.1
- initial version hts-tvheadend-90e3570

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1,75 +0,0 @@
################################################################################
# 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="tvheadend"
PKG_VERSION="3.9.2182"
PKG_REV="6"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.tvheadend.org"
PKG_URL="$DISTRO_SRC/${PKG_NAME}-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain libressl curl"
PKG_PRIORITY="optional"
PKG_SECTION="service/multimedia"
PKG_SHORTDESC="tvheadend (Version: $PKG_VERSION): a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources."
PKG_LONGDESC="Tvheadend (Version: $PKG_VERSION) is a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources. It also comes with a powerful and easy to use web interface both used for configuration and day-to-day operations, such as searching the EPG and scheduling recordings. Even so, the most notable feature of Tvheadend is how easy it is to set up: Install it, navigate to the web user interface, drill into the TV adapters tab, select your current location and Tvheadend will start scanning channels and present them to you in just a few minutes. If installing as an Addon a reboot is needed"
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="xbmc.service"
PKG_AUTORECONF="no"
pre_build_target() {
mkdir -p $PKG_BUILD/.$TARGET_NAME
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME
export CROSS_COMPILE=$TARGET_PREFIX
# meh imx6..
if [ "$TARGET_ARCH" == "arm" ] ; then
export CFLAGS="$CFLAGS -mno-unaligned-access"
fi
}
configure_target() {
./configure --prefix=/usr \
--arch=$TARGET_ARCH \
--cpu=$TARGET_CPU \
--cc=$TARGET_CC \
--enable-hdhomerun_client \
--enable-hdhomerun_static \
--disable-avahi \
--disable-libav \
--enable-inotify \
--enable-epoll \
--disable-uriparser \
--enable-tvhcsa \
--enable-bundle \
--disable-dbus_1 \
--python=$ROOT/$TOOLCHAIN/bin/python
}
post_make_target() {
$CC -O -fbuiltin -fomit-frame-pointer -fPIC -shared -o capmt_ca.so src/extra/capmt_ca.c -ldl
}
makeinstall_target() {
: # nothing to do here
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
cp -P $PKG_BUILD/.$TARGET_NAME/build.linux/tvheadend $ADDON_BUILD/$PKG_ADDON_ID/bin
cp -P $PKG_BUILD/.$TARGET_NAME/capmt_ca.so $ADDON_BUILD/$PKG_ADDON_ID/bin
}

View File

@ -1,17 +0,0 @@
diff --git a/Makefile.hdhomerun b/Makefile.hdhomerun
index 094a375..7916c14 100644
--- a/Makefile.hdhomerun
+++ b/Makefile.hdhomerun
@@ -45,10 +45,10 @@ LIBHDHRDIR = $(ROOTDIR)/libhdhomerun_static
export PATH := $(LIBHDHRDIR)/build/bin:$(PATH)
-LIBHDHR = libhdhomerun_20140604
+LIBHDHR = libhdhomerun_20141210
LIBHDHR_TB = $(LIBHDHR).tgz
LIBHDHR_URL = http://download.silicondust.com/hdhomerun/$(LIBHDHR_TB)
-LIBHDHR_SHA1 = b8d910a5721c484a30b81662fd6991e3546ed67c
+LIBHDHR_SHA1 = 4f6827e17f8f79401f272f62089352fe01eae740
.PHONY: build
build: $(LIBHDHRDIR)/$(LIBHDHR)/.tvh_build

View File

@ -1,25 +0,0 @@
From 67e38551bc3acadf27b3ed4922e897348a612fdb Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Wed, 15 Oct 2014 13:35:09 +0300
Subject: [PATCH] remove werror
---
Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index ddcc47e..0087a6c 100644
--- a/Makefile
+++ b/Makefile
@@ -28,7 +28,7 @@ PROG := $(BUILDDIR)/tvheadend
#
CFLAGS += -g -O2 -Wunused-result
-CFLAGS += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations
+CFLAGS += -Wall -Wwrite-strings -Wno-deprecated-declarations
CFLAGS += -Wmissing-prototypes
CFLAGS += -fms-extensions -funsigned-char -fno-strict-aliasing
CFLAGS += -D_FILE_OFFSET_BITS=64
--
1.7.2.5

View File

@ -1,40 +0,0 @@
#!/bin/sh
################################################################################
# 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/>.
################################################################################
. /etc/profile
ADDON_HOME="$HOME/.kodi/userdata/addon_data/service.multimedia.tvheadend"
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
XMLTV_TYPE=`grep XMLTV_TYPE $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
XMLTV_LOCATION_FILE=`grep XMLTV_LOCATION_FILE $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
XMLTV_LOCATION_WEB=`grep XMLTV_LOCATION_WEB $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
XMLTV_LOCATION_SCRIPT=`grep XMLTV_LOCATION_SCRIPT $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
if [ "$XMLTV_TYPE" = "FILE" ]; then
cat "$XMLTV_LOCATION_FILE"
exit 0
elif [ "$XMLTV_TYPE" = "SCRIPT" ]; then
if [ -e "$XMLTV_LOCATION_SCRIPT" ] ; then
exec "$XMLTV_LOCATION_SCRIPT"
fi
elif [ "$XMLTV_TYPE" = "WEB" ]; then
wget -qO - "$XMLTV_LOCATION_WEB"
exit 0
fi

View File

@ -1,89 +0,0 @@
#!/bin/sh
################################################################################
# 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/>.
################################################################################
. /etc/profile
oe_setup_addon service.multimedia.tvheadend
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
XMLTV_FILE="$ADDON_DIR/bin/tv_grab_file"
XMLTV_SETTINGS_DIR="$ADDON_HOME/xmltv"
XMLTV_SETTINGS_FILE="$XMLTV_SETTINGS_DIR/config"
DVR_SETTINGS_DIR="$ADDON_HOME/dvr"
DVR_SETTINGS_FILE="$DVR_SETTINGS_DIR/config"
DVR_DIR="$HOME/recordings"
TIMESHIFT_SETTINGS_DIR="$ADDON_HOME/timeshift"
TIMESHIFT_SETTINGS_FILE="$TIMESHIFT_SETTINGS_DIR/config"
TIMESHIFT_DIR="$ADDON_HOME/cache/timeshift"
chmod a+x $ADDON_DIR/bin/*
if [ ! -f "$XMLTV_SETTINGS_FILE" ]; then
mkdir -p $XMLTV_SETTINGS_DIR
if [ -f $ADDON_DIR/xmltv-config ]; then
cp $ADDON_DIR/xmltv-config $XMLTV_SETTINGS_FILE
fi
fi
if [ ! -f "$DVR_SETTINGS_FILE" ]; then
mkdir -p $DVR_DIR
mkdir -p $DVR_SETTINGS_DIR
if [ -f $ADDON_DIR/dvr-config ]; then
cp $ADDON_DIR/dvr-config $DVR_SETTINGS_FILE
fi
fi
if [ ! -f "$TIMESHIFT_SETTINGS_FILE" ]; then
mkdir -p $TIMESHIFT_DIR
mkdir -p $TIMESHIFT_SETTINGS_DIR
if [ -f $ADDON_DIR/timeshift-config ]; then
cp $ADDON_DIR/timeshift-config $TIMESHIFT_SETTINGS_FILE
fi
fi
if [ "$DEBUG" = "yes" ]; then
TVHEADEND_ARG="-B -C -s -u root -g video -c $ADDON_HOME"
else
TVHEADEND_ARG="-B -C -u root -g video -c $ADDON_HOME"
fi
# start userspace DVB driver/addon
for driver_dvb in $(find /storage/.kodi/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do
driver_dvb_name=$(echo $driver_dvb | awk 'BEGIN {FS="/"} {printf("%s", $5)}')
logger -t Tvheadend "### Loading userspace DVB driver: $driver_dvb_name ###"
# use ". " because of variable export
. $driver_dvb
done
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
while [ true ] ; do
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend0 ] ; then
break
fi
sleep 1
done
fi
if [ "$PRELOAD_CAPMT_CA" == "true" ] ; then
logger -t Tvheadend "### Preloading capmt_ca.so library ###"
LD_PRELOAD="$ADDON_DIR/bin/capmt_ca.so $LD_PRELOAD" exec tvheadend $TVHEADEND_ARG &>$ADDON_LOG_FILE
else
exec tvheadend $TVHEADEND_ARG &>$ADDON_LOG_FILE
fi

View File

@ -1,17 +0,0 @@
################################################################################
# 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/>.
################################################################################

View File

@ -1,15 +0,0 @@
{
"storage": "/storage/recordings",
"retention-days": 31,
"pre-extra-time": 0,
"post-extra-time": 0,
"day-dir": 0,
"channel-dir": 0,
"channel-in-title": 0,
"date-in-title": 0,
"time-in-title": 0,
"whitespace-in-title": 0,
"title-dir": 0,
"episode-in-title": 0,
"tag-files": 1
}

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<!-- HTS TVHEADEND -->
<string id="1000">XMLTV</string>
<string id="1001">DVB</string>
<string id="1011">XMLTV configuration</string>
<string id="1011">XMLTV source type</string>
<string id="1012">XMLTV File location</string>
<string id="1013">XMLTV Web location</string>
<string id="1014">XMLTV Script location</string>
<string id="1020">DVB Configuration</string>
<string id="1021">Unload DVB mudules before suspend</string>
<string id="1022">Wait for frontend initialization</string>
<string id="1023">Number of adapters to wait for</string>
<string id="1024">Preload capmt_ca.so library</string>
</strings>

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
<!-- HTS TVHEADEND -->
<category label="1000">
<setting label="1010" type="lsep"/>
<setting type="sep" />
<setting id="XMLTV_TYPE" type="labelenum" label="1011" values="NONE|FILE|SCRIPT|WEB" sort="yes" default="NONE"/>
<setting id="XMLTV_LOCATION_FILE" type="file" label="1012" default="" enable="eq(-1,0)"/>
<setting id="XMLTV_LOCATION_WEB" type="text" label="1013" default="http://" enable="eq(-2,3)"/>
<setting id="XMLTV_LOCATION_SCRIPT" type="file" label="1014" default="" enable="eq(-3,2)"/>
</category>
<category label="1001">
<setting label="1020" type="lsep"/>
<setting type="sep" />
<setting id="WAIT_FOR_FEINIT" type="bool" label="1022" default="false" />
<setting id="NUM_ADAPTERS" type="slider" range="1,16" option="int" label="1023" default="1" enable="eq(-1,true)" />
<setting id="REMOVE_MODULES" type="text" label="1021" values="" default=""/>
<setting id="PRELOAD_CAPMT_CA" type="bool" label="1024" default="false" />
</category>
</settings>

View File

@ -1,8 +0,0 @@
<settings>
<setting id="WAIT_FOR_FEINIT" value="false" />
<setting id="NUM_ADAPTERS" value="1" />
<setting id="XMLTV_LOCATION_FILE" value="" />
<setting id="XMLTV_LOCATION_WEB" value="http://" />
<setting id="XMLTV_TYPE" value="NONE" />
<setting id="PRELOAD_CAPMT_CA" value="false" />
</settings>

View File

@ -1,44 +0,0 @@
#!/bin/sh
################################################################################
# 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/>.
################################################################################
. /etc/profile
oe_setup_addon service.multimedia.tvheadend
SERVICE="service.multimedia.tvheadend"
case "$1" in
pre)
if systemctl is-active "$SERVICE" &>/dev/null ; then
systemctl stop "$SERVICE"
for module in $REMOVE_MODULES ; do
rmmod $module
done
fi
;;
post)
if systemctl is-enabled "$SERVICE" &>/dev/null ; then
for module in $REMOVE_MODULES ; do
modprobe $module
done
systemctl start "$SERVICE"
fi
;;
esac

View File

@ -1,13 +0,0 @@
[Unit]
Description=TVHeadend Service
After=graphical.target
[Service]
ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.multimedia.tvheadend/bin/tvheadend.start"
TimeoutStopSec=2
Restart=always
RestartSec=2
StartLimitInterval=0
[Install]
WantedBy=kodi.target

View File

@ -1,9 +0,0 @@
{
"enabled": 0,
"ondemand": 0,
"path": "/storage/.kodi/userdata/addon_data/service.multimedia.tvheadend/cache/timeshift",
"unlimited_period": 0,
"max_period": 3600,
"unlimited_size": 0,
"max_size": 1024
}

View File

@ -1,14 +0,0 @@
{
"grabbers": [
{
"path": "/storage/.kodi/addons/service.multimedia.tvheadend/bin/tv_grab_file",
"description": "tv_grag_file is a simple grabber that just read the ~/.xmltv/tv_grab_file.xmltv file",
"version": "0.1\n",
"mtime": 1318774706,
"capabilities": 1
}
],
"grab-interval": 12,
"grab-enabled": 1,
"current-grabber": "/storage/.kodi/addons/service.multimedia.tvheadend/bin/tv_grab_file"
}

View File

@ -1,3 +1,7 @@
4.3.6
- update to vdr-satip-1.0.2
- update to vdr-2.1.7
4.3.5
- add plugin 'vdr-plugin-restfulapi'
- update to vdr-plugin-xvdr-b300fc3

View File

@ -19,7 +19,7 @@
PKG_NAME="vdr-addon"
PKG_VERSION="4.3"
PKG_REV="5"
PKG_REV="6"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.openelec.tv"

View File

@ -0,0 +1,16 @@
diff -Naur flac-1.3.1/configure.ac flac-1.3.1.patch/configure.ac
--- flac-1.3.1/configure.ac 2014-11-27 03:45:33.000000000 +0100
+++ flac-1.3.1.patch/configure.ac 2015-01-24 20:19:19.119178172 +0100
@@ -348,11 +348,10 @@
if test "x$debug" = xtrue; then
CPPFLAGS="-DDEBUG $CPPFLAGS"
- CFLAGS=$(echo "$CFLAGS" | sed 's/-g//')
CFLAGS="-g $CFLAGS"
else
CPPFLAGS="-DNDEBUG $CPPFLAGS"
- CFLAGS=$(echo "$CFLAGS" | sed 's/-O2//;s/-g//')
+ CFLAGS=$(echo "$CFLAGS" | sed 's/-O2//')
CFLAGS="-O3 -funroll-loops $CFLAGS"
fi

View File

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

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="bison"
PKG_VERSION="3.0.3"
PKG_VERSION="3.0.4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -1,11 +0,0 @@
diff -Naur libftdi-0.20-old/configure.in libftdi-0.20-new/configure.in
--- libftdi-0.20-old/configure.in 2012-03-19 04:20:56.000000000 -0700
+++ libftdi-0.20-new/configure.in 2012-12-31 04:49:04.000000000 -0800
@@ -1,6 +1,6 @@
AC_INIT(libftdi, 0.20)
AM_INIT_AUTOMAKE
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS(config.h)
AC_LANG_C
AC_PROG_CC

View File

@ -16,35 +16,44 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="libftdi"
PKG_VERSION="0.20"
PKG_NAME="libftdi1"
PKG_VERSION="1.2"
PKG_REV=1""
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://www.intra2net.com/en/developer/libftdi/"
PKG_URL="http://www.intra2net.com/en/developer/libftdi/download/libftdi-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain libusb-compat"
PKG_URL="http://www.intra2net.com/en/developer/libftdi/download/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
PKG_DEPENDS_TARGET="toolchain libusb"
PKG_PRIORITY="optional"
PKG_SECTION="driver"
PKG_SECTION="devel"
PKG_SHORTDESC="libFTDI is an open source library to talk to FTDI chips"
PKG_LONGDESC="libFTDI is an open source library to talk to FTDI chips"
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_AUTORECONF="no"
PKG_CONFIGURE_OPTS_TARGET="ac_cv_path_HAVELIBUSB=$ROOT/$TOOLCHAIN/bin/libusb-config \
LIBS=-lusb \
--disable-shared \
--enable-static \
--disable-libftdipp \
--disable-python-binding \
--without-examples \
--without-docs"
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DSTATICLIBS=ON \
-DDOCUMENTATION=FALSE \
-DEXAMPLES=FALSE \
-DFTDIPP=FALSE \
-DPYTHON_BINDINGS=FALSE \
..
}
pre_configure_target() {
CFLAGS="$CFLAGS -fPIC -DPIC"
}
post_makeinstall_target() {
rm -rf $INSTALL/usr/bin
makeinstall_target() {
mkdir -p $SYSROOT_PREFIX/usr/include/libftdi1
cp ../src/ftdi.h $SYSROOT_PREFIX/usr/include/libftdi1
mkdir -p $SYSROOT_PREFIX/usr/lib
cp src/libftdi1.a $SYSROOT_PREFIX/usr/lib
mkdir -p $SYSROOT_PREFIX/usr/lib/pkgconfig
cp libftdi1.pc $SYSROOT_PREFIX/usr/lib/pkgconfig
}

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libtool"
PKG_VERSION="2.4.4"
PKG_VERSION="2.4.5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="Mesa"
PKG_VERSION="10.4.2"
PKG_VERSION="10.4.3"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="bcm2835-driver"
PKG_VERSION="2f9828c"
PKG_VERSION="4a66b50"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libdrm"
PKG_VERSION="2.4.58"
PKG_VERSION="2.4.59"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="opengl-meson6"
PKG_VERSION="r4p0-01-armhf"
PKG_VERSION="r4p1-armhf"
PKG_REV="1"
PKG_ARCH="arm"
PKG_LICENSE="nonfree"

View File

@ -33,7 +33,7 @@ PKG_LONGDESC="Python is an interpreted object-oriented programming language, and
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
PY_DISABLED_MODULES="readline _curses _curses_panel _tkinter nis gdbm bsddb"
PY_DISABLED_MODULES="readline _curses _curses_panel _tkinter nis gdbm bsddb ossaudiodev"
PKG_CONFIGURE_OPTS_HOST="--cache-file=config.cache \
--without-cxx-main \

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="llvm"
PKG_VERSION="3.5.0"
PKG_VERSION="3.5.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -31,7 +31,7 @@ case "$LINUX" in
PKG_URL="$LAKKA_MIRROR/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
amlogic)
PKG_VERSION="amlogic-3.10-24e850b-oe"
PKG_VERSION="amlogic-3.10-84deff2"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
imx6)
@ -39,7 +39,7 @@ case "$LINUX" in
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
*)
PKG_VERSION="3.18.3"
PKG_VERSION="3.18.5"
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
esac
@ -149,6 +149,7 @@ make_target() {
rm -f $INSTALL/lib/modules/*/source
( cd $ROOT
rm -rf $ROOT/$BUILD/initramfs
$SCRIPTS/install initramfs
)
@ -194,6 +195,16 @@ makeinstall_target() {
for dtb in arch/arm/boot/dts/*.dtb; do
cp $dtb $INSTALL/usr/share/bootloader 2>/dev/null || :
done
elif [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then
mkdir -p $INSTALL/usr/share/bootloader/overlays
touch $INSTALL/usr/share/bootloader/overlays/README.TXT
for dtb in arch/arm/boot/dts/*.dtb; do
if `echo "$dtb" | grep ".*/bcm2[^/]*$" >/dev/null`; then
cp $dtb $INSTALL/usr/share/bootloader 2>/dev/null || :
else
cp $dtb $INSTALL/usr/share/bootloader/overlays 2>/dev/null || :
fi
done
fi
if [ "$PERF_SUPPORT" = "yes" -a "$DEVTOOLS" = "yes" ]; then

View File

@ -1,37 +0,0 @@
From 78e2b1bdd84264d6a9d84759da26547f887552cd Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 16 Dec 2014 08:44:32 +0000
Subject: [PATCH] drm/i915: Force the CS stall for invalidate flushes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In order to act as a full command barrier by itself, we need to tell the
pipecontrol to actually stall the command streamer while the flush runs.
We require the full command barrier before operations like
MI_SET_CONTEXT, which currently rely on a prior invalidate flush.
References: https://bugs.freedesktop.org/show_bug.cgi?id=83677
Cc: Simon Farnsworth <simon@farnz.org.uk>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index b02cf69..ae17e77 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -369,6 +369,8 @@ gen7_render_ring_flush(struct intel_engine_cs *ring,
flags |= PIPE_CONTROL_QW_WRITE;
flags |= PIPE_CONTROL_GLOBAL_GTT_IVB;
+ flags |= PIPE_CONTROL_STALL_AT_SCOREBOARD;
+
/* Workaround: we must issue a pipe_control with CS-stall bit
* set before a pipe_control command that has the state cache
* invalidate bit set. */

View File

@ -1,49 +0,0 @@
From 32431fd81d65259d490e53e3cfc7e1a2ad781fe3 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 16 Dec 2014 08:44:31 +0000
Subject: [PATCH] drm/i915: Invalidate media caches on gen7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In the gen7 pipe control there is an extra bit to flush the media
caches, so let's set it during cache invalidation flushes.
v2: Rename to MEDIA_STATE_CLEAR to be more inline with spec.
Cc: Simon Farnsworth <simon@farnz.org.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: stable@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 1 +
drivers/gpu/drm/i915/intel_ringbuffer.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index c01e5f3..d9780e2 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -370,6 +370,7 @@
#define PIPE_CONTROL_STORE_DATA_INDEX (1<<21)
#define PIPE_CONTROL_CS_STALL (1<<20)
#define PIPE_CONTROL_TLB_INVALIDATE (1<<18)
+#define PIPE_CONTROL_MEDIA_STATE_CLEAR (1<<16)
#define PIPE_CONTROL_QW_WRITE (1<<14)
#define PIPE_CONTROL_POST_SYNC_OP_MASK (3<<14)
#define PIPE_CONTROL_DEPTH_STALL (1<<13)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 0a80e41..b02cf69 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -362,6 +362,7 @@ gen7_render_ring_flush(struct intel_engine_cs *ring,
flags |= PIPE_CONTROL_VF_CACHE_INVALIDATE;
flags |= PIPE_CONTROL_CONST_CACHE_INVALIDATE;
flags |= PIPE_CONTROL_STATE_CACHE_INVALIDATE;
+ flags |= PIPE_CONTROL_MEDIA_STATE_CLEAR;
/*
* TLB invalidate requires a post-sync write.
*/

View File

@ -1,12 +0,0 @@
diff -uNr linux-3.6.4-orig/arch/x86/kernel/tsc.c linux-3.6.4-new/arch/x86/kernel/tsc.c
--- linux-3.6.4-orig/arch/x86/kernel/tsc.c 2012-11-03 14:19:55.000000000 +0100
+++ linux-3.6.4-new/arch/x86/kernel/tsc.c 2012-11-03 14:23:05.000000000 +0100
@@ -374,7 +374,7 @@
goto success;
}
}
- pr_err("Fast TSC calibration failed\n");
+ pr_info("Fast TSC calibration failed\n");
return 0;
success:

View File

@ -0,0 +1,18 @@
diff -rupN a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
--- a/drivers/media/dvb-frontends/ds3000.c 2015-01-28 23:24:59.000000000 +0100
+++ b/drivers/media/dvb-frontends/ds3000.c 2015-01-29 21:57:56.000000000 +0100
@@ -958,6 +958,14 @@ static int ds3000_set_frontend(struct dv
/* enable ac coupling */
ds3000_writereg(state, 0x25, 0x8a);
+ dprintk("%s() frequency:%u symbol_rate:%u\n", __func__, c->frequency, c->symbol_rate);
+
+ if (c->symbol_rate < ds3000_ops.info.symbol_rate_min || c->symbol_rate > ds3000_ops.info.symbol_rate_max ) {
+ dprintk("%s() symbol_rate %u out of range (%u ... %u)\n", __func__, c->symbol_rate,
+ ds3000_ops.info.symbol_rate_min, ds3000_ops.info.symbol_rate_max);
+ return 1;
+ }
+
/* enhance symbol rate performance */
if ((c->symbol_rate / 1000) <= 5000) {
value = 29777 / (c->symbol_rate / 1000) + 1;

View File

@ -0,0 +1,43 @@
From b6d7efd33fd2843fbafe2b2d4b8119b217779a6a Mon Sep 17 00:00:00 2001
From: fritsch <Peter.Fruehberger@gmail.com>
Date: Sat, 3 May 2014 00:08:24 +0200
Subject: [PATCH] Revert "Revert "xhci: Set scatter-gather limit to avoid
failed block writes.""
This reverts commit 47f467ac740ebf0475a5176ddb1741acba6aad4e.
---
drivers/usb/host/xhci.c | 4 ++--
drivers/usb/host/xhci.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 5a646a6..cfa5995 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -4716,8 +4716,8 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
struct device *dev = hcd->self.controller;
int retval;
- /* Accept arbitrarily long scatter-gather lists */
- hcd->self.sg_tablesize = ~0;
+ /* Limit the block layer scatter-gather lists to half a segment. */
+ hcd->self.sg_tablesize = TRBS_PER_SEGMENT / 2;
/* support to build packet from discontinuous buffers */
hcd->self.no_sg_constraint = 1;
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 03c74b7..c283cf1 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1260,7 +1260,7 @@ union xhci_trb {
* since the command ring is 64-byte aligned.
* It must also be greater than 16.
*/
-#define TRBS_PER_SEGMENT 64
+#define TRBS_PER_SEGMENT 256
/* Allow two commands + a link TRB, along with any reserved command TRBs */
#define MAX_RSVD_CMD_TRBS (TRBS_PER_SEGMENT - 3)
#define TRB_SEGMENT_SIZE (TRBS_PER_SEGMENT*16)
--
1.9.1

View File

@ -0,0 +1,21 @@
commit 108aa376ae52e634f6465424554fa9319c0a7a61
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Oct 10 18:01:18 2014 +0900
drm/radeon: Ignore RADEON_GEM_GTT_WC on Kabini and Aruba
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index 7f3b1e1..aea7c6e 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -235,6 +235,10 @@ int radeon_bo_create(struct radeon_device *rdev,
if (!(rdev->flags & RADEON_IS_PCIE))
bo->flags &= ~(RADEON_GEM_GTT_WC | RADEON_GEM_GTT_UC);
+ /* XXX: Write-combined CPU mappings of GTT seem broken on Kabini and Aruba */
+ if (rdev->family == CHIP_KABINI || rdev->family == CHIP_ARUBA)
+ bo->flags &= ~RADEON_GEM_GTT_WC;
+
radeon_ttm_placement_from_domain(bo, domain);
/* Kernel allocation are uninterruptible */
down_read(&rdev->pm.mclk_lock);

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="OpenELEC-settings"
PKG_VERSION="0.6.1"
PKG_VERSION="0.6.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="prop."

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-audioencoder-flac"
PKG_VERSION="a960eba"
PKG_VERSION="62c2cc8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-audioencoder-lame"
PKG_VERSION="6f8384f"
PKG_VERSION="3eb59de"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-audioencoder-vorbis"
PKG_VERSION="fa0de15"
PKG_VERSION="dbf5c62"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-pvr-addons"
PKG_VERSION="78397af"
PKG_VERSION="a0a437e"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-theme-Confluence"
PKG_VERSION="14-90a75f0"
PKG_VERSION="14-b5dbdb5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi"
PKG_VERSION="14-90a75f0"
PKG_VERSION="14-b5dbdb5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
@ -214,13 +214,6 @@ else
KODI_NFS="--disable-nfs"
fi
if [ "$KODI_AFP_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET afpfs-ng"
KODI_AFP="--enable-afpclient"
else
KODI_AFP="--disable-afpclient"
fi
if [ "$KODI_SAMBA_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET samba"
KODI_SAMBA="--enable-samba"
@ -324,7 +317,7 @@ PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \
--enable-rtmp \
$KODI_SAMBA \
$KODI_NFS \
$KODI_AFP \
--disable-afpclient \
--enable-libvorbisenc \
--disable-libcap \
$KODI_DVDCSS \

View File

@ -1,15 +1,15 @@
From 5d2b9a1d40720c8cc3306e7dab4e850271a1f00e Mon Sep 17 00:00:00 2001
From 5259de8dcb34a4a3caacfbff8afae05c48c739d6 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 8 Aug 2014 18:22:44 +0300
Subject: [PATCH] service addons: use a wrapper to setup systemd
Subject: [PATCH] use a wrapper to setup systemd services
---
xbmc/addons/Service.cpp | 12 ++++++++++++
xbmc/addons/Service.cpp | 14 ++++++++++++++
xbmc/addons/Service.h | 3 +++
2 files changed, 15 insertions(+)
2 files changed, 17 insertions(+)
diff --git a/xbmc/addons/Service.cpp b/xbmc/addons/Service.cpp
index c406b11..c23b18a 100644
index c406b11..3c7eef5 100644
--- a/xbmc/addons/Service.cpp
+++ b/xbmc/addons/Service.cpp
@@ -53,6 +53,9 @@ AddonPtr CService::Clone() const
@ -17,36 +17,38 @@ index c406b11..c23b18a 100644
{
bool ret = true;
+
+ CallOEWrapper(ID(), false);
+ CallOEWrapper(ID(), false, true);
+
switch (m_type)
{
#ifdef HAS_PYTHON
@@ -88,6 +91,8 @@ bool CService::Stop()
break;
}
+ CallOEWrapper(ID(), true);
+
return ret;
}
@@ -113,6 +118,13 @@ void CService::BuildServiceType()
@@ -113,13 +116,24 @@ void CService::BuildServiceType()
}
}
+void CService::CallOEWrapper(const std::string& ID, bool disable)
+void CService::CallOEWrapper(const std::string& ID, bool disable, bool check)
+{
+ char cmd[255];
+ snprintf(cmd, sizeof(cmd), "/usr/lib/openelec/systemd-addon-wrapper %s %d", ID.c_str(), disable);
+ snprintf(cmd, sizeof(cmd), "/usr/lib/openelec/systemd-addon-wrapper %s %d", ID.c_str(), disable, check);
+ system(cmd);
+}
+
void CService::OnDisabled()
{
+ CallOEWrapper(ID(), true, false);
+
Stop();
}
void CService::OnEnabled()
{
+ CallOEWrapper(ID(), false, false);
+
Start();
}
diff --git a/xbmc/addons/Service.h b/xbmc/addons/Service.h
index 98ec8b6..36e4109 100644
index 98ec8b6..accd9e2 100644
--- a/xbmc/addons/Service.h
+++ b/xbmc/addons/Service.h
@@ -47,6 +47,9 @@ namespace ADDON
@ -54,11 +56,11 @@ index 98ec8b6..36e4109 100644
TYPE GetServiceType() { return m_type; }
START_OPTION GetStartOption() { return m_startOption; }
+
+ void CallOEWrapper(const std::string& ID, bool disable);
+ void CallOEWrapper(const std::string& ID, bool disable, bool check);
+
virtual void OnDisabled();
virtual void OnEnabled();
virtual bool OnPreInstall();
--
1.9.1
2.1.0

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,13 @@ if [ ! -d /storage/.config/system.d ] ; then
fi
if [ -f "/storage/.kodi/addons/$1/system.d/$1.service" ] ; then
if [ $2 -eq 1 ] ; then
if [ "_$3" = "_1" ] ; then
# check if enabled, on kodi start
if ! systemctl is-enabled "$1.service" &>/dev/null ; then
systemctl enable "/storage/.kodi/addons/$1/system.d/$1.service"
systemctl start "$1.service"
fi
elif [ "_$2" = "_1" ] ; then
# disable = true: cleanup
systemctl stop "$1.service"
systemctl disable "/storage/.kodi/addons/$1/system.d/$1.service"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="rtmpdump"
PKG_VERSION="e0056c5"
PKG_VERSION="a107cef"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
@ -84,4 +84,8 @@ makeinstall_target() {
post_makeinstall_target() {
rm -rf $INSTALL/usr/sbin
# to be removed: hack for "compatibility"
mkdir -p $INSTALL/usr/lib
ln -sf librtmp.so.1 $INSTALL/usr/lib/librtmp.so.0
}

View File

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

View File

@ -1,45 +0,0 @@
################################################################################
# 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="afpfs-ng"
PKG_VERSION="0.8.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://sourceforge.net/projects/afpfs-ng/"
PKG_URL="$SOURCEFORGE_SRC/$PKG_NAME/$PKG_NAME/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS_TARGET="toolchain libgpg-error libgcrypt ncurses"
PKG_PRIORITY="optional"
PKG_SECTION="network"
PKG_SHORTDESC="afpfs-ng: an Apple Filing Protocol client"
PKG_LONGDESC="afpfs-ng is an Apple Filing Protocol client that will allow BSD, Linux and Mac OS X systems to access files exported from a Mac OS system with AFP over TCP."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_malloc_0_nonnull=yes \
--enable-gcrypt \
--disable-fuse"
PKG_MAKE_OPTS_TARGET="-C lib"
makeinstall_target() {
$MAKEINSTALL -C lib
$MAKEINSTALL -C include
make -C lib DESTDIR=$INSTALL install
}

View File

@ -1,25 +0,0 @@
diff -Naur afpfs-ng-0.8.1/configure.ac afpfs-ng-0.8.1.patch/configure.ac
--- afpfs-ng-0.8.1/configure.ac 2011-09-10 12:14:34.164716403 +0200
+++ afpfs-ng-0.8.1.patch/configure.ac 2011-09-10 12:15:13.266241771 +0200
@@ -51,21 +51,6 @@
case $host in
*-*-darwin*)
AC_MSG_CHECKING([for correct gcrypt version])
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM([
- #include <gcrypt.h>
- #include <stdio.h>],[
- char*p= GCRYPT_VERSION;
- unsigned int vers;
- vers=atoi(p)*10000;
- p=strchr(p,'.')+1;
- vers+=atoi(p)*100;
- p=strchr(p,'.')+1;
- vers+=atoi(p);
- if (vers<10400) return 1;
- ])],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_ERROR([version is < 1.4.0])])
AM_CONDITIONAL(HAVE_LIBGCRYPT, true)
AC_DEFINE([HAVE_LIBGCRYPT], [1] )
;;

View File

@ -1,280 +0,0 @@
diff -Naur afpfs-ng-0.8.1/cmdline/getstatus.c afpfs-ng-0.8.1.patch/cmdline/getstatus.c
--- afpfs-ng-0.8.1/cmdline/getstatus.c 2011-09-10 12:14:34.164716403 +0200
+++ afpfs-ng-0.8.1.patch/cmdline/getstatus.c 2011-09-10 12:16:23.717188342 +0200
@@ -1,4 +1,5 @@
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <pthread.h>
diff -Naur afpfs-ng-0.8.1/fuse/client.c afpfs-ng-0.8.1.patch/fuse/client.c
--- afpfs-ng-0.8.1/fuse/client.c 2011-09-10 12:14:34.165716416 +0200
+++ afpfs-ng-0.8.1.patch/fuse/client.c 2011-09-10 12:16:23.737188610 +0200
@@ -61,8 +61,9 @@
snprintf(filename, PATH_MAX,
"/usr/local/bin/%s",AFPFSD_FILENAME);
if (access(filename,X_OK)) {
- snprintf(filename, "/usr/bin/%s",
+ snprintf(filename, sizeof(filename), "/usr/bin/%s",
AFPFSD_FILENAME);
+ filename[sizeof(filename) - 1] = 0;
if (access(filename,X_OK)) {
printf("Could not find server (%s)\n",
filename);
diff -Naur afpfs-ng-0.8.1/fuse/fuse_int.c afpfs-ng-0.8.1.patch/fuse/fuse_int.c
--- afpfs-ng-0.8.1/fuse/fuse_int.c 2011-09-10 12:14:34.167716442 +0200
+++ afpfs-ng-0.8.1.patch/fuse/fuse_int.c 2011-09-10 12:16:23.745188717 +0200
@@ -197,7 +197,7 @@
ret = ml_open(volume,path,flags,&fp);
if (ret==0)
- fi->fh=(void *) fp;
+ fi->fh=(unsigned long) fp;
return ret;
}
diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/afp.h afpfs-ng-0.8.1.patch/include/afpfs-ng/afp.h
--- afpfs-ng-0.8.1/include/afpfs-ng/afp.h 2011-09-10 12:14:34.168716455 +0200
+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/afp.h 2011-09-10 12:16:37.588374712 +0200
@@ -370,7 +370,7 @@
int afp_opendt(struct afp_volume *volume, unsigned short * refnum);
-int afp_closedt(struct afp_server * server, unsigned short * refnum);
+int afp_closedt(struct afp_server * server, unsigned short refnum);
int afp_getcomment(struct afp_volume *volume, unsigned int did,
const char * pathname, struct afp_comment * comment);
diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/utils.h afpfs-ng-0.8.1.patch/include/afpfs-ng/utils.h
--- afpfs-ng-0.8.1/include/afpfs-ng/utils.h 2011-09-10 12:14:34.173716523 +0200
+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/utils.h 2011-09-10 12:16:47.234504316 +0200
@@ -8,8 +8,8 @@
#define hton64(x) (x)
#define ntoh64(x) (x)
#else /* BYTE_ORDER == BIG_ENDIAN */
-#define hton64(x) ((u_int64_t) (htonl(((x) >> 32) & 0xffffffffLL)) | \
- (u_int64_t) ((htonl(x) & 0xffffffffLL) << 32))
+#define hton64(x) ((u_int64_t) (htonl((((unsigned long long)(x)) >> 32) & 0xffffffffLL)) | \
+ (u_int64_t) ((htonl((unsigned long long)(x)) & 0xffffffffLL) << 32))
#define ntoh64(x) (hton64(x))
#endif /* BYTE_ORDER == BIG_ENDIAN */
diff -Naur afpfs-ng-0.8.1/lib/afp_url.c afpfs-ng-0.8.1.patch/lib/afp_url.c
--- afpfs-ng-0.8.1/lib/afp_url.c 2011-09-10 12:14:34.182716644 +0200
+++ afpfs-ng-0.8.1.patch/lib/afp_url.c 2011-09-10 12:16:47.235504329 +0200
@@ -33,7 +33,7 @@
static int check_uamname(const char * uam)
{
char * p;
- for (p=uam;*p;p++) {
+ for (p=(char *)uam;*p;p++) {
if (*p==' ') continue;
if ((*p<'A') || (*p>'z')) return -1;
}
@@ -188,7 +188,7 @@
return -1;
}
- if (p==NULL) p=toparse;
+ if (p==NULL) p=(char *)toparse;
/* Now split on the first / */
if (sscanf(p,"%[^/]/%[^$]",
diff -Naur afpfs-ng-0.8.1/lib/did.c afpfs-ng-0.8.1.patch/lib/did.c
--- afpfs-ng-0.8.1/lib/did.c 2011-09-10 12:14:34.184716670 +0200
+++ afpfs-ng-0.8.1.patch/lib/did.c 2011-09-10 12:16:47.235504329 +0200
@@ -226,7 +226,7 @@
/* Go to the end of last known entry */
- p=path+(p-copy);
+ p=(char *)path+(p-copy);
p2=p;
while ((p=strchr(p+1,'/'))) {
diff -Naur afpfs-ng-0.8.1/lib/dsi.c afpfs-ng-0.8.1.patch/lib/dsi.c
--- afpfs-ng-0.8.1/lib/dsi.c 2011-09-10 12:14:34.185716683 +0200
+++ afpfs-ng-0.8.1.patch/lib/dsi.c 2011-09-10 12:16:47.236504342 +0200
@@ -474,7 +474,7 @@
}
server->flags=ntohs(reply1->flags);
- p=(void *)((unsigned int) server->incoming_buffer + sizeof(*reply1));
+ p=(void *)((unsigned long) server->incoming_buffer + sizeof(*reply1));
p+=copy_from_pascal(server->server_name,p,AFP_SERVER_NAME_LEN)+1;
/* Now work our way through the variable bits */
@@ -757,7 +757,7 @@
printf("<<< read() of rest of AFP, %d bytes\n",amount_to_read);
#endif
ret = read(server->fd, (void *)
- (((unsigned int) server->incoming_buffer)+server->data_read),
+ (((unsigned long) server->incoming_buffer)+server->data_read),
amount_to_read);
if (ret<0) return -1;
if (ret==0) {
diff -Naur afpfs-ng-0.8.1/lib/loop.c afpfs-ng-0.8.1.patch/lib/loop.c
--- afpfs-ng-0.8.1/lib/loop.c 2011-09-10 12:14:34.186716697 +0200
+++ afpfs-ng-0.8.1.patch/lib/loop.c 2011-09-10 12:16:47.257504624 +0200
@@ -25,7 +25,7 @@
static unsigned char exit_program=0;
static pthread_t ending_thread;
-static pthread_t main_thread = NULL;
+static pthread_t main_thread = (pthread_t)NULL;
static int loop_started=0;
static pthread_cond_t loop_started_condition;
diff -Naur afpfs-ng-0.8.1/lib/lowlevel.c afpfs-ng-0.8.1.patch/lib/lowlevel.c
--- afpfs-ng-0.8.1/lib/lowlevel.c 2011-09-10 12:14:34.186716697 +0200
+++ afpfs-ng-0.8.1.patch/lib/lowlevel.c 2011-09-10 12:16:47.288505041 +0200
@@ -582,7 +582,7 @@
if (volume->server->using_version->av_number>=30)
stbuf->st_mode |= fp.unixprivs.permissions;
else
- set_nonunix_perms(stbuf,&fp);
+ set_nonunix_perms(&stbuf->st_mode,&fp);
stbuf->st_uid=fp.unixprivs.uid;
stbuf->st_gid=fp.unixprivs.gid;
diff -Naur afpfs-ng-0.8.1/lib/midlevel.c afpfs-ng-0.8.1.patch/lib/midlevel.c
--- afpfs-ng-0.8.1/lib/midlevel.c 2011-09-10 12:14:34.189716738 +0200
+++ afpfs-ng-0.8.1.patch/lib/midlevel.c 2011-09-10 12:16:47.316505416 +0200
@@ -713,7 +713,7 @@
{
int ret,err=0;
- int totalwritten = 0;
+ size_t totalwritten = 0;
uint64_t sizetowrite, ignored;
unsigned char flags = 0;
unsigned int max_packet_size=volume->server->tx_quantum;
diff -Naur afpfs-ng-0.8.1/lib/proto_attr.c afpfs-ng-0.8.1.patch/lib/proto_attr.c
--- afpfs-ng-0.8.1/lib/proto_attr.c 2011-09-10 12:14:34.189716738 +0200
+++ afpfs-ng-0.8.1.patch/lib/proto_attr.c 2011-09-10 12:16:47.317505429 +0200
@@ -166,7 +166,7 @@
copy_path(server,p,pathname,strlen(pathname));
unixpath_to_afppath(server,p);
p2=p+sizeof_path_header(server)+strlen(pathname);
- if (((unsigned int ) p2) & 0x1) p2++;
+ if (((unsigned long) p2) & 0x1) p2++;
req2=(void *) p2;
req2->len=htons(namelen);
diff -Naur afpfs-ng-0.8.1/lib/proto_desktop.c afpfs-ng-0.8.1.patch/lib/proto_desktop.c
--- afpfs-ng-0.8.1/lib/proto_desktop.c 2011-09-10 12:14:34.197716845 +0200
+++ afpfs-ng-0.8.1.patch/lib/proto_desktop.c 2011-09-10 12:16:47.317505429 +0200
@@ -168,7 +168,7 @@
return 0;
}
-int afp_closedt(struct afp_server * server, unsigned short * refnum)
+int afp_closedt(struct afp_server * server, unsigned short refnum)
{
struct {
struct dsi_header dsi_header __attribute__((__packed__));
diff -Naur afpfs-ng-0.8.1/lib/proto_directory.c afpfs-ng-0.8.1.patch/lib/proto_directory.c
--- afpfs-ng-0.8.1/lib/proto_directory.c 2011-09-10 12:14:34.205716953 +0200
+++ afpfs-ng-0.8.1.patch/lib/proto_directory.c 2011-09-10 12:16:47.317505429 +0200
@@ -248,6 +248,7 @@
return 0;
}
+
int afp_enumerateext2_reply(struct afp_server *server, char * buf, unsigned int size, void * other)
{
@@ -266,8 +267,7 @@
char * p = buf + sizeof(*reply);
int i;
char *max=buf+size;
- struct afp_file_info * filebase = NULL, *filecur=NULL, *new_file=NULL;
- void ** x = other;
+ struct afp_file_info * filebase = NULL, *filecur = NULL, *new_file = NULL, **x = (struct afp_file_info **) other;
if (reply->dsi_header.return_code.error_code) {
return reply->dsi_header.return_code.error_code;
diff -Naur afpfs-ng-0.8.1/lib/proto_map.c afpfs-ng-0.8.1.patch/lib/proto_map.c
--- afpfs-ng-0.8.1/lib/proto_map.c 2011-09-10 12:14:34.207716979 +0200
+++ afpfs-ng-0.8.1.patch/lib/proto_map.c 2011-09-10 12:16:47.318505443 +0200
@@ -122,7 +122,7 @@
if (reply->header.return_code.error_code!=kFPNoErr) return -1;
- copy_from_pascal_two(name,&reply->name,255);
+ copy_from_pascal_two(name,reply->name,255);
return 0;
}
diff -Naur afpfs-ng-0.8.1/lib/proto_session.c afpfs-ng-0.8.1.patch/lib/proto_session.c
--- afpfs-ng-0.8.1/lib/proto_session.c 2011-09-10 12:14:34.208716992 +0200
+++ afpfs-ng-0.8.1.patch/lib/proto_session.c 2011-09-10 12:16:47.318505443 +0200
@@ -39,7 +39,7 @@
switch (type) {
case kLoginWithTimeAndID:
case kReconnWithTimeAndID: {
- uint32_t *p = (void *) (((unsigned int) request)+
+ uint32_t *p = (void *) (((unsigned long) request)+
sizeof(*request));
offset=sizeof(timestamp);
@@ -63,7 +63,7 @@
goto error;
}
- data=(void *) (((unsigned int) request)+sizeof(*request)+offset);
+ data=(void *) (((unsigned long) request)+sizeof(*request)+offset);
request->idlength=htonl(datalen);
request->pad=0;
request->type=htons(type);
@@ -127,7 +127,7 @@
if ((request=malloc(sizeof(*request) + AFP_TOKEN_MAX_LEN))==NULL)
return -1;
- token_data = request + sizeof(*request);
+ token_data = (char *)request + sizeof(*request);
request->type=htons(type);
diff -Naur afpfs-ng-0.8.1/lib/uams.c afpfs-ng-0.8.1.patch/lib/uams.c
--- afpfs-ng-0.8.1/lib/uams.c 2011-09-10 12:14:34.212717047 +0200
+++ afpfs-ng-0.8.1.patch/lib/uams.c 2011-09-10 12:16:47.319505457 +0200
@@ -180,7 +180,7 @@
goto cleartxt_fail;
p += copy_to_pascal(p, username) + 1;
- if ((int)p & 0x1)
+ if ((long)p & 0x1)
len--;
else
p++;
@@ -230,7 +230,7 @@
goto cleartxt_fail;
p += copy_to_pascal(p, username) + 1;
- if ((int)p & 0x1)
+ if ((long)p & 0x1)
len--;
else
p++;
@@ -580,7 +580,7 @@
if (ai == NULL)
goto dhx_noctx_fail;
d += copy_to_pascal(ai, username) + 1;
- if (((int)d) % 2)
+ if (((long)d) % 2)
d++;
else
ai_len--;
diff -Naur afpfs-ng-0.8.1/lib/utils.c afpfs-ng-0.8.1.patch/lib/utils.c
--- afpfs-ng-0.8.1/lib/utils.c 2011-09-10 12:14:34.213717060 +0200
+++ afpfs-ng-0.8.1.patch/lib/utils.c 2011-09-10 12:16:47.319505457 +0200
@@ -196,7 +196,7 @@
maxlen=255;
- p=filename+1;
+ p=(char *)filename+1;
while ((q=strchr(p,'/'))) {
if (q>p+maxlen)
return 1;

View File

@ -1,26 +0,0 @@
diff -Naur afpfs-ng-0.8.1/include/afpfs-ng/dsi.h afpfs-ng-0.8.1.patch/include/afpfs-ng/dsi.h
--- afpfs-ng-0.8.1/include/afpfs-ng/dsi.h 2011-09-10 12:14:34.170716482 +0200
+++ afpfs-ng-0.8.1.patch/include/afpfs-ng/dsi.h 2011-09-10 12:22:28.790093211 +0200
@@ -6,13 +6,15 @@
struct dsi_request
{
- unsigned short requestid;
- unsigned char subcommand;
- void * other;
- unsigned char wait;
- pthread_cond_t condition_cond;
- struct dsi_request * next;
- int return_code;
+ unsigned short requestid;
+ unsigned char subcommand;
+ void * other;
+ int wait;
+ int done_waiting;
+ pthread_cond_t waiting_cond;
+ pthread_mutex_t waiting_mutex;
+ struct dsi_request * next;
+ int return_code;
};
int dsi_receive(struct afp_server * server, void * data, int size);

View File

@ -1,90 +0,0 @@
diff -Naur afpfs-ng-0.8.1/lib/afp.c afpfs-ng-0.8.1.patch/lib/afp.c
--- afpfs-ng-0.8.1/lib/afp.c 2011-09-10 12:14:34.181716631 +0200
+++ afpfs-ng-0.8.1.patch/lib/afp.c 2011-09-10 12:23:15.935726602 +0200
@@ -68,7 +68,7 @@
afp_getsessiontoken_reply,afp_blank_reply, NULL, NULL,
afp_enumerateext2_reply, NULL, NULL, NULL, /*64 - 71 */
afp_listextattrs_reply, NULL, NULL, NULL,
- afp_blank_reply, NULL, NULL, NULL, /*72 - 79 */
+ afp_blank_reply, NULL, afp_blank_reply, afp_blank_reply, /*72 - 79 */
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
@@ -320,8 +320,16 @@
struct dsi_request * p;
struct afp_server *s2;
+
+
+ if (s==NULL)
+ goto out;
+
for (p=s->command_requests;p;p=p->next) {
- pthread_cond_signal(&p->condition_cond);
+ pthread_mutex_lock(&p->waiting_mutex);
+ p->done_waiting=1;
+ pthread_cond_signal(&p->waiting_cond);
+ pthread_mutex_unlock(&p->waiting_mutex);
}
if (s==server_base) {
@@ -354,7 +362,7 @@
s->exit_flag = 0;
s->path_encoding=kFPUTF8Name; /* This is a default */
s->next=NULL;
- s->bufsize=2048;
+ s->bufsize=4096;
s->incoming_buffer=malloc(s->bufsize);
s->attention_quantum=AFP_DEFAULT_ATTENTION_QUANTUM;
@@ -524,13 +532,14 @@
kFPVolCreateDateBit|kFPVolIDBit |
kFPVolNameBit;
char new_encoding;
+ int ret;
if (server->using_version->av_number>=30)
bitmap|= kFPVolNameBit|kFPVolBlockSizeBit;
- switch (afp_volopen(volume,bitmap,
- (strlen(volume->volpassword)>0) ? volume->volpassword : NULL))
- {
+ ret = afp_volopen(volume,bitmap,
+ (strlen(volume->volpassword)>0) ? volume->volpassword : NULL);
+ switch(ret){
case kFPAccessDenied:
*l+=snprintf(mesg,max-*l,
"Incorrect volume password\n");
@@ -544,6 +553,10 @@
*l+=snprintf(mesg,max-*l,
"Could not open volume\n");
goto error;
+ case ETIMEDOUT:
+ *l+=snprintf(mesg,max-*l,
+ "Timed out waiting to open volume\n");
+ goto error;
}
/* It is said that if a volume's encoding will be the same
@@ -641,7 +654,6 @@
add_server(server);
add_fd_and_signal(server->fd);
-
if (!full) {
return 0;
}
@@ -649,10 +661,13 @@
/* Get the status, and calculate the transmit time. We use this to
* calculate our rx quantum. */
gettimeofday(&t1,NULL);
+
if ((error=dsi_getstatus(server))!=0)
goto error;
gettimeofday(&t2,NULL);
+ afp_server_identify(server);
+
if ((t2.tv_sec - t1.tv_sec) > 0)
server->tx_delay= (t2.tv_sec - t1.tv_sec) * 1000;
else

View File

@ -1,142 +0,0 @@
diff -Naur afpfs-ng-0.8.1/lib/dsi.c afpfs-ng-0.8.1.patch/lib/dsi.c
--- afpfs-ng-0.8.1/lib/dsi.c 2011-09-10 12:21:39.948437027 +0200
+++ afpfs-ng-0.8.1.patch/lib/dsi.c 2011-09-10 12:25:57.688903825 +0200
@@ -64,7 +64,7 @@
rx.size=0;
dsi_setup_header(server,&header,DSI_DSIGetStatus);
/* We're intentionally ignoring the results */
- ret=dsi_send(server,(char *) &header,sizeof(struct dsi_header),20,
+ ret=dsi_send(server,(char *) &header,sizeof(struct dsi_header),60,
0,(void *) &rx);
free(rx.data);
@@ -197,6 +197,7 @@
new_request->other=other;
new_request->wait=wait;
new_request->next=NULL;
+ new_request->done_waiting=0;
pthread_mutex_lock(&server->request_queue_mutex);
if (server->command_requests==NULL) {
@@ -208,7 +209,8 @@
server->stats.requests_pending++;
pthread_mutex_unlock(&server->request_queue_mutex);
- pthread_cond_init(&new_request->condition_cond,NULL);
+ pthread_cond_init(&new_request->waiting_cond,NULL);
+ pthread_mutex_init(&new_request->waiting_mutex,NULL);
if (server->connect_state==SERVER_STATE_DISCONNECTED) {
char mesg[1024];
@@ -240,16 +242,12 @@
server->stats.tx_bytes+=size;
pthread_mutex_unlock(&server->send_mutex);
- int tmpwait=new_request->wait;
#ifdef DEBUG_DSI
printf("=== Waiting for response for %d %s\n",
new_request->requestid,
afp_get_command_name(new_request->subcommand));
#endif
- if (tmpwait<0) {
-
- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
- pthread_mutex_lock(&mutex);
+ if (new_request->wait<0) {
/* Wait forever */
#ifdef DEBUG_DSI
@@ -258,14 +256,17 @@
afp_get_command_name(new_request->subcommand));
#endif
- rc=pthread_cond_wait(
- &new_request->condition_cond,
- &mutex );
- pthread_mutex_unlock(&mutex);
-
- } else if (tmpwait>0) {
- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
- pthread_mutex_lock(&mutex);
+ pthread_mutex_lock(&new_request->waiting_mutex);
+
+ if (new_request->done_waiting==0)
+ rc=pthread_cond_wait(
+ &new_request->waiting_cond,
+ &new_request->waiting_mutex );
+
+ pthread_mutex_unlock(&new_request->waiting_mutex);
+
+ } else if (new_request->wait>0) {
+ /* wait for new_request->wait seconds */
#ifdef DEBUG_DSI
printf("=== Waiting for %d %s, for %ds\n",
@@ -283,13 +284,15 @@
printf("=== Changing my mind, no longer waiting for %d\n",
new_request->requestid);
#endif
- pthread_mutex_unlock(&mutex);
goto skip;
}
- rc=pthread_cond_timedwait(
- &new_request->condition_cond,
- &mutex,&ts);
- pthread_mutex_unlock(&mutex);
+ pthread_mutex_lock(&new_request->waiting_mutex);
+ if (new_request->done_waiting==0)
+ rc=pthread_cond_timedwait(
+ &new_request->waiting_cond,
+ &new_request->waiting_mutex,&ts);
+ pthread_mutex_unlock(&new_request->waiting_mutex);
+
if (rc==ETIMEDOUT) {
/* FIXME: should handle this case properly */
#ifdef DEBUG_DSI
@@ -299,6 +302,7 @@
goto out;
}
} else {
+ /* Don't wait */
#ifdef DEBUG_DSI
printf("=== Skipping wait altogether for %d\n",new_request->requestid);
#endif
@@ -474,7 +478,7 @@
}
server->flags=ntohs(reply1->flags);
- p=(void *)((unsigned long) server->incoming_buffer + sizeof(*reply1));
+ p=(void *)((unsigned int) server->incoming_buffer + sizeof(*reply1));
p+=copy_from_pascal(server->server_name,p,AFP_SERVER_NAME_LEN)+1;
/* Now work our way through the variable bits */
@@ -577,6 +581,7 @@
unsigned char mins=0;
unsigned char checkmessage=0;
+ memset(mesg,0,AFP_LOGINMESG_LEN);
/* The logic here's undocumented. If we get an attention packet and
there's no flag, then go check the message. Also, go check the
@@ -757,7 +762,7 @@
printf("<<< read() of rest of AFP, %d bytes\n",amount_to_read);
#endif
ret = read(server->fd, (void *)
- (((unsigned long) server->incoming_buffer)+server->data_read),
+ (((unsigned int) server->incoming_buffer)+server->data_read),
amount_to_read);
if (ret<0) return -1;
if (ret==0) {
@@ -862,8 +867,11 @@
#ifdef DEBUG_DSI
printf("<<< Signalling %d, returning %d or %d\n",request->requestid,request->return_code,rc);
#endif
+ pthread_mutex_lock(&request->waiting_mutex);
request->wait=0;
- pthread_cond_signal(&request->condition_cond);
+ request->done_waiting=1;
+ pthread_cond_signal(&request->waiting_cond);
+ pthread_mutex_unlock(&request->waiting_mutex);
} else {
dsi_remove_from_request_queue(server,request);
}

View File

@ -1,28 +0,0 @@
diff -Naur afpfs-ng-0.8.1/lib/identify.c afpfs-ng-0.8.1.patch/lib/identify.c
--- afpfs-ng-0.8.1/lib/identify.c 1970-01-01 01:00:00.000000000 +0100
+++ afpfs-ng-0.8.1.patch/lib/identify.c 2011-09-10 12:26:30.257389169 +0200
@@ -0,0 +1,24 @@
+#include <string.h>
+#include "afpfs-ng/afp.h"
+
+
+/*
+ * afp_server_identify()
+ *
+ * Identifies a server
+ *
+ * Right now, this only does identification using the machine_type
+ * given in getsrvrinfo, but this could later use mDNS to get
+ * more details.
+ */
+void afp_server_identify(struct afp_server * s)
+{
+ if (strcmp(s->machine_type,"Netatalk")==0)
+ s->server_type=AFPFS_SERVER_TYPE_NETATALK;
+ else if (strcmp(s->machine_type,"AirPort")==0)
+ s->server_type=AFPFS_SERVER_TYPE_AIRPORT;
+ else if (strcmp(s->machine_type,"Macintosh")==0)
+ s->server_type=AFPFS_SERVER_TYPE_MACINTOSH;
+ else
+ s->server_type=AFPFS_SERVER_TYPE_UNKNOWN;
+}

View File

@ -1,12 +0,0 @@
diff -Naur afpfs-ng-0.8.1/lib/Makefile.am afpfs-ng-0.8.1.patch/lib/Makefile.am
--- afpfs-ng-0.8.1/lib/Makefile.am 2008-02-18 04:34:32.000000000 +0100
+++ afpfs-ng-0.8.1.patch/lib/Makefile.am 2011-09-10 12:27:09.833978612 +0200
@@ -4,7 +4,7 @@
lib_LTLIBRARIES = libafpclient.la
-libafpclient_la_SOURCES = afp.c codepage.c did.c dsi.c map_def.c uams.c uams_def.c unicode.c users.c utils.c resource.c log.c client.c server.c connect.c loop.c midlevel.c proto_attr.c proto_desktop.c proto_directory.c proto_files.c proto_fork.c proto_login.c proto_map.c proto_replyblock.c proto_server.c proto_volume.c proto_session.c afp_url.c status.c forklist.c debug.c lowlevel.c
+libafpclient_la_SOURCES = afp.c codepage.c did.c dsi.c map_def.c uams.c uams_def.c unicode.c users.c utils.c resource.c log.c client.c server.c connect.c loop.c midlevel.c proto_attr.c proto_desktop.c proto_directory.c proto_files.c proto_fork.c proto_login.c proto_map.c proto_replyblock.c proto_server.c proto_volume.c proto_session.c afp_url.c status.c forklist.c debug.c lowlevel.c identify.c
# libafpclient_la_LDFLAGS = -module -avoid-version

View File

@ -1,25 +0,0 @@
diff -Naur afpfs-ng-0.8.1/lib/afp.c afpfs-ng-0.8.1.patch/lib/afp.c
--- afpfs-ng-0.8.1/lib/afp.c 2011-09-10 12:23:38.207025811 +0200
+++ afpfs-ng-0.8.1.patch/lib/afp.c 2011-09-10 12:30:20.305810381 +0200
@@ -19,7 +19,6 @@
#include <sys/time.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <errno.h>
#include "afpfs-ng/afp_protocol.h"
#include "afpfs-ng/libafpclient.h"
diff -Naur afpfs-ng-0.8.1/lib/afp_url.c afpfs-ng-0.8.1.patch/lib/afp_url.c
--- afpfs-ng-0.8.1/lib/afp_url.c 2011-09-10 12:21:39.946437001 +0200
+++ afpfs-ng-0.8.1.patch/lib/afp_url.c 2011-09-10 12:30:20.306810396 +0200
@@ -21,7 +21,9 @@
static int check_port(char * port)
{
- long long ret = strtol(port,NULL,10);
+ long long ret = 0;
+ errno = 0;
+ ret = strtol(port,NULL,10);
if ((ret<0) || (ret>32767)) return -1;
if (errno) {
printf("port error\n");

View File

@ -1,11 +0,0 @@
--- afpfs-ng-0.8.1/lib/lowlevel.c 2011-10-01 20:36:55.000000000 +0200
+++ afpfs-ng-0.8.1/lib/lowlevel.c 2011-10-01 20:46:00.000000000 +0200
@@ -579,7 +579,7 @@
return -EIO;
}
- if (volume->server->using_version->av_number>=30)
+ if (volume->server->using_version->av_number>=30 && fp.unixprivs.permissions != 0)
stbuf->st_mode |= fp.unixprivs.permissions;
else
set_nonunix_perms(&stbuf->st_mode,&fp);

View File

@ -1,83 +0,0 @@
diff -uPr afpfs-ng-0.8.1/include/afpfs-ng/afp.h afpfs-ng-0.8.1/include/afpfs-ng/afp.h
--- afpfs-ng-0.8.1/include/afpfs-ng/afp.h 2012-10-30 22:30:29.000000000 +0100
+++ afpfs-ng-0.8.1/include/afpfs-ng/afp.h 2012-10-30 22:26:15.000000000 +0100
@@ -71,7 +71,7 @@
struct afp_file_info * largelist_next;
unsigned char isdir;
unsigned long long size;
- unsigned short resourcesize;
+ unsigned long long resourcesize;
unsigned int resource;
unsigned short forkid;
struct afp_icon * icon;
--- afpfs-ng-0.8.1/lib/loop.c 2012-10-30 22:48:19.000000000 +0100
+++ afpfs-ng-0.8.1/lib/loop.c 2012-10-30 22:48:47.000000000 +0100
@@ -87,12 +87,13 @@
static int ending=0;
void * just_end_it_now(void * ignore)
{
- if (ending) return;
+ if (ending) return NULL;
ending=1;
if (libafpclient->forced_ending_hook)
libafpclient->forced_ending_hook();
exit_program=2;
signal_main_thread();
+ return NULL;
}
/*This is a hack to handle a problem where the first pthread_kill doesnt' work*/
diff -uPr afpfs-ng-0.8.1/lib/dsi.c afpfs-ng-0.8.1/lib/dsi.c
--- afpfs-ng-0.8.1/lib/dsi.c 2012-10-30 22:30:29.000000000 +0100
+++ afpfs-ng-0.8.1/lib/dsi.c 2012-10-30 22:11:09.000000000 +0100
@@ -478,7 +478,7 @@
}
server->flags=ntohs(reply1->flags);
- p=(void *)((unsigned int) server->incoming_buffer + sizeof(*reply1));
+ p=(void *)((unsigned long) server->incoming_buffer + sizeof(*reply1));
p+=copy_from_pascal(server->server_name,p,AFP_SERVER_NAME_LEN)+1;
/* Now work our way through the variable bits */
@@ -762,7 +762,7 @@
printf("<<< read() of rest of AFP, %d bytes\n",amount_to_read);
#endif
ret = read(server->fd, (void *)
- (((unsigned int) server->incoming_buffer)+server->data_read),
+ (((unsigned long) server->incoming_buffer)+server->data_read),
amount_to_read);
if (ret<0) return -1;
if (ret==0) {
diff -uPr afpfs-ng-0.8.1/lib/lowlevel.c afpfs-ng-0.8.1/lib/lowlevel.c
--- afpfs-ng-0.8.1/lib/lowlevel.c 2012-10-30 22:30:29.000000000 +0100
+++ afpfs-ng-0.8.1/lib/lowlevel.c 2012-10-30 22:29:57.000000000 +0100
@@ -582,7 +582,7 @@
if (volume->server->using_version->av_number>=30 && fp.unixprivs.permissions != 0)
stbuf->st_mode |= fp.unixprivs.permissions;
else
- set_nonunix_perms(&stbuf->st_mode,&fp);
+ set_nonunix_perms((mode_t *)&stbuf->st_mode,&fp);
stbuf->st_uid=fp.unixprivs.uid;
stbuf->st_gid=fp.unixprivs.gid;
diff -uPr afpfs-ng-0.8.1/lib/proto_directory.c afpfs-ng-0.8.1/lib/proto_directory.c
--- afpfs-ng-0.8.1/lib/proto_directory.c 2012-10-30 22:30:29.000000000 +0100
+++ afpfs-ng-0.8.1/lib/proto_directory.c 2012-10-30 22:15:28.000000000 +0100
@@ -259,7 +259,7 @@
uint16_t reqcount;
} __attribute__((__packed__)) * reply = (void *) buf;
- struct {
+ struct sEntry{
uint16_t size;
uint8_t isdir;
uint8_t pad;
@@ -293,7 +293,7 @@
filecur=new_file;
}
- entry = p;
+ entry = (struct sEntry *)p;
parse_reply_block(server,p+sizeof(*entry),
ntohs(entry->size),entry->isdir,

View File

@ -5,3 +5,6 @@
# Format: <ipaddress> <hostname1> <hostname2>
# Example: 192.168.0.3 openelec openelec.mynetwork
# NOTE: do not edit /etc/hosts directly
# edit /storage/.config/hosts.conf then reboot

View File

@ -11,6 +11,7 @@ BusName=net.connman
Restart=on-failure
EnvironmentFile=-/run/openelec/debug/connman.conf
ExecStartPre=-/bin/sh -c "cat /storage/.cache/hostname > /proc/sys/kernel/hostname"
ExecStartPre=-/bin/sh -c "cat /storage/.config/hosts.conf > /etc/hosts"
ExecStartPre=/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 up
ExecStart=/bin/sh -c ". /usr/lib/connman/connman-setup; exec /usr/sbin/connmand -nr $CONNMAN_MAIN $CONNMAN_DEBUG"
# send SIGKILL on stop to keep ip configuration

View File

@ -16,5 +16,6 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
d /var/cache 0755 root root - -
d /run/connman 0755 root root - -
d /storage/.cache/connman 0755 root root - -

View File

@ -8,7 +8,7 @@ group: files
shadow: files
gshadow: files
hosts: files mdns_minimal [NOTFOUND=return] dns mdns
hosts: files mdns_minimal [NOTFOUND=return] dns
networks: files dns
protocols: files

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