mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
371 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e855d1ea11 | ||
|
|
8fba548a46 | ||
|
|
75170db1aa | ||
|
|
79c59908cf | ||
|
|
6285685de7 | ||
|
|
8c39d597f7 | ||
|
|
97fa217f54 | ||
|
|
ab246ebe97 | ||
|
|
4862642f6e | ||
|
|
4ab656fe61 | ||
|
|
bb4e3f354d | ||
|
|
f8a588e57e | ||
|
|
d206d46f3e | ||
|
|
c9a2d68cfa | ||
|
|
5ebb357e1a | ||
|
|
8dbfc26f94 | ||
|
|
1d0aa1bedb | ||
|
|
843d59fcfb | ||
|
|
21d9e1293e | ||
|
|
9b33d3589e | ||
|
|
1c89f1826a | ||
|
|
ebdb386091 | ||
|
|
d4c7b7e4b4 | ||
|
|
5b101dc237 | ||
|
|
d7c5753ca7 | ||
|
|
aa967f4fc6 | ||
|
|
f9bce9dd13 | ||
|
|
5fc0a7b38b | ||
|
|
1b40fa2d9a | ||
|
|
8159703761 | ||
|
|
13b2a84ea1 | ||
|
|
d03d9cdd6f | ||
|
|
6dbb0a9698 | ||
|
|
6c59612930 | ||
|
|
d7b1df1730 | ||
|
|
571bb9f145 | ||
|
|
ed5ca47a8f | ||
|
|
0ca4008f8b | ||
|
|
679cd0482b | ||
|
|
d88ef305cc | ||
|
|
8e03887f6c | ||
|
|
eb92ad3d5f | ||
|
|
d49c4e5b11 | ||
|
|
cc1740a4ba | ||
|
|
fd382b9743 | ||
|
|
9dc1f5d168 | ||
|
|
e5b2ea3244 | ||
|
|
4e9fbb01fb | ||
|
|
db2facc06a | ||
|
|
2c8e9d4a15 | ||
|
|
1ab8c01495 | ||
|
|
3a202a3020 | ||
|
|
05315f3fc8 | ||
|
|
feae1d23a5 | ||
|
|
812331133d | ||
|
|
d0df1c2b06 | ||
|
|
9f71e3125a | ||
|
|
72f0a90609 | ||
|
|
8a337ef50d | ||
|
|
4bb4dcab1d | ||
|
|
b3d9313309 | ||
|
|
1bf09aea4e | ||
|
|
d86a21c411 | ||
|
|
69c2096793 | ||
|
|
ba18b00209 | ||
|
|
7a8d54fded | ||
|
|
f781309802 | ||
|
|
be0ac4b955 | ||
|
|
0e53edf8c7 | ||
|
|
368db6a726 | ||
|
|
59be68f4b0 | ||
|
|
6960dc5359 | ||
|
|
2612b796d5 | ||
|
|
2521cb30d5 | ||
|
|
f2935775e4 | ||
|
|
2a15ccbc86 | ||
|
|
a761a2725e | ||
|
|
12b1e672a9 | ||
|
|
e1c0d65ab9 | ||
|
|
af7adda9e6 | ||
|
|
43ea8529e9 | ||
|
|
3db5fcf296 | ||
|
|
49e316bc98 | ||
|
|
73e0b6b5a4 | ||
|
|
be49525470 | ||
|
|
d7ff410795 | ||
|
|
7e2ccb295d | ||
|
|
bfc347ceb4 | ||
|
|
c892b2adf6 | ||
|
|
4962e1fca4 | ||
|
|
b60a6e2d92 | ||
|
|
5867c36671 | ||
|
|
1997236387 | ||
|
|
0c7457e724 | ||
|
|
1bfd8e7f61 | ||
|
|
a32394bca6 | ||
|
|
5ff2b1a955 | ||
|
|
a7802044ca | ||
|
|
dd4431b2a0 | ||
|
|
9b819040be | ||
|
|
b15c63b07e | ||
|
|
bc826f551f | ||
|
|
ffd9cb41f9 | ||
|
|
50b29efbb3 | ||
|
|
66d6f4dc69 | ||
|
|
5d3ab28b5d | ||
|
|
d7e4c1993d | ||
|
|
05f5831370 | ||
|
|
964dada278 | ||
|
|
e7e994bfd9 | ||
|
|
be3c850da2 | ||
|
|
7bf499fef1 | ||
|
|
5c12e6dd48 | ||
|
|
e6bda27080 | ||
|
|
93431a3420 | ||
|
|
a925249f24 | ||
|
|
8e4356aa1b | ||
|
|
6fdb71c0aa | ||
|
|
8de6404b30 | ||
|
|
0e3510b6c9 | ||
|
|
686a73b56b | ||
|
|
8eb85ddaa9 | ||
|
|
7f406af767 | ||
|
|
b6f56108ec | ||
|
|
294e7c5412 | ||
|
|
19bcb1a1fe | ||
|
|
47f98a2bb9 | ||
|
|
6eddc217f6 | ||
|
|
da6317584e | ||
|
|
5455666f32 | ||
|
|
a9b0111317 | ||
|
|
b288787969 | ||
|
|
1298174ad5 | ||
|
|
653e53173f | ||
|
|
2b436b3212 | ||
|
|
2f25c2c8f4 | ||
|
|
29658ecb0f | ||
|
|
6ff220ed5d | ||
|
|
da312dc7d6 | ||
|
|
81888a7c85 | ||
|
|
f122879a43 | ||
|
|
309710e64b | ||
|
|
64965b0ebc | ||
|
|
32258c087d | ||
|
|
79108024da | ||
|
|
10de47343f | ||
|
|
aea575eb29 | ||
|
|
42ee709cfe | ||
|
|
55559f8be5 | ||
|
|
d5705c79ab | ||
|
|
f223e23fe3 | ||
|
|
9957940e86 | ||
|
|
9a5e94fb6e | ||
|
|
ae018780a8 | ||
|
|
34de01dfa5 | ||
|
|
b09726929f | ||
|
|
942b1ffa80 | ||
|
|
b4802bd5c4 | ||
|
|
82cc40069f | ||
|
|
745f6790ec | ||
|
|
fefe70559c | ||
|
|
6c328cfe3b | ||
|
|
ee22bb0dbb | ||
|
|
4b9d71d9e9 | ||
|
|
d41dc1878d | ||
|
|
42b123e712 | ||
|
|
8c6ef4c2ab | ||
|
|
b4e2344026 | ||
|
|
fb1e10f464 | ||
|
|
a5b8ce77c9 | ||
|
|
2adbedec41 | ||
|
|
880f43ee94 | ||
|
|
7301560cd2 | ||
|
|
0fd4cdea9e | ||
|
|
42ed3d20b6 | ||
|
|
ef4443c1de | ||
|
|
0efa45223c | ||
|
|
e82bde9920 | ||
|
|
0f6b1c4142 | ||
|
|
3a29a9e2ce | ||
|
|
b93596fae2 | ||
|
|
5b97d63c95 | ||
|
|
73cf0af5dd | ||
|
|
8fa60279d3 | ||
|
|
2c9f5eeebd | ||
|
|
94cffa28cd | ||
|
|
51a6b73f3b | ||
|
|
6682c6267f | ||
|
|
5ed35c1262 | ||
|
|
4c139b3a02 | ||
|
|
b23f269dbe | ||
|
|
796223f8c6 | ||
|
|
ce9a46ea73 | ||
|
|
fdcab899bc | ||
|
|
18a20870c1 | ||
|
|
e4c842b45b | ||
|
|
c4ebfb00cd | ||
|
|
845c4c97d9 | ||
|
|
534dc1f932 | ||
|
|
9a749b5654 | ||
|
|
8b98e0dc78 | ||
|
|
fe48e16b78 | ||
|
|
12be174140 | ||
|
|
01e30699f1 | ||
|
|
241b089dbd | ||
|
|
7bdafac236 | ||
|
|
f42e876e11 | ||
|
|
4bf466922e | ||
|
|
a0d90c3e2d | ||
|
|
735086eb55 | ||
|
|
bbdc495bf5 | ||
|
|
08c2e35be9 | ||
|
|
6c91178539 | ||
|
|
4ca55555ac | ||
|
|
5bb439d3b6 | ||
|
|
a406686a05 | ||
|
|
c3a7fcffae | ||
|
|
a7cf6b31fe | ||
|
|
03167fa8f6 | ||
|
|
7e1bf53b40 | ||
|
|
029487648d | ||
|
|
c3766580f9 | ||
|
|
bb79e9854d | ||
|
|
6e2c397be6 | ||
|
|
6289fefb19 | ||
|
|
40c68b1236 | ||
|
|
3e1bdc3e17 | ||
|
|
21b1b6f4ea | ||
|
|
1fb2edc659 | ||
|
|
d7da465515 | ||
|
|
586092ce7b | ||
|
|
65bd18949d | ||
|
|
7948131c88 | ||
|
|
31f55cbd62 | ||
|
|
83f2e8d015 | ||
|
|
a19979051e | ||
|
|
ac04dfa3ec | ||
|
|
0dd42ece23 | ||
|
|
a6a64db317 | ||
|
|
d1785da461 | ||
|
|
d047abe378 | ||
|
|
d2002e9ec1 | ||
|
|
0f506f9d25 | ||
|
|
99afd73be7 | ||
|
|
c25a6a395b | ||
|
|
ee000b4bea | ||
|
|
a80455cf04 | ||
|
|
611678249c | ||
|
|
7a7b91fccb | ||
|
|
4b66eb0705 | ||
|
|
5cd8b585cc | ||
|
|
d51bbc5bea | ||
|
|
68e0f09e2c | ||
|
|
50ad0a317c | ||
|
|
2ca552eff8 | ||
|
|
f5dd985f63 | ||
|
|
d1bffaad72 | ||
|
|
96911956fd | ||
|
|
7fa4f6f085 | ||
|
|
713626cbd6 | ||
|
|
c4ab1f6ca4 | ||
|
|
2dffc06ed3 | ||
|
|
87f4220a2c | ||
|
|
31e21f7872 | ||
|
|
dc9412f041 | ||
|
|
dd0f9303fe | ||
|
|
6fe28f5005 | ||
|
|
85d02cc93b | ||
|
|
dc5f87d467 | ||
|
|
7e967b1f66 | ||
|
|
38376ad087 | ||
|
|
28ddaa01d3 | ||
|
|
f782ee9cd3 | ||
|
|
277e0e3cb9 | ||
|
|
489081954c | ||
|
|
3ec179a05d | ||
|
|
de8494df37 | ||
|
|
9ac8481770 | ||
|
|
bd2648a67b | ||
|
|
29bd97b25c | ||
|
|
41724ac2fb | ||
|
|
48c4a94fd8 | ||
|
|
d3bc4d4405 | ||
|
|
0bb162155d | ||
|
|
9762230292 | ||
|
|
a396c0eab7 | ||
|
|
79e65b9a45 | ||
|
|
218521ccda | ||
|
|
1c53abbf63 | ||
|
|
eec7b79ac2 | ||
|
|
a222dcd493 | ||
|
|
9908405b3b | ||
|
|
0e7d3445d0 | ||
|
|
c437348a41 | ||
|
|
c6c72837a3 | ||
|
|
b6ca3ec864 | ||
|
|
76c339e73e | ||
|
|
c0a4a67a71 | ||
|
|
e9c5d18bc6 | ||
|
|
655727eef2 | ||
|
|
354b8724c3 | ||
|
|
91c886f3ad | ||
|
|
0be12dfdc1 | ||
|
|
4d386da4aa | ||
|
|
df45834fe0 | ||
|
|
d873b64624 | ||
|
|
28de7e956f | ||
|
|
bee981a348 | ||
|
|
fd5edd2524 | ||
|
|
7542b351ce | ||
|
|
22cb3de37b | ||
|
|
47ba862258 | ||
|
|
e040e7490b | ||
|
|
2bde52b609 | ||
|
|
0c29d42dfb | ||
|
|
c908c1f453 | ||
|
|
03b1748e35 | ||
|
|
6f8718d27c | ||
|
|
52032717d3 | ||
|
|
7b73c87b5c | ||
|
|
fc3302b54a | ||
|
|
6b4fc85163 | ||
|
|
a0bc8c4dac | ||
|
|
da66b9b4bd | ||
|
|
c31206ff78 | ||
|
|
94e8f64f12 | ||
|
|
6467122c22 | ||
|
|
2907959e13 | ||
|
|
8454fbaa70 | ||
|
|
4e85d78c5a | ||
|
|
0668aa8a07 | ||
|
|
91099120ac | ||
|
|
be9c7ab79f | ||
|
|
396624cfb9 | ||
|
|
97a8eb49cb | ||
|
|
6949ffd446 | ||
|
|
3f7cc3eb02 | ||
|
|
28dedbd6de | ||
|
|
01685cc719 | ||
|
|
c56cc486af | ||
|
|
824565fc3f | ||
|
|
d6180afba3 | ||
|
|
2a7793733c | ||
|
|
d33c7ea336 | ||
|
|
ac9bee017e | ||
|
|
91d7ffa374 | ||
|
|
a0ab5dff70 | ||
|
|
7ddcdfa65a | ||
|
|
ae5a16791b | ||
|
|
194f304c22 | ||
|
|
c6e0ad65d7 | ||
|
|
22510cdfd2 | ||
|
|
db83f0b8ba | ||
|
|
838715a1af | ||
|
|
f9704e0d6f | ||
|
|
599d041a28 | ||
|
|
8a06a27d9c | ||
|
|
0ffe72b890 | ||
|
|
053fd91d52 | ||
|
|
cf63cc1051 | ||
|
|
c3afcf4e6c | ||
|
|
deb8e68a2c | ||
|
|
82e434597d | ||
|
|
764595b2b8 | ||
|
|
a063d8f61d | ||
|
|
3dfd23d811 | ||
|
|
2d27c7d6b2 | ||
|
|
840495f829 | ||
|
|
6a931c6228 | ||
|
|
83fd4f2512 | ||
|
|
ae732516de |
@@ -104,23 +104,11 @@ setup_toolchain() {
|
||||
}
|
||||
|
||||
kernel_path() {
|
||||
if [ -e $ROOT/projects/$PROJECT/packages/linux/package.mk ]; then
|
||||
. $ROOT/projects/$PROJECT/packages/linux/package.mk
|
||||
else
|
||||
. $ROOT/packages/linux/package.mk
|
||||
fi
|
||||
|
||||
echo $ROOT/$BUILD/${PKG_NAME}-${PKG_VERSION}
|
||||
get_build_dir linux
|
||||
}
|
||||
|
||||
kernel_version() {
|
||||
if [ -e $ROOT/projects/$PROJECT/packages/linux/package.mk ]; then
|
||||
. $ROOT/projects/$PROJECT/packages/linux/package.mk
|
||||
else
|
||||
. $ROOT/packages/linux/package.mk
|
||||
fi
|
||||
|
||||
echo ${PKG_VERSION}
|
||||
get_pkg_version linux
|
||||
}
|
||||
|
||||
# get kernel module dir
|
||||
@@ -130,30 +118,30 @@ get_module_dir() {
|
||||
|
||||
# get package's build dir
|
||||
get_build_dir() {
|
||||
if [ ! -z $1 ] ; then
|
||||
local _PKG_DIR=$(find $ROOT/projects/$PROJECT/packages -name $1 2>/dev/null)
|
||||
if [ -d "$_PKG_DIR" -a -f $_PKG_DIR/package.mk ] ; then
|
||||
. $_PKG_DIR/package.mk
|
||||
else
|
||||
local _PKG_DIR=$(find $ROOT/packages -name $1 2>/dev/null)
|
||||
if [ -d "$_PKG_DIR" -a -f $_PKG_DIR/package.mk ] ; then
|
||||
. $_PKG_DIR/package.mk
|
||||
fi
|
||||
fi
|
||||
|
||||
echo $ROOT/$BUILD/${PKG_NAME}-${PKG_VERSION}
|
||||
local _PKG_NAME="$(get_pkg_variable "$1" PKG_NAME)" _PKG_VERSION="$(get_pkg_version "$1")"
|
||||
if [ -n "$_PKG_NAME" -a -n "$_PKG_VERSION" ]; then
|
||||
echo $ROOT/$BUILD/${_PKG_NAME}-${_PKG_VERSION}
|
||||
fi
|
||||
}
|
||||
|
||||
get_pkg_version() {
|
||||
if [ ! -z $1 ] ; then
|
||||
get_pkg_variable "$1" PKG_VERSION
|
||||
}
|
||||
|
||||
get_pkg_directory() {
|
||||
get_pkg_variable "$1" PKG_DIR
|
||||
}
|
||||
|
||||
# get variable ($2) for package ($1)
|
||||
get_pkg_variable() {
|
||||
if [ -n "$1" -a -n "$2" ] ; then
|
||||
cd $ROOT
|
||||
. config/options $1
|
||||
echo "$PKG_VERSION"
|
||||
echo "${!2}"
|
||||
fi
|
||||
}
|
||||
|
||||
tolower(){
|
||||
tolower() {
|
||||
echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Welcome to OpenELEC - the powerful Mediacenter4you
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
LIBREELEC_VERSION="7.95.3"
|
||||
LIBREELEC_VERSION="devel"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="8.0"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="containerd"
|
||||
PKG_VERSION="03e5862"
|
||||
PKG_VERSION="aa8187d"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="APL"
|
||||
PKG_SITE="https://containerd.tools/"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bitstream"
|
||||
PKG_VERSION="1.1"
|
||||
PKG_VERSION="1.2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.videolan.org"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libev"
|
||||
PKG_VERSION="4.22"
|
||||
PKG_VERSION="4.24"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://software.schmorp.de/pkg/libev.html"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dvb-fe-tool"
|
||||
PKG_VERSION="fa2f7d9"
|
||||
PKG_VERSION="1388a04"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://linuxtv.org/"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dvblast"
|
||||
PKG_VERSION="3.0"
|
||||
PKG_VERSION="3.1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.videolan.org"
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
diff -Naur dvblast-3.0/Makefile dvblast-3.0.patch/Makefile
|
||||
--- dvblast-3.0/Makefile 2015-10-05 17:51:14.000000000 +0200
|
||||
+++ dvblast-3.0.patch/Makefile 2016-03-26 22:54:59.953303040 +0100
|
||||
@@ -55,11 +55,11 @@
|
||||
|
||||
dvblast: $(OBJ_DVBLAST)
|
||||
@echo "LINK $@"
|
||||
- $(Q)$(CROSS)$(CC) -o $@ $(OBJ_DVBLAST) $(LDLIBS_DVBLAST) $(LDLIBS)
|
||||
+ $(Q)$(CROSS)$(CC) -o $@ $(OBJ_DVBLAST) $(LDFLAGS) $(LDLIBS_DVBLAST) $(LDLIBS)
|
||||
|
||||
dvblastctl: $(OBJ_DVBLASTCTL)
|
||||
@echo "LINK $@"
|
||||
- $(Q)$(CROSS)$(CC) -o $@ $(OBJ_DVBLASTCTL) $(LDLIBS)
|
||||
+ $(Q)$(CROSS)$(CC) -o $@ $(OBJ_DVBLASTCTL) $(LDFLAGS) $(LDLIBS)
|
||||
|
||||
clean:
|
||||
@echo "CLEAN $(CLEAN_OBJS)"
|
||||
@@ -0,0 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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="mumudvb"
|
||||
PKG_VERSION="fa9ff6e"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://mumudvb.net/"
|
||||
PKG_URL="https://github.com/braice/MuMuDVB/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="MuMuDVB-${PKG_VERSION}*"
|
||||
PKG_DEPENDS_TARGET="toolchain libdvbcsa"
|
||||
PKG_SECTION="tools"
|
||||
PKG_SHORTDESC="MuMuDVB (Multi Multicast DVB) is a program that streams from DVB on a network using multicasting or unicast"
|
||||
PKG_LONGDESC="MuMuDVB (Multi Multicast DVB) is a program that streams from DVB on a network using multicasting or unicast"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="w_scan"
|
||||
PKG_VERSION="20141122"
|
||||
PKG_VERSION="20170107"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://wirbel.htpc-forum.de/w_scan/index2.html"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -18,18 +18,12 @@
|
||||
|
||||
PKG_NAME="ffmpegx"
|
||||
PKG_VERSION="libreelec"
|
||||
PKG_REV="6"
|
||||
PKG_ARCH="any"
|
||||
PKG_REV="9"
|
||||
PKG_LICENSE="LGPLv2.1+"
|
||||
PKG_SITE="https://ffmpeg.org"
|
||||
PKG_DEPENDS_TARGET="toolchain ffmpeg lame x264"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="FFmpeg+"
|
||||
PKG_LONGDESC="FFmpeg built static with additional features"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_configure_target() {
|
||||
cd "$ROOT/$PKG_BUILD"
|
||||
rm -rf ".$TARGET_NAME"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,20 +17,14 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="imagemagick"
|
||||
PKG_VERSION="6.9.6-7"
|
||||
PKG_ARCH="any"
|
||||
PKG_VERSION="7.0.5-7"
|
||||
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_URL="https://github.com/ImageMagick/ImageMagick/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="ImageMagick-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain libX11"
|
||||
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 \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,19 +17,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="x264"
|
||||
PKG_VERSION="snapshot-20161203-2245-stable"
|
||||
PKG_ARCH="any"
|
||||
PKG_VERSION="snapshot-20170524-2245-stable"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.videolan.org/developers/x264.html"
|
||||
PKG_URL="ftp://ftp.videolan.org/pub/videolan/x264/snapshots/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_SECTION="multimedia"
|
||||
PKG_SHORTDESC="x264"
|
||||
PKG_LONGDESC="x264"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_configure_target() {
|
||||
cd $ROOT/$PKG_BUILD
|
||||
rm -rf .$TARGET_NAME
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="go"
|
||||
PKG_VERSION="1.7.4"
|
||||
PKG_VERSION="1.7.5"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="https://golang.org"
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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="pyalsaaudio"
|
||||
PKG_VERSION="0.8.4"
|
||||
PKG_LICENSE="PSF"
|
||||
PKG_SITE="http://larsimmisch.github.io/pyalsaaudio/"
|
||||
PKG_URL="https://files.pythonhosted.org/packages/source/${PKG_NAME:0:1}/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain Python distutilscross:host alsa-lib"
|
||||
PKG_LONGDESC="ALSA bindings"
|
||||
|
||||
make_target() {
|
||||
export LDSHARED="$CC -shared"
|
||||
export PYTHONXCPREFIX="$SYSROOT_PREFIX/usr"
|
||||
python setup.py build --cross-compile
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
python setup.py install --root=$INSTALL --prefix=/usr
|
||||
find $INSTALL/usr/lib -name "*.py" -exec rm -rf "{}" ";"
|
||||
rm -rf $INSTALL/usr/lib/python*/site-packages/*.egg-info \
|
||||
$INSTALL/usr/lib/python*/site-packages/*/tests
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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="rust"
|
||||
PKG_VERSION="1.18.0"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://www.rust-lang.org"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS="toolchain"
|
||||
PKG_SECTION="devel"
|
||||
PKG_LONGDESC="Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
unpack() {
|
||||
:
|
||||
}
|
||||
|
||||
configure_target() {
|
||||
:
|
||||
}
|
||||
|
||||
make_target() {
|
||||
export CARGO_HOME="$ROOT/$TOOLCHAIN/.cargo"
|
||||
export RUSTUP_HOME="$CARGO_HOME"
|
||||
export PATH="$CARGO_HOME/bin:$PATH"
|
||||
rm -rf "$CARGO_HOME"
|
||||
curl https://sh.rustup.rs -sSf | sh -s -- --no-modify-path -y
|
||||
rustup default "$PKG_VERSION"
|
||||
case "$TARGET_ARCH" in
|
||||
aarch64)
|
||||
RUST_TRIPLE="aarch64-unknown-linux-gnu"
|
||||
;;
|
||||
arm)
|
||||
RUST_TRIPLE="arm-unknown-linux-gnueabihf"
|
||||
;;
|
||||
x86_64)
|
||||
RUST_TRIPLE="x86_64-unknown-linux-gnu"
|
||||
;;
|
||||
esac
|
||||
if [ "$TARGET_ARCH" != "x86_64" ]; then
|
||||
rustup target add "$RUST_TRIPLE"
|
||||
fi
|
||||
|
||||
cat <<EOF >"$CARGO_HOME/config"
|
||||
[target.$RUST_TRIPLE]
|
||||
linker = "$CC"
|
||||
EOF
|
||||
|
||||
cat <<'EOF' >"$CARGO_HOME/env"
|
||||
export CARGO_HOME="$ROOT/$TOOLCHAIN/.cargo"
|
||||
export CARGO_TARGET_DIR="$ROOT/$PKG_BUILD/.$TARGET_NAME"
|
||||
export PATH="$CARGO_HOME/bin:$PATH"
|
||||
export RUSTUP_HOME="$CARGO_HOME"
|
||||
mkdir -p "$CARGO_TARGET_DIR"
|
||||
EOF
|
||||
|
||||
echo "CARGO_BUILD=\"cargo build --release --target $RUST_TRIPLE\"" \
|
||||
>>"$CARGO_HOME/env"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,23 +17,18 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libgdiplus"
|
||||
PKG_VERSION="4.2"
|
||||
PKG_ARCH="any"
|
||||
PKG_VERSION="5.4"
|
||||
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_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"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-shared \
|
||||
--with-libgif=$TARGET_PREFIX \
|
||||
--with-libjpeg=$TARGET_PREFIX \
|
||||
--with-libtiff=$TARGET_PREFIX"
|
||||
|
||||
makeinstall_target() {
|
||||
make install DESTDIR=$INSTALL
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="squeezelite"
|
||||
PKG_VERSION="33cca7e"
|
||||
PKG_VERSION="a3d95ec"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/ralph-irving/squeezelite"
|
||||
@@ -33,7 +33,7 @@ PKG_AUTORECONF="no"
|
||||
pre_make_target() {
|
||||
OPTS="-DDSD -DFFMPEG -DRESAMPLE -DVISEXPORT"
|
||||
CFLAGS="$CFLAGS $OPTS"
|
||||
LDFLAGS="$LDFLAGS -lasound -lpthread -lm -lrt"
|
||||
LDFLAGS="$LDFLAGS -lasound -lpthread -lm -lrt -lFLAC -lmad -lvorbisfile -lfaad -lmpg123"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
|
||||
47
packages/addons/addon-depends/pngquant/package.mk
Normal file
47
packages/addons/addon-depends/pngquant/package.mk
Normal file
@@ -0,0 +1,47 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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="pngquant"
|
||||
PKG_VERSION="2.9.1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://pngquant.org"
|
||||
PKG_URL="http://pngquant.org/pngquant-${PKG_VERSION}-src.tar.gz"
|
||||
PKG_DEPENDS_HOST="toolchain libpng:host zlib:host"
|
||||
PKG_SECTION="graphics"
|
||||
PKG_SHORTDESC="lossy PNG compressor"
|
||||
PKG_LONGDESC="a PNG compresor that significantly reduces file sizes by converting images to a more efficient 8-bit PNG format"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
configure_host() {
|
||||
: #
|
||||
}
|
||||
|
||||
make_host() {
|
||||
cd $ROOT/$PKG_BUILD
|
||||
BIN=$ROOT/$PKG_BUILD/pngquant make
|
||||
|
||||
$STRIP $ROOT/$PKG_BUILD/pngquant
|
||||
}
|
||||
|
||||
makeinstall_host() {
|
||||
mkdir -p $ROOT/$TOOLCHAIN/bin
|
||||
cp $ROOT/$PKG_BUILD/pngquant $ROOT/$TOOLCHAIN/bin
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
From 9f3efa796acb97ea4887468f1e8136e2e0711118 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Levine <plevine457@gmail.com>
|
||||
Date: Fri, 13 May 2016 20:04:00 -0400
|
||||
Subject: [PATCH] Remove -isystem from qmake due to QTBUG-53375
|
||||
|
||||
Change-Id: If0595fc2f209a48585e7e9b9a61f11c0d4e0664f
|
||||
---
|
||||
mkspecs/common/clang.conf | 1 -
|
||||
mkspecs/common/gcc-base.conf | 1 -
|
||||
mkspecs/linux-icc/qmake.conf | 1 -
|
||||
qmake/generators/unix/unixmake2.cpp | 14 +++-----------
|
||||
qmake/generators/win32/mingw_make.cpp | 8 +-------
|
||||
5 files changed, 4 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf
|
||||
index ee9c1b8..fbe370e 100644
|
||||
--- a/mkspecs/common/clang.conf
|
||||
+++ b/mkspecs/common/clang.conf
|
||||
@@ -16,7 +16,6 @@ QMAKE_LINK_SHLIB = $$QMAKE_CXX
|
||||
CONFIG += clang_pch_style
|
||||
QMAKE_PCH_OUTPUT_EXT = .pch
|
||||
|
||||
-QMAKE_CFLAGS_ISYSTEM = -isystem
|
||||
QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
|
||||
QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
|
||||
QMAKE_CFLAGS_LTCG = -flto
|
||||
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
|
||||
index 6e043f5..df8d314 100644
|
||||
--- a/mkspecs/common/gcc-base.conf
|
||||
+++ b/mkspecs/common/gcc-base.conf
|
||||
@@ -44,7 +44,6 @@ QMAKE_CFLAGS_DEBUG += -g
|
||||
QMAKE_CFLAGS_SHLIB += -fPIC
|
||||
QMAKE_CFLAGS_STATIC_LIB += -fPIC
|
||||
QMAKE_CFLAGS_APP += -fPIC
|
||||
-QMAKE_CFLAGS_ISYSTEM = -isystem
|
||||
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
|
||||
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
|
||||
QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
|
||||
diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf
|
||||
index 495fd15..935833b 100644
|
||||
--- a/mkspecs/linux-icc/qmake.conf
|
||||
+++ b/mkspecs/linux-icc/qmake.conf
|
||||
@@ -21,7 +21,6 @@ QMAKE_CFLAGS_DEBUG = -O0 -g
|
||||
QMAKE_CFLAGS_SHLIB = -fPIC
|
||||
QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB
|
||||
QMAKE_CFLAGS_YACC =
|
||||
-QMAKE_CFLAGS_ISYSTEM = -isystem
|
||||
QMAKE_CFLAGS_THREAD = -D_REENTRANT
|
||||
QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections
|
||||
QMAKE_CFLAGS_LTCG = -ipo -fno-fat-lto-objects
|
||||
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
|
||||
index 9312f19..009a674 100644
|
||||
--- a/qmake/generators/unix/unixmake2.cpp
|
||||
+++ b/qmake/generators/unix/unixmake2.cpp
|
||||
@@ -176,16 +176,10 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
|
||||
t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)\n";
|
||||
t << "INCPATH =";
|
||||
{
|
||||
- QString isystem = var("QMAKE_CFLAGS_ISYSTEM");
|
||||
const ProStringList &incs = project->values("INCLUDEPATH");
|
||||
for(int i = 0; i < incs.size(); ++i) {
|
||||
const ProString &inc = incs.at(i);
|
||||
- if (inc.isEmpty())
|
||||
- continue;
|
||||
-
|
||||
- if (!isystem.isEmpty() && isSystemInclude(inc.toQString()))
|
||||
- t << ' ' << isystem << ' ';
|
||||
- else
|
||||
+ if (!inc.isEmpty())
|
||||
t << " -I";
|
||||
t << escapeFilePath(inc);
|
||||
}
|
||||
@@ -1328,10 +1322,8 @@ void UnixMakefileGenerator::init2()
|
||||
}
|
||||
|
||||
if (include_deps && project->isActiveConfig("gcc_MD_depends")) {
|
||||
- // use -MMD if we know about -isystem too
|
||||
- ProString MD_flag(project->values("QMAKE_CFLAGS_ISYSTEM").isEmpty() ? "-MD" : "-MMD");
|
||||
- project->values("QMAKE_CFLAGS") += MD_flag;
|
||||
- project->values("QMAKE_CXXFLAGS") += MD_flag;
|
||||
+ project->values("QMAKE_CFLAGS") += "-MD";
|
||||
+ project->values("QMAKE_CXXFLAGS") += "-MD";
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
|
||||
index 382b10c..c9eebd8 100644
|
||||
--- a/qmake/generators/win32/mingw_make.cpp
|
||||
+++ b/qmake/generators/win32/mingw_make.cpp
|
||||
@@ -249,17 +249,11 @@ void MingwMakefileGenerator::writeIncPart(QTextStream &t)
|
||||
{
|
||||
t << "INCPATH = ";
|
||||
|
||||
- QString isystem = var("QMAKE_CFLAGS_ISYSTEM");
|
||||
const ProStringList &incs = project->values("INCLUDEPATH");
|
||||
for (ProStringList::ConstIterator incit = incs.begin(); incit != incs.end(); ++incit) {
|
||||
QString inc = (*incit).toQString();
|
||||
inc.replace(QRegExp("\\\\$"), "");
|
||||
-
|
||||
- if (!isystem.isEmpty() && isSystemInclude(inc))
|
||||
- t << isystem << ' ';
|
||||
- else
|
||||
- t << "-I";
|
||||
- t << escapeFilePath(inc) << ' ';
|
||||
+ t << "-I" << escapeFilePath(inc) << ' ';
|
||||
}
|
||||
t << endl;
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -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="lan951x-led-ctl"
|
||||
PKG_VERSION="0291b91"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/dradermacher/lan951x-led-ctl"
|
||||
PKG_URL="https://github.com/dradermacher/lan951x-led-ctl/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain libusb"
|
||||
PKG_SECTION="rpi-tools"
|
||||
PKG_SHORTDESC="Control LEDs connected to LAN9512/LAN9514 ethernet USB controllers"
|
||||
PKG_LONGDESC="Control LEDs connected to LAN9512/LAN9514 ethernet USB controllers"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
$CC -std=c11 -I./include -Wall -Wstrict-prototypes -Wconversion \
|
||||
-Wmissing-prototypes -Wshadow -Wextra -Wunused \
|
||||
$CFLAGS -lusb-1.0 $LDFLAGS -o lan951x-led-ctl src/lan951x-led-ctl.c
|
||||
|
||||
$STRIP lan951x-led-ctl
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # nop
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="runc"
|
||||
PKG_VERSION="2f7393a"
|
||||
PKG_VERSION="9df8b30"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="APL"
|
||||
PKG_SITE="https://github.com/opencontainers/runc"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="screen"
|
||||
PKG_VERSION="4.3.1"
|
||||
PKG_VERSION="4.5.1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/screen/"
|
||||
@@ -29,12 +29,14 @@ PKG_LONGDESC="screen is a terminal multiplexor that runs several separate screen
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="ac_cv_header_utempter_h=no \
|
||||
--enable-colors256 \
|
||||
--disable-pam \
|
||||
--disable-use-locale \
|
||||
--disable-telnet \
|
||||
--disable-socket-dir"
|
||||
|
||||
pre_configure_target() {
|
||||
CFLAGS="$CFLAGS -DTERMINFO"
|
||||
export LDFLAGS=`echo $LDFLAGS | sed -e "s|-Wl,--as-needed||"`
|
||||
|
||||
# screen fails to build in subdirs
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-dvbapi"
|
||||
PKG_VERSION="7a42b22"
|
||||
PKG_VERSION="d7c7587"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/manio/vdr-plugin-dvbapi"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-satip"
|
||||
PKG_VERSION="6573c38"
|
||||
PKG_VERSION="ed99cfb"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.saunalahti.fi/~rahrenbe/vdr/satip/"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-vnsiserver"
|
||||
PKG_VERSION="d6847c3"
|
||||
PKG_VERSION="615a077"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/FernetMenta/vdr-plugin-vnsiserver"
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
Description: dynamically resize buffer for caids
|
||||
Forwarded: yes
|
||||
Author: Lars Hanisch <dvb@flensrocker.de>
|
||||
|
||||
diff --git a/ci.c b/ci.c
|
||||
index ffc7ff7..8bfae23 100644
|
||||
--- a/ci.c
|
||||
+++ b/ci.c
|
||||
@@ -25,6 +25,8 @@
|
||||
#include "skins.h"
|
||||
#include "tools.h"
|
||||
|
||||
+#define CAID_BUFSIZE 1024
|
||||
+
|
||||
// Set these to 'true' for debug output:
|
||||
static bool DumpTPDUDataTransfer = false;
|
||||
static bool DebugProtocol = false;
|
||||
@@ -763,9 +765,12 @@ private:
|
||||
int transponder;
|
||||
int programNumber;
|
||||
int caSystemIds[MAXCASYSTEMIDS + 1]; // list is zero terminated!
|
||||
+ uint8_t *caDescriptors;
|
||||
+ int caBufSize;
|
||||
void AddCaDescriptors(int Length, const uint8_t *Data);
|
||||
public:
|
||||
cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber, const int *CaSystemIds);
|
||||
+ ~cCiCaPmt(void);
|
||||
uint8_t CmdId(void) { return cmdId; }
|
||||
void SetListManagement(uint8_t ListManagement);
|
||||
uint8_t ListManagement(void) { return capmt[0]; }
|
||||
@@ -784,8 +789,15 @@ cCiCaPmt::cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber
|
||||
caSystemIds[i] = CaSystemIds[i];
|
||||
}
|
||||
caSystemIds[i] = 0;
|
||||
- uint8_t caDescriptors[512];
|
||||
- int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, sizeof(caDescriptors), caDescriptors, 0);
|
||||
+ caBufSize = CAID_BUFSIZE;
|
||||
+ caDescriptors = new uint8_t[caBufSize];
|
||||
+ int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, 0);
|
||||
+ if (caDescriptorsLength < 0) {
|
||||
+ delete [] caDescriptors;
|
||||
+ caBufSize = -caDescriptorsLength + 8;
|
||||
+ caDescriptors = new uint8_t[caBufSize];
|
||||
+ caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, 0);
|
||||
+ }
|
||||
length = 0;
|
||||
capmt[length++] = CPLM_ONLY;
|
||||
capmt[length++] = (ProgramNumber >> 8) & 0xFF;
|
||||
@@ -797,6 +809,11 @@ cCiCaPmt::cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber
|
||||
AddCaDescriptors(caDescriptorsLength, caDescriptors);
|
||||
}
|
||||
|
||||
+cCiCaPmt::~cCiCaPmt(void)
|
||||
+{
|
||||
+ delete [] caDescriptors;
|
||||
+}
|
||||
+
|
||||
void cCiCaPmt::SetListManagement(uint8_t ListManagement)
|
||||
{
|
||||
capmt[0] = ListManagement;
|
||||
@@ -805,21 +822,34 @@ void cCiCaPmt::SetListManagement(uint8_t ListManagement)
|
||||
void cCiCaPmt::AddPid(int Pid, uint8_t StreamType)
|
||||
{
|
||||
if (Pid) {
|
||||
- uint8_t caDescriptors[512];
|
||||
- int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, sizeof(caDescriptors), caDescriptors, Pid);
|
||||
- //XXX buffer overflow check???
|
||||
- capmt[length++] = StreamType;
|
||||
- capmt[length++] = (Pid >> 8) & 0xFF;
|
||||
- capmt[length++] = Pid & 0xFF;
|
||||
- esInfoLengthPos = length;
|
||||
- capmt[length++] = 0x00; // ES_info_length H (at ES level)
|
||||
- capmt[length++] = 0x00; // ES_info_length L
|
||||
- AddCaDescriptors(caDescriptorsLength, caDescriptors);
|
||||
+ int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, Pid);
|
||||
+ if (caDescriptorsLength < 0) {
|
||||
+ delete [] caDescriptors;
|
||||
+ caBufSize = -caDescriptorsLength + 8;
|
||||
+ caDescriptors = new uint8_t[caBufSize];
|
||||
+ caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, Pid);
|
||||
+ }
|
||||
+ if (length + 5 < int(sizeof(capmt))) {
|
||||
+ capmt[length++] = StreamType;
|
||||
+ capmt[length++] = (Pid >> 8) & 0xFF;
|
||||
+ capmt[length++] = Pid & 0xFF;
|
||||
+ esInfoLengthPos = length;
|
||||
+ capmt[length++] = 0x00; // ES_info_length H (at ES level)
|
||||
+ capmt[length++] = 0x00; // ES_info_length L
|
||||
+ AddCaDescriptors(caDescriptorsLength, caDescriptors);
|
||||
+ }
|
||||
+ else
|
||||
+ esyslog("ERROR: buffer overflow in CA descriptor");
|
||||
}
|
||||
}
|
||||
|
||||
void cCiCaPmt::AddCaDescriptors(int Length, const uint8_t *Data)
|
||||
{
|
||||
+ if (Length < 0) {
|
||||
+ dsyslog("DEBUG: calling AddCaDescriptors with Length %d", Length);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (esInfoLengthPos) {
|
||||
if (length + Length < int(sizeof(capmt))) {
|
||||
if (Length || cmdId == CPCI_QUERY) {
|
||||
diff --git a/pat.c b/pat.c
|
||||
index 98d306e..9dfbc62 100644
|
||||
--- a/pat.c
|
||||
+++ b/pat.c
|
||||
@@ -165,21 +165,25 @@ int cCaDescriptors::GetCaDescriptors(const int *CaSystemIds, int BufSize, uchar
|
||||
return 0;
|
||||
if (BufSize > 0 && Data) {
|
||||
int length = 0;
|
||||
+ bool tooSmall = false;
|
||||
for (cCaDescriptor *d = caDescriptors.First(); d; d = caDescriptors.Next(d)) {
|
||||
if (EsPid < 0 || d->EsPid() == EsPid) {
|
||||
const int *caids = CaSystemIds;
|
||||
do {
|
||||
if (*caids == 0xFFFF || d->CaSystem() == *caids) {
|
||||
- if (length + d->Length() <= BufSize) {
|
||||
+ if (length + d->Length() <= BufSize)
|
||||
memcpy(Data + length, d->Data(), d->Length());
|
||||
- length += d->Length();
|
||||
- }
|
||||
else
|
||||
- return -1;
|
||||
+ tooSmall = true;
|
||||
+ length += d->Length();
|
||||
}
|
||||
} while (*++caids);
|
||||
}
|
||||
}
|
||||
+ if (tooSmall) {
|
||||
+ dsyslog("DEBUG: buffer for ca-descriptors too small (%d, needed %d)", BufSize, length);
|
||||
+ return -length;
|
||||
+ }
|
||||
return length;
|
||||
}
|
||||
return -1;
|
||||
diff --git a/pat.h b/pat.h
|
||||
index 19e60dc..8bf0738 100644
|
||||
--- a/pat.h
|
||||
+++ b/pat.h
|
||||
@@ -45,7 +45,7 @@ int GetCaDescriptors(int Source, int Transponder, int ServiceId, const int *CaSy
|
||||
///< are copied that match one of the given CA system IDs (or all of them, if CaSystemIds
|
||||
///< is 0xFFFF).
|
||||
///< Returns the number of bytes copied into Data (0 if no CA descriptors are
|
||||
- ///< available), or -1 if BufSize was too small to hold all CA descriptors.
|
||||
+ ///< available), or -(NeededBufSize) if BufSize was too small to hold all CA descriptors.
|
||||
|
||||
int GetCaPids(int Source, int Transponder, int ServiceId, const int *CaSystemIds, int BufSize, int *Pids);
|
||||
///< Gets all CA pids for a given channel.
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
101
|
||||
- Change repo location for zips
|
||||
|
||||
100
|
||||
- Initial LibreELEC version
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="repository.linuxserver.docker"
|
||||
PKG_VERSION="8.1"
|
||||
PKG_REV="100"
|
||||
PKG_REV="101"
|
||||
PKG_ARCH="any"
|
||||
PKG_ADDON_PROJECTS="Generic RPi RPi2 imx6 WeTek_Hub WeTek_Play_2 Odroid_C2"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
name="LinuxServer.io's Docker Add-on Repository">
|
||||
<info compressed="true">https://raw.githubusercontent.com/linuxserver/libreelec-addon-repo/master/addons.xml</info>
|
||||
<checksum>https://raw.githubusercontent.com/linuxserver/libreelec-addon-repo/master/addons.xml.md5</checksum>
|
||||
<datadir zip="true">https://raw.githubusercontent.com/linuxserver/libreelec-addons/master/download</datadir>
|
||||
<datadir zip="true">https://raw.githubusercontent.com/linuxserver/libreelec-addon-repo/master/download</datadir>
|
||||
</extension>
|
||||
<extension point="xbmc.addon.metadata">
|
||||
<summary>Install add-ons from LinuxServer.io's docker repository</summary>
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
8.1.114
|
||||
- Enable journald buildtag
|
||||
|
||||
8.1.113
|
||||
- Update to docker 1.13.1
|
||||
- Update to golang 1.7.5
|
||||
|
||||
8.1.112
|
||||
- Update to docker 1.13.0
|
||||
- Use journald log driver
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="docker"
|
||||
PKG_VERSION="1.13.0"
|
||||
PKG_REV="112"
|
||||
PKG_VERSION="1.13.1"
|
||||
PKG_REV="114"
|
||||
PKG_ARCH="any"
|
||||
PKG_ADDON_PROJECTS="Generic RPi RPi2 imx6 WeTek_Hub WeTek_Play_2 Odroid_C2"
|
||||
PKG_LICENSE="ASL"
|
||||
@@ -39,7 +39,8 @@ configure_target() {
|
||||
autogen \
|
||||
exclude_graphdriver_devicemapper \
|
||||
exclude_graphdriver_aufs \
|
||||
exclude_graphdriver_btrfs"
|
||||
exclude_graphdriver_btrfs \
|
||||
journald"
|
||||
|
||||
case $TARGET_ARCH in
|
||||
x86_64)
|
||||
@@ -73,7 +74,9 @@ configure_target() {
|
||||
export PATH=$PATH:$GOROOT/bin
|
||||
|
||||
mkdir -p $ROOT/$PKG_BUILD/.gopath
|
||||
mv $ROOT/$PKG_BUILD/vendor $ROOT/$PKG_BUILD/.gopath/src
|
||||
if [ -d $ROOT/$PKG_BUILD/vendor ]; then
|
||||
mv $ROOT/$PKG_BUILD/vendor $ROOT/$PKG_BUILD/.gopath/src
|
||||
fi
|
||||
ln -fs $ROOT/$PKG_BUILD $ROOT/$PKG_BUILD/.gopath/src/github.com/docker/docker
|
||||
|
||||
# used for docker version
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
commit 472c4da2e78a01b4fcf194c2c85edde4fc32aa0b
|
||||
Author: Sebastiaan van Stijn <github@gone.nl>
|
||||
Date: Tue Jan 3 14:54:30 2017 +0100
|
||||
|
||||
do not create init-dir if not needed
|
||||
|
||||
commit 56f77d5ade945b3b8816a6c8acb328b7c6dce9a7
|
||||
added support for cpu-rt-period and cpu-rt-runtime,
|
||||
but always initialized the cgroup path, even if not
|
||||
used.
|
||||
|
||||
As a result, containers failed to start on a
|
||||
read-only filesystem.
|
||||
|
||||
This patch only creates the cgroup path if
|
||||
one of these options is set.
|
||||
|
||||
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
|
||||
|
||||
diff --git a/daemon/daemon_unix.go b/daemon/daemon_unix.go
|
||||
index 56e980d..5b3ffeb 100644
|
||||
--- a/daemon/daemon_unix.go
|
||||
+++ b/daemon/daemon_unix.go
|
||||
@@ -1190,6 +1190,12 @@ func (daemon *Daemon) initCgroupsPath(path string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
+ if daemon.configStore.CPURealtimePeriod == 0 && daemon.configStore.CPURealtimeRuntime == 0 {
|
||||
+ return nil
|
||||
+ }
|
||||
+
|
||||
+ // Recursively create cgroup to ensure that the system and all parent cgroups have values set
|
||||
+ // for the period and runtime as this limits what the children can be set to.
|
||||
daemon.initCgroupsPath(filepath.Dir(path))
|
||||
|
||||
_, root, err := cgroups.FindCgroupMountpointAndRoot("cpu")
|
||||
@@ -1198,16 +1204,19 @@ func (daemon *Daemon) initCgroupsPath(path string) error {
|
||||
}
|
||||
|
||||
path = filepath.Join(root, path)
|
||||
- sysinfo := sysinfo.New(false)
|
||||
- if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) {
|
||||
- return err
|
||||
- }
|
||||
+ sysinfo := sysinfo.New(true)
|
||||
if sysinfo.CPURealtimePeriod && daemon.configStore.CPURealtimePeriod != 0 {
|
||||
+ if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) {
|
||||
+ return err
|
||||
+ }
|
||||
if err := ioutil.WriteFile(filepath.Join(path, "cpu.rt_period_us"), []byte(strconv.FormatInt(daemon.configStore.CPURealtimePeriod, 10)), 0700); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if sysinfo.CPURealtimeRuntime && daemon.configStore.CPURealtimeRuntime != 0 {
|
||||
+ if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) {
|
||||
+ return err
|
||||
+ }
|
||||
if err := ioutil.WriteFile(filepath.Join(path, "cpu.rt_runtime_us"), []byte(strconv.FormatInt(daemon.configStore.CPURealtimeRuntime, 10)), 0700); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1,41 +1,56 @@
|
||||
110
|
||||
114:
|
||||
- Update to version 3.2.17.0
|
||||
- Rebuild libx264, ffmpegx and imagemagick
|
||||
- Use ffmpgex by default
|
||||
|
||||
113:
|
||||
- Update to version 3.2.8
|
||||
- Rebuild x264 and ffmpegx
|
||||
|
||||
112:
|
||||
- Refer to libMagickWand-7
|
||||
|
||||
111:
|
||||
- Updated to version 3.2.5
|
||||
- Rebuild libx264, ffmpegx and imagemagick
|
||||
|
||||
110:
|
||||
- Rebuild ffmpegx with libx264
|
||||
|
||||
109
|
||||
- Rebuilt ffmpgex and imagemagick
|
||||
109:
|
||||
- Rebuild ffmpgex and imagemagick
|
||||
|
||||
108
|
||||
- Updated to version 3.0.8500
|
||||
108:
|
||||
- Update to version 3.0.8500
|
||||
|
||||
107:
|
||||
- Update to version 3.0.8300
|
||||
- Rebuild ffmpegx
|
||||
|
||||
107
|
||||
- Updated to version 3.0.8300
|
||||
- Rebuilt ffmpegx
|
||||
106:
|
||||
- Updat to version 3.0.8100
|
||||
- Rebuild ffmpegx
|
||||
|
||||
106
|
||||
- Updated to version 3.0.8100
|
||||
- Rebuilt ffmpegx
|
||||
105:
|
||||
- Update to version 3.0.7100
|
||||
|
||||
105
|
||||
- Updated to version 3.0.7100
|
||||
104:
|
||||
- Update to version 3.0.6300
|
||||
- Rebuild ffmpegx
|
||||
|
||||
104
|
||||
- Updated to version 3.0.6300
|
||||
- Rebuilt ffmpegx
|
||||
|
||||
103
|
||||
- Updated to version 3.0.6070
|
||||
103:
|
||||
- Update to version 3.0.6070
|
||||
- Build for all architectures
|
||||
- Refer to libsqlite3.so.0 instead of libsqlite3.so
|
||||
|
||||
102
|
||||
- Updated to version 3.0.6030
|
||||
- Added dedicated ffmpeg and ffprobe
|
||||
- Removed unused shared libraries
|
||||
102:
|
||||
- Update to version 3.0.6030
|
||||
- Add dedicated ffmpeg and ffprobe
|
||||
- Remove unused shared libraries
|
||||
|
||||
101
|
||||
- Updated to version 3.0.5985
|
||||
101:
|
||||
- Update to version 3.0.5985
|
||||
- Removed mono build dependency
|
||||
|
||||
100
|
||||
100:
|
||||
- Initial release
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,9 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="emby"
|
||||
PKG_VERSION="3.0.8500"
|
||||
PKG_REV="110"
|
||||
PKG_ARCH="any"
|
||||
PKG_VERSION="3.2.17.0"
|
||||
PKG_REV="114"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://emby.media"
|
||||
PKG_URL="https://github.com/MediaBrowser/Emby/releases/download/$PKG_VERSION/Emby.Mono.zip"
|
||||
@@ -51,8 +50,11 @@ addon() {
|
||||
unzip -q $ROOT/$SOURCES/$PKG_NAME/$PKG_SOURCE_NAME \
|
||||
-d $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono
|
||||
|
||||
sed -i 's/libMagickWand-6./libMagickWand-7./g' \
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono/ImageMagickSharp.dll.config
|
||||
|
||||
sed -i 's/libsqlite3.so/libsqlite3.so.0/g' \
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono/System.Data.SQLite.dll.config
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono/SQLitePCLRaw.provider.sqlite3.dll.config
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -L $(get_build_dir ffmpegx)/.install_pkg/usr/local/bin/ffmpegx \
|
||||
@@ -60,7 +62,7 @@ addon() {
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/bin/
|
||||
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickCore-6.Q8.so.2 \
|
||||
$(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickWand-6.Q8.so \
|
||||
cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickCore-7.Q8.so.2 \
|
||||
$(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickWand-7.Q8.so \
|
||||
$ADDON_BUILD/$PKG_ADDON_ID/lib/
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ oe_setup_addon service.emby
|
||||
chmod +x $ADDON_DIR/bin/*
|
||||
mkdir -p $ADDON_HOME
|
||||
|
||||
if [ "$emby_ffmpeg" = "true" ]
|
||||
if [ "$emby_ffmpeg" != "false" ]
|
||||
then
|
||||
emby_flags="-ffmpeg $ADDON_DIR/bin/ffmpegx -ffprobe $ADDON_DIR/bin/ffprobex"
|
||||
fi
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="30000">
|
||||
<setting label="30001" id="emby_ffmpeg" type="bool" default="false" />
|
||||
<setting label="30001" id="emby_ffmpeg" type="bool" default="true" />
|
||||
</category>
|
||||
</settings>
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
104:
|
||||
- Update to 466edd3
|
||||
|
||||
103:
|
||||
- Update to 0.5.8
|
||||
|
||||
102:
|
||||
- Update to c05a7de
|
||||
- Reintroduce dm140 driver
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="lcdd"
|
||||
PKG_VERSION="c05a7de"
|
||||
PKG_REV="102"
|
||||
PKG_VERSION="466edd3"
|
||||
PKG_REV="104"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://lcdproc.org/"
|
||||
|
||||
@@ -59,13 +59,13 @@ index f82df85..0d98570 100644
|
||||
|
||||
futaba_CFLAGS = @LIBUSB_CFLAGS@ @LIBUSB_1_0_CFLAGS@ $(AM_CFLAGS)
|
||||
@@ -89,6 +89,7 @@ CFontzPacket_SOURCES = lcd.h lcd_lib.h CFontzPacket.c CFontzPacket.h CFontz-char
|
||||
curses_SOURCES = lcd.h curses_drv.h curses_drv.c report.h
|
||||
CwLnx_SOURCES = lcd.h lcd_lib.h CwLnx.c CwLnx.h report.h
|
||||
debug_SOURCES = lcd.h report.h debug.c debug.h
|
||||
curses_SOURCES = lcd.h curses_drv.h curses_drv.c
|
||||
CwLnx_SOURCES = lcd.h lcd_lib.h CwLnx.c CwLnx.h
|
||||
debug_SOURCES = lcd.h debug.c debug.h
|
||||
+dm140_SOURCES = lcd.h led.c libvfd.h led.h dm140.c dm140.h report.h
|
||||
ea65_SOURCES = lcd.h ea65.h ea65.c report.h
|
||||
EyeboxOne_SOURCES = lcd.h lcd_lib.h EyeboxOne.c EyeboxOne.h report.h
|
||||
futaba_SOURCES = lcd.h futaba.c futaba.h report.h
|
||||
ea65_SOURCES = lcd.h ea65.h ea65.c
|
||||
EyeboxOne_SOURCES = lcd.h lcd_lib.h EyeboxOne.c EyeboxOne.h
|
||||
futaba_SOURCES = lcd.h futaba.c futaba.h
|
||||
diff --git a/server/drivers/dm140.c b/server/drivers/dm140.c
|
||||
new file mode 100644
|
||||
index 0000000..56f9219
|
||||
@@ -92,7 +92,7 @@ index 0000000..56f9219
|
||||
+#include "lcd.h"
|
||||
+#include "dm140.h"
|
||||
+
|
||||
+#include "report.h"
|
||||
+#include "shared/report.h"
|
||||
+#include "lcd_lib.h"
|
||||
+#include "libvfd.h"
|
||||
+#include "led.h"
|
||||
@@ -392,7 +392,7 @@ index 0000000..0bb565c
|
||||
+#include <string.h>
|
||||
+#include "lcd.h"
|
||||
+#include "libvfd.h"
|
||||
+#include "report.h"
|
||||
+#include "shared/report.h"
|
||||
+#include "dm140.h"
|
||||
+
|
||||
+
|
||||
|
||||
@@ -1,16 +1,3 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7c053d2..dcb0c4d 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -314,7 +314,7 @@ AC_MSG_RESULT($enable_libftdi)
|
||||
|
||||
if test "$enable_libftdi" = "yes"; then
|
||||
ifdef([PKG_CHECK_MODULES],
|
||||
- [PKG_CHECK_MODULES(LIBFTDI, libftdi >= 0.8,
|
||||
+ [PKG_CHECK_MODULES(LIBFTDI, libftdi1 >= 0.8,
|
||||
[AC_DEFINE(HAVE_LIBFTDI, [1], [Define to 1 if you have libftdi])],
|
||||
[ enable_libftdi=no ])],
|
||||
[AC_MSG_WARN([pkg-config not (fully) installed; drivers requiring libftdi may not be built])])
|
||||
diff --git a/server/drivers/hd44780-low.h b/server/drivers/hd44780-low.h
|
||||
index 47acf45..6faa830 100644
|
||||
--- a/server/drivers/hd44780-low.h
|
||||
@@ -42,9 +29,9 @@ index 5d3e97a..6c26a19 100644
|
||||
--- a/server/drivers/lis.c
|
||||
+++ b/server/drivers/lis.c
|
||||
@@ -42,7 +42,7 @@
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include <usb.h>
|
||||
-#include <ftdi.h>
|
||||
+#include <libftdi1/ftdi.h>
|
||||
|
||||
@@ -55,9 +42,9 @@ index cbdde40..a84eb49 100644
|
||||
--- a/server/drivers/ula200.c
|
||||
+++ b/server/drivers/ula200.c
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <usb.h>
|
||||
-#include <ftdi.h>
|
||||
+#include <libftdi1/ftdi.h>
|
||||
|
||||
|
||||
2
packages/addons/service/librespot/changelog.txt
Normal file
2
packages/addons/service/librespot/changelog.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
100
|
||||
- Initial addon
|
||||
BIN
packages/addons/service/librespot/icon/icon.png
Normal file
BIN
packages/addons/service/librespot/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
64
packages/addons/service/librespot/package.mk
Normal file
64
packages/addons/service/librespot/package.mk
Normal file
@@ -0,0 +1,64 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present Team LibreELEC
|
||||
# Copyright (C) 2017 Shane Meagher (shanemeagher)
|
||||
#
|
||||
# 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="librespot"
|
||||
PKG_VERSION="2259188"
|
||||
PKG_REV="100"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="prop."
|
||||
PKG_SITE="https://github.com/plietar/$PKG_NAME/"
|
||||
PKG_URL="https://github.com/plietar/$PKG_NAME/archive/$PKG_VERSION.zip"
|
||||
PKG_DEPENDS_TARGET="toolchain avahi pyalsaaudio rust"
|
||||
PKG_SECTION="service"
|
||||
PKG_LONGDESC="Librespot ($PKG_VERSION) plays Spotify through LibreELEC using the opensource librespot library using a Spotify app as a remote."
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Librespot"
|
||||
PKG_ADDON_TYPE="xbmc.service"
|
||||
PKG_MAINTAINER="Anton Voyl (awiouy)"
|
||||
|
||||
configure_target() {
|
||||
. "$ROOT/$TOOLCHAIN/.cargo/env"
|
||||
export PKG_CONFIG_ALLOW_CROSS=0
|
||||
strip_lto
|
||||
}
|
||||
|
||||
make_target() {
|
||||
cd src
|
||||
$CARGO_BUILD --no-default-features --features "alsa-backend with-avahi"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID/bin"
|
||||
cp "$PKG_BUILD/.$TARGET_NAME"/*/release/librespot \
|
||||
"$ADDON_BUILD/$PKG_ADDON_ID/bin"
|
||||
|
||||
mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID/lib"
|
||||
cp "$(get_build_dir avahi)/avahi-compat-libdns_sd/.libs/libdns_sd.so.1" \
|
||||
"$ADDON_BUILD/$PKG_ADDON_ID/lib"
|
||||
|
||||
mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID/wizard"
|
||||
cp "$(get_build_dir pyalsaaudio)/.install_pkg/usr/lib/python2.7/site-packages/alsaaudio.so" \
|
||||
"$ADDON_BUILD/$PKG_ADDON_ID/wizard/"
|
||||
}
|
||||
@@ -0,0 +1,222 @@
|
||||
From a825f84d9d00b196232fcccc5b5e441654c4e5a0 Mon Sep 17 00:00:00 2001
|
||||
From: shanemeagher <shanemeagher@outlook.com>
|
||||
Date: Fri, 9 Jun 2017 22:43:54 +0800
|
||||
Subject: [PATCH] Build librespot with avahi support for Discovery
|
||||
|
||||
rust-mdns is still the default and can be specified explicitly with --with-rust-mdns switch.
|
||||
Added --with-avahi switch to build librespot to use avahi for discovery using dns-sd package.
|
||||
---
|
||||
Cargo.lock | 10 ++++++++++
|
||||
Cargo.toml | 7 +++++--
|
||||
contrib/Dockerfile | 3 +++
|
||||
contrib/docker-build-avahi.sh | 24 ++++++++++++++++++++++++
|
||||
src/authentication/discovery.rs | 27 ++++++++++++++++++++++++++-
|
||||
src/lib.rs | 6 +++++-
|
||||
6 files changed, 73 insertions(+), 4 deletions(-)
|
||||
create mode 100755 contrib/docker-build-avahi.sh
|
||||
|
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index 30fafca..eff0925 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -6,6 +6,7 @@ dependencies = [
|
||||
"base64 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
+ "dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"error-chain 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -144,6 +145,15 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
+name = "dns-sd"
|
||||
+version = "0.1.3"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+dependencies = [
|
||||
+ "libc 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
+ "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
name = "dtoa"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 5d64719..c543e92 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -52,7 +52,8 @@ alsa = { git = "https://github.com/plietar/rust-alsa", optional = tru
|
||||
portaudio-rs = { version = "0.3.0", optional = true }
|
||||
libpulse-sys = { git = "https://github.com/astro/libpulse-sys", optional = true }
|
||||
|
||||
-mdns = { git = "https://github.com/plietar/rust-mdns" }
|
||||
+mdns = { git = "https://github.com/plietar/rust-mdns", optional = true }
|
||||
+dns-sd = { version = "~0.1.3", optional = true }
|
||||
|
||||
error-chain = { version = "0.9.0", default_features = false }
|
||||
futures = "0.1.8"
|
||||
@@ -71,8 +72,10 @@ portaudio-backend = ["portaudio-rs"]
|
||||
pulseaudio-backend = ["libpulse-sys"]
|
||||
|
||||
with-tremor = ["tremor"]
|
||||
+with-rust-mdns = ["mdns"]
|
||||
+with-avahi = ["dns-sd"]
|
||||
|
||||
-default = ["portaudio-backend"]
|
||||
+default = ["portaudio-backend","with-rust-mdns"]
|
||||
|
||||
[package.metadata.deb]
|
||||
maintainer = "nobody"
|
||||
diff --git a/contrib/Dockerfile b/contrib/Dockerfile
|
||||
index 68a39b7..f6aec14 100644
|
||||
--- a/contrib/Dockerfile
|
||||
+++ b/contrib/Dockerfile
|
||||
@@ -4,6 +4,8 @@
|
||||
#
|
||||
# The resulting image can be used to build librespot for linux x86_64, armhf and armel.
|
||||
# $ docker run -v /tmp/librespot-build:/build librespot-cross
|
||||
+# To build librespot with avahi support
|
||||
+# $ docker run -v /tmp/librespot-build:/build librespot-cross /src/contrib/docker-build-avahi.sh
|
||||
#
|
||||
# The compiled binaries will be located in /tmp/librespot-build
|
||||
#
|
||||
@@ -23,6 +25,7 @@ RUN apt-get update
|
||||
|
||||
RUN apt-get install -y curl git build-essential crossbuild-essential-arm64 crossbuild-essential-armel crossbuild-essential-armhf crossbuild-essential-mipsel
|
||||
RUN apt-get install -y libasound2-dev libasound2-dev:arm64 libasound2-dev:armel libasound2-dev:armhf libasound2-dev:mipsel
|
||||
+RUN apt-get install -y libavahi-compat-libdnssd-dev libavahi-compat-libdnssd-dev:arm64 libavahi-compat-libdnssd-dev:armel libavahi-compat-libdnssd-dev:armhf libavahi-compat-libdnssd-dev:mipsel
|
||||
|
||||
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
ENV PATH="/root/.cargo/bin/:${PATH}"
|
||||
diff --git a/contrib/docker-build-avahi.sh b/contrib/docker-build-avahi.sh
|
||||
new file mode 100755
|
||||
index 0000000..c25b248
|
||||
--- /dev/null
|
||||
+++ b/contrib/docker-build-avahi.sh
|
||||
@@ -0,0 +1,24 @@
|
||||
+#!/usr/bin/env bash
|
||||
+set -eux
|
||||
+
|
||||
+cargo build --release --no-default-features --features "alsa-backend with-avahi"
|
||||
+cp /usr/lib/x86_64-linux-gnu/libdns_sd.so.1 /build/release
|
||||
+
|
||||
+export PKG_CONFIG_ALLOW_CROSS=0
|
||||
+
|
||||
+export PKG_CONFIG_PATH=/usr/lib/aarch64-unknown-linux-gnu/pkgconfig
|
||||
+cargo build --release --target aarch64-unknown-linux-gnu --no-default-features --features "alsa-backend with-avahi"
|
||||
+cp /usr/lib/aarch64-linux-gnu/libdns_sd.so.1 /build/aarch64-unknown-linux-gnu/release
|
||||
+
|
||||
+export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabi/pkgconfig
|
||||
+cargo build --release --target arm-unknown-linux-gnueabi --no-default-features --features "alsa-backend with-avahi"
|
||||
+cp /usr/lib/arm-linux-gnueabi/libdns_sd.so.1 /build/arm-unknown-linux-gnueabi/release
|
||||
+
|
||||
+export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig
|
||||
+cargo build --release --target arm-unknown-linux-gnueabihf --no-default-features --features "alsa-backend with-avahi"
|
||||
+cp /usr/lib/arm-linux-gnueabihf/libdns_sd.so.1 /build/arm-unknown-linux-gnueabihf/release
|
||||
+
|
||||
+export PKG_CONFIG_PATH=/usr/lib/mipsel-linux-gnu/pkgconfig
|
||||
+cargo build --release --target mipsel-unknown-linux-gnu --no-default-features --features "alsa-backend with-avahi"
|
||||
+cp /usr/libmipsel-linux-gnu/libdns_sd.so.1 /build/mipsel-unknown-linux-gnu/release
|
||||
+
|
||||
diff --git a/src/authentication/discovery.rs b/src/authentication/discovery.rs
|
||||
index 8c5b005..d385294 100644
|
||||
--- a/src/authentication/discovery.rs
|
||||
+++ b/src/authentication/discovery.rs
|
||||
@@ -7,7 +7,6 @@ use futures::sync::mpsc;
|
||||
use futures::{Future, Stream, BoxFuture, Poll, Async};
|
||||
use hyper::server::{Service, NewService, Request, Response, Http};
|
||||
use hyper::{self, Get, Post, StatusCode};
|
||||
-use mdns;
|
||||
use num_bigint::BigUint;
|
||||
use rand;
|
||||
use std::collections::BTreeMap;
|
||||
@@ -20,6 +19,12 @@ use url;
|
||||
use authentication::Credentials;
|
||||
use util;
|
||||
|
||||
+#[cfg(feature = "with-rust-mdns")]
|
||||
+use mdns;
|
||||
+
|
||||
+#[cfg(feature = "with-avahi")]
|
||||
+use dns_sd::DNSService;
|
||||
+
|
||||
#[derive(Clone)]
|
||||
struct Discovery(Arc<DiscoveryInner>);
|
||||
struct DiscoveryInner {
|
||||
@@ -202,7 +207,10 @@ impl NewService for Discovery {
|
||||
|
||||
pub struct DiscoveryStream {
|
||||
credentials: mpsc::UnboundedReceiver<Credentials>,
|
||||
+ #[cfg(feature = "with-rust-mdns")]
|
||||
_svc: mdns::Service,
|
||||
+ #[cfg(feature = "with-avahi")]
|
||||
+ _svc: DNSService,
|
||||
task: Box<Future<Item=(), Error=io::Error>>,
|
||||
}
|
||||
|
||||
@@ -212,8 +220,13 @@ pub fn discovery(handle: &Handle, device_name: String, device_id: String)
|
||||
let (discovery, creds_rx) = Discovery::new(device_name.clone(), device_id);
|
||||
|
||||
let listener = TcpListener::bind(&"0.0.0.0:0".parse().unwrap(), handle)?;
|
||||
+
|
||||
+ #[cfg(feature = "with-rust-mdns")]
|
||||
let addr = listener.local_addr()?;
|
||||
|
||||
+ #[cfg(feature = "with-avahi")]
|
||||
+ let port = listener.local_addr().unwrap().port();
|
||||
+
|
||||
let http = Http::new();
|
||||
let handle_ = handle.clone();
|
||||
let task = Box::new(listener.incoming().for_each(move |(socket, addr)| {
|
||||
@@ -221,13 +234,25 @@ pub fn discovery(handle: &Handle, device_name: String, device_id: String)
|
||||
Ok(())
|
||||
}));
|
||||
|
||||
+ #[cfg(feature = "with-rust-mdns")]
|
||||
let responder = mdns::Responder::spawn(&handle)?;
|
||||
+
|
||||
+ #[cfg(feature = "with-rust-mdns")]
|
||||
let svc = responder.register(
|
||||
"_spotify-connect._tcp".to_owned(),
|
||||
device_name,
|
||||
addr.port(),
|
||||
&["VERSION=1.0", "CPath=/"]);
|
||||
|
||||
+ #[cfg(feature = "with-avahi")]
|
||||
+ let svc = DNSService::register(Some(&*device_name),
|
||||
+ "_spotify-connect._tcp",
|
||||
+ None,
|
||||
+ None,
|
||||
+ port,
|
||||
+ &["VERSION=1.0", "CPath=/"])
|
||||
+ .unwrap();
|
||||
+
|
||||
Ok(DiscoveryStream {
|
||||
credentials: creds_rx,
|
||||
_svc: svc,
|
||||
diff --git a/src/lib.rs b/src/lib.rs
|
||||
index 2a50249..b1b77ef 100644
|
||||
--- a/src/lib.rs
|
||||
+++ b/src/lib.rs
|
||||
@@ -19,7 +19,6 @@ extern crate crypto;
|
||||
extern crate getopts;
|
||||
extern crate hyper;
|
||||
extern crate linear_map;
|
||||
-extern crate mdns;
|
||||
extern crate num_bigint;
|
||||
extern crate num_integer;
|
||||
extern crate num_traits;
|
||||
@@ -50,6 +49,11 @@ extern crate portaudio_rs;
|
||||
#[cfg(feature = "libpulse-sys")]
|
||||
extern crate libpulse_sys;
|
||||
|
||||
+#[cfg(feature = "with-rust-mdns")]
|
||||
+extern crate mdns;
|
||||
+
|
||||
+#[cfg(feature = "with-avahi")]
|
||||
+extern crate dns_sd;
|
||||
|
||||
#[macro_use] mod component;
|
||||
pub mod album_cover;
|
||||
@@ -0,0 +1,48 @@
|
||||
diff -Naur librespot/src/audio_file.rs librespot.nocache/src/audio_file.rs
|
||||
--- librespot/src/audio_file.rs 2017-06-14 00:14:21.000000000 +0200
|
||||
+++ librespot.nocache/src/audio_file.rs 2017-06-20 00:35:14.060020000 +0200
|
||||
@@ -3,7 +3,7 @@
|
||||
use futures::Stream;
|
||||
use futures::sync::{oneshot, mpsc};
|
||||
use futures::{Poll, Async, Future};
|
||||
-use futures::future::{self, FutureResult};
|
||||
+use futures::future::FutureResult;
|
||||
use std::cmp::min;
|
||||
use std::fs;
|
||||
use std::io::{self, Read, Write, Seek, SeekFrom};
|
||||
@@ -129,15 +129,9 @@
|
||||
|
||||
impl AudioFileManager {
|
||||
pub fn open(&self, file_id: FileId) -> AudioFileOpen {
|
||||
- let cache = self.session().cache().cloned();
|
||||
-
|
||||
- if let Some(file) = cache.as_ref().and_then(|cache| cache.file(file_id)) {
|
||||
- debug!("File {} already in cache", file_id);
|
||||
- return AudioFileOpen::Cached(future::ok(file));
|
||||
- }
|
||||
-
|
||||
debug!("Downloading file {}", file_id);
|
||||
|
||||
+ #[allow(unused_variables)]
|
||||
let (complete_tx, complete_rx) = oneshot::channel();
|
||||
let (headers, data) = request_chunk(&self.session(), file_id, 0).split();
|
||||
|
||||
@@ -151,18 +145,6 @@
|
||||
complete_tx: Some(complete_tx),
|
||||
};
|
||||
|
||||
- let session = self.session();
|
||||
- self.session().spawn(move |_| {
|
||||
- complete_rx.map(move |mut file| {
|
||||
- if let Some(cache) = session.cache() {
|
||||
- cache.save_file(file_id, &mut file);
|
||||
- debug!("File {} complete, saving to cache", file_id);
|
||||
- } else {
|
||||
- debug!("File {} complete", file_id);
|
||||
- }
|
||||
- }).or_else(|oneshot::Canceled| Ok(()))
|
||||
- });
|
||||
-
|
||||
AudioFileOpen::Streaming(open)
|
||||
}
|
||||
}
|
||||
99
packages/addons/service/librespot/source/bin/librespot.start
Executable file
99
packages/addons/service/librespot/source/bin/librespot.start
Executable file
@@ -0,0 +1,99 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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/os-release
|
||||
. /etc/profile
|
||||
oe_setup_addon service.librespot
|
||||
|
||||
activate_card() {
|
||||
if [ -e "/proc/asound/$1" ]; then
|
||||
return
|
||||
fi
|
||||
case "$LIBREELEC_ARCH" in
|
||||
RPi*.arm)
|
||||
if [ "$1" = "ALSA" ]; then
|
||||
dtparam audio=on
|
||||
sleep 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Unable to activate card $1 on $LIBREELEC_ARCH"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
if [ ! "$(cat /proc/asound/pcm 2> /dev/null)" ]; then
|
||||
case "$LIBREELEC_ARCH" in
|
||||
RPi*.arm)
|
||||
activate_card "ALSA"
|
||||
;;
|
||||
*)
|
||||
echo "Unable to activate an audio interface on $LIBREELEC_ARCH"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
case "$ls_o" in
|
||||
*:CARD=*)
|
||||
card="${ls_o##*:CARD=}"
|
||||
card="${card%%,*}"
|
||||
activate_card "$card"
|
||||
index="$(readlink /proc/asound/$card)"
|
||||
index="${index##*card}"
|
||||
;;
|
||||
hw:*,*)
|
||||
echo "The hw:d,s specification is unreliable, use device:CARD=card instead"
|
||||
index="${ls_o##hw:}"
|
||||
index="${index%%,*}"
|
||||
card="card$index"
|
||||
activate_card "$card"
|
||||
;;
|
||||
*)
|
||||
if [ -n "$ls_o" ]; then
|
||||
echo "Unknown playback device specification $ls_o"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "$ls_b" -a "$ls_b" != "-" ]; then
|
||||
bitrate="--bitrate $ls_b"
|
||||
fi
|
||||
|
||||
if [ -n "$ls_o" ]; then
|
||||
device="--device $ls_o"
|
||||
fi
|
||||
|
||||
if [ -n "$ls_p" -a -n "$ls_u" ]; then
|
||||
discovery="--disable-discovery --password $ls_p --username $ls_u"
|
||||
fi
|
||||
|
||||
case "$LIBREELEC_ARCH" in
|
||||
RPi*.arm)
|
||||
[ "$(readlink /proc/asound/ALSA)" == "card$index" ] && [ "$pcm_3" ] &&
|
||||
amixer -c "$index" cset name="PCM Playback Route" "$pcm_3"
|
||||
;;
|
||||
esac
|
||||
|
||||
librespot $bitrate \
|
||||
--cache "$ADDON_HOME/cache" \
|
||||
$device \
|
||||
$discovery \
|
||||
--name "Librespot@$HOSTNAME"
|
||||
35
packages/addons/service/librespot/source/default.py
Normal file
35
packages/addons/service/librespot/source/default.py
Normal file
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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,72 @@
|
||||
# Kodi Media Center language file
|
||||
# Addon Name: librespot
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30100"
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30101"
|
||||
msgid "ALSA"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30102"
|
||||
msgid "Configuration wizard"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30103"
|
||||
msgid "Playback device"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30104"
|
||||
msgid "Playback route"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30105"
|
||||
msgid "auto detect"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30106"
|
||||
msgid "headphone jack"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30107"
|
||||
msgid "HDMI"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30108"
|
||||
msgid "Spotify"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30109"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30110"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30111"
|
||||
msgid "Discovery mode (set username and password to disable)"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30112"
|
||||
msgid "Bit rate"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30113"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30114"
|
||||
msgid "90"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30115"
|
||||
msgid "160"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30116"
|
||||
msgid "320"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="30100" >
|
||||
<setting label="30101" type="lsep" />
|
||||
<setting label="30102" type="action" action="RunScript(/storage/.kodi/addons/service.librespot/wizard/wizard.py)" />
|
||||
<setting label="30103" type="text" id="ls_o" default="" />
|
||||
<setting label="30104" type="enum" id="pcm_3" lvalues="30105|30106|30107" visible="eq(-1,default:CARD=ALSA)|eq(-1,sysdefault:CARD=ALSA)" />
|
||||
<setting label="30108" type="lsep" />
|
||||
<setting label="30109" type="text" id="ls_u" />
|
||||
<setting label="30110" type="text" id="ls_p" option="hidden" visible="!eq(-1,)" />
|
||||
<setting label="30111" type="bool" id="ls_d" default="true" enable="false" visible="eq(-1,)|eq(-2,)" />
|
||||
<setting label="30112" type="labelenum" id="ls_b" lvalues="30113|30114|30115|30116" />
|
||||
</category>
|
||||
</settings>
|
||||
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=librespot
|
||||
After=network-online.target
|
||||
Requires=network-online.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh /storage/.kodi/addons/service.librespot/bin/librespot.start
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=kodi.target
|
||||
39
packages/addons/service/librespot/source/wizard/wizard.py
Normal file
39
packages/addons/service/librespot/source/wizard/wizard.py
Normal file
@@ -0,0 +1,39 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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 alsaaudio as alsa
|
||||
import xbmcaddon
|
||||
import xbmcgui
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
addon = xbmcaddon.Addon('service.librespot')
|
||||
dialog = xbmcgui.Dialog()
|
||||
strings = addon.getLocalizedString
|
||||
|
||||
while True:
|
||||
pcms = alsa.pcms()[1:]
|
||||
if len(pcms) == 0:
|
||||
dialog.ok(strings(30211), strings(30212))
|
||||
break
|
||||
pcmx = dialog.select(strings(30113), pcms)
|
||||
if pcmx == -1:
|
||||
break
|
||||
pcm = pcms[pcmx]
|
||||
addon.setSetting('ls_o', pcm)
|
||||
break
|
||||
5
packages/addons/service/locale/changelog.txt
Normal file
5
packages/addons/service/locale/changelog.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
101:
|
||||
- Fix dialog message
|
||||
|
||||
100:
|
||||
- Initial add-on
|
||||
BIN
packages/addons/service/locale/icon/icon.png
Normal file
BIN
packages/addons/service/locale/icon/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
61
packages/addons/service/locale/package.mk
Normal file
61
packages/addons/service/locale/package.mk
Normal file
@@ -0,0 +1,61 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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="locale"
|
||||
PKG_REV="101"
|
||||
PKG_ARCH="any"
|
||||
PKG_DEPENDS_TARGET="toolchain glibc"
|
||||
PKG_SECTION="service"
|
||||
PKG_SHORTDESC="Locale: allows users to set a custom locale to override the POSIX default"
|
||||
PKG_LONGDESC="Locale ($PKG_REV) allows users to set a custom locale in the OS to override the POSIX default"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
PKG_ADDON_NAME="Locale"
|
||||
PKG_ADDON_TYPE="xbmc.service"
|
||||
|
||||
make_target() {
|
||||
: # nothing to do
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
: # nothing to do
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID/i18n"
|
||||
cp -PR "$(get_build_dir glibc)/localedata/charmaps" \
|
||||
"$(get_build_dir glibc)/localedata/locales" \
|
||||
"$ADDON_BUILD/$PKG_ADDON_ID/i18n"
|
||||
|
||||
mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID/locpath"
|
||||
|
||||
cp -PR $PKG_DIR/resources $ADDON_BUILD/$PKG_ADDON_ID
|
||||
|
||||
locales=""
|
||||
for p in "$ADDON_BUILD/$PKG_ADDON_ID/i18n/locales"/*; do
|
||||
l="$(basename $p)"
|
||||
if [ "$l" = "POSIX" ]; then
|
||||
continue
|
||||
fi
|
||||
locales="$locales|$l"
|
||||
done
|
||||
locales="${locales:1}"
|
||||
|
||||
sed -e "s/@LOCALES@/$locales/" \
|
||||
-i $ADDON_BUILD/$PKG_ADDON_ID/resources/settings.xml
|
||||
}
|
||||
7
packages/addons/service/locale/resources/settings.xml
Normal file
7
packages/addons/service/locale/resources/settings.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="30000">
|
||||
<setting label="30001" id="charmap" type="select" default="UTF-8" values="UTF-8" enable="false" />
|
||||
<setting label="30002" id="locale" type="select" default="en_GB" values="@LOCALES@" />
|
||||
</category>
|
||||
</settings>
|
||||
74
packages/addons/service/locale/source/default.py
Normal file
74
packages/addons/service/locale/source/default.py
Normal file
@@ -0,0 +1,74 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2017-present 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 os
|
||||
import subprocess
|
||||
import xbmc
|
||||
import xbmcaddon
|
||||
import xbmcgui
|
||||
|
||||
|
||||
class Monitor(xbmc.Monitor):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
xbmc.Monitor.__init__(self)
|
||||
self.setLocale()
|
||||
|
||||
def onSettingsChanged(self):
|
||||
self.setLocale()
|
||||
|
||||
def setLocale(self):
|
||||
addon = xbmcaddon.Addon()
|
||||
|
||||
charmap = addon.getSetting('charmap')
|
||||
locale = addon.getSetting('locale')
|
||||
lang = locale + '.' + charmap
|
||||
|
||||
path = addon.getAddonInfo('path')
|
||||
i18npath = os.path.join(path, 'i18n')
|
||||
locpath = os.path.join(path, 'locpath')
|
||||
localepath = os.path.join(locpath, lang)
|
||||
profiled = os.path.join(path, 'profile.d')
|
||||
profile = os.path.join(profiled, '10-locale.profile')
|
||||
|
||||
strings = addon.getLocalizedString
|
||||
|
||||
if os.path.isdir(locpath) == False:
|
||||
os.makedirs(locpath)
|
||||
|
||||
if os.path.isdir(localepath) == False:
|
||||
os.environ['I18NPATH'] = i18npath
|
||||
subprocess.call(['localedef', '-f', charmap, '-i', locale, localepath])
|
||||
|
||||
if os.path.isdir(profiled) == False:
|
||||
os.makedirs(profiled)
|
||||
|
||||
file = open(profile, 'w')
|
||||
file.write('export LANG="' + lang + '"\n')
|
||||
file.write('export LOCPATH="' + locpath + '"\n')
|
||||
file.close()
|
||||
|
||||
current = os.environ.get('LANG', '')
|
||||
if lang != current:
|
||||
if xbmcgui.Dialog().yesno('Locale', strings(30003).format(lang)
|
||||
) == True:
|
||||
xbmc.restart()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
Monitor().waitForAbort()
|
||||
@@ -0,0 +1,19 @@
|
||||
# Kodi Media Center language file
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30000"
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30001"
|
||||
msgid "Charmap"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30002"
|
||||
msgid "Locale"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30003"
|
||||
msgid "Locale changed to {}. Please reboot to apply globally."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,4 @@
|
||||
<settings>
|
||||
<setting id="charmap" value="UTF-8" />
|
||||
<setting id="locale" value="en_GB" />
|
||||
</settings>
|
||||
@@ -1,3 +1,6 @@
|
||||
101
|
||||
- make addon configurable
|
||||
|
||||
100
|
||||
- Initial addon
|
||||
- net-snmp 5.7.3
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
|
||||
PKG_NAME="net-snmp"
|
||||
PKG_VERSION="5.7.3"
|
||||
PKG_REV="100"
|
||||
PKG_REV="101"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://www.net-snmp.org"
|
||||
PKG_URL="http://sourceforge.net/projects/net-snmp/files/$PKG_NAME/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_DEPENDS_TARGET="toolchain libnl"
|
||||
PKG_SECTION="service"
|
||||
PKG_SHORTDESC="Simple Network Management Protocol utilities."
|
||||
PKG_LONGDESC="Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment."
|
||||
@@ -39,14 +39,22 @@ PKG_CONFIGURE_OPTS_TARGET="--with-defaults \
|
||||
--disable-debugging \
|
||||
--disable-deprecated \
|
||||
--disable-snmptrapd-subagent \
|
||||
--disable-perl-cc-checks \
|
||||
--with-perl-modules=no \
|
||||
--enable-mini-agent \
|
||||
--disable-scripts \
|
||||
--enable-static=no \
|
||||
--enable-shared=yes \
|
||||
--with-logfile=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID}/ \
|
||||
--with-persistent-directory=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID}/ \
|
||||
--disable-embedded-perl"
|
||||
--enable-mini-agent \
|
||||
--with-nl \
|
||||
--with-logfile=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID} \
|
||||
--with-persistent-directory=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID} \
|
||||
--sysconfdir=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID} \
|
||||
--prefix=/storage/.kodi/addons/${PKG_ADDON_ID} \
|
||||
--exec-prefix=/storage/.kodi/addons/${PKG_ADDON_ID} \
|
||||
--datarootdir=/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID}/share \
|
||||
--bindir=/storage/.kodi/addons/${PKG_ADDON_ID}/bin \
|
||||
--sbindir=/storage/.kodi/addons/${PKG_ADDON_ID}/bin \
|
||||
--libdir=/storage/.kodi/addons/${PKG_ADDON_ID}/lib \
|
||||
--disable-embedded-perl \
|
||||
--with-sysroot=$SYSROOT_PREFIX"
|
||||
|
||||
make_target() {
|
||||
make
|
||||
@@ -57,12 +65,11 @@ makeinstall_target() {
|
||||
}
|
||||
|
||||
addon() {
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID
|
||||
mv $PKG_BUILD/.$TARGET_NAME/usr/sbin/snmpd $PKG_BUILD/.$TARGET_NAME/usr/bin/snmpd
|
||||
rm -rf $PKG_BUILD/.$TARGET_NAME/usr/sbin/
|
||||
rm -rf $PKG_BUILD/.$TARGET_NAME/usr/include/
|
||||
cp -r $PKG_BUILD/.$TARGET_NAME/usr/* $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
$STRIP $ADDON_BUILD/$PKG_ADDON_ID/lib/*.so
|
||||
$STRIP $ADDON_BUILD/$PKG_ADDON_ID/bin/snmpd
|
||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
|
||||
cp -r $PKG_BUILD/.$TARGET_NAME/storage/.kodi/addons/${PKG_ADDON_ID}/bin $PKG_BUILD/.$TARGET_NAME/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID}/share $ADDON_BUILD/$PKG_ADDON_ID/
|
||||
#Do not copy symlinks
|
||||
find $PKG_BUILD/.$TARGET_NAME/storage/.kodi/addons/${PKG_ADDON_ID}/lib/ -type f -name '*.so.*' -exec cp '{}' $ADDON_BUILD/$PKG_ADDON_ID/lib/ \;
|
||||
#remove all but major version from so file
|
||||
for f in $ADDON_BUILD/$PKG_ADDON_ID/lib/*.so.* ; do mv "$f" "${f%.*.*}" ; done
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/snmplib/read_config.c 2014-12-08 14:23:22.000000000 -0600
|
||||
+++ b/snmplib/read_config.c 2017-03-30 12:21:16.351042803 -0500
|
||||
@@ -1618,7 +1618,7 @@
|
||||
* save a warning header to the top of the new file
|
||||
*/
|
||||
snprintf(fileold, sizeof(fileold),
|
||||
- "%s%s# Please save normal configuration tokens for %s in SNMPCONFPATH/%s.conf.\n# Only \"createUser\" tokens should be placed here by %s administrators.\n%s",
|
||||
+ "%s%s# Please save normal configuration tokens for %s in /storage/.kodi/userdata/addon_data/service.net-snmp/share/snmp/%s.conf.\n# Only \"createUser\" tokens should be placed here by %s administrators.\n%s",
|
||||
"#\n# net-snmp (or ucd-snmp) persistent data file.\n#\n############################################################################\n# STOP STOP STOP STOP STOP STOP STOP STOP STOP \n",
|
||||
"#\n# **** DO NOT EDIT THIS FILE ****\n#\n# STOP STOP STOP STOP STOP STOP STOP STOP STOP \n############################################################################\n#\n# DO NOT STORE CONFIGURATION ENTRIES HERE.\n",
|
||||
type, type, type,
|
||||
@@ -0,0 +1,15 @@
|
||||
--- a/net-snmp-create-v3-user.in 2014-12-08 14:23:22.000000000 -0600
|
||||
+++ b/net-snmp-create-v3-user.in 2017-03-30 13:20:56.336794994 -0500
|
||||
@@ -28,10 +28,8 @@
|
||||
NSC_SRCDIR="NET-SNMP-SOURCE-DIR"
|
||||
fi
|
||||
|
||||
-if @PSCMD@ | egrep ' snmpd *$' > /dev/null 2>&1 ; then
|
||||
- echo "Apparently at least one snmpd demon is already running."
|
||||
- echo "You must stop them in order to use this command."
|
||||
- exit 1
|
||||
+if @PSCMD@ | egrep 'snmpd'> /dev/null 2>&1 ; then
|
||||
+ systemctl stop service.net-snmp.service
|
||||
fi
|
||||
|
||||
Aalgorithm="MD5"
|
||||
@@ -24,4 +24,4 @@ ADDON_ID=service.net-snmp
|
||||
ADDON_DIR="$HOME/.kodi/addons/$ADDON_ID"
|
||||
ADDON_HOME="$HOME/.kodi/userdata/addon_data/$ADDON_ID"
|
||||
|
||||
$ADDON_DIR/bin/snmpd -LS0-6d -c $ADDON_DIR/snmpd.conf -M /storage/.kodi/addons/service.net-snmp/share/snmp/mibs -p /var/run/snmpd.pid
|
||||
$ADDON_DIR/bin/snmpd -f -LS0-6d -c $ADDON_HOME/share/snmp/snmpd.conf -M $ADDON_DIR/share/snmp/mibs -p /var/run/snmpd.pid
|
||||
|
||||
@@ -15,3 +15,63 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
import xbmc
|
||||
import xbmcvfs
|
||||
import xbmcaddon
|
||||
from os import system
|
||||
|
||||
|
||||
class MyMonitor(xbmc.Monitor):
|
||||
def __init__(self, *args, **kwargs):
|
||||
xbmc.Monitor.__init__(self)
|
||||
|
||||
def onSettingsChanged(self):
|
||||
writeconfig()
|
||||
|
||||
|
||||
# addon
|
||||
__addon__ = xbmcaddon.Addon(id='service.net-snmp')
|
||||
__addonpath__ = xbmc.translatePath(__addon__.getAddonInfo('path'))
|
||||
__addonhome__ = xbmc.translatePath(__addon__.getAddonInfo('profile'))
|
||||
if not xbmcvfs.exists(xbmc.translatePath(__addonhome__ + 'share/snmp/')):
|
||||
xbmcvfs.mkdirs(xbmc.translatePath(__addonhome__ + 'share/snmp/'))
|
||||
config = xbmc.translatePath(__addonhome__ + 'share/snmp/snmpd.conf')
|
||||
persistent = xbmc.translatePath(__addonhome__ + 'snmpd.conf')
|
||||
|
||||
|
||||
def writeconfig():
|
||||
system("systemctl stop service.net-snmp.service")
|
||||
community = __addon__.getSetting("COMMUNITY")
|
||||
location = __addon__.getSetting("LOCATION")
|
||||
contact = __addon__.getSetting("CONTACT")
|
||||
snmpversion = __addon__.getSetting("SNMPVERSION")
|
||||
|
||||
if xbmcvfs.exists(persistent):
|
||||
xbmcvfs.delete(persistent)
|
||||
|
||||
file = xbmcvfs.File(config, 'w')
|
||||
file.write('com2sec local default {}\n'.format(community))
|
||||
file.write('group localgroup {} local\n'.format(snmpversion))
|
||||
file.write('access localgroup "" any noauth exact all all none\n')
|
||||
file.write('view all included .1 80\n')
|
||||
file.write('syslocation {}\n'.format(location))
|
||||
file.write('syscontact {}\n'.format(contact))
|
||||
file.write('dontLogTCPWrappersConnects yes\n')
|
||||
file.close()
|
||||
|
||||
if snmpversion == "v3":
|
||||
snmppassword = __addon__.getSetting("SNMPPASSWORD")
|
||||
snmpuser = __addon__.getSetting("SNMPUSER")
|
||||
system("net-snmp-config --create-snmpv3-user -a {0} {1}".format(snmppassword,snmpuser))
|
||||
|
||||
system("systemctl start service.net-snmp.service")
|
||||
|
||||
|
||||
if not xbmcvfs.exists(config):
|
||||
writeconfig()
|
||||
|
||||
monitor = MyMonitor()
|
||||
while not monitor.abortRequested():
|
||||
if monitor.waitForAbort():
|
||||
break
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<!-- net-snmp -->
|
||||
<string id="32000">General</string>
|
||||
<string id="32001">Community</string>
|
||||
<string id="32002">Location</string>
|
||||
<string id="32003">Contact</string>
|
||||
<string id="32004">SNMP Version</string>
|
||||
<string id="32005">SNMP User</string>
|
||||
<string id="32006">SNMP Password</string>
|
||||
</strings>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<!-- net-snmp -->
|
||||
<category label="32000">
|
||||
<setting label="32001" id="COMMUNITY" type="text" default="libreelec"/>
|
||||
<setting label="32002" id="LOCATION" type="text" default="HOME"/>
|
||||
<setting label="32003" id="CONTACT" type="text" default="root@localhost"/>
|
||||
<setting label="32004" id="SNMPVERSION" type="labelenum" values="v1|v2c|v3" default="v2c"/>
|
||||
<setting label="32005" id="SNMPUSER" type="text" default="user"/>
|
||||
<setting label="32006" id="SNMPPASSWORD" type="text" default="password"/>
|
||||
</category>
|
||||
</settings>
|
||||
@@ -1,10 +0,0 @@
|
||||
com2sec local default libreelec
|
||||
group localgroup v2c local
|
||||
access localgroup "" any noauth exact all all none
|
||||
|
||||
view all included .1 80
|
||||
|
||||
syslocation HOME
|
||||
syscontact root@libreelec
|
||||
|
||||
dontLogTCPWrappersConnects yes
|
||||
@@ -4,9 +4,11 @@ After=network-online.target
|
||||
Requires=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
Type=notification
|
||||
ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.net-snmp/bin/snmpd.start"
|
||||
ExecStop=/bin/sh -c "exec sh /storage/.kodi/addons/service.net-snmp/bin/snmpd.stop"
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
PIDFile=/var/run/snmpd.pid
|
||||
|
||||
[Install]
|
||||
WantedBy=kodi.target
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
8.0.103
|
||||
104
|
||||
- Update to version 0.14.29
|
||||
|
||||
103
|
||||
- Update to version 0.14.3
|
||||
|
||||
8.0.102
|
||||
102
|
||||
- Enable automatic upgrades
|
||||
|
||||
8.0.101
|
||||
101
|
||||
- Update to version 0.12.24
|
||||
|
||||
8.0.100
|
||||
100
|
||||
- Initial addon
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="syncthing"
|
||||
PKG_VERSION="0.14.3"
|
||||
PKG_REV="103"
|
||||
PKG_VERSION="0.14.29"
|
||||
PKG_REV="104"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MPLv2"
|
||||
PKG_SITE="https://syncthing.net/"
|
||||
@@ -35,7 +35,17 @@ PKG_ADDON_TYPE="xbmc.service"
|
||||
PKG_MAINTAINER="Anton Voyl (awiouy)"
|
||||
|
||||
configure_target() {
|
||||
go run build.go assets
|
||||
export GOOS=linux
|
||||
export CGO_ENABLED=1
|
||||
export CGO_NO_EMULATION=1
|
||||
export CGO_CFLAGS=$CFLAGS
|
||||
export LDFLAGS="-w -linkmode external -extldflags -Wl,--unresolved-symbols=ignore-in-shared-libs -extld $CC -X main.Version=v$PKG_VERSION"
|
||||
export GOLANG=$ROOT/$TOOLCHAIN/lib/golang/bin/go
|
||||
export GOPATH=$ROOT/$PKG_BUILD/src/github.com/syncthing/syncthing:$ROOT/$PKG_BUILD/vendor:$ROOT/$PKG_BUILD/Godeps/_workspace
|
||||
export GOROOT=$ROOT/$TOOLCHAIN/lib/golang
|
||||
export PATH=$PATH:$GOROOT/bin
|
||||
|
||||
$ROOT/$TOOLCHAIN/lib/golang/bin/go run build.go assets
|
||||
|
||||
mkdir -p $ROOT/$PKG_BUILD $ROOT/$PKG_BUILD/src/github.com/syncthing
|
||||
ln -fs $ROOT/$PKG_BUILD $ROOT/$PKG_BUILD/src/github.com/syncthing/syncthing
|
||||
@@ -60,16 +70,6 @@ configure_target() {
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
export GOOS=linux
|
||||
export CGO_ENABLED=1
|
||||
export CGO_NO_EMULATION=1
|
||||
export CGO_CFLAGS=$CFLAGS
|
||||
export LDFLAGS="-w -linkmode external -extldflags -Wl,--unresolved-symbols=ignore-in-shared-libs -extld $CC -X main.Version=v$PKG_VERSION"
|
||||
export GOLANG=$ROOT/$TOOLCHAIN/lib/golang/bin/go
|
||||
export GOPATH=$ROOT/$PKG_BUILD/src/github.com/syncthing/syncthing:$ROOT/$PKG_BUILD/vendor:$ROOT/$PKG_BUILD/Godeps/_workspace
|
||||
export GOROOT=$ROOT/$TOOLCHAIN/lib/golang
|
||||
export PATH=$PATH:$GOROOT/bin
|
||||
}
|
||||
|
||||
make_target() {
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
111
|
||||
- update to Tvheadend 4.2.2-32
|
||||
|
||||
110
|
||||
- added tv_grab_file support for compressed files (gz bz2 xz)
|
||||
- update to Tvheadend 4.2.1.7
|
||||
- fix FRITZ!Box support, AVM Repeater and 6490 are now working
|
||||
|
||||
109
|
||||
- added custom start options to addon
|
||||
- added FRITZ!Box Sat>IP server support to addon
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://LibreELEC.tv
|
||||
# Copyright (C) 2016-2017 Team LibreELEC
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,15 +17,15 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="tvheadend42"
|
||||
PKG_VERSION="e5f5a42"
|
||||
PKG_VERSION_NUMBER="4.1.2415"
|
||||
PKG_REV="109"
|
||||
PKG_VERSION="76dbc3e"
|
||||
PKG_VERSION_NUMBER="4.2.2-32"
|
||||
PKG_REV="111"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.tvheadend.org"
|
||||
PKG_URL="https://github.com/tvheadend/tvheadend/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="tvheadend-${PKG_VERSION}*"
|
||||
PKG_DEPENDS_TARGET="toolchain curl dvb-tools libdvbcsa libiconv libressl Python:host yasm"
|
||||
PKG_DEPENDS_TARGET="toolchain curl dvb-tools libdvbcsa libiconv libressl pngquant:host Python:host yasm"
|
||||
PKG_SECTION="service"
|
||||
PKG_SHORTDESC="Tvheadend: a TV streaming server for Linux"
|
||||
PKG_LONGDESC="Tvheadend ($PKG_VERSION_NUMBER): is a TV streaming server for Linux supporting DVB-S/S2, DVB-C, DVB-T/T2, IPTV, SAT>IP, ATSC and ISDB-T"
|
||||
@@ -56,6 +56,7 @@ PKG_CONFIGURE_OPTS_TARGET="--prefix=/usr \
|
||||
--enable-hdhomerun_static \
|
||||
--enable-epoll \
|
||||
--enable-inotify \
|
||||
--enable-pngquant \
|
||||
--disable-nvenc \
|
||||
--disable-uriparser \
|
||||
$TVH_TRANSCODING \
|
||||
@@ -67,6 +68,7 @@ PKG_CONFIGURE_OPTS_TARGET="--prefix=/usr \
|
||||
|
||||
post_unpack() {
|
||||
sed -e 's/VER="0.0.0~unknown"/VER="'$PKG_VERSION_NUMBER' ~ LibreELEC Tvh-addon v'$ADDON_VERSION'.'$PKG_REV'"/g' -i $PKG_BUILD/support/version
|
||||
sed -e 's|'/usr/bin/pngquant'|'$ROOT/$TOOLCHAIN/bin/pngquant'|g' -i $PKG_BUILD/support/mkbundle
|
||||
}
|
||||
|
||||
pre_configure_target() {
|
||||
@@ -92,6 +94,7 @@ fi
|
||||
|
||||
post_make_target() {
|
||||
$CC -O -fbuiltin -fomit-frame-pointer -fPIC -shared -o capmt_ca.so src/extra/capmt_ca.c -ldl
|
||||
$STRIP $ROOT/$PKG_BUILD/build.linux/tvheadend
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Subject: [PATCH] tvheadend: HACK ffmpeg 3.1.5 instead of 3.2
|
||||
Subject: [PATCH] tvheadend: HACK ffmpeg 3.1.5 instead of 3.3
|
||||
|
||||
diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
|
||||
--- a/Makefile.ffmpeg
|
||||
@@ -7,12 +7,12 @@ diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
|
||||
LIBMFX_SHA1 = 84dbdf4a6b409067e863eb9564bb2efdec6d39ce
|
||||
LIBMFX_DIFFS = libmfx.linux.path.diff
|
||||
|
||||
-FFMPEG = ffmpeg-3.2
|
||||
-FFMPEG = ffmpeg-3.3
|
||||
-FFMPEG_TB = $(FFMPEG).tar.bz2
|
||||
+FFMPEG = ffmpeg-3.1.5
|
||||
+FFMPEG_TB = $(FFMPEG).tar.bz2
|
||||
FFMPEG_URL = http://ffmpeg.org/releases/$(FFMPEG_TB)
|
||||
-FFMPEG_SHA1 = aac4876d1bc4d2cd8d9833b20649c3eed984f6ef
|
||||
-FFMPEG_SHA1 = 2590af8c754ce8d55745b1e5647e498bf271dc77
|
||||
+FFMPEG_SHA1 = 053dfea8c9e057fdf237885decd03147cb2412b1
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,14 @@ then
|
||||
XMLTV_LOCATION_SCRIPT=`grep XMLTV_LOCATION_SCRIPT $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
||||
|
||||
if [ "$XMLTV_TYPE" = "FILE" ]; then
|
||||
cat "$XMLTV_LOCATION_FILE"
|
||||
case "$XMLTV_LOCATION_FILE" in
|
||||
*.gz | *.bz2 | *.xz)
|
||||
zcat "$XMLTV_LOCATION_FILE"
|
||||
;;
|
||||
*)
|
||||
cat "$XMLTV_LOCATION_FILE"
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
elif [ "$XMLTV_TYPE" = "SCRIPT" ]; then
|
||||
if [ -e "$XMLTV_LOCATION_SCRIPT" ] ; then
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-2017 Team LibreELEC
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -89,14 +89,26 @@ if [ "$WORKAROUND_SLEEP" == "true" ]; then
|
||||
sleep $WORKAROUND_SLEEP_TIME
|
||||
fi
|
||||
|
||||
# support FritzBox Sat>IP Server detection workaround
|
||||
# support FritzBox Sat>IP Server detection workaround for AVM-Repeater and AVM-6490
|
||||
if [ "$AVM_SATIP_SERVER" == "true" ]; then
|
||||
AVM_SATIP=""
|
||||
for i in $(seq 1 $AVM_SATIP_SERVER_NUM); do
|
||||
ref_ip=AVM_IP_${i}
|
||||
eval "AVM_IP=\${$ref_ip}"
|
||||
AVM_SATIP="$AVM_SATIP --satip_xml http://${AVM_IP}:${AVM_PORT}/satipdesc.xml"
|
||||
done
|
||||
if [ "$AVM_DEVICE" == "AVM_Repeater" ]; then
|
||||
AVM_SATIP="--satip_xml http://${AVM_ROUTER_IP}:49000/satipdesc.xml"
|
||||
fi
|
||||
if [ "$AVM_DEVICE" == "AVM_6490" ]; then
|
||||
AVM_SATIP="--satip_xml http://${AVM_ROUTER_FAKE_IP}:49000/satipdesc.xml"
|
||||
AVM_NUM="4"
|
||||
fi
|
||||
|
||||
# add virtual ip as workaround for AVM limitation of one stream per ip
|
||||
# AVM-Repeater (2 tuners)
|
||||
ip address add ${AVM_IP1}/24 dev $AVM_ETH
|
||||
ip address add ${AVM_IP2}/24 dev $AVM_ETH
|
||||
|
||||
# AVM-6490 (4 tuners)
|
||||
if [ "$AVM_NUM" = "4" ]; then
|
||||
ip address add ${AVM_IP3}/24 dev $AVM_ETH
|
||||
ip address add ${AVM_IP4}/24 dev $AVM_ETH
|
||||
fi
|
||||
fi
|
||||
|
||||
# custom startup parameters
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<!-- HTS TVHEADEND -->
|
||||
<string id="1000">XMLTV</string>
|
||||
<string id="1001">DVB</string>
|
||||
<string id="1002">DEBUG</string>
|
||||
<string id="1003">FRITZ!Box Sat>IP</string>
|
||||
<string id="1010">XMLTV Configuration</string>
|
||||
<string id="1011">XMLTV source type</string>
|
||||
<string id="1012">XMLTV File location</string>
|
||||
<string id="1013">XMLTV Web location</string>
|
||||
<string id="1014">XMLTV Script location</string>
|
||||
<string id="1020">DVB Configuration</string>
|
||||
<string id="1021">Unload DVB mudules before suspend</string>
|
||||
<string id="1022">Wait for frontend initialization</string>
|
||||
<string id="1023">Number of adapters to wait for</string>
|
||||
<string id="1024">Preload capmt_ca.so library</string>
|
||||
<string id="1025">Delay the start of Tvheadend</string>
|
||||
<string id="1026">Seconds delay</string>
|
||||
<string id="1028">Custom start parameter</string>
|
||||
<string id="1029">Parameter</string>
|
||||
<string id="1110">FRITZ!Box Sat>IP server</string>
|
||||
<string id="1111"># of tuners</string>
|
||||
<string id="1112">Tuner #1 address</string>
|
||||
<string id="1113">Tuner #2 address</string>
|
||||
<string id="1114">Tuner #3 address</string>
|
||||
<string id="1115">Tuner #4 address</string>
|
||||
<string id="1116">AVM SAT>IP Port</string>
|
||||
<string id="1120">Port</string>
|
||||
<string id="1121">FRITZ!Box Sat>IP server connection</string>
|
||||
<string id="1030">TRACE Configuration</string>
|
||||
<string id="1031">Path</string>
|
||||
<string id="1032">Activate TRACE Debug</string>
|
||||
<string id="31032">Debug Value #1</string>
|
||||
<string id="31033">Debug Value #2</string>
|
||||
<string id="31034">Debug Value #3</string>
|
||||
<string id="31035">Debug Value #4</string>
|
||||
<string id="31036">Debug Value #5</string>
|
||||
</strings>
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<!-- HTS TVHEADEND -->
|
||||
<string id="1000">XMLTV</string>
|
||||
<string id="1001">DVB</string>
|
||||
<string id="1002">DEBUG</string>
|
||||
<string id="1003">FRITZ!Box Sat>IP</string>
|
||||
<string id="1010">XMLTV Configuration</string>
|
||||
<string id="1011">XMLTV source type</string>
|
||||
<string id="1012">XMLTV File location</string>
|
||||
<string id="1013">XMLTV Web location</string>
|
||||
<string id="1014">XMLTV Script location</string>
|
||||
<string id="1020">DVB Configuration</string>
|
||||
<string id="1021">Unload DVB mudules before suspend</string>
|
||||
<string id="1022">Wait for frontend initialization</string>
|
||||
<string id="1023">Number of adapters to wait for</string>
|
||||
<string id="1024">Preload capmt_ca.so library</string>
|
||||
<string id="1025">Delay the start of Tvheadend</string>
|
||||
<string id="1026">Seconds delay</string>
|
||||
<string id="1028">Custom start parameter</string>
|
||||
<string id="1029">Parameter</string>
|
||||
<string id="1110">FRITZ!Box Sat>IP server</string>
|
||||
<string id="1111">AVM device</string>
|
||||
<string id="1112">IP of the AVM Repeater</string>
|
||||
<string id="1113">Router IP range (last digits are always .254)</string>
|
||||
<string id="1114">Used network</string>
|
||||
<string id="1115">Virtual IP #1</string>
|
||||
<string id="1116">Virtual IP #2</string>
|
||||
<string id="1117">Virtual IP #3</string>
|
||||
<string id="1118">Virtual IP #4</string>
|
||||
<string id="1030">TRACE Configuration</string>
|
||||
<string id="1031">Path</string>
|
||||
<string id="1032">Activate TRACE Debug</string>
|
||||
<string id="31032">Debug Value #1</string>
|
||||
<string id="31033">Debug Value #2</string>
|
||||
<string id="31034">Debug Value #3</string>
|
||||
<string id="31035">Debug Value #4</string>
|
||||
<string id="31036">Debug Value #5</string>
|
||||
</strings>
|
||||
|
||||
@@ -1,48 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<!-- HTS TVHEADEND -->
|
||||
<category label="1000">
|
||||
<setting label="1010" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="XMLTV_TYPE" type="labelenum" label="1011" values="NONE|FILE|SCRIPT|WEB" sort="yes" default="NONE"/>
|
||||
<setting id="XMLTV_LOCATION_FILE" type="file" label="1012" default="" enable="eq(-1,0)"/>
|
||||
<setting id="XMLTV_LOCATION_WEB" type="text" label="1013" default="http://" enable="eq(-2,3)"/>
|
||||
<setting id="XMLTV_LOCATION_SCRIPT" type="file" label="1014" default="" enable="eq(-3,2)"/>
|
||||
</category>
|
||||
<category label="1001">
|
||||
<setting label="1020" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="WAIT_FOR_FEINIT" type="bool" label="1022" default="false" />
|
||||
<setting id="NUM_ADAPTERS" type="slider" range="1,16" option="int" label="1023" default="1" enable="eq(-1,true)" />
|
||||
<setting id="REMOVE_MODULES" type="text" label="1021" values="" default=""/>
|
||||
<setting id="PRELOAD_CAPMT_CA" type="bool" label="1024" default="false" />
|
||||
<setting id="WORKAROUND_SLEEP" type="bool" label="1025" default="false" />
|
||||
<setting id="WORKAROUND_SLEEP_TIME" type="slider" range="1,30" option="int" label="1026" default="1" enable="eq(-1,true)" />
|
||||
</category>
|
||||
<category label="1002">
|
||||
<setting label="1030" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="DEBUG_LOG" type="bool" label="1032" default="false" />
|
||||
<setting type="sep" />
|
||||
<setting id="DEBUG_LOG_PATH" type="text" label="1031" default="/storage/.kodi/userdata/addon_data/service.tvheadend42/debug.txt" enable="eq(-2,true)"/>
|
||||
<setting id="DEBUG_LOG_TRACE_1" type="select" default="NONE" visible="eq(-3,true)" enable="eq(-3,true)" label="31032" values="NONE|all|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting id="DEBUG_LOG_TRACE_2" type="select" default="NONE" visible="eq(-4,true)" enable="!eq(-1,NONE)+eq(-4,true)" label="31033" values="NONE|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting id="DEBUG_LOG_TRACE_3" type="select" default="NONE" visible="eq(-5,true)" enable="!eq(-1,NONE)+!eq(-2,NONE)+eq(-5,true)" label="31034" values="NONE|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting id="DEBUG_LOG_TRACE_4" type="select" default="NONE" visible="eq(-6,true)" enable="!eq(-1,NONE)+!eq(-2,NONE)+!eq(-3,NONE)+eq(-6,true)" label="31035" values="NONE|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting id="DEBUG_LOG_TRACE_5" type="select" default="NONE" visible="eq(-7,true)" enable="!eq(-1,NONE)+!eq(-2,NONE)+!eq(-3,NONE)+!eq(-4,NONE)+eq(-7,true)" label="31036" values="NONE|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting type="sep" />
|
||||
<setting id="CUSTOM_START" type="bool" label="1028" default="false" />
|
||||
<setting id="CUSTOM_ARGS" type="text" label="1029" default="" enable="eq(-1,true)" />
|
||||
</category>
|
||||
<category label="1003">
|
||||
<setting label="1121" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="AVM_SATIP_SERVER" type="bool" label="1110" default="false"/>
|
||||
<setting id="AVM_SATIP_SERVER_NUM" label="1111" type="labelenum" values="0|1|2|3|4" default="1" visible="eq(-1,true)" enable="eq(-1,true)"/>
|
||||
<setting id="AVM_IP_1" type="ipaddress" label="1112" default="192.168.178.254" visible="gt(-1,0)+eq(-2,true)" enable="gt(-1,0)+eq(-2,true)" />
|
||||
<setting id="AVM_IP_2" type="ipaddress" label="1113" default="192.168.178.253" visible="gt(-2,1)+eq(-3,true)" enable="gt(-2,1)+eq(-3,true)" />
|
||||
<setting id="AVM_IP_3" type="ipaddress" label="1114" default="192.168.178.252" visible="gt(-3,2)+eq(-4,true)" enable="gt(-3,2)+eq(-4,true)" />
|
||||
<setting id="AVM_IP_4" type="ipaddress" label="1115" default="192.168.178.251" visible="gt(-4,3)+eq(-5,true)" enable="gt(-4,3)+eq(-5,true)" />
|
||||
<setting id="AVM_PORT" type="number" label="1120" default="49000" visible="gt(-5,0)+eq(-6,true)" enable="gt(-5,0)+eq(-6,true)" />
|
||||
</category>
|
||||
</settings>
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<!-- HTS TVHEADEND -->
|
||||
<category label="1000">
|
||||
<setting label="1010" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="XMLTV_TYPE" type="labelenum" label="1011" values="NONE|FILE|SCRIPT|WEB" sort="yes" default="NONE"/>
|
||||
<setting id="XMLTV_LOCATION_FILE" type="file" label="1012" default="" enable="eq(-1,0)"/>
|
||||
<setting id="XMLTV_LOCATION_WEB" type="text" label="1013" default="http://" enable="eq(-2,3)"/>
|
||||
<setting id="XMLTV_LOCATION_SCRIPT" type="file" label="1014" default="" enable="eq(-3,2)"/>
|
||||
</category>
|
||||
<category label="1001">
|
||||
<setting label="1020" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="WAIT_FOR_FEINIT" type="bool" label="1022" default="false" />
|
||||
<setting id="NUM_ADAPTERS" type="slider" range="1,16" option="int" label="1023" default="1" enable="eq(-1,true)" />
|
||||
<setting id="REMOVE_MODULES" type="text" label="1021" values="" default=""/>
|
||||
<setting id="PRELOAD_CAPMT_CA" type="bool" label="1024" default="false" />
|
||||
<setting id="WORKAROUND_SLEEP" type="bool" label="1025" default="false" />
|
||||
<setting id="WORKAROUND_SLEEP_TIME" type="slider" range="1,30" option="int" label="1026" default="1" enable="eq(-1,true)" />
|
||||
</category>
|
||||
<category label="1002">
|
||||
<setting label="1030" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="DEBUG_LOG" type="bool" label="1032" default="false" />
|
||||
<setting type="sep" />
|
||||
<setting id="DEBUG_LOG_PATH" type="text" label="1031" default="/storage/.kodi/userdata/addon_data/service.tvheadend42/debug.txt" enable="eq(-2,true)"/>
|
||||
<setting id="DEBUG_LOG_TRACE_1" type="select" default="NONE" visible="eq(-3,true)" enable="eq(-3,true)" label="31032" values="NONE|all|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting id="DEBUG_LOG_TRACE_2" type="select" default="NONE" visible="eq(-4,true)" enable="!eq(-1,NONE)+eq(-4,true)" label="31033" values="NONE|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting id="DEBUG_LOG_TRACE_3" type="select" default="NONE" visible="eq(-5,true)" enable="!eq(-1,NONE)+!eq(-2,NONE)+eq(-5,true)" label="31034" values="NONE|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting id="DEBUG_LOG_TRACE_4" type="select" default="NONE" visible="eq(-6,true)" enable="!eq(-1,NONE)+!eq(-2,NONE)+!eq(-3,NONE)+eq(-6,true)" label="31035" values="NONE|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting id="DEBUG_LOG_TRACE_5" type="select" default="NONE" visible="eq(-7,true)" enable="!eq(-1,NONE)+!eq(-2,NONE)+!eq(-3,NONE)+!eq(-4,NONE)+eq(-7,true)" label="31036" values="NONE|access|api|avahi|bat|bonjour|bouquet|caclient|capmt|channel|charset|config|CPU|cron|csa|cwc|dbus|descrambler|diseqc|dvb|dvbcam|dvr|epg|epgdb|epggrab|esfilter|fastscan|fsmonitor|globalheaders|gtimer|hevc|htsp|htsp-ans|htsp-req|htsp-sub|http|httpc|idnode|imagecache|iptv|iptv-pcr|libav|linuxdvb|lock|main|mkv|mpegts|mtimer|muxer|muxsched|opentv|parser|pass|pat|pmt|profile|psip|pyepg|rtsp|satip|satips|scanfile|service|service-mapper|settings|spawn|subscription|tbl|tbl-atsc|tbl-base|tbl-csa|tbl-eit|tbl-pass|tbl-satip|tbl-time|tcp|thread|time|timeshift|transcode|TS|tsfile|tsfix|tvhdhomerun|tvhpoll|upnp|url|uuid|webui|xmltv" />
|
||||
<setting type="sep" />
|
||||
<setting id="CUSTOM_START" type="bool" label="1028" default="false" />
|
||||
<setting id="CUSTOM_ARGS" type="text" label="1029" default="" enable="eq(-1,true)" />
|
||||
</category>
|
||||
<category label="1003">
|
||||
<setting label="1121" type="lsep"/>
|
||||
<setting type="sep" />
|
||||
<setting id="AVM_SATIP_SERVER" type="bool" label="1110" default="false"/>
|
||||
<setting id="AVM_DEVICE" type="labelenum" label="1111" values="AVM_Repeater|AVM_6490" visible="eq(-1,true)"/>
|
||||
<setting id="AVM_ROUTER_IP" type="ipaddress" label="1112" default="192.168.178.2" visible="eq(-2,true)+eq(-1,0)"/>
|
||||
<setting id="AVM_ROUTER_FAKE_IP" type="ipaddress" label="1113" default="192.168.178.254" visible="eq(-3,true)+eq(-2,1)"/>
|
||||
<setting id="AVM_ETH" type="labelenum" label="1114" visible="eq(-4,true)" values="eth0|wlan0|eth1|wlan1" />
|
||||
<setting type="sep" visible="eq(-5,true)"/>
|
||||
<setting id="AVM_IP1" type="ipaddress" label="1115" default="192.168.178.201" visible="eq(-6,true)"/>
|
||||
<setting id="AVM_IP2" type="ipaddress" label="1116" default="192.168.178.202" visible="eq(-7,true)"/>
|
||||
<setting id="AVM_IP3" type="ipaddress" label="1117" default="192.168.178.203" visible="eq(-8,true)+eq(-7,1)"/>
|
||||
<setting id="AVM_IP4" type="ipaddress" label="1118" default="192.168.178.204" visible="eq(-9,true)+eq(-8,1)"/>
|
||||
</category>
|
||||
</settings>
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
105
|
||||
- fix for some scrambled channels
|
||||
- update dvbapi to d7c7587
|
||||
- update Sat>IP plugin to ed99cfb
|
||||
- update VNSI to 615a077
|
||||
|
||||
104
|
||||
- encode special characters in directory names to be accesible via smb
|
||||
- update VNSI to d6847c3
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-addon"
|
||||
PKG_VERSION="8.0"
|
||||
PKG_REV="104"
|
||||
PKG_VERSION="2.2"
|
||||
PKG_REV="105"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
PKG_SITE="https://libreelec.tv"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="toolchain vdr vdr-plugin-dummydevice vdr-plugin-dvbapi vdr-plugin-eepg vdr-plugin-epgfixer vdr-plugin-epgsearch vdr-plugin-iptv vdr-plugin-live vdr-plugin-restfulapi vdr-plugin-satip vdr-plugin-streamdev vdr-plugin-vnsiserver vdr-plugin-wirbelscan vdr-plugin-wirbelscancontrol vdr-plugin-xmltv2vdr"
|
||||
PKG_SECTION="service.multimedia"
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
102
|
||||
- added MuMuDVB
|
||||
- updated w_scan to 20170107
|
||||
- updated dvblast to 3.1
|
||||
- updated dvb-fe-tool to 1.12.3
|
||||
|
||||
101
|
||||
- added w_scan
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="dvb-tools"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="101"
|
||||
PKG_REV="102"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE=""
|
||||
@@ -26,7 +26,7 @@ PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="DVB-Tools: is a bundle of dvb tools and programs"
|
||||
PKG_LONGDESC="This bundle currently includes dvb-apps, dvb-fe-tool, dvblast and w_scan."
|
||||
PKG_LONGDESC="This bundle currently includes dvb-apps, dvb-fe-tool, dvblast, mumudvb and w_scan."
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
@@ -37,6 +37,7 @@ PKG_DEPENDS_TARGET="toolchain \
|
||||
dvb-apps \
|
||||
dvb-fe-tool \
|
||||
dvblast \
|
||||
mumudvb \
|
||||
w_scan"
|
||||
|
||||
addon() {
|
||||
@@ -60,6 +61,9 @@ addon() {
|
||||
# dvblast
|
||||
cp -P $(get_build_dir dvblast)/dvblast $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
# mumudvb
|
||||
cp -P $(get_build_dir mumudvb)/.$TARGET_NAME/src/mumudvb $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
# w_scan
|
||||
cp -P $(get_build_dir w_scan)/.$TARGET_NAME/w_scan $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
8.0.101
|
||||
105:
|
||||
- Update to 5.0.1.1
|
||||
|
||||
104:
|
||||
- Update to 5.0.0.100
|
||||
|
||||
103:
|
||||
- Update to 4.8.1.0
|
||||
|
||||
102:
|
||||
- Update to 4.8.0.495
|
||||
|
||||
101:
|
||||
- Update to 4.2.1.102
|
||||
- Build static for all projects and architectures
|
||||
- Remove uneeded binaries and libraries
|
||||
|
||||
8.0.100
|
||||
100:
|
||||
- Initial release
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# Copyright (C) 2016-present 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
|
||||
@@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mono"
|
||||
PKG_VERSION="4.2.1.102"
|
||||
PKG_REV="101"
|
||||
PKG_VERSION="5.0.1.1"
|
||||
PKG_REV="105"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="http://www.mono-project.com"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - http://www.libreelec.tv
|
||||
# Copyright (C) 2016 Team LibreELEC
|
||||
# Copyright (C) 2016-2017 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
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
8.0.103
|
||||
104
|
||||
- squeezelite: update to a3d95ec and link audio libraries
|
||||
|
||||
103
|
||||
- Add alsamixer
|
||||
- Update mpg123 to 1.23.6
|
||||
- Update squeezelite to 33cca7e
|
||||
|
||||
8.0.102
|
||||
102
|
||||
- Remove IR support from squeezelite
|
||||
|
||||
8.0.101
|
||||
101
|
||||
- Add mpg123 and squeezelite
|
||||
|
||||
8.0.100
|
||||
100
|
||||
- Initial Release
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="multimedia-tools"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="103"
|
||||
PKG_REV="104"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE=""
|
||||
|
||||
@@ -18,15 +18,15 @@
|
||||
|
||||
PKG_NAME="rpi-tools"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="102"
|
||||
PKG_REV="104"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE=""
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="toolchain RPi.GPIO picamera gpiozero"
|
||||
PKG_DEPENDS_TARGET="toolchain RPi.GPIO picamera gpiozero lan951x-led-ctl"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="A bundle of tools and programs for use on the Raspberry Pi"
|
||||
PKG_LONGDESC="This bundle currently includes RPi.GPIO, picamera, gpiozero python modules"
|
||||
PKG_LONGDESC="This bundle currently includes RPi.GPIO, picamera, gpiozero lan951x-led-ctl"
|
||||
PKG_DISCAIMER="Raspberry Pi is a trademark of the Raspberry Pi Foundation http://www.raspberrypi.org"
|
||||
|
||||
PKG_IS_ADDON="yes"
|
||||
@@ -49,4 +49,7 @@ addon() {
|
||||
cp -P $BCM2835_DIR/hardfp/opt/vc/bin/raspiyuv $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $BCM2835_DIR/hardfp/opt/vc/bin/raspivid $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
cp -P $BCM2835_DIR/hardfp/opt/vc/bin/raspividyuv $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
|
||||
# lan951x-led-ctl
|
||||
cp -P $(get_build_dir lan951x-led-ctl)/lan951x-led-ctl $ADDON_BUILD/$PKG_ADDON_ID/bin
|
||||
}
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
106
|
||||
- Bump screen, fix colors issue
|
||||
|
||||
104
|
||||
- Bump file package
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="system-tools"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="104"
|
||||
PKG_REV="106"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE=""
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
diff --git a/packages/audio/pulseaudio/patches/pulseaudio-0900.03-eliminates-lags-after-bluetooth-packet-loss.patch b/packages/audio/pulseaudio/patches/pulseaudio-0900.03-eliminates-lags-after-bluetooth-packet-loss.patch
|
||||
new file mode 100644
|
||||
index 0000000..6a7aeab
|
||||
--- /dev/null
|
||||
+++ b/packages/audio/pulseaudio/patches/pulseaudio-0900.03-eliminates-lags-after-bluetooth-packet-loss.patch
|
||||
@@ -0,0 +1,198 @@
|
||||
+diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
|
||||
+index 84e6d55..b96a80d 100644
|
||||
+--- a/src/modules/bluetooth/module-bluez5-device.c
|
||||
++++ b/src/modules/bluetooth/module-bluez5-device.c
|
||||
+@@ -649,6 +649,29 @@ static int a2dp_process_push(struct userdata *u) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
++static void update_buffer_size(struct userdata *u) {
|
||||
++ int old_bufsize, new_bufsize;
|
||||
++ socklen_t len = sizeof(int);
|
||||
++ int rc;
|
||||
++
|
||||
++ rc = getsockopt(u->stream_fd, SOL_SOCKET, SO_SNDBUF, &old_bufsize, &len);
|
||||
++ if (rc == -1) {
|
||||
++ pa_log_warn("Changing bluetooth buffer size: Failed to getsockopt(SO_SNDBUF): %s", pa_cstrerror(errno));
|
||||
++ } else {
|
||||
++ bool ok = false;
|
||||
++ for (int n = 2; !ok && n < 16; ++n) {
|
||||
++ new_bufsize = n * u->write_link_mtu;
|
||||
++ rc = setsockopt(u->stream_fd, SOL_SOCKET, SO_SNDBUF, &new_bufsize, len);
|
||||
++ if (rc == -1) {
|
||||
++ pa_log_warn("Changing bluetooth buffer size: Failed to change from %d to %d: %s", old_bufsize, new_bufsize, pa_cstrerror(errno));
|
||||
++ } else {
|
||||
++ ok = true;
|
||||
++ pa_log_info("Changing bluetooth buffer size: Changed from %d to %d", old_bufsize, new_bufsize);
|
||||
++ }
|
||||
++ }
|
||||
++ }
|
||||
++}
|
||||
++
|
||||
+ /* Run from I/O thread */
|
||||
+ static void a2dp_set_bitpool(struct userdata *u, uint8_t bitpool) {
|
||||
+ struct sbc_info *sbc_info;
|
||||
+@@ -683,6 +706,8 @@ static void a2dp_set_bitpool(struct userdata *u, uint8_t bitpool) {
|
||||
+ pa_sink_set_max_request_within_thread(u->sink, u->write_block_size);
|
||||
+ pa_sink_set_fixed_latency_within_thread(u->sink,
|
||||
+ FIXED_LATENCY_PLAYBACK_A2DP + pa_bytes_to_usec(u->write_block_size, &u->sample_spec));
|
||||
++
|
||||
++ update_buffer_size(u);
|
||||
+ }
|
||||
+
|
||||
+ /* Run from I/O thread */
|
||||
+@@ -814,6 +839,8 @@ static void setup_stream(struct userdata *u) {
|
||||
+
|
||||
+ if (u->profile == PA_BLUETOOTH_PROFILE_A2DP_SINK)
|
||||
+ a2dp_set_bitpool(u, u->sbc_info.max_bitpool);
|
||||
++
|
||||
++ update_buffer_size(u);
|
||||
+
|
||||
+ u->rtpoll_item = pa_rtpoll_item_new(u->rtpoll, PA_RTPOLL_NEVER, 1);
|
||||
+ pollfd = pa_rtpoll_item_get_pollfd(u->rtpoll_item, NULL);
|
||||
+@@ -1327,6 +1354,7 @@ static void thread_func(void *userdata) {
|
||||
+ unsigned do_write = 0;
|
||||
+ unsigned pending_read_bytes = 0;
|
||||
+ bool writable = false;
|
||||
++ pa_usec_t ts_last_frame;
|
||||
+
|
||||
+ pa_assert(u);
|
||||
+ pa_assert(u->transport);
|
||||
+@@ -1341,11 +1369,16 @@ static void thread_func(void *userdata) {
|
||||
+ /* Setup the stream only if the transport was already acquired */
|
||||
+ if (u->transport_acquired)
|
||||
+ setup_stream(u);
|
||||
++ u->started_at = pa_rtclock_now();
|
||||
+
|
||||
++ ts_last_frame = u->started_at;
|
||||
++
|
||||
+ for (;;) {
|
||||
+ struct pollfd *pollfd;
|
||||
+ int ret;
|
||||
+ bool disable_timer = true;
|
||||
++ pa_usec_t ts_now = pa_rtclock_now();
|
||||
++ pa_usec_t ts_next_frame = ts_last_frame + pa_bytes_to_usec(u->write_block_size, &u->sample_spec);
|
||||
+
|
||||
+ pollfd = u->rtpoll_item ? pa_rtpoll_item_get_pollfd(u->rtpoll_item, NULL) : NULL;
|
||||
+
|
||||
+@@ -1404,86 +1437,57 @@ static void thread_func(void *userdata) {
|
||||
+ if (pollfd->revents & POLLOUT)
|
||||
+ writable = true;
|
||||
+
|
||||
+- if ((!u->source || !PA_SOURCE_IS_LINKED(u->source->thread_info.state)) && do_write <= 0 && writable) {
|
||||
+- pa_usec_t time_passed;
|
||||
+- pa_usec_t audio_sent;
|
||||
++ if ((!u->source || !PA_SOURCE_IS_LINKED(u->source->thread_info.state))) {
|
||||
+
|
||||
+- /* Hmm, there is no input stream we could synchronize
|
||||
+- * to. So let's do things by time */
|
||||
++ if (ts_now >= ts_next_frame) {
|
||||
+
|
||||
+- time_passed = pa_rtclock_now() - u->started_at;
|
||||
+- audio_sent = pa_bytes_to_usec(u->write_index, &u->sample_spec);
|
||||
++ if (writable) {
|
||||
++ int n_written;
|
||||
++
|
||||
++ if (u->profile == PA_BLUETOOTH_PROFILE_A2DP_SINK) {
|
||||
++ if ((n_written = a2dp_process_render(u)) < 0)
|
||||
++ goto fail;
|
||||
++ } else {
|
||||
++ if ((n_written = sco_process_render(u)) < 0)
|
||||
++ goto fail;
|
||||
++ }
|
||||
+
|
||||
+- if (audio_sent <= time_passed) {
|
||||
+- pa_usec_t audio_to_send = time_passed - audio_sent;
|
||||
++ if (n_written == 0)
|
||||
++ pa_log("Broken kernel: we got EAGAIN on write() after POLLOUT!");
|
||||
+
|
||||
+- /* Never try to catch up for more than 100ms */
|
||||
+- if (u->write_index > 0 && audio_to_send > MAX_PLAYBACK_CATCH_UP_USEC) {
|
||||
++ do_write -= n_written;
|
||||
++ writable = false;
|
||||
++ } else {
|
||||
+ pa_usec_t skip_usec;
|
||||
+ uint64_t skip_bytes;
|
||||
++ pa_memchunk tmp;
|
||||
+
|
||||
+- skip_usec = audio_to_send - MAX_PLAYBACK_CATCH_UP_USEC;
|
||||
++ skip_usec = ts_now - ts_last_frame;
|
||||
+ skip_bytes = pa_usec_to_bytes(skip_usec, &u->sample_spec);
|
||||
+
|
||||
+- if (skip_bytes > 0) {
|
||||
+- pa_memchunk tmp;
|
||||
++ pa_log_warn("Skipping %llu us (= %llu bytes) in audio stream",
|
||||
++ (unsigned long long) skip_usec,
|
||||
++ (unsigned long long) skip_bytes);
|
||||
+
|
||||
+- pa_log_warn("Skipping %llu us (= %llu bytes) in audio stream",
|
||||
+- (unsigned long long) skip_usec,
|
||||
+- (unsigned long long) skip_bytes);
|
||||
++ pa_sink_render_full(u->sink, skip_bytes, &tmp);
|
||||
++ pa_memblock_unref(tmp.memblock);
|
||||
++ u->write_index += skip_bytes;
|
||||
+
|
||||
+- pa_sink_render_full(u->sink, skip_bytes, &tmp);
|
||||
+- pa_memblock_unref(tmp.memblock);
|
||||
+- u->write_index += skip_bytes;
|
||||
+-
|
||||
+- if (u->profile == PA_BLUETOOTH_PROFILE_A2DP_SINK)
|
||||
+- a2dp_reduce_bitpool(u);
|
||||
+- }
|
||||
++ if (u->profile == PA_BLUETOOTH_PROFILE_A2DP_SINK)
|
||||
++ a2dp_reduce_bitpool(u);
|
||||
+ }
|
||||
+-
|
||||
+- do_write = 1;
|
||||
++ ts_last_frame = ts_now;
|
||||
++ // TODO: ts_last_frame might be slightly inaccurate; it should depend on ts_next_frame
|
||||
+ pending_read_bytes = 0;
|
||||
+ }
|
||||
+- }
|
||||
+-
|
||||
+- if (writable && do_write > 0) {
|
||||
+- int n_written;
|
||||
+
|
||||
+- if (u->write_index <= 0)
|
||||
+- u->started_at = pa_rtclock_now();
|
||||
++ {
|
||||
++ pa_usec_t ts_now2 = pa_rtclock_now();
|
||||
++ pa_usec_t sleep_for = ts_now2 > ts_next_frame ? 0 : ts_next_frame - ts_now2;
|
||||
+
|
||||
+- if (u->profile == PA_BLUETOOTH_PROFILE_A2DP_SINK) {
|
||||
+- if ((n_written = a2dp_process_render(u)) < 0)
|
||||
+- goto fail;
|
||||
+- } else {
|
||||
+- if ((n_written = sco_process_render(u)) < 0)
|
||||
+- goto fail;
|
||||
++ pa_rtpoll_set_timer_relative(u->rtpoll, sleep_for);
|
||||
++ disable_timer = false;
|
||||
+ }
|
||||
+-
|
||||
+- if (n_written == 0)
|
||||
+- pa_log("Broken kernel: we got EAGAIN on write() after POLLOUT!");
|
||||
+-
|
||||
+- do_write -= n_written;
|
||||
+- writable = false;
|
||||
+- }
|
||||
+-
|
||||
+- if ((!u->source || !PA_SOURCE_IS_LINKED(u->source->thread_info.state)) && do_write <= 0) {
|
||||
+- pa_usec_t sleep_for;
|
||||
+- pa_usec_t time_passed, next_write_at;
|
||||
+-
|
||||
+- if (writable) {
|
||||
+- /* Hmm, there is no input stream we could synchronize
|
||||
+- * to. So let's estimate when we need to wake up the latest */
|
||||
+- time_passed = pa_rtclock_now() - u->started_at;
|
||||
+- next_write_at = pa_bytes_to_usec(u->write_index, &u->sample_spec);
|
||||
+- sleep_for = time_passed < next_write_at ? next_write_at - time_passed : 0;
|
||||
+- /* pa_log("Sleeping for %lu; time passed %lu, next write at %lu", (unsigned long) sleep_for, (unsigned long) time_passed, (unsigned long)next_write_at); */
|
||||
+- } else
|
||||
+- /* drop stream every 500 ms */
|
||||
+- sleep_for = PA_USEC_PER_MSEC * 500;
|
||||
+-
|
||||
+- pa_rtpoll_set_timer_relative(u->rtpoll, sleep_for);
|
||||
+- disable_timer = false;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Sample user config script to setup Cirrus Logic Audio Card
|
||||
|
||||
# load helper functions and definitions
|
||||
. /usr/lib/alsa/rpi-cirrus-functions.sh
|
||||
|
||||
# enable output to S/PDIF, line out and headset out
|
||||
playback_to_spdif
|
||||
playback_to_lineout
|
||||
playback_to_headset
|
||||
|
||||
# disable noise gate - this can cut off the first few ms of playback
|
||||
mixer 'Noise Gate Switch' off
|
||||
|
||||
# Uncomment this line to enable output to speakers
|
||||
# playback_to_speakers
|
||||
|
||||
# example: mix line in and headset in into line out using a high-pass filter
|
||||
# - line in gain is set to +8dB
|
||||
# - headset in gain is set to +20dB
|
||||
# - line in and headset in are mixed together in the filter, each using
|
||||
# a gain of -3dB (volume 29). line in uses input 1, headset in input 2
|
||||
# - first input of line out is connected to audio signal from RPi/Kodi,
|
||||
# using a -3dB gain
|
||||
# - second input of line out is connected to output of the filter
|
||||
#
|
||||
# mixer "${line_out} Digital Switch" off # mute output
|
||||
# setup_line_in 8
|
||||
# setup_headset_in 20
|
||||
# setup_filter "High-Pass" "240,3"
|
||||
# set_mixer $filter_signals $line_in_signals 29 1
|
||||
# set_mixer $filter_signals $headset_in_signals 29 2
|
||||
# set_mixer $line_out_signals $rpi_out_signals 29 1
|
||||
# set_mixer $line_out_signals $filter_signals 29 2
|
||||
# mixer "${line_out} Digital Switch" on # unmute output
|
||||
@@ -0,0 +1 @@
|
||||
softdep arizona-spi pre: arizona-ldo1
|
||||
46
packages/audio/rpi-cirrus-config/package.mk
Normal file
46
packages/audio/rpi-cirrus-config/package.mk
Normal file
@@ -0,0 +1,46 @@
|
||||
################################################################################
|
||||
# This file is part of LibreELEC - https://libreelec.tv
|
||||
# Copyright (C) 2016-2017 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-cirrus-config"
|
||||
PKG_VERSION="0.0.1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/HiassofT/rpi-cirrus-config"
|
||||
PKG_URL="https://github.com/HiassofT/rpi-cirrus-config/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="alsa-utils"
|
||||
PKG_SECTION="driver"
|
||||
PKG_SHORTDESC="Config scripts for the Wolfson/Cirrus Logic audio card"
|
||||
PKG_LONGDESC="Config scripts for the Wolfson/Cirrus Logic audio card"
|
||||
|
||||
make_target() {
|
||||
: #
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/lib/udev
|
||||
install -m 0755 $PKG_DIR/scripts/rpi-cirrus-config $INSTALL/usr/lib/udev/rpi-cirrus-config
|
||||
|
||||
mkdir -p $INSTALL/usr/share/alsa/cards
|
||||
cp alsa/RPiCirrus.conf $INSTALL/usr/share/alsa/cards
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/alsa
|
||||
cp mixer-scripts/rpi-cirrus-functions.sh $INSTALL/usr/lib/alsa
|
||||
|
||||
mkdir -p $INSTALL/usr/config
|
||||
cp -PR $PKG_DIR/config/* $INSTALL/usr/config
|
||||
}
|
||||
24
packages/audio/rpi-cirrus-config/scripts/rpi-cirrus-config
Executable file
24
packages/audio/rpi-cirrus-config/scripts/rpi-cirrus-config
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
|
||||
# setup default mixer settings for Cirrus Logic Audio Card
|
||||
|
||||
. /etc/profile
|
||||
|
||||
if [ -f $HOME/.config/sound.conf ] ; then
|
||||
alsactl restore -f $HOME/.config/sound.conf
|
||||
else
|
||||
if [ -r $HOME/.config/rpi-cirrus-config.sh ] ; then
|
||||
progress "Setting up Cirrus Logic Audio Card with user config"
|
||||
sh $HOME/.config/rpi-cirrus-config.sh
|
||||
else
|
||||
progress "Setting up Cirrus Logic Audio Card"
|
||||
|
||||
# load helper functions and definitions
|
||||
. /usr/lib/alsa/rpi-cirrus-functions.sh
|
||||
|
||||
playback_to_spdif
|
||||
playback_to_lineout
|
||||
playback_to_headset
|
||||
mixer 'Noise Gate Switch' off
|
||||
fi
|
||||
fi
|
||||
@@ -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/>.
|
||||
################################################################################
|
||||
|
||||
# When a sound device is detected, restore the volume settings
|
||||
SUBSYSTEM=="sound", KERNEL=="controlC*", NAME="snd/%k", ACTION=="add", GOTO="alsa_restore_go"
|
||||
GOTO="alsa_restore_end"
|
||||
|
||||
LABEL="alsa_restore_go"
|
||||
|
||||
# Separate config-script for RPi-Cirrus card
|
||||
DRIVERS=="snd-rpi-cirrus", RUN+="rpi-cirrus-config", GOTO="alsa_restore_end"
|
||||
|
||||
# Default config-script for all other cards
|
||||
RUN+="soundconfig %k"
|
||||
|
||||
LABEL="alsa_restore_end"
|
||||
|
||||
@@ -20,8 +20,8 @@ PKG_NAME="elfutils"
|
||||
PKG_VERSION="0.167"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://fedorahosted.org/elfutils/"
|
||||
PKG_URL="https://fedorahosted.org/releases/e/l/elfutils/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_SITE="https://sourceware.org/elfutils/"
|
||||
PKG_URL="https://sourceware.org/elfutils/ftp/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain zlib"
|
||||
PKG_SECTION="devel"
|
||||
PKG_SHORTDESC="elfutils: collection of utilities to handle ELF objects"
|
||||
|
||||
@@ -22,13 +22,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://libcec.pulse-eight.com/"
|
||||
PKG_URL="https://github.com/Pulse-Eight/libcec/archive/$PKG_VERSION.tar.gz"
|
||||
if [ "$PROJECT" = "imx6" ]; then
|
||||
if [ "$LINUX_VERSION" = "sr-3.14" ]; then
|
||||
PKG_PATCH_DIRS="3.14-sr"
|
||||
else
|
||||
PKG_PATCH_DIRS="4.4-xbian"
|
||||
fi
|
||||
fi
|
||||
[ "$PROJECT" = "imx6" ] && PKG_PATCH_DIRS="${LINUX#imx6-}"
|
||||
PKG_DEPENDS_TARGET="toolchain systemd lockdev p8-platform"
|
||||
PKG_SECTION="system"
|
||||
PKG_SHORTDESC="libCEC is an open-source dual licensed library designed for communicating with the Pulse-Eight USB - CEC Adaptor"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user