mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
227 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9fd2df1fb2 | ||
|
|
1d926643e0 | ||
|
|
82cc26e2f5 | ||
|
|
d3da4b2b92 | ||
|
|
03c35a33a4 | ||
|
|
aaad92e0c2 | ||
|
|
b95ea98bfb | ||
|
|
21ea273e2b | ||
|
|
c809490a7f | ||
|
|
c35e6700a6 | ||
|
|
80bc687397 | ||
|
|
926d30c39f | ||
|
|
c70949e3ee | ||
|
|
585e900469 | ||
|
|
576107b936 | ||
|
|
5c59d1e91e | ||
|
|
4232f42c40 | ||
|
|
2457e4084e | ||
|
|
b4a7431eda | ||
|
|
85030b1831 | ||
|
|
a6fbd86000 | ||
|
|
8d9eafe5f8 | ||
|
|
e6c4aef562 | ||
|
|
6964e824db | ||
|
|
6553e7316e | ||
|
|
c02cca98c8 | ||
|
|
40f1d41f73 | ||
|
|
37b7f4da04 | ||
|
|
6770e8c120 | ||
|
|
88e4490573 | ||
|
|
44dd34ac49 | ||
|
|
764c5bf4af | ||
|
|
d861dbb84e | ||
|
|
ca2d5949a7 | ||
|
|
62ef48cde3 | ||
|
|
adbfbbf443 | ||
|
|
b7d12e65f9 | ||
|
|
e6418dd4e7 | ||
|
|
6399471598 | ||
|
|
172979b343 | ||
|
|
0b2b9cc0b3 | ||
|
|
4a6f01df12 | ||
|
|
2fede19e34 | ||
|
|
2fb38bab6b | ||
|
|
6160359076 | ||
|
|
af79a9a922 | ||
|
|
e0730911b5 | ||
|
|
86c5f70f7d | ||
|
|
686c55e47b | ||
|
|
f5cac9d7b9 | ||
|
|
02526479e9 | ||
|
|
9d3a64f285 | ||
|
|
1a47b4894e | ||
|
|
b41ae1a68e | ||
|
|
d86dd19f6f | ||
|
|
75f74dedd1 | ||
|
|
0901821711 | ||
|
|
56616cbf32 | ||
|
|
6a0dd6d844 | ||
|
|
ea23754c06 | ||
|
|
e4f3249975 | ||
|
|
5f22b159c3 | ||
|
|
0436b7f1eb | ||
|
|
d04830f956 | ||
|
|
2a94a1eff8 | ||
|
|
3e30fa98da | ||
|
|
768582c2a0 | ||
|
|
f221a22cb2 | ||
|
|
2efdea781e | ||
|
|
51abf5d596 | ||
|
|
53af4c1779 | ||
|
|
162bda0f92 | ||
|
|
426920ad55 | ||
|
|
9d2a180818 | ||
|
|
3222665392 | ||
|
|
a706c7f3bc | ||
|
|
9630bd71ea | ||
|
|
a9dad8ad2f | ||
|
|
ddd4f65455 | ||
|
|
7450343bdb | ||
|
|
bc3b8c9f11 | ||
|
|
e1d9e58905 | ||
|
|
499016c751 | ||
|
|
820d5e30d9 | ||
|
|
c3e33b2a45 | ||
|
|
aac25ae253 | ||
|
|
18b9bc2dc9 | ||
|
|
a48505ab0c | ||
|
|
4888b1f10e | ||
|
|
3e1d1f6f04 | ||
|
|
5052b85fd8 | ||
|
|
2f6b4399d7 | ||
|
|
72735c2e3c | ||
|
|
aeb73199aa | ||
|
|
fa60318337 | ||
|
|
deca9cec3f | ||
|
|
1e27005f56 | ||
|
|
437e9928b7 | ||
|
|
3509c72747 | ||
|
|
a5810eac91 | ||
|
|
657d5081b4 | ||
|
|
dba8c5d514 | ||
|
|
6c4e1ea6ed | ||
|
|
5bc64330e6 | ||
|
|
5baaa44621 | ||
|
|
a70bf305ef | ||
|
|
e5eb4f4e82 | ||
|
|
ba7b643c07 | ||
|
|
e06d8574f9 | ||
|
|
aab677c0f6 | ||
|
|
e0e69ca4ee | ||
|
|
387ce03e2a | ||
|
|
c9d41f94f1 | ||
|
|
8c7fc73ade | ||
|
|
f70d0eb59c | ||
|
|
51e2919e37 | ||
|
|
3f2afd2f82 | ||
|
|
82dae5275b | ||
|
|
9000f6673e | ||
|
|
812aba3bd1 | ||
|
|
8ff32706b9 | ||
|
|
ffed1fc27a | ||
|
|
42b95f6708 | ||
|
|
f0db46a8d7 | ||
|
|
94cb7aa852 | ||
|
|
0cf94edfe3 | ||
|
|
f37187d31b | ||
|
|
4823c1bc5c | ||
|
|
c3c336c315 | ||
|
|
7c5cd4bde9 | ||
|
|
0bb8da7305 | ||
|
|
6c2d00da81 | ||
|
|
5171e1cacf | ||
|
|
04620a8f2b | ||
|
|
7414c6f5c5 | ||
|
|
47887b1036 | ||
|
|
aef20f07d4 | ||
|
|
789ebf00cf | ||
|
|
980d270049 | ||
|
|
2028ae585e | ||
|
|
56117849c7 | ||
|
|
06be6bfd6a | ||
|
|
c4aab2e884 | ||
|
|
a47773db2a | ||
|
|
f69190f16c | ||
|
|
660fc73db2 | ||
|
|
732b80f246 | ||
|
|
04b46f85d8 | ||
|
|
c50d1de239 | ||
|
|
f60178dd33 | ||
|
|
92789cf463 | ||
|
|
56f4dee6a7 | ||
|
|
45297f3d6f | ||
|
|
c8b593f3e7 | ||
|
|
5eac99532e | ||
|
|
af389eb7c3 | ||
|
|
05800eba76 | ||
|
|
bf84fdcb6d | ||
|
|
5b6d7737d9 | ||
|
|
0cd3f16941 | ||
|
|
1ffa439e9e | ||
|
|
4b73be378e | ||
|
|
e332a9126d | ||
|
|
8829d4dbb0 | ||
|
|
fd098f2ce5 | ||
|
|
0d36cf1198 | ||
|
|
45255d08ab | ||
|
|
d63add9d5d | ||
|
|
5857829aa5 | ||
|
|
d894106fa0 | ||
|
|
dad8ffe5dd | ||
|
|
716f7810b4 | ||
|
|
1190302bb2 | ||
|
|
a08fd943ba | ||
|
|
fbb25f46f9 | ||
|
|
c87e2c75b2 | ||
|
|
4278770a23 | ||
|
|
7c9e35396f | ||
|
|
780b485c46 | ||
|
|
65ef7856b7 | ||
|
|
d97b981e33 | ||
|
|
5bd5616ca0 | ||
|
|
98f1ca693b | ||
|
|
d179fb6e4c | ||
|
|
1d5cc264e0 | ||
|
|
88daca031a | ||
|
|
ff0ac36bf0 | ||
|
|
f7e6ff4fbf | ||
|
|
cb4fa2166e | ||
|
|
e6b8098b67 | ||
|
|
775963a3ef | ||
|
|
eabe2263fe | ||
|
|
48ffc8bf83 | ||
|
|
347e237a44 | ||
|
|
ac863973c4 | ||
|
|
1d50c13bbe | ||
|
|
6cbd33fcf3 | ||
|
|
5a06e47061 | ||
|
|
8c31e470b7 | ||
|
|
2ad45e2c1e | ||
|
|
d129bfa9c5 | ||
|
|
cc71f29d29 | ||
|
|
8823bdaab7 | ||
|
|
059c90720d | ||
|
|
3bffe22ee0 | ||
|
|
62b5a4c985 | ||
|
|
d18ccf60fe | ||
|
|
200fba4f05 | ||
|
|
4fd9e28217 | ||
|
|
1b406f7b7c | ||
|
|
2745b4f2cf | ||
|
|
b26a9bfa0b | ||
|
|
abe7582545 | ||
|
|
5317164aba | ||
|
|
062f72ee73 | ||
|
|
f266c91e79 | ||
|
|
a83c01f79d | ||
|
|
d1327f6830 | ||
|
|
23751734e5 | ||
|
|
49340de1dd | ||
|
|
1d92e9fe7f | ||
|
|
0041d768d3 | ||
|
|
e2d4723a0f | ||
|
|
924a0a983b | ||
|
|
eb11f60f53 | ||
|
|
209b7fc289 | ||
|
|
2ef4e274a5 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -23,6 +23,9 @@ mkpkg-temp
|
||||
/sources
|
||||
/.work
|
||||
|
||||
# ccache
|
||||
/.ccache/
|
||||
|
||||
# backup files
|
||||
*.orig
|
||||
|
||||
|
||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "packages/unofficial"]
|
||||
path = packages/unofficial
|
||||
url = https://github.com/OpenELEC/unofficial-addons.git
|
||||
26
config/addon/xbmc.service.pluginsource.xml
Normal file
26
config/addon/xbmc.service.pluginsource.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="@PKG_ADDON_ID@"
|
||||
name="@ADDON_NAME@"
|
||||
version="@ADDON_VERSION@"
|
||||
provider-name="@PROVIDER_NAME@">
|
||||
<requires>
|
||||
<import addon="os.libreelec.tv" version="@OS_VERSION@"/>
|
||||
<import addon="xbmc.python" version="2.1.0"/>
|
||||
@REQUIRES@
|
||||
</requires>
|
||||
<extension point="xbmc.python.pluginsource" library="addon.py">
|
||||
<provides>@PKG_ADDON_PROVIDES@</provides>
|
||||
</extension>
|
||||
<extension point="xbmc.service">
|
||||
</extension>
|
||||
<extension point="xbmc.addon.metadata">
|
||||
<summary>@PKG_SHORTDESC@</summary>
|
||||
<description>
|
||||
@PKG_LONGDESC@
|
||||
</description>
|
||||
<disclaimer>
|
||||
@PKG_DISCLAIMER@
|
||||
</disclaimer>
|
||||
<platform>all</platform>
|
||||
</extension>
|
||||
</addon>
|
||||
@@ -1,20 +1,20 @@
|
||||
#!/bin/sh -x
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 LibreELEC Team
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# LibreELEC 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,
|
||||
# LibreELEC 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/>.
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
MOUNTPOINT="/tmp/LibreELEC-System"
|
||||
@@ -26,10 +26,10 @@ md5sumCheck() {
|
||||
if [ "$?" = "1" ]; then
|
||||
echo "#######################################################"
|
||||
echo "# #"
|
||||
echo "# LibreELEC failed md5 check - Installation will quit #"
|
||||
echo "# Invalid MD5 checksum - Installation stopped #"
|
||||
echo "# #"
|
||||
echo "# Your original download was probably corrupt. #"
|
||||
echo "# Please visit www.libreelec.tv and get another copy #"
|
||||
echo "# Your download was probably corrupt. #"
|
||||
echo "# Visit https://libreelec.tv to download again #"
|
||||
echo "# #"
|
||||
echo "#######################################################"
|
||||
exit 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
LIBREELEC_VERSION="7.0.1"
|
||||
LIBREELEC_VERSION="7.0.3"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="7.0"
|
||||
|
||||
BIN
distributions/LibreELEC/LibreELEC_40x40.png
Normal file
BIN
distributions/LibreELEC/LibreELEC_40x40.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 840 B |
@@ -2,7 +2,7 @@
|
||||
DISTRONAME="LibreELEC"
|
||||
|
||||
# short project description
|
||||
DESCRIPTION="LibreELEC is a fast and user-friendly Kodi Entertainment Center distribution."
|
||||
DESCRIPTION="LibreELEC is a fast and user-friendly Kodi media centre distribution."
|
||||
|
||||
# Welcome Message for e.g. SSH Server (up to 5 Lines)
|
||||
GREETING0="##############################################"
|
||||
|
||||
43
packages/addons/addon-depends/bash/package.mk
Normal file
43
packages/addons/addon-depends/bash/package.mk
Normal file
@@ -0,0 +1,43 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bash"
|
||||
PKG_VERSION="4.3.46"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/bash/bash.html"
|
||||
PKG_URL="ftp://ftp.cwru.edu/pub/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
PKG_SHORTDESC="The GNU Bourne Again shell"
|
||||
PKG_LONGDESC="The GNU Bourne Again shell"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
||||
--disable-shared \
|
||||
--with-curses \
|
||||
--enable-readline \
|
||||
--without-bash-malloc \
|
||||
--with-installed-readline"
|
||||
|
||||
pre_configure_target() {
|
||||
export LIBS="-lterminfo"
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="containerd"
|
||||
PKG_VERSION="d2f0386"
|
||||
PKG_VERSION="0366d7e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="APL"
|
||||
@@ -66,7 +66,6 @@ pre_make_target() {
|
||||
|
||||
make_target() {
|
||||
mkdir -p bin
|
||||
$GOLANG build -v -o bin/ctr -a -tags "static_build" -ldflags "$LDFLAGS" ./ctr
|
||||
$GOLANG build -v -o bin/containerd -a -tags "static_build" -ldflags "$LDFLAGS" ./containerd
|
||||
$GOLANG build -v -o bin/containerd-shim -a -tags "static_build" -ldflags "$LDFLAGS" ./containerd-shim
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="imagemagick"
|
||||
PKG_VERSION="6.9.5-5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="http://www.imagemagick.org/script/license.php"
|
||||
PKG_SITE="http://www.imagemagick.org/"
|
||||
PKG_URL="http://www.imagemagick.org/download/releases/ImageMagick-$PKG_VERSION.tar.xz"
|
||||
PKG_SOURCE_DIR="ImageMagick-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain libX11"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="graphics"
|
||||
PKG_SHORTDESC="ImageMagick"
|
||||
PKG_LONGDESC="Software suite to create, edit, compose, or convert bitmap images"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
||||
--enable-shared \
|
||||
--with-quantum-depth=8 \
|
||||
--enable-hdri=no \
|
||||
--disable-openmp"
|
||||
39
packages/addons/addon-depends/enet/package.mk
Normal file
39
packages/addons/addon-depends/enet/package.mk
Normal file
@@ -0,0 +1,39 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="enet"
|
||||
PKG_VERSION="1.3.13"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE=""
|
||||
PKG_SITE=""
|
||||
PKG_URL="http://enet.bespin.org/download/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="network"
|
||||
PKG_SHORTDESC="ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol)"
|
||||
PKG_LONGDESC="ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol)"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -r $INSTALL
|
||||
}
|
||||
47
packages/addons/addon-depends/faad2/package.mk
Normal file
47
packages/addons/addon-depends/faad2/package.mk
Normal file
@@ -0,0 +1,47 @@
|
||||
################################################################################
|
||||
# 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="faad2"
|
||||
PKG_VERSION="2.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.audiocoding.com/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/faac/faad2-src/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="faad: An MPEG-4 AAC decoder"
|
||||
PKG_LONGDESC="The FAAD project includes the AAC decoder FAAD2. It supports several MPEG-4 object types (LC, Main, LTP, HE AAC, PS) and file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless decoding as well as MP4 metadata tags. The codecs are compatible with standard-compliant audio applications using one or more of these profiles."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_MAINTAINER="Team LibreELEC (addons@libreelec.tv)"
|
||||
|
||||
# package specific configure options
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
||||
--disable-shared \
|
||||
--without-xmms \
|
||||
--without-drm \
|
||||
--without-mpeg4ip \
|
||||
--with-gnu-ld"
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur faad2-2.7-old/configure.in faad2-2.7-new/configure.in
|
||||
--- faad2-2.7-old/configure.in 2009-02-04 16:51:03.000000000 -0800
|
||||
+++ faad2-2.7-new/configure.in 2012-12-30 14:58:33.000000000 -0800
|
||||
@@ -25,7 +25,7 @@
|
||||
AC_PROG_MAKE_SET
|
||||
AC_CHECK_PROGS(RPMBUILD, rpmbuild, rpm)
|
||||
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
AC_ARG_WITH(xmms,[ --with-xmms compile XMMS-1 plugin],
|
||||
WITHXMMS=$withval, WITHXMMS=no)
|
||||
@@ -0,0 +1,28 @@
|
||||
diff -Naur faad2-2.7-old/common/mp4ff/Makefile.am faad2-2.7-new/common/mp4ff/Makefile.am
|
||||
--- faad2-2.7-old/common/mp4ff/Makefile.am 2009-02-06 06:24:21.000000000 -0800
|
||||
+++ faad2-2.7-new/common/mp4ff/Makefile.am 2009-02-11 05:36:14.000000000 -0800
|
||||
@@ -1,7 +1,7 @@
|
||||
-lib_LIBRARIES = libmp4ff.a
|
||||
-include_HEADERS = mp4ff.h mp4ffint.h
|
||||
+lib_LTLIBRARIES = libmp4ff.la
|
||||
+include_HEADERS = mp4ff.h mp4ffint.h mp4ff_int_types.h
|
||||
|
||||
-libmp4ff_a_CFLAGS = -DUSE_TAGGING=1
|
||||
+libmp4ff_la_CFLAGS = -DUSE_TAGGING=1
|
||||
|
||||
-libmp4ff_a_SOURCES = mp4ff.c mp4atom.c mp4meta.c mp4sample.c mp4util.c \
|
||||
- mp4tagupdate.c mp4ff.h mp4ffint.h mp4ff_int_types.h
|
||||
+libmp4ff_la_SOURCES = mp4ff.c mp4atom.c mp4meta.c mp4sample.c mp4util.c \
|
||||
+ mp4tagupdate.c mp4ff.h mp4ffint.h mp4ff_int_types.h
|
||||
diff -Naur faad2-2.7-old/frontend/Makefile.am faad2-2.7-new/frontend/Makefile.am
|
||||
--- faad2-2.7-old/frontend/Makefile.am 2009-02-06 08:03:37.000000000 -0800
|
||||
+++ faad2-2.7-new/frontend/Makefile.am 2009-02-11 05:35:52.000000000 -0800
|
||||
@@ -5,7 +5,7 @@
|
||||
-I$(top_srcdir)/common/mp4ff
|
||||
|
||||
faad_LDADD = $(top_builddir)/libfaad/libfaad.la \
|
||||
- $(top_builddir)/common/mp4ff/libmp4ff.a
|
||||
+ $(top_builddir)/common/mp4ff/libmp4ff.la
|
||||
|
||||
faad_SOURCES = main.c \
|
||||
audio.c audio.h \
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="go"
|
||||
PKG_VERSION="1.6.2"
|
||||
PKG_VERSION="1.6.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
|
||||
28
packages/addons/addon-depends/inadyn/libconfuse/package.mk
Normal file
28
packages/addons/addon-depends/inadyn/libconfuse/package.mk
Normal file
@@ -0,0 +1,28 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libconfuse"
|
||||
PKG_VERSION="3.0"
|
||||
PKG_LICENSE="https://github.com/martinh/libconfuse/blob/master/LICENSE"
|
||||
PKG_SITE="https://github.com/martinh/libconfuse"
|
||||
PKG_URL="https://github.com/martinh/libconfuse/archive/v$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="Small configuration file parser library for C"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
28
packages/addons/addon-depends/inadyn/libite/package.mk
Normal file
28
packages/addons/addon-depends/inadyn/libite/package.mk
Normal file
@@ -0,0 +1,28 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libite"
|
||||
PKG_VERSION="1.8.2"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/troglobit/libite"
|
||||
PKG_URL="https://github.com/troglobit/libite/archive/v$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="That missing frog DNA you've been looking for"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
39
packages/addons/addon-depends/libid3tag/package.mk
Normal file
39
packages/addons/addon-depends/libid3tag/package.mk
Normal file
@@ -0,0 +1,39 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libid3tag"
|
||||
PKG_VERSION="0.15.1b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.mars.org/home/rob/proj/mpeg/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/mad/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain zlib"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="library for id3 tagging"
|
||||
PKG_LONGDESC="library for id3 tagging"
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_MAINTAINER="Lukas Sabota (LTsmooth42@gmail.com)"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
56
packages/addons/addon-depends/libmad/package.mk
Normal file
56
packages/addons/addon-depends/libmad/package.mk
Normal file
@@ -0,0 +1,56 @@
|
||||
################################################################################
|
||||
# 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="libmad"
|
||||
PKG_VERSION="0.15.1b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.mars.org/home/rob/proj/mpeg/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/mad/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libmad: MPEG Audio Decoder"
|
||||
PKG_LONGDESC="MAD is a high-quality MPEG audio decoder. It currently supports MPEG-1 and the MPEG-2 extension to Lower Sampling Frequencies, as well as the so-called MPEG 2.5 format. All three audio layers (Layer I, Layer II, and Layer III a.k.a. MP3) are fully implemented."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
# package specific configure options
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
if [ "$TARGET_ARCH" = "x86_64" ] ; then
|
||||
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-accuracy --enable-fpm=64bit"
|
||||
fi
|
||||
|
||||
post_makeinstall_target() {
|
||||
mkdir -p $SYSROOT_PREFIX/usr/lib/pkgconfig
|
||||
cat > $SYSROOT_PREFIX/usr/lib/pkgconfig/mad.pc << "EOF"
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: mad
|
||||
Description: MPEG audio decoder
|
||||
Requires:
|
||||
Version: 0.15.1b
|
||||
Libs: -L${libdir} -lmad
|
||||
Cflags: -I${includedir}
|
||||
EOF
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur libmad-0.15.1b-old/configure.ac libmad-0.15.1b-new/configure.ac
|
||||
--- libmad-0.15.1b-old/configure.ac 2004-01-23 01:41:32.000000000 -0800
|
||||
+++ libmad-0.15.1b-new/configure.ac 2012-12-30 15:14:37.000000000 -0800
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
AM_INIT_AUTOMAKE
|
||||
|
||||
-AM_CONFIG_HEADER([config.h])
|
||||
+AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
dnl System type.
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac
|
||||
--- libmad-0.15.1b-orig/configure.ac 2007-07-01 12:58:13.000000000 -0600
|
||||
+++ libmad-0.15.1b/configure.ac 2007-07-01 12:59:13.000000000 -0600
|
||||
@@ -105,7 +105,7 @@
|
||||
shift
|
||||
;;
|
||||
-O2)
|
||||
- optimize="-O"
|
||||
+ optimize="-O2"
|
||||
shift
|
||||
;;
|
||||
-fomit-frame-pointer)
|
||||
@@ -0,0 +1,146 @@
|
||||
diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac
|
||||
--- libmad-0.15.1b-orig/configure.ac 2007-06-30 20:22:31.000000000 -0600
|
||||
+++ libmad-0.15.1b/configure.ac 2007-06-30 20:25:31.000000000 -0600
|
||||
@@ -122,74 +122,74 @@
|
||||
esac
|
||||
done
|
||||
|
||||
-if test "$GCC" = yes
|
||||
-then
|
||||
- if test -z "$arch"
|
||||
- then
|
||||
- case "$host" in
|
||||
- i386-*) ;;
|
||||
- i?86-*) arch="-march=i486" ;;
|
||||
- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
|
||||
- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
|
||||
- powerpc-*) ;;
|
||||
- mips*-agenda-*) arch="-mcpu=vr4100" ;;
|
||||
- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
|
||||
- esac
|
||||
- fi
|
||||
-
|
||||
- case "$optimize" in
|
||||
- -O|"-O "*)
|
||||
- optimize="-O"
|
||||
- optimize="$optimize -fforce-mem"
|
||||
- optimize="$optimize -fforce-addr"
|
||||
- : #x optimize="$optimize -finline-functions"
|
||||
- : #- optimize="$optimize -fstrength-reduce"
|
||||
- optimize="$optimize -fthread-jumps"
|
||||
- optimize="$optimize -fcse-follow-jumps"
|
||||
- optimize="$optimize -fcse-skip-blocks"
|
||||
- : #x optimize="$optimize -frerun-cse-after-loop"
|
||||
- : #x optimize="$optimize -frerun-loop-opt"
|
||||
- : #x optimize="$optimize -fgcse"
|
||||
- optimize="$optimize -fexpensive-optimizations"
|
||||
- optimize="$optimize -fregmove"
|
||||
- : #* optimize="$optimize -fdelayed-branch"
|
||||
- : #x optimize="$optimize -fschedule-insns"
|
||||
- optimize="$optimize -fschedule-insns2"
|
||||
- : #? optimize="$optimize -ffunction-sections"
|
||||
- : #? optimize="$optimize -fcaller-saves"
|
||||
- : #> optimize="$optimize -funroll-loops"
|
||||
- : #> optimize="$optimize -funroll-all-loops"
|
||||
- : #x optimize="$optimize -fmove-all-movables"
|
||||
- : #x optimize="$optimize -freduce-all-givs"
|
||||
- : #? optimize="$optimize -fstrict-aliasing"
|
||||
- : #* optimize="$optimize -fstructure-noalias"
|
||||
-
|
||||
- case "$host" in
|
||||
- arm*-*)
|
||||
- optimize="$optimize -fstrength-reduce"
|
||||
- ;;
|
||||
- mips*-*)
|
||||
- optimize="$optimize -fstrength-reduce"
|
||||
- optimize="$optimize -finline-functions"
|
||||
- ;;
|
||||
- i?86-*)
|
||||
- optimize="$optimize -fstrength-reduce"
|
||||
- ;;
|
||||
- powerpc-apple-*)
|
||||
- # this triggers an internal compiler error with gcc2
|
||||
- : #optimize="$optimize -fstrength-reduce"
|
||||
-
|
||||
- # this is really only beneficial with gcc3
|
||||
- : #optimize="$optimize -finline-functions"
|
||||
- ;;
|
||||
- *)
|
||||
- # this sometimes provokes bugs in gcc 2.95.2
|
||||
- : #optimize="$optimize -fstrength-reduce"
|
||||
- ;;
|
||||
- esac
|
||||
- ;;
|
||||
- esac
|
||||
-fi
|
||||
+#if test "$GCC" = yes
|
||||
+#then
|
||||
+# if test -z "$arch"
|
||||
+# then
|
||||
+# case "$host" in
|
||||
+# i386-*) ;;
|
||||
+# i?86-*) arch="-march=i486" ;;
|
||||
+# arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
|
||||
+# armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
|
||||
+# powerpc-*) ;;
|
||||
+# mips*-agenda-*) arch="-mcpu=vr4100" ;;
|
||||
+# mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
|
||||
+# esac
|
||||
+# fi
|
||||
+#
|
||||
+# case "$optimize" in
|
||||
+# -O|"-O "*)
|
||||
+# optimize="-O"
|
||||
+# optimize="$optimize -fforce-mem"
|
||||
+# optimize="$optimize -fforce-addr"
|
||||
+# : #x optimize="$optimize -finline-functions"
|
||||
+# : #- optimize="$optimize -fstrength-reduce"
|
||||
+# optimize="$optimize -fthread-jumps"
|
||||
+# optimize="$optimize -fcse-follow-jumps"
|
||||
+# optimize="$optimize -fcse-skip-blocks"
|
||||
+# : #x optimize="$optimize -frerun-cse-after-loop"
|
||||
+# : #x optimize="$optimize -frerun-loop-opt"
|
||||
+# : #x optimize="$optimize -fgcse"
|
||||
+# optimize="$optimize -fexpensive-optimizations"
|
||||
+# optimize="$optimize -fregmove"
|
||||
+# : #* optimize="$optimize -fdelayed-branch"
|
||||
+# : #x optimize="$optimize -fschedule-insns"
|
||||
+# optimize="$optimize -fschedule-insns2"
|
||||
+# : #? optimize="$optimize -ffunction-sections"
|
||||
+# : #? optimize="$optimize -fcaller-saves"
|
||||
+# : #> optimize="$optimize -funroll-loops"
|
||||
+# : #> optimize="$optimize -funroll-all-loops"
|
||||
+# : #x optimize="$optimize -fmove-all-movables"
|
||||
+# : #x optimize="$optimize -freduce-all-givs"
|
||||
+# : #? optimize="$optimize -fstrict-aliasing"
|
||||
+# : #* optimize="$optimize -fstructure-noalias"
|
||||
+#
|
||||
+# case "$host" in
|
||||
+# arm*-*)
|
||||
+# optimize="$optimize -fstrength-reduce"
|
||||
+# ;;
|
||||
+# mips*-*)
|
||||
+# optimize="$optimize -fstrength-reduce"
|
||||
+# optimize="$optimize -finline-functions"
|
||||
+# ;;
|
||||
+# i?86-*)
|
||||
+# optimize="$optimize -fstrength-reduce"
|
||||
+# ;;
|
||||
+# powerpc-apple-*)
|
||||
+# # this triggers an internal compiler error with gcc2
|
||||
+# : #optimize="$optimize -fstrength-reduce"
|
||||
+#
|
||||
+# # this is really only beneficial with gcc3
|
||||
+# : #optimize="$optimize -finline-functions"
|
||||
+# ;;
|
||||
+# *)
|
||||
+# # this sometimes provokes bugs in gcc 2.95.2
|
||||
+# : #optimize="$optimize -fstrength-reduce"
|
||||
+# ;;
|
||||
+# esac
|
||||
+# ;;
|
||||
+# esac
|
||||
+#fi
|
||||
|
||||
case "$host" in
|
||||
mips*-agenda-*)
|
||||
@@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libgdiplus"
|
||||
PKG_VERSION="4.2"
|
||||
PKG_REV="0"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/mono/libgdiplus"
|
||||
PKG_URL="https://github.com/mono/libgdiplus/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain giflib libjpeg-turbo tiff libXext libexif glib cairo"
|
||||
PKG_SECTION="tools"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SHORTDESC="libgiplus"
|
||||
PKG_LONGDESC="An Open Source implementation of the GDI+ API"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-shared \
|
||||
--with-libgif \
|
||||
--with-libjpeg \
|
||||
--with-libtiff"
|
||||
@@ -0,0 +1,32 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
. "$ROOT/packages/databases/sqlite/package.mk"
|
||||
|
||||
PKG_NAME="mono_sqlite"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="toolchain sqlite"
|
||||
PKG_SHORTDESC="sqlite for mono"
|
||||
PKG_LONGDESC="libsqlite built shared for mono"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-static --enable-shared"
|
||||
|
||||
unpack() {
|
||||
mkdir -p $PKG_BUILD
|
||||
cp -r $(get_build_dir sqlite)/* $PKG_BUILD/
|
||||
}
|
||||
41
packages/addons/addon-depends/moonlight-common-c/package.mk
Normal file
41
packages/addons/addon-depends/moonlight-common-c/package.mk
Normal file
@@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="moonlight-common-c"
|
||||
PKG_VERSION="1d058cb"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/irtimmer/moonlight-common-c"
|
||||
PKG_URL="https://github.com/irtimmer/moonlight-common-c/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="Shared C code for the implementation of Nvidia's GameStream protocol"
|
||||
PKG_LONGDESC="Shared C code for the implementation of Nvidia's GameStream protocol"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
:
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
59
packages/addons/addon-depends/moonlight-embedded/package.mk
Normal file
59
packages/addons/addon-depends/moonlight-embedded/package.mk
Normal file
@@ -0,0 +1,59 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="moonlight-embedded"
|
||||
PKG_VERSION="2.2.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/irtimmer/moonlight-embedded"
|
||||
PKG_URL="https://github.com/irtimmer/moonlight-embedded/archive/v$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain curl libcec pulseaudio ffmpeg systemd alsa-lib moonlight-common-c libevdev enet opus"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="Gamestream client for embedded systems"
|
||||
PKG_LONGDESC="Moonlight Embedded is an open source implementation of NVIDIA's GameStream, as used by the NVIDIA Shield, but built for Linux"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET bcm2835-driver"
|
||||
elif [ "$KODIPLAYER_DRIVER" = "libfslvpuwrap" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx-gpu-viv"
|
||||
elif [ "$KODIPLAYER_DRIVER" = "libamcodec" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libamcodec"
|
||||
elif [ "$DISPLAYSERVER" = "x11" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libvdpau SDL2 ffmpeg libxcb"
|
||||
fi
|
||||
|
||||
pre_build_target() {
|
||||
cp -a $(get_build_dir moonlight-common-c)/* $ROOT/$PKG_BUILD/third_party/moonlight-common-c
|
||||
}
|
||||
|
||||
configure_target() {
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
|
||||
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
|
||||
..
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt 2016-04-03 05:34:15.000000000 -0700
|
||||
+++ b/CMakeLists.txt 2016-05-04 14:33:19.840052271 -0700
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
set_property(TARGET moonlight PROPERTY COMPILE_DEFINITIONS ${MOONLIGHT_DEFINITIONS})
|
||||
target_include_directories(moonlight PRIVATE ${GAMESTREAM_INCLUDE_DIR} ${MOONLIGHT_COMMON_INCLUDE_DIR} ${OPUS_INCLUDE_DIRS} ${EVDEV_INCLUDE_DIRS} ${UDEV_INCLUDE_DIRS})
|
||||
-target_link_libraries(moonlight ${EVDEV_LIBRARIES} ${ALSA_LIBRARY} ${OPUS_LIBRARY} ${UDEV_LIBRARIES} ${CMAKE_DL_LIBS})
|
||||
+target_link_libraries(moonlight ${EVDEV_LIBRARIES} ${ALSA_LIBRARY} ${OPUS_LIBRARY} ${UDEV_LIBRARIES} ${CMAKE_DL_LIBS} m)
|
||||
|
||||
add_subdirectory(docs)
|
||||
|
||||
@@ -24,7 +24,7 @@ PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://mediaarea.net/en/MediaInfo/Download/Source"
|
||||
PKG_URL="http://mediaarea.net/download/source/libmediainfo/$PKG_VERSION/libmediainfo_$PKG_VERSION.tar.bz2"
|
||||
PKG_SOURCE_DIR="MediaInfoLib"
|
||||
PKG_DEPENDS_TARGET="toolchain libzen"
|
||||
PKG_DEPENDS_TARGET="toolchain libzen zlib"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files"
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mpg123"
|
||||
PKG_VERSION="1.23.6"
|
||||
PKG_REV="0"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPLv2"
|
||||
PKG_SITE="http://www.mpg123.org/"
|
||||
PKG_URL="http://netcologne.dl.sourceforge.net/project/$PKG_NAME/$PKG_NAME/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain alsa-lib SDL2"
|
||||
PKG_SECTION="tools"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SHORTDESC="mpg123"
|
||||
PKG_LONGDESC="A fast MP3 Player"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--disable-shared --enable-static"
|
||||
@@ -0,0 +1,43 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="squeezelite"
|
||||
PKG_VERSION="33cca7e"
|
||||
PKG_REV="0"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/ralph-irving/squeezelite"
|
||||
PKG_URL="https://github.com/ralph-irving/squeezelite/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain faad2 ffmpeg flac libmad libvorbis mpg123 soxr"
|
||||
PKG_SECTION="tools"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SHORTDESC="squeezelite"
|
||||
PKG_LONGDESC="A client for the Logitech Media Server"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_make_target() {
|
||||
OPTS="-DDSD -DFFMPEG -DRESAMPLE -DVISEXPORT"
|
||||
CFLAGS="$CFLAGS $OPTS"
|
||||
LDFLAGS="$LDFLAGS -lasound -lpthread -lm -lrt"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="Mozilla Public License"
|
||||
PKG_SITE="http://ftp.mozilla.org/"
|
||||
PKG_URL="http://ftp.mozilla.org/pub/security/nss/releases/NSS_3_22_3_RTM/src/nss-3.22.3-with-nspr-4.12.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain nss:host nspr"
|
||||
PKG_DEPENDS_TARGET="toolchain nss:host nspr zlib"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="security"
|
||||
PKG_SHORTDESC="The Network Security Services (NSS) package is a set of libraries designed to support cross-platform development of security-enabled client and server applications"
|
||||
|
||||
43
packages/addons/addon-depends/opus/package.mk
Normal file
43
packages/addons/addon-depends/opus/package.mk
Normal file
@@ -0,0 +1,43 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="opus"
|
||||
PKG_VERSION="1.1.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://www.opus-codec.org"
|
||||
PKG_URL="http://downloads.us.xiph.org/releases/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="Codec designed for interactive speech and audio transmission over the Internet"
|
||||
PKG_LONGDESC="Codec designed for interactive speech and audio transmission over the Internet"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
if [ "$TARGET_ARCH" = "arm" ]; then
|
||||
FIXED_POINT="--enable-fixed-point"
|
||||
else
|
||||
FIXED_POINT="--disable-fixed-point"
|
||||
fi
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
||||
--disable-shared \
|
||||
$FIXED_POINT"
|
||||
41
packages/addons/addon-depends/rpi_ws281x/package.mk
Normal file
41
packages/addons/addon-depends/rpi_ws281x/package.mk
Normal file
@@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="rpi_ws281x"
|
||||
PKG_VERSION="3e6ea50"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE=""
|
||||
PKG_SITE="https://github.com/hyperion-project/rpi_ws281x"
|
||||
PKG_URL="https://github.com/hyperion-project/rpi_ws281x/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION=""
|
||||
PKG_SHORTDESC="Userspace Raspberry Pi PWM library for WS281X LEDs"
|
||||
PKG_LONGDESC="Userspace Raspberry Pi PWM library for WS281X LEDs"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
:
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="runc"
|
||||
PKG_VERSION="e874369"
|
||||
PKG_VERSION="02f8fa7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="APL"
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="inotify-tools"
|
||||
PKG_VERSION="1df9af4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="http://wiki.github.com/rvoicilas/inotify-tools/"
|
||||
PKG_URL="https://github.com/rvoicilas/$PKG_NAME/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="tools"
|
||||
PKG_SHORTDESC="inotify-tools"
|
||||
PKG_LONGDESC="a C library and a set of command-line programs for Linux providing a simple interface to inotify"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
|
||||
makeinstall_target() {
|
||||
: nothing to do
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mc"
|
||||
PKG_VERSION="4.8.17"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.midnight-commander.org"
|
||||
PKG_URL="http://ftp.midnight-commander.org/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain libtool:host gettext:host glib pcre ncurses"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="tools"
|
||||
PKG_SHORTDESC="mc: visual file manager"
|
||||
PKG_LONGDESC="mc is a visual file manager, licensed under GNU General Public License and therefore qualifies as Free Software. It's a feature rich full-screen text mode application that allows you to copy, move and delete files and whole directory trees, search for files and run commands in the subshell. Internal viewer and editor are included"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--sysconfdir=/storage/.kodi/addons/virtual.system-tools/etc \
|
||||
--datadir=/storage/.kodi/addons/virtual.system-tools/data \
|
||||
--libdir=/storage/.kodi/addons/virtual.system-tools/mclib \
|
||||
--disable-mclib \
|
||||
--disable-aspell \
|
||||
--disable-vfs \
|
||||
--disable-doxygen-doc \
|
||||
--disable-doxygen-dot \
|
||||
--disable-doxygen-html \
|
||||
--with-sysroot=$SYSROOT_PREFIX \
|
||||
--with-screen=ncurses \
|
||||
--without-x \
|
||||
--with-gnu-ld \
|
||||
--without-libiconv-prefix \
|
||||
--without-libintl-prefix \
|
||||
--with-internal-edit \
|
||||
--without-diff-viewer \
|
||||
--with-subshell"
|
||||
|
||||
pre_configure_target() {
|
||||
export CFLAGS="$CFLAGS -I$SYSROOT_PREFIX/usr/include/ncurses"
|
||||
export LDFLAGS="$(echo $LDFLAGS | sed -e "s|-Wl,--as-needed||")"
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/storage/.kodi/addons/virtual.system-tools/data/locale
|
||||
rm -rf $INSTALL/storage/.kodi/addons/virtual.system-tools/data/mc/help/mc.hlp.*
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
From 38d4c655d322837574e957b4a824f4a0d1bb3b86 Mon Sep 17 00:00:00 2001
|
||||
From: rofl0r <retnyg@gmx.net>
|
||||
Date: Mon, 18 Jul 2016 22:19:56 +0100
|
||||
Subject: [PATCH] Ticket #3665: fix compatibility with netbsd curses.
|
||||
|
||||
The code that manipulates the ncurses backend into changing
|
||||
the key combination to generate SIGINT from CTRL-c to CTRL-g does
|
||||
so by accessing undocumented internal ncurses data structures.
|
||||
This breaks compilation with netbsd-curses[0], and could also break
|
||||
when the ncurses author decides to change internal structures in a
|
||||
future release.
|
||||
|
||||
Fix it by using a portable approach that works everywhere using libc
|
||||
primitives instead.
|
||||
|
||||
[0] https://github.com/sabotage-linux/netbsd-curses
|
||||
|
||||
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
|
||||
---
|
||||
lib/tty/tty-ncurses.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/tty/tty-ncurses.c b/lib/tty/tty-ncurses.c
|
||||
index efee8ec..76a21d2 100644
|
||||
--- a/lib/tty/tty-ncurses.c
|
||||
+++ b/lib/tty/tty-ncurses.c
|
||||
@@ -179,6 +179,7 @@ mc_tty_normalize_lines_char (const char *ch)
|
||||
void
|
||||
tty_init (gboolean mouse_enable, gboolean is_xterm)
|
||||
{
|
||||
+ struct termios mode;
|
||||
initscr ();
|
||||
|
||||
#ifdef HAVE_ESCDELAY
|
||||
@@ -194,11 +195,12 @@ tty_init (gboolean mouse_enable, gboolean is_xterm)
|
||||
ESCDELAY = 200;
|
||||
#endif /* HAVE_ESCDELAY */
|
||||
|
||||
+ tcgetattr (STDIN_FILENO, &mode);
|
||||
/* use Ctrl-g to generate SIGINT */
|
||||
- cur_term->Nttyb.c_cc[VINTR] = CTRL ('g'); /* ^g */
|
||||
+ mode.c_cc[VINTR] = CTRL ('g'); /* ^g */
|
||||
/* disable SIGQUIT to allow use Ctrl-\ key */
|
||||
- cur_term->Nttyb.c_cc[VQUIT] = NULL_VALUE;
|
||||
- tcsetattr (cur_term->Filedes, TCSANOW, &cur_term->Nttyb);
|
||||
+ mode.c_cc[VQUIT] = NULL_VALUE;
|
||||
+ tcsetattr (STDIN_FILENO, TCSANOW, &mode);
|
||||
|
||||
tty_start_interrupt_key ();
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From 2da86f2595157c68c2d49e6c2b08a508750878ed Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Borodin <aborodin@vmail.ru>
|
||||
Date: Tue, 9 Aug 2016 16:55:12 +0300
|
||||
Subject: [PATCH] Define NCURSES_CONST if curses library doesn't define it.
|
||||
|
||||
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
|
||||
---
|
||||
lib/tty/tty-ncurses.h | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/lib/tty/tty-ncurses.h b/lib/tty/tty-ncurses.h
|
||||
index 4f0e603..9962c7c 100644
|
||||
--- a/lib/tty/tty-ncurses.h
|
||||
+++ b/lib/tty/tty-ncurses.h
|
||||
@@ -20,6 +20,11 @@
|
||||
#include <ncursesw/curses.h>
|
||||
#endif /* USE_NCURSESW */
|
||||
|
||||
+/* netbsd-libcurses doesn't define NCURSES_CONST */
|
||||
+#ifndef NCURSES_CONST
|
||||
+#define NCURSES_CONST const
|
||||
+#endif
|
||||
+
|
||||
/*** typedefs(not structures) and defined constants **********************************************/
|
||||
|
||||
/*** enums ***************************************************************************************/
|
||||
|
||||
43
packages/addons/addon-depends/unclutter/package.mk
Normal file
43
packages/addons/addon-depends/unclutter/package.mk
Normal file
@@ -0,0 +1,43 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="unclutter"
|
||||
PKG_VERSION="1.09"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Public Domain"
|
||||
PKG_SITE="https://sourceforge.net/projects/unclutter/"
|
||||
PKG_URL="http://jaist.dl.sourceforge.net/project/unclutter/unclutter/source_$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain libX11"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="x11"
|
||||
PKG_SHORTDESC="Unclutter: Hide X11 Cursor"
|
||||
PKG_LONGDESC="Unclutter runs in the background of an X11 session and after a specified period of inactivity hides the cursor from display. When the cursor is moved its display is restored. Users may specify specific windows to be ignored by unclutter."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
rm -f Makefile
|
||||
LDFLAGS="$LDFLAGS -lX11" $MAKE unclutter
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p .install_pkg/usr/bin
|
||||
install -m 755 unclutter .install_pkg/usr/bin/
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-satip"
|
||||
PKG_VERSION="18c9b79"
|
||||
PKG_VERSION="7815821"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
47
packages/addons/addon-depends/xdotool/package.mk
Normal file
47
packages/addons/addon-depends/xdotool/package.mk
Normal file
@@ -0,0 +1,47 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xdotool"
|
||||
PKG_VERSION="2.20110530.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.semicomplete.com/projects/xdotool/"
|
||||
PKG_URL="http://semicomplete.googlecode.com/files/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain libXinerama libXtst"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="x11/app"
|
||||
PKG_SHORTDESC="This tool lets you simulate keyboard input and mouse activity, move and resize windows, etc."
|
||||
PKG_LONGDESC="This tool lets you simulate keyboard input and mouse activity, move and resize windows, etc."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_configure_target() {
|
||||
LDFLAGS="$LDFLAGS -lXext"
|
||||
}
|
||||
|
||||
make_target() {
|
||||
make xdotool.static
|
||||
mv xdotool.static xdotool
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # nothing to do here
|
||||
}
|
||||
@@ -1,3 +1,12 @@
|
||||
7.0.104
|
||||
- Update to 53.0.2785.92
|
||||
|
||||
7.0.103
|
||||
- add xdotool
|
||||
|
||||
7.0.102
|
||||
- add unclutter
|
||||
|
||||
7.0.101
|
||||
- update to version 50.0.2661.75
|
||||
|
||||
|
||||
@@ -19,17 +19,17 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="chromium"
|
||||
PKG_VERSION="50.0.2661.75"
|
||||
PKG_REV="101"
|
||||
PKG_VERSION="53.0.2785.92"
|
||||
PKG_REV="104"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="Mixed"
|
||||
PKG_SITE="http://www.chromium.org/Home"
|
||||
PKG_URL="https://commondatastorage.googleapis.com/chromium-browser-official/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain pciutils dbus libXcomposite libXcursor libXtst alsa-lib bzip2 yasm nss libXScrnSaver libexif ninja:host libpng harfbuzz atk gtk+ libva-vdpau-driver"
|
||||
PKG_DEPENDS_TARGET="toolchain pciutils dbus libXcomposite libXcursor libXtst alsa-lib bzip2 yasm nss libXScrnSaver libexif ninja:host libpng harfbuzz atk gtk+ libva-vdpau-driver unclutter xdotool"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="browser"
|
||||
PKG_SHORTDESC="Chromium Browser: the open-source web browser from Google"
|
||||
PKG_LONGDESC="Chromium Browser: the open-source web browser from Google"
|
||||
PKG_LONGDESC="Chromium Browser ($PKG_VERSION): the open-source web browser from Google"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
@@ -45,6 +45,8 @@ pre_make_target() {
|
||||
|
||||
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion
|
||||
touch chrome/test/data/webui/i18n_process_css_test.html
|
||||
|
||||
sed -i -e 's/@WIDEVINE_VERSION@/Pinkie Pie/' third_party/widevine/cdm/stub/widevine_cdm_version.h
|
||||
}
|
||||
|
||||
make_target() {
|
||||
@@ -171,4 +173,10 @@ addon() {
|
||||
|
||||
# libva-vdpau-driver
|
||||
cp -PL $(get_build_dir libva-vdpau-driver)/.install_pkg/usr/lib/va/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
# unclutter
|
||||
cp -P $(get_build_dir unclutter)/.install_pkg/usr/bin/unclutter $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
# xdotool
|
||||
cp -P $(get_build_dir xdotool)/xdotool $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
}
|
||||
|
||||
@@ -1,46 +1,3 @@
|
||||
diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_content_client.cc chromium-48.0.2564.82/chrome/common/chrome_content_client.cc
|
||||
--- chromium-48.0.2564.82.orig/chrome/common/chrome_content_client.cc 2016-01-20 22:01:20.000000000 +0200
|
||||
+++ chromium-48.0.2564.82/chrome/common/chrome_content_client.cc 2016-01-21 20:02:02.788936626 +0200
|
||||
@@ -158,7 +158,12 @@ void ComputeBuiltInPlugins(std::vector<c
|
||||
#if defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS) && \
|
||||
!defined(WIDEVINE_CDM_IS_COMPONENT)
|
||||
static bool skip_widevine_cdm_file_check = false;
|
||||
- if (PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, &path)) {
|
||||
+ bool widevine_cdm_present =
|
||||
+ skip_widevine_cdm_file_check ||
|
||||
+ (PathService::Get(chrome::FILE_WIDEVINE_CDM, &path) &&
|
||||
+ base::PathExists(path));
|
||||
+ if (widevine_cdm_present &&
|
||||
+ PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, &path)) {
|
||||
if (skip_widevine_cdm_file_check || base::PathExists(path)) {
|
||||
content::PepperPluginInfo widevine_cdm;
|
||||
widevine_cdm.is_out_of_process = true;
|
||||
diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_paths.cc chromium-48.0.2564.82/chrome/common/chrome_paths.cc
|
||||
--- chromium-48.0.2564.82.orig/chrome/common/chrome_paths.cc 2016-01-20 22:01:20.000000000 +0200
|
||||
+++ chromium-48.0.2564.82/chrome/common/chrome_paths.cc 2016-01-21 19:18:51.287978456 +0200
|
||||
@@ -375,6 +375,11 @@ bool PathProvider(int key, base::FilePat
|
||||
return false;
|
||||
cur = cur.AppendASCII(kWidevineCdmAdapterFileName);
|
||||
break;
|
||||
+ case chrome::FILE_WIDEVINE_CDM:
|
||||
+ if (!GetInternalPluginsDirectory(&cur))
|
||||
+ return false;
|
||||
+ cur = cur.AppendASCII(kWidevineCdmFileName);
|
||||
+ break;
|
||||
#endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS)
|
||||
case chrome::FILE_RESOURCES_PACK:
|
||||
#if defined(OS_MACOSX) && !defined(OS_IOS)
|
||||
diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_paths.h chromium-48.0.2564.82/chrome/common/chrome_paths.h
|
||||
--- chromium-48.0.2564.82.orig/chrome/common/chrome_paths.h 2016-01-14 03:49:22.000000000 +0200
|
||||
+++ chromium-48.0.2564.82/chrome/common/chrome_paths.h 2016-01-21 19:18:51.287978456 +0200
|
||||
@@ -99,6 +99,7 @@ enum {
|
||||
DIR_COMPONENT_WIDEVINE_CDM, // Directory that contains component-updated
|
||||
// Widevine CDM files.
|
||||
FILE_WIDEVINE_CDM_ADAPTER, // Full path to the Widevine CDM adapter file.
|
||||
+ FILE_WIDEVINE_CDM, // Full path to the Widevine CDM file.
|
||||
FILE_RESOURCES_PACK, // Full path to the .pak file containing
|
||||
// binary data (e.g., html files and images
|
||||
// used by internal pages).
|
||||
diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h
|
||||
--- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200
|
||||
+++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200
|
||||
@@ -48,6 +5,6 @@ diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_
|
||||
|
||||
#define WIDEVINE_CDM_AVAILABLE
|
||||
|
||||
+#define WIDEVINE_CDM_VERSION_STRING "Pinkie Pie"
|
||||
+#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@"
|
||||
+
|
||||
#endif // WIDEVINE_CDM_VERSION_H_
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
diff -up chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
|
||||
--- chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free 2016-08-15 13:07:29.279655676 -0400
|
||||
+++ chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-15 13:08:38.447317416 -0400
|
||||
@@ -41,6 +41,11 @@
|
||||
#include <errno.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
+#if OS(LINUX) && defined(MADV_FREE)
|
||||
+// Added in Linux 4.5, but it breaks the sandbox.
|
||||
+#undef MADV_FREE
|
||||
+#endif
|
||||
+
|
||||
#ifndef MADV_FREE
|
||||
#define MADV_FREE MADV_DONTNEED
|
||||
#endif
|
||||
@@ -1,89 +1,34 @@
|
||||
Description: Enables using VA-API hardware acceleration in Linux. The patch for bpf_gpu_policy_linux.cc initially came from https://codereview.chromium.org/15955009/diff/92001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc.
|
||||
From 0cc8e208feef2c49b8f2344005e97684b5e84012 Mon Sep 17 00:00:00 2001
|
||||
From: Knut Andre Tidemann <Knut.Andre.Tidemann@jotron.com>
|
||||
Date: Mon, 29 Aug 2016 20:57:27 +0200
|
||||
Subject: [PATCH] Enable VAAPI on Linux.
|
||||
|
||||
Index: dev.wily/content/common/gpu/media/gpu_video_decode_accelerator.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/common/gpu/media/gpu_video_decode_accelerator.cc
|
||||
+++ dev.wily/content/common/gpu/media/gpu_video_decode_accelerator.cc
|
||||
@@ -34,7 +34,7 @@
|
||||
#include "content/common/gpu/media/dxva_video_decode_accelerator_win.h"
|
||||
#elif defined(OS_MACOSX)
|
||||
#include "content/common/gpu/media/vt_video_decode_accelerator_mac.h"
|
||||
-#elif defined(OS_CHROMEOS)
|
||||
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
#if defined(USE_V4L2_CODEC)
|
||||
#include "content/common/gpu/media/v4l2_device.h"
|
||||
#include "content/common/gpu/media/v4l2_slice_video_decode_accelerator.h"
|
||||
@@ -164,7 +164,7 @@
|
||||
#if defined(OS_WIN)
|
||||
capabilities.supported_profiles =
|
||||
DXVAVideoDecodeAccelerator::GetSupportedProfiles();
|
||||
-#elif defined(OS_CHROMEOS)
|
||||
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
media::VideoDecodeAccelerator::SupportedProfiles vda_profiles;
|
||||
#if defined(USE_V4L2_CODEC)
|
||||
vda_profiles = V4L2VideoDecodeAccelerator::GetSupportedProfiles();
|
||||
@@ -251,6 +251,8 @@ void GpuVideoDecodeAccelerator::Initiali
|
||||
}
|
||||
#endif
|
||||
|
||||
+ VLOG(1) << "Initializing GPU video decode accelerator.";
|
||||
+
|
||||
// Array of Create..VDA() function pointers, maybe applicable to the current
|
||||
// platform. This list is ordered by priority of use and it should be the
|
||||
// same as the order of querying supported profiles of VDAs.
|
||||
@@ -361,11 +361,14 @@
|
||||
&GpuVideoDecodeAccelerator::CreateAndroidVDA};
|
||||
|
||||
for (const auto& create_vda_function : create_vda_fps) {
|
||||
+ VLOG(1) << "Testing create_vda_function.";
|
||||
video_decode_accelerator_ = (this->*create_vda_function)();
|
||||
if (!video_decode_accelerator_ ||
|
||||
!video_decode_accelerator_->Initialize(config, this))
|
||||
continue;
|
||||
|
||||
+ VLOG(1) << "Initialization successful.";
|
||||
+
|
||||
if (video_decode_accelerator_->CanDecodeOnIOThread()) {
|
||||
filter_ = new MessageFilter(this, host_route_id_);
|
||||
stub_->channel()->AddFilter(filter_.get());
|
||||
@@ -346,7 +351,9 @@ void GpuVideoDecodeAccelerator::BindImag
|
||||
scoped_ptr<media::VideoDecodeAccelerator>
|
||||
GpuVideoDecodeAccelerator::CreateVaapiVDA() {
|
||||
scoped_ptr<media::VideoDecodeAccelerator> decoder;
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+ VLOG(1) << "About to create new VAAPI video decode accelerator.";
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+ VLOG(1) << "Creating new VAAPI video decode accelerator.";
|
||||
decoder.reset(new VaapiVideoDecodeAccelerator(
|
||||
make_context_current_, base::Bind(&GpuVideoDecodeAccelerator::BindImage,
|
||||
base::Unretained(this))));
|
||||
Index: dev.wily/content/content_common.gypi
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/content_common.gypi
|
||||
+++ dev.wily/content/content_common.gypi
|
||||
@@ -856,7 +856,7 @@
|
||||
},
|
||||
],
|
||||
}],
|
||||
- ['chromeos==1', {
|
||||
+ ['chromeos==1 or desktop_linux==1', {
|
||||
'sources': [
|
||||
'common/gpu/media/accelerated_video_decoder.h',
|
||||
'common/gpu/media/h264_decoder.cc',
|
||||
@@ -908,7 +908,7 @@
|
||||
'common/gpu/media/tegra_v4l2_device.h',
|
||||
],
|
||||
}],
|
||||
- ['target_arch != "arm" and chromeos == 1', {
|
||||
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', {
|
||||
'dependencies': [
|
||||
'../media/media.gyp:media',
|
||||
'../third_party/libyuv/libyuv.gyp:libyuv',
|
||||
Index: dev.wily/content/content_gpu.gypi
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/content_gpu.gypi
|
||||
+++ dev.wily/content/content_gpu.gypi
|
||||
@@ -36,7 +36,7 @@
|
||||
---
|
||||
content/content_gpu.gypi | 2 +-
|
||||
content/public/common/content_switches.cc | 2 ++
|
||||
content/public/common/content_switches.h | 3 +++
|
||||
gpu/command_buffer/service/gpu_preferences.h | 2 +-
|
||||
gpu/config/software_rendering_list_json.cc | 11 -----------
|
||||
media/gpu/BUILD.gn | 10 +++++-----
|
||||
media/gpu/gpu_video_decode_accelerator_factory_impl.cc | 12 ++++++------
|
||||
media/gpu/gpu_video_decode_accelerator_factory_impl.h | 4 ++--
|
||||
media/gpu/ipc/service/BUILD.gn | 2 +-
|
||||
media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc | 6 +++---
|
||||
media/gpu/ipc/service/gpu_video_decode_accelerator.cc | 4 ++--
|
||||
media/gpu/ipc/service/gpu_video_encode_accelerator.cc | 10 +++++-----
|
||||
media/gpu/ipc/service/gpu_video_encode_accelerator.h | 4 ++--
|
||||
media/gpu/jpeg_decode_accelerator_unittest.cc | 8 ++++----
|
||||
media/gpu/video_decode_accelerator_unittest.cc | 4 ++--
|
||||
media/gpu/video_encode_accelerator_unittest.cc | 10 +++++-----
|
||||
media/media.gyp | 12 ++++++------
|
||||
media/media_gpu.gypi | 8 ++++----
|
||||
18 files changed, 54 insertions(+), 60 deletions(-)
|
||||
|
||||
diff --git a/content/content_gpu.gypi b/content/content_gpu.gypi
|
||||
index f2a21d9..f9df0e6 100644
|
||||
--- a/content/content_gpu.gypi
|
||||
+++ b/content/content_gpu.gypi
|
||||
@@ -49,7 +49,7 @@
|
||||
],
|
||||
},
|
||||
}],
|
||||
@@ -92,24 +37,11 @@ Index: dev.wily/content/content_gpu.gypi
|
||||
'include_dirs': [
|
||||
'<(DEPTH)/third_party/libva',
|
||||
],
|
||||
Index: dev.wily/content/content_tests.gypi
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/content_tests.gypi
|
||||
+++ dev.wily/content/content_tests.gypi
|
||||
@@ -1719,7 +1719,7 @@
|
||||
},
|
||||
]
|
||||
}],
|
||||
- ['chromeos==1 and target_arch != "arm"', {
|
||||
+ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', {
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'vaapi_jpeg_decoder_unittest',
|
||||
Index: dev.wily/content/public/common/content_switches.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/public/common/content_switches.cc
|
||||
+++ dev.wily/content/public/common/content_switches.cc
|
||||
@@ -926,7 +926,9 @@ const char kDisableWebAudio[]
|
||||
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
|
||||
index 244e371..48cdffb 100644
|
||||
--- a/content/public/common/content_switches.cc
|
||||
+++ b/content/public/common/content_switches.cc
|
||||
@@ -970,7 +970,9 @@ const char kDisableAudioSupportForDesktopShare[] =
|
||||
#if defined(OS_CHROMEOS)
|
||||
// Disables panel fitting (used for mirror mode).
|
||||
const char kDisablePanelFitting[] = "disable-panel-fitting";
|
||||
@@ -119,46 +51,38 @@ Index: dev.wily/content/public/common/content_switches.cc
|
||||
// Disables VA-API accelerated video encode.
|
||||
const char kDisableVaapiAcceleratedVideoEncode[] =
|
||||
"disable-vaapi-accelerated-video-encode";
|
||||
Index: dev.wily/content/public/common/content_switches.h
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/public/common/content_switches.h
|
||||
+++ dev.wily/content/public/common/content_switches.h
|
||||
@@ -272,6 +272,8 @@ CONTENT_EXPORT extern const char kDisabl
|
||||
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
|
||||
index be5cc9e..9585fb6 100644
|
||||
--- a/content/public/common/content_switches.h
|
||||
+++ b/content/public/common/content_switches.h
|
||||
@@ -278,6 +278,9 @@ CONTENT_EXPORT extern const char kEnableOSKOverscroll[];
|
||||
|
||||
#if defined(OS_CHROMEOS)
|
||||
CONTENT_EXPORT extern const char kDisablePanelFitting[];
|
||||
+#endif
|
||||
+
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
CONTENT_EXPORT extern const char kDisableVaapiAcceleratedVideoEncode[];
|
||||
#endif
|
||||
|
||||
Index: dev.wily/media/media.gyp
|
||||
===================================================================
|
||||
--- dev.wily.orig/media/media.gyp
|
||||
+++ dev.wily/media/media.gyp
|
||||
@@ -756,7 +756,7 @@
|
||||
],
|
||||
}],
|
||||
# For VaapiVideoEncodeAccelerator.
|
||||
- ['target_arch != "arm" and chromeos == 1', {
|
||||
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', {
|
||||
'sources': [
|
||||
'filters/h264_bitstream_buffer.cc',
|
||||
'filters/h264_bitstream_buffer.h',
|
||||
@@ -1359,7 +1359,7 @@
|
||||
'player_android',
|
||||
],
|
||||
}],
|
||||
- ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', {
|
||||
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1) and use_x11 == 1', {
|
||||
'sources': [
|
||||
'filters/h264_bitstream_buffer_unittest.cc',
|
||||
],
|
||||
Index: dev.wily/gpu/config/software_rendering_list_json.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/gpu/config/software_rendering_list_json.cc
|
||||
+++ dev.wily/gpu/config/software_rendering_list_json.cc
|
||||
@@ -481,17 +481,6 @@ const char kSoftwareRenderingListJson[]
|
||||
diff --git a/gpu/command_buffer/service/gpu_preferences.h b/gpu/command_buffer/service/gpu_preferences.h
|
||||
index 6fe15b0..ee31d3e 100644
|
||||
--- a/gpu/command_buffer/service/gpu_preferences.h
|
||||
+++ b/gpu/command_buffer/service/gpu_preferences.h
|
||||
@@ -37,7 +37,7 @@ struct GPU_EXPORT GpuPreferences {
|
||||
// Disables hardware acceleration of video decode, where available.
|
||||
bool disable_accelerated_video_decode = false;
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
// Disables VA-API accelerated video encode.
|
||||
bool disable_vaapi_accelerated_video_encode = false;
|
||||
#endif
|
||||
diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc
|
||||
index 9adc5f0..abf7bc5 100644
|
||||
--- a/gpu/config/software_rendering_list_json.cc
|
||||
+++ b/gpu/config/software_rendering_list_json.cc
|
||||
@@ -431,17 +431,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -173,318 +97,458 @@ Index: dev.wily/gpu/config/software_rendering_list_json.cc
|
||||
- ]
|
||||
- },
|
||||
- {
|
||||
"id": 49,
|
||||
"description": "NVidia GeForce GT 650M can cause the system to hang with flash 3D",
|
||||
"cr_bugs": [140175],
|
||||
@@ -1042,6 +1042,11 @@
|
||||
},
|
||||
{
|
||||
"os": {
|
||||
+ "type": "linux"
|
||||
+ }
|
||||
+ },
|
||||
+ {
|
||||
+ "os": {
|
||||
"type": "android"
|
||||
},
|
||||
"gl_renderer": ".*Google.*"
|
||||
Index: dev.wily/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
|
||||
+++ dev.wily/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
|
||||
@@ -21,6 +21,8 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/memory/scoped_ptr.h"
|
||||
#include "build/build_config.h"
|
||||
+// Auto-generated for dlopen libva libraries
|
||||
+#include "content/common/gpu/media/va_stubs.h"
|
||||
#include "content/common/sandbox_linux/sandbox_bpf_base_policy_linux.h"
|
||||
#include "content/common/sandbox_linux/sandbox_seccomp_bpf_linux.h"
|
||||
#include "content/common/set_process_title.h"
|
||||
@@ -31,6 +33,8 @@
|
||||
#include "sandbox/linux/syscall_broker/broker_file_permission.h"
|
||||
#include "sandbox/linux/syscall_broker/broker_process.h"
|
||||
#include "sandbox/linux/system_headers/linux_syscalls.h"
|
||||
+#include "third_party/libva/va/va.h"
|
||||
+#include "third_party/libva/va/va_x11.h"
|
||||
|
||||
using sandbox::arch_seccomp_data;
|
||||
using sandbox::bpf_dsl::Allow;
|
||||
@@ -40,6 +44,11 @@ using sandbox::syscall_broker::BrokerFil
|
||||
using sandbox::syscall_broker::BrokerProcess;
|
||||
using sandbox::SyscallSets;
|
||||
|
||||
+using content_common_gpu_media::kModuleVa;
|
||||
+using content_common_gpu_media::kModuleVa_x11;
|
||||
+using content_common_gpu_media::InitializeStubs;
|
||||
+using content_common_gpu_media::StubPathMap;
|
||||
+
|
||||
namespace content {
|
||||
|
||||
namespace {
|
||||
@@ -94,7 +103,7 @@ inline bool UseLibV4L2() {
|
||||
|
||||
bool IsAcceleratedVaapiVideoEncodeEnabled() {
|
||||
bool accelerated_encode_enabled = false;
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
const base::CommandLine& command_line =
|
||||
*base::CommandLine::ForCurrentProcess();
|
||||
accelerated_encode_enabled =
|
||||
@@ -299,27 +299,41 @@
|
||||
// inside the sandbox, so preload them now.
|
||||
if (IsAcceleratedVaapiVideoEncodeEnabled() ||
|
||||
IsAcceleratedVideoDecodeEnabled()) {
|
||||
- const char* I965DrvVideoPath = NULL;
|
||||
- const char* I965HybridDrvVideoPath = NULL;
|
||||
+ VLOG(1) << "Attempting to enable hardware video acceleration.";
|
||||
+ StubPathMap paths;
|
||||
+ paths[kModuleVa].push_back("libva.so.1");
|
||||
+ paths[kModuleVa_x11].push_back("libva-x11.so.1");
|
||||
+ if (!InitializeStubs(paths)) {
|
||||
+ VLOG(1) << "Failed to initialize stubs";
|
||||
+ return false;
|
||||
+ }
|
||||
|
||||
- if (IsArchitectureX86_64()) {
|
||||
- I965DrvVideoPath = "/usr/lib64/va/drivers/i965_drv_video.so";
|
||||
- I965HybridDrvVideoPath = "/usr/lib64/va/drivers/hybrid_drv_video.so";
|
||||
- } else if (IsArchitectureI386()) {
|
||||
- I965DrvVideoPath = "/usr/lib/va/drivers/i965_drv_video.so";
|
||||
+ // libva drivers won't get loaded even above two libraries get dlopened.
|
||||
+ // Thus, libva calls will fail after post sandbox stage.
|
||||
+ //
|
||||
+ // To get the va driver loaded before sandboxing, upstream simply dlopen
|
||||
+ // the hard-coded va driver path because ChromeOS is the only platform
|
||||
+ // that Google want to support libva.
|
||||
+ //
|
||||
+ // While generic linux distros ship va driver as anywhere they want.
|
||||
+ // Fortunately, the va driver will be loadded when vaInitialize() get
|
||||
+ // called.
|
||||
+ // So the following code is to call vaInitialize() before sandboxing.
|
||||
+ Display* x_display = XOpenDisplay(NULL);
|
||||
+ VADisplay va_display = vaGetDisplay(x_display);
|
||||
+ if (!vaDisplayIsValid(va_display)) {
|
||||
+ VLOG(1) << "Failed to call vaGetDisplay()";
|
||||
+ return false;
|
||||
}
|
||||
|
||||
- dlopen(I965DrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
|
||||
- if (I965HybridDrvVideoPath)
|
||||
- dlopen(I965HybridDrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
|
||||
- dlopen("libva.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
|
||||
-#if defined(USE_OZONE)
|
||||
- dlopen("libva-drm.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
|
||||
-#elif defined(USE_X11)
|
||||
- dlopen("libva-x11.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
|
||||
-#endif
|
||||
- }
|
||||
- }
|
||||
+ int major_version, minor_version;
|
||||
+ if (vaInitialize(va_display, &major_version, &minor_version)
|
||||
+ != VA_STATUS_SUCCESS) {
|
||||
+ VLOG(1) << "Failed to call vaInitialize()";
|
||||
+ return false;
|
||||
+ }
|
||||
+ } // end of IsAcceleratedVaapiVideoEncodeEnabled() || IsAcceleratedVideoDecodeEnabled()
|
||||
+ } // end of IsArchitectureX86_64() || IsArchitectureI386()
|
||||
|
||||
return true;
|
||||
"id": 50,
|
||||
"description": "Disable VMware software renderer on older Mesa",
|
||||
"cr_bugs": [145531, 332596, 571899],
|
||||
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
|
||||
index ba02e8a..c31bae2 100644
|
||||
--- a/media/gpu/BUILD.gn
|
||||
+++ b/media/gpu/BUILD.gn
|
||||
@@ -12,7 +12,7 @@ if (is_mac) {
|
||||
import("//build/config/mac/mac_sdk.gni")
|
||||
}
|
||||
Index: dev.wily/chrome/browser/about_flags.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/chrome/browser/about_flags.cc
|
||||
+++ dev.wily/chrome/browser/about_flags.cc
|
||||
@@ -854,7 +854,7 @@
|
||||
"disable-accelerated-video-decode",
|
||||
IDS_FLAGS_ACCELERATED_VIDEO_DECODE_NAME,
|
||||
IDS_FLAGS_ACCELERATED_VIDEO_DECODE_DESCRIPTION,
|
||||
- kOsMac | kOsWin | kOsCrOS,
|
||||
+ kOsAll,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
|
||||
},
|
||||
#if defined(USE_ASH)
|
||||
Index: dev.wily/content/common/gpu/media/vaapi_wrapper.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/common/gpu/media/vaapi_wrapper.cc
|
||||
+++ dev.wily/content/common/gpu/media/vaapi_wrapper.cc
|
||||
@@ -146,7 +146,7 @@ scoped_ptr<VaapiWrapper> VaapiWrapper::C
|
||||
VAProfile va_profile,
|
||||
const base::Closure& report_error_to_uma_cb) {
|
||||
if (!profile_infos_.Get().IsProfileSupported(mode, va_profile)) {
|
||||
- DVLOG(1) << "Unsupported va_profile: " << va_profile;
|
||||
+ VLOG(1) << "Unsupported va_profile: " << va_profile;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -305,15 +305,17 @@ VaapiWrapper::GetSupportedProfileInfosFo
|
||||
bool VaapiWrapper::VaInitialize(const base::Closure& report_error_to_uma_cb) {
|
||||
static bool vaapi_functions_initialized = PostSandboxInitialization();
|
||||
if (!vaapi_functions_initialized) {
|
||||
- bool running_on_chromeos = false;
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+ bool error_level_logging = false;
|
||||
+#if defined(OS_LINUX)
|
||||
+ error_level_logging = true;
|
||||
+#elif defined(OS_CHROMEOS)
|
||||
// When chrome runs on linux with chromeos=1, do not log error message
|
||||
// without VAAPI libraries.
|
||||
- running_on_chromeos = base::SysInfo::IsRunningOnChromeOS();
|
||||
+ error_level_logging = base::SysInfo::IsRunningOnChromeOS();
|
||||
#endif
|
||||
static const char kErrorMsg[] = "Failed to initialize VAAPI libs";
|
||||
- if (running_on_chromeos)
|
||||
- LOG(ERROR) << kErrorMsg;
|
||||
+ if (error_level_logging)
|
||||
+ VLOG(1) << kErrorMsg;
|
||||
else
|
||||
DVLOG(1) << kErrorMsg;
|
||||
return false;
|
||||
@@ -384,7 +386,7 @@ bool VaapiWrapper::IsEntrypointSupported
|
||||
if (std::find(supported_entrypoints.begin(),
|
||||
supported_entrypoints.end(),
|
||||
entrypoint) == supported_entrypoints.end()) {
|
||||
- DVLOG(1) << "Unsupported entrypoint";
|
||||
+ VLOG(1) << "Unsupported entrypoint";
|
||||
return false;
|
||||
-if (is_chromeos && current_cpu != "arm") {
|
||||
+if ((is_chromeos || is_linux) && current_cpu != "arm") {
|
||||
action("libva_generate_stubs") {
|
||||
extra_header = "va_stub_header.fragment"
|
||||
|
||||
@@ -54,7 +54,7 @@ if (is_chromeos && current_cpu != "arm") {
|
||||
}
|
||||
return true;
|
||||
@@ -408,8 +410,8 @@ bool VaapiWrapper::AreAttribsSupported_L
|
||||
if (attribs[i].type != required_attribs[i].type ||
|
||||
(attribs[i].value & required_attribs[i].value) !=
|
||||
required_attribs[i].value) {
|
||||
- DVLOG(1) << "Unsupported value " << required_attribs[i].value
|
||||
- << " for attribute type " << required_attribs[i].type;
|
||||
+ VLOG(1) << "Unsupported value " << required_attribs[i].value
|
||||
+ << " for attribute type " << required_attribs[i].type;
|
||||
return false;
|
||||
}
|
||||
|
||||
-if (is_chromeos && use_v4lplugin) {
|
||||
+if ((is_chromeos || is_linux) && use_v4lplugin) {
|
||||
action("libv4l2_generate_stubs") {
|
||||
extra_header = "v4l2_stub_header.fragment"
|
||||
|
||||
@@ -229,7 +229,7 @@ component("gpu") {
|
||||
}
|
||||
}
|
||||
@@ -427,46 +427,7 @@
|
||||
VAEntrypoint entrypoint,
|
||||
std::vector<VAConfigAttrib>& required_attribs,
|
||||
gfx::Size* resolution) {
|
||||
- va_lock_->AssertAcquired();
|
||||
- VAConfigID va_config_id;
|
||||
- VAStatus va_res = vaCreateConfig(
|
||||
- va_display_,
|
||||
- va_profile,
|
||||
- entrypoint,
|
||||
- &required_attribs[0],
|
||||
- required_attribs.size(),
|
||||
- &va_config_id);
|
||||
- VA_SUCCESS_OR_RETURN(va_res, "vaCreateConfig failed", false);
|
||||
-
|
||||
- // Calls vaQuerySurfaceAttributes twice. The first time is to get the number
|
||||
- // of attributes to prepare the space and the second time is to get all
|
||||
- // attributes.
|
||||
- unsigned int num_attribs;
|
||||
- va_res = vaQuerySurfaceAttributes(
|
||||
- va_display_, va_config_id, nullptr, &num_attribs);
|
||||
- VA_SUCCESS_OR_RETURN(va_res, "vaQuerySurfaceAttributes failed", false);
|
||||
- if (!num_attribs)
|
||||
- return false;
|
||||
-
|
||||
- std::vector<VASurfaceAttrib> attrib_list(
|
||||
- base::checked_cast<size_t>(num_attribs));
|
||||
-
|
||||
- va_res = vaQuerySurfaceAttributes(
|
||||
- va_display_, va_config_id, &attrib_list[0], &num_attribs);
|
||||
- VA_SUCCESS_OR_RETURN(va_res, "vaQuerySurfaceAttributes failed", false);
|
||||
-
|
||||
- resolution->SetSize(0, 0);
|
||||
- for (const auto& attrib : attrib_list) {
|
||||
- if (attrib.type == VASurfaceAttribMaxWidth)
|
||||
- resolution->set_width(attrib.value.value.i);
|
||||
- else if (attrib.type == VASurfaceAttribMaxHeight)
|
||||
- resolution->set_height(attrib.value.value.i);
|
||||
- }
|
||||
- if (resolution->IsEmpty()) {
|
||||
- LOG(ERROR) << "Codec resolution " << resolution->ToString()
|
||||
- << " cannot be zero.";
|
||||
- return false;
|
||||
- }
|
||||
+ resolution->SetSize(1920, 1088);
|
||||
|
||||
- if (is_chromeos) {
|
||||
+ if (is_chromeos || is_linux) {
|
||||
sources += [
|
||||
"accelerated_video_decoder.h",
|
||||
"h264_decoder.cc",
|
||||
@@ -356,7 +356,7 @@ component("gpu") {
|
||||
}
|
||||
}
|
||||
|
||||
-if (is_win || is_android || is_chromeos) {
|
||||
+if (is_win || is_android || is_chromeos || is_linux) {
|
||||
test("video_decode_accelerator_unittest") {
|
||||
sources = [
|
||||
"video_accelerator_unittest_helpers.h",
|
||||
@@ -425,7 +425,7 @@ if (is_win || is_android || is_chromeos) {
|
||||
}
|
||||
}
|
||||
|
||||
-if (is_chromeos || is_mac) {
|
||||
+if (is_chromeos || is_linux || is_mac) {
|
||||
test("video_encode_accelerator_unittest") {
|
||||
deps = [
|
||||
"//base",
|
||||
diff --git a/media/gpu/gpu_video_decode_accelerator_factory_impl.cc b/media/gpu/gpu_video_decode_accelerator_factory_impl.cc
|
||||
index 0a1a883..add2a8e 100644
|
||||
--- a/media/gpu/gpu_video_decode_accelerator_factory_impl.cc
|
||||
+++ b/media/gpu/gpu_video_decode_accelerator_factory_impl.cc
|
||||
@@ -14,7 +14,7 @@
|
||||
#include "media/gpu/dxva_video_decode_accelerator_win.h"
|
||||
#elif defined(OS_MACOSX)
|
||||
#include "media/gpu/vt_video_decode_accelerator_mac.h"
|
||||
-#elif defined(OS_CHROMEOS)
|
||||
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
#if defined(USE_V4L2_CODEC)
|
||||
#include "media/gpu/v4l2_device.h"
|
||||
#include "media/gpu/v4l2_slice_video_decode_accelerator.h"
|
||||
@@ -79,7 +79,7 @@
|
||||
#if defined(OS_WIN)
|
||||
capabilities.supported_profiles =
|
||||
DXVAVideoDecodeAccelerator::GetSupportedProfiles();
|
||||
-#elif defined(OS_CHROMEOS)
|
||||
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
VideoDecodeAccelerator::SupportedProfiles vda_profiles;
|
||||
#if defined(USE_V4L2_CODEC)
|
||||
vda_profiles = V4L2VideoDecodeAccelerator::GetSupportedProfiles();
|
||||
@@ -126,11 +126,11 @@ GpuVideoDecodeAcceleratorFactoryImpl::CreateVDA(
|
||||
#if defined(OS_WIN)
|
||||
&GpuVideoDecodeAcceleratorFactoryImpl::CreateDXVAVDA,
|
||||
#endif
|
||||
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
|
||||
&GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2VDA,
|
||||
&GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2SVDA,
|
||||
#endif
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
&GpuVideoDecodeAcceleratorFactoryImpl::CreateVaapiVDA,
|
||||
#endif
|
||||
#if defined(OS_MACOSX)
|
||||
@@ -169,7 +169,7 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
|
||||
std::unique_ptr<VideoDecodeAccelerator>
|
||||
GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2VDA(
|
||||
const gpu::GpuDriverBugWorkarounds& workarounds,
|
||||
@@ -199,7 +199,7 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
std::unique_ptr<VideoDecodeAccelerator>
|
||||
GpuVideoDecodeAcceleratorFactoryImpl::CreateVaapiVDA(
|
||||
const gpu::GpuDriverBugWorkarounds& workarounds,
|
||||
diff --git a/media/gpu/gpu_video_decode_accelerator_factory_impl.h b/media/gpu/gpu_video_decode_accelerator_factory_impl.h
|
||||
index a005a1c..5974972 100644
|
||||
--- a/media/gpu/gpu_video_decode_accelerator_factory_impl.h
|
||||
+++ b/media/gpu/gpu_video_decode_accelerator_factory_impl.h
|
||||
@@ -93,7 +93,7 @@
|
||||
const gpu::GpuDriverBugWorkarounds& workarounds,
|
||||
const gpu::GpuPreferences& gpu_preferences) const;
|
||||
#endif
|
||||
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
|
||||
std::unique_ptr<VideoDecodeAccelerator> CreateV4L2VDA(
|
||||
const gpu::GpuDriverBugWorkarounds& workarounds,
|
||||
const gpu::GpuPreferences& gpu_preferences) const;
|
||||
@@ -101,7 +101,7 @@
|
||||
const gpu::GpuDriverBugWorkarounds& workarounds,
|
||||
const gpu::GpuPreferences& gpu_preferences) const;
|
||||
#endif
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
std::unique_ptr<VideoDecodeAccelerator> CreateVaapiVDA(
|
||||
const gpu::GpuDriverBugWorkarounds& workarounds,
|
||||
const gpu::GpuPreferences& gpu_preferences) const;
|
||||
diff --git a/media/gpu/ipc/service/BUILD.gn b/media/gpu/ipc/service/BUILD.gn
|
||||
index 16d6922..78a4b94 100644
|
||||
--- a/media/gpu/ipc/service/BUILD.gn
|
||||
+++ b/media/gpu/ipc/service/BUILD.gn
|
||||
@@ -37,7 +37,7 @@ source_set("service") {
|
||||
"//third_party/mesa:mesa_headers",
|
||||
]
|
||||
|
||||
- if (is_chromeos && current_cpu != "arm") {
|
||||
+ if ((is_chromeos || is_linux) && current_cpu != "arm") {
|
||||
configs += [ "//third_party/libva:libva_config" ]
|
||||
}
|
||||
|
||||
diff --git a/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc b/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
|
||||
index bffc7fb..09dd0ef 100644
|
||||
--- a/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
|
||||
+++ b/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
|
||||
@@ -25,7 +25,7 @@
|
||||
#include "media/gpu/ipc/common/media_messages.h"
|
||||
#include "ui/gfx/geometry/size.h"
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
#if defined(ARCH_CPU_X86_FAMILY)
|
||||
#include "media/gpu/vaapi_jpeg_decode_accelerator.h"
|
||||
#endif
|
||||
@@ -381,7 +381,7 @@
|
||||
std::unique_ptr<JpegDecodeAccelerator> GpuJpegDecodeAccelerator::CreateV4L2JDA(
|
||||
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
|
||||
std::unique_ptr<JpegDecodeAccelerator> decoder;
|
||||
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
|
||||
scoped_refptr<V4L2Device> device =
|
||||
V4L2Device::Create(V4L2Device::kJpegDecoder);
|
||||
if (device)
|
||||
@@ -394,7 +394,7 @@
|
||||
std::unique_ptr<JpegDecodeAccelerator> GpuJpegDecodeAccelerator::CreateVaapiJDA(
|
||||
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
|
||||
std::unique_ptr<JpegDecodeAccelerator> decoder;
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
decoder.reset(new VaapiJpegDecodeAccelerator(io_task_runner));
|
||||
#endif
|
||||
return decoder;
|
||||
diff --git a/media/gpu/ipc/service/gpu_video_decode_accelerator.cc b/media/gpu/ipc/service/gpu_video_decode_accelerator.cc
|
||||
index 44f8a12..014a752 100644
|
||||
--- a/media/gpu/ipc/service/gpu_video_decode_accelerator.cc
|
||||
+++ b/media/gpu/ipc/service/gpu_video_decode_accelerator.cc
|
||||
@@ -58,7 +58,7 @@ static bool MakeDecoderContextCurrent(
|
||||
return true;
|
||||
}
|
||||
|
||||
Index: dev.wily/content/common/gpu/media/vaapi_video_decode_accelerator.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/common/gpu/media/vaapi_video_decode_accelerator.cc
|
||||
+++ dev.wily/content/common/gpu/media/vaapi_video_decode_accelerator.cc
|
||||
@@ -269,17 +269,17 @@ bool VaapiVideoDecodeAccelerator::Initia
|
||||
|
||||
base::AutoLock auto_lock(lock_);
|
||||
DCHECK_EQ(state_, kUninitialized);
|
||||
- DVLOG(2) << "Initializing VAVDA, profile: " << profile;
|
||||
+ VLOG(1) << "Initializing VAVDA, profile: " << profile;
|
||||
|
||||
#if defined(USE_X11)
|
||||
if (gfx::GetGLImplementation() != gfx::kGLImplementationDesktopGL) {
|
||||
- DVLOG(1) << "HW video decode acceleration not available without "
|
||||
+ VLOG(1) << "HW video decode acceleration not available without "
|
||||
"DesktopGL (GLX).";
|
||||
return false;
|
||||
}
|
||||
#elif defined(USE_OZONE)
|
||||
if (gfx::GetGLImplementation() != gfx::kGLImplementationEGLGLES2) {
|
||||
- DVLOG(1) << "HW video decode acceleration not available without "
|
||||
+ VLOG(1) << "HW video decode acceleration not available without "
|
||||
<< "EGLGLES2.";
|
||||
return false;
|
||||
}
|
||||
@@ -289,7 +289,7 @@ bool VaapiVideoDecodeAccelerator::Initia
|
||||
VaapiWrapper::kDecode, profile, base::Bind(&ReportToUMA, VAAPI_ERROR));
|
||||
|
||||
if (!vaapi_wrapper_.get()) {
|
||||
- DVLOG(1) << "Failed initializing VAAPI for profile " << profile;
|
||||
+ VLOG(1) << "Failed initializing VAAPI for profile " << profile;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ bool VaapiVideoDecodeAccelerator::Initia
|
||||
vp8_accelerator_.reset(new VaapiVP8Accelerator(this, vaapi_wrapper_.get()));
|
||||
decoder_.reset(new VP8Decoder(vp8_accelerator_.get()));
|
||||
} else {
|
||||
- DLOG(ERROR) << "Unsupported profile " << profile;
|
||||
+ VLOG(1) << "Unsupported profile " << profile;
|
||||
return false;
|
||||
}
|
||||
|
||||
Index: dev.wily/content/gpu/gpu_main.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/gpu/gpu_main.cc
|
||||
+++ dev.wily/content/gpu/gpu_main.cc
|
||||
@@ -66,7 +66,7 @@
|
||||
#include "content/common/sandbox_mac.h"
|
||||
-#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
|
||||
+#if ((defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
|
||||
static bool BindImage(const base::WeakPtr<gpu::GpuCommandBufferStub>& stub,
|
||||
uint32_t client_texture_id,
|
||||
uint32_t texture_target,
|
||||
@@ -170,7 +170,7 @@ GpuVideoDecodeAccelerator::GpuVideoDecodeAccelerator(
|
||||
get_gl_context_cb_ = base::Bind(&GetGLContext, stub_->AsWeakPtr());
|
||||
make_context_current_cb_ =
|
||||
base::Bind(&MakeDecoderContextCurrent, stub_->AsWeakPtr());
|
||||
-#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
|
||||
+#if ((defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
|
||||
bind_image_cb_ = base::Bind(&BindImage, stub_->AsWeakPtr());
|
||||
#endif
|
||||
get_gles2_decoder_cb_ = base::Bind(&GetGLES2Decoder, stub_->AsWeakPtr());
|
||||
diff --git a/media/gpu/ipc/service/gpu_video_encode_accelerator.cc b/media/gpu/ipc/service/gpu_video_encode_accelerator.cc
|
||||
index 62a8539..6367661 100644
|
||||
--- a/media/gpu/ipc/service/gpu_video_encode_accelerator.cc
|
||||
+++ b/media/gpu/ipc/service/gpu_video_encode_accelerator.cc
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "media/gpu/gpu_video_accelerator_util.h"
|
||||
#include "media/gpu/ipc/common/media_messages.h"
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
#if defined(USE_V4L2_CODEC)
|
||||
#include "media/gpu/v4l2_video_encode_accelerator.h"
|
||||
#endif
|
||||
@@ -196,10 +196,10 @@ std::vector<GpuVideoEncodeAccelerator::CreateVEAFp>
|
||||
GpuVideoEncodeAccelerator::CreateVEAFps(
|
||||
const gpu::GpuPreferences& gpu_preferences) {
|
||||
std::vector<GpuVideoEncodeAccelerator::CreateVEAFp> create_vea_fps;
|
||||
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
|
||||
create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateV4L2VEA);
|
||||
#endif
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
#include "content/common/gpu/media/vaapi_wrapper.h"
|
||||
if (!gpu_preferences.disable_vaapi_accelerated_video_encode)
|
||||
create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateVaapiVEA);
|
||||
#endif
|
||||
|
||||
@@ -227,7 +227,7 @@ int GpuMain(const MainFunctionParams& pa
|
||||
GetGpuInfoFromCommandLine(gpu_info, command_line);
|
||||
gpu_info.in_process_gpu = false;
|
||||
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
VaapiWrapper::PreSandboxInitialization();
|
||||
#endif
|
||||
|
||||
Index: dev.wily/content/common/gpu/client/command_buffer_proxy_impl.cc
|
||||
===================================================================
|
||||
--- dev.wily.orig/content/common/gpu/client/command_buffer_proxy_impl.cc
|
||||
+++ dev.wily/content/common/gpu/client/command_buffer_proxy_impl.cc
|
||||
@@ -561,8 +561,10 @@ bool CommandBufferProxyImpl::ProduceFron
|
||||
|
||||
scoped_ptr<media::VideoDecodeAccelerator>
|
||||
CommandBufferProxyImpl::CreateVideoDecoder() {
|
||||
+ TRACE_EVENT0("gpu", "CommandBufferProxyImpl::CreateVideoDecoder");
|
||||
if (!channel_)
|
||||
return scoped_ptr<media::VideoDecodeAccelerator>();
|
||||
+ VLOG(1) << "About to create GpuVideoDecodeAcceleratorHost.";
|
||||
return scoped_ptr<media::VideoDecodeAccelerator>(
|
||||
new GpuVideoDecodeAcceleratorHost(channel_, this));
|
||||
@@ -213,7 +213,7 @@ GpuVideoEncodeAccelerator::CreateVEAFps(
|
||||
return create_vea_fps;
|
||||
}
|
||||
|
||||
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
|
||||
// static
|
||||
std::unique_ptr<media::VideoEncodeAccelerator>
|
||||
GpuVideoEncodeAccelerator::CreateV4L2VEA() {
|
||||
@@ -225,7 +225,7 @@ GpuVideoEncodeAccelerator::CreateV4L2VEA() {
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
// static
|
||||
std::unique_ptr<media::VideoEncodeAccelerator>
|
||||
GpuVideoEncodeAccelerator::CreateVaapiVEA() {
|
||||
diff --git a/media/gpu/ipc/service/gpu_video_encode_accelerator.h b/media/gpu/ipc/service/gpu_video_encode_accelerator.h
|
||||
index cfe44d2..29da8b8 100644
|
||||
--- a/media/gpu/ipc/service/gpu_video_encode_accelerator.h
|
||||
+++ b/media/gpu/ipc/service/gpu_video_encode_accelerator.h
|
||||
@@ -80,10 +80,10 @@
|
||||
// platform.
|
||||
static std::vector<CreateVEAFp> CreateVEAFps(
|
||||
const gpu::GpuPreferences& gpu_preferences);
|
||||
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
|
||||
static std::unique_ptr<VideoEncodeAccelerator> CreateV4L2VEA();
|
||||
#endif
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
static std::unique_ptr<VideoEncodeAccelerator> CreateVaapiVEA();
|
||||
#endif
|
||||
#if defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
|
||||
diff --git a/media/gpu/jpeg_decode_accelerator_unittest.cc b/media/gpu/jpeg_decode_accelerator_unittest.cc
|
||||
index 5c68851..796ca54 100644
|
||||
--- a/media/gpu/jpeg_decode_accelerator_unittest.cc
|
||||
+++ b/media/gpu/jpeg_decode_accelerator_unittest.cc
|
||||
@@ -31,7 +31,7 @@
|
||||
#include "third_party/libyuv/include/libyuv.h"
|
||||
#include "ui/gfx/codec/jpeg_codec.h"
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
#if defined(USE_V4L2_CODEC)
|
||||
#include "media/gpu/v4l2_device.h"
|
||||
#include "media/gpu/v4l2_jpeg_decode_accelerator.h"
|
||||
@@ -135,10 +135,10 @@ JpegClient::JpegClient(const std::vector<TestImageFile*>& test_image_files,
|
||||
JpegClient::~JpegClient() {}
|
||||
|
||||
void JpegClient::CreateJpegDecoder() {
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
decoder_.reset(
|
||||
new VaapiJpegDecodeAccelerator(base::ThreadTaskRunnerHandle::Get()));
|
||||
-#elif defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
||||
+#elif (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
|
||||
scoped_refptr<V4L2Device> device =
|
||||
V4L2Device::Create(V4L2Device::kJpegDecoder);
|
||||
if (!device.get()) {
|
||||
@@ -575,7 +575,7 @@ int main(int argc, char** argv) {
|
||||
continue;
|
||||
LOG(FATAL) << "Unexpected switch: " << it->first << ":" << it->second;
|
||||
}
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
media::VaapiWrapper::PreSandboxInitialization();
|
||||
#endif
|
||||
|
||||
diff --git a/media/gpu/video_decode_accelerator_unittest.cc b/media/gpu/video_decode_accelerator_unittest.cc
|
||||
index f9f2711..936cd6d 100644
|
||||
--- a/media/gpu/video_decode_accelerator_unittest.cc
|
||||
+++ b/media/gpu/video_decode_accelerator_unittest.cc
|
||||
@@ -61,7 +61,7 @@
|
||||
#if defined(OS_WIN)
|
||||
#include "base/win/windows_version.h"
|
||||
#include "media/gpu/dxva_video_decode_accelerator_win.h"
|
||||
-#elif defined(OS_CHROMEOS)
|
||||
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
#if defined(USE_V4L2_CODEC)
|
||||
#include "media/gpu/v4l2_device.h"
|
||||
#include "media/gpu/v4l2_slice_video_decode_accelerator.h"
|
||||
@@ -1732,7 +1732,7 @@ int main(int argc, char** argv) {
|
||||
ui::OzonePlatform::InitializeForUI();
|
||||
#endif
|
||||
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
media::VaapiWrapper::PreSandboxInitialization();
|
||||
#endif
|
||||
|
||||
diff --git a/media/gpu/video_encode_accelerator_unittest.cc b/media/gpu/video_encode_accelerator_unittest.cc
|
||||
index b8b4dd9..07ddff5 100644
|
||||
--- a/media/gpu/video_encode_accelerator_unittest.cc
|
||||
+++ b/media/gpu/video_encode_accelerator_unittest.cc
|
||||
@@ -48,7 +48,7 @@
|
||||
#include "media/video/video_encode_accelerator.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
|
||||
#if defined(ARCH_CPU_ARMEL) || (defined(USE_OZONE) && defined(USE_V4L2_CODEC))
|
||||
#include "media/gpu/v4l2_video_encode_accelerator.h"
|
||||
#endif
|
||||
@@ -1063,8 +1063,8 @@
|
||||
|
||||
std::unique_ptr<VideoEncodeAccelerator> VEAClient::CreateV4L2VEA() {
|
||||
std::unique_ptr<VideoEncodeAccelerator> encoder;
|
||||
-#if defined(OS_CHROMEOS) && (defined(ARCH_CPU_ARMEL) || \
|
||||
- (defined(USE_OZONE) && defined(USE_V4L2_CODEC)))
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && (defined(ARCH_CPU_ARMEL) || \
|
||||
+ (defined(USE_OZONE) && defined(USE_V4L2_CODEC)))
|
||||
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
|
||||
if (device)
|
||||
encoder.reset(new V4L2VideoEncodeAccelerator(device));
|
||||
@@ -1074,7 +1074,7 @@
|
||||
|
||||
std::unique_ptr<VideoEncodeAccelerator> VEAClient::CreateVaapiVEA() {
|
||||
std::unique_ptr<VideoEncodeAccelerator> encoder;
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
encoder.reset(new VaapiVideoEncodeAccelerator());
|
||||
#endif
|
||||
return encoder;
|
||||
@@ -1812,7 +1812,7 @@ int main(int argc, char** argv) {
|
||||
LOG(FATAL) << "--measure_latency requires --run_at_fps enabled to work.";
|
||||
}
|
||||
|
||||
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
||||
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
|
||||
media::VaapiWrapper::PreSandboxInitialization();
|
||||
#endif
|
||||
|
||||
diff --git a/media/media.gyp b/media/media.gyp
|
||||
index a8a370e..9a92e5f 100644
|
||||
--- a/media/media.gyp
|
||||
+++ b/media/media.gyp
|
||||
@@ -752,7 +752,7 @@
|
||||
],
|
||||
}],
|
||||
# For VaapiVideoEncodeAccelerator.
|
||||
- ['target_arch != "arm" and chromeos == 1', {
|
||||
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', {
|
||||
'sources': [
|
||||
'filters/h264_bitstream_buffer.cc',
|
||||
'filters/h264_bitstream_buffer.h',
|
||||
@@ -1330,7 +1330,7 @@
|
||||
'cdm/cdm_adapter_unittest.cc',
|
||||
],
|
||||
}],
|
||||
- ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', {
|
||||
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1) and use_x11 == 1', {
|
||||
'sources': [
|
||||
'filters/h264_bitstream_buffer_unittest.cc',
|
||||
],
|
||||
@@ -2098,7 +2098,7 @@
|
||||
},
|
||||
],
|
||||
}],
|
||||
- ['chromeos==1', {
|
||||
+ ['chromeos==1 or desktop_linux==1', {
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'jpeg_decode_accelerator_unittest',
|
||||
@@ -2125,7 +2125,7 @@
|
||||
}
|
||||
]
|
||||
}],
|
||||
- ['chromeos==1 or OS=="mac"', {
|
||||
+ ['chromeos==1 or desktop_linux==1 or OS=="mac"', {
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'video_encode_accelerator_unittest',
|
||||
@@ -2171,7 +2171,7 @@
|
||||
}
|
||||
]
|
||||
}],
|
||||
- ['chromeos==1 or OS=="win" or OS=="android"', {
|
||||
+ ['chromeos==1 or desktop_linux==1 or OS=="win" or OS=="android"', {
|
||||
'targets': [
|
||||
{
|
||||
# GN: //media/gpu:video_decode_accelerator_unittest
|
||||
@@ -2264,7 +2264,7 @@
|
||||
],
|
||||
}],
|
||||
|
||||
- ['chromeos==1 and target_arch != "arm"', {
|
||||
+ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', {
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'vaapi_jpeg_decoder_unittest',
|
||||
diff --git a/media/media_gpu.gypi b/media/media_gpu.gypi
|
||||
index 70c1398..810ac32 100644
|
||||
--- a/media/media_gpu.gypi
|
||||
+++ b/media/media_gpu.gypi
|
||||
@@ -125,7 +125,7 @@
|
||||
'gpu/android_video_encode_accelerator.h',
|
||||
],
|
||||
}],
|
||||
- ['use_v4lplugin==1 and chromeos==1', {
|
||||
+ ['use_v4lplugin==1 and (chromeos==1 or desktop_linux==1)', {
|
||||
'direct_dependent_settings': {
|
||||
'defines': [
|
||||
'USE_LIBV4L2'
|
||||
@@ -174,7 +174,7 @@
|
||||
},
|
||||
],
|
||||
}],
|
||||
- ['chromeos==1', {
|
||||
+ ['chromeos==1 or desktop_linux==1', {
|
||||
'sources': [
|
||||
'gpu/accelerated_video_decoder.h',
|
||||
'gpu/h264_decoder.cc',
|
||||
@@ -191,7 +191,7 @@
|
||||
'gpu/vp9_picture.h',
|
||||
],
|
||||
}],
|
||||
- ['chromeos==1 and use_v4l2_codec==1', {
|
||||
+ ['(chromeos==1 or desktop_linux==1) and use_v4l2_codec==1', {
|
||||
'direct_dependent_settings': {
|
||||
'defines': [
|
||||
'USE_V4L2_CODEC'
|
||||
@@ -230,7 +230,7 @@
|
||||
'gpu/tegra_v4l2_device.h',
|
||||
],
|
||||
}],
|
||||
- ['target_arch != "arm" and chromeos == 1', {
|
||||
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux==1)', {
|
||||
'dependencies': [
|
||||
'../media/media.gyp:media',
|
||||
'../third_party/libyuv/libyuv.gyp:libyuv',
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
oe_setup_addon browser.chromium
|
||||
|
||||
# make sure we use "own" gtk/pango/nss/etc
|
||||
export LD_LIBRARY_PATH=/storage/.kodi/addons/browser.chromium/lib
|
||||
|
||||
@@ -27,7 +30,20 @@ export GDK_PIXBUF_MODULE_FILE=/storage/.kodi/addons/browser.chromium/config/pixb
|
||||
# font rendering in gtk widgets is brokeen with nvidia blob. use our Xdefaults
|
||||
export XENVIRONMENT=/storage/.kodi/addons/browser.chromium/config/Xdefaults
|
||||
|
||||
# start unclutter
|
||||
if [ "$HIDE_CURSOR" == "true" ]
|
||||
then
|
||||
unclutter &
|
||||
UNCLUTTER_PID=$!
|
||||
fi
|
||||
|
||||
# start chromium
|
||||
LD_PRELOAD=/usr/lib/libGL.so /storage/.kodi/addons/browser.chromium/bin/chromium.bin \
|
||||
--user-data-dir=/storage/.kodi/userdata/addon_data/browser.chromium/profile \
|
||||
--test-type $@
|
||||
|
||||
# kill unclutter
|
||||
if [ "$HIDE_CURSOR" == "true" ]
|
||||
then
|
||||
kill $UNCLUTTER_PID
|
||||
fi
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<string id="1025">Default Homepage</string>
|
||||
<string id="1026">Use Custom Audio Device</string>
|
||||
<string id="1027">Audio Device</string>
|
||||
<string id="1028">Hide Cursor</string>
|
||||
<string id="1030">Chromium Actions</string>
|
||||
<string id="1031">Install libwidevinecdm.so (Netflix Support)</string>
|
||||
<string id="1032">Install libpepflashplayer.so (Flash Player Support)</string>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<setting id="HOMEPAGE" type="text" label="1025" default="https://libreelec.tv" />
|
||||
<setting id="USE_CUST_AUDIODEVICE" type="bool" label="1026" default="false" />
|
||||
<setting id="CUST_AUDIODEVICE_STR" type="text" label="1027" visible="eq(-1,true)" subsetting="true" default="" />
|
||||
<setting id="HIDE_CURSOR" type="bool" label="1028" default="false" />
|
||||
</category>
|
||||
<category label="1001">
|
||||
<setting label="1030" type="lsep"/>
|
||||
|
||||
2
packages/addons/driver/sapphire/changelog.txt
Normal file
2
packages/addons/driver/sapphire/changelog.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
7.0.100
|
||||
- Initial add-on
|
||||
BIN
packages/addons/driver/sapphire/icon/icon.png
Normal file
BIN
packages/addons/driver/sapphire/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
76
packages/addons/driver/sapphire/package.mk
Normal file
76
packages/addons/driver/sapphire/package.mk
Normal file
@@ -0,0 +1,76 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sapphire"
|
||||
PKG_VERSION="6.6"
|
||||
PKG_REV="100"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="https://libreelec.tv"
|
||||
PKG_URL="http://www.rtr.ca/sapphire_remote/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain linux bash"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="driver.remote"
|
||||
PKG_SHORTDESC="A Linux driver to add support for sapphire remotes"
|
||||
PKG_LONGDESC="A Linux driver to add support for sapphire remotes"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Sapphire Remote Driver"
|
||||
PKG_ADDON_TYPE="xbmc.service"
|
||||
PKG_ADDON_REPOVERSION="8.0"
|
||||
|
||||
if [ -f $SYSROOT_PREFIX/usr/include/linux/input-event-codes.h ]; then
|
||||
INPUT_H="$SYSROOT_PREFIX/usr/include/linux/input-event-codes.h"
|
||||
else
|
||||
INPUT_H="$SYSROOT_PREFIX/usr/include/linux/input.h"
|
||||
fi
|
||||
|
||||
make_target() {
|
||||
KVER=$(kernel_version) KDIR=$(kernel_path) INPUT_H=$INPUT_H make
|
||||
}
|
||||
|
||||
post_make_target() {
|
||||
sed -i -e 's|modprobe sapphire|insmod /storage/.kodi/addons/driver.remote.sapphire/lib/sapphire.ko|' \
|
||||
-e 's|/etc/sapphire.keymap|/storage/.kodi/userdata/addon_data/driver.remote.sapphire/sapphire.keymap|' \
|
||||
-e 's|/usr/local/bin/sapphire_keymap.sh|/storage/.kodi/addons/driver.remote.sapphire/bin/sapphire_keymap.sh|' \
|
||||
-e 's|\&\& /usr/local/bin/sapphire_keymap.sh|\&\& /storage/.kodi/addons/driver.remote.sapphire/bin/sapphire_keymap.sh /storage/.kodi/userdata/addon_data/driver.remote.sapphire/sapphire.keymap|' \
|
||||
sapphire_startup.sh
|
||||
|
||||
sed -i -e 's|\#\!/bin/bash|\#\!/storage/.kodi/addons/driver.remote.sapphire/bin/bash|' \
|
||||
sapphire_startup.sh sapphire_keymap.sh
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib/
|
||||
cp $PKG_BUILD/*.ko $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/etc
|
||||
cp $PKG_BUILD/keymap.default $ADDON_BUILD/$PKG_ADDON_ID/etc
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/
|
||||
cp $PKG_BUILD/sapphire_startup.sh $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/sapphire_keymap.sh $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
# bash
|
||||
cp $(get_build_dir bash)/.install_pkg/usr/bin/bash $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
diff -Naur a/Makefile b/Makefile
|
||||
--- a/Makefile 2016-04-24 18:28:49.000000000 -0700
|
||||
+++ b/Makefile 2016-07-09 13:39:17.008211023 -0700
|
||||
@@ -8,14 +8,14 @@
|
||||
BLACKLIST=/etc/modprobe.d/blacklist-$(CONFLICTS).conf
|
||||
KEYMAP_SCRIPT=sapphire_keymap.sh
|
||||
EXTRACT_KEYDEFS=extract_keydefs.sh
|
||||
-INPUT_H=$(shell [ -e /usr/include/linux/input-event-codes.h ] && echo /usr/include/linux/input-event-codes.h || echo /usr/include/linux/input.h)
|
||||
+INPUT_H ?= $(shell [ -e /usr/include/linux/input-event-codes.h ] && echo /usr/include/linux/input-event-codes.h || echo /usr/include/linux/input.h)
|
||||
|
||||
## MODPARMS is not used any more, but we have to nuke old copies to prevent issues:
|
||||
MODPARMS=/etc/modprobe.d/$(MODNAME).conf
|
||||
|
||||
CWD = $(shell pwd -P)
|
||||
KVER ?= $(shell uname -r)
|
||||
-KDIR = /lib/modules/$(KVER)
|
||||
+KDIR ?= /lib/modules/$(KVER)
|
||||
obj-m += $(MODNAME).o
|
||||
|
||||
#EXTRA_CFLAGS += -Werror
|
||||
@@ -31,7 +31,7 @@
|
||||
@exit 1
|
||||
|
||||
kmod:
|
||||
- $(MAKE) -C $(KDIR)/build M=$(CWD) modules
|
||||
+ $(MAKE) -C $(KDIR) M=$(CWD) modules
|
||||
|
||||
$(MODNAME).ko: $(MODSOURCE) $(MODNAME).h
|
||||
$(MAKE) kmod
|
||||
25
packages/addons/driver/sapphire/source/bin/sapphire-config
Executable file
25
packages/addons/driver/sapphire/source/bin/sapphire-config
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
oe_setup_addon driver.remote.sapphire
|
||||
|
||||
if [ ! -f $ADDON_HOME/sapphire.keymap ]; then
|
||||
cp $ADDON_DIR/etc/keymap.default $ADDON_HOME/sapphire.keymap
|
||||
fi
|
||||
18
packages/addons/driver/sapphire/source/default.py
Normal file
18
packages/addons/driver/sapphire/source/default.py
Normal file
@@ -0,0 +1,18 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Sapphire remote start script
|
||||
Before=kodi.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
Environment=HOME=/storage
|
||||
ExecStartPre=/storage/.kodi/addons/driver.remote.sapphire/bin/sapphire-config
|
||||
ExecStart=/storage/.kodi/addons/driver.remote.sapphire/bin/sapphire_startup.sh
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,3 +1,9 @@
|
||||
7.0.103
|
||||
- automatically update driver to latest version on first install
|
||||
show driver version in addon settings
|
||||
allow update for aarch64 architecture
|
||||
german translation
|
||||
|
||||
7.0.102
|
||||
- system wait-for-online preference is now respected
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="sundtek-mediatv"
|
||||
PKG_VERSION="7.0"
|
||||
PKG_REV="102"
|
||||
PKG_REV="103"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://support.sundtek.com/"
|
||||
@@ -27,7 +27,7 @@ PKG_DEPENDS_TARGET=""
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="driver/dvb"
|
||||
PKG_SHORTDESC="Sundtek MediaTV: a Linux driver to add support for SUNDTEK USB DVB devices"
|
||||
PKG_LONGDESC="Install this to add support for SundTek USB DVB devices."
|
||||
PKG_LONGDESC="Install this to add support for Sundtek USB DVB devices."
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Sundtek MediaTV"
|
||||
|
||||
@@ -36,8 +36,17 @@ SUNDTEK_ADDON_SETTINGS="$SUNDTEK_ADDON_HOME/settings.xml"
|
||||
|
||||
mkdir -p $SUNDTEK_ADDON_HOME
|
||||
|
||||
# remove the entry
|
||||
BUILD_DATE="#"
|
||||
sed -i "s|\(id=\"BUILD_DATE\" .* values=\)\"[^\"]*\"|\1\"$BUILD_DATE\"|" $SUNDTEK_ADDON_DIR/resources/settings.xml
|
||||
|
||||
if [ ! -f "$SUNDTEK_ADDON_HOME/sundtek.conf" ]; then
|
||||
cp $SUNDTEK_ADDON_DIR/config/* $SUNDTEK_ADDON_HOME/
|
||||
|
||||
# update driver on first run
|
||||
echo "update driver" >/tmp/ppp
|
||||
systemd-run $SUNDTEK_ADDON_DIR/bin/sundtek-update-driver.sh
|
||||
exit 0 # will be started later
|
||||
else
|
||||
# in case of missing entries in addon home's sundtek.conf
|
||||
entry_set="$(grep use_hwpidfilter $SUNDTEK_ADDON_HOME/sundtek.conf 2>/dev/null)"
|
||||
@@ -244,4 +253,8 @@ if [ -z "$(pidof mediasrv)" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
logger -t Sundtek "### Sundtek ready ###"
|
||||
# change build date in addon settings
|
||||
BUILD_DATE=$(mediasrv --build 2>&1)
|
||||
sed -i "s|\(id=\"BUILD_DATE\" .* values=\)\"[^\"]*\"|\1\"$BUILD_DATE\"|" $SUNDTEK_ADDON_DIR/resources/settings.xml
|
||||
|
||||
logger -t Sundtek "### Sundtek ready ($BUILD_DATE) ###"
|
||||
|
||||
@@ -36,6 +36,10 @@ systemctl stop driver.dvb.sundtek-mediatv
|
||||
killall -9 mediaclient &>/dev/null
|
||||
killall -9 mediasrv &>/dev/null
|
||||
|
||||
# remove the entry
|
||||
BUILD_DATE="#"
|
||||
sed -i "s|\(id=\"BUILD_DATE\" .* values=\)\"[^\"]*\"|\1\"$BUILD_DATE\"|" $SUNDTEK_ADDON_DIR/resources/settings.xml
|
||||
|
||||
# exit on errors
|
||||
set -e
|
||||
|
||||
@@ -47,7 +51,7 @@ mkdir tmp
|
||||
cd tmp
|
||||
|
||||
logger -t Sundtek "### Starting updating driver ###"
|
||||
kodi-send -a "Notification(Sundtek, Starting updating driver, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||
kodi-send -a "Notification(Sundtek, Starting updating driver, 3000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||
|
||||
wget -O ../version.used http://sundtek.de/media/latest.phtml
|
||||
if [ $? -ne 0 ]; then
|
||||
@@ -72,7 +76,7 @@ else
|
||||
fi
|
||||
|
||||
logger -t Sundtek "### Downloading driver archive for $ARCH ###"
|
||||
kodi-send -a "Notification(Sundtek, Downloading driver archive for $ARCH, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||
kodi-send -a "Notification(Sundtek, Downloading driver archive for $ARCH, 3000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||
wget -O installer.tar.gz $INSTALLER_URL
|
||||
if [ $? -ne 0 ]; then
|
||||
logger -t Sundtek "### Archive damaged ###"
|
||||
@@ -83,7 +87,7 @@ if [ $? -ne 0 ]; then
|
||||
fi
|
||||
|
||||
logger -t Sundtek "### Extracting archive ###"
|
||||
kodi-send -a "Notification(Sundtek, Extracting archive, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||
kodi-send -a "Notification(Sundtek, Extracting archive, 3000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||
tar -xzf installer.tar.gz
|
||||
if [ $? -ne 0 ]; then
|
||||
logger -t Sundtek "### Archive damaged ###"
|
||||
|
||||
@@ -24,11 +24,12 @@
|
||||
|
||||
<string id="9000">Tuner settings</string>
|
||||
<string id="9005">Enable modifying settings</string>
|
||||
<string id="9010">Refresh tuners... (press me)</string>
|
||||
<string id="9010"><![CDATA[ >>> Refresh tuners <<< ]]></string>
|
||||
<string id="9020"> IR protocol</string>
|
||||
<string id="9030"> keymap filename</string>
|
||||
|
||||
<string id="3000">Driver</string>
|
||||
<string id="3005">Driver version</string>
|
||||
<string id="3020">Check for new driver version at boot</string>
|
||||
<string id="3010">Update from web... (press me)</string>
|
||||
<string id="3010"><![CDATA[ >>> Update driver now <<< ]]></string>
|
||||
</strings>
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="1000">Allgemein</string>
|
||||
<string id="1014">Verzögerung bevor Treiber gestartet wird [Sek.]</string>
|
||||
<string id="1015">Skript welches vom Treiber-Stack gestartet werden soll</string>
|
||||
<string id="1030">Hardware PID Filter einschalten</string>
|
||||
<string id="1035">Fernbedienung unterstützen</string>
|
||||
<string id="1040">Niedrigste Adapter Nummer (/dev/dvb/adapterX/)</string>
|
||||
<string id="1050">Suspend / Resume des Treibers zulassen</string>
|
||||
|
||||
<string id="2000">Netzwerksupport</string>
|
||||
<string id="2005">Netzwerkserver aktivieren</string>
|
||||
<string id="2010">Mit Netzwerk-Tunern verbinden</string>
|
||||
<string id="2020">Server 1 IP Adresse</string>
|
||||
<string id="2021"> # Tuner ID</string>
|
||||
<string id="2030">Server 2 IP Adresse</string>
|
||||
<string id="2031"> # Tuner ID</string>
|
||||
<string id="2040">Server 3 IP Adresse</string>
|
||||
<string id="2041"> # Tuner ID</string>
|
||||
<string id="2050">Server 4 IP Adresse</string>
|
||||
<string id="2051"> # Tuner ID</string>
|
||||
<string id="2060">Server 5 IP Adresse</string>
|
||||
<string id="2061"> # Tuner ID</string>
|
||||
|
||||
<string id="9000">Geräte Einstellungen</string>
|
||||
<string id="9005">Geräte-Einstellung ändern</string>
|
||||
<string id="9010"><![CDATA[ >>> Tuner-Liste aktualisieren <<< ]]></string>
|
||||
<string id="9020"> IR Protokoll</string>
|
||||
<string id="9030"> Keymap Datei</string>
|
||||
|
||||
<string id="3000">Treiber</string>
|
||||
<string id="3005">Treiber-Version</string>
|
||||
<string id="3020">Bei Neustart auf neue Treiber-Version prüfen</string>
|
||||
<string id="3010"><![CDATA[ >>> Treiber jetzt aktualisieren <<< ]]></string>
|
||||
</strings>
|
||||
@@ -31,6 +31,7 @@
|
||||
</category>
|
||||
<category label="3000">
|
||||
<setting type="sep" />
|
||||
<setting id="BUILD_DATE" type="enum" label="3005" values="#" />
|
||||
<setting id="CHECK_BOOT" type="bool" label="3020" default="false" />
|
||||
<setting label="3010" option="close" type="action" id="update_driver" action="RunScript($CWD/resources/actions.py, update_driver)" />
|
||||
</category>
|
||||
|
||||
11
packages/addons/script/moonlight/changelog.txt
Normal file
11
packages/addons/script/moonlight/changelog.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
7.0.104
|
||||
- update moonlight-common-c to support GFE 3.2
|
||||
|
||||
7.0.103
|
||||
- update Moonlight to 2.2.2
|
||||
|
||||
7.0.102
|
||||
- update Moonlight to 2.2.1
|
||||
|
||||
7.0.101
|
||||
- initial addon
|
||||
BIN
packages/addons/script/moonlight/icon/icon.png
Normal file
BIN
packages/addons/script/moonlight/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
78
packages/addons/script/moonlight/package.mk
Normal file
78
packages/addons/script/moonlight/package.mk
Normal file
@@ -0,0 +1,78 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="moonlight"
|
||||
PKG_VERSION="391de3f"
|
||||
PKG_VERSION_NUMBER="2.2.2"
|
||||
PKG_REV="104"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/dead/script.moonlight"
|
||||
PKG_URL="https://github.com/dead/script.moonlight/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="script.moonlight-$PKG_VERSION*"
|
||||
PKG_DEPENDS_TARGET="toolchain moonlight-embedded"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="script"
|
||||
PKG_SHORTDESC="Moonlight: implementation of NVIDIA's GameStream protocol"
|
||||
PKG_LONGDESC="Moonlight ($PKG_VERSION_NUMBER): allows you to stream your collection of games from your PC (with NVIDIA Gamestream) to your device and play them remotely"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Moonlight"
|
||||
PKG_ADDON_TYPE="xbmc.service.pluginsource"
|
||||
PKG_ADDON_PROVIDES="executable"
|
||||
PKG_ADDON_REPOVERSION="7.0"
|
||||
|
||||
make_target() {
|
||||
:
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID
|
||||
cp -PR $ROOT/$PKG_BUILD/script.moonlight/* $ADDON_BUILD/$PKG_ADDON_ID
|
||||
|
||||
# let's use our addon.xml instead
|
||||
rm $ADDON_BUILD/$PKG_ADDON_ID/addon.xml
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/moonlight $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libgamestream/libgamestream.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libgamestream/libmoonlight-common.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
|
||||
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-pi.so $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
elif [ "$KODIPLAYER_DRIVER" = "libfslvpuwrap" ]; then
|
||||
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-imx.so $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
elif [ "$KODIPLAYER_DRIVER" = "libamcodec" ]; then
|
||||
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-aml.so $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
fi
|
||||
|
||||
cp -P $(get_build_dir libevdev)/.install_pkg/usr/lib/libevdev.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/etc
|
||||
cp -P $(get_build_dir moonlight-embedded)/moonlight.conf $ADDON_BUILD/$PKG_ADDON_ID/etc
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/share/moonlight
|
||||
cp -PR $(get_build_dir moonlight-embedded)/mappings $ADDON_BUILD/$PKG_ADDON_ID/share/moonlight
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="script.config.vdr"
|
||||
PKG_VERSION="1.1.2"
|
||||
PKG_VERSION="1.1.3"
|
||||
PKG_REV="101"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -24,7 +24,7 @@ PKG_ADDON_PROJECTS="RPi RPi2"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="https://github.com/patrikolausson/dispmanx_vnc"
|
||||
PKG_URL="https://github.com/patrikolausson/dispmanx_vnc/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain libvncserver bcm2835-bootloader libconfig"
|
||||
PKG_DEPENDS_TARGET="toolchain libvncserver bcm2835-bootloader bcm2835-driver libconfig libressl"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service/system"
|
||||
PKG_SHORTDESC="VNC Server for Raspberry Pi"
|
||||
|
||||
@@ -1,3 +1,31 @@
|
||||
7.0.110
|
||||
- Update to docker 1.12.5
|
||||
- Adjust the systemd service file
|
||||
|
||||
7.0.109
|
||||
- Update to docker 1.12.3
|
||||
|
||||
7.0.108
|
||||
- Update to docker 1.12.2
|
||||
|
||||
7.0.107
|
||||
- Update to docker 1.12.1
|
||||
|
||||
7.0.106
|
||||
- Include missing docker-proxy
|
||||
|
||||
7.0.105
|
||||
- Update to docker 1.12.0
|
||||
- Update to golang 1.6.3
|
||||
- Use overlay2 driver (new installs only)
|
||||
- Remove docker-containerd-ctr
|
||||
|
||||
7.0.104
|
||||
- Update to docker 1.11.2
|
||||
|
||||
7.0.103
|
||||
- Allow using kodi notifications based on Docker events API
|
||||
|
||||
7.0.102
|
||||
- Update to docker 1.11.1
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="docker"
|
||||
PKG_VERSION="1.11.1"
|
||||
PKG_REV="102"
|
||||
PKG_VERSION="1.12.5"
|
||||
PKG_REV="110"
|
||||
PKG_ARCH="any"
|
||||
PKG_ADDON_PROJECTS="Generic RPi RPi2"
|
||||
PKG_LICENSE="ASL"
|
||||
@@ -82,7 +82,9 @@ configure_target() {
|
||||
|
||||
make_target() {
|
||||
mkdir -p bin
|
||||
$GOLANG build -v -o bin/docker -a -tags "$DOCKER_BUILDTAGS" -ldflags "$LDFLAGS" ./docker
|
||||
$GOLANG build -v -o bin/docker -a -tags "$DOCKER_BUILDTAGS" -ldflags "$LDFLAGS" ./cmd/docker
|
||||
$GOLANG build -v -o bin/dockerd -a -tags "$DOCKER_BUILDTAGS" -ldflags "$LDFLAGS" ./cmd/dockerd
|
||||
$GOLANG build -v -o bin/docker-proxy -a -ldflags "$LDFLAGS" ./vendor/src/github.com/docker/libnetwork/cmd/proxy
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
@@ -92,11 +94,12 @@ makeinstall_target() {
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $ROOT/$PKG_BUILD/bin/docker $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $ROOT/$PKG_BUILD/bin/dockerd $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $ROOT/$PKG_BUILD/bin/docker-proxy $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
# containerd
|
||||
cp -P $(get_build_dir containerd)/bin/containerd $ADDON_BUILD/$PKG_ADDON_ID/bin/docker-containerd
|
||||
cp -P $(get_build_dir containerd)/bin/containerd-shim $ADDON_BUILD/$PKG_ADDON_ID/bin/docker-containerd-shim
|
||||
cp -P $(get_build_dir containerd)/bin/ctr $ADDON_BUILD/$PKG_ADDON_ID/bin/docker-containerd-ctr
|
||||
|
||||
# runc
|
||||
cp -P $(get_build_dir runc)/bin/runc $ADDON_BUILD/$PKG_ADDON_ID/bin/docker-runc
|
||||
|
||||
@@ -1,19 +1,31 @@
|
||||
# Created with
|
||||
# find . -name "*.go" -print | xargs sed -i 's/\/etc\/docker/\/storage\/.kodi\/userdata\/addon_data\/service.system.docker\/config/g'
|
||||
|
||||
diff -Naur a/docker/daemon_unix.go b/docker/daemon_unix.go
|
||||
--- a/docker/daemon_unix.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/docker/daemon_unix.go 2016-05-02 12:19:20.461479163 -0700
|
||||
@@ -16,7 +16,7 @@
|
||||
"github.com/docker/docker/pkg/system"
|
||||
diff -Naur a/cmd/dockerd/daemon_solaris.go b/cmd/dockerd/daemon_solaris.go
|
||||
--- a/cmd/dockerd/daemon_solaris.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/cmd/dockerd/daemon_solaris.go 2016-06-23 10:53:28.544141675 -0700
|
||||
@@ -39,7 +39,7 @@
|
||||
}
|
||||
|
||||
func getDaemonConfDir() string {
|
||||
- return "/etc/docker"
|
||||
+ return "/storage/.kodi/userdata/addon_data/service.system.docker/config"
|
||||
}
|
||||
|
||||
// setupConfigReloadTrap configures the USR2 signal to reload the configuration.
|
||||
diff -Naur a/cmd/dockerd/daemon_unix.go b/cmd/dockerd/daemon_unix.go
|
||||
--- a/cmd/dockerd/daemon_unix.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/cmd/dockerd/daemon_unix.go 2016-06-23 10:53:28.542141655 -0700
|
||||
@@ -18,7 +18,7 @@
|
||||
"github.com/docker/libnetwork/portallocator"
|
||||
)
|
||||
|
||||
-const defaultDaemonConfigFile = "/etc/docker/daemon.json"
|
||||
+const defaultDaemonConfigFile = "/storage/.kodi/userdata/addon_data/service.system.docker/config/daemon.json"
|
||||
|
||||
func setPlatformServerConfig(serverConfig *apiserver.Config, daemonCfg *daemon.Config) *apiserver.Config {
|
||||
serverConfig.EnableCors = daemonCfg.EnableCors
|
||||
@@ -49,7 +49,7 @@
|
||||
// currentUserIsOwner checks whether the current user is the owner of the given
|
||||
// file.
|
||||
@@ -44,7 +44,7 @@
|
||||
}
|
||||
|
||||
func getDaemonConfDir() string {
|
||||
@@ -23,9 +35,9 @@ diff -Naur a/docker/daemon_unix.go b/docker/daemon_unix.go
|
||||
|
||||
// setupConfigReloadTrap configures the USR2 signal to reload the configuration.
|
||||
diff -Naur a/integration-cli/docker_cli_authz_unix_test.go b/integration-cli/docker_cli_authz_unix_test.go
|
||||
--- a/integration-cli/docker_cli_authz_unix_test.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_authz_unix_test.go 2016-05-02 12:19:20.291477565 -0700
|
||||
@@ -134,10 +134,10 @@
|
||||
--- a/integration-cli/docker_cli_authz_unix_test.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_authz_unix_test.go 2016-06-23 10:53:28.339139631 -0700
|
||||
@@ -142,10 +142,10 @@
|
||||
w.Write(b)
|
||||
})
|
||||
|
||||
@@ -38,7 +50,7 @@ diff -Naur a/integration-cli/docker_cli_authz_unix_test.go b/integration-cli/doc
|
||||
err = ioutil.WriteFile(fileName, []byte(s.server.URL), 0644)
|
||||
c.Assert(err, checker.IsNil)
|
||||
}
|
||||
@@ -186,7 +186,7 @@
|
||||
@@ -194,7 +194,7 @@
|
||||
|
||||
s.server.Close()
|
||||
|
||||
@@ -48,9 +60,9 @@ diff -Naur a/integration-cli/docker_cli_authz_unix_test.go b/integration-cli/doc
|
||||
}
|
||||
|
||||
diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_cli_daemon_test.go
|
||||
--- a/integration-cli/docker_cli_daemon_test.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_daemon_test.go 2016-05-02 12:19:20.356478174 -0700
|
||||
@@ -512,13 +512,13 @@
|
||||
--- a/integration-cli/docker_cli_daemon_test.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_daemon_test.go 2016-06-23 10:53:28.411140349 -0700
|
||||
@@ -553,13 +553,13 @@
|
||||
|
||||
func (s *DockerDaemonSuite) TestDaemonKeyGeneration(c *check.C) {
|
||||
// TODO: skip or update for Windows daemon
|
||||
@@ -66,7 +78,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
|
||||
if err != nil {
|
||||
c.Fatalf("Error opening key file")
|
||||
}
|
||||
@@ -531,7 +531,7 @@
|
||||
@@ -572,7 +572,7 @@
|
||||
|
||||
func (s *DockerDaemonSuite) TestDaemonKeyMigration(c *check.C) {
|
||||
// TODO: skip or update for Windows daemon
|
||||
@@ -75,7 +87,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
|
||||
k1, err := libtrust.GenerateECP256PrivateKey()
|
||||
if err != nil {
|
||||
c.Fatalf("Error generating private key: %s", err)
|
||||
@@ -548,7 +548,7 @@
|
||||
@@ -589,7 +589,7 @@
|
||||
}
|
||||
s.d.Stop()
|
||||
|
||||
@@ -84,7 +96,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
|
||||
if err != nil {
|
||||
c.Fatalf("Error opening key file")
|
||||
}
|
||||
@@ -1296,7 +1296,7 @@
|
||||
@@ -1337,7 +1337,7 @@
|
||||
Y string `json:"y"`
|
||||
}
|
||||
|
||||
@@ -93,7 +105,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
|
||||
if err := s.d.Start(); err != nil {
|
||||
c.Fatalf("Failed to start daemon: %v", err)
|
||||
}
|
||||
@@ -1306,7 +1306,7 @@
|
||||
@@ -1347,7 +1347,7 @@
|
||||
}
|
||||
|
||||
config := &Config{}
|
||||
@@ -102,7 +114,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
|
||||
if err != nil {
|
||||
c.Fatalf("Error reading key.json file: %s", err)
|
||||
}
|
||||
@@ -1326,11 +1326,11 @@
|
||||
@@ -1367,11 +1367,11 @@
|
||||
}
|
||||
|
||||
// write back
|
||||
@@ -117,9 +129,9 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
|
||||
if err := s.d.Start(); err == nil {
|
||||
c.Fatalf("It should not be successful to start daemon with wrong key: %v", err)
|
||||
diff -Naur a/integration-cli/docker_cli_external_graphdriver_unix_test.go b/integration-cli/docker_cli_external_graphdriver_unix_test.go
|
||||
--- a/integration-cli/docker_cli_external_graphdriver_unix_test.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_external_graphdriver_unix_test.go 2016-05-02 12:19:20.382478419 -0700
|
||||
@@ -306,10 +306,10 @@
|
||||
--- a/integration-cli/docker_cli_external_graphdriver_unix_test.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_external_graphdriver_unix_test.go 2016-06-23 10:53:28.444140678 -0700
|
||||
@@ -321,10 +321,10 @@
|
||||
respond(w, &graphDriverResponse{Size: size})
|
||||
})
|
||||
|
||||
@@ -133,7 +145,7 @@ diff -Naur a/integration-cli/docker_cli_external_graphdriver_unix_test.go b/inte
|
||||
err = ioutil.WriteFile(specFile, b, 0644)
|
||||
c.Assert(err, check.IsNil, check.Commentf("error writing to %s", specFile))
|
||||
}
|
||||
@@ -318,8 +318,8 @@
|
||||
@@ -333,8 +333,8 @@
|
||||
s.server.Close()
|
||||
s.jserver.Close()
|
||||
|
||||
@@ -144,41 +156,11 @@ diff -Naur a/integration-cli/docker_cli_external_graphdriver_unix_test.go b/inte
|
||||
}
|
||||
|
||||
func (s *DockerExternalGraphdriverSuite) TestExternalGraphDriver(c *check.C) {
|
||||
diff -Naur a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/docker_cli_network_unix_test.go
|
||||
--- a/integration-cli/docker_cli_network_unix_test.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_network_unix_test.go 2016-05-02 12:19:20.380478400 -0700
|
||||
@@ -200,14 +200,14 @@
|
||||
}
|
||||
})
|
||||
|
||||
- err := os.MkdirAll("/etc/docker/plugins", 0755)
|
||||
+ err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755)
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
- fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", netDrv)
|
||||
+ fileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", netDrv)
|
||||
err = ioutil.WriteFile(fileName, []byte(url), 0644)
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
- ipamFileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", ipamDrv)
|
||||
+ ipamFileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", ipamDrv)
|
||||
err = ioutil.WriteFile(ipamFileName, []byte(url), 0644)
|
||||
c.Assert(err, checker.IsNil)
|
||||
}
|
||||
@@ -219,7 +219,7 @@
|
||||
|
||||
s.server.Close()
|
||||
|
||||
- err := os.RemoveAll("/etc/docker/plugins")
|
||||
+ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins")
|
||||
c.Assert(err, checker.IsNil)
|
||||
}
|
||||
|
||||
diff -Naur a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integration-cli/docker_cli_start_volume_driver_unix_test.go
|
||||
--- a/integration-cli/docker_cli_start_volume_driver_unix_test.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_start_volume_driver_unix_test.go 2016-05-02 12:19:20.387478466 -0700
|
||||
@@ -216,17 +216,17 @@
|
||||
send(w, nil)
|
||||
diff -Naur a/integration-cli/docker_cli_external_volume_driver_unix_test.go b/integration-cli/docker_cli_external_volume_driver_unix_test.go
|
||||
--- a/integration-cli/docker_cli_external_volume_driver_unix_test.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_external_volume_driver_unix_test.go 2016-06-23 10:53:28.435140588 -0700
|
||||
@@ -239,17 +239,17 @@
|
||||
send(w, `{"Capabilities": { "Scope": "global" }}`)
|
||||
})
|
||||
|
||||
- err := os.MkdirAll("/etc/docker/plugins", 0755)
|
||||
@@ -198,7 +180,7 @@ diff -Naur a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integ
|
||||
c.Assert(err, checker.IsNil)
|
||||
}
|
||||
|
||||
@@ -311,7 +311,7 @@
|
||||
@@ -334,7 +334,7 @@
|
||||
|
||||
// Make sure a request to use a down driver doesn't block other requests
|
||||
func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverLookupNotBlocked(c *check.C) {
|
||||
@@ -207,7 +189,7 @@ diff -Naur a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integ
|
||||
err := ioutil.WriteFile(specPath, []byte("tcp://127.0.0.7:9999"), 0644)
|
||||
c.Assert(err, check.IsNil)
|
||||
defer os.RemoveAll(specPath)
|
||||
@@ -350,7 +350,7 @@
|
||||
@@ -373,7 +373,7 @@
|
||||
err := s.d.StartWithBusybox()
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
@@ -216,9 +198,39 @@ diff -Naur a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integ
|
||||
os.RemoveAll(specPath)
|
||||
defer os.RemoveAll(specPath)
|
||||
|
||||
diff -Naur a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/docker_cli_network_unix_test.go
|
||||
--- a/integration-cli/docker_cli_network_unix_test.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/integration-cli/docker_cli_network_unix_test.go 2016-06-23 10:53:28.441140648 -0700
|
||||
@@ -201,14 +201,14 @@
|
||||
}
|
||||
})
|
||||
|
||||
- err := os.MkdirAll("/etc/docker/plugins", 0755)
|
||||
+ err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755)
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
- fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", netDrv)
|
||||
+ fileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", netDrv)
|
||||
err = ioutil.WriteFile(fileName, []byte(url), 0644)
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
- ipamFileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", ipamDrv)
|
||||
+ ipamFileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", ipamDrv)
|
||||
err = ioutil.WriteFile(ipamFileName, []byte(url), 0644)
|
||||
c.Assert(err, checker.IsNil)
|
||||
}
|
||||
@@ -220,7 +220,7 @@
|
||||
|
||||
s.server.Close()
|
||||
|
||||
- err := os.RemoveAll("/etc/docker/plugins")
|
||||
+ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins")
|
||||
c.Assert(err, checker.IsNil)
|
||||
}
|
||||
|
||||
diff -Naur a/pkg/plugins/discovery.go b/pkg/plugins/discovery.go
|
||||
--- a/pkg/plugins/discovery.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/pkg/plugins/discovery.go 2016-05-02 12:19:20.540479907 -0700
|
||||
--- a/pkg/plugins/discovery.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/pkg/plugins/discovery.go 2016-06-23 10:53:28.636142593 -0700
|
||||
@@ -16,7 +16,7 @@
|
||||
// ErrNotFound plugin not found
|
||||
ErrNotFound = errors.New("plugin not found")
|
||||
@@ -229,8 +241,8 @@ diff -Naur a/pkg/plugins/discovery.go b/pkg/plugins/discovery.go
|
||||
|
||||
// localRegistry defines a registry that is local (using unix socket).
|
||||
diff -Naur a/pkg/plugins/plugins.go b/pkg/plugins/plugins.go
|
||||
--- a/pkg/plugins/plugins.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/pkg/plugins/plugins.go 2016-05-02 12:19:20.539479898 -0700
|
||||
--- a/pkg/plugins/plugins.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/pkg/plugins/plugins.go 2016-06-23 10:53:28.636142593 -0700
|
||||
@@ -4,7 +4,7 @@
|
||||
// Docker discovers plugins by looking for them in the plugin directory whenever
|
||||
// a user or container tries to use one by name. UNIX domain socket files must
|
||||
@@ -241,8 +253,8 @@ diff -Naur a/pkg/plugins/plugins.go b/pkg/plugins/plugins.go
|
||||
// its name if it exists.
|
||||
//
|
||||
diff -Naur a/registry/config_unix.go b/registry/config_unix.go
|
||||
--- a/registry/config_unix.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/registry/config_unix.go 2016-05-02 12:19:20.502479549 -0700
|
||||
--- a/registry/config_unix.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/registry/config_unix.go 2016-06-23 10:53:28.594142174 -0700
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
var (
|
||||
@@ -253,8 +265,8 @@ diff -Naur a/registry/config_unix.go b/registry/config_unix.go
|
||||
|
||||
// cleanPath is used to ensure that a directory name is valid on the target
|
||||
diff -Naur a/registry/endpoint_v1.go b/registry/endpoint_v1.go
|
||||
--- a/registry/endpoint_v1.go 2016-04-25 20:35:31.000000000 -0700
|
||||
+++ b/registry/endpoint_v1.go 2016-05-02 12:19:20.501479540 -0700
|
||||
--- a/registry/endpoint_v1.go 2016-06-17 13:28:45.000000000 -0700
|
||||
+++ b/registry/endpoint_v1.go 2016-06-23 10:53:28.593142164 -0700
|
||||
@@ -49,7 +49,7 @@
|
||||
if endpoint.IsSecure {
|
||||
// If registry is secure and HTTPS failed, show user the error and tell them about `--insecure-registry`
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
DOCKER_DAEMON_OPTS="--graph=/storage/.kodi/userdata/addon_data/service.system.docker/docker"
|
||||
DOCKER_STORAGE_OPTS="--storage-driver=overlay"
|
||||
DOCKER_STORAGE_OPTS="--storage-driver=overlay2"
|
||||
|
||||
@@ -19,22 +19,254 @@
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
import xbmc
|
||||
import xbmcaddon
|
||||
import xbmcgui
|
||||
|
||||
sys.path.append('/usr/share/kodi/addons/service.libreelec.settings')
|
||||
|
||||
import oe
|
||||
|
||||
__author__ = 'lrusak'
|
||||
__addon__ = xbmcaddon.Addon()
|
||||
__path__ = __addon__.getAddonInfo('path')
|
||||
__service__ = __path__ + '/systemd/' + __addon__.getAddonInfo('id') + '.service'
|
||||
__servicename__ = __addon__.getAddonInfo('id') + '.service'
|
||||
__socket__ = __path__ + '/systemd/' + __addon__.getAddonInfo('id') + '.socket'
|
||||
__socketname__ = __addon__.getAddonInfo('id') + '.socket'
|
||||
|
||||
sys.path.append(__path__ + '/lib')
|
||||
import dockermon
|
||||
|
||||
# docker events for api 1.23 (docker version 1.11.x)
|
||||
# https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#monitor-docker-s-events
|
||||
|
||||
docker_events = {
|
||||
'container': {
|
||||
'string': 30030,
|
||||
'event': {
|
||||
'attach': {
|
||||
'string': 30031,
|
||||
'enabled': '',
|
||||
},
|
||||
'commit': {
|
||||
'string': 30032,
|
||||
'enabled': '',
|
||||
},
|
||||
'copy': {
|
||||
'string': 30033,
|
||||
'enabled': '',
|
||||
},
|
||||
'create': {
|
||||
'string': 30034,
|
||||
'enabled': '',
|
||||
},
|
||||
'destroy': {
|
||||
'string': 30035,
|
||||
'enabled': '',
|
||||
},
|
||||
'die': {
|
||||
'string': 30036,
|
||||
'enabled': '',
|
||||
},
|
||||
'exec_create': {
|
||||
'string': 30037,
|
||||
'enabled': '',
|
||||
},
|
||||
'exec_start': {
|
||||
'string': 30038,
|
||||
'enabled': '',
|
||||
},
|
||||
'export': {
|
||||
'string': 30039,
|
||||
'enabled': '',
|
||||
},
|
||||
'kill': {
|
||||
'string': 30040,
|
||||
'enabled': True,
|
||||
},
|
||||
'oom': {
|
||||
'string': 30041,
|
||||
'enabled': True,
|
||||
},
|
||||
'pause': {
|
||||
'string': 30042,
|
||||
'enabled': '',
|
||||
},
|
||||
'rename': {
|
||||
'string': 30043,
|
||||
'enabled': '',
|
||||
},
|
||||
'resize': {
|
||||
'string': 30044,
|
||||
'enabled': '',
|
||||
},
|
||||
'restart': {
|
||||
'string': 30045,
|
||||
'enabled': '',
|
||||
},
|
||||
'start': {
|
||||
'string': 30046,
|
||||
'enabled': True,
|
||||
},
|
||||
'stop': {
|
||||
'string': 30047,
|
||||
'enabled': True,
|
||||
},
|
||||
'top': {
|
||||
'string': 30048,
|
||||
'enabled': '',
|
||||
},
|
||||
'unpause': {
|
||||
'string': 30049,
|
||||
'enabled': '',
|
||||
},
|
||||
'update': {
|
||||
'string': 30050,
|
||||
'enabled': '',
|
||||
},
|
||||
},
|
||||
},
|
||||
'image': {
|
||||
'string': 30060,
|
||||
'event': {
|
||||
'delete': {
|
||||
'string': 30061,
|
||||
'enabled': '',
|
||||
},
|
||||
'import': {
|
||||
'string': 30062,
|
||||
'enabled': '',
|
||||
},
|
||||
'pull': {
|
||||
'string': 30063,
|
||||
'enabled': True,
|
||||
},
|
||||
'push': {
|
||||
'string': 30064,
|
||||
'enabled': '',
|
||||
},
|
||||
'tag': {
|
||||
'string': 30065,
|
||||
'enabled': '',
|
||||
},
|
||||
'untag': {
|
||||
'string': 30066,
|
||||
'enabled': '',
|
||||
},
|
||||
},
|
||||
},
|
||||
'volume': {
|
||||
'string': 30070,
|
||||
'event': {
|
||||
'create': {
|
||||
'string': 30071,
|
||||
'enabled': '',
|
||||
},
|
||||
'mount': {
|
||||
'string': 30072,
|
||||
'enabled': '',
|
||||
},
|
||||
'unmount': {
|
||||
'string': 30073,
|
||||
'enabled': '',
|
||||
},
|
||||
'destroy': {
|
||||
'string': 30074,
|
||||
'enabled': '',
|
||||
},
|
||||
},
|
||||
},
|
||||
'network': {
|
||||
'string': 30080,
|
||||
'event': {
|
||||
'create': {
|
||||
'string': 30081,
|
||||
'enabled': '',
|
||||
},
|
||||
'connect': {
|
||||
'string': 30082,
|
||||
'enabled': '',
|
||||
},
|
||||
'disconnect': {
|
||||
'string': 30083,
|
||||
'enabled': '',
|
||||
},
|
||||
'destroy': {
|
||||
'string': 30084,
|
||||
'enabled': '',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
def print_notification(json_data):
|
||||
event_string = docker_events[json_data['Type']]['event'][json_data['Action']]['string']
|
||||
if __addon__.getSetting('notifications') is '0': # default
|
||||
if docker_events[json_data['Type']]['event'][json_data['Action']]['enabled']:
|
||||
try:
|
||||
message = unicode(' '.join([__addon__.getLocalizedString(30010),
|
||||
json_data['Actor']['Attributes']['name'],
|
||||
'|',
|
||||
__addon__.getLocalizedString(30012),
|
||||
__addon__.getLocalizedString(event_string)]))
|
||||
except KeyError as e:
|
||||
message = unicode(' '.join([__addon__.getLocalizedString(30011),
|
||||
json_data['Type'],
|
||||
'|',
|
||||
__addon__.getLocalizedString(30012),
|
||||
__addon__.getLocalizedString(event_string)]))
|
||||
|
||||
elif __addon__.getSetting('notifications') is '1': # all
|
||||
try:
|
||||
message = unicode(' '.join([__addon__.getLocalizedString(30010),
|
||||
json_data['Actor']['Attributes']['name'],
|
||||
'|',
|
||||
__addon__.getLocalizedString(30012),
|
||||
__addon__.getLocalizedString(event_string)]))
|
||||
except KeyError as e:
|
||||
message = unicode(' '.join([__addon__.getLocalizedString(30011),
|
||||
json_data['Type'],
|
||||
'|',
|
||||
__addon__.getLocalizedString(30012),
|
||||
__addon__.getLocalizedString(event_string)]))
|
||||
|
||||
elif __addon__.getSetting('notifications') is '2': # none
|
||||
pass
|
||||
|
||||
elif __addon__.getSetting('notifications') is '3': # custom
|
||||
if __addon__.getSetting(json_data['Action']) == 'true':
|
||||
try:
|
||||
message = unicode(' '.join([__addon__.getLocalizedString(30010),
|
||||
json_data['Actor']['Attributes']['name'],
|
||||
'|',
|
||||
__addon__.getLocalizedString(30012),
|
||||
__addon__.getLocalizedString(event_string)]))
|
||||
except KeyError as e:
|
||||
message = unicode(' '.join([__addon__.getLocalizedString(30011),
|
||||
json_data['Type'],
|
||||
'|',
|
||||
__addon__.getLocalizedString(30012),
|
||||
__addon__.getLocalizedString(event_string)]))
|
||||
|
||||
dialog = xbmcgui.Dialog()
|
||||
try:
|
||||
if message is not '':
|
||||
length = int(__addon__.getSetting('notification_length')) * 1000
|
||||
dialog.notification('Docker', message, '/storage/.kodi/addons/service.system.docker/icon.png', length)
|
||||
xbmc.log('## service.system.docker ## ' + unicode(message))
|
||||
except NameError as e:
|
||||
pass
|
||||
|
||||
class dockermonThread(threading.Thread):
|
||||
|
||||
def __init__(self):
|
||||
threading.Thread.__init__(self)
|
||||
self._is_running = True
|
||||
|
||||
def run(self):
|
||||
while self._is_running:
|
||||
dockermon.watch(print_notification)
|
||||
|
||||
def stop(self):
|
||||
self._is_running = False
|
||||
|
||||
class Main(object):
|
||||
|
||||
@@ -42,52 +274,10 @@ class Main(object):
|
||||
|
||||
monitor = DockerMonitor(self)
|
||||
|
||||
if not Docker().is_enabled():
|
||||
Docker().enable()
|
||||
Docker().start()
|
||||
|
||||
while not monitor.abortRequested():
|
||||
if monitor.waitForAbort():
|
||||
Docker().stop()
|
||||
Docker().disable()
|
||||
|
||||
class Docker(object):
|
||||
|
||||
def enable(self):
|
||||
self.execute('systemctl enable ' + __service__)
|
||||
self.execute('systemctl enable ' + __socket__)
|
||||
|
||||
def disable(self):
|
||||
self.execute('systemctl disable ' + __servicename__)
|
||||
self.execute('systemctl disable ' + __socketname__)
|
||||
|
||||
def is_enabled(self):
|
||||
if self.execute('systemctl is-enabled ' + __servicename__, get_result=1).strip('\n') == 'enabled':
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def start(self):
|
||||
self.execute('systemctl start ' + __servicename__)
|
||||
|
||||
def stop(self):
|
||||
self.execute('systemctl stop ' + __servicename__)
|
||||
|
||||
def is_active(self):
|
||||
if self.execute('systemctl is-active ' + __servicename__, get_result=1).strip('\n') == 'active':
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def execute(self, command_line, get_result=0):
|
||||
result = oe.execute(command_line, get_result=get_result)
|
||||
if get_result:
|
||||
return result
|
||||
|
||||
def restart(self):
|
||||
if self.is_active():
|
||||
self.stop()
|
||||
self.start()
|
||||
# we don't want to stop or disable docker while it's installed
|
||||
pass
|
||||
|
||||
class DockerMonitor(xbmc.Monitor):
|
||||
|
||||
@@ -95,9 +285,11 @@ class DockerMonitor(xbmc.Monitor):
|
||||
xbmc.Monitor.__init__(self)
|
||||
|
||||
def onSettingsChanged(self):
|
||||
Docker().restart()
|
||||
pass
|
||||
|
||||
if ( __name__ == "__main__" ):
|
||||
dockermonThread().start()
|
||||
Main()
|
||||
|
||||
del DockerMonitor
|
||||
dockermonThread().stop()
|
||||
|
||||
153
packages/addons/service/docker/source/lib/dockermon.py
Executable file
153
packages/addons/service/docker/source/lib/dockermon.py
Executable file
@@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env python
|
||||
"""docker monitor using docker /events HTTP streaming API"""
|
||||
"""https://github.com/CyberInt/dockermon"""
|
||||
|
||||
from contextlib import closing
|
||||
from functools import partial
|
||||
from socket import socket, AF_UNIX
|
||||
from subprocess import Popen, PIPE
|
||||
from sys import stdout, version_info
|
||||
import json
|
||||
import shlex
|
||||
|
||||
if version_info[:2] < (3, 0):
|
||||
from httplib import OK as HTTP_OK
|
||||
from urlparse import urlparse
|
||||
else:
|
||||
from http.client import OK as HTTP_OK
|
||||
from urllib.parse import urlparse
|
||||
|
||||
__version__ = '0.2.2'
|
||||
# buffer size must be 256 or lower otherwise events won't show in realtime
|
||||
bufsize = 256
|
||||
default_sock_url = 'ipc:///var/run/docker.sock'
|
||||
|
||||
|
||||
class DockermonError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def read_http_header(sock):
|
||||
"""Read HTTP header from socket, return header and rest of data."""
|
||||
buf = []
|
||||
hdr_end = '\r\n\r\n'
|
||||
|
||||
while True:
|
||||
buf.append(sock.recv(bufsize).decode('utf-8'))
|
||||
data = ''.join(buf)
|
||||
i = data.find(hdr_end)
|
||||
if i == -1:
|
||||
continue
|
||||
return data[:i], data[i + len(hdr_end):]
|
||||
|
||||
|
||||
def header_status(header):
|
||||
"""Parse HTTP status line, return status (int) and reason."""
|
||||
status_line = header[:header.find('\r')]
|
||||
# 'HTTP/1.1 200 OK' -> (200, 'OK')
|
||||
fields = status_line.split(None, 2)
|
||||
return int(fields[1]), fields[2]
|
||||
|
||||
|
||||
def connect(url):
|
||||
"""Connect to UNIX or TCP socket.
|
||||
|
||||
url can be either tcp://<host>:port or ipc://<path>
|
||||
"""
|
||||
url = urlparse(url)
|
||||
if url.scheme == 'tcp':
|
||||
sock = socket()
|
||||
netloc = tuple(url.netloc.rsplit(':', 1))
|
||||
hostname = socket.gethostname()
|
||||
elif url.scheme == 'ipc':
|
||||
sock = socket(AF_UNIX)
|
||||
netloc = url.path
|
||||
hostname = 'localhost'
|
||||
else:
|
||||
raise ValueError('unknown socket type: %s' % url.scheme)
|
||||
|
||||
sock.connect(netloc)
|
||||
return sock, hostname
|
||||
|
||||
|
||||
def watch(callback, url=default_sock_url):
|
||||
"""Watch docker events. Will call callback with each new event (dict).
|
||||
|
||||
url can be either tcp://<host>:port or ipc://<path>
|
||||
"""
|
||||
sock, hostname = connect(url)
|
||||
request = 'GET /events HTTP/1.1\nHost: %s\n\n' % hostname
|
||||
request = request.encode('utf-8')
|
||||
|
||||
with closing(sock):
|
||||
sock.sendall(request)
|
||||
header, payload = read_http_header(sock)
|
||||
status, reason = header_status(header)
|
||||
if status != HTTP_OK:
|
||||
raise DockermonError('bad HTTP status: %s %s' % (status, reason))
|
||||
|
||||
# Messages are \r\n<size in hex><JSON payload>\r\n
|
||||
buf = [payload]
|
||||
while True:
|
||||
chunk = sock.recv(bufsize)
|
||||
if not chunk:
|
||||
raise EOFError('socket closed')
|
||||
buf.append(chunk.decode('utf-8'))
|
||||
data = ''.join(buf)
|
||||
i = data.find('\r\n')
|
||||
if i == -1:
|
||||
continue
|
||||
|
||||
size = int(data[:i], 16)
|
||||
start = i + 2 # Skip initial \r\n
|
||||
|
||||
if len(data) < start + size + 2:
|
||||
continue
|
||||
payload = data[start:start+size]
|
||||
callback(json.loads(payload))
|
||||
buf = [data[start+size+2:]] # Skip \r\n suffix
|
||||
|
||||
|
||||
def print_callback(msg):
|
||||
"""Print callback, prints message to stdout as JSON in one line."""
|
||||
json.dump(msg, stdout)
|
||||
stdout.write('\n')
|
||||
stdout.flush()
|
||||
|
||||
|
||||
def prog_callback(prog, msg):
|
||||
"""Program callback, calls prog with message in stdin"""
|
||||
pipe = Popen(prog, stdin=PIPE)
|
||||
data = json.dumps(msg)
|
||||
pipe.stdin.write(data.encode('utf-8'))
|
||||
pipe.stdin.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from argparse import ArgumentParser
|
||||
|
||||
parser = ArgumentParser(description=__doc__)
|
||||
parser.add_argument('--prog', default=None,
|
||||
help='program to call (e.g. "jq --unbuffered .")')
|
||||
parser.add_argument(
|
||||
'--socket-url', default=default_sock_url,
|
||||
help='socket url (ipc:///path/to/sock or tcp:///host:port)')
|
||||
parser.add_argument(
|
||||
'--version', help='print version and exit',
|
||||
action='store_true', default=False)
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.version:
|
||||
print('dockermon %s' % __version__)
|
||||
raise SystemExit
|
||||
|
||||
if args.prog:
|
||||
prog = shlex.split(args.prog)
|
||||
callback = partial(prog_callback, prog)
|
||||
else:
|
||||
callback = print_callback
|
||||
|
||||
try:
|
||||
watch(callback, args.socket_url)
|
||||
except (KeyboardInterrupt, EOFError):
|
||||
pass
|
||||
@@ -0,0 +1,197 @@
|
||||
# Kodi Media Center language file
|
||||
# Addon Name: docker
|
||||
# Addon id: service.system.docker
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30000"
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30001"
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30002"
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30003"
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30004"
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30005"
|
||||
msgid "Custom"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30006"
|
||||
msgid "Notification Length (Seconds)"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30010"
|
||||
msgid "Name:"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30011"
|
||||
msgid "Type:"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30012"
|
||||
msgid "Action:"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30030"
|
||||
msgid "Container"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30031"
|
||||
msgid "attach"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30032"
|
||||
msgid "commit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30033"
|
||||
msgid "copy"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30034"
|
||||
msgid "create"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30035"
|
||||
msgid "destroy"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30036"
|
||||
msgid "die"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30037"
|
||||
msgid "exec_create"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30038"
|
||||
msgid "exec_start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30039"
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30040"
|
||||
msgid "kill"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30041"
|
||||
msgid "out of memory"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30042"
|
||||
msgid "pause"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30043"
|
||||
msgid "rename"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30044"
|
||||
msgid "resize"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30045"
|
||||
msgid "restart"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30046"
|
||||
msgid "start"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30047"
|
||||
msgid "stop"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30048"
|
||||
msgid "top"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30049"
|
||||
msgid "unpause"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30050"
|
||||
msgid "update"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30060"
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30061"
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30062"
|
||||
msgid "import"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30063"
|
||||
msgid "pull"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30064"
|
||||
msgid "push"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30065"
|
||||
msgid "tag"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30066"
|
||||
msgid "untag"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30070"
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30071"
|
||||
msgid "create"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30072"
|
||||
msgid "mount"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30073"
|
||||
msgid "unmount"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30074"
|
||||
msgid "destroy"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30080"
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30081"
|
||||
msgid "create"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30082"
|
||||
msgid "connect"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30083"
|
||||
msgid "disconnect"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30084"
|
||||
msgid "destroy"
|
||||
msgstr ""
|
||||
15
packages/addons/service/docker/source/resources/settings.xml
Normal file
15
packages/addons/service/docker/source/resources/settings.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="30000">
|
||||
<setting label="30001" type="enum" id="notifications" default="0" lvalues="30002|30003|30004|30005"/>
|
||||
<setting label="30034" type="bool" id="create" default="false" visible="eq(-1,3)" subsetting="true"/>
|
||||
<setting label="30035" type="bool" id="destroy" default="false" visible="eq(-2,3)" subsetting="true"/>
|
||||
<setting label="30036" type="bool" id="die" default="false" visible="eq(-3,3)" subsetting="true"/>
|
||||
<setting label="30040" type="bool" id="kill" default="false" visible="eq(-4,3)" subsetting="true"/>
|
||||
<setting label="30041" type="bool" id="oom" default="false" visible="eq(-5,3)" subsetting="true"/>
|
||||
<setting label="30046" type="bool" id="start" default="false" visible="eq(-6,3)" subsetting="true"/>
|
||||
<setting label="30047" type="bool" id="stop" default="false" visible="eq(-7,3)" subsetting="true"/>
|
||||
<setting label="30006" type="slider" id="notification_length" default="5" visible="lt(-8,2) | gt(-8,2)" range="2,10" option="int" />
|
||||
</category>
|
||||
</settings>
|
||||
|
||||
@@ -1,19 +1,24 @@
|
||||
[Unit]
|
||||
Description=Docker Application Container Engine
|
||||
Documentation=https://docs.docker.com
|
||||
After=network.target docker.socket
|
||||
Requires=docker.socket
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
Environment=PATH=/bin:/sbin:/usr/bin:/usr/sbin:/storage/.kodi/addons/service.system.docker/bin
|
||||
ExecStartPre=/storage/.kodi/addons/service.system.docker/bin/docker-config
|
||||
EnvironmentFile=-/storage/.kodi/userdata/addon_data/service.system.docker/config/docker.conf
|
||||
ExecStart=/storage/.kodi/addons/service.system.docker/bin/docker daemon -H fd:// $DOCKER_DAEMON_OPTS $DOCKER_STORAGE_OPTS
|
||||
MountFlags=slave
|
||||
ExecStart=/storage/.kodi/addons/service.system.docker/bin/dockerd --exec-opt native.cgroupdriver=systemd \
|
||||
--group=root \
|
||||
$DOCKER_DAEMON_OPTS \
|
||||
$DOCKER_STORAGE_OPTS
|
||||
ExecReload=/bin/kill -s HUP $MAINPID
|
||||
TasksMax=8192
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=1048576
|
||||
LimitCORE=infinity
|
||||
TimeoutStartSec=0
|
||||
Restart=on-abnormal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,13 +0,0 @@
|
||||
[Unit]
|
||||
Description=Docker Socket for the API
|
||||
PartOf=docker.service
|
||||
|
||||
[Socket]
|
||||
ListenStream=/var/run/docker.sock
|
||||
SocketMode=0660
|
||||
SocketUser=root
|
||||
SocketGroup=root
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
Alias=docker.socket
|
||||
14
packages/addons/service/emby/changelog.txt
Normal file
14
packages/addons/service/emby/changelog.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
103
|
||||
- Updated to version 3.0.8100
|
||||
|
||||
102
|
||||
- Updated to version 3.0.6070
|
||||
- Build for all architectures
|
||||
- Refer to libsqlite3.so.0 instead of libsqlite3.so
|
||||
|
||||
101
|
||||
- Updated to version 3.0.5985
|
||||
- Removed mono build dependency
|
||||
|
||||
100
|
||||
- Initial release
|
||||
BIN
packages/addons/service/emby/icon/icon.png
Normal file
BIN
packages/addons/service/emby/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
62
packages/addons/service/emby/package.mk
Normal file
62
packages/addons/service/emby/package.mk
Normal file
@@ -0,0 +1,62 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="emby"
|
||||
PKG_VERSION="3.0.8100"
|
||||
PKG_REV="103"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://emby.media"
|
||||
PKG_URL="https://github.com/MediaBrowser/Emby/releases/download/$PKG_VERSION/Emby.Mono.zip"
|
||||
PKG_DEPENDS_TARGET="toolchain imagemagick"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service"
|
||||
PKG_SHORTDESC="Emby: a personal media server"
|
||||
PKG_LONGDESC="Emby ($PKG_VERSION) brings your home videos, music, and photos together, automatically converting and streaming your media on-the-fly to any device"
|
||||
PKG_MAINTAINER="Anton Voyl (awiouy)"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Emby (beta)"
|
||||
PKG_ADDON_TYPE="xbmc.service"
|
||||
PKG_ADDON_REPOVERSION="7.0"
|
||||
PKG_ADDON_REQUIRES="tools.mono:0.0.0"
|
||||
|
||||
unpack() {
|
||||
mkdir -p $PKG_BUILD
|
||||
}
|
||||
|
||||
make_target() {
|
||||
: # nop
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # nop
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono
|
||||
unzip -q $ROOT/$SOURCES/$PKG_NAME/$PKG_SOURCE_NAME \
|
||||
-d $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono
|
||||
|
||||
sed -i 's/libsqlite3.so/libsqlite3.so.0/g' \
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono/System.Data.SQLite.dll.config
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -PR $(get_build_dir imagemagick)/.install_pkg/usr/lib/* $ADDON_BUILD/$PKG_ADDON_ID/lib/
|
||||
}
|
||||
27
packages/addons/service/emby/source/bin/emby.start
Normal file
27
packages/addons/service/emby/source/bin/emby.start
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
oe_setup_addon service.emby
|
||||
|
||||
chmod +x $ADDON_DIR/bin/*
|
||||
|
||||
mkdir -p $ADDON_HOME
|
||||
|
||||
mono $ADDON_DIR/Emby.Mono/MediaBrowser.Server.Mono.exe -programdata $ADDON_HOME
|
||||
35
packages/addons/service/emby/source/default.py
Normal file
35
packages/addons/service/emby/source/default.py
Normal file
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
#
|
||||
# LibreELEC 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.
|
||||
#
|
||||
# LibreELEC 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 LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
import subprocess
|
||||
import xbmc
|
||||
import xbmcaddon
|
||||
|
||||
|
||||
class Monitor(xbmc.Monitor):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
xbmc.Monitor.__init__(self)
|
||||
self.id = xbmcaddon.Addon().getAddonInfo('id')
|
||||
|
||||
def onSettingsChanged(self):
|
||||
subprocess.call(['systemctl', 'restart', self.id])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
Monitor().waitForAbort()
|
||||
@@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Emby - streaming server
|
||||
Documentation=http://emby.media
|
||||
After=network.target
|
||||
Requires=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh /storage/.kodi/addons/service.emby/bin/emby.start
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=kodi.target
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
7.0.103
|
||||
- Update to version 85fcec3
|
||||
|
||||
7.0.102
|
||||
- Update to version d2f4725
|
||||
|
||||
7.0.101
|
||||
- Add protobuf/V4L2 support
|
||||
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="hyperion"
|
||||
PKG_VERSION="f64b6eb"
|
||||
PKG_REV="101"
|
||||
PKG_VERSION="85fcec3"
|
||||
PKG_REV="103"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/tvdzwan/hyperion"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain Python libusb qt protobuf"
|
||||
PKG_URL="https://github.com/tvdzwan/hyperion/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain Python libusb qt protobuf rpi_ws281x"
|
||||
PKG_SECTION="service"
|
||||
PKG_SHORTDESC="Hyperion: an AmbiLight controller"
|
||||
PKG_LONGDESC="Hyperion($PKG_VERSION) is an modern opensource AmbiLight implementation."
|
||||
@@ -48,6 +48,10 @@ elif [ "$DISPLAYSERVER" = "x11" ]; then
|
||||
X11_SUPPORT="-DENABLE_X11=1"
|
||||
fi
|
||||
|
||||
pre_build_target() {
|
||||
cp -a $(get_build_dir rpi_ws281x)/* $ROOT/$PKG_BUILD/dependencies/external/rpi_ws281x
|
||||
}
|
||||
|
||||
configure_target() {
|
||||
echo "" > ../cmake/FindGitVersion.cmake
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
|
||||
@@ -59,7 +63,7 @@ configure_target() {
|
||||
$DISPMANX_SUPPORT \
|
||||
$FB_SUPPORT \
|
||||
-DENABLE_OSX=0 \
|
||||
-DENABLE_PROTOBUF=1 \
|
||||
-DUSE_SYSTEM_PROTO_LIBS=ON \
|
||||
-DENABLE_SPIDEV=1 \
|
||||
-DENABLE_TINKERFORGE=0 \
|
||||
-DENABLE_V4L2=1 \
|
||||
@@ -92,7 +96,7 @@ addon() {
|
||||
fi
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config
|
||||
cp -P $PKG_BUILD/config/hyperion.config.json $ADDON_BUILD/$PKG_ADDON_ID/config/hyperion.config.json.sample
|
||||
cp -P $PKG_BUILD/config/hyperion.config.json.example $ADDON_BUILD/$PKG_ADDON_ID/config/hyperion.config.json.sample
|
||||
sed -i -e "s,/opt/hyperion/effects,/storage/.kodi/addons/service.hyperion/effects,g" \
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/config/hyperion.config.json.sample
|
||||
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
From 0ce04b692b7c3e4414c46402c389215f7b0aac48 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Mon, 6 Apr 2015 21:47:41 +0200
|
||||
Subject: [PATCH] Use protobuf from pkg-config
|
||||
|
||||
---
|
||||
dependencies/CMakeLists.txt | 20 ++------------------
|
||||
1 file changed, 2 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/dependencies/CMakeLists.txt b/dependencies/CMakeLists.txt
|
||||
index 17747bd..4406d01 100644
|
||||
--- a/dependencies/CMakeLists.txt
|
||||
+++ b/dependencies/CMakeLists.txt
|
||||
@@ -5,25 +5,9 @@ add_subdirectory(build/serial)
|
||||
add_subdirectory(build/tinkerforge)
|
||||
|
||||
if(ENABLE_PROTOBUF)
|
||||
- set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared protobuf library")
|
||||
- add_subdirectory(external/protobuf)
|
||||
+ find_package(Protobuf REQUIRED)
|
||||
+ include_directories(${PROTOBUF_INCLUDE_DIRS})
|
||||
|
||||
- if(CMAKE_CROSSCOMPILING)
|
||||
- # when crosscompiling import the protoc executable targets from a file generated by a native build
|
||||
- option(IMPORT_PROTOC "Protoc export file (protoc_export.cmake) from a native build" "IMPORT_PROTOC-FILE_NOT_FOUND")
|
||||
- include(${IMPORT_PROTOC})
|
||||
- else()
|
||||
- # export the protoc compiler so it can be used when cross compiling
|
||||
- export(TARGETS protoc_compiler FILE "${CMAKE_BINARY_DIR}/protoc_export.cmake")
|
||||
- endif()
|
||||
-
|
||||
- # define the include for the protobuf library at the parent scope
|
||||
- set(PROTOBUF_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/external/protobuf/src")
|
||||
- set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIRS} PARENT_SCOPE)
|
||||
-
|
||||
- # define the protoc executable at the parent scope
|
||||
- get_property(PROTOBUF_PROTOC_EXECUTABLE TARGET protoc_compiler PROPERTY LOCATION)
|
||||
- set(PROTOBUF_PROTOC_EXECUTABLE ${PROTOBUF_PROTOC_EXECUTABLE} PARENT_SCOPE)
|
||||
message(STATUS "Using protobuf compiler: " ${PROTOBUF_PROTOC_EXECUTABLE})
|
||||
|
||||
#=============================================================================
|
||||
--
|
||||
2.3.4
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
diff --git a/libsrc/leddevice/LedDevicePhilipsHue.cpp b/libsrc/leddevice/LedDevicePhilipsHue.cpp
|
||||
index 332176a..81f421b 100755
|
||||
--- a/libsrc/leddevice/LedDevicePhilipsHue.cpp
|
||||
+++ b/libsrc/leddevice/LedDevicePhilipsHue.cpp
|
||||
@@ -105,10 +105,10 @@ CiColor PhilipsHueLight::rgbToCiColor(float red, float green, float blue) {
|
||||
// Convert to x,y space.
|
||||
float cx = X / (X + Y + Z);
|
||||
float cy = Y / (X + Y + Z);
|
||||
- if (isnan(cx)) {
|
||||
+ if (std::isnan(cx)) {
|
||||
cx = 0.0f;
|
||||
}
|
||||
- if (isnan(cy)) {
|
||||
+ if (std::isnan(cy)) {
|
||||
cy = 0.0f;
|
||||
}
|
||||
// Brightness is simply Y in the XYZ space.
|
||||
@@ -1,2 +1,5 @@
|
||||
7.0.100
|
||||
101
|
||||
- Upgrade to 2.0
|
||||
|
||||
100
|
||||
- Initial addon
|
||||
|
||||
@@ -17,32 +17,25 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="inadyn"
|
||||
PKG_VERSION="1.99.15"
|
||||
PKG_REV="100"
|
||||
PKG_VERSION="2.0"
|
||||
PKG_REV="101"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="http://troglobit.com/inadyn.html"
|
||||
PKG_URL="ftp://troglobit.com/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain libressl"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_URL="https://github.com/troglobit/inadyn/archive/v$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain libconfuse libite libressl"
|
||||
PKG_SECTION="service/system"
|
||||
PKG_SHORTDESC="Inadyn, a small and simple DDNS client"
|
||||
PKG_LONGDESC="Inadyn is a small and simple DDNS client with HTTPS support. It is commonly available in many GNU/Linux distributions, used in off-the-shelf routers and Internet gateways to automate the task of keeping your DNS record up to date with any IP address changes from your ISP. It can also be used in installations with redundant (backup) connections to the Internet."
|
||||
PKG_MAINTAINER="Anton Voyl (awiouy at gmail.com)"
|
||||
PKG_SHORTDESC="Inadyn: a small and simple Dynamic Domain Name System client"
|
||||
PKG_LONGDESC="Inadyn ($PKG_VERSION) is a small and simple Dynamic Domain Name System (DDNS) client with HTTPS support. It is commonly available in many GNU/Linux distributions, used in off-the-shelf routers and Internet gateways to automate the task of keeping your DNS record up to date with any IP address changes from your ISP. It can also be used in installations with redundant (backup) connections to the Internet."
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Inadyn"
|
||||
PKG_ADDON_TYPE="xbmc.service"
|
||||
PKG_ADDON_PROVIDES=""
|
||||
PKG_MAINTAINER="Anton Voyl (awiouy)"
|
||||
PKG_ADDON_REPOVERSION="7.0"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-openssl" # --sysconfdir is ineffective
|
||||
|
||||
pre_configure_target() {
|
||||
# inadyn fails to build in subdirs
|
||||
cd $ROOT/$PKG_BUILD
|
||||
rm -rf .$TARGET_NAME
|
||||
}
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-openssl"
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
@@ -50,5 +43,5 @@ makeinstall_target() {
|
||||
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/src/inadyn $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp $PKG_BUILD/.$TARGET_NAME/src/inadyn $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
}
|
||||
|
||||
@@ -20,24 +20,23 @@
|
||||
. /etc/profile
|
||||
oe_setup_addon service.system.inadyn
|
||||
|
||||
config="$ADDON_HOME/inadyn.conf"
|
||||
|
||||
options="-b"
|
||||
if [ "$inadyn_S" == "inadyn.conf" ]
|
||||
then
|
||||
if [ -f "$config" ] && [ -s "$config" ]
|
||||
then
|
||||
options="$options -F $config"
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
if [ "$inadyn_S" == "inadyn.conf" ]; then
|
||||
config="$ADDON_HOME/inadyn.conf"
|
||||
else
|
||||
options="$options -S $inadyn_S -u $inadyn_u -p $inadyn_p -a $inadyn_a"
|
||||
if [ "$inadyn_s" == "true" ]
|
||||
then
|
||||
options="$options -s"
|
||||
fi
|
||||
config="$ADDON_HOME/inadyn.temp"
|
||||
if [ -z "$inadyn_a" -o -z "$inadyn_p" -o -z "$inadyn_u" ]; then
|
||||
rm -fr "$config"
|
||||
else
|
||||
echo "\
|
||||
provider $inadyn_S {
|
||||
ssl = $inadyn_s
|
||||
username = $inadyn_u
|
||||
password = $inadyn_p
|
||||
hostname = $inadyn_a
|
||||
}" > "$config"
|
||||
fi
|
||||
fi
|
||||
|
||||
inadyn $options
|
||||
|
||||
if [ -f "$config" ]; then
|
||||
inadyn -f "$config" -l info
|
||||
fi
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="30000">
|
||||
<setting id="inadyn_S" label="30001" type="labelenum" values="inadyn.conf|default@dyndns.org|default@freedns.afraid.org|default@zoneedit.com|default@no-ip.com|default@easydns.com|default@tzo.com|dyndns@3322.org|default@dnsomatic.com|dyndns@he.net|default@tunnelbroker.net|default@dynsip.org|default@sitelutions.com|default@dnsexit.com|default@changeip.com|default@zerigo.com|default@dhis.org|ipv4@nsupdate.info|default@duckdns.org|default@loopia.com|default@duiadns.net" />
|
||||
<setting id="inadyn_u" label="30002" type="text" visible="!eq(-1,0)" />
|
||||
<setting id="inadyn_p" label="30003" type="text" visible="!eq(-2,0)" option="hidden" />
|
||||
<setting id="inadyn_a" label="30004" type="text" visible="!eq(-3,0)" />
|
||||
<setting id="inadyn_s" label="30005" type="bool" visible="!eq(-4,0)" default="true"/>
|
||||
<setting id="inadyn_S" label="30001" type="select" default="inadyn.conf" values="inadyn.conf|default@changeip.com|default@ddnss.de|default@dhis.org|default@dnsexit.com|default@dnsomatic.com|default@domains.google.com|default@dtdns.com|default@duckdns.org|default@duiadns.net|default@dyndns.org|default@dynsip.org|default@dynv6.com|default@easydns.com|default@freedns.afraid.org|default@gira.de|default@ipv4.dynv6.com|default@loopia.com|default@no-ip.com|default@ovh.com|default@sitelutions.com|default@spdyn.de|default@strato.com|default@tunnelbroker.net|default@tzo.com|default@zerigo.com|default@zoneedit.com|dyndns@3322.org|dyndns@he.net|ipv4@nsupdate.info" />
|
||||
<setting id="inadyn_u" label="30002" type="text" visible="!eq(-1,inadyn.conf)" />
|
||||
<setting id="inadyn_p" label="30003" type="text" visible="!eq(-2,inadyn.conf)" option="hidden" />
|
||||
<setting id="inadyn_a" label="30004" type="text" visible="!eq(-3,inadyn.conf)" />
|
||||
<setting id="inadyn_s" label="30005" type="bool" visible="!eq(-4,inadyn.conf)" default="true"/>
|
||||
</category>
|
||||
</settings>
|
||||
|
||||
2
packages/addons/service/mpd/changelog.txt
Normal file
2
packages/addons/service/mpd/changelog.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
7.0.100
|
||||
- initial LibreELEC version
|
||||
BIN
packages/addons/service/mpd/icon/icon.png
Normal file
BIN
packages/addons/service/mpd/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
99
packages/addons/service/mpd/package.mk
Normal file
99
packages/addons/service/mpd/package.mk
Normal file
@@ -0,0 +1,99 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mpd"
|
||||
PKG_VERSION="0.19.15"
|
||||
PKG_REV="100"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://www.musicpd.org"
|
||||
PKG_URL="http://www.musicpd.org/download/${PKG_NAME}/${PKG_VERSION%.*}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain boost glib ffmpeg libmad libogg flac faad2 curl alsa-lib yajl libid3tag lame"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service.multimedia"
|
||||
PKG_SHORTDESC="Music Player Daemon (MPD): a free and open Music Player Server"
|
||||
PKG_LONGDESC="Music Player Daemon ($PKG_VERSION) is a flexible and powerful server-side application for playing music"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Music Player Daemon (MPD)"
|
||||
PKG_ADDON_TYPE="xbmc.service"
|
||||
PKG_ADDON_PROVIDES=""
|
||||
PKG_ADDON_REPOVERSION="7.0"
|
||||
|
||||
pre_configure_target() {
|
||||
export LIBS="$LIBS -logg -lFLAC"
|
||||
}
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-alsa \
|
||||
--disable-roar \
|
||||
--disable-ao \
|
||||
--disable-audiofile \
|
||||
--disable-bzip2 \
|
||||
--disable-cdio-paranoia \
|
||||
--enable-curl \
|
||||
--disable-smbclient \
|
||||
--disable-soup \
|
||||
--disable-debug \
|
||||
--disable-documentation \
|
||||
--disable-ffado \
|
||||
--enable-ffmpeg \
|
||||
--disable-fluidsynth \
|
||||
--disable-gme \
|
||||
--enable-httpd-output \
|
||||
--enable-id3 \
|
||||
--disable-jack \
|
||||
--disable-lastfm \
|
||||
--disable-despotify \
|
||||
--disable-soundcloud \
|
||||
--enable-lame-encoder \
|
||||
--disable-libwrap \
|
||||
--disable-lsr \
|
||||
--enable-mad \
|
||||
--disable-mikmod\
|
||||
--disable-mms \
|
||||
--disable-modplug \
|
||||
--disable-mpg123 \
|
||||
--disable-mvp \
|
||||
--disable-openal \
|
||||
--disable-oss \
|
||||
--disable-pipe-output \
|
||||
--disable-pulse \
|
||||
--disable-recorder-output \
|
||||
--disable-sidplay \
|
||||
--disable-shout \
|
||||
--disable-sndfile \
|
||||
--disable-solaris-output \
|
||||
--disable-sqlite \
|
||||
--disable-systemd-daemon \
|
||||
--disable-test \
|
||||
--disable-twolame-encoder \
|
||||
--disable-zzip \
|
||||
--with-zeroconf=no \
|
||||
--disable-icu"
|
||||
|
||||
makeinstall_target() {
|
||||
: # nop
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $PKG_BUILD/.$TARGET_NAME/src/mpd $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
}
|
||||
41
packages/addons/service/mpd/source/bin/mpd.start
Executable file
41
packages/addons/service/mpd/source/bin/mpd.start
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to the
|
||||
# Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. /etc/profile
|
||||
|
||||
oe_setup_addon service.multimedia.mpd
|
||||
|
||||
mkdir -p $ADDON_HOME/config
|
||||
mkdir -p $ADDON_HOME/log
|
||||
mkdir -p $ADDON_HOME/playlists
|
||||
mkdir -p $ADDON_HOME/music
|
||||
touch $ADDON_HOME/log/mpd.log
|
||||
touch $ADDON_HOME/mpd.db
|
||||
touch $ADDON_HOME/state
|
||||
|
||||
chmod a+x $ADDON_DIR/bin/*
|
||||
|
||||
if [ ! -f "$ADDON_HOME/config/mpd.conf" ]; then
|
||||
cp $ADDON_DIR/config/mpd.conf $ADDON_HOME/config/mpd.conf
|
||||
fi
|
||||
|
||||
exec mpd --no-daemon $ADDON_HOME/config/mpd.conf > /dev/null 2>&1
|
||||
453
packages/addons/service/mpd/source/config/mpd.conf
Normal file
453
packages/addons/service/mpd/source/config/mpd.conf
Normal file
@@ -0,0 +1,453 @@
|
||||
# An example configuration file for MPD
|
||||
# See the mpd.conf man page for a more detailed description of each parameter.
|
||||
|
||||
|
||||
# Files and directories #######################################################
|
||||
#
|
||||
# This setting controls the top directory which MPD will search to discover the
|
||||
# available audio files and add them to the daemon's online database. This
|
||||
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||
# be disabled and audio files will only be accepted over ipc socket (using
|
||||
# file:// protocol) or streaming files over an accepted protocol.
|
||||
#
|
||||
music_directory "/storage/music"
|
||||
#
|
||||
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||
# directory is storage for playlists created by MPD. The server will use
|
||||
# playlist files not created by the server but only if they are in the MPD
|
||||
# format. This setting defaults to playlist saving being disabled.
|
||||
#
|
||||
playlist_directory "/storage/.kodi/userdata/addon_data/service.multimedia.mpd/playlists"
|
||||
#
|
||||
# This setting sets the location of the MPD database. This file is used to
|
||||
# load the database at server start up and store the database while the
|
||||
# server is not up. This setting defaults to disabled which will allow
|
||||
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||
# files over an accepted protocol.
|
||||
#
|
||||
db_file "/storage/.kodi/userdata/addon_data/service.multimedia.mpd/mpd.db"
|
||||
#
|
||||
# These settings are the locations for the daemon log files for the daemon.
|
||||
# These logs are great for troubleshooting, depending on your log_level
|
||||
# settings.
|
||||
#
|
||||
# The special value "syslog" makes MPD use the local syslog daemon. This
|
||||
# setting defaults to logging to syslog, otherwise logging is disabled.
|
||||
#
|
||||
log_file "/storage/.kodi/userdata/addon_data/service.multimedia.mpd/log/mpd.log"
|
||||
#
|
||||
# This setting sets the location of the file which stores the process ID
|
||||
# for use of mpd --kill and some init scripts. This setting is disabled by
|
||||
# default and the pid file will not be stored.
|
||||
#
|
||||
pid_file "/var/run/mpd.pid"
|
||||
#
|
||||
# This setting sets the location of the file which contains information about
|
||||
# most variables to get MPD back into the same general shape it was in before
|
||||
# it was brought down. This setting is disabled by default and the server
|
||||
# state will be reset on server start up.
|
||||
#
|
||||
state_file "/storage/.kodi/userdata/addon_data/service.multimedia.mpd/state"
|
||||
#
|
||||
# The location of the sticker database. This is a database which
|
||||
# manages dynamic information attached to songs.
|
||||
#
|
||||
#sticker_file "/storage/.mpd/sticker.sql"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# General music daemon options ################################################
|
||||
#
|
||||
# This setting specifies the user that MPD will run as. MPD should never run as
|
||||
# root and you may use this setting to make MPD change its user ID after
|
||||
# initialization. This setting is disabled by default and MPD is run as the
|
||||
# current user.
|
||||
#
|
||||
#user "mpd"
|
||||
#
|
||||
# This setting specifies the group that MPD will run as. If not specified
|
||||
# primary group of user specified with "user" setting will be used (if set).
|
||||
# This is useful if MPD needs to be a member of group such as "audio" to
|
||||
# have permission to use sound card.
|
||||
#
|
||||
#group "nogroup"
|
||||
#
|
||||
# This setting sets the address for the daemon to listen on. Careful attention
|
||||
# should be paid if this is assigned to anything other then the default, any.
|
||||
# This setting can deny access to control of the daemon.
|
||||
#
|
||||
# For network
|
||||
#bind_to_address "any"
|
||||
#
|
||||
# And for Unix Socket
|
||||
#bind_to_address "/storage/.mpd/socket"
|
||||
#
|
||||
# This setting is the TCP port that is desired for the daemon to get assigned
|
||||
# to.
|
||||
#
|
||||
#port "6600"
|
||||
#
|
||||
# This setting controls the type of information which is logged. Available
|
||||
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
|
||||
# argument is recommended for troubleshooting, though can quickly stretch
|
||||
# available resources on limited hardware storage.
|
||||
#
|
||||
#log_level "default"
|
||||
#
|
||||
# If you have a problem with your MP3s ending abruptly it is recommended that
|
||||
# you set this argument to "no" to attempt to fix the problem. If this solves
|
||||
# the problem, it is highly recommended to fix the MP3 files with vbrfix
|
||||
# (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which
|
||||
# point gapless MP3 playback can be enabled.
|
||||
#
|
||||
#gapless_mp3_playback "yes"
|
||||
#
|
||||
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
||||
# of starting playback after startup.
|
||||
#
|
||||
#restore_paused "no"
|
||||
#
|
||||
# This setting enables MPD to create playlists in a format usable by other
|
||||
# music players.
|
||||
#
|
||||
#save_absolute_paths_in_playlists "no"
|
||||
#
|
||||
# This setting defines a list of tag types that will be extracted during the
|
||||
# audio file discovery process. Optionally, 'comment' can be added to this
|
||||
# list.
|
||||
#
|
||||
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
||||
#
|
||||
# This setting enables automatic update of MPD's database when files in
|
||||
# music_directory are changed.
|
||||
#
|
||||
#auto_update "yes"
|
||||
#
|
||||
# Limit the depth of the directories being watched, 0 means only watch
|
||||
# the music directory itself. There is no limit by default.
|
||||
#
|
||||
#auto_update_depth "3"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Symbolic link behavior ######################################################
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links outside of the configured music_directory.
|
||||
#
|
||||
#follow_outside_symlinks "yes"
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links inside of the configured music_directory.
|
||||
#
|
||||
#follow_inside_symlinks "yes"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Zeroconf / Avahi Service Discovery ##########################################
|
||||
#
|
||||
# If this setting is set to "yes", service information will be published with
|
||||
# Zeroconf / Avahi.
|
||||
#
|
||||
#zeroconf_enabled "yes"
|
||||
#
|
||||
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
||||
# this MPD server on the network.
|
||||
#
|
||||
#zeroconf_name "Music Player"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Permissions #################################################################
|
||||
#
|
||||
# If this setting is set, MPD will require password authorization. The password
|
||||
# can setting can be specified multiple times for different password profiles.
|
||||
#
|
||||
#password "password@read,add,control,admin"
|
||||
#
|
||||
# This setting specifies the permissions a user has who has not yet logged in.
|
||||
#
|
||||
#default_permissions "read,add,control,admin"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Input #######################################################################
|
||||
#
|
||||
|
||||
#input {
|
||||
# plugin "curl"
|
||||
# proxy "proxy.isp.com:8080"
|
||||
# proxy_user "user"
|
||||
# proxy_password "password"
|
||||
#}
|
||||
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# A BIG FAT WARNING
|
||||
#
|
||||
# This may block your xbmc audio. It might also play no audio at all,
|
||||
# if streamsilence is enabled and you try to use the very same device.
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# Audio Output ################################################################
|
||||
#
|
||||
# MPD supports various audio output types, as well as playing through multiple
|
||||
# audio outputs at the same time, through multiple audio_output settings
|
||||
# blocks. Setting this block is optional, though the server will only attempt
|
||||
# autodetection for one sound card.
|
||||
#
|
||||
# See <http://mpd.wikia.com/wiki/Configuration#Audio_Outputs> for examples of
|
||||
# other audio outputs.
|
||||
#
|
||||
# An example of an ALSA output:
|
||||
#
|
||||
##audio_output {
|
||||
## type "alsa"
|
||||
## name "ALSA Device"
|
||||
### device "hw:0,0" # optional
|
||||
#### format "44100:16:2" # optional
|
||||
#### mixer_type "hardware" # optional
|
||||
#### mixer_device "default" # optional
|
||||
#### mixer_control "PCM" # optional
|
||||
#### mixer_index "0" # optional
|
||||
##}
|
||||
#
|
||||
# An example of an OSS output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "oss"
|
||||
# name "My OSS Device"
|
||||
## device "/dev/dsp" # optional
|
||||
## format "44100:16:2" # optional
|
||||
## mixer_type "hardware" # optional
|
||||
## mixer_device "/dev/mixer" # optional
|
||||
## mixer_control "PCM" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a shout output (for streaming to Icecast):
|
||||
#
|
||||
#audio_output {
|
||||
# type "shout"
|
||||
# encoding "ogg" # optional
|
||||
# name "My Shout Stream"
|
||||
# host "localhost"
|
||||
# port "8000"
|
||||
# mount "/mpd.ogg"
|
||||
# password "hackme"
|
||||
# quality "5.0"
|
||||
# bitrate "128"
|
||||
# format "44100:16:1"
|
||||
## protocol "icecast2" # optional
|
||||
## user "source" # optional
|
||||
## description "My Stream Description" # optional
|
||||
## url "http://example.com" # optional
|
||||
## genre "jazz" # optional
|
||||
## public "no" # optional
|
||||
## timeout "2" # optional
|
||||
## mixer_type "software" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a recorder output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "recorder"
|
||||
# name "My recorder"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# path "/var/lib/mpd/recorder/mpd.ogg"
|
||||
## quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "128" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
#}
|
||||
#
|
||||
# An example of a httpd output (built-in HTTP streaming server):
|
||||
#
|
||||
#audio_output {
|
||||
## type "httpd"
|
||||
# name "My HTTP Stream"
|
||||
# encoder "vorbis" # optional, vorbis or lame
|
||||
# port "8000"
|
||||
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
||||
# quality "5.0" # do not define if bitrate is defined
|
||||
# bitrate "320" # do not define if quality is defined
|
||||
# format "44100:16:1"
|
||||
# max_clients "0" # optional 0=no limit
|
||||
#}
|
||||
#
|
||||
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
||||
#
|
||||
#audio_output {
|
||||
# type "pulse"
|
||||
# name "My Pulse Output"
|
||||
## server "remote_server" # optional
|
||||
## sink "remote_server_sink" # optional
|
||||
#}
|
||||
#
|
||||
## Example "pipe" output:
|
||||
#
|
||||
#audio_output {
|
||||
# type "pipe"
|
||||
# name "my pipe"
|
||||
# command "aplay -f cd 2>/dev/null"
|
||||
## Or if you're want to use AudioCompress
|
||||
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
||||
## Or to send raw PCM stream through PCM:
|
||||
# command "nc example.org 8765"
|
||||
# format "44100:16:2"
|
||||
#}
|
||||
#
|
||||
## An example of a null output (for no audio output):
|
||||
#
|
||||
audio_output {
|
||||
type "null"
|
||||
name "My Null Output"
|
||||
mixer_type "none" # optional
|
||||
}
|
||||
#
|
||||
# This setting will change all decoded audio to be converted to the specified
|
||||
# format before being passed to the audio outputs. By default, this setting is
|
||||
# disabled.
|
||||
#
|
||||
#audio_output_format "44100:16:2"
|
||||
#
|
||||
# If MPD has been compiled with libsamplerate support, this setting specifies
|
||||
# the sample rate converter to use. Possible values can be found in the
|
||||
# mpd.conf man page or the libsamplerate documentation. By default, this is
|
||||
# setting is disabled.
|
||||
#
|
||||
#samplerate_converter "Fastest Sinc Interpolator"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Normalization automatic volume adjustments ##################################
|
||||
#
|
||||
# This setting specifies the type of ReplayGain to use. This setting can have
|
||||
# the argument "off", "album" or "track". See <http://www.replaygain.org>
|
||||
# for more details. This setting is off by default.
|
||||
#
|
||||
#replaygain "album"
|
||||
#
|
||||
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
||||
# default this setting is disabled.
|
||||
#
|
||||
#replaygain_preamp "0"
|
||||
#
|
||||
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||
# result in the volume of all playing audio to be adjusted so the output has
|
||||
# equal "loudness". This setting is disabled by default.
|
||||
#
|
||||
#volume_normalization "no"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# MPD Internal Buffering ######################################################
|
||||
#
|
||||
# This setting adjusts the size of internal decoded audio buffering. Changing
|
||||
# this may have undesired effects. Don't change this if you don't know what you
|
||||
# are doing.
|
||||
#
|
||||
#audio_buffer_size "2048"
|
||||
#
|
||||
# This setting controls the percentage of the buffer which is filled before
|
||||
# beginning to play. Increasing this reduces the chance of audio file skipping,
|
||||
# at the cost of increased time prior to audio playback.
|
||||
#
|
||||
#buffer_before_play "10%"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Resource Limitations ########################################################
|
||||
#
|
||||
# These settings are various limitations to prevent MPD from using too many
|
||||
# resources. Generally, these settings should be minimized to prevent security
|
||||
# risks, depending on the operating resources.
|
||||
#
|
||||
#connection_timeout "60"
|
||||
#max_connections "10"
|
||||
#max_playlist_length "16384"
|
||||
#max_command_list_size "2048"
|
||||
#max_output_buffer_size "8192"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Client TCP keep alive #######################################################
|
||||
#
|
||||
# For clients connected by TCP on supported platforms.
|
||||
# Allows detection of dangling connections due to clients disappearing from
|
||||
# the network without closing their connections.
|
||||
#
|
||||
# This is not usually necessary but can be useful in cases such as wifi connectected
|
||||
# clients that go in and out of network range or turn off wifi without closing their
|
||||
# connections. Combined with low max_connections this can soon cause clients to not
|
||||
# be able to connect.
|
||||
#
|
||||
#
|
||||
# Enable tcp keepalive on new client connections (default is "no")
|
||||
#
|
||||
#tcp_keep_alive "no"
|
||||
#
|
||||
# Time in seconds since the last communication on the connection and before
|
||||
# the keepalive probing is started. (default is 7200 seconds)
|
||||
#tcp_keep_alive_idle "7200"
|
||||
#
|
||||
# Interval in seconds between keepalive probes, once a probe started.
|
||||
# (default is 75 seconds)
|
||||
#tcp_keep_alive_interval "75"
|
||||
#
|
||||
# Number of failed probes before the connection is pronounced dead and
|
||||
# the connection is closed. (default is 9 times)
|
||||
#tcp_keep_alive_count "9"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Character Encoding ##########################################################
|
||||
#
|
||||
# If file or directory names do not display correctly for your locale then you
|
||||
# may need to modify this setting.
|
||||
#
|
||||
#filesystem_charset "UTF-8"
|
||||
#
|
||||
# This setting controls the encoding that ID3v1 tags should be converted from.
|
||||
#
|
||||
#id3v1_encoding "ISO-8859-1"
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
# SIDPlay decoder #############################################################
|
||||
#
|
||||
# songlength_database:
|
||||
# Location of your songlengths file, as distributed with the HVSC.
|
||||
# The sidplay plugin checks this for matching MD5 fingerprints.
|
||||
# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq
|
||||
#
|
||||
# default_songlength:
|
||||
# This is the default playing time in seconds for songs not in the
|
||||
# songlength database, or in case you're not using a database.
|
||||
# A value of 0 means play indefinitely.
|
||||
#
|
||||
# filter:
|
||||
# Turns the SID filter emulation on or off.
|
||||
#
|
||||
#decoder {
|
||||
# plugin "sidplay"
|
||||
# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt"
|
||||
# default_songlength "120"
|
||||
# filter "true"
|
||||
#}
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
19
packages/addons/service/mpd/source/default.py
Normal file
19
packages/addons/service/mpd/source/default.py
Normal file
@@ -0,0 +1,19 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="1000">General</string>
|
||||
<string id="1011">Restart on suspend / resume</string>
|
||||
</strings>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user