mirror of
https://github.com/libretro/Lakka.git
synced 2025-03-01 12:15:41 +00:00
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:
commit
0180a321b9
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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 |
@ -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
|
||||
}
|
@ -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
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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/>.
|
||||
################################################################################
|
@ -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
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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
|
@ -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
|
@ -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
|
||||
}
|
@ -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"
|
||||
}
|
@ -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
|
||||
|
@ -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"
|
||||
|
16
packages/audio/flac/patches/flac-1.3.1-debug.patch
Normal file
16
packages/audio/flac/patches/flac-1.3.1-debug.patch
Normal 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
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3080800"
|
||||
PKG_VERSION="autoconf-3080801"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
|
@ -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"
|
||||
|
@ -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
|
@ -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
|
||||
}
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="2f9828c"
|
||||
PKG_VERSION="4a66b50"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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 \
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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. */
|
@ -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.
|
||||
*/
|
@ -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:
|
18
packages/linux/patches/3.18.5/linux-227-ds3000-invalid-symbol-rate.patch
vendored
Normal file
18
packages/linux/patches/3.18.5/linux-227-ds3000-invalid-symbol-rate.patch
vendored
Normal 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;
|
43
packages/linux/patches/3.18.5/linux-999.04-revert-xhci-Set-scatter-gather-limit.patch
vendored
Normal file
43
packages/linux/patches/3.18.5/linux-999.04-revert-xhci-Set-scatter-gather-limit.patch
vendored
Normal 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
|
||||
|
21
packages/linux/patches/3.18.5/linux-999.06-radeon-upstream-fixes.patch
vendored
Normal file
21
packages/linux/patches/3.18.5/linux-999.06-radeon-upstream-fixes.patch
vendored
Normal 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);
|
@ -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."
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-audioencoder-flac"
|
||||
PKG_VERSION="a960eba"
|
||||
PKG_VERSION="62c2cc8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-audioencoder-lame"
|
||||
PKG_VERSION="6f8384f"
|
||||
PKG_VERSION="3eb59de"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-audioencoder-vorbis"
|
||||
PKG_VERSION="fa0de15"
|
||||
PKG_VERSION="dbf5c62"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-pvr-addons"
|
||||
PKG_VERSION="78397af"
|
||||
PKG_VERSION="a0a437e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -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"
|
||||
|
@ -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 \
|
||||
|
@ -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
@ -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"
|
||||
|
@ -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
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-vnsiserver"
|
||||
PKG_VERSION="a48edf1"
|
||||
PKG_VERSION="b887bc8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -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
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -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] )
|
||||
;;
|
@ -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;
|
@ -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);
|
@ -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
|
@ -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);
|
||||
}
|
@ -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;
|
||||
+}
|
@ -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
|
||||
|
@ -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");
|
@ -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);
|
@ -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,
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 - -
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user