mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
254 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cceb400a22 | ||
|
|
0c2f5bfb0f | ||
|
|
ce3d8cf49c | ||
|
|
3d11fd01ca | ||
|
|
81725aa348 | ||
|
|
5928cb17fa | ||
|
|
17c238df36 | ||
|
|
f5d4592c71 | ||
|
|
d3b8a3ace1 | ||
|
|
c0662f2e80 | ||
|
|
cb75b105cf | ||
|
|
c7c4c7fb1e | ||
|
|
84f350e3ff | ||
|
|
db6bd00787 | ||
|
|
7cc94b7a45 | ||
|
|
65b15527f1 | ||
|
|
08a9141adb | ||
|
|
8523bebf19 | ||
|
|
475ef3bad8 | ||
|
|
9541172f6f | ||
|
|
146bacc838 | ||
|
|
14505f331c | ||
|
|
589317a042 | ||
|
|
8e300dbb5b | ||
|
|
677d887cc6 | ||
|
|
eee70e8d6b | ||
|
|
d30bf7cf15 | ||
|
|
45e9c4c68d | ||
|
|
727ed810df | ||
|
|
43e3e62552 | ||
|
|
c860c46d79 | ||
|
|
09975f85b6 | ||
|
|
94ecd0c100 | ||
|
|
f143d1c9f0 | ||
|
|
64acb5c518 | ||
|
|
d249255ad7 | ||
|
|
250140a453 | ||
|
|
9d1142b5f4 | ||
|
|
5f7ecef1a8 | ||
|
|
10a557abf4 | ||
|
|
85e7242a75 | ||
|
|
548258720e | ||
|
|
50bcbfdeaf | ||
|
|
a90b73e3b6 | ||
|
|
acd373aef5 | ||
|
|
4e525277f4 | ||
|
|
53d0387f81 | ||
|
|
884c7184f4 | ||
|
|
8ec580f2b3 | ||
|
|
b29b10363b | ||
|
|
4824613ce6 | ||
|
|
8905895d8f | ||
|
|
d6744daa2d | ||
|
|
ce98d04bfa | ||
|
|
adb243edf0 | ||
|
|
569c18ce99 | ||
|
|
a635041d5a | ||
|
|
ef155fe0d1 | ||
|
|
86fb28b421 | ||
|
|
fed06b5eb2 | ||
|
|
407b7b17fa | ||
|
|
b78f72aa09 | ||
|
|
df5e16f390 | ||
|
|
d14c4f6117 | ||
|
|
d0bf899329 | ||
|
|
68b78dc3f9 | ||
|
|
c4f9368f58 | ||
|
|
0ac437909e | ||
|
|
be36a89c51 | ||
|
|
ff5df0a3d7 | ||
|
|
4e88a87ffc | ||
|
|
c0295522db | ||
|
|
c3080f4187 | ||
|
|
f439871479 | ||
|
|
f5f78c9f38 | ||
|
|
bd823d3e5c | ||
|
|
26717549e2 | ||
|
|
e58326db99 | ||
|
|
e6f2dea636 | ||
|
|
4cc734d0a3 | ||
|
|
80b35589fa | ||
|
|
e377852a3e | ||
|
|
3ea0d883d3 | ||
|
|
d5ed603e20 | ||
|
|
b44e14c34b | ||
|
|
db4e1e629d | ||
|
|
682039e1f0 | ||
|
|
b0ddde0463 | ||
|
|
57b084560d | ||
|
|
90375d89e4 | ||
|
|
1f2b668d48 | ||
|
|
14c4113e9e | ||
|
|
5c60b12739 | ||
|
|
12073d0bc1 | ||
|
|
ce4abb247a | ||
|
|
aa46b8159e | ||
|
|
a47e69cd5c | ||
|
|
320762e06d | ||
|
|
85dee53e91 | ||
|
|
41a616e906 | ||
|
|
83ca4c02da | ||
|
|
7c47121777 | ||
|
|
fe939566b8 | ||
|
|
f9d475464a | ||
|
|
5f2bb33511 | ||
|
|
c1fb05d4fa | ||
|
|
f632d7c7bd | ||
|
|
71a8541bb4 | ||
|
|
9430ad0172 | ||
|
|
2f590e018d | ||
|
|
c738195b34 | ||
|
|
6c0f8ae280 | ||
|
|
99b8c84e6c | ||
|
|
94e3fd5298 | ||
|
|
ea8ab3ac3a | ||
|
|
4a0531a6a6 | ||
|
|
ae8f7703e9 | ||
|
|
1289d81d5d | ||
|
|
fe040604e4 | ||
|
|
47394d3a64 | ||
|
|
59daaddd04 | ||
|
|
9b7c164b32 | ||
|
|
6857c82f7b | ||
|
|
319b02f643 | ||
|
|
9506cf652f | ||
|
|
d1781f4f58 | ||
|
|
5d11e65dd6 | ||
|
|
c023881f58 | ||
|
|
b2cd28a922 | ||
|
|
a61ad190a1 | ||
|
|
7a64ea21b3 | ||
|
|
7e0714feb7 | ||
|
|
347828fd9e | ||
|
|
a08694a23d | ||
|
|
9ba19fcb42 | ||
|
|
822087da02 | ||
|
|
c33a560544 | ||
|
|
4173481b4b | ||
|
|
d90305e027 | ||
|
|
a5b35e1b44 | ||
|
|
5668f98de0 | ||
|
|
5168f2ac8a | ||
|
|
ffbcb3c694 | ||
|
|
a9f0bce9b1 | ||
|
|
773aac378d | ||
|
|
2bdf638ff5 | ||
|
|
33b84bd170 | ||
|
|
cb1d8a0756 | ||
|
|
91ba059f9a | ||
|
|
06e0649cfc | ||
|
|
714238a163 | ||
|
|
659c700521 | ||
|
|
3e4208803c | ||
|
|
fb440c9f21 | ||
|
|
cb8d0e462b | ||
|
|
e1e26f9fce | ||
|
|
2885409990 | ||
|
|
d815596348 | ||
|
|
4efcece54f | ||
|
|
c5b59eef8a | ||
|
|
ca8f7f091c | ||
|
|
640dfe0681 | ||
|
|
85d6137cfc | ||
|
|
eb4cdd8186 | ||
|
|
de4f502026 | ||
|
|
b512b5573b | ||
|
|
20ffbfd1b2 | ||
|
|
72b616100b | ||
|
|
3f4e9b5fce | ||
|
|
f98660e205 | ||
|
|
4a56c2736f | ||
|
|
9d86a27683 | ||
|
|
42ccebcf9e | ||
|
|
ce937bb74a | ||
|
|
eb769979c6 | ||
|
|
978d37579c | ||
|
|
e5bcaaac64 | ||
|
|
495f863856 | ||
|
|
114bf18b4e | ||
|
|
8618bcbb54 | ||
|
|
6ef5db468b | ||
|
|
7b85e70ebe | ||
|
|
3a0b20ba80 | ||
|
|
cd14999372 | ||
|
|
7565ff5062 | ||
|
|
faee944ee5 | ||
|
|
eb91434183 | ||
|
|
e81d1f19ec | ||
|
|
f5938435b8 | ||
|
|
b0a403e5f7 | ||
|
|
b98bf418ee | ||
|
|
766af101fb | ||
|
|
608114cbb6 | ||
|
|
c7c9516d97 | ||
|
|
a148475238 | ||
|
|
c8b18b7881 | ||
|
|
8d35215acf | ||
|
|
4a35f9437e | ||
|
|
9dce4aa43e | ||
|
|
a0f4a8c307 | ||
|
|
7b3555a441 | ||
|
|
64cd573bb5 | ||
|
|
5f4824528a | ||
|
|
ec93b6cecd | ||
|
|
5f12644d7e | ||
|
|
9dd4e7ee50 | ||
|
|
050d9f2297 | ||
|
|
41d8e6f875 | ||
|
|
7aa14b5668 | ||
|
|
4fdd94aaa4 | ||
|
|
aab854c087 | ||
|
|
a3fe66c5e0 | ||
|
|
d5bd70db70 | ||
|
|
6bd655000b | ||
|
|
f6ba39741d | ||
|
|
46f9fa6da9 | ||
|
|
573cb65e9a | ||
|
|
1be50aa391 | ||
|
|
ff016e0934 | ||
|
|
8819fa2d54 | ||
|
|
ac64672839 | ||
|
|
0b2510166c | ||
|
|
bcc0ef6506 | ||
|
|
aae9acfe7c | ||
|
|
92823333c1 | ||
|
|
eeb6f012fb | ||
|
|
833ca5bea1 | ||
|
|
fd8fa2ee21 | ||
|
|
fedada20bd | ||
|
|
0932197e5e | ||
|
|
1eccdf9b3f | ||
|
|
5296184c9a | ||
|
|
2ba6ca234c | ||
|
|
636fe081e1 | ||
|
|
9a4edb226e | ||
|
|
39ce790146 | ||
|
|
7e9cd4a7a3 | ||
|
|
e83bdae340 | ||
|
|
22157a49b4 | ||
|
|
a17f5a13f1 | ||
|
|
b98b326ea3 | ||
|
|
7d7d40d4d8 | ||
|
|
1b5a1ab8ea | ||
|
|
6fa73db650 | ||
|
|
879921fb89 | ||
|
|
ab419fcc3b | ||
|
|
cc663e6bda | ||
|
|
a9bb981b86 | ||
|
|
6d487a521c | ||
|
|
4fd9d79002 | ||
|
|
7d1caea56b | ||
|
|
cd5f42c2ef | ||
|
|
4c41dd5830 | ||
|
|
d224757a50 |
10
README.md
10
README.md
@@ -2,8 +2,8 @@
|
||||
|
||||
# OpenELEC - Open Embedded Linux Entertainment Center
|
||||
|
||||
OpenELEC runs [XBMC](http://xbmc.org), an award-winning free and open source (GPL) software media
|
||||
player and entertainment hub for digital media. For more info see http://xbmc.org .
|
||||
OpenELEC runs [Kodi](http://kodi.tv), an award-winning free and open source (GPL) software media
|
||||
player and entertainment hub for digital media. For more info see http://kodi.tv .
|
||||
The base system has been designed and built from the ground up to be as
|
||||
efficient as possible – consuming only tiny disk and memory footprints and
|
||||
providing cutting edge hardware support to deliver a set-top box experience.
|
||||
@@ -48,12 +48,12 @@ providing cutting edge hardware support to deliver a set-top box experience.
|
||||
* Minimal hardware requirements
|
||||
* Ultra fast boot
|
||||
* Optimized builds for platforms such as ION, Intel, Fusion
|
||||
* Simple configuration via XBMC itself
|
||||
* Simple configuration via Kodi itself
|
||||
* Plug and Play external storage
|
||||
|
||||
**Software**
|
||||
|
||||
* XBMC HTPC software – View/Manage all your media.
|
||||
* Kodi HTPC software – View/Manage all your media.
|
||||
* Samba server – File transfer from any PC client
|
||||
* SSH server – Remote console access for debugging
|
||||
* IR/Bluetooth Remote Control
|
||||
@@ -74,7 +74,7 @@ providing cutting edge hardware support to deliver a set-top box experience.
|
||||
next reboot.
|
||||
* Automatic mounting of filesystems is supported. Devices such as USB Flash
|
||||
sticks can be plugged into a running machine and will be mounted to /media,
|
||||
showing up in xbmc’s GUI.
|
||||
showing up in Kodi’s GUI.
|
||||
* Comments and questions are more than welcome, help is even better and patches
|
||||
are absolutely perfect!!
|
||||
|
||||
|
||||
@@ -32,12 +32,9 @@
|
||||
SIMD_SUPPORT="no"
|
||||
;;
|
||||
cortex-a7|cortex-a15)
|
||||
TARGET_SUBARCH=armv7-a
|
||||
TARGET_SUBARCH=armv7ve
|
||||
TARGET_ABI=eabi
|
||||
# It's not currently possible to specify the exact architecture variant (-mcpu)
|
||||
# that A7/A15 supports in the command line so use -mtune here.
|
||||
# see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57907
|
||||
TARGET_EXTRA_FLAGS="-mtune=$TARGET_CPU"
|
||||
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU"
|
||||
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
|
||||
SIMD_SUPPORT="yes"
|
||||
;;
|
||||
|
||||
@@ -414,7 +414,6 @@ fi
|
||||
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"
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
{
|
||||
"name": "@DISTRONAME@",
|
||||
"name": "@DISTRONAME@_@PROJECT@",
|
||||
"version": "@OPENELEC_VERSION@",
|
||||
"release_date": "@RELEASE_DATE@",
|
||||
"kernel": "@KERNEL_VERSION@",
|
||||
"description": "@DESCRIPTION@"
|
||||
"description": "@DESCRIPTION@",
|
||||
"username": "root",
|
||||
"password": "@ROOT_PASSWORD@",
|
||||
"supported_hex_revisions": "@NOOBS_HEX@"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"partitions": [
|
||||
{
|
||||
"label": "System",
|
||||
"label": "@DISTRONAME@_@PROJECT@_System",
|
||||
"filesystem_type": "FAT",
|
||||
"partition_size_nominal": 160,
|
||||
"want_maximised": false,
|
||||
@@ -9,7 +9,7 @@
|
||||
"mkfs_options": ""
|
||||
},
|
||||
{
|
||||
"label": "Storage",
|
||||
"label": "@DISTRONAME@_@PROJECT@_Storage",
|
||||
"filesystem_type": "ext4",
|
||||
"partition_size_nominal": 864,
|
||||
"want_maximised": true,
|
||||
|
||||
@@ -20,6 +20,10 @@ HOST_NAME=`$LOCAL_CC -dumpmachine`
|
||||
TARGET_NAME=$(echo $TARGET_SUBARCH | sed -e "s,-,,")-openelec-linux-gnu${TARGET_ABI}
|
||||
|
||||
BUILD=$BUILD_BASE.$DISTRONAME-$PROJECT.$TARGET_ARCH-$OPENELEC_VERSION
|
||||
if [ -n "$BUILD_SUFFIX" ]; then
|
||||
BUILD=$BUILD-$BUILD_SUFFIX
|
||||
fi
|
||||
|
||||
TARGET_IMG=$ROOT/$TARGET
|
||||
TARGET_ADDONS="$TARGET_IMG/$ADDONS/$ADDON_PATH"
|
||||
ADDON_BUILD="$BUILD/$ADDONS/$1"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="4.97.3"
|
||||
OPENELEC_VERSION="5.0.4"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="5.0"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
@@ -113,9 +113,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"
|
||||
|
||||
|
||||
2
packages/3rdparty/lib/cxxtools/package.mk
vendored
2
packages/3rdparty/lib/cxxtools/package.mk
vendored
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="cxxtools"
|
||||
PKG_VERSION="2.2"
|
||||
PKG_VERSION="2.2.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL-2"
|
||||
|
||||
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
@@ -19,8 +19,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="repository.unofficial.addon.pro"
|
||||
PKG_VERSION="4.3.3"
|
||||
PKG_REV="0"
|
||||
PKG_VERSION="4.3"
|
||||
PKG_REV="4"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://unofficial.addon.pro"
|
||||
@@ -43,6 +43,7 @@ make_target() {
|
||||
-e "s|@PROJECT@|$PROJECT|g" \
|
||||
-e "s|@ARCH@|$TARGET_ARCH|g" \
|
||||
-e "s|@PKG_VERSION@|$PKG_VERSION|g" \
|
||||
-e "s|@PKG_REV@|$PKG_REV|g"\
|
||||
-i addon.xml
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="repository.unofficial.addon.pro"
|
||||
name="Unofficial [COLOR FF757677]Open[/COLOR][COLOR FF8ABEE2]ELEC[/COLOR] (@PROJECT@/@ARCH@) Add-ons"
|
||||
version="@PKG_VERSION@"
|
||||
version="@PKG_VERSION@.@PKG_REV@"
|
||||
provider-name="unofficial.addon.pro">
|
||||
<extension point="xbmc.addon.repository"
|
||||
name="Unofficial OpenELEC.tv Add-on Repository">
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
4.3.5
|
||||
- added boblight-aml
|
||||
|
||||
4.3.4
|
||||
- update to kodi
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="boblightd"
|
||||
PKG_VERSION="478"
|
||||
PKG_REV="4"
|
||||
PKG_REV="5"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://code.google.com/p/boblight"
|
||||
@@ -63,6 +63,7 @@ addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $PKG_BUILD/.$TARGET_NAME/src/boblightd $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $PKG_BUILD/.$TARGET_NAME/src/boblight-constant $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $PKG_BUILD/.$TARGET_NAME/src/boblight-aml $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
if [ "$DISPLAYSERVER" = "x11" ] ; then
|
||||
cp -P $PKG_BUILD/.$TARGET_NAME/src/boblight-X11 $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,632 @@
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 9ba5381..c5a4dc6 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -7,6 +7,7 @@ AM_CFLAGS =\
|
||||
-g
|
||||
|
||||
bin_PROGRAMS = boblightd \
|
||||
+ boblight-aml \
|
||||
boblight-constant
|
||||
|
||||
|
||||
@@ -19,6 +20,11 @@ endif
|
||||
|
||||
endif
|
||||
|
||||
+boblight_aml_SOURCES = clients/boblight-aml/boblight-aml.cpp
|
||||
+boblight_aml_SOURCES += clients/boblight-aml/flagmanager-aml.cpp
|
||||
+boblight_aml_SOURCES += clients/flagmanager.cpp
|
||||
+boblight_aml_SOURCES += util/misc.cpp
|
||||
+
|
||||
boblight_v4l_SOURCES = \
|
||||
clients/boblight-v4l/boblight-v4l.cpp \
|
||||
clients/boblight-v4l/flagmanager-v4l.cpp \
|
||||
diff -urPp src/clients/boblight-aml.cpp src/clients/boblight-aml/boblight-aml.cpp
|
||||
--- /dev/null Thu Jan 1 00:00:00 1970
|
||||
+++ b/src/clients/boblight-aml/boblight-aml.cpp Thu Jan 15 10:24:16 2015
|
||||
@@ -0,0 +1,491 @@
|
||||
+/*
|
||||
+ * boblight
|
||||
+ * Copyright (C) Bob 2009
|
||||
+ *
|
||||
+ * boblight 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 3 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * boblight is distributed in the hope that it will be useful, but
|
||||
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
+ * See the GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License along
|
||||
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+ */
|
||||
+
|
||||
+#define BOBLIGHT_DLOPEN
|
||||
+#include "lib/boblight.h"
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
+#include <unistd.h>
|
||||
+#include <signal.h>
|
||||
+#include <algorithm>
|
||||
+
|
||||
+#include <fcntl.h>
|
||||
+#include <errno.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <sys/poll.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/time.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+
|
||||
+#include "config.h"
|
||||
+#include "util/misc.h"
|
||||
+#include "util/timeutils.h"
|
||||
+#include "flagmanager-aml.h"
|
||||
+
|
||||
+using namespace std;
|
||||
+
|
||||
+//from linux/amlogic/amports/amvideocap.h
|
||||
+#define AMVIDEOCAP_IOC_MAGIC 'V'
|
||||
+#define AMVIDEOCAP_IOW_SET_WANTFRAME_WIDTH _IOW(AMVIDEOCAP_IOC_MAGIC, 0x02, int)
|
||||
+#define AMVIDEOCAP_IOW_SET_WANTFRAME_HEIGHT _IOW(AMVIDEOCAP_IOC_MAGIC, 0x03, int)
|
||||
+
|
||||
+
|
||||
+// helper class - tries to load the "movie" settings from the script.xbmc.boblight addon
|
||||
+// and pass them to the boblight-aml client
|
||||
+class CBoblightAddonSettings
|
||||
+{
|
||||
+ public:
|
||||
+ CBoblightAddonSettings() : m_bobdisable(false), m_settingsLoaded(false)
|
||||
+ {
|
||||
+ m_settingsLoaded = loadBoblightAddonSettings();
|
||||
+ }
|
||||
+
|
||||
+ std::string getBoblightClientCmdLine()
|
||||
+ {
|
||||
+ std::string cmdLine = "";
|
||||
+ //convert bool string to lowercase
|
||||
+ transform(m_interpolation.begin(), m_interpolation.end(), m_interpolation.begin(), ::tolower);
|
||||
+
|
||||
+ cmdLine += "-s " + m_ip + ":" + m_port;
|
||||
+ cmdLine += " -o autospeed=" + m_autospeed;
|
||||
+ cmdLine += " -o interpolation=" + m_interpolation;
|
||||
+ cmdLine += " -o saturation=" + m_saturation;
|
||||
+ cmdLine += " -o speed=" + m_speed;
|
||||
+ cmdLine += " -o threshold=" + m_threshold;
|
||||
+ cmdLine += " -o value=" + m_value;
|
||||
+ return cmdLine;
|
||||
+ }
|
||||
+
|
||||
+ bool m_bobdisable;
|
||||
+ bool m_settingsLoaded;
|
||||
+ std::string m_ip;
|
||||
+ std::string m_port;
|
||||
+ std::string m_autospeed;
|
||||
+ std::string m_interpolation;
|
||||
+ std::string m_saturation;
|
||||
+ std::string m_speed;
|
||||
+ std::string m_threshold;
|
||||
+ std::string m_value;
|
||||
+
|
||||
+ private:
|
||||
+ #define SETTINGS_ATTR_BOBDISABLE "bobdisable"
|
||||
+ #define SETTINGS_ATTR_IP "hostip"
|
||||
+ #define SETTINGS_ATTR_PORT "hostport"
|
||||
+ #define SETTINGS_ATTR_AUTOSPEED "movie_autospeed"
|
||||
+ #define SETTINGS_ATTR_INTERPOLATION "movie_interpolation"
|
||||
+ #define SETTINGS_ATTR_SATURATION "movie_saturation"
|
||||
+ #define SETTINGS_ATTR_SPEED "movie_speed"
|
||||
+ #define SETTINGS_ATTR_THRESHOLD "movie_threshold"
|
||||
+ #define SETTINGS_ATTR_VALUE "movie_value"
|
||||
+ #define KODI_HOME_ENV_VAR "HOME"
|
||||
+
|
||||
+ bool loadBoblightAddonSettings()
|
||||
+ {
|
||||
+ bool ret = false;
|
||||
+ char *kodiHome = getenv(KODI_HOME_ENV_VAR);
|
||||
+ //fallback to custom settings file in case boblight addon is not installed
|
||||
+ std::string settingsFile = "/storage/boblight-aml.xml";
|
||||
+
|
||||
+ if (kodiHome != NULL)
|
||||
+ {
|
||||
+ settingsFile = std::string(kodiHome) + "/.kodi/userdata/addon_data/script.xbmc.boblight/settings.xml";
|
||||
+ }
|
||||
+
|
||||
+ FILE *fd = fopen(settingsFile.c_str(), "r");
|
||||
+
|
||||
+ if (fd != NULL)
|
||||
+ {
|
||||
+ fseek(fd, 0, SEEK_END);
|
||||
+ size_t fileSize = ftell(fd);
|
||||
+ fseek(fd, 0, SEEK_SET);
|
||||
+ if (fileSize > 0)
|
||||
+ {
|
||||
+ if (fileSize > 32000)//read 16k max - there shouldn't be a bigger settings.xml from boblight [tm]
|
||||
+ fileSize = 32000;
|
||||
+ char *xmlBuffer = new char[fileSize];
|
||||
+ size_t readCount = fread(xmlBuffer, fileSize, 1, fd);
|
||||
+ fclose(fd);
|
||||
+
|
||||
+ if (readCount == 1)
|
||||
+ {
|
||||
+ parseBoblightSettings(std::string(xmlBuffer));
|
||||
+ ret = true;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stderr, "Failed reading boblight addon settings.xml");
|
||||
+ }
|
||||
+ delete[] xmlBuffer;
|
||||
+ }
|
||||
+ }
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ void parseBoblightSettings(std::string xmlBuffer)
|
||||
+ {
|
||||
+ std::string settings_bobdisable_str;
|
||||
+ settings_bobdisable_str = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_BOBDISABLE);
|
||||
+ if (settings_bobdisable_str == "true" || settings_bobdisable_str == "True")
|
||||
+ m_bobdisable = true;
|
||||
+
|
||||
+ m_ip = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_IP);
|
||||
+ m_port = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_PORT);
|
||||
+ m_autospeed = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_AUTOSPEED);
|
||||
+ m_interpolation = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_INTERPOLATION);
|
||||
+ m_saturation = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_SATURATION);
|
||||
+ m_speed = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_SPEED);
|
||||
+ m_threshold = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_THRESHOLD);
|
||||
+ m_value = getValueFromXmlBuffer(xmlBuffer, SETTINGS_ATTR_VALUE);
|
||||
+ }
|
||||
+
|
||||
+ std::string getValueFromXmlBuffer(const std::string &xmlBuffer, const char* xmlAttribute)
|
||||
+ {
|
||||
+ size_t strPos = 0;
|
||||
+ std::string valueStr;
|
||||
+
|
||||
+ // each line in the xml looks like this:
|
||||
+ // <setting id="movie_value" value="1.000006" />
|
||||
+ // find the attribute
|
||||
+ if ((strPos = xmlBuffer.find(xmlAttribute)) != std::string::npos)
|
||||
+ {
|
||||
+ size_t strPos2 = 0;
|
||||
+ // from movie_value" value="1.000006" /> look for "value"
|
||||
+ if ((strPos2 = xmlBuffer.find("value", strPos)) != std::string::npos)
|
||||
+ {
|
||||
+ size_t strPos3 = 0;
|
||||
+ // from value="1.000006" /> look for "="
|
||||
+ if ((strPos3 = xmlBuffer.find("=", strPos2)) != std::string::npos)
|
||||
+ {
|
||||
+ //extract the value - strPos3 points to ="1.000006"
|
||||
+ int valueOffset = 1; //skip the "="
|
||||
+ if (xmlBuffer[strPos3 + valueOffset] == '"')
|
||||
+ valueOffset++;//skip " if needed
|
||||
+ int strLen = 0;
|
||||
+ do
|
||||
+ {
|
||||
+ // value stops with " or space
|
||||
+ if (xmlBuffer[strPos3 + valueOffset + strLen] == '"' ||
|
||||
+ xmlBuffer[strPos3 + valueOffset + strLen] == ' ')
|
||||
+ break;
|
||||
+ strLen++;
|
||||
+ } while (strLen < 20);// no insane xml garbage ...
|
||||
+
|
||||
+ valueStr = xmlBuffer.substr(strPos3 + valueOffset, strLen);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return valueStr;
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+struct aml_snapshot_t {
|
||||
+ unsigned int dst_width;
|
||||
+ unsigned int dst_height;
|
||||
+ unsigned int dst_stride;
|
||||
+ unsigned int dst_size;
|
||||
+ void *dst_vaddr;
|
||||
+};
|
||||
+
|
||||
+volatile bool g_stop = false;
|
||||
+CFlagManagerAML g_flagmanager;
|
||||
+/*********************************************************
|
||||
+ *********************************************************/
|
||||
+static void SignalHandler(int signum)
|
||||
+{
|
||||
+ if (signum == SIGTERM)
|
||||
+ {
|
||||
+ fprintf(stderr, "caught SIGTERM\n");
|
||||
+ g_stop = true;
|
||||
+ }
|
||||
+ else if (signum == SIGINT)
|
||||
+ {
|
||||
+ fprintf(stderr, "caught SIGTERM\n");
|
||||
+ g_stop = true;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+#define VIDEO_PATH "/dev/amvideo"
|
||||
+#define AMSTREAM_IOC_MAGIC 'S'
|
||||
+#define AMSTREAM_IOC_GET_VIDEO_DISABLE _IOR(AMSTREAM_IOC_MAGIC, 0x48, unsigned long)
|
||||
+static int amvideo_utils_video_playing()
|
||||
+{
|
||||
+ int video_fd;
|
||||
+ int video_disable;
|
||||
+
|
||||
+ video_fd = open(VIDEO_PATH, O_RDWR);
|
||||
+ if (video_fd < 0) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ ioctl(video_fd, AMSTREAM_IOC_GET_VIDEO_DISABLE, &video_disable);
|
||||
+ if (video_disable)
|
||||
+ {
|
||||
+ close(video_fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ close(video_fd);
|
||||
+
|
||||
+// fprintf(stderr, "pos x %d y %d w %d h %d\n",snapshot.src_x, snapshot.src_y,snapshot.src_width,snapshot.src_height);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int capture_frame(int fd, aml_snapshot_t &snapshot)
|
||||
+{
|
||||
+ int ret = 0;
|
||||
+
|
||||
+ ssize_t readResult = pread(fd, snapshot.dst_vaddr, snapshot.dst_size, 0);
|
||||
+
|
||||
+ if (readResult < snapshot.dst_size)
|
||||
+ {
|
||||
+ fprintf(stderr, "frame read returned %d\n", readResult);
|
||||
+ }
|
||||
+ //fprintf(stderr, "requ: %d read %d \n", snapshot.dst_size, readResult);
|
||||
+ fprintf(stderr, ".");
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int configure_capture(int fd, aml_snapshot_t &snapshot)
|
||||
+{
|
||||
+ int ret = 0;
|
||||
+ int ioctlret = 0;
|
||||
+
|
||||
+ if ((ioctlret = ioctl(fd, AMVIDEOCAP_IOW_SET_WANTFRAME_WIDTH, snapshot.dst_width)) != 0)
|
||||
+ {
|
||||
+ ret = 2;
|
||||
+ fprintf(stderr, "Error setting frame width (ret: %d errno: %d)\n", ioctlret, errno);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ if ((ioctlret = ioctl(fd, AMVIDEOCAP_IOW_SET_WANTFRAME_HEIGHT, snapshot.dst_height)) != 0)
|
||||
+ {
|
||||
+ ret = 3;
|
||||
+ fprintf(stderr, "Error setting frame height (ret: %d errno: %d)\n", ioctlret, errno);
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static void frameToboblight(void *boblight, uint8_t* outputptr, int w, int h, int stride)
|
||||
+{
|
||||
+ if (!boblight)
|
||||
+ {
|
||||
+ fprintf(stderr, "no boblight\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ if (!outputptr)
|
||||
+ {
|
||||
+ fprintf(stderr, "no outputptr\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ //read out pixels and hand them to libboblight
|
||||
+ uint8_t* buffptr;
|
||||
+ for (int y = h; y > 0; y--) {
|
||||
+ buffptr = outputptr + stride * y;
|
||||
+ for (int x = 0; x < w; x++) {
|
||||
+ int rgb[3];
|
||||
+ rgb[2] = *(buffptr++);
|
||||
+ rgb[1] = *(buffptr++);
|
||||
+ rgb[0] = *(buffptr++);
|
||||
+
|
||||
+ //fprintf(stdout, "frameToboblight: x(%d), y(%d)\n", x, y);
|
||||
+
|
||||
+ boblight_addpixelxy(boblight, x, y, rgb);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int Run(void* boblight)
|
||||
+{
|
||||
+ int snapshot_fd = -1;
|
||||
+ aml_snapshot_t aml_snapshot = {0};
|
||||
+ int lastPriority = 255;
|
||||
+
|
||||
+ aml_snapshot.dst_width = 160;
|
||||
+ aml_snapshot.dst_height = 160;
|
||||
+
|
||||
+ // calc stride, size and alloc mem
|
||||
+ aml_snapshot.dst_stride = aml_snapshot.dst_width * 3;
|
||||
+ aml_snapshot.dst_size = aml_snapshot.dst_stride * aml_snapshot.dst_height;
|
||||
+ aml_snapshot.dst_vaddr = calloc(aml_snapshot.dst_size, 1);
|
||||
+
|
||||
+ fprintf(stdout, "Connection to boblightd config: width(%d), height(%d)\n",
|
||||
+ aml_snapshot.dst_width, aml_snapshot.dst_height);
|
||||
+ //tell libboblight how big our image is
|
||||
+ boblight_setscanrange(boblight, (int)aml_snapshot.dst_width, (int)aml_snapshot.dst_height);
|
||||
+
|
||||
+ while(!g_stop)
|
||||
+ {
|
||||
+ int64_t bgn = GetTimeUs();
|
||||
+
|
||||
+ if (snapshot_fd == -1) {
|
||||
+ snapshot_fd = open(g_flagmanager.m_device.c_str(), O_RDWR, 0);
|
||||
+
|
||||
+ if (snapshot_fd == -1) {
|
||||
+ sleep(1);
|
||||
+ continue;
|
||||
+ } else {
|
||||
+ fprintf(stdout, "snapshot_fd(%d) \n", snapshot_fd);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // match source ratio if possible
|
||||
+ if (amvideo_utils_video_playing() != 0) {
|
||||
+ if ( lastPriority != 255)
|
||||
+ {
|
||||
+ boblight_setpriority(boblight, 255);
|
||||
+ lastPriority = 255;
|
||||
+ }
|
||||
+ sleep(1);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (configure_capture(snapshot_fd, aml_snapshot) == 0)
|
||||
+ {
|
||||
+ if (capture_frame(snapshot_fd, aml_snapshot) == 0)
|
||||
+ {
|
||||
+ // image to boblight convert.
|
||||
+ frameToboblight(boblight, (uint8_t*)aml_snapshot.dst_vaddr,
|
||||
+ aml_snapshot.dst_width, aml_snapshot.dst_height, aml_snapshot.dst_stride);
|
||||
+
|
||||
+ if (lastPriority != g_flagmanager.m_priority)
|
||||
+ {
|
||||
+ boblight_setpriority(boblight, g_flagmanager.m_priority);
|
||||
+ lastPriority = g_flagmanager.m_priority;
|
||||
+ }
|
||||
+ if (!boblight_sendrgb(boblight, 1, NULL))
|
||||
+ {
|
||||
+ // some error happened, probably connection broken, so bitch and try again
|
||||
+ PrintError(boblight_geterror(boblight));
|
||||
+ boblight_destroy(boblight);
|
||||
+ continue;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fprintf(stdout, "nap time\n");
|
||||
+ sleep(1);
|
||||
+ }
|
||||
+ }
|
||||
+ int64_t end = GetTimeUs();
|
||||
+ float calc_time_ms = (float)(end - bgn) / 1000.0;
|
||||
+ // throttle to 100ms max cycle rate
|
||||
+ calc_time_ms -= 100.0;
|
||||
+ if ((int)calc_time_ms < 0)
|
||||
+ usleep((int)(-calc_time_ms * 1000));
|
||||
+ }
|
||||
+
|
||||
+ // last image is black
|
||||
+ boblight_setpriority(boblight, 255);
|
||||
+ boblight_destroy(boblight);
|
||||
+ close(snapshot_fd);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*********************************************************
|
||||
+ *********************************************************/
|
||||
+int main(int argc, char *argv[])
|
||||
+{
|
||||
+ //load the boblight lib, if it fails we get a char* from dlerror()
|
||||
+ const char* boblight_error = boblight_loadlibrary(NULL);
|
||||
+ if (boblight_error)
|
||||
+ {
|
||||
+ PrintError(boblight_error);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ //try to parse the flags and bitch to stderr if there's an error
|
||||
+ try {
|
||||
+ g_flagmanager.ParseFlags(argc, argv);
|
||||
+ }
|
||||
+ catch (string error) {
|
||||
+ PrintError(error);
|
||||
+ g_flagmanager.PrintHelpMessage();
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ if (g_flagmanager.m_printhelp) {
|
||||
+ g_flagmanager.PrintHelpMessage();
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ if (g_flagmanager.m_printboblightoptions) {
|
||||
+ g_flagmanager.PrintBoblightOptions();
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ // check if we only should generate a cmdline based
|
||||
+ // on settings from possible found boblight addon
|
||||
+ if (g_flagmanager.generateCmdLine)
|
||||
+ {
|
||||
+ CBoblightAddonSettings settings;
|
||||
+ string cmdLine = "-p 100"; //default cmdline just contains priority 100
|
||||
+
|
||||
+ if (settings.m_settingsLoaded)
|
||||
+ cmdLine += " " + settings.getBoblightClientCmdLine();
|
||||
+ fprintf(stdout, "%s", cmdLine.c_str());
|
||||
+ return 0;//exit
|
||||
+ }
|
||||
+
|
||||
+ fprintf(stderr, "Using device: %s \n", g_flagmanager.m_device.c_str());
|
||||
+
|
||||
+ //set up signal handlers
|
||||
+ signal(SIGINT, SignalHandler);
|
||||
+ signal(SIGTERM, SignalHandler);
|
||||
+
|
||||
+ //keep running until we want to quit
|
||||
+ while(!g_stop) {
|
||||
+ //init boblight
|
||||
+ void* boblight = boblight_init();
|
||||
+
|
||||
+ fprintf(stdout, "Connecting to boblightd(%p)\n", boblight);
|
||||
+
|
||||
+ //try to connect, if we can't then bitch to stderr and destroy boblight
|
||||
+ if (!boblight_connect(boblight, g_flagmanager.m_address, g_flagmanager.m_port, 5000000) ||
|
||||
+ !boblight_setpriority(boblight, 255)) {
|
||||
+ PrintError(boblight_geterror(boblight));
|
||||
+ fprintf(stdout, "Waiting 10 seconds before trying again\n");
|
||||
+ boblight_destroy(boblight);
|
||||
+ sleep(2);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ fprintf(stdout, "Connection to boblightd opened\n");
|
||||
+
|
||||
+ //try to parse the boblight flags and bitch to stderr if we can't
|
||||
+ try {
|
||||
+ g_flagmanager.ParseBoblightOptions(boblight);
|
||||
+ }
|
||||
+ catch (string error) {
|
||||
+ PrintError(error);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ try {
|
||||
+ Run(boblight);
|
||||
+ }
|
||||
+ catch (string error) {
|
||||
+ PrintError(error);
|
||||
+ boblight_destroy(boblight);
|
||||
+ return 1;
|
||||
+ }
|
||||
+ }
|
||||
+ fprintf(stdout, "Exiting\n");
|
||||
+}
|
||||
diff -urPp src/clients/flagmanager-aml.cpp src/clients/boblight-aml/flagmanager-aml.cpp
|
||||
--- /dev/null Thu Jan 1 00:00:00 1970
|
||||
+++ b/src/clients/boblight-aml/flagmanager-aml.cpp Thu Jan 15 10:21:40 2015
|
||||
@@ -0,0 +1,68 @@
|
||||
+/*
|
||||
+ * boblight
|
||||
+ * Copyright (C) Bob 2009
|
||||
+ *
|
||||
+ * boblight 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 3 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * boblight is distributed in the hope that it will be useful, but
|
||||
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
+ * See the GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License along
|
||||
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+ */
|
||||
+
|
||||
+#include <iostream>
|
||||
+
|
||||
+#include "flagmanager-aml.h"
|
||||
+#include "util/misc.h"
|
||||
+#include "config.h"
|
||||
+
|
||||
+#define DEFAULT_CAPTURE_DEVICE "/dev/amvideocap0"
|
||||
+
|
||||
+using namespace std;
|
||||
+
|
||||
+CFlagManagerAML::CFlagManagerAML()
|
||||
+{
|
||||
+ // extend the flags -d -> device
|
||||
+ // -g -> only generate cmdline from possible found boblight addon settings.xml
|
||||
+ m_flags += "d:g";
|
||||
+ m_device = DEFAULT_CAPTURE_DEVICE;
|
||||
+ generateCmdLine = false;
|
||||
+}
|
||||
+
|
||||
+void CFlagManagerAML::ParseFlagsExtended(int& argc, char**& argv, int& c, char*& optarg)
|
||||
+{
|
||||
+ if (c == 'd') //devicename
|
||||
+ {
|
||||
+ if (optarg) //optional device
|
||||
+ {
|
||||
+ m_device = optarg;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (c == 'g') //generate cmdline
|
||||
+ {
|
||||
+ generateCmdLine = true;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void CFlagManagerAML::PrintHelpMessage()
|
||||
+{
|
||||
+ cout << "Usage: boblight-aml\n";
|
||||
+ cout << "\n";
|
||||
+ cout << " options:\n";
|
||||
+ cout << "\n";
|
||||
+ cout << " -p priority, from 0 to 255, default is 128\n";
|
||||
+ cout << " -s address[:port], set the address and optional port to connect to\n";
|
||||
+ cout << " -o add libboblight option, syntax: [light:]option=value\n";
|
||||
+ cout << " -l list libboblight options\n";
|
||||
+ cout << " -f fork\n";
|
||||
+ cout << " -d <device> (defaults to " << m_device << ")\n";
|
||||
+ cout << " -g try to find the settings.xml file from boblight addon and return the cmdline to use its options\n";
|
||||
+ cout << "\n";
|
||||
+}
|
||||
diff -urPp src/clients/flagmanager-aml.h src/clients/boblight-aml/flagmanager-aml.h
|
||||
--- /dev/null Thu Jan 1 00:00:00 1970
|
||||
+++ b/src/clients/boblight-aml/flagmanager-aml.h Thu Jan 15 10:20:15 2015
|
||||
@@ -0,0 +1,36 @@
|
||||
+/*
|
||||
+ * boblight
|
||||
+ * Copyright (C) Bob 2009
|
||||
+ *
|
||||
+ * boblight 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 3 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * boblight is distributed in the hope that it will be useful, but
|
||||
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
+ * See the GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License along
|
||||
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+ */
|
||||
+
|
||||
+#ifndef FLAGMANAGERAML
|
||||
+#define FLAGMANAGERAML
|
||||
+
|
||||
+#include "clients/flagmanager.h"
|
||||
+
|
||||
+class CFlagManagerAML : public CFlagManager
|
||||
+{
|
||||
+ public:
|
||||
+ CFlagManagerAML();
|
||||
+ void ParseFlagsExtended(int& argc, char**& argv, int& c, char*& optarg);
|
||||
+
|
||||
+ void PrintHelpMessage();
|
||||
+ std::string m_device; //device to open for amvideocap
|
||||
+ bool generateCmdLine;
|
||||
+
|
||||
+};
|
||||
+
|
||||
+#endif //FLAGMANAGERAML
|
||||
\ No newline at end of file
|
||||
@@ -35,4 +35,10 @@ if [ -x $ADDON_DIR/bin/boblight-X11 -a -e $ADDON_HOME/boblight.X11 ] ; then
|
||||
boblight-X11 -f >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -x $ADDON_DIR/bin/boblight-aml -a -e /dev/amvideocap0 ] ; then
|
||||
#generates cmdline from boblight addon settings
|
||||
CMDLINE=`boblight-aml -g`
|
||||
boblight-aml $CMDLINE >/dev/null 2>&1 &
|
||||
fi
|
||||
|
||||
exec boblightd -c $ADDON_HOME/boblight.conf > $ADDON_LOG_FILE 2>&1
|
||||
|
||||
@@ -4,7 +4,6 @@ After=graphical.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.multimedia.boblightd/bin/boblightd.start"
|
||||
ExecStopPost=-/bin/sh -c "pidof boblight-X11 && killall -q -9 boblight-X11"
|
||||
TimeoutStopSec=1
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
@@ -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,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,29 @@
|
||||
4.3.8
|
||||
- update to vdr-2.1.10
|
||||
- update to vdr-plugin-restfulapi-0.2.1.1
|
||||
- update to vdr-plugin-vnsiserver-f2175ba
|
||||
|
||||
4.3.7
|
||||
- update to vdr-2.1.8
|
||||
- update to vdr-plugin-vnsiserver-b887bc8
|
||||
- update to vdr-wirbelscan-0.0.9
|
||||
|
||||
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
|
||||
|
||||
4.3.4
|
||||
- update to vdr-plugin-vnsiserver-a48edf1
|
||||
- update to vdr-plugin-dvbapi-36a6b1d
|
||||
|
||||
4.3.3
|
||||
- add plugin 'vdr-plugin-epgfixer'
|
||||
- update to vdr-satip-1.0.1
|
||||
|
||||
4.3.2
|
||||
- update to kodi
|
||||
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
|
||||
PKG_NAME="vdr-addon"
|
||||
PKG_VERSION="4.3"
|
||||
PKG_REV="2"
|
||||
PKG_REV="8"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr vdr-plugin-eepg vdr-dummydevice vdr-satip"
|
||||
PKG_DEPENDS_TARGET="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr vdr-plugin-eepg vdr-dummydevice vdr-satip vdr-plugin-epgfixer vdr-plugin-restfulapi"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service.multimedia"
|
||||
PKG_SHORTDESC="vdr: A powerful DVB TV application"
|
||||
@@ -48,9 +48,11 @@ addon() {
|
||||
VDR_PLUGIN_VNSISERVER_DIR="$(get_build_dir vdr-plugin-vnsiserver)"
|
||||
VDR_PLUGIN_STREAMVEV_DIR="$(get_build_dir vdr-plugin-streamdev)"
|
||||
VDR_PLUGIN_XMLTV2VDR="$(get_build_dir vdr-plugin-xmltv2vdr)"
|
||||
VDR_PLUGIN_EPGFIXER_DIR="$(get_build_dir vdr-plugin-epgfixer)"
|
||||
VDR_PLUGIN_RESTFULAPI_DIR="$(get_build_dir vdr-plugin-restfulapi)"
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
cp $VDR_DIR/channels.conf $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
touch $ADDON_BUILD/$PKG_ADDON_ID/config/channels.conf
|
||||
cp $VDR_DIR/diseqc.conf $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
cp $VDR_DIR/keymacros.conf $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
cp $VDR_DIR/scr.conf $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
@@ -84,6 +86,8 @@ addon() {
|
||||
cp -PR $VDR_PLUGIN_XMLTV2VDR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-dummydevice)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $(get_build_dir vdr-satip)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_PLUGIN_EPGFIXER_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
cp -PR $VDR_PLUGIN_RESTFULAPI_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/eepg
|
||||
|
||||
@@ -103,4 +107,11 @@ addon() {
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/streamdev-server
|
||||
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/streamdev-server/streamdevhosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/streamdev-server
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/epgfixer
|
||||
cp -PR $VDR_PLUGIN_EPGFIXER_DIR/epgfixer/*.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/epgfixer
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/res/plugins/restfulapi
|
||||
cp -P $VDR_PLUGIN_RESTFULAPI_DIR/web/* $ADDON_BUILD/$PKG_ADDON_ID/res/plugins/restfulapi
|
||||
cp -P $VDR_PLUGIN_RESTFULAPI_DIR/API.html $ADDON_BUILD/$PKG_ADDON_ID/res/plugins/restfulapi
|
||||
}
|
||||
|
||||
@@ -45,9 +45,7 @@ ADDON_PLUGIN_DIR="$ADDON_DIR/plugin"
|
||||
chmod a+x $ADDON_DIR/bin/*
|
||||
|
||||
ADDON_CACHE_DIR="$ADDON_HOME/cache"
|
||||
if [ ! -f "$ADDON_CACHE_DIR" ]; then
|
||||
mkdir -p $ADDON_CACHE_DIR
|
||||
fi
|
||||
mkdir -p $ADDON_CACHE_DIR
|
||||
|
||||
VDR_ARG="-g /tmp --no-kbd"
|
||||
if [ "$DEBUG" = "yes" ]; then
|
||||
@@ -105,6 +103,9 @@ fi
|
||||
if [ "$ENABLE_EEPG" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P eepg"
|
||||
fi
|
||||
if [ "$ENABLE_EPGFIXER" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P epgfixer"
|
||||
fi
|
||||
if [ "$ENABLE_EPGSEARCH" == "true" ] ; then
|
||||
VDR_ARG="$VDR_ARG -P epgsearch"
|
||||
fi
|
||||
@@ -130,6 +131,20 @@ if [ "$ENABLE_XMLTV2VDR" == "true" ] ; then
|
||||
cp $source /var/lib/epgsources
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$ENABLE_RESTFULAPI" == "true" ] ; then
|
||||
RESTFULAPI_ARGS="--ip $RESTFULAPI_IP --port $RESTFULAPI_PORT"
|
||||
if [ ! -z "$RESTFULAPI_EPGIMAGES" ]; then
|
||||
mkdir -p "$RESTFULAPI_EPGIMAGES"
|
||||
RESTFULAPI_ARGS="$RESTFULAPI_ARGS --epgimages=\"$RESTFULAPI_EPGIMAGES\""
|
||||
fi
|
||||
if [ ! -z "$RESTFULAPI_CHANNELLOGOS" ]; then
|
||||
mkdir -p "$RESTFULAPI_CHANNELLOGOS"
|
||||
RESTFULAPI_ARGS="$RESTFULAPI_ARGS --channellogos=\"$RESTFULAPI_CHANNELLOGOS\""
|
||||
fi
|
||||
VDR_ARG="$VDR_ARG -P 'restfulapi $RESTFULAPI_ARGS'"
|
||||
fi
|
||||
|
||||
# vnsi/xvdr last
|
||||
VDR_ARG="$VDR_ARG -P $PVR_PLUGIN"
|
||||
|
||||
|
||||
@@ -24,10 +24,16 @@
|
||||
<string id="1046">Enable plugin: extended EPG</string>
|
||||
<string id="1047">Enable plugin: dummydevice</string>
|
||||
<string id="1048">Enable plugin: satip</string>
|
||||
<string id="1049">Enable plugin: epgfixer</string>
|
||||
<string id="1051">VDR Configuration</string>
|
||||
<string id="1052">VDR Video Dir</string>
|
||||
<string id="1053">PVR plugin</string>
|
||||
<string id="1056">Enable external recdmd</string>
|
||||
<string id="1057">External recdmd path</string>
|
||||
<string id="1058">- number of devices</string>
|
||||
<string id="1070">Enable plugin: restfulapi</string>
|
||||
<string id="1071">- listen on ip</string>
|
||||
<string id="1072">- listen on port</string>
|
||||
<string id="1073">- Path to the epgimages</string>
|
||||
<string id="1074">- Path to the channellogos</string>
|
||||
</strings>
|
||||
|
||||
@@ -35,6 +35,12 @@
|
||||
<setting id="ENABLE_XMLTV2VDR" type="bool" label="1045" default="false" />
|
||||
<setting id="ENABLE_DUMMYDEVICE" type="bool" label="1047" default="false" />
|
||||
<setting id="ENABLE_SATIP" type="bool" label="1048" default="false" />
|
||||
<setting id="ENABLE_EPGFIXER" type="bool" label="1049" default="false" />
|
||||
<setting id="ENABLE_RESTFULAPI" type="bool" label="1070" default="false" />
|
||||
<setting id="RESTFULAPI_IP" type="ipaddress" label="1071" values="" visible="!eq(-1,false)" default="0.0.0.0"/>
|
||||
<setting id="RESTFULAPI_PORT" type="number" label="1072" values="" visible="!eq(-2,false)" default="8002"/>
|
||||
<setting id="RESTFULAPI_EPGIMAGES" type="file" label="1073" values="" visible="!eq(-3,false)" default="/storage/.kodi/userdata/addon_data/service.multimedia.vdr-addon/epgimages"/>
|
||||
<setting id="RESTFULAPI_CHANNELLOGOS" type="file" label="1074" values="" visible="!eq(-4,false)" default="/storage/.kodi/userdata/addon_data/service.multimedia.vdr-addon/channellogos"/>
|
||||
<setting type="sep" />
|
||||
<setting id="ENABLE_SOFTCAM" type="bool" label="1036" default="true" />
|
||||
</category>
|
||||
|
||||
@@ -14,13 +14,19 @@
|
||||
<setting id="ENABLE_CONTROL" value="false" />
|
||||
<setting id="CONTROL_PORT" value="2002" />
|
||||
<setting id="ENABLE_EEPG" value="false" />
|
||||
<setting id="ENABLE_EPGFIXER" value="false" />
|
||||
<setting id="ENABLE_EPGSEARCH" value="false" />
|
||||
<setting id="ENABLE_XMLTV2VDR" value="false" />
|
||||
<setting id="ENABLE_DUMMYDEVICE" value="false" />
|
||||
<setting id="ENABLE_SATIP" value="false" />
|
||||
<setting id="ENABLE_EXTERNAL_RECCMD" value="false" />
|
||||
<setting id="ENABLE_RESTFULAPI" value="false" />
|
||||
<setting id="EXTERNAL_RECCMD_PATH" value="" />
|
||||
<setting id="ENABLE_CHARSET_OVERRIDE" value="false" />
|
||||
<setting id="CHARSET_OVERRIDE_STR" value="" />
|
||||
<setting id="IPTV_NUM_DEVICES" value="1" />
|
||||
<setting id="RESTFULAPI_IP" value="0.0.0.0" />
|
||||
<setting id="RESTFULAPI_PORT" value="8002" />
|
||||
<setting id="RESTFULAPI_EPGIMAGES" value="/storage/.kodi/userdata/addon_data/service.multimedia.vdr-addon/epgimages" />
|
||||
<setting id="RESTFULAPI_CHANNELLOGOS" value="/storage/.kodi/userdata/addon_data/service.multimedia.vdr-addon/channellogos" />
|
||||
</settings>
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
From 01b686cf032d523642c5ab33f455d814ef468925 Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <Peter.Fruehberger@gmail.com>
|
||||
Date: Sat, 10 Jan 2015 23:47:58 +0100
|
||||
Subject: [PATCH] Support PHIREE U2 and Sound blaster F-Xi HD (done by Anssih)
|
||||
|
||||
---
|
||||
src/conf/cards/USB-Audio.conf | 41 ++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 40 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf
|
||||
index ce3ae01..107d6fa 100644
|
||||
--- a/src/conf/cards/USB-Audio.conf
|
||||
+++ b/src/conf/cards/USB-Audio.conf
|
||||
@@ -52,6 +52,10 @@ USB-Audio.pcm.iec958_device {
|
||||
"USB Device 0x46d:0x992" 999
|
||||
}
|
||||
|
||||
+USB-Audio.pcm.iec958_2_device {
|
||||
+ "PHIREE U2" 1
|
||||
+ "USB Sound Blaster HD" 1
|
||||
+}
|
||||
|
||||
# If a device requires non-standard definitions for front, surround40,
|
||||
# surround51, surround71 or iec958, they can be defined here.
|
||||
@@ -422,4 +426,39 @@ USB-Audio.pcm.iec958.0 {
|
||||
}
|
||||
}
|
||||
|
||||
-# vim: ft=alsaconf
|
||||
+USB-Audio.pcm.iec958.1 {
|
||||
+ @args [ CARD AES0 AES1 AES2 AES3 ]
|
||||
+ @args.CARD { type string }
|
||||
+ @args.AES0 { type integer }
|
||||
+ @args.AES1 { type integer }
|
||||
+ @args.AES2 { type integer }
|
||||
+ @args.AES3 { type integer }
|
||||
+ @func refer
|
||||
+ name {
|
||||
+ @func concat
|
||||
+ strings [
|
||||
+ "cards.USB-Audio."
|
||||
+ { @func card_name card $CARD }
|
||||
+ ".pcm.iec958_2:CARD=" $CARD
|
||||
+ ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3
|
||||
+ ]
|
||||
+ }
|
||||
+ default {
|
||||
+ # FIXME: we cannot set the AES parameters
|
||||
+ type hw
|
||||
+ card $CARD
|
||||
+ device {
|
||||
+ @func refer
|
||||
+ name {
|
||||
+ @func concat
|
||||
+ strings [
|
||||
+ "cards.USB-Audio.pcm.iec958_2_device."
|
||||
+ { @func card_name card $CARD }
|
||||
+ ]
|
||||
+ }
|
||||
+ default 999
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+# vim: ft=alsaconf
|
||||
\ No newline at end of file
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -22,7 +22,7 @@ PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://espeak.sourceforge.net/"
|
||||
PKG_URL="http://downloads.sourceforge.net/$PKG_NAME/$PKG_NAME-$PKG_VERSION.zip"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.zip"
|
||||
PKG_SOURCE_DIR="$PKG_NAME/$PKG_NAME-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
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="xz"
|
||||
PKG_VERSION="5.0.7"
|
||||
PKG_VERSION="5.2.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3080704"
|
||||
PKG_VERSION="autoconf-3080802"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
PKG_SITE="http://www.sqlite.org/"
|
||||
PKG_URL="http://sqlite.org/2014/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://sqlite.org/2015/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="database"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gdb"
|
||||
PKG_VERSION="7.8.1"
|
||||
PKG_VERSION="7.8.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="automake"
|
||||
PKG_VERSION="1.14.1"
|
||||
PKG_VERSION="1.15"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bison"
|
||||
PKG_VERSION="3.0.2"
|
||||
PKG_VERSION="3.0.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -34,7 +34,7 @@ PKG_AUTORECONF="no"
|
||||
|
||||
configure_host() {
|
||||
../configure --prefix=$ROOT/$TOOLCHAIN \
|
||||
--no-qt-gui \
|
||||
--no-qt-gui --no-system-libs \
|
||||
-- \
|
||||
-DBUILD_CursesDialog=0
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="elfutils"
|
||||
PKG_VERSION="0.159"
|
||||
PKG_VERSION="0.161"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- elfutils/backends/ChangeLog
|
||||
+++ elfutils/backends/ChangeLog
|
||||
@@ -364,6 +364,10 @@
|
||||
@@ -433,6 +433,10 @@
|
||||
* ppc_attrs.c (ppc_check_object_attribute): Handle tag
|
||||
GNU_Power_ABI_Struct_Return.
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
2008-10-04 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
|
||||
@@ -691,6 +695,11 @@
|
||||
@@ -760,6 +764,11 @@
|
||||
* sparc_init.c: Likewise.
|
||||
* x86_64_init.c: Likewise.
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
2005-11-19 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* ppc64_reloc.def: REL30 -> ADDR30.
|
||||
@@ -713,6 +722,9 @@
|
||||
@@ -782,6 +791,9 @@
|
||||
* Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
|
||||
(CLEANFILES): Add libebl_$(m).so.
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
-Wl,--version-script,$(@:.so=.map) \
|
||||
- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw)
|
||||
+ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw)
|
||||
$(textrel_check)
|
||||
@$(textrel_check)
|
||||
|
||||
libebl_i386.so: $(cpu_i386)
|
||||
--- elfutils/backends/Makefile.in
|
||||
@@ -87,18 +87,18 @@
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda $(foreach m,$(modules), libebl_$(m).map \
|
||||
libebl_$(m).so $(am_libebl_$(m)_pic_a_OBJECTS))
|
||||
@@ -885,7 +888,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
|
||||
@@ -888,7 +891,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
|
||||
$(LINK) -shared -o $(@:.map=.so) \
|
||||
-Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
|
||||
-Wl,--version-script,$(@:.so=.map) \
|
||||
- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw)
|
||||
+ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw)
|
||||
$(textrel_check)
|
||||
@$(textrel_check)
|
||||
|
||||
libebl_i386.so: $(cpu_i386)
|
||||
--- elfutils/ChangeLog
|
||||
+++ elfutils/ChangeLog
|
||||
@@ -148,6 +148,8 @@
|
||||
@@ -187,6 +187,8 @@
|
||||
|
||||
2012-01-24 Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
* COPYING: Fix address. Updated version from gnulib.
|
||||
|
||||
2012-01-23 Mark Wielaard <mjw@redhat.com>
|
||||
@@ -166,6 +168,9 @@
|
||||
@@ -205,6 +207,9 @@
|
||||
|
||||
2011-10-08 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
* configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly.
|
||||
|
||||
2011-10-02 Ulrich Drepper <drepper@gmail.com>
|
||||
@@ -187,6 +192,10 @@
|
||||
@@ -226,6 +231,10 @@
|
||||
|
||||
* configure.ac (LOCALEDIR, DATADIRNAME): Removed.
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
2009-09-21 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* configure.ac: Update for more modern autoconf.
|
||||
@@ -195,6 +204,10 @@
|
||||
@@ -234,6 +243,10 @@
|
||||
|
||||
* configure.ac (zip_LIBS): Check for liblzma too.
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
2009-04-19 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* configure.ac (eu_version): Round down here, not in version.h macros.
|
||||
@@ -206,6 +219,8 @@
|
||||
@@ -245,6 +258,8 @@
|
||||
|
||||
2009-01-23 Roland McGrath <roland@redhat.com>
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
* configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
|
||||
|
||||
* configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
|
||||
@@ -286,6 +301,10 @@
|
||||
@@ -325,6 +340,10 @@
|
||||
* configure.ac: Add dummy automake conditional to get dependencies
|
||||
for non-generic linker right. See src/Makefile.am.
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
2005-11-18 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
|
||||
@@ -333,6 +352,17 @@
|
||||
@@ -372,6 +391,17 @@
|
||||
* Makefile.am (all_SUBDIRS): Add libdwfl.
|
||||
* configure.ac: Write libdwfl/Makefile.
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
* configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
|
||||
--- elfutils/config/ChangeLog
|
||||
+++ elfutils/config/ChangeLog
|
||||
@@ -58,6 +58,10 @@
|
||||
@@ -71,6 +71,10 @@
|
||||
|
||||
* known-dwarf.awk: Use gawk.
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
%.os: %.c %.o
|
||||
--- elfutils/config/Makefile.in
|
||||
+++ elfutils/config/Makefile.in
|
||||
@@ -146,6 +146,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@@ -147,6 +147,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
@@ -234,7 +234,7 @@
|
||||
LEX = @LEX@
|
||||
LEXLIB = @LEXLIB@
|
||||
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||
@@ -177,6 +178,7 @@ SHELL = @SHELL@
|
||||
@@ -178,6 +179,7 @@ SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
@@ -254,7 +254,7 @@
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
@@ -99,4 +102,7 @@
|
||||
@@ -102,4 +105,7 @@
|
||||
/* Define for large files, on AIX-style hosts. */
|
||||
#undef _LARGE_FILES
|
||||
|
||||
@@ -264,7 +264,7 @@
|
||||
#include <eu-config.h>
|
||||
--- elfutils/configure
|
||||
+++ elfutils/configure
|
||||
@@ -661,6 +661,8 @@ ZLIB_TRUE
|
||||
@@ -663,6 +663,8 @@ ZLIB_TRUE
|
||||
LIBEBL_SUBDIR
|
||||
TESTS_RPATH_FALSE
|
||||
TESTS_RPATH_TRUE
|
||||
@@ -273,7 +273,7 @@
|
||||
BUILD_STATIC_FALSE
|
||||
BUILD_STATIC_TRUE
|
||||
USE_VALGRIND_FALSE
|
||||
@@ -676,6 +678,8 @@ NEVER_TRUE
|
||||
@@ -678,6 +680,8 @@ NEVER_TRUE
|
||||
base_cpu
|
||||
NATIVE_LD_FALSE
|
||||
NATIVE_LD_TRUE
|
||||
@@ -282,7 +282,7 @@
|
||||
NM
|
||||
READELF
|
||||
ac_ct_AR
|
||||
@@ -796,6 +800,7 @@ enable_debugpred
|
||||
@@ -798,6 +802,7 @@ enable_debugpred
|
||||
enable_gprof
|
||||
enable_gcov
|
||||
enable_valgrind
|
||||
@@ -290,7 +290,7 @@
|
||||
enable_tests_rpath
|
||||
enable_libebl_subdir
|
||||
with_zlib
|
||||
@@ -1452,6 +1457,7 @@ Optional Features:
|
||||
@@ -1455,6 +1460,7 @@ Optional Features:
|
||||
--enable-gprof build binaries with gprof support
|
||||
--enable-gcov build binaries with gcov support
|
||||
--enable-valgrind run all tests under valgrind
|
||||
@@ -298,7 +298,7 @@
|
||||
--enable-tests-rpath build $ORIGIN-using rpath into tests
|
||||
--enable-libebl-subdir=DIR
|
||||
install libebl_CPU modules in $(libdir)/DIR
|
||||
@@ -4674,6 +4680,130 @@ if test "x$ac_cv_c99" != xyes; then :
|
||||
@@ -4843,6 +4849,130 @@ if test "x$ac_cv_c99" != xyes; then :
|
||||
as_fn_error $? "gcc with C99 support required" "$LINENO" 5
|
||||
fi
|
||||
|
||||
@@ -429,7 +429,7 @@
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5
|
||||
$as_echo_n "checking for __thread support... " >&6; }
|
||||
if ${ac_cv_tls+:} false; then :
|
||||
@@ -4710,7 +4840,13 @@ fi
|
||||
@@ -4879,7 +5009,13 @@ fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5
|
||||
$as_echo "$ac_cv_tls" >&6; }
|
||||
if test "x$ac_cv_tls" != xyes; then :
|
||||
@@ -444,7 +444,7 @@
|
||||
fi
|
||||
|
||||
# Check whether --enable-largefile was given.
|
||||
@@ -5077,6 +5213,22 @@ else
|
||||
@@ -5246,6 +5382,22 @@ else
|
||||
fi
|
||||
|
||||
|
||||
@@ -467,7 +467,7 @@
|
||||
# Check whether --enable-tests-rpath was given.
|
||||
if test "${enable_tests_rpath+set}" = set; then :
|
||||
enableval=$enable_tests_rpath; tests_use_rpath=$enableval
|
||||
@@ -5800,7 +5952,7 @@ case "$eu_version" in
|
||||
@@ -5983,7 +6135,7 @@ case "$eu_version" in
|
||||
esac
|
||||
|
||||
# Round up to the next release API (x.y) version.
|
||||
@@ -476,7 +476,7 @@
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
@@ -6530,6 +6682,10 @@ if test -z "${BUILD_STATIC_TRUE}" && tes
|
||||
@@ -6729,6 +6881,10 @@ if test -z "${BUILD_STATIC_TRUE}" && tes
|
||||
as_fn_error $? "conditional \"BUILD_STATIC\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
@@ -568,7 +568,7 @@
|
||||
AC_ARG_ENABLE([tests-rpath],
|
||||
AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]),
|
||||
[tests_use_rpath=$enableval], [tests_use_rpath=no])
|
||||
@@ -297,7 +353,7 @@ case "$eu_version" in
|
||||
@@ -302,7 +358,7 @@ case "$eu_version" in
|
||||
esac
|
||||
|
||||
# Round up to the next release API (x.y) version.
|
||||
@@ -660,10 +660,10 @@
|
||||
+ $(am__append_1) -fpic
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda
|
||||
textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
textrel_msg = echo "WARNING: TEXTREL found in '$@'"
|
||||
--- elfutils/libasm/ChangeLog
|
||||
+++ elfutils/libasm/ChangeLog
|
||||
@@ -79,6 +79,11 @@
|
||||
@@ -87,6 +87,11 @@
|
||||
* asm_error.c: Add new error ASM_E_IOERROR.
|
||||
* libasmP.h: Add ASM_E_IOERROR definition.
|
||||
|
||||
@@ -721,7 +721,7 @@
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda $(am_libasm_pic_a_OBJECTS) \
|
||||
libasm.so.$(VERSION)
|
||||
@@ -370,7 +373,7 @@ libasm_a_SOURCES = asm_begin.c asm_abort
|
||||
@@ -373,7 +376,7 @@ libasm_a_SOURCES = asm_begin.c asm_abort
|
||||
|
||||
libasm_pic_a_SOURCES =
|
||||
am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os)
|
||||
@@ -807,7 +807,7 @@
|
||||
$P.mnemonics)
|
||||
--- elfutils/libdw/ChangeLog
|
||||
+++ elfutils/libdw/ChangeLog
|
||||
@@ -420,6 +420,10 @@
|
||||
@@ -717,6 +717,10 @@
|
||||
|
||||
* Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.
|
||||
|
||||
@@ -818,7 +818,7 @@
|
||||
2011-07-14 Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
* libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.
|
||||
@@ -779,6 +783,10 @@
|
||||
@@ -1076,6 +1080,10 @@
|
||||
|
||||
* dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
|
||||
|
||||
@@ -829,7 +829,7 @@
|
||||
2009-08-10 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* dwarf_getscopevar.c: Use dwarf_diename.
|
||||
@@ -1547,6 +1555,11 @@
|
||||
@@ -1844,6 +1852,11 @@
|
||||
|
||||
2005-05-31 Roland McGrath <roland@redhat.com>
|
||||
|
||||
@@ -860,7 +860,7 @@
|
||||
#endif
|
||||
--- elfutils/libdw/libdw.h
|
||||
+++ elfutils/libdw/libdw.h
|
||||
@@ -891,7 +891,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (
|
||||
@@ -1003,7 +1003,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (
|
||||
|
||||
|
||||
/* Inline optimizations. */
|
||||
@@ -881,7 +881,7 @@
|
||||
noinst_PROGRAMS = $(am__EXEEXT_1)
|
||||
subdir = libdw
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
@@ -295,6 +296,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@@ -298,6 +299,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
@@ -889,7 +889,7 @@
|
||||
LEX = @LEX@
|
||||
LEXLIB = @LEXLIB@
|
||||
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||
@@ -326,6 +328,7 @@ SHELL = @SHELL@
|
||||
@@ -329,6 +331,7 @@ SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = 1
|
||||
@@ -897,7 +897,7 @@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
@@ -387,10 +390,11 @@ top_srcdir = @top_srcdir@
|
||||
@@ -390,10 +393,11 @@ top_srcdir = @top_srcdir@
|
||||
zip_LIBS = @zip_LIBS@
|
||||
AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
|
||||
-I$(srcdir)/../libelf
|
||||
@@ -911,7 +911,7 @@
|
||||
+ $(am__append_1) $(am__append_2)
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda
|
||||
textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
textrel_msg = echo "WARNING: TEXTREL found in '$@'"
|
||||
--- elfutils/libdwelf/Makefile.in
|
||||
+++ elfutils/libdwelf/Makefile.in
|
||||
@@ -82,6 +82,7 @@ host_triplet = @host@
|
||||
@@ -954,10 +954,10 @@
|
||||
+ $(am__append_1)
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda $(am_libdwelf_pic_a_OBJECTS)
|
||||
textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
textrel_msg = echo "WARNING: TEXTREL found in '$@'"
|
||||
--- elfutils/libdwfl/ChangeLog
|
||||
+++ elfutils/libdwfl/ChangeLog
|
||||
@@ -421,6 +421,21 @@
|
||||
@@ -571,6 +571,21 @@
|
||||
(dwfl_module_addrsym) (i_to_symfile): New function.
|
||||
(dwfl_module_addrsym) (search_table): Use it.
|
||||
|
||||
@@ -979,7 +979,7 @@
|
||||
2013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
@@ -2186,6 +2201,11 @@
|
||||
@@ -2336,6 +2351,11 @@
|
||||
|
||||
2005-07-21 Roland McGrath <roland@redhat.com>
|
||||
|
||||
@@ -1027,8 +1027,8 @@
|
||||
+# endif
|
||||
+#endif
|
||||
|
||||
#ifndef MIN
|
||||
# define MIN(a, b) ((a) < (b) ? (a) : (b))
|
||||
#include "../libdw/memory-access.h"
|
||||
|
||||
--- elfutils/libdwfl/linux-pid-attach.c
|
||||
+++ elfutils/libdwfl/linux-pid-attach.c
|
||||
@@ -255,6 +255,11 @@ void
|
||||
@@ -1107,8 +1107,8 @@
|
||||
+ $(am__append_1)
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda $(am_libdwfl_pic_a_OBJECTS)
|
||||
textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
@@ -410,8 +413,8 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
|
||||
textrel_msg = echo "WARNING: TEXTREL found in '$@'"
|
||||
@@ -413,8 +416,8 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
|
||||
dwfl_module_register_names.c dwfl_segment_report_module.c \
|
||||
link_map.c core-file.c open.c image-header.c dwfl_frame.c \
|
||||
frame_unwind.c dwfl_frame_pc.c linux-pid-attach.c \
|
||||
@@ -1121,7 +1121,7 @@
|
||||
libelf = ../libelf/libelf.so
|
||||
--- elfutils/libebl/ChangeLog
|
||||
+++ elfutils/libebl/ChangeLog
|
||||
@@ -748,6 +748,11 @@
|
||||
@@ -765,6 +765,11 @@
|
||||
* Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
|
||||
tracking works right.
|
||||
|
||||
@@ -1172,10 +1172,10 @@
|
||||
+ $(am__append_1) -fpic
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda $(am_libebl_pic_a_OBJECTS)
|
||||
textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
textrel_msg = echo "WARNING: TEXTREL found in '$@'"
|
||||
--- elfutils/libelf/ChangeLog
|
||||
+++ elfutils/libelf/ChangeLog
|
||||
@@ -135,6 +135,11 @@
|
||||
@@ -244,6 +244,11 @@
|
||||
|
||||
* elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check.
|
||||
|
||||
@@ -1187,7 +1187,7 @@
|
||||
2011-02-26 Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
* elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini.
|
||||
@@ -812,6 +817,11 @@
|
||||
@@ -921,6 +926,11 @@
|
||||
|
||||
* elf.h: Update from glibc.
|
||||
|
||||
@@ -1285,7 +1285,7 @@
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda $(am_libelf_pic_a_OBJECTS) \
|
||||
libelf.so.$(VERSION)
|
||||
@@ -446,7 +450,7 @@ libelf_a_SOURCES = elf_version.c elf_has
|
||||
@@ -449,7 +453,7 @@ libelf_a_SOURCES = elf_version.c elf_has
|
||||
|
||||
libelf_pic_a_SOURCES =
|
||||
am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
|
||||
@@ -1347,7 +1347,7 @@
|
||||
break;
|
||||
--- elfutils/src/ChangeLog
|
||||
+++ elfutils/src/ChangeLog
|
||||
@@ -1112,8 +1112,16 @@
|
||||
@@ -1371,8 +1371,16 @@
|
||||
* readelf.c (attr_callback): Use print_block only when we don't use
|
||||
print_ops.
|
||||
|
||||
@@ -1364,7 +1364,7 @@
|
||||
* ar.c (do_oper_extract): Use pathconf instead of statfs.
|
||||
|
||||
2009-08-01 Ulrich Drepper <drepper@redhat.com>
|
||||
@@ -1277,6 +1285,8 @@
|
||||
@@ -1536,6 +1544,8 @@
|
||||
* readelf.c (print_debug_frame_section): Use t instead of j formats
|
||||
for ptrdiff_t OFFSET.
|
||||
|
||||
@@ -1373,7 +1373,7 @@
|
||||
2009-01-21 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
|
||||
@@ -1460,6 +1470,11 @@
|
||||
@@ -1719,6 +1729,11 @@
|
||||
that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
|
||||
is valid in RELRO.
|
||||
|
||||
@@ -1385,7 +1385,7 @@
|
||||
2008-02-29 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* readelf.c (print_attributes): Add a cast.
|
||||
@@ -1711,6 +1726,8 @@
|
||||
@@ -1970,6 +1985,8 @@
|
||||
|
||||
* readelf.c (hex_dump): Fix rounding error in whitespace calculation.
|
||||
|
||||
@@ -1394,7 +1394,7 @@
|
||||
2007-10-15 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* make-debug-archive.in: New file.
|
||||
@@ -2150,6 +2167,10 @@
|
||||
@@ -2409,6 +2426,10 @@
|
||||
* elflint.c (valid_e_machine): Add EM_ALPHA.
|
||||
Reported by Christian Aichinger <Greek0@gmx.net>.
|
||||
|
||||
@@ -1405,7 +1405,7 @@
|
||||
2006-08-08 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
|
||||
@@ -2226,6 +2247,10 @@
|
||||
@@ -2485,6 +2506,10 @@
|
||||
* Makefile.am: Add hacks to create dependency files for non-generic
|
||||
linker.
|
||||
|
||||
@@ -1416,7 +1416,7 @@
|
||||
2006-06-12 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* ldgeneric.c (ld_generic_generate_sections): Don't create .interp
|
||||
@@ -2574,6 +2599,11 @@
|
||||
@@ -2833,6 +2858,11 @@
|
||||
* readelf.c (print_debug_loc_section): Fix indentation for larger
|
||||
address size.
|
||||
|
||||
@@ -1430,7 +1430,7 @@
|
||||
* readelf.c (print_debug_line_section): Print section offset of each
|
||||
--- elfutils/src/findtextrel.c
|
||||
+++ elfutils/src/findtextrel.c
|
||||
@@ -496,7 +496,11 @@ ptrcompare (const void *p1, const void *
|
||||
@@ -502,7 +502,11 @@ ptrcompare (const void *p1, const void *
|
||||
|
||||
|
||||
static void
|
||||
@@ -1538,7 +1538,7 @@
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda make-debug-archive none_ld.os \
|
||||
$(ld_modules:.c=.os) *.gconv
|
||||
@@ -449,8 +452,8 @@ AM_LFLAGS = -Pld -olex.yy.c
|
||||
@@ -452,8 +455,8 @@ AM_LFLAGS = -Pld -olex.yy.c
|
||||
native_ld = @native_ld@
|
||||
ld_dsos = libld_elf_i386_pic.a
|
||||
@NATIVE_LD_FALSE@noinst_LIBRARIES = libld_elf.a libar.a $(ld_dsos) \
|
||||
@@ -1549,7 +1549,7 @@
|
||||
@NATIVE_LD_TRUE@native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu)
|
||||
@NEVER_TRUE@libdummy_a_SOURCES = i386_ld.c
|
||||
ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \
|
||||
@@ -476,13 +479,18 @@ libeu = ../lib/libeu.a
|
||||
@@ -479,13 +482,18 @@ libeu = ../lib/libeu.a
|
||||
|
||||
# XXX While the file is not finished, don't warn about this
|
||||
ldgeneric_no_Wunused = yes
|
||||
@@ -1571,7 +1571,7 @@
|
||||
findtextrel_LDADD = $(libdw) $(libelf)
|
||||
--- elfutils/src/readelf.c
|
||||
+++ elfutils/src/readelf.c
|
||||
@@ -4239,10 +4239,12 @@ listptr_base (struct listptr *p)
|
||||
@@ -4368,10 +4368,12 @@ listptr_base (struct listptr *p)
|
||||
return base;
|
||||
}
|
||||
|
||||
@@ -1586,7 +1586,7 @@
|
||||
struct listptr *p1 = (void *) a;
|
||||
struct listptr *p2 = (void *) b;
|
||||
|
||||
@@ -4331,8 +4333,11 @@ static void
|
||||
@@ -4467,8 +4469,11 @@ static void
|
||||
sort_listptr (struct listptr_table *table, const char *name)
|
||||
{
|
||||
if (table->n > 0)
|
||||
@@ -1600,7 +1600,7 @@
|
||||
}
|
||||
|
||||
static bool
|
||||
@@ -9252,7 +9257,7 @@ dump_archive_index (Elf *elf, const char
|
||||
@@ -9539,7 +9544,7 @@ dump_archive_index (Elf *elf, const char
|
||||
if (unlikely (elf_rand (elf, as_off) == 0)
|
||||
|| unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))
|
||||
== NULL))
|
||||
@@ -1682,7 +1682,7 @@
|
||||
}
|
||||
|
||||
/* Open the file. */
|
||||
@@ -2086,7 +2102,7 @@ while computing checksum for debug infor
|
||||
@@ -2091,7 +2107,7 @@ while computing checksum for debug infor
|
||||
/* If requested, preserve the timestamp. */
|
||||
if (tvp != NULL)
|
||||
{
|
||||
@@ -1691,7 +1691,7 @@
|
||||
{
|
||||
error (0, errno, gettext ("\
|
||||
cannot set access and modification date of '%s'"),
|
||||
@@ -2143,7 +2159,7 @@ handle_ar (int fd, Elf *elf, const char
|
||||
@@ -2148,7 +2164,7 @@ handle_ar (int fd, Elf *elf, const char
|
||||
|
||||
if (tvp != NULL)
|
||||
{
|
||||
@@ -1712,7 +1712,7 @@
|
||||
#ifndef __linux__
|
||||
--- elfutils/tests/ChangeLog
|
||||
+++ elfutils/tests/ChangeLog
|
||||
@@ -283,6 +283,13 @@
|
||||
@@ -421,6 +421,13 @@
|
||||
|
||||
2013-12-02 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
@@ -1726,7 +1726,7 @@
|
||||
* Makefile.am (check_PROGRAMS): Add backtrace, backtrace-child,
|
||||
backtrace-data and backtrace-dwarf.
|
||||
(BUILT_SOURCES, clean-local, backtrace-child-biarch): New.
|
||||
@@ -1147,6 +1154,8 @@
|
||||
@@ -1285,6 +1292,8 @@
|
||||
|
||||
2008-01-21 Roland McGrath <roland@redhat.com>
|
||||
|
||||
@@ -1735,7 +1735,7 @@
|
||||
* testfile45.S.bz2: Add tests for cltq, cqto.
|
||||
* testfile45.expect.bz2: Adjust.
|
||||
|
||||
@@ -1855,6 +1864,11 @@
|
||||
@@ -1993,6 +2002,11 @@
|
||||
* Makefile.am (TESTS): Add run-elflint-test.sh.
|
||||
(EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
|
||||
|
||||
@@ -1760,7 +1760,7 @@
|
||||
case 0:
|
||||
--- elfutils/tests/Makefile.am
|
||||
+++ elfutils/tests/Makefile.am
|
||||
@@ -356,6 +356,7 @@ get_lines_LDADD = $(libdw) $(libelf)
|
||||
@@ -365,6 +365,7 @@ get_lines_LDADD = $(libdw) $(libelf)
|
||||
get_files_LDADD = $(libdw) $(libelf)
|
||||
get_aranges_LDADD = $(libdw) $(libelf)
|
||||
allfcts_LDADD = $(libdw) $(libelf)
|
||||
@@ -1788,24 +1788,23 @@
|
||||
check_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \
|
||||
newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \
|
||||
sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \
|
||||
@@ -111,7 +112,7 @@ check_PROGRAMS = arextract$(EXEEXT) arsy
|
||||
backtrace-data$(EXEEXT) backtrace-dwarf$(EXEEXT) \
|
||||
debuglink$(EXEEXT) debugaltlink$(EXEEXT) buildid$(EXEEXT) \
|
||||
$(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_4)
|
||||
@@ -113,7 +114,7 @@ check_PROGRAMS = arextract$(EXEEXT) arsy
|
||||
deleted$(EXEEXT) deleted-lib.so$(EXEEXT) \
|
||||
aggregate_size$(EXEEXT) vdsosyms$(EXEEXT) $(am__EXEEXT_1) \
|
||||
$(am__EXEEXT_2) $(am__EXEEXT_4)
|
||||
-@BIARCH_TRUE@am__append_4 = backtrace-child-biarch
|
||||
+@BIARCH_TRUE@am__append_5 = backtrace-child-biarch
|
||||
TESTS = run-arextract.sh run-arsymtest.sh newfile$(EXEEXT) \
|
||||
test-nlist$(EXEEXT) update1$(EXEEXT) update2$(EXEEXT) \
|
||||
update3$(EXEEXT) update4$(EXEEXT) run-show-die-info.sh \
|
||||
@@ -155,14 +156,14 @@ TESTS = run-arextract.sh run-arsymtest.s
|
||||
run-backtrace-core-s390.sh run-backtrace-core-aarch64.sh \
|
||||
run-backtrace-demangle.sh run-stack-d-test.sh \
|
||||
@@ -159,14 +160,14 @@ TESTS = run-arextract.sh run-arsymtest.s
|
||||
run-stack-i-test.sh run-readelf-dwz-multi.sh \
|
||||
- run-allfcts-multi.sh $(am__EXEEXT_2) $(am__append_7) \
|
||||
- $(am__append_8) $(am__EXEEXT_4)
|
||||
run-allfcts-multi.sh run-deleted.sh run-linkmap-cut.sh \
|
||||
run-aggregate-size.sh vdsosyms$(EXEEXT) run-readelf-A.sh \
|
||||
- $(am__EXEEXT_2) $(am__append_7) $(am__append_8) \
|
||||
+ $(am__EXEEXT_2) $(am__append_8) $(am__append_9) \
|
||||
$(am__EXEEXT_4)
|
||||
-@STANDALONE_FALSE@am__append_5 = msg_tst md5-sha1-test
|
||||
+ run-allfcts-multi.sh $(am__EXEEXT_2) $(am__append_8) \
|
||||
+ $(am__append_9) $(am__EXEEXT_4)
|
||||
@STANDALONE_FALSE@am__append_6 = msg_tst md5-sha1-test
|
||||
-@LZMA_TRUE@am__append_7 = run-readelf-s.sh run-dwflsyms.sh
|
||||
-@ZLIB_TRUE@am__append_8 = run-readelf-zdebug.sh
|
||||
@@ -1818,7 +1817,7 @@
|
||||
subdir = tests
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
|
||||
@@ -768,6 +769,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@@ -787,6 +788,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
@@ -1826,7 +1825,7 @@
|
||||
LEX = @LEX@
|
||||
LEXLIB = @LEXLIB@
|
||||
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||
@@ -799,6 +801,7 @@ SHELL = @SHELL@
|
||||
@@ -818,6 +820,7 @@ SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
@@ -1834,7 +1833,7 @@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XGETTEXT_015 = @XGETTEXT_015@
|
||||
XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
|
||||
@@ -858,17 +861,17 @@ top_build_prefix = @top_build_prefix@
|
||||
@@ -877,12 +880,12 @@ top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
zip_LIBS = @zip_LIBS@
|
||||
@@ -1852,14 +1851,17 @@
|
||||
+ $(am__append_1)
|
||||
COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
|
||||
CLEANFILES = *.gcno *.gcda
|
||||
textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then exit 1; fi
|
||||
textrel_msg = echo "WARNING: TEXTREL found in '$@'"
|
||||
@@ -890,7 +893,7 @@ textrel_msg = echo "WARNING: TEXTREL fou
|
||||
@FATAL_TEXTREL_TRUE@textrel_found = $(textrel_msg); exit 1
|
||||
textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi
|
||||
BUILD_RPATH = \$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../backends:\$$ORIGIN/../libelf
|
||||
-AM_LDFLAGS = $(am__append_2) $(am__append_3)
|
||||
+AM_LDFLAGS = $(am__append_3) $(am__append_4)
|
||||
@TESTS_RPATH_FALSE@tests_rpath = no
|
||||
@TESTS_RPATH_TRUE@tests_rpath = yes
|
||||
asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
|
||||
@@ -1077,6 +1080,7 @@ get_lines_LDADD = $(libdw) $(libelf)
|
||||
@@ -1106,6 +1109,7 @@ get_lines_LDADD = $(libdw) $(libelf)
|
||||
get_files_LDADD = $(libdw) $(libelf)
|
||||
get_aranges_LDADD = $(libdw) $(libelf)
|
||||
allfcts_LDADD = $(libdw) $(libelf)
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
Really make -Werror conditional to BUILD_WERROR
|
||||
|
||||
Otherwise it will fail with an error message like this one:
|
||||
|
||||
elf_getarsym.c:290:9: error: 'n' may be used uninitialized in this
|
||||
function [-Werror=maybe-uninitialized]
|
||||
arsym[n].as_name = NULL;
|
||||
^
|
||||
cc1: all warnings being treated as errors
|
||||
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
|
||||
diff -rup a/config/eu.am b/config/eu.am
|
||||
--- a/config/eu.am 2014-11-10 16:19:14.356031479 +0000
|
||||
+++ b/config/eu.am 2014-11-10 16:21:11.702072011 +0000
|
||||
@@ -35,7 +35,6 @@ LD_AS_NEEDED = @LD_AS_NEEDED@
|
||||
DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
|
||||
AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
|
||||
AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
|
||||
- $(if $($(*F)_no_Werror),,-Werror) \
|
||||
$(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
|
||||
$(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
|
||||
$($(*F)_CFLAGS)
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gettext"
|
||||
PKG_VERSION="0.19.3"
|
||||
PKG_VERSION="0.19.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -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="mpc"
|
||||
PKG_VERSION="1.0.2"
|
||||
PKG_VERSION="1.0.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
|
||||
@@ -23,7 +23,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="http://www.gnu.org/software/ncurses/"
|
||||
PKG_URL="http://ftp.gnu.org/pub/gnu/ncurses/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_DEPENDS_TARGET="toolchain zlib"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
PKG_SHORTDESC="ncurses: The ncurses (new curses) library"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="Mesa"
|
||||
PKG_VERSION="10.3.5"
|
||||
PKG_VERSION="10.3.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c
|
||||
index 55f3644..d68e1e9 100644
|
||||
--- a/src/mesa/state_tracker/st_cb_bufferobjects.c
|
||||
+++ b/src/mesa/state_tracker/st_cb_bufferobjects.c
|
||||
@@ -256,8 +256,15 @@ st_bufferobj_data(struct gl_context *ctx,
|
||||
break;
|
||||
case GL_STREAM_DRAW:
|
||||
case GL_STREAM_COPY:
|
||||
- pipe_usage = PIPE_USAGE_STREAM;
|
||||
- break;
|
||||
+ /* XXX: Remove this test when we have PBO unpack acceleration. Right
|
||||
+ * now, PBO unpacking is done by the CPU, so we have to make sure
|
||||
+ * CPU reads are fast.
|
||||
+ */
|
||||
+ if (target != GL_PIXEL_UNPACK_BUFFER_ARB) {
|
||||
+ pipe_usage = PIPE_USAGE_STREAM;
|
||||
+ break;
|
||||
+ }
|
||||
+ /* fall through */
|
||||
case GL_STATIC_READ:
|
||||
case GL_DYNAMIC_READ:
|
||||
case GL_STREAM_READ:
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="2f9828c"
|
||||
PKG_VERSION="69b787b"
|
||||
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="libjpeg-turbo"
|
||||
PKG_VERSION="1.3.0"
|
||||
PKG_VERSION="1.4.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libpng"
|
||||
PKG_VERSION="1.6.15"
|
||||
PKG_VERSION="1.6.16"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="tbs-linux-drivers"
|
||||
PKG_VERSION="141019"
|
||||
PKG_VERSION="141225"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="i386 x86_64"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -22,8 +22,12 @@ case "$LINUX" in
|
||||
PKG_VERSION="cuboxi-3.14-dc5edb8"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
3.18)
|
||||
PKG_VERSION="3.18.7"
|
||||
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="3.17.7"
|
||||
PKG_VERSION="3.17.8"
|
||||
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
esac
|
||||
@@ -133,6 +137,7 @@ make_target() {
|
||||
rm -f $INSTALL/lib/modules/*/source
|
||||
|
||||
( cd $ROOT
|
||||
rm -rf $ROOT/$BUILD/initramfs
|
||||
$SCRIPTS/install initramfs
|
||||
)
|
||||
|
||||
@@ -178,6 +183,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,32 +0,0 @@
|
||||
From aae8d9091ebefbb30c4e05f2c7d7c54c53a710e1 Mon Sep 17 00:00:00 2001
|
||||
From: root <root@localhost.localdomain>
|
||||
Date: Wed, 10 Dec 2014 13:46:30 +0000
|
||||
Subject: [PATCH 1/2] flush-flags
|
||||
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
index 47a126a..fec60de 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
@@ -351,12 +351,15 @@ 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 |= 1 << 16;
|
||||
/*
|
||||
* TLB invalidate requires a post-sync write.
|
||||
*/
|
||||
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.9.1
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
From 21feaa695380e86bc8e3301038374a3a65c05540 Mon Sep 17 00:00:00 2001
|
||||
From: root <root@localhost.localdomain>
|
||||
Date: Wed, 10 Dec 2014 13:47:00 +0000
|
||||
Subject: [PATCH 2/2] pmsi-ctl-around-ctx
|
||||
|
||||
Conflicts:
|
||||
drivers/gpu/drm/i915/i915_gem_context.c
|
||||
---
|
||||
drivers/gpu/drm/i915/i915_gem_context.c | 25 +++++++++++++++++++++++--
|
||||
drivers/gpu/drm/i915/i915_reg.h | 2 ++
|
||||
2 files changed, 25 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
index 3b99390..9567ba6 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
@@ -563,7 +563,10 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
struct intel_context *new_context,
|
||||
u32 hw_flags)
|
||||
{
|
||||
- int ret;
|
||||
+ u32 flags = hw_flags | MI_MM_SPACE_GTT;
|
||||
+ struct intel_engine_cs *engine;
|
||||
+ int num_rings;
|
||||
+ int ret, i;
|
||||
|
||||
/* w/a: If Flush TLB Invalidation Mode is enabled, driver must do a TLB
|
||||
* invalidation prior to MI_SET_CONTEXT. On GEN6 we don't set the value
|
||||
@@ -576,10 +579,22 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
return ret;
|
||||
}
|
||||
|
||||
- ret = intel_ring_begin(ring, 6);
|
||||
+ /* These flags are for resource streamer on HSW+ */
|
||||
+ if (!IS_HASWELL(ring->dev) && INTEL_INFO(ring->dev)->gen < 8)
|
||||
+ flags |= (MI_SAVE_EXT_STATE_EN | MI_RESTORE_EXT_STATE_EN);
|
||||
+
|
||||
+ num_rings = hweight32(INTEL_INFO(ring->dev)->ring_mask);
|
||||
+
|
||||
+ ret = intel_ring_begin(ring, 6 + 2*(num_rings*2 + 1));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
+ intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(num_rings));
|
||||
+ for_each_ring(engine, to_i915(ring->dev), i) {
|
||||
+ intel_ring_emit(ring, RING_PSMI_CTL(engine->mmio_base));
|
||||
+ intel_ring_emit(ring, _MASKED_BIT_ENABLE(GEN6_PSMI_SLEEP_MSG_DISABLE));
|
||||
+ }
|
||||
+
|
||||
/* WaProgramMiArbOnOffAroundMiSetContext:ivb,vlv,hsw,bdw,chv */
|
||||
if (INTEL_INFO(ring->dev)->gen >= 7)
|
||||
intel_ring_emit(ring, MI_ARB_ON_OFF | MI_ARB_DISABLE);
|
||||
@@ -604,6 +619,12 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
else
|
||||
intel_ring_emit(ring, MI_NOOP);
|
||||
|
||||
+ intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(num_rings));
|
||||
+ for_each_ring(engine, to_i915(ring->dev), i) {
|
||||
+ intel_ring_emit(ring, RING_PSMI_CTL(engine->mmio_base));
|
||||
+ intel_ring_emit(ring, _MASKED_BIT_DISABLE(GEN6_PSMI_SLEEP_MSG_DISABLE));
|
||||
+ }
|
||||
+
|
||||
intel_ring_advance(ring);
|
||||
|
||||
return ret;
|
||||
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
|
||||
index f29b44c..df02a15 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_reg.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_reg.h
|
||||
@@ -1029,6 +1029,7 @@ enum punit_power_well {
|
||||
#define GEN6_VERSYNC (RING_SYNC_1(VEBOX_RING_BASE))
|
||||
#define GEN6_VEVSYNC (RING_SYNC_2(VEBOX_RING_BASE))
|
||||
#define GEN6_NOSYNC 0
|
||||
+#define RING_PSMI_CTL(base) ((base)+0x50)
|
||||
#define RING_MAX_IDLE(base) ((base)+0x54)
|
||||
#define RING_HWS_PGA(base) ((base)+0x80)
|
||||
#define RING_HWS_PGA_GEN6(base) ((base)+0x2080)
|
||||
@@ -1354,6 +1355,7 @@ enum punit_power_well {
|
||||
#define GEN6_BLITTER_FBC_NOTIFY (1<<3)
|
||||
|
||||
#define GEN6_RC_SLEEP_PSMI_CONTROL 0x2050
|
||||
+#define GEN6_PSMI_SLEEP_MSG_DISABLE (1 << 0)
|
||||
#define GEN8_RC_SEMA_IDLE_MSG_DISABLE (1 << 12)
|
||||
#define GEN8_FF_DOP_CLOCK_GATE_DISABLE (1<<10)
|
||||
|
||||
--
|
||||
1.9.1
|
||||
|
||||
152
packages/linux/patches/3.17.8/linux-010-intel-fix-gpu-hang.patch
vendored
Normal file
152
packages/linux/patches/3.17.8/linux-010-intel-fix-gpu-hang.patch
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
commit 0da5fe8cc74e6aec119ea0cc56f3e2cc92caccec
|
||||
Author: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Date: Tue Dec 16 10:02:27 2014 +0000
|
||||
|
||||
drm/i915: Disable PSMI sleep messages on all rings around context switches
|
||||
|
||||
There exists a current workaround to prevent a hang on context switch
|
||||
should the ring go to sleep in the middle of the restore,
|
||||
WaProgramMiArbOnOffAroundMiSetContext (applicable to all gen7+). In
|
||||
spite of disabling arbitration (which prevents the ring from powering
|
||||
down during the critical section) we were still hitting hangs that had
|
||||
the hallmarks of the known erratum. That is we are still seeing hangs
|
||||
"on the last instruction in the context restore". By comparing -nightly
|
||||
(broken) with requests (working), we were able to deduce that it was the
|
||||
semaphore LRI cross-talk that reproduced the original failure. The key
|
||||
was that requests implemented deferred semaphore signalling, and
|
||||
disabling that, i.e. emitting the semaphore signal to every other ring
|
||||
after every batch restored the frequent hang. Explicitly disabling PSMI
|
||||
sleep on the RCS ring was insufficient, all the rings had to be awake to
|
||||
prevent the hangs. Fortunately, we can reduce the wakelock to the
|
||||
MI_SET_CONTEXT operation itself, and so should be able to limit the extra
|
||||
power implications.
|
||||
|
||||
Since the MI_ARB_ON_OFF workaround is listed for all gen7 and above
|
||||
products, we should apply this extra hammer for all of the same
|
||||
platforms despite so far that we have only been able to reproduce the
|
||||
hang on certain ivb and hsw models. The last question is whether we want
|
||||
to always use the extra hammer or only when we know semaphores are in
|
||||
operation. At the moment, we only use LRI on non-RCS rings for
|
||||
semaphores, but that may change in the future with the possibility of
|
||||
reintroducing this bug under subtle conditions.
|
||||
|
||||
v2: Make it explicit that the PSMI LRI are an extension to the original
|
||||
workaround for the other rings.
|
||||
v3: Bikeshedding variable names and whitespacing
|
||||
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80660
|
||||
Bugzilla: 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>
|
||||
Tested-by: Peter Frühberger <fritsch@xbmc.org>
|
||||
Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
||||
|
||||
Backported to 3.17:
|
||||
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
|
||||
|
||||
Conflicts:
|
||||
drivers/gpu/drm/i915/i915_gem_context.c
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
index 3b99390..7f76ea2 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
@@ -563,7 +563,12 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
struct intel_context *new_context,
|
||||
u32 hw_flags)
|
||||
{
|
||||
- int ret;
|
||||
+ const int num_rings =
|
||||
+ /* Use an extended w/a on ivb+ if signalling from other rings */
|
||||
+ i915_semaphore_is_enabled(ring->dev) ?
|
||||
+ hweight32(INTEL_INFO(ring->dev)->ring_mask) - 1 :
|
||||
+ 0;
|
||||
+ int len, i, ret;
|
||||
|
||||
/* w/a: If Flush TLB Invalidation Mode is enabled, driver must do a TLB
|
||||
* invalidation prior to MI_SET_CONTEXT. On GEN6 we don't set the value
|
||||
@@ -576,15 +581,30 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
return ret;
|
||||
}
|
||||
|
||||
- ret = intel_ring_begin(ring, 6);
|
||||
+ len = 4;
|
||||
+ if (INTEL_INFO(ring->dev)->gen >= 7)
|
||||
+ len += 2 + (num_rings ? 4*num_rings + 2 : 0);
|
||||
+
|
||||
+ ret = intel_ring_begin(ring, len);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* WaProgramMiArbOnOffAroundMiSetContext:ivb,vlv,hsw,bdw,chv */
|
||||
- if (INTEL_INFO(ring->dev)->gen >= 7)
|
||||
+ if (INTEL_INFO(ring->dev)->gen >= 7) {
|
||||
intel_ring_emit(ring, MI_ARB_ON_OFF | MI_ARB_DISABLE);
|
||||
- else
|
||||
- intel_ring_emit(ring, MI_NOOP);
|
||||
+ if (num_rings) {
|
||||
+ struct intel_engine_cs *signaller;
|
||||
+
|
||||
+ intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(num_rings));
|
||||
+ for_each_ring(signaller, to_i915(ring->dev), i) {
|
||||
+ if (signaller == ring)
|
||||
+ continue;
|
||||
+
|
||||
+ intel_ring_emit(ring, RING_PSMI_CTL(signaller->mmio_base));
|
||||
+ intel_ring_emit(ring, _MASKED_BIT_ENABLE(GEN6_PSMI_SLEEP_MSG_DISABLE));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
||||
intel_ring_emit(ring, MI_NOOP);
|
||||
intel_ring_emit(ring, MI_SET_CONTEXT);
|
||||
@@ -599,10 +619,21 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
*/
|
||||
intel_ring_emit(ring, MI_NOOP);
|
||||
|
||||
- if (INTEL_INFO(ring->dev)->gen >= 7)
|
||||
+ if (INTEL_INFO(ring->dev)->gen >= 7) {
|
||||
+ if (num_rings) {
|
||||
+ struct intel_engine_cs *signaller;
|
||||
+
|
||||
+ intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(num_rings));
|
||||
+ for_each_ring(signaller, to_i915(ring->dev), i) {
|
||||
+ if (signaller == ring)
|
||||
+ continue;
|
||||
+
|
||||
+ intel_ring_emit(ring, RING_PSMI_CTL(signaller->mmio_base));
|
||||
+ intel_ring_emit(ring, _MASKED_BIT_DISABLE(GEN6_PSMI_SLEEP_MSG_DISABLE));
|
||||
+ }
|
||||
+ }
|
||||
intel_ring_emit(ring, MI_ARB_ON_OFF | MI_ARB_ENABLE);
|
||||
- else
|
||||
- intel_ring_emit(ring, MI_NOOP);
|
||||
+ }
|
||||
|
||||
intel_ring_advance(ring);
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
|
||||
index f29b44c..df02a15 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_reg.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_reg.h
|
||||
@@ -1029,6 +1029,7 @@ enum punit_power_well {
|
||||
#define GEN6_VERSYNC (RING_SYNC_1(VEBOX_RING_BASE))
|
||||
#define GEN6_VEVSYNC (RING_SYNC_2(VEBOX_RING_BASE))
|
||||
#define GEN6_NOSYNC 0
|
||||
+#define RING_PSMI_CTL(base) ((base)+0x50)
|
||||
#define RING_MAX_IDLE(base) ((base)+0x54)
|
||||
#define RING_HWS_PGA(base) ((base)+0x80)
|
||||
#define RING_HWS_PGA_GEN6(base) ((base)+0x2080)
|
||||
@@ -1354,6 +1355,7 @@ enum punit_power_well {
|
||||
#define GEN6_BLITTER_FBC_NOTIFY (1<<3)
|
||||
|
||||
#define GEN6_RC_SLEEP_PSMI_CONTROL 0x2050
|
||||
+#define GEN6_PSMI_SLEEP_MSG_DISABLE (1 << 0)
|
||||
#define GEN8_RC_SEMA_IDLE_MSG_DISABLE (1 << 12)
|
||||
#define GEN8_FF_DOP_CLOCK_GATE_DISABLE (1<<10)
|
||||
|
||||
|
||||
37
packages/linux/patches/3.17.8/linux-011-intel-force-cs-stall.patch
vendored
Normal file
37
packages/linux/patches/3.17.8/linux-011-intel-force-cs-stall.patch
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
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. */
|
||||
49
packages/linux/patches/3.17.8/linux-012-intel-fix-ivb-stall.patch
vendored
Normal file
49
packages/linux/patches/3.17.8/linux-012-intel-fix-ivb-stall.patch
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
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.
|
||||
*/
|
||||
267
packages/linux/patches/3.17.8/linux-226-geniatech-t230-tuner.patch
vendored
Normal file
267
packages/linux/patches/3.17.8/linux-226-geniatech-t230-tuner.patch
vendored
Normal file
@@ -0,0 +1,267 @@
|
||||
diff -urN a/drivers/media/dvb-core/dvb-usb-ids.h b/drivers/media/dvb-core/dvb-usb-ids.h
|
||||
--- a/drivers/media/dvb-core/dvb-usb-ids.h 2014-12-28 12:15:39.000000000 +0200
|
||||
+++ b/drivers/media/dvb-core/dvb-usb-ids.h 2014-12-28 12:28:28.609442863 +0200
|
||||
@@ -354,6 +354,7 @@
|
||||
#define USB_PID_TELESTAR_STARSTICK_2 0x8000
|
||||
#define USB_PID_MSI_DIGI_VOX_MINI_III 0x8807
|
||||
#define USB_PID_SONY_PLAYTV 0x0003
|
||||
+#define USB_PID_MYGICA_T230 0xc688
|
||||
#define USB_PID_MYGICA_D689 0xd811
|
||||
#define USB_PID_ELGATO_EYETV_DIVERSITY 0x0011
|
||||
#define USB_PID_ELGATO_EYETV_DTT 0x0021
|
||||
diff -urN a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
|
||||
--- a/drivers/media/dvb-frontends/si2168.c 2014-12-28 12:15:39.000000000 +0200
|
||||
+++ b/drivers/media/dvb-frontends/si2168.c 2014-12-28 12:38:43.013424611 +0200
|
||||
@@ -308,14 +308,16 @@
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
- memcpy(cmd.args, "\x14\x00\x09\x10\xe3\x18", 6);
|
||||
+ memcpy(cmd.args, "\x14\x00\x09\x10\xe3\x08", 6);
|
||||
+ cmd.args[5] |= s->ts_clock_inv ? 0x00 : 0x10;
|
||||
cmd.wlen = 6;
|
||||
cmd.rlen = 4;
|
||||
ret = si2168_cmd_execute(s, &cmd);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
- memcpy(cmd.args, "\x14\x00\x08\x10\xd7\x15", 6);
|
||||
+ memcpy(cmd.args, "\x14\x00\x08\x10\xd7\x05", 6);
|
||||
+ cmd.args[5] |= s->ts_clock_inv ? 0x00 : 0x10;
|
||||
cmd.wlen = 6;
|
||||
cmd.rlen = 4;
|
||||
ret = si2168_cmd_execute(s, &cmd);
|
||||
@@ -670,6 +672,7 @@
|
||||
*config->i2c_adapter = s->adapter;
|
||||
*config->fe = &s->fe;
|
||||
s->ts_mode = config->ts_mode;
|
||||
+ s->ts_clock_inv = config->ts_clock_inv;
|
||||
s->fw_loaded = false;
|
||||
|
||||
i2c_set_clientdata(client, s);
|
||||
diff -urN a/drivers/media/dvb-frontends/si2168.h b/drivers/media/dvb-frontends/si2168.h
|
||||
--- a/drivers/media/dvb-frontends/si2168.h 2014-12-28 12:15:39.000000000 +0200
|
||||
+++ b/drivers/media/dvb-frontends/si2168.h 2014-12-28 12:36:31.273428525 +0200
|
||||
@@ -37,6 +37,9 @@
|
||||
|
||||
/* TS mode */
|
||||
u8 ts_mode;
|
||||
+
|
||||
+ /* TS clock inverted */
|
||||
+ bool ts_clock_inv;
|
||||
};
|
||||
|
||||
#define SI2168_TS_PARALLEL 0x06
|
||||
diff -urN a/drivers/media/dvb-frontends/si2168_priv.h b/drivers/media/dvb-frontends/si2168_priv.h
|
||||
--- a/drivers/media/dvb-frontends/si2168_priv.h 2014-12-28 12:15:39.000000000 +0200
|
||||
+++ b/drivers/media/dvb-frontends/si2168_priv.h 2014-12-28 12:36:54.893427823 +0200
|
||||
@@ -38,6 +38,7 @@
|
||||
bool active;
|
||||
bool fw_loaded;
|
||||
u8 ts_mode;
|
||||
+ bool ts_clock_inv;
|
||||
};
|
||||
|
||||
/* firmare command struct */
|
||||
diff -urN a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
|
||||
--- a/drivers/media/tuners/si2157.c 2014-12-28 12:15:39.000000000 +0200
|
||||
+++ b/drivers/media/tuners/si2157.c 2014-12-28 12:35:42.933429961 +0200
|
||||
@@ -112,11 +112,13 @@
|
||||
cmd.args[4] << 0;
|
||||
|
||||
#define SI2158_A20 ('A' << 24 | 58 << 16 | '2' << 8 | '0' << 0)
|
||||
+ #define SI2148_A20 ('A' << 24 | 48 << 16 | '2' << 8 | '0' << 0)
|
||||
#define SI2157_A30 ('A' << 24 | 57 << 16 | '3' << 8 | '0' << 0)
|
||||
#define SI2147_A30 ('A' << 24 | 47 << 16 | '3' << 8 | '0' << 0)
|
||||
|
||||
switch (chip_id) {
|
||||
case SI2158_A20:
|
||||
+ case SI2148_A20:
|
||||
fw_file = SI2158_A20_FIRMWARE;
|
||||
break;
|
||||
case SI2157_A30:
|
||||
diff -urN a/drivers/media/usb/dvb-usb/cxusb.c b/drivers/media/usb/dvb-usb/cxusb.c
|
||||
--- a/drivers/media/usb/dvb-usb/cxusb.c 2014-12-28 12:15:39.000000000 +0200
|
||||
+++ b/drivers/media/usb/dvb-usb/cxusb.c 2014-12-28 12:40:24.637421592 +0200
|
||||
@@ -1408,6 +1408,77 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int cxusb_mygica_t230_frontend_attach(struct dvb_usb_adapter *adap)
|
||||
+{
|
||||
+ struct dvb_usb_device *d = adap->dev;
|
||||
+ struct cxusb_state *st = d->priv;
|
||||
+ struct i2c_adapter *adapter;
|
||||
+ struct i2c_client *client_demod;
|
||||
+ struct i2c_client *client_tuner;
|
||||
+ struct i2c_board_info info;
|
||||
+ struct si2168_config si2168_config;
|
||||
+ struct si2157_config si2157_config;
|
||||
+
|
||||
+ /* Select required USB configuration */
|
||||
+ if (usb_set_interface(d->udev, 0, 0) < 0)
|
||||
+ err("set interface failed");
|
||||
+
|
||||
+ /* Unblock all USB pipes */
|
||||
+ usb_clear_halt(d->udev,
|
||||
+ usb_sndbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint));
|
||||
+ usb_clear_halt(d->udev,
|
||||
+ usb_rcvbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint));
|
||||
+ usb_clear_halt(d->udev,
|
||||
+ usb_rcvbulkpipe(d->udev, d->props.adapter[0].fe[0].stream.endpoint));
|
||||
+
|
||||
+ /* attach frontend */
|
||||
+ memset(&si2168_config, 0, sizeof(si2168_config));
|
||||
+ si2168_config.i2c_adapter = &adapter;
|
||||
+ si2168_config.fe = &adap->fe_adap[0].fe;
|
||||
+ si2168_config.ts_mode = SI2168_TS_PARALLEL;
|
||||
+ si2168_config.ts_clock_inv = 1;
|
||||
+ memset(&info, 0, sizeof(struct i2c_board_info));
|
||||
+ strlcpy(info.type, "si2168", I2C_NAME_SIZE);
|
||||
+ info.addr = 0x64;
|
||||
+ info.platform_data = &si2168_config;
|
||||
+ request_module(info.type);
|
||||
+ client_demod = i2c_new_device(&d->i2c_adap, &info);
|
||||
+ if (client_demod == NULL || client_demod->dev.driver == NULL)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ if (!try_module_get(client_demod->dev.driver->owner)) {
|
||||
+ i2c_unregister_device(client_demod);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
+ st->i2c_client_demod = client_demod;
|
||||
+
|
||||
+ /* attach tuner */
|
||||
+ memset(&si2157_config, 0, sizeof(si2157_config));
|
||||
+ si2157_config.fe = adap->fe_adap[0].fe;
|
||||
+ memset(&info, 0, sizeof(struct i2c_board_info));
|
||||
+ strlcpy(info.type, "si2157", I2C_NAME_SIZE);
|
||||
+ info.addr = 0x60;
|
||||
+ info.platform_data = &si2157_config;
|
||||
+ request_module(info.type);
|
||||
+ client_tuner = i2c_new_device(adapter, &info);
|
||||
+ if (client_tuner == NULL || client_tuner->dev.driver == NULL) {
|
||||
+ module_put(client_demod->dev.driver->owner);
|
||||
+ i2c_unregister_device(client_demod);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+ if (!try_module_get(client_tuner->dev.driver->owner)) {
|
||||
+ i2c_unregister_device(client_tuner);
|
||||
+ module_put(client_demod->dev.driver->owner);
|
||||
+ i2c_unregister_device(client_demod);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
+ st->i2c_client_tuner = client_tuner;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int cxusb_tt_ct2_4400_attach(struct dvb_usb_adapter *adap)
|
||||
{
|
||||
struct dvb_usb_device *d = adap->dev;
|
||||
@@ -1435,6 +1506,7 @@
|
||||
msleep(100);
|
||||
|
||||
/* attach frontend */
|
||||
+ memset(&si2168_config, 0, sizeof(si2168_config));
|
||||
si2168_config.i2c_adapter = &adapter;
|
||||
si2168_config.fe = &adap->fe_adap[0].fe;
|
||||
si2168_config.ts_mode = SI2168_TS_PARALLEL;
|
||||
@@ -1609,6 +1681,7 @@
|
||||
static struct dvb_usb_device_properties cxusb_aver_a868r_properties;
|
||||
static struct dvb_usb_device_properties cxusb_d680_dmb_properties;
|
||||
static struct dvb_usb_device_properties cxusb_mygica_d689_properties;
|
||||
+static struct dvb_usb_device_properties cxusb_mygica_t230_properties;
|
||||
static struct dvb_usb_device_properties cxusb_tt_ct2_4400_properties;
|
||||
|
||||
static int cxusb_probe(struct usb_interface *intf,
|
||||
@@ -1640,6 +1713,8 @@
|
||||
THIS_MODULE, NULL, adapter_nr) ||
|
||||
0 == dvb_usb_device_init(intf, &cxusb_mygica_d689_properties,
|
||||
THIS_MODULE, NULL, adapter_nr) ||
|
||||
+ 0 == dvb_usb_device_init(intf, &cxusb_mygica_t230_properties,
|
||||
+ THIS_MODULE, NULL, adapter_nr) ||
|
||||
0 == dvb_usb_device_init(intf, &cxusb_tt_ct2_4400_properties,
|
||||
THIS_MODULE, NULL, adapter_nr) ||
|
||||
0)
|
||||
@@ -1701,6 +1776,7 @@
|
||||
{ USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_D689) },
|
||||
{ USB_DEVICE(USB_VID_TECHNOTREND, USB_PID_TECHNOTREND_TVSTICK_CT2_4400) },
|
||||
{ USB_DEVICE(USB_VID_TECHNOTREND, USB_PID_TECHNOTREND_CONNECT_CT2_4650_CI) },
|
||||
+ { USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230) },
|
||||
{} /* Terminating entry */
|
||||
};
|
||||
MODULE_DEVICE_TABLE (usb, cxusb_table);
|
||||
@@ -2406,6 +2482,59 @@
|
||||
},
|
||||
}
|
||||
};
|
||||
+
|
||||
+static struct dvb_usb_device_properties cxusb_mygica_t230_properties = {
|
||||
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
|
||||
+
|
||||
+ .usb_ctrl = CYPRESS_FX2,
|
||||
+
|
||||
+ .size_of_priv = sizeof(struct cxusb_state),
|
||||
+
|
||||
+ .num_adapters = 1,
|
||||
+ .adapter = {
|
||||
+ {
|
||||
+ .num_frontends = 1,
|
||||
+ .fe = {{
|
||||
+ .streaming_ctrl = cxusb_streaming_ctrl,
|
||||
+ .frontend_attach = cxusb_mygica_t230_frontend_attach,
|
||||
+
|
||||
+ /* parameter for the MPEG2-data transfer */
|
||||
+ .stream = {
|
||||
+ .type = USB_BULK,
|
||||
+ .count = 5,
|
||||
+ .endpoint = 0x02,
|
||||
+ .u = {
|
||||
+ .bulk = {
|
||||
+ .buffersize = 8192,
|
||||
+ }
|
||||
+ }
|
||||
+ },
|
||||
+ } },
|
||||
+ },
|
||||
+ },
|
||||
+
|
||||
+ .power_ctrl = cxusb_d680_dmb_power_ctrl,
|
||||
+
|
||||
+ .i2c_algo = &cxusb_i2c_algo,
|
||||
+
|
||||
+ .generic_bulk_ctrl_endpoint = 0x01,
|
||||
+
|
||||
+ .rc.legacy = {
|
||||
+ .rc_interval = 100,
|
||||
+ .rc_map_table = rc_map_d680_dmb_table,
|
||||
+ .rc_map_size = ARRAY_SIZE(rc_map_d680_dmb_table),
|
||||
+ .rc_query = cxusb_d680_dmb_rc_query,
|
||||
+ },
|
||||
+
|
||||
+ .num_device_descs = 1,
|
||||
+ .devices = {
|
||||
+ {
|
||||
+ "Mygica T230 DVB-T/T2/C",
|
||||
+ { NULL },
|
||||
+ { &cxusb_table[22], NULL },
|
||||
+ },
|
||||
+ }
|
||||
+};
|
||||
|
||||
static struct usb_driver cxusb_driver = {
|
||||
.name = "dvb_usb_cxusb",
|
||||
diff -urN a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
|
||||
--- a/drivers/media/usb/em28xx/em28xx-dvb.c 2014-12-28 12:15:39.000000000 +0200
|
||||
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c 2014-12-28 12:41:05.041420392 +0200
|
||||
@@ -1531,6 +1531,7 @@
|
||||
struct si2157_config si2157_config;
|
||||
|
||||
/* attach demod */
|
||||
+ memset(&si2168_config, 0, sizeof(si2168_config));
|
||||
si2168_config.i2c_adapter = &adapter;
|
||||
si2168_config.fe = &dvb->fe[0];
|
||||
si2168_config.ts_mode = SI2168_TS_PARALLEL;
|
||||
18
packages/linux/patches/3.17.8/linux-227-ds3000-invalid-symbol-rate.patch
vendored
Normal file
18
packages/linux/patches/3.17.8/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;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user